集装箱化。这是人们喜欢说的另一个科技流行语,但往往不知道它的意思。如何更好地整理孩子们的玩具?把特百惠带出去吃饭,把剩菜安全运回家的行为?俄罗斯娃娃的另一个名字?

当然,集装箱化不是其中之一。但它的定义可能最好用一个简单的例子来描述,而不是描述:

Eliza在她的Windows PC上写了一个程序,在她的部门,公司的第二次部门和第三个外部机构中写下了一项精简工作流程。她仔细配置了软件以消除不必要的步骤,并使文档,文件和其他资产的低摩擦共享。然而,当她自豪地在她的经理的桌面Mac上展示她的计划时,它在秒内崩溃 - 尽管在自己的机器上完美地工作。

发明内容发明了解决这个问题。

什么是集装箱化?

在传统的软件开发中,程序员代码在一个计算环境中的应用程序在一个计算环境中,可以在另一个计算环境中运行错误或错误,如上面的eliza的情况就像eliza一样。要解决此问题,开发人员将其应用程序与其在云中托管的容器中运行所需的所有相关的配置文件,库和依赖项一起捆绑。此方法称为集装箱化。

Containization的目标是允许应用程序以不同的计算环境中以有效和无窃取的方式运行,无论是桌面或虚拟机或Windows或Linux操作系统。应用程序在不同的系统和基础设施中始终如一地运行的需求,并以快速的速度移动了这项技术的发展。在商业组织内使用不同的平台和向云的举动无疑是这种需求的巨大贡献者。

容器化几乎总是进行云环境,这有助于其可扩展性。虽然一些最流行的云服务是已知的数据存储-Google驱动器,iCloud,框 - 其他公共云计算公司,如亚马逊Web服务,Oracle或Microsoft Azure允许容器化。此外,还有私有云解决方案,其中公司在企业内联网或数据中心上主持数据。

集装箱和虚拟化之间的差异

Containization与虚拟化密切相关,通常有助于比较和对比这两个,以更好地了解集装箱化如何帮助组织构建和运行应用程序。

容器与虚拟机(vm)不同,不需要整个操作系统的开销。这意味着,与在虚拟机上运行相同的应用程序相比,容器化在硬件部门的要求更低,所需的计算资源也更少。

组织甚至可以选择在容器之间共享公共库和其他文件,以进一步减少开销。这些文件的共享发生在应用层,虚拟机运行在硬件层。因此,您可以运行共享一个公共操作系统的更多应用程序容器。

差异虚拟化和集装箱化
电子设计提供图像。

VM由虚拟机管理程序(AKA虚拟机监视器)管理,并利用VM硬件(1),而集装箱系统提供从基础主机提供操作系统服务,并使用虚拟内存硬件隔离应用程序或(2)容器管理器提供抽象操作系统适用于容器。此方法消除了一层,并且在必要时保存资源并提供更快的启动时间。

为什么使用集装箱化?

组织决定使用集装箱化有几个原因:

  • 可移植性:您可以在任何平台和任何基础设施中运行应用程序。切换到不同的云供应商?没有问题。
  • 隔离:一个容器中的灾难和故障不会转移到其他容器。这意味着可以在其他容器不停机的情况下进行维护、开发和故障排除。
  • 安全性:从其他应用程序和主机系统的严格隔离也会导致更好的安全性。
  • 管理:在更新时,您不必考虑对其他应用程序的影响,添加进一步的开发,甚至回滚。
  • 可伸缩性:可以在云中复制并部署容器实例以匹配组织的不断增长的需求。
  • 最后但并非最不重要的一点是成本效益:与虚拟化解决方案相比,容器化更有效,它降低了服务器实例、操作系统许可证和硬件的成本。

货柜的保安风险

由于集装箱化开始作为有效的开发和成本节约的手段,并且在采用和实施方面快速膨胀,因此不幸的是其设计中的低优先级 - 因为它通常是技术创新。

然而,容器具有很大的攻击面,因为它们往往包括使用通过网络相互通信的组件的复杂应用程序。除了各种应用程序组件引入的标准漏洞外,还可以添加由错误配置造成的其他安全漏洞,从而导致不充分的授权问题。这些漏洞并不局限于应用程序的顶层。

添加到这些漏洞,某些安全供应商的局限性,其企业程序可能无法保护云环境中运行的容器。由于容器的孤立性质,某些安全解决方案可能无法扫描在活动容器内或在虚拟机上运行时监视其行为。

容器的安全姿势进一步削弱了他们的用户对这些限制的意识,这可能会鼓励不那么严格的监督。但是,已经有利于集装箱开发人员的安全漠不关心的威胁演员的威胁示例。

11月26日,ZDNET报告了一个黑客集团大规模扫描互联网寻找使用Open API端点的Docker平台部署一个经典的XMRigCryptominer.。更糟糕的是,他们还禁用在这些实例上运行的安全软件。Containization用户必须注意不要在线揭露管理端口和API端点,否则网络犯罪分子可以轻松造成严重破坏。如果他们能够安装加密术,那是什么阻止勒索软件?

安全建议

为了坐在容器中,以便在不同环境中可以有效地运行和无效的应用程序为了保持安全,开发者和运营商应该记住一些简单的建议。

可能是最重要的:在复制运行时系统,开发人员,管理器或运营商时需要检查所有组件是否已应用最新的修补程序和更新。否则,程序员可以将过时,不安全或甚至受感染的库复制到下一个容器。一个常见的建议是将模型容器存储在可以在复制到工作环境之前更新,修补和扫描的安全地点。

第二:在将容器迁移到不同的环境时,操作员必须考虑到容器和新环境中可能的漏洞,以及容器在新环境中的行为的影响。尽管其可移植性,但容器可能需要额外的需求对容器管理系统的安全措施或配置。

集装箱运输安全方面的其他努力可以总结为以下几个要点:

  • 检查暴露的端点并关闭端口(如果有的话)。
  • 限制容器之间的直接相互作用。
  • 如果房屋中不可用,请使用可以协助安全技术的提供商。
  • 充分利用容器隔离,但也要注意其后果。将容器配置为只读。
  • 如果可用,请使用容器编排平台来增强安全性并密切关注安全性。
  • 考虑如果您当前的提供商无法扫描云工作环境中,可以在云工作环境中扫描和保护容器的安全解决方案。

这些外来的安全措施可能会令人违反直观,因为开发人员最初设置为具有标准容器的标准容器,这些容器在每个环境和每个用户都有相同的方式。但它们是轻微的,简单的步骤,可以在保护组织的数据和应用程序方面走得很长。

因此,使用容器化,因为它适合最好,但总是记住安全。