成电联创 /
To B领域中,为企业提供快速开发、测试、应用等整体解决方案的公司日渐蓬勃,今日为大家介绍一下云计算领域的新一代虚拟技术-Docker.
▍它是什么?
Docker是一家国际领先的容器开发公司,其前身是dotCloud。dotCloud主要是基于 PaaS 平台为开发者或开发商提供技术服务,其后台的技术,也就是Docker的原型,实际也是以LXC为基础的。但随着越来越多的公有云服务商进入,dotCloud 的理念很难依靠一家公司专有的技术实现。2013年,dotCloud公司的创始人在PaaS平台不温不火的情况下做了一个艰难的决定,将核心引擎开源,并命名为Docker。事实证明,此决定无比正确,开源之后,无数的程序员开始在平台上贡献代码,并且一直维持着很高的社区活跃度,Docker下载量飙升,一跃成为无人不晓的当红炸子鸡。Docker的主业即为容器技术开发。
说到这里,可能大家还是不太明白容器到底是一种什么样技术,我且用Docker的logo来解释一下。
Docker的logo由鲸鱼和集装箱组成,鲸鱼(或者是货轮)就是操作系统。把要交付的应用程序看成是各种货物,原本要将各种各样形状、尺寸不同的货物放到大鲸鱼上,你得为每件货物考虑怎么安放(就是应用程序配套的环境),还得考虑货物和货物是否能叠起来(应用程序依赖的环境是否会冲突)。现在使用了集装箱(容器)把每件货物都放到集装箱里,这样大鲸鱼可以用同样地方式安放、堆叠集装了,省事省力,集装箱即我们所说的容器,是下一代全新的虚拟化技术。
▍它解决了什么?
既然容器是一种全新的虚拟化技术,那它解决了什么痛点?
在过去,人们在提升计算机系统负荷时,主要通过垂直扩展(增加单个系统成员的负荷),或水平扩展(增加更多的成员)来实现运算速度的提升。垂直扩展在对计算机硬件性能的要求上是不断提升的,在技术瓶颈、成本控制等种种束缚下,显然水平扩展更适合企业的发展。但水平扩展将不可避免的导致系统运算节点数量的提高,这在提升系统负荷方面会存在一个平衡点。随着目前企业大量的转为线上运作,这种平衡点的存在显然限制了企业效率的提升。
另一方面也是更重要的一点,大家知道,大多数情况下网站是运行在服务器上的,为了扩展和更新方便,服务器上会安装虚拟机,那么问题来了,虚拟机耗内存大不大?买服务器贵不贵?服务器配置运行环境麻不麻烦?说起来,程序猿们可能都是一把辛酸泪。现在好了,容器的出现可以解决这些问题,具体请看下图。
Docker与虚拟机争锋
容器之所以具备如此多的有点,是因为其本质上在操作系统上对进程做了环境隔离和资源限制。
容器虽好,Docker也是一个开源的平台,所以企业可以自身开发了?要知道Doker虽然是开源但它是一个完全通用化的工具,具体应用到各种不同场景下,你会发现运作起来根本没有想的那么好,存在很多bug。BAT企业都在用容器,京东已全容器化,这些公司都有自己专业的团队去专门负责运维,但更多的中小型企业,他们没有那么多的精力、时间和金钱去试错,所以国内开始逐渐出现一些to B 公司,其可以提供从开发到发布的一个整体化的解决方案,打包起来给到客户就可以直接用,非常之方便快捷。
编者语:容器这么强大,那么就可以认为虚拟机已经是昨日黄花,大家赶紧一切皆容器吗?显然并非如此,在软件开发和运维过程中,性能并非是最重要的,可维护性、正确性和性能的优先级是依次降低的。尽管容器同虚拟机相比,在可靠性和可维护性方面还有一定的发展空间,但其显著优于虚拟机的运行效率,相对较低的运行成本,从这两方面来讲,无论是刚刚走向创业之路的小公司还是以效率为第一生产力的大企业,容器都将是企业未来发展的不二之选。从这一点来看,容器将成为未来企业成长腾飞的重要助推器,在未来必将大有可为。