如果您听说过网络虚拟化,即从裸机中抽象网络并为它们配置虚拟资源的做法,您可能听说过容器。 如果您阅读了足够多的书来弄清楚 IT 容器与运输容器有何不同,您就会对它们的结构和构成有所了解。
容器是一种虚拟化资源,它与其他容器共享克隆操作系统的内核。 与一般的虚拟机相比,它需要更少的设置工作,并且还有其他一些关键优势。 包括 Docker 和 Kubernetes 容器在内的系统允许公司以令人兴奋的新方式进行构建和扩展。
为什么容器如此受欢迎,它们如何有助于提高效率和增强运营? 以下是一些容器化先驱的一些想法,他们将这一理念应用于他们的公司和组织。
封装、微服务和工件
您最常从热衷于使用容器设置的工程师那里听到的一个话题是,容器本身能够容纳一个完整的代码库及其所有依赖项,一个可以部署的代码库。
使用称为容器映像的静态文件,工程师可以将系统库和其他资源与应用程序的全部或部分结合起来。 这反过来又推动了微服务的创建和交付,其中不同的容器承载着不同的功能,这些功能可以组合在一起以创建一个敏捷的生态系统。
“我们相信容器,或者更确切地说,容器镜像,是新的软件交付工件,”
NebulaWorks 的首席执行官 Chris Ciborowski 说,他从 2000 年代初期就开始使用容器。 “我这是什么意思,为什么?
交付工件是准备好部署的开发人员应用程序的可执行版本。 过去,这只包括可执行代码本身,而将运行时依赖性问题解决到操作上。 通过利用容器镜像,开发人员可以包含他们的所有依赖项,从而大大减少在应用程序部署期间由于人为错误而导致运行时失败的可能性。”
SpiceWorks 的高级技术分析师 Peter Tsai 说:“容器允许组织轻松地在机器之间迁移应用程序及其依赖项,这对于进行内部软件开发的组织来说非常有意义,”他指出容器仍然是 一项相对较新的技术。
“容器的第三方解决方案不像在虚拟化环境中那样强大。 根据 Spiceworks 的数据,2018 年只有 19% 的组织在使用容器,尽管这一数字预计到 2020 年将增长到 35%。”
Heptio 营销副总裁 Scott Buchanan 以有用的物流类比的形式解释了这一点。
“考虑搬家,”布坎南说。 “你将需要很多纸板箱。 所以,你在家里部署了一堆,然后你用所有对你重要的东西来填充它们:应用程序。 与其用胶带把它们关上并失去对你财产的访问权,它们保持打开状态,这样你就可以根据需要在盒子之间重新整理你的东西。 而且,当你需要移动这些箱子时,这比把你的房子装在轮子上要简单得多。 这些纸板箱是容器,它们为您提供了在不同地点(包括公共云和私有云)之间移动您的东西的便携性。”
DevOps 哲学
容器还帮助公司追求称为“DevOps”的东西,这是企业技术中的圣杯。 您正在连接开发和运营部门,帮助团队更好地协作,并增强管道并创建更敏捷的发布系统。 (另请阅读:DevOps 经理解释他们的工作。)
Ciborowski 解释说:“开发人员不仅从中受益,运营也从中受益。”他描述了一些 DevOps 功能。 “
由于容器镜像是可移植的,运营团队可以在任何具有兼容容器运行时的主机上运行容器镜像——比如 Docker——并且随着采用率的增长,例如,将 Kubernetes 等编排工具用于几乎任何应用程序堆栈,跨任何基础设施类型 、本地和云端。”
StackRox 的首席执行官 Ali Golshan 进一步解释了容器设计中固有的一些 DevOps 哲学,描述了容器化如何帮助增强管道。
“容器化使组织能够更快地发布应用程序并为客户引入新功能,”Golshan 说。 “因为容器将代码隔离成更小的单元,开发人员可以更独立地工作以改进功能。 容器技术还减轻了测试负担,从而加快了软件的引入,因为开发人员可以只测试新代码,确信他们没有‘破坏’应用程序的另一部分。”
ConDati 的 Dan Bartow 描述了 Kubernetes 容器化如何帮助他的公司发展。
“在 Kubernetes 之前,我们必须手动进入每个环境并通过拉取新容器、停止旧容器、启动新容器来手动进行升级,并为每个客户手动重复这些操作,”Bartow 说。
“Kubernetes 将发布日的数小时工作变成了几分钟。 只需点击几下,我们就可以对任何或所有环境中的每个容器进行滚动重启升级。 这一切发生得天衣无缝。”
当这些类型的操作帮助开发人员与运营团队更紧密地合作并打破部门之间的障碍时,他们可以启用更好的 DevOps 模型,从而使公司在其行业中更具竞争力。
安全
除了容器在功能方面所承诺的一切之外,它们还具有一些重要的安全优势。 关于容器部署中的“薄攻击面”如何降低风险,Golshan 有很多话要说。
“容器的攻击面变得既简单又复杂,”Golshan 说。 “一方面,每个‘代码块’都更小,减少了攻击面。 此外,容器带有很多关于它们应该如何配置、标记和使用的声明性信息,这可以提高安全性。”
而且,他补充说,这还不是全部。
“另一方面,容器以两种方式引入新的攻击面。 短暂性是一个因素。 因为容器经常来来去去,所以可以采取严厉的安全措施,例如如果容器行为“不正确”,则将其杀死。但这种短暂性也意味着攻击者可以更容易地掩盖他们的踪迹,并通过发起攻击、提取数据和阻止取证来阻止取证。 然后在完成后杀死容器。 更广泛的攻击面的第二个元素来自生态系统的其他元素——最著名的是协调器。 编排器为组织提供了一种扩展容器创建、部署和管理的方法,但业界已经看到与编排器相关的多种攻击和漏洞。 特斯拉发现其 Kubernetes 基础设施遭到破坏,使得攻击者可以挖掘加密货币,一份报告详细说明了攻击者如何破坏 Shopify 的 Kubernetes 集群。”
在 Bartow 的案例中,实际的第三方安全审计证实,容器的较小攻击面对 ConDati 来说是一个优势。
“我们刚刚完成了第三方渗透测试……这是我们完成的第一次,他们逐字告诉我们,我们有一个‘小攻击面’,”Bartow 说。 “Kubernetes 是造成这种情况的重要原因。”
以上所有内容都指向容器在未来商业 IT 世界中的巨大潜力。 想一想这些基本好处可以应用于任何尖端商业模式的所有方式。