近日,CNCF 发布了 2019 年年度调查报告。据调查报告显示,云原生项目在实际生产环境中的应用在持续增长,许多项目的使用率超过了 50%,18% 的受访者表示已经在应用 Service Mesh,41% 的受访者表示已经在实践 Serverless,另外 84% 的受访者已经在实际生产环境中应用容器技术。
据悉,本次调查共采访了 1337 位技术人,其中有 71% 的受访者来自员工人数超过 100 名的企业,企业员工数量超过 5000 人的受访者占 30%。从技术领域来看,三分之二的受访者来自软件技术行业,其中比较多的是软件架构师(41%)、DevOps 主管(39%)和后端开发人员(24%)。
容器
整体来看,2019 年一年容器在开发、测试和生产环境中的应用都有所增加,尤其是在生产环境中的应用,根据调查结果显示,84% 的受访者在实际生产环境中应用了容器,而在 2016 年和 2018 年的这一占比分别为 23% 和 73%。
另外,我们还发现企业对于容器的信任度也在增加,有 14% 的企业表示未来有计划在生产环境中应用容器。
容器部署的数量
企业部署容器的数量越来越多,根据调查结果显示自 2018 年以来,部署容器数量少于 250 个的受访者下降了 26%,而部署容器数量在 250 个以上的受访者增加了 28%,更值得关注的是,部署容器数量少于 50 个的受访者下降了 43%。
容器部署的难点
根据调查结果显示,43% 的受访者表示开发团队的文化氛围是容器使用和部署的最大挑战,40% 的受访者认为安全性是挑战,还有 38% 的受访者点名复杂性是容器部署的挑战。
云原生技术
Service Mesh
Service Mesh 技术在 2019 年获得了广泛的关注,但实际应用的情况和想象中的会有点差距。根据调查结果显示,只有 18% 的受访者表示他们在应用 Service Mesh,而 47% 的受访者表示正在评估 Service Mesh 项目。
根据调查结果显示,企业在实践 Service Mesh 项目时常用的三大工具是 Istio、Consul 和 Linkerd。
云原生存储
近年来,云原生存储项目变得越来越多。根据调查结果显示,14% 的受访者表示已经将云原生存储技术应用在实际生产环境的项目中,27% 的受访者表示他们正在评估云原生存储技术,只有 5% 的受访者表示他们没有计划评估或应用云原生存储技术。
目前,在实际应用中使用最多的三种云原生存储技术分别是 Amazon Elastic Block Storage(EBS)、Google Persistent Disk、Azure Disk Storage。这可能与 AWS、微软和谷歌在云计算领域的市场份额存在一些关联。
Serverless
2019 年,Serverless 获得了更多企业和技术的认可,根据调查结果显示,没有使用 Serverless 的受访者从 2018 年的 37% 下降到了 34%,另外,41% 的受访者表示已经在使用 Serverless,20% 的受访者表示计划在未来 12-18 个月应用 Serverless 技术。
企业在实践 Serverless 时,80% 会使用托管平台,20% 会选择安装软件。
在 Serverless 托管平台的调查中,排在第一的是 AWS Lambda,超过了 50%,排在第二和第三的是 Google Cloud Functions 和 Azure Functions,分别占比 18% 和 14%。
在使用可安装软件的用户中,Knative 是首选工具 (34%),其次是 OpenFaaS (15%) 和 Kubeless (11%)。
Kubernetes 相关调查
在接受调查且已经使用 Kubernetes 的用户中,43% 的受访者在生产环境中拥有 2-5 个集群。与 2018 年相比,这个占比上升了 8%。另外,还有 10% 的受访者表示他们在生产环境中使用的集群数量在 2-20 之间。
包管理器
目前比较主流的 Kubernetes 应用程序包管理器包括 Helm、Ksonnet 和 Managed Kubernetes offering,其中 Helm 是最流行的包管理器,在调查中获得了约 70% 的支持。
Ingress 工具
在 2019 年的 Ingress 调查中,Nginx 仍然处于领先地位,占比为 62%,排在第二位的是 HAProxy,占比 22%。值得注意的是,F5 战胜了 Envoy 排在了第三位,占比 19%。根据调查结果显示,59% 的受访者表示已经在生产环境中使用了 Ingress 工具,29% 的受访者表示会对 Ingress 工具进行评估。
监控、记录和跟踪
针对监视、日志记录和跟踪,大多数受访者表示他们会要求系统运行在本地基础设施中,而不会选择远程托管。根据调查结果显示,相比于跟踪,监控和日志记录解决方案的使用范围更广,23% 的受访者表示他们不使用跟踪,而不使用监控和日志记录解决方案的受访者只有 3% 左右。
部署环境
在部署本地容器时,比较流行的 Kubernetes 部署环境是 Minikube(39%) 和 Docker Kubernetes(32%)。
应用程序开发与交付
随着 DevOps、CI/CD 工具以及敏捷方法等的流行,应用程序的发布周期正在不断缩短。根据调查结果显示,以日为发布周期的应用程序从 2018 年的 15% 上升至 27%,以周为单位的发布周期从 20% 上升至 27%,而以月为发布周期的应用程序从 18% 下降到 16%。
在发布方式方面,使用自动化分布的人群比例没有太大变化,但是使用混合方式和手动方式发布应用程序的人群比例出现了变化,使用混合方式的受访者从 2018 年的 25% 上升到了 41%,而手动发布的受访者从 27% 下降到了 14%。
出现这一变化的主要原因是 CI/CD 工具的流行,目前比较主流的 CI/CD 工具包括 Jenkins 、GitLab CI/CD 和 CircleCI。另外,还有一部分受访者表示会使用自定义脚本来完成了自动化工作。
完整报告地址:
https://www.cncf.io/wp-content/uploads/2020/03/CNCF_Survey_Report.pdf
评论