雷锋网按:过去一年,在疫情的影响下,企业生产和协作模式发生了巨大改变,从原有的线下转移到线上,导致对it有着十分强烈的诉求。这时,企业如何快速实现自身的业务治理和协作管理?我们观察到的是,传统的软件开发方式无论在人力还是时间成本方面,都已经无法满足企业业务的需要,应用开发又改如何跟上市场的脚步,以提升企业生产力和市场竞争力?
1月19日,云原生计算基金会cncf(cloud native computing foundation)成员之一的chris aniszczyk撰文,预判了有关云原生技术的九个趋势。
据了解,chris aniszczyk目前是linux基金会cto,同时还是云原生计算基金会cncf的首席运营官,并负责开放容器标准(oci)组织的相关工作。
(ps.这里再科普一个小知识,cncf隶属于linux基金会下,独立于任何厂商,负责推广云原生系统。例如,cncf拥有云原生软件堆栈的关键元素,包括kubernetes和prometheus。cncf创建了一个中立的合作平台,将业内顶级开发者、最终用户和供应商整合起来,包括全球最大的云服务和企业软件公司,也有初创团队。)
首先,我们先来了解下过去一年cncf基金会组织成员方面的一些变化。
成员方面:2020年新增150多家新成员,目前总计超过668家成员。其中,kasten by veeam和字节跳动旗下火山引擎在2020年加入或升级为白金会员;cox communications、hcl technologies、hewlett packard enterprise、intuit、浦发银行和t-mobile都在2020年加入或升级为黄金会员。
项目方面:2020年,由cncf托管的helm、harbor、tikv、rook、etcd等14个项目,提升到毕业阶段;argo、contour和operator framework则进阶孵化阶段;buildpacks、cortex、dragonfly、falco、spiffe/spire和thano等20个项目,从沙箱进阶孵化阶段。
云原生技术不再是只为云服务。builtin宣称“云原生技术正转向企业”,这意味着“传统it正向云原生觉醒”。云原生技术也在推动边缘计算领域扩张的同时,许多企业也意识到“走云原生道路所带来的潜在经济效益”。
值得一提的是,dan kohn先生,作为前linux基金会公共卫生负责人、cncf执行总裁,于2020年11月日因病离世。他曾多次来到中国交流,对中国开源社区以及云原生技术的推广起到了一个非常重要的作用。这份报告中也特别缅怀了这位开源英雄。
回归正题,先来了解下chris aniszczyk根据过去一年观察所给出的九个开源技术和工具发展趋势。
1、云原生ide(集成开发环境)
相较于使用本地的emacs、vscode,未来,开发人员写代码、架构、调试等开发全生命周期,将主要以云的方式进行。例如,开发人员可以为每次pull request请求获得完整的开发环境,不仅能预先配置,还能连接到自身的部署环境中。
github上开源的两个新项目:codespaces、gitpod,就是铁证。不过,codespaces仍处于测试阶段,可以使用prometheus作为示例,在gitpod上进行体验。
因为只需要一分钟,开发人员就可以实现一个带有编译器和预览的实时开发环境。
2、kubernetes在边缘计算中的应用
尽管kubernetes诞生于大型数据中心,但kubernetes会像linux一样因环境改变而不断变化。例如,终端用户基于linux不断扩展内核,以支持移动、嵌入式等操作系统的开发。实际上,kubernetes正有着类似的经历。美国电信行业和初创公司为探索kubernetes在边缘计算中的应用,已经在通过将vnf转换为cnf以及其他开源项目k3s、kubeedge、k0s、lfedge、eclipse iofog等进行实践。(注:virtual network functions (vnfs);cloud native network functions (cnfs))
未来几年里,支撑运营商的大规模云计算和边缘计算浪潮,加之对云原生软件的反复使用以及塑造强健生态的能力,将推动kubernetes进一步发展为边缘计算核心平台。
3、云原生 wasm
web assembly(wasm)是一门新兴技术,但有望成为云原生生态中日益增长的实用程序和工作负载,尤其是wasi变得越来越成熟,而kubernetes也开始更多地被应用于边缘协调器( edge orchestrator)。
4、finops(cfm)兴起
全球疫情确确实实加速了企业it向云原生的转变。因为在这场危机中,至少有一半的公司正加速云部署计划。根据刚刚公布的调研报告state of the cloud report 2020,近60%的受访者表示,由于疫情的影响,他们对云的使用会超过原先计划。
其中,云成本优化(cloud financial management,finops)对很多企业而言是一个需要关注的话题。坦率来讲,过去半年,有一半的讨论都是关于米乐m6平台该如何启动云原生的实践。
尽管云服务商并没有主动简化云成本优化的规范和方案,因为这会导致客户更容易减少it支出,但真正的问题在于,缺乏开源创新和围绕云成本优化的标准化管理。目前很多云服务的成本管理标准有很大差异。
在cncf的项目中,很多也并没有将云成本优化当回事儿,像kubecost项目其实也还在早期阶段。linux基金会最近启动了finops基金会,以帮助生态创新。
5、rust在云原生技术中将更为常见
rust仍是一个比较年轻的编程语言,如果以redmonk编程语言排名来看,rust虽然小众但有一定的影响力潜能。鉴于目前少数cncf项目在一些非常有趣的云原生项目中开始使用rust,如microvm firecracker,未来rust可能会出现在越来越多的云原生项目中。
尽管cncf的很多项目是用golang编写的,但预计随着rust社区的成熟,基于rust的项目将在未来几年内与go的项目相提并论。
6、gitops cd/pd模型显著增长
gitops是云原生技术的持续交付模型,提供了一套可以统一部署、管理和监测应用(最初由weaveworks知名人士alexis richardson创建)的最佳实践。
gitops最核心的部分,是描述通过声明方式在git中进行版本化的期望系统状态。这实际使得一组复杂的系统更改能够被正确应用,并通过git和其他工具启用的日志进行验证。
从实用的角度讲,gitops改善了开发者体验,并伴随argo、gitlab、flux等项目的增长,gitops工具预计在今年对企业生产将带来更大影响。结合目前gitlab上的数据,gitops仍处于早期实践中,大多数公司都没有太多相关的探索,这取决于是否有越来越多的公司在大规模采用云原生软件。
7、服务目录2.0:云原生开发者看板
服务目录不是一个新概念,对于多数成熟的技术人而言,可能大家只会记得cmdb等类似的挑战。
但是,随着微服务的兴起和云原生的发展,对各类服务进行分类,并为各种实时服务源数据进行索引的能力,对于推动开发人员自动化至关重要。这包括使用服务目录以处理事件管理、管理slo等。
还有一种趋势是:开发者看板不仅具备服务目录,同时还具备自动化扩展的能力。不过值得一提的是,任何具有一定云原生部署能力的公司往往会有一个试图构建类似能力的平台基础架构团队。
8、跨云不再是梦想
kubernetes和云原生技术浪潮表明,生产环境中可以使用云原生和多云管理的方式。相关数据清晰地表明:“93%的企业会选择microsoft azure,amazon web services和google cloud等多个云服务商的使用策略。”
随着kubernetes在云市场的应用成熟,未来有望解锁编程式的跨云托管服务。一个具体示例是crossplane项目,该项目提供了一个开源的跨云控制平台,可利用kubernetes api的可扩展性来实现跨云工作负载管理。
9、ebpf成为主流
ebpf允许开发者在linux内核中运行程序,而无需更改内核代码或加载模块,这种方式可以视为沙盒扩展机制。ebpf允许新一代软件扩展linux内核,以支持改进的网络、监视和安全性等能力。
从历史上看,ebpf的缺点是需要一个高版本的内核才能利用,并且在很长一段时间里这对跟多公司都不是一个切实的选择。
但情况在发生变化,因为新版rhel开始支持ebpf了,预计很快越来越多的项目开始采用这一方式。根据sysdig发布的最新容器报告,可以看到falco在生产环境中的采用率最近正大幅上升。(雷锋网雷锋网编译)