像云这样重大的IT趋势已经用了一些年头来普及——尽管其中有过一些消长,但是它们向前的脚步不可阻挡。其他一些则似乎是出人意料地完全征服了企业世界。过去12个月,像Docker那样为快速可伸缩性提供了大量制造微型容器能力的容器环境和分布式应用平台就是这样。这证明了影响深远的变革可以来自于小小的文件包。
传统的晚期采用者这次早早加入
ZeroTurnaround的开发大使Simon Maple对大企业也乐于接受容器化感到惊奇。“Docker这个东西在2014年已经获得了强劲的发展势头。对于我来说其中一件大事是,这个东西通常一般是初创企业和SMB会先尝试的。但是现在我们已经看到IBM以及RedHat也进入了容器风格的基础设施。可以看到它已经与企业发生了碰撞。对于一个只有1年多时间的东西来说这是令人惊奇的。”
虚拟化是不是已经过时了?
ZeroTurnaround CEO Jevgeni Kabanov对这一新趋势能在多大程度上改变IT现状有着大胆的预测。“我认为从长期来看容器化将会干掉虚拟化。”的确是非常大胆的话,但是Kabanov有这个想法已经不是一天两天了:“我从来就没理解过虚拟化的要点是什么。过去10年都是这样的观点。我认为虚拟化将一直拥有一席之地。但是大多数并不希望将整个操作系统虚拟化。他们只是希望在容器里面运行应用。他们希望以一种可预测的方式运行自己的应用。虚拟化增加了大量的性能过载。如果一切都同等的情况下,为什么你还会想用虚拟化呢?”
对容器化有赞有弹
由于容器化允许组织在托管操作系统上运行应用,所以在完全虚拟化的环境下有若干潜在好处。不需要专门分配资源给第二套OS、调度程序或者分页系统。I/O、CPI以及内存效能可以提升。甚至尽管虚拟化原来是开发来帮助组织发挥物理基础设施潜能的,但是也还是要有代价的。
那容器化有没有弊端呢?移除了抽象层也许可以提高效能,但是并不能像虚拟化那样确保资源可用。而且其隔离程度也要低一些——这个会存在潜在的安全风险。如果绕开管理程序(hypervisor)的话,安全问题有可能很快就会升级。对于安全意识很强的公司来说,虚拟化额外的负载带来的成本也许是值得的。或者,容器化也可以通过在托管O/S上增加安全措施来弥补缺少隔离的问题。
对于Java企业社区来说容器化意味着什么
Maple对于容器化会如何影响虚拟化也有一个有趣的观点。“JVM的一大价值之一是你可以写好代码然后部署到不同的镜像和环境上。有了容器之后,其价值就略为减少了一些。你不再需要具备一次编写随地运行的能力。你可以把所有的开发工作都集中在这个liNUX镜像上,然后不断生成新的。把它放到任何地方都可以,基于liNUX的分布仍不变。”
过时术语会不会复活?
尽管虚拟可能面临容器化的重大挑战,SOA却有可能卷土重来—至少是从概念上来说。liferay的资深软件开发者Ray Auge解释说:“我知道,SOA属于一种过时的术语,但是从技术上来说,云就是把一切当作服务来交付。所以说服务才是至关重要的。你把一组服务展示给一大批最终用户客户端。但同时你也把那些服务以混搭的方式组合起来创建出应用。无论是Docker趋势、容器化、App服务器之死,还是微服务,我们都可以看到其中服务的概念。这一切都受到了对服务进行独立伸缩、监控、定义、组合、重用、维护并在无需重新部署的情况下进行变更的推动。”
旧爱还会不会徘徊?
容器化的简洁也许会令人对JVM不那么渴望,但是Simon指出JVM在其他领域还有很多价值。可能它的状况还不算危险。然而,像WebSphere以及WebLogic这样的JEE主流玩家会为了钱而继续运转。现在预测事情会如何进展还为时尚早。但是我们会一直关注好让读者了解容器化与虚拟化之争的最新情况。