共计 2415 个字符,预计需要花费 7 分钟才能阅读完成。
人们只有在经验过诸多苦楚之后,才会置信这“缘分”的存在。
而所有的“缘分”,只不过是事物倒退的必然结果罢了。
前言
在生产环境配置日益简单的明天,一套对立的、可移植的环境可能是很多从业人员梦寐以求的。所谓“需要引领市场”,在需要的催动下,解决方案的诞生也只是工夫问题而已。
开发测试的苦
-
- 搭环境
-
- 换电脑
-
- 写文档
-
- 搞适配
所有程序代码的执行都须要依赖于具体的零碎环境,所以,在我的项目开发之初,搭建相应的开发环境是必不可少的步骤。任何不以环境为依据的代码开发都是耍流氓。
如果是一开始就跟着我的项目走的话,那还好,至多环境都是逐步完善过去的。但要是中途退出的话,遇到简单我的项目,那就别提了,说多了都是泪,光一个环境搭建都能搞得你腰酸背痛外加腿抽筋。
自己亲历:在我的项目做到一大半的时候,被借调去声援其余我的项目,历时大略三个月左右。回来后的情况能够用一句话来概括——一顿操作猛如虎,一看后果二百五!啥?!单点登录?时候加的?PG 库,怎么来的 …… 配!配!配!当我的项目终于能失常跑起来的时候,我脑海中只有一个念头:我的项目别三月,见面不相识!
哎,据说最近有种新技术挺火的 …… 试问你能忍得了这引诱?我只置信,没有不喜爱“偷腥”的程序猿,忍得住才怪了(手动白眼)。又到了搭环境的时候了,左手 npm,右手 brew,还有什么搞不定的,“偷腥”胜利的成就感那是相当爆棚啊!
等等,先别急着兴奋,骚年!我且问你两个问题:
- 1. 你主机中当初装了多少包?- 2. 有共事要跟你协同开发,你怎么给他搭建出一个跟你这截然不同的环境?
嘿,我这主机中各种各样的包和服务都有,具体数目我都数不过去(一脸嘚瑟样)!至于协同开发,那还不简略,我写一个文档,只有依照文档一步步走上来,保障能配置进去!再或者,我配置一个虚拟机,有谁须要开发环境,我只有给他拷出一份虚拟机镜像不就完了。
嗯,我且不狐疑你永远能及时更新文档的毅力,也不质疑有些公司的电脑配置,在运行虚拟机之后,除了卡顿不晓得还无能啥 …… 我只想问你:你不感觉你主机目前的状态有点相似于“大杂烩”吗?说好的程序猿的条理性呢?有了条理,咱们至多还能当斑马(搬码),没了条理,那只能作一团乱麻了!
运维治理的累
- 易出错
- 不统一
- 启动杂
- 效率低
作为运维人员,最常听到的一句话是什么?要我来说,相对是“在我这里好好的,到你那里怎么就不行了呢?”最常说的一句话是什么?我想大略或者也是这句吧。
累死累活、加班加点地才搞定了部署的问题,还没来得及歇一口气,又有新的补丁包发过来了。得,还得拼命!
很多运维人员的真实写照大略是:不是在调环境,就是在调环境的路上。
前途
因为各种各样的起因,咱们经常会把一件脑力活给干成体力活。愉悦感成就感没了不说,还得搭上黑眼圈和“地中海”。
直到这时,咱们或者会感叹:还是”CV 大法“好!
古话说:穷则变,变则通。人啊,只有被逼到肯定境地了,才会想着去扭转,寻找前途,劳碌的环境根本不可能滋润出”思变“的野心和欲望。眼看这膂力跟不上了,头顶的光辉越发夺目了,就晓得该到了寻求扭转的时候了。
那到底有没有”一次配置,终生受害“的解决方案呢?
虚拟机
首先,最容易想到的和接触最多的非虚拟机莫属。
虚拟机(virtual machine)就是带环境装置的一种解决方案。它能够在一种操作系统外面运行另一种操作系统,比方在 Windows 零碎外面运行 Linux 零碎。应用程序对此毫无感知,因为虚拟机看上去跟实在零碎截然不同,而对于底层零碎来说,虚拟机就是一个一般文件,不须要了就删掉,对其余局部毫无影响。
尽管用户能够通过虚拟机还原软件的原始环境。然而,这个计划有几个毛病。
(1)资源占用多
虚构机会独占一部分内存和硬盘空间。它运行的时候,其余程序就不能应用这些资源了。哪怕虚拟机外面的应用程序,真正应用的内存只有 1MB,虚拟机仍然须要几百 MB 的内存能力运行。
(2)冗余步骤多
虚拟机是残缺的操作系统,一些零碎级别的操作步骤,往往无奈跳过,比方用户登录。
(3)启动慢
启动操作系统须要多久,启动虚拟机就须要多久。可能要等几分钟,应用程序能力真正运行。
既然虚拟机存在这么多毛病,那还有没有更好的解决方案呢?还真有,那就是 Docker 技术。
一念缘起,我与 Docker 的故事从此开始……
初识 Docker
就因为这样一个念头,我懵懵懂懂的走进了 Docker 的世界。
Docker 是什么?
Docker 是一个开源的利用容器引擎,让开发者能够打包他们的利用以及依赖包到一个可移植的镜像中,而后公布到任何风行的 Linux 或 Windows 机器上,也能够实现虚拟化。容器是齐全应用沙箱机制,相互之间不会有任何接口。总结一下就是:
- Docker 是一个开源的软件部署解决方案;
- Docker 也是轻量级的利用容器框架;
- Docker 能够打包、公布、运行任何的利用。
Docker 的组成
一个残缺的 Docker 由以下几个局部组成:
- DockerClient 客户端
- Docker Daemon 守护过程
- Docker Image 镜像
- DockerContainer 容器
Docker 的作用
Docker 的主要用途,目前有三大类。
(1)提供一次性的环境。 比方,本地测试别人的软件、继续集成的时候提供单元测试和构建的环境。
(2)提供弹性的云服务。 因为 Docker 容器能够随开随关,很适宜动静扩容和缩容。
(3)组建微服务架构。 通过多个容器,一台机器能够跑多个服务,因而在本机就能够模拟出微服务架构。
总结
以上就是我和 Docker“结识”的过程,以及对 Docker 的简略认知,也欢送大家分享本人和 Docker 结缘的过程。
~
~ 本文完,感激浏览!
~
学习乏味的常识,结识乏味的敌人,塑造乏味的灵魂!
大家好,我是〖编程三昧〗的作者 隐逸王 ,我的公众号是『编程三昧』,欢送关注,心愿大家多多指教!
你来,怀揣冀望,我有墨香相迎!你归,无论得失,唯以余韵相赠!
常识与技能并重,内力和外功兼修,实践和实际两手都要抓、两手都要硬!