整理 | 弯月,责编 | 郭芮
头图 | CSDN 下载自东方IC
出品 | CSDN(ID:CSDNnews)
容器的标准化使用改变了软件的开发方式,我们迎来了开发运维的时代,基于云原生的开发能够帮助我们构建更灵活、更强大的应用程序。近日,CNCF(云原生计算基金会)就发布了云原生开发现状的报告解读。
该报告通过对17,000多位软件开发人员的调查数据,对云原生开发深入分析,希望能够帮助大家更好地掌握云原生开发生态系统的当前状况。其要点包括:
全球云原生开发人员超过470万。
使用Kubernetes的开发人员超过170万。
使用serverless架构及云函数的开发人员超过330万。
Kubernetes用户更有可能影响购买决策。
51%的serverless用户使用AWS Lambda。
68%的云原生开发人员选择AWS作为云托管提供商。
简介
市场规模
据估计,全球云原生开发人员数量超过470万,占后端开发的36%。其中包括290万使用编排的用户以及330万使用云函数或serverless架构的开发人员。二者分别占据了后端开发的22%和25%。
该估算数据还考虑了150万同时使用编排和serverless技术的开发人员。
各个国家及地区的情况
全球范围内云原生技术的使用差异很大。
总的来说,欧洲和北美的容器使用率远超亚洲。容器的使用已在东欧得到普及,54%的后端开发人员使用容器。北美和西欧等发达地区的使用率也很高。在北美、西欧和以色列,一半后端开发人员都使用了容器。同时在三个地区内,25%-26%的后端开发人员采用编排技术来管理这些容器。
大洋洲地区云原生技术的使用情况非常独特。尽管容器的使用在该地区并没有其他地区那么普遍,但与全球其他地区相比,serverless以及容器编排等技术在大洋洲的普及率最高。
亚洲、中东和非洲地区的开发人员采用容器和云原生技术的速度较慢。中国的各大公司在向云的迁移方面一直滞后,并且云原生技术的使用也呈现同样的趋势。随着阿里巴巴的CaaS获得市场的青睐,相信将来东亚地区会涌现更多云原生开发人员。
云原生开发人员选择何种方式运行代码?
云原生开发人员掌握多种基础架构
云原生开发的灵活性可以让各个组织更灵活地操作分布式基础架构,并按需合理分配工作资源。因此,我们想了解与未参与云原生的开发人员相比,云原生开发人员如何利用这种灵活性,以及在何处运行代码。
与未参与云原生的开发人员相比,云原生开发人员掌握的计算基础架构确实更多。这些开发人员更加愿意在私有云、公共云、混合云和本地服务器等四种环境中运行代码,且平均使用了1.8种环境,而未参与云原生开发人员的平均值为1.5。数据显示,270万云原生开发人员(58%)在公共云上运行后端代码,220万开发人员(47%)选择了私有云,选择本地服务器的开发人员为220万(47%),而选择混合云的开发人员为170万( 36%)。
无论是云原生开发人员还是传统开发人员,选择在本地服务器上运行代码的比例都相同。这表明,尽管云原生开发人员已经掌握了云的灵活性,但他们并未放弃本地服务器。
云的使用在各个行业各不相同
虽然开发人员采用了云原生开发策略,但运行这些软件的计算资源在各个行业往往各不相同。
例如,与本地服务器或私有云相比,软件公司更倾向于在公共云中运行代码。在软件公司工作的云原生开发人员中,近三分之二在公共云中运行代码,同时该行业一半的开发人员在私有云上运行代码。
数据分析、商业智能以及硬件领域的开发人员更倾向于在公共云上运行软件。与其他行业的平均水平相比,这些行业中的云原生开发人员在公共云中运行代码的概率高7%。
在涉及敏感数据的行业工作的云原生开发人员更倾向于在本地服务器或私有云上运行代码。与其他行业相比,金融服务领域的云原生开发人员在本地服务器上运行代码的比例高12%,而医疗保健领域的开发人员的比例高8%。
他们希望通过本地计算,更好地控制敏感数据。
市场营销、娱乐和房地产领域的云原生开发人员不太可能在本地服务器上运行代码。这些行业的重点是内容,因此需要轻松快速地访问。可访问性和性能对这些领域的成功至关重要,而本地服务器可能无法满足这些要求。
另外,电信和政府/国防领域的云原生开发人员使用私有云、公共云和本地服务器的比例大致相同。这些开发人员使用公共云的比例相对较低。电信和政府领域的云原生开发人员需要更高的安全性和控制力,因此公共云并非理想选择。
云服务供应商的选择
云原生、非云原生以及其他开发人员使用云服务供应商的情况
我们发现,与传统的后端开发人员不同,云原生地开发人员更加愿意尝试不同的云供应商来托管代码。编写前端代码或其他类型软件的开发人员也倾向于使用不同的供应商。
亚马逊是使用最广泛的云供应商,云原生开发人员对它的喜爱超过了其他后端开发人员,甚至超过了编写前端代码的开发人员。与传统后端开发人员相比,云原生开发人员使用亚马逊的比例高20%。
在不使用云原生技术的圈子里,构建后端服务的开发人员更倾向于选择自托管软件。这些开发人员使用内部系统的可能性比云原生从业人员高9%。对于正在创新IT和软件开发新方法的云原生开发人员来说,选择第三方的主流云技术大概更有利。
在这三个开发人员群体中(非云原生后端开发人员、云原生后端开发人员以及其他开发人员社区),所有人对Google云平台的喜爱都很相似。三个群体共占10%。Google的云平台提供了许多Web开发工具,因此在前端开发人员中更受欢迎。前端开发人员比其他两组人更倾向于使用IBM和Oracle等大型企业软件供应商的托管服务。
云原生开发人员与非云原生开发人员使用私有云的情况
如上所示,47%的云原生开发人员都在私有云中运行代码,而未参与云原生应用构建的开发人员中37%选择私有云。许多开发人员都通过第三方来帮助管理这些私有云,但这两个群体的使用程度不尽相同。
云原生开发人员更倾向于使用第三方来管理其私有云。他们很多人都在使用多个第三方供应商,而且与传统的后端开发人员相比,他们选择主流供应商的比例更高。
云原生开发人员非常喜欢AWS作为私有云供应商,60%的云原生开发人员选用AWS。然而,作为私有云供应商,云原生开发人员与传统的后端开发人员选择微软的可能性差异非常小。
而在比较使用云原生技术与未使用云原生技术的开发时,我们发现云原生开发人员更倾向于使用VMware或Red Hat。
关于Kubernetes
60%使用编排的开发人员都在使用Kubernetes
凡是对容器和云原生技术感兴趣的开发人员都知道Kubernetes,因为它已成为编排的行业标准。但是,我们的研究表明,也并非所有开发人员都在使用Kubernetes,尽管大多数确实在使用。60%的开发人员在使用编排引擎或CaaS,而使用Kubernetes的开发人员高达170万。编排用户中有30%知道Kubernetes,但没有使用它,其余10%的人甚至不知道Kubernetes。
使用编排的开发人员中21%使用的是CaaS,而不是Kubernetes
虽然Kubernetes已成为行业标准,但开发人员使用的方式不尽相同,因此对某些开发人员而言Kubernetes的优势并不那么明显。有些开发人员按照自己的方式实现Kubernetes,而有些则使用容器即服务(CaaS)平台来帮助管理Kubernetes集群。在使用Kubernetes的开发人员中,27%的人没有使用供应商提供的管理层或CaaS,还有39%的人同时使用CaaS和Kubernetes。
我们的分析还显示,在使用编排的开发人员中,21%仅使用了CaaS,而没有使用Kubernetes。随着市场的标准化,Kubernetes成为运行CaaS的底层编排引擎,这21%的人可能需要进一步探索。
没有使用Kubernetes的开发人员选择了AWS ECS
绝大多数使用CaaS但没有使用Kubernetes的的开发人员选择了AWS ECS或EKS(68%)。大概是因为这些开发人员使用的是旧的ECS——并非基于Kubernetes。25%的用户使用Azure容器服务,而14%的用户使用Docker Swarm。
奇怪的是,在没有使用Kubernetes的人中,有11%使用的是Google Container Engine(GCE)。这可能表明使用GCE的开发人员没有意识到其背后是Kubernetes,或错误地把Kubernetes当成了上层的管理层,而不是主要技术。这些数据表明,开发人员可能在使用Kubernetes,但他们并不了解Kubernetes,甚至对这门技术一无所知。
Kubernetes用户对购买决策有影响
在使用Kubernetes的开发人员中,71%的人提出了建议或影响了决策者。这比没有使用Kubernetes的开发人员高25%。
通常,Kubernetes用户倾向于在整个过程中更多地参与开发人员工具的选择。Kubernetes用户中只有4%不参与决策过程。
Kubernetes开发人员在组织中的影响力有助于说明其在行业中的快速采用和标准化。没有使用Kubernetes的开发人员不太愿意参与选择过程,这一事实也可以解释为何有些开发人员不知道自己在使用该技术。
Serverless的使用
主导Serverless市场的三大巨头
随着Lambda的推出,亚马逊发起了一场Serverless运动,并享有抢先进入这一市场的优势。在330万Serverless用户中,目前有51%(170万)开发人员正在使用Lambda,比其最强力的竞争对手Google Cloud Functions领先21%。同时也比Azure Functions领先25%。除了这三大供应商之外,其他供应商远远落后。
尽管亚马逊在使用方面遥遥领先,但其竞争对手Google Cloud Functions和Azure Functions的人气很接近。即使有些开发人员知道Google和Azure提供的Serverless产品,但他们还是选择了AWS Lambda。根据我们的研究,Lambda持续受欢迎的两个重要驱动因素是其易用性和可扩展性。
Google Cloud Functions在商务人群中更受欢迎
Serverless供应商的使用情况取决于组织内开发人员的角色。例如,对于以商务为中心的开发人员来说,Google最具竞争力。同时兼任产品经理/市场营销/销售专业人员和首席执行官/管理人员的开发人员也更倾向于使用Google Cloud Functions。这些专业人员使用Google Cloud Functions的比例比其他岗位的开发人员高15%-17%。
亚马逊是程序员和软件开发人员这个社区的领导者,占Serverless用户的80%。在软件开发人员中,Lambda和Google Cloud Functions的使用分别占30%。
Lambda在开发运维和测试社区中也占据着强大的竞争地位,其中72%的开发运维专家和73%的测试工程师选择使用Lambda。
在UX和UI设计师人群中,AWS的优势最小,而Google更具竞争力。Google在UI设计人员中间的使用比例仅比Lambda落后12%,在UX设计人员中仅比Lambda落后6%。
微软的 Azure Functions在数据/业务分析师中获得了较高的青睐。这是唯一Azure在使用率方面领先于Google的领域。与AWS Lambda相比,Azure的使用比例仅低24%。微软在企业中的强大影响力毋庸置疑,而Azure ML Studio也是最常用的机器学习平台之一,这些都是推动其在数据/业务分析师中人气升高的因素。
参考链接:https://www.cncf.io/wp-content/uploads/2020/05/State-of-Cloud-Native-Development_CNCF_FINAL.pdf
推荐阅读
手把手教你配置VS Code 远程开发工具,工作效率提升N倍
用大白话彻底搞懂 HBase RowKey 详细设计
后端程序员必备:书写高质量SQL的30条建议
Go 远超 Python,机器学习人才极度稀缺,全球 16,655 位程序员告诉你这些真相!
任正非谈“狼文化”:华为没有 996,更没有 007
区块链必读“上链”哲学:“胖链下”与“瘦链上”
在商业中,如何与人工智能建立共生关系?
真香,朕在看了!