【.comExpress翻译】容器正在改变公司构建和运行其应用程序和基础设施的方式。随着容器变得越来越普遍,它们引入了更多动态的基础设施,并带来了各种各样的支持技术。在这份报告中,我们分析了数万名Datadog客户运行的超过15亿个容器,以揭示哪些技术、编程语言和编排实践在现实世界的容器环境中越来越受欢迎。随着越来越多的公司将生产工作负载迁移到容器,Kubernetes和AmazonElasticContainers(ECS)等编排平台已成为容器生态系统不可或缺的一部分。如果目前的趋势继续下去,很快大多数运行容器的公司将在某种程度上使用Kubernetes。但Kubernetes并不是唯一的参与者。对于AWS客户,ECS仍然是同样受欢迎的选择,这要归功于其Fargate计算引擎的快速采用。从最新的实际使用数据中获取更多见解和趋势。趋势1:Kubernetes继续稳步上升编排已经成为企业组织使用容器的标准做法。没有什么比Kubernetes的使用稳步增长更明显的了,而且没有下降的迹象。截至2019年10月,大约45%的运行容器的Datadog客户使用Kubernetes,无论是在自我管理的集群中,还是通过GoogleKubernetesEngine(GKE)、AzureKubernetesService(AKS)或AmazonElasticKubernetesService(EKS)。类云服务。这表示Kubernetes的采用率比过去12个月增加了10个百分点,比过去24个月增加了20个百分点。趋势二:Kubernetes在Azure中的使用增长迅速Kubernetes已经广泛应用于各大公有云提供商,尤其是在谷歌云平台(GCP)上,而GKE一直是GCP的热门选择。然而,近年来Kubernetes在MicrosoftAzure上的使用增长如此迅速,以至于Kubernetes现在在Azure上的容器化环境中几乎与在GCP上一样受欢迎。在Azure中运行容器的Datadog客户中,大约80%现在正在使用Kubernetes,高于一年前的67%。Azure上的Kubernetes使用包括AKS部署和自我管理的Kubernetes集群,尽管我们在本研究中没有区分这些部署类型。Kubernetes在AWS中运行容器的企业组织中也越来越受欢迎,在过去两年中翻了一番,达到45%。趋势3:GKE在谷歌云中的主导地位托管的Kubernetes服务,如谷歌云平台上的GKE和AWS上的EKS,已在各自的云平台上得到广泛采用。这些服务的用户将Kubernetes控制平面的管理委托给云提供商,这样他们就可以专注于集群工作节点上运行的工作负载。在谷歌云平台上,90%以上运行Kubernetes的企业组织都采用了GKE。GKE的火爆可能源于以下几个因素:GKE已经上市四年多了。Kubernetes最初由谷歌开发并开源。长期以来,GKE一直是谷歌云平台上的主要产品。EKS是一种相当新颖的产品,采用势头强劲;随着时间的推移,我们预计会有越来越多的企业组织采用EKS。毕竟,亚马逊弹性容器服务(ECS)的流行已经表明AWS客户对托管容器服务的需求不断增长。趋势四:Fargate在19%的AWS容器环境中运行AWSFargate从容器集群中抽象出基础设施层,让客户可以在ECS中运行应用程序,而无需管理EC2实例。我们的研究表明,Fargate自推出以来的两年里一直保持着稳定快速的增长。在AWS中运行容器的公司中有19%现在使用Fargate,高于一年前的5%。Fargate的快速增长帮助ECS跟上了AWS环境中Kubernetes的持续采用。趋势5:容器创建/删除速度正在跨平台收敛使用编排的公司通常创建和删除容器的速度比不使用编排运行容器的公司快得多。近年来这种差异非常显着,编排环境中的创建/删除率大约高出10倍。不过在2019年,非编排容器的创建/删除速度有了很大的提升。在一家运行未经安排的基础设施的典型公司中,容器的平均寿命约为2天,而2018年中期约为6天。尽管ECS和Kubernetes仍然可以更快地创建/删除容器,典型的容器寿命约为一天,但平台之间的差距已经缩小。然而,非常长寿命的容器在编排基础设施中仍然很少见。例如,在19%的非编排环境中,容器的平均生命周期超过30天,相比之下,只有7%的ECS环境和3%的Kubernetes环境。趋势6:Node.js主导容器我们的客户在应用程序开发中偏好的编程语言和框架在容器和非容器环境之间有所不同。57%的组织使用Node.js运行容器化工作负载,几乎是在非容器化环境中运行Node.js的组织数量的两倍。Java是容器环境中第二流行的语言,也是传统应用程序环境中的明显领导者。(请注意,百分比加起来超过100%,因为每个组织可能使用多种语言。)Node.js在容器环境中的流行可能归因于它的设计,它有利于非常适合容器化的轻量级、可扩展的应用程序和复制。还值得一提的是,两种较新的编程语言Node.js和Go在容器环境中比在传统环境中更受欢迎,在传统环境中更容易找到遗留代码。趋势七:NGINX在容器环境中盛行在容器集群中运行的现成镜像中,NGINX是最常见的镜像,尤其是在Kubernetes环境中。NGINX在大约70%的Kubernetes环境、30%的ECS环境和40%的未编排容器基础设施中运行。NGINX在Kubernetes环境中的高度流行可能部分是由于NGINX是一种流行的Kubernetes入口控制器,用于将外部流量路由到集群中的服务。Kubernetes用户通常比ECS用户运行更多开箱即用的容器镜像。我们假设许多AWS用户依赖托管服务而不是自托管基础设施组件。例如,许多AWS组织使用AmazonRelationalDatabaseService而不是运行他们自己的PostgreSQL或MySQL数据库。同样,AmazonApplicationLoadBalancer在ECS集群中扮演的角色类似于Kubernetes入口控制器在Kubernetes集群中扮演的角色,这可能有助于解释跨容器平台使用NGINX的差异。值得注意的是,服务网格技术还没有进入主要容器镜像的行列。截至本报告发布时,这些技术似乎仍处于早期采用者的领地,尽管我们已经看到使用率在2019年下半年有所回升。趋势8:Kubernetes升级周期很长Kubernetes平台发展迅速,并且每三个月左右会出现新的次要版本(比如v1.16),在此期间会发布增量修订。然而,我们的研究表明,大多数组织更喜欢旧的、成熟的版本,而不是最新版本。截至2019年10月,使用最流行的版本是Kubernetes1.13,它于2018年12月首次发布。在2019年的三个版本中,只有1.14版本得到广泛采用,23%的Kubernetes企业组织使用它。由于每个组织可能运行多个版本的Kubernetes,因此下图中的百分比加起来超过100%。值得一提的是,Kubernetes版本并不总是明智的选择:托管Kubernetes服务的用户通常会在集群启动时看到默认的稳定版本。在分析本报告时,1.13版本仍是GKE和AKS的默认版本,而EKS默认提供1.14版本。原标题:8Factsaboutthechangingcontainerlandscape[翻译、合作站点转载请注明原译者及出处为.com]
