文 | 杨阳
出品 | CSDN(ID:CSDNnews)
据相关数据统计,2019年我国云原生产业市场规模已达350.2亿元。尽管仍是新兴概念,但通过云原生的思维和方法进行系统开发、部署及管理已逐渐成为各行各业的共识。为了实现协作创新,同时降低开发成本,对云原生进行开源就显得至关重要。事实上,企业对开源的态度已从观望转变为积极参与。
陈泽辉(Keith Chan)也敏锐地发现了这一变化:“中国正从开源的用户变成贡献者,甚至是战略参与者”。据CNCF(Cloud Native Computing Foundation,云原生计算基金会,以下简称“CNCF”)的统计,超过20%的开源项目来自中国,贡献度排名上升至世界第二。在云原生应用上,68%的机构在生产过程中使用容器,31%的开发者称所在单位的容器使用量已经超过5000个。
自1997年入行,Keith Chan经历了从网络安全到开源安全,再到开源管理的各个领域。2015年,他加入Linux基金会,开始在亚太地区推广开源。现如今,作为CNCF云原生计算基金会中国区总监的他,清楚地认识到中国在云原生领域正在发生的巨变:作为底层技术,云原生正在与其他技术迅速集成,包括边缘计算、人工智能、区块链等等。而这意味着,云原生在中国的发展前景非常广阔,未来将更快速地增长。
CNCF云原生计算基金会中国区总监 Keith Chan
从概念、应用到定义:为什么是云原生?
相较云原生,开源的概念提出较早,已有二十余年。自2000年起,随着开源项目的出现一些企业逐渐开始投入使用,除了在OS(操作系统)中应用,也出现在其他程序的开发中。经过十年的发展沉淀,开源逐渐成为主流。
2009年,在从事12年网络安全之后,Keith Chan决定投身于开源的浪潮之中,选择了自己驾轻就熟的安全领域。六年后,当看到中国在开源领域发生的巨变,他再次做了一个重要决定——加入Linux基金会,负责在亚太地区推广开源项目,包括Linux Foundation的APAC战略发展。这其中,云原生和区块链底层技术是他主要负责的技术方向。通过长期实践,他发现这两项技术正是推动新兴产业进行数字化转型的重要支柱。
然而,任何技术从概念提出到普及,再到形成方法论,直至落地应用,都不是一蹴而就的。云原生作为近年来才兴起的技术,也经历了从奠基期的虚拟化,到快速发展期的IaaS、PaaS、SaaS,再到开源的历程。而它的正式提出要追溯到2013年,Matt Stine开始在推特上推广云原生概念,容器技术Docker也进入了开发者的视野。2015年开始,“云原生”一词开始在各种场合频繁出现,企业和各类机构开始纷纷采用这一技术。云原生的势不可挡被Linux基金会看在眼里,正式成立了CNCF。在Keith Chan看来,云原生技术之所以在这一时期开始普及主要在于以下三点:
通过一段时间沉淀,不少“早鸟企业”发现云原生可以极大提升资源利用率,以及尽可能地减少服务器的数量;
“早鸟开发者”发现,云原生的基础设施建设不仅提升了开发速度,更优秀的架构也使得更加快速的部署成为可能,与此同时,降低了项目延滞可能造成的风险;
对于“早鸟管理者”而言,云原生支持多云、混合云,可以在公有云之间实现转换或在多个云上运行,同时支持本地数据中心和公有云之间切换任务……
然而,尽管因为显而易见的好处而纷纷使用,云原生的官方定义却是千呼万唤始不出。直到2017年,CNCF结合在云原生推广过程中的经验,给它下了一个文本定义:
“云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格(Service Mesh)、微服务、不可变基础设施和声明式API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。”
作为亚太地区云原生技术推广舵手,Keith Chan给出了他进一步的理解:“云原生技术使组织能够在现代动态环境(例如公共云、私有云和混合云)中构建和运行可扩展的应用程序。容器、服务网格、微服务、不可变基础设施和声明式API是这种方法的例证。这些技术使松散耦合的系统具有了弹性、可管理性和可观察性。与强大的自动化相结合后,它们使工程师能够以最少的工作量频繁且可预测地进行高影响力的更改。”
为了简明扼要地说明云原生的意义,Keith Chan以“双11”举例,在他看来,如果没有云原生,没有高扩展性和灵活性的支持,电商们的“双11狂欢”只会是南柯一梦。
云原生在中国:从用户到战略参与者
近年来,越来越多中国企业认识到云原生的重要性,尤其是AI、大数据企业,因为云在公司发展中的战略地位,较早开始了解这一技术,像科大讯飞在2015年就开始接触云原生架构。从开发者角度来看,对这一新兴技术的关注开始于2015年,据CSDN数据统计,自这一年开始,开发者对云原生技术的关注经历了五年的高速增长后达到2020年的峰值。
CSDN社区的云原生技术趋势演进
在Keith Chan看来,开源管理领域这些年最大的变化是“中国从用户变成了贡献者,甚至是战略参与者”。
据CNCF对中国云原生现状的调查,发现容器技术持续迅猛增长。其中,68%的机构在生产过程中使用容器,31%的开发者称所在单位的容器使用量已经超过5000个。事实上,截至目前,CNCF超过20%的开源项目来自中国,贡献度跃升至世界第二。
那么,中国的云原生是如何一步步发展,直至做出如今成绩的呢?
为回答这个问题,Keith Chan以国内某世界500强企业为例,来说明中国的企业如何应用云原生,以及带来了哪些改变。
据他描述,在2016年,这家世界500强企业开始使用容器,但更多还是偏向虚拟化技术。当时面临比较大的问题是:如何获得更大的扩展性,从而让资源的利用率更高。在此诉求下,该企业更加深入应用了云原生技术,包括编排和调度Kubernetes、服务网格Istio、服务代理Envoy等。
经过一段时间后,这家企业的技术运维方式发生了显而易见的变化。单从Kubernetes来说,就有三个可量化的指标:1、整体资源利用率提高了20%~50%;2、应用部署时间从之前数小时缩短到5~10分钟;3、原本众多的系统维护人员降低到只需要五名。对此变化,该企业平台研发室主任感到不可思议:“在这么短的时间里面实现这么大的扩展性,是以前用虚拟化的时候是不敢想象的。”
事实上,通过云原生技术,包括Kubernetes等部署应用,行业平均交付效率提高了3~4倍,资源利用率翻了一番。
而除了云原生技术自身的优越性,它与时下新兴技术碰撞之后产生的“火花”则更引人遐想。在CSDN近日推出的《新程序员003:云原生和全面数字化实践》(以下简称“《新程序员003》”)中,小米集团副总裁崔宝秋表达了对云原生与AI、大数据等新兴技术相结合的期许,在他看来,类似于“云原生+大数据”的“强强联合”将成为云原生时代的发展趋势。对此,Keith Chan则从技术的底层逻辑上进行了诠释:“人工智能、区块链,或者是大数据都用到分布式的方法,与云原生的应用可以非常好地匹配,作为底层技术的云原生正在与其他技术实现集成。”
云原生技术最新发展:90%新应用云原生化,80%代码开源
在CSDN举办的“2021年1024程序员节——云原生时代的开发者”主题论坛上,Keith Chan介绍了云原生技术的最新发展趋势。其中,关键要点包括:
容器的使用持续增长,五年间增长300%以上;
Kubernetes、CI/CD等工具在生产中的使用率超过80%;
Severless、Service Mesh的使用持续增长,达到三成;
公有云仍占据主导,但私有云的增长最为迅速,多云的出现提供了更多的选择,同时增速可观;
90%的新应用云原生化,80%的代码开源,云原生的开发者增长了1.6倍。
“总的来说,是否使用云原生已经不是企业需要考虑的问题,而是实实在在、必须去做的事情。所以,不管是旧有的程序,还是新的分布式应用,包括边缘计算、AI、区块链、大数据等等,都需要云原生化。”Keith Chan继续强调说,未来云原生在安全方面还会有很大的增长,将出现更多相关的技术;Kubernetes将出现更多新的应用场景;同时,WebAssembly和eBPF是云原生未来发展的新领域,有更多开源项目将针对这两个领域;Chaos Engineering也将有较大增长。
除了技术本身,开源是云原生未来发展的一大趋势,主要体现在以下三点:
公有云、私有云、混合云的无缝整合;
越来越多厂商意识到不能只用自家封闭的容器,通过开源避免厂家锁定已是未来的必然趋势;
云原生开发者正在拥抱开源,对于他们来说开源更加便捷。
对于各种云之间的整合,Keith Chan表示说:“从云原生诞生起,就有一个非常重要的理念——用户可以在不同的云上无缝切换。云原生允许多种云的同时部署,不管是在公有云之间的同类转换,还是在公有云、私有云,甚至是混合云、多云等不同种类云之间,都可以做到切换。这对于用户来说,是非常大的便利。”
此外,开发者拥抱开源的趋势用数据说明更为贴切。通过调查,在全球605万云原生开发者中,有90%以上用到Kubernetes;400万左右开发者使用基于开源的Severless新技术;60%的开发者应用容器;其他包括CI/CD、分布式存储、Tracing等云原生的大部分技术都采用了开源的方式。
目前,CNCF的开源项目有100多个,其中的20%诞生在中国。包括VMware 中国的Harbour、PingCap的TiKV、阿里巴巴的Dragon Fly、华为的KubeEdge,以及百度的BFE等。
在《新程序员003》云原生专题中,不少专家也谈及云原生和开源的关系。StreamNative首席架构师李鹏辉认为,近几年诞生的与架构相关的开源项目大部分采用云原生架构设计,开源技术与生态值得信任,云可以给用户带来好的伸缩性,降低资源浪费。而CNCF推进的很多开源项目就是基于云原生架构,这也是用户上云会优先考虑的基础软件的一大特点。
至于目前的开源生态,据Keith Chan在亚太地区长期近距离地观察,他认为公司应该更加关注开源项目的长期回报,而非短期目标。在“开源正在吞噬软件”的当下,将开源作为一项长期的战略规划非常必要,包括“设立开源办公室、开源的长期参与计划拟定、围绕开源定义公司战略”等方面。
CNCF的这六年
自2015年12月底成立,CNCF已经走过六年,成为云原生技术的最大推动者。从其发布的云原生技术全景图中可以看出,生态版图已经蔚为壮观,包括数百种不同的应用和900+icon,其中不乏开源项目和创业公司。
CNCF云原生技术全景图授权《新程序员003》翻译/出品
查看下载高清云原生技术生态全景图
图中所有icon的项目团队都致力于提供云原生某个环节的解决方案,也都希望可以改变开发者的工作方式。然而,对于成百的应用和上千的项目,开发者在最初选择的时候首先是陷入无所适从、不知所措的迷茫。那么,什么样的项目对于开发者来说更加有效和便于使用?对此,Keith Chan分享了一些心得:
项目有明确的使命,可以解决某个共同的问题;
开源许可证是友好的,允许良好的协作;
技术决定是中立和透明的;
有明确的开源项目推广策略,包括定期活动、清晰的文档、参加大型开源会议等;
使用常用的通信工具,例如Slack 的Channels,不仅仅是微信,可与世界各地的开发者进行流畅的沟通。
截至目前,从CNCF毕业的项目一共16个,正在孵化中的27个。这些项目满足了以上五点,以“Envoy”为例,这是一个“云原生高性能边缘/中间/服务代理”项目,于2017年9月13日被CNCF录取,是继Kubernetes和Prometheus之后第三个毕业项目。它的使命是:专为云原生应用程序设计的边缘和服务代理。
Envoy是如何与CNCF产生“化学反应”的呢?它的创始人Matt Klein在个人博客上透露了这一过程:自2017年初Envoy走在了加速发展的档口,此时已经超出Lyft OS设备所能提供的范围,需要法律、公共关系、营销、活动组织等各方面的帮助。而CNCF雇佣的开源软件律师、营销人员、公共关系人员,以及一流的活动人员正满足了当时Envoy的发展需要。对此,Matt Klein表示说:“这些额外的资源在经营业务方面是非常宝贵的。”
但打铁还需自身硬,在各式各样的基金会中,CNCF脱颖而出,孵化出更加成功和有影响力的项目又有怎样的秘诀?对此,Keith Chan总结了以下八点:
完全中立的平台,能够增加贡献率;
CNCF技术监督委员会拟定中立且透明的技术方向决策;
项目文件资料、案例研究及其他支持服务的年度资金支持;
公正的平台,维护项目投入者利益,确保项目的独立性;
专职的媒体和分析师团队;
全职的员工;
世界级活动团队:覆盖中国、美国等国家,以及欧洲地区,开展超大型活动KubeCon+CloudNativeCon等,安排各种全球活动;
最终用户社区的参与。
未来,CNCF在云原生技术上还有六大重点开发领域,分别是:云原生安全;适用于边缘的Kubernetes;服务网格项目整合;WebAssembly和eBPF;开发解决和运维体验的项目界面,设计更简单的工作流程、可插拔的仪表盘和可扩展的、API驱动的UI;混沌工程,测试应用程序如何处理故障情况和意外事件。
结语
对于开发者来说,云原生时代意味着什么?
意味着企业会重新组织架构,以跟上云原生开发的步伐,这要求开发者熟练使用微服务和反应速度更快的架构,开发者成为开发关键业务软件的前沿和核心。
为此,Keith Chan给到云原生开发者技术成长路径的建议:
首先,从云原生技术全景图开始形成技术框架,这是了解云原生涵盖哪些技术的良好开端;然后,学习云原生培训课程,包括Kubernetes的入门学习、Serverless的入门学习等,好的课程培训可以更好的厘清思路,避免学习过程中的混沌;在学习的基础上,根据日常工作项目实践不断总结和思考,形成自己的方法论。
《新程序员003》正式上市,50余位技术专家共同创作,云原生和数字化的开发者们的一本技术精选图书。内容既有发展趋势及方法论结构,华为、阿里、字节跳动、网易、快手、微软、亚马逊、英特尔、西门子、施耐德等30多家知名公司云原生和数字化一手实战经验!
☞苹果成2021年全球最大芯片买家;Android 13首个开发者版本如期发布;三星内存部门再发“留人”奖金|极客头条
☞realityOS会是苹果的新操作系统吗?
☞开源云原生大潮下的消息和流系统演进