容器已经存在了十多年,而在过去几年里,容器的普及率和采用率都显著增长。到2025年,全球超过85%的组织将在生产中运行容器化应用程序,比2019年的不到35%大幅增加。
容器和Kubernetes的迅速崛起,使应用程序能够在多种计算机环境中保持不变地运行,这可以归因于软件架构和开发模式的变化、DevOps的日益采用以及两者都是由广泛的参与者生态系统支持的开源项目。特别是Kubernetes,正逐渐成为构建云原生应用程序和实现遗留工作负载现代化的重要平台。
为了从这些技术中获益并做出更合理的决策,Gartner从客户那里收集了有关这些技术的最常见问题。
对于容器和Kubernetes,我们应该知道哪些关键的好处和挑战?
容器和Kubernetes可以为组织带来一些好处。核心好处包括敏捷软件开发和部署、环境一致性、不变性和资源效率,以及开源创新。为了扩大环境一致性的好处,例如,通过紧密的应用程序组件打包,容器支持跨开发、测试、staging和生产集群的平台一致性。这是开发人员生产力和服务弹性的重要驱动因素。同样,Kubernetes(现在事实上的容器编排标准)由于其架构、普适性和广泛的行业支持,为容器化应用提供了高度的可伸缩性和灵活性。
当然, 必须权衡这些好处与它们带来的以下挑战:平台复杂性、安全性、对强大自动化和治理的需求,以及文化和技能挑战。虽然容器技术中没有任何固有的不安全因素,但大规模部署它需要一个成熟的DevSecOps过程和安全策略,这与保护运行在虚拟机(vm)中的单体应用程序不同。成功的容器部署还需要对技术组件进行广泛的管理、一致的运维,并升级现有的工具和流程,以确保自动化和治理。
容器和Kubernetes的市场采用现状如何?有没有常见的用例?
在去年的Gartner IT基础设施、运维和云战略会议上的一项调查显示,近三分之二的企业在其环境中部署了容器,而近三分之一的企业在生产中部署了容器。也就是说,尽管容器在企业中的应用越来越广泛,但容器化应用的比率还不高——Gartner估计,今天只有不到5%的企业应用程序是容器化的。
三个最常见的用例是微服务、遗留应用程序迁移和应用程序可移植性。容器和Kubernetes为微服务提供了强大的基础架构,因为它们有能力编排这些模块化服务,实现服务的缩放和自我修复,并创建服务隔离层。容器支持的运行时对等性,以及Kubernetes的普遍可用性,使开发人员能够构建能够在混合或多云环境中以一致方式运行的应用程序。
商业化现成的应用程序可以部署在容器中吗?
今天,大多数容器镜像都基于开源软件,而来自专有独立软件提供商(ISV)的支持才刚刚起步。虽然不同ISV对容器的支持程度差异很大,但支持程度有望提高。平台供应商正在投入,以便更好地访问和简化容器应用程序的部署。
如何衡量容器和Kubernetes的投资回报率?
通过构建一个全面的商业案例来确保投资回报率,对于验证在容器和Kubernetes上的投资并不仅仅是表面光很重要。组织需要对所产生的成本和潜在的收益采取现实的观点,下图说明了这一点:
投资回报率中的关键指标包括开发人员生产力、软件发布频率、运维效率和IT运维生产力。
我们如何以及以何种角色成功部署Kubernetes?
用户使用上游开源、商业软件发行版或通过云托管服务部署Kubernetes平台。云服务提供了运维简单性和快速上市时间,而软件发行版提供了更好的多云支持和可管理性,上游开源提供了可定制性但运维复杂。
容器和Kubernetes的成功需要各种核心和辅助角色,这取决于用例和组织的成熟度。具备跨平台工程、运维和安全工程所需的技能至关重要。对于软件开发用例,构建和发布工程和可靠性工程是需要培训和/或创建的重要角色。