容器正在成为主流

  • 来源:计算机世界
  • 关键字:灯泡,服务,通信
  • 发布时间:2020-04-20 19:36

  爱迪生在发明电灯泡时遇到了一个问题,即灯泡需要电线才能与灯具连接。直到今天,螺旋式灯泡底座(又称爱迪生螺丝灯头)已经成为了标准,它使得几乎所有的灯泡都可以被拧到灯具上,无论是台灯还是枝形吊灯。

  Solomon Hykes在十年前发明的Docker容器也有着类似的效果,即通过打包,任何Linux应用程序都可以插入所有Linux OS上的任何Docker容器中,而无需繁琐的安装。其最大优势在于,多个容器化的应用程序可以插入到操作系统的单个实例中,每个应用程序彼此之间被安全隔离,仅通过Docker API与操作系统通信。

  与在物理计算机上以云形式部署和扩展应用程序的常用工具VM(虚拟机)相比,这种共享模式的堆栈要轻得多。由于轻巧和便携,开发人员可以在笔记本电脑上处理多个容器化的应用程序,并将其上传到选定的平台上进行测试和部署。此外,与VM相比,容器化的应用程序启动速度更快,只需要眨眼间的功夫,而VM通常要花一分钟的时间才能启动。

  要掌握容器的实际影响,用户还需要了解应用程序体系结构的微服务模型。许多应用程序会被分解成小的单一用途的服务,这些服务通过API相互通信,因此每个微服务都可以独立更新或扩展(这一点与传统的整体式应用程序迥然不同)。事实证明,微服务和容器是一对完美组合。

  如何让容器化的微服务完美地协同工作,就像一个应用程序呢?至少对于较大的微服务应用程序来说,它们可以使用Kubernetes。作为开源编排引擎,Kubernetes可让用户实现对微服务应用程序的部署、管理和扩展并确保基于微服务应用程序的可用性,如果有需要的话,它们还可以跨平台移动。

  如今微服务时代已经到来,新的服务是否能够即时扩展或不停机更新,对于大量的现代应用程序来说至关重要。无论如何管理这些服务,容器都将建立起自己的标准化简洁接口。

  将容器大规模应用到生产当中

  在《容器与Kubernetes:三个成功的变革案例》(请关注本报后续报道)一文中,特约作家Bob Violino探讨了Expedia、克莱姆森大学和金融服务公司Primerica对Kubernetes的使用。UK集团编辑Scott Carey撰写了一篇名为《Kubernetes与现实世界相遇:三个成功案例》(见本期第5-6版)的文章,该文研究了彭博社、News UK和旅行数据提供商Amadeus所做的类似努力。正如Primerica首席技术官Barry Pellas所说的那样,“让有正确技能的团队在Kubernetes环境中进行恰当的开发具有挑战性。”但是不管是否具有挑战性,对于大规模协调容器化服务来说,Kubernetes如今已成为了一个被广泛接受的解决方案。

  Kubernetes的优势非常适合解决容器网络化这一棘手问题。正如Network World网站的撰稿人John Edwards在《数字化转型需要关注容器网络》(见本期第7-8版)一文中所解释的那样,容器网络与数据中心网络几乎没有相似之处。容器网络不仅完全由软件定义,而且Kubernetes本身无需人工干预即可处理所有路由请求和网络连接。所有这些已连接的服务被统称为服务网格,这属于另一个开源项目Istio,其重点在于处理,即让管理员能够管理流量、控制策略、发现服务等。

  Istio还提供了一些安全措施,例如服务之间的TLS安全通信。但是,生产中的容器则是一个全新的领域,一些大型企业已经决定将安全性牢牢地掌控在自己手中。CSO网站的资深作家Lucian Constantin在《Visa是如何构建容器安全解决方案的》(请关注本报后续报道)一文中对容器监控、安全策略实施以及事件检测和补救进行了详细解释。Lucian认为,这是一个典型的“自建vs购买”的决策:当现有解决方案看上去不再可靠或缺少正确的功能组合时,会发生什么?是自己动手构建新的解决方案还是从他处购买呢?

  另一方面,云服务提供商的CaaS(容器即服务)产品可能对Kubernetes即服务解决方案的阐述更为准确。亚马逊网络服务、谷歌Cloud Platform和微软Azure均提供自己的CaaS特色功能。但是,正如特约编辑Isaac Sacolick在《PaaS、CaaS還是FaaS?该如何选择?》(请关注本报后续报道)一文中所说,CaaS并不是用户唯一的容器管理选项。用户可以选择PaaS(平台即服务),但是其通常以牺牲可配置性为代价,换取更加快捷的开发和部署。FaaS(函数即服务)产品(也称为无服务器计算平台)则提供了更高水平的抽象,使得开发人员能够使用小的离散函数快速组合服务。FaaS解决方案是在后台运行容器,开发人员甚至看不到它们,更不用说管理它们了。

  这类容器解决方案的最终用户能够获得哪些优势呢?通常,其软件能够以更快的速度进行更新和改进。微软还推出了一种全新的容器,其可确保老旧应用程序在针对双屏设备的Windows 10X操作系统上正常运行。这种特殊的容器改进可以帮助微软摆脱多年来一直限制Windows发展的向后兼容问题。

  容器的一个重要优势是敏捷性。它们可以被轻松移动,并被插入到许多平台当中,消除了不必要的依赖性。此外,它们还可以被重复使用并被重新组合到不同的应用程序中。作为微服务基础设施的灵活性的赋能者,容器可帮助维持分散的小型团队,每个团队负责各自的微服务——合理的分工可帮助团队以更快的速度开发出更好的软件。

  在纯技术层面上,像螺旋式灯泡底座一样,容器虽然很不起眼,但是对于尚未开发的应用程序以及用户将要使用很多年的应用程序而言,却具有重大意义。

  Eric Knorr

……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: