目前,CNCF社区正持续发展,用户对开源技术的应用也越来越突出。这是CNCF第八次对云原生应用的采用情况进行调研。此次调研,CNCF收到了来自社区共计1324份有效样本,来自欧洲、北美、亚洲等主要地区,其中有30%以上是5000人规模以上企业,60%以上为100人规模企业和组织。从被调研对象来看,其中绝大多数为企业IT部门/组织,主要岗位包括SRE/DevOps工程师(43%)、软件架构师(35%)和后端开发人员(23%)。
调研核心要点:
- 在生产中应用容器的比例从去年的84%增长到今年的92%,相比2016年增长了300%。
- 生产中应用Kubernetes的比例从去年的78%增长到今年的83%。
- CNCF托管的所有项目中,相比上一年投入应用的项目至少有50%的增长。
- 82%的受访者在生产中应用CI/CD(持续集成和持续交付)。
- 30%的受访者在生产中应用无服务架构(serverless)。
- 27%的受访者在生产中应用服务网格(service mesh),相比去年增长了50%。
- 55%的受访者在生产中的容器中运行有状态应用程序(stateful application)。
以下为雷锋网(公众号:雷锋网)编译:
一、云计算
结论:公有云仍是主流,但私有云在不断增长。
公有云仍是如今最主流的数据中心改造路径,其应用率从去年的62%略有增加到64%;私有云或本地部署应用率从45%增加到52%;混合云从去年的38%略有下降到36%。多云在今年是一种新的策略,其应用率在26%。
Kubernetes和云原生工具的可移植性,使得不同云之间的切换变得更加简单。不过多云策略的提升,并不完全能解释混合云应用率下降的原因。
二、代码
结论:版本发行周期加快,但自动化能力却有所下降。
软件发行的比例从去年的27%上升至29%。其中,以周为发行周期最为常见(26%)。一些因素推动了这一趋势的发展,如云原生技术在生产中不断投入应用;企业组织构建了更先进的IT基础设施;以及新冠疫情的影响,迫使企业需要跟上数字化的需求。
53%的受访者几乎每天都要对代码进行check in,80%的人也会做到每周进行几次check in。
这或许意味着许多企业组织由于设置周期的复杂性,而不打算直接跳到自动化阶段,或者企业希望保持对应用某些方面的控制。
当涉及硬件等设备时,比如虚拟机和裸金属服务器的数量,无论是拥有5000台以上的企业还是拥有5台以下的企业数量都在增加,这表明:新的采用者已经进入生态系统,而此前应用了容器部署的企业正持续追加新的硬件设备。
三、容器
结论:在生产中应用容器已是常态。
今年,92%的受访者表示在生产中部署了容器技术。其中,95%的企业在PoC、测试和开发环境中应用容器,同比上一年均有所增加。这可能意味着企业正准备测试新的用例或增加更多的工作负载。
同时,运行容器的企业数量也有所增加。其中,61%的企业应用容器数量超过了250,同比去年仍有所增加。
容器挑战
部署和应用容器的挑战有很多,其中最为迫切的是容器技术的复杂性和工程师文化问题。排名第三的是安全问题(占32%),其次还有存储、缺乏培训、监测、网服务网格等问题。
四、Kubernetes
结论:Kubernetes仍是容器构建的核心关注点。
今年,91%的受访者应用了Kubernetes,其中有83%已经投入在生产环境中。这一比例相比上一年的78%和2018年的58%,表现出了持续稳定增长的趋势。
其中,2至5个仍然是最常见的生产集群数;11个以上生产集群的比例也在逐年增加。
随着Kubernetes技术的投入应用,其生态也在不断扩张。2020年8月,Kubernetes发布了1.19版本。根据DevStats看板上的数据,从2020年4月至8月期间,有382家公司和2400多人向Kubernetes社区捐献代码。
为此,指导委员会推出了一个名为Kubernetes.dev的网站,它以贡献开源代码的文档、资料和项目信息都收集起来。
隔离Kubernetes集群
命名空间(Namespaces)仍是隔离Kubernetes集群的最主流方法。无论是个人还是企业组织,同比上一年都有所增长。
Kubernetes安装环境
Kubernetes应用最多的安装环境分别是:Minikube(37%)、On-Prem Kubernetes(31%)和Docker Kubernetes(29%)。其中,On-Prem的比例在今年所有上升。
自动弹性伸缩工作负载
今年,绝大多数受访者(71%)计划换成自动弹性伸缩的无状态应用,一部分受访者(34%)计划用任务/队列处理应用,还有一部分(33%)计划运行有状态的应用。
五、CNCF项目情况
结论:项目应用量增加了50%。
CNCF目前拥有70多个项目,包括13个毕业阶段和21个孵化阶段的项目。
其中,Kubernetes(83%)、Prometheus(69%)和Helm(67%)是生产中应用最多的毕业项目;ETC(62%)、CNI(40%)和gRPC(35%)则是生产中应用最多的孵化项目。
沙箱阶段的项目应用率猛增了238%。其中,生产中应用最多的项目是Flux(8%)、OpenEBS(8%)和网络服务网格(7%);受到最多评估的项目则是OpenTelemetry(20%)、Service Mesh Interface(14%)和OpenMetrics(14%)。
六、云原生工具
结论:CI/CD和存储工具被广泛应用,而无服务、服务网格和服务代理正在增长。
持续集成和持续交付(CI/CD)
CI/CD对于自动化构建、测试和部署应用程序至关重要。CI/CD作为DevOps的一个重要方面,在生产中得到了广泛应用。
大约82%的受访者在生产中应用CI/CD;10%的仍在评估阶段;4%的则计划在未来12个月内运行CI/CD。
CI/CD应用最为频繁的三个工具分别是:Jenkins(53%)、GitLab(36%)和GitHub Actions(20%)。
连续交付(CD)是CNCF终端用户技术雷达图(基于社区用户经验来评估云原生技术的指南)中的一项主题。根据雷达图能够发现,Flux和Helm无疑是CD最广泛采用的工具。
监测、日志记录和跟踪
监测、日志记录和跟踪往往被混淆为观察和分析IT环境的可置换工具,但每个工具都有其独特用途。这也要求其有从不同维度分析问题的能力。不同的工具在不同的技术环境和集成下具备不同的优势,这也意味着监测、日志记录和跟踪工具同时应用时将具备强大的作用。
CNCF的第二张终端用户技术雷达图,正是专注于这一特征。根据雷达图能够发现,50%以上的公司会应用五种或五种以上的工具,三分之一的公司甚至有应用十种以上工具的经验。同时,这些工具往往都是开源的,比如Prometheus、Grafana、Elastic、Jaeger、OpenTelemetry等等。
七、无服务
在过去的几年里,无服务计算——应用服务层或函数计算来动态配置和部署云环境的计算负载,已经开始占有一席之地。
从目前看,不到30%的受访者在生产中应用无服务技术;21%的正在评估无服务,还有14%的计划在未来12个月进行应用。
大多数应用无服务技术的受访者(60%)会应用托管平台;13%的应用可安装软件,22%的会二者兼用。
无服务托管平台排名前三的分别是亚马逊的Lambda(57%)、Google云函数(27%)和Azure函数(24%);可安装软件应用排名前三的分别是Knative(27%)、Open FaaS(10%)和Kubeless(5%)。
服务网格
服务网格(Service Mesh)是一个专用的基础架构层,保障服务之间的通信快捷、安全和可靠。
去年,18%的受访者在生产中应用了服务网格;47%还在评估中。到了今年,生产中应用服务网格这一数字占比增长到27%;23%的还在评估中;另外有19%的受访者计划在未来12月内应用。
服务代理
服务代理(Service Proxy)通过对微服务之间的交互进行管理,以确保应用性能达到峰值。它可以用来简化数字化转型和云原生架构的运营。
今年37%的受访者在生产中应用服务代理;有12%正在评估服务代理;另外有13%计划在未来12个月内应用服务代理。
存储
近年来云原生存储已呈爆炸式增长,其衍生产品已扩展到包括集中式、分布式和超融合架构等。
在最开始的一段时间,容器往往被用来运行无状态的微服务应用,以保证其灵活性和便捷性。然而,如今的数据表明:只有22%的受访者在生产中运行无状态应用;55%的运行有状态应用;22%还在评估中;11%计划在未来12个月内应用。
云原生的优势
对于那些在生产中应用容器和云原生项目的企业而言,其中有51%将其最大的优势归结为改进的可伸缩性和更短的部署时间;44%则归结为改进的可用性。这一结果与上一年相比稍有不同。
本文转自雷锋网,如需转载请至雷锋网官网申请授权。