容器无处不在,它们正在从根本上改变IT格局。容器化为企业带来了巨大的价值和广泛的利益,几乎所有最近的业务创新都将容器化作为一个重要因素,即使它不是核心要素。在现代应用程序架构中,快速将更改交付到生产环境的能力使您在竞争中脱颖而出。容器的架构,通过使用微服务架构来提高速度,正在帮助开发团队创建功能,减少故障并加快恢复。容器化还使应用程序能够更快地启动并根据需要自动扩展云资源。此外,DevOps通过实现尽早上市所需的灵活性、可移植性和效率,最大限度地发挥容器化的优势。虽然速度、敏捷性和灵活性是DevOps容器化的主要承诺,但安全性是一个关键因素。这导致了DevSecOps的兴起,这是一种从容器化应用程序的整个生命周期开始就将安全性融入应用程序开发的技术。默认情况下,容器化可以大大提高安全性,因为它将应用程序与主机和其他容器化应用程序隔离开来。1、什么是容器?容器是解决单体架构遗留下来的问题的解决方案。虽然单体有其优势,但它们阻碍了组织快速采用敏捷方法。容器允许您将单体分解为微服务。从本质上讲,容器是一个由轻量级组件组成的应用程序包,例如应用程序依赖项、库和配置文件,它们运行在传统操作系统之上的隔离或虚拟环境中,以实现简单和可扩展的可移植性和灵活性。(MichaelCalizo,CCBY-SA4.0)总而言之,容器通过利用内核技术(例如cgroup、内核命名空间和SELinux)提供隔离。容器与主机共享内核,这使得它们使用的资源少于虚拟机(VM)所需的资源。两种容器的优势这种架构提供了虚拟机所没有的敏捷性。此外,容器在计算和内存资源方面支持更灵活的模型,并且它们允许资源突发模式,以便在需要时,应用程序可以在定义的边界内消耗更多资源。换句话说,容器提供了在VM上运行的应用程序所不具备的可扩展性和灵活性。容器使在公共或私有云上共享和部署应用程序变得容易。更重要的是,它们提供一致性,帮助运营和开发团队降低多平台部署的复杂性。容器还支持一组可以在开发的任何阶段重复使用的通用构建块,从而为开发、测试、交付和生产重新创建相同的环境,扩展了“一次编写,随处部署”的概念。与虚拟化相比,容器更容易实现灵活性、一致性和更快地部署应用程序的能力——DevOps的关键原则。Docker的三个因素Docker已成为容器的代名词。Docker彻底改变并普及了容器,尽管该技术在Docker之前就已经存在。示例包括AIX工作负载分区、Solaris容器和Linux容器(LXC),它们是为在单个Linux主机内运行多个Linux环境而创建的。四种Kubernetes效应Kubernetes被公认为领先的编排引擎。过去几年,Kubernetes的流行和容器的成熟为运维人员、开发人员和安全团队提供了应对不断变化的环境的理想解决方案。Kubernetes提供了一种管理容器的整体方法。它可以跨集群运行容器,以自动化和分布式方式启用诸如自动缩放云资源之类的功能,包括事件驱动的应用程序需求。这确保了“免费”的高可用性(即,开发人员和管理员都无需花费额外的精力来实现它)。此外,OpenShift和类似的Kubernetes企业产品使容器的采用更加容易。容器会取代虚拟机吗?KubeVirt和类似的开源项目展示了容器将取代VM的巨大希望。KubeVirt通过将虚拟机转换为可以运行虚拟机的容器,将虚拟机引入到容器化工作流中。目前,容器和VM是互补的解决方案,而不是相互竞争的技术。容器在VM之上运行以提高可用性,特别是对于需要持久性的应用程序,并利用虚拟化技术更轻松地管理支持容器所需的硬件基础设施,例如存储和网络。6那么Windows容器呢?微软和开源社区大力推动Windows容器的成功。Kubernetes运营商已迅速采用Windows容器,OpenShift等产品现在允许Windows工作节点运行Windows容器。Windows容器化开辟了许多诱人的可能性,特别是对于具有混合环境的企业。能够在Kubernetes集群上运行最关键的应用程序是实施混合或多云环境的一大优势。七个容器的未来容器在快速变化的IT环境中扮演着重要的角色,因为企业正朝着以速度和敏捷性交付软件和解决方案以超越竞争对手的方向发展。容器在这里停留。在不久的将来,其他用例将会出现,例如边缘的无服务器,并将进一步改变我们对从数字设备获取信息的速度的思考方式。应对这些变化的唯一方法就是适应它们。*原文:https://opensource.com/article/20/12/containers-101
