简介: 如果说云是一种信仰,那么云原生就是一种态度,时代呼唤人人都应成为云原生开发者。
作者 | 丁宇(叔同),阿里巴巴研究员,阿里云云原生应用平台负责人
对开发者而言,这是一个最好的时代。
数字产业蓬勃发展,传统云计算产业走向成熟,大数据、物联网、人工智能、区块链各种新兴技术百花齐放,开发者大有用武之地。但与此同时,新技术层出不穷的涌现,也让开发者对现有技术能力产生焦虑,对于未来道路的选择变得困惑。
2021 年 3 月,阿里云委托 Forrester 咨询公司对中国开发者群体进行调研,通过线上问卷方式调研了 422 名包括企业内部应用开发、测试、运维等在内的不同角色人员,以及独立开发者在内的广泛开发者群体。同时为了充分揭示云原生时代对开发者群体带来的价值、机遇以及需要关注的重点云原生技术,Forrester 还访谈了企业 CTO、高校教授、开源社区专家以及开发者社区意见领袖(KOL)在内的 9 位专家。(文末下载报告)
不可否认的是,云原生让开发者看到了更多可能。云原生技术的演进为开发者提供了更加“聪明的方式”去工作,即充分利用云原生平台的组件及工具链,屏蔽底层技术并节省不必要的时间花费,更加专注地聚焦业务价值创造以及创新。如果说云是一种信仰,那么云原生就是一种态度,时代呼唤人人都应成为云原生开发者。
开发者的演进路线
纵观三十年的发展历程,一方面广大中国开发者持续发挥着巨大的经济和社会价值,另一方面社会经济的发展也在改变着全社会创造价值和实现价值的方式,并持续带来软件和应用研发交付模式的变革,从而为开发者提供一个更加广阔的空间,来充分释放想象力和创造力。
开发者的构成从最初以传统开发者为代表的群体,到逐渐兴起的云上开发者群体,再到日渐壮大的云原生开发者群体。开发者自身的使命也从曾经的企业信息化战略执行者,转变为如今的数字化转型业务赋能者,未来将进一步成为数字创新的技术引领者。
传统开发者是企业信息化战略的执行力量。在 1990 至 2010 年的二十年间,聚光灯下的掌声与赞美往往与他们无关,但却是他们在切实执行着企业决策者们的业务战略。传统开发者通过各种信息系统应用的开发与实施,帮助企业构建信息基础设施与业务平台,实现内部用户与外部客户所需的业务功能,帮助企业应对快速变化的市场环境,并不断开拓新的业务领域和新的商业模式。
虽然当前各行业的数字化转型如火如荼,但其实很多行业仍以传统的应用构建和开发模式为主。例如瀑布式开发模式,一方面要进行功能设计、开发和测试;另一方面要进行技术选型、资源准备、组件调试、持续构建和版本部署等,整个过程周期长、技术复杂,并且需要配备大量的开发团队。
随着云计算技术的成熟,传统的开发模式已经不能满足时代的发展需要,开发者开始借助云平台的力量。云上开发可以有效确保研发与运维团队的现代化水平,从平台工具层面推动研发与运维技术能力的不断提升。云上开发带来的技术能力标准化,大幅提升了开发者的工作效率,包括开发与测试环境的配置效率,功能组件、业务系统的软硬件开发效率,以及服务化、组件化、灰度化的发布与部署效率等。
但我们也看到了一个现象,多数实现应用上云的企业,其本身的应用开发模式并未实现基础性转变。在这些企业中,开发者对云计算的使用依然是局限于孤立场景,诸如基础设施层面或者特定业务应用。同时,云平台本身在开发工具链、集成服务方面的不完善也影响了云上开发模式被更多的开发者群体接纳。
紧接着,以 Docker 为代表的容器技术开始兴起,随后 K8s 厚积薄发,在开发者对性能、效率、可迁移性、可管理性和便捷性永无止境的追求中,云原生技术应运而生。云原生使得云上开发模式拥有了更加强大的工具以及新的应用构建与创新思维。当然,云原生开发者不仅仅体现在对 Docker、K8s 等新兴技术的掌握与运用,更是通过云原生技术,实现对底层技术复杂性的屏蔽,做到更好的应用集成与交付,从而帮助企业创新。Forrester 调研显示,73% 的开发者认为,云原生可以使得更多企业内部人员成为开发者。
云原生驱动新开发时代的到来
云原生是云计算的再升级。云原生包含大量新的 PaaS 层技术和新的开发理念,是释放云计算价值的最短路径,也推动着云计算的再升级。整个云原生技术栈都是基于开源、开放的技术标准,CNCF 也在致力于让云原生技术标准化,为用户提供使用云服务的标准界面,避免厂商锁定。
进一步看基于云原生技术和云原生架构重构或重写的应用。比如,基于服务网格或 Serverless 的应用,它们天然具备水平扩展的能力,可随时应对互联网时代高速增长的业务规模,同时还内置了高可用能力,因此应用无须关注分布式环境下的高可用方案。
云原生不仅是对使用云的应用架构的再升级,也是对云平台的技术和云服务的再升级。从构建云原生应用的角度,云原生对应用的重构体现在应用开发的整个生命周期中。
在这个过程中,我们看到了一些趋势:比如容器+K8s 成为技术基础设施。容器让应用运行时与环境解耦,K8s 让资源管理和基础设施解耦,向下封装基础设施层,屏蔽底层架构差异性,连接异构算力,云边端一体化,构建分布式云;向上支撑多种异构工作负载,分布式、弹性可扩展、Mesh 化解耦,推动应用架构现代化演进。可以说,容器和K8s已经变成了云计算时代的分布式操作系统。
除了在开发模式上的改变,我们也看到,在云原生的驱动下,一个全云开发的时代正在到来。
2021 年底,68% 的机构会在生产环境中使用容器,比 2020 年增长 39%,比两年前增长 240%。阿里巴巴在 2016 年实现了 100% 容器化,而在 2021 年,68% 的企业将在生产环境中使用容器。可以确定的是,容器已经成为一个绝对的趋势。
开发者云上开发意愿度达到 68%。大量开发者已经感知到云上开发所带来的变化,包括前端/后端,网页、移动端、小程序,逻辑、模型、组件等,云上开发带来了生产力的改进,效率的大幅提升等。
到 2021 年底,25% 的开发者将使用 Serverless 产品。今天,阿里云已经开始大力投入 Serverless 研发,提供了函数计算 FC、Serverless 应用引擎 SAE、Serverless 容器服务 ASK、无服务器基础设施 ASI、弹性容器实例 ECI 等产品。同时,在开发者工具方便,阿里开源了业界首个 Serverless 开发者平台——Serverless Devs,通过该平台,开发者可以一键体验 Serverless 产品,极速部署 Serverless 项目。
从广大开发者的视角,一方面开发者可以明显感受到云平台从资源、能力到价值层面的流动性,为应用开发和系统运维带来了极大的便利;另一方面,开发者也曾饱受云上云下异构的开发技术、琐碎的开发工具与割裂的协作过程的困扰,无法完全在云端进行技术实践。
随着云原生的发展与成熟,相关产品与工具正在解决开发者面临的痛点。比如容器镜像的一致封装使开发者得以实现不同环境下的应用可迁移性;代码和配置的分离有效简化了开发人员的开发测试流程;无服务器计算能够帮助开发者快速开通开发和测试集群而无需复杂配置;CI/CD 跨云构建部署能力,让开发与运维人员确保异构环境下复杂应用的快速稳定迭代。
云效作为 DevOps一站式平台,将阿里巴巴多年总结的云原生开发模式融合到产品中,为广大开发者提供好用易用的云原生研发解决方案。开箱即用的云端 IDE、代码管理平台、CICD 流水线,让开发、测试、部署全流程与云原生底座平台无缝结合,进一步降低开发者上手云原生技术的门槛,加快云原生技术转型,大幅提升软件生产效率。
在市场及技术发展的驱动下,企业应用及软件的开发与构建将走向云原生。同时,云原生开发平台的成熟也将反过来驱动更多的企业选择云原生。云原生开发模式将成为企业应用开发的必然选择。
布局开源生态,阿里云推动全云开发与实践
标准和开源加速了云原生,也推动了全云开发的更好落地。今天,阿里云在 GitHub 上开源项目总数超过 2600+,涵盖了大数据、云计算、AI、中间件、容器、Serverless 等领域,拥有超过 30000+ Contributor,超百万 GitHub Star,位列中国企业开源社区 GitHub 贡献榜首。这其中,一些开源项目也成为了相关领域的事实标准。
其中,Dubbo 已经成为国内影响力最大、使用最广泛的开源微服务框架;RocketMQ 是国内首个互联网中间件的 Apache 顶级项目,也是常年霸榜国内最受欢迎的开源中间件项目。此外,我们还有应用管理引擎 KubeVela,去年刚开源的阿里巴巴第一个边缘计算项目 OpenYurt,分布式高可用领域的混沌工程工具 ChaosBlade,服务注册发现 Nacos 以及首个 Serverless 开发者平台 Serverless Devs 等。
面向整个技术社区,阿里云把研发多年的技术成果回馈给全球顶级基金会,如开放原子开源基金会、Apache 基金会等,阿里云致力于打造一个开放的、标准的、健康良性的技术生态。一位开发者想要基于云原生技术构建一套开源架构,完全可以在阿里云生态里找到自己的工具。阿里云已经服务了大量企业级头部的用户,同时正在构建一套开放标准的技术体系,服务于全球开发者。
企业上云是趋势。阿里巴巴在国内率先开源了自研 RocketMQ,并成为 Apache 顶级开源项目。RocketMQ 为用户提供了高性能、高可靠、低延迟的消息服务,成为业内流行的金融级业务消息首选方案。随着云原生技术的发展,全面云化已是大势所趋。众多企业对消息中间件的演进有着更深层次的诉求。我们将在社区和商业同期发布 RocketMQ 5.0,全新定义“消息、事件、流”一体化融合处理的新理念。RocketMQ 5.0将在基础架构云原生化、消息流式处理以及事件驱动三个方面带来变化。
首先,基于阿里云大规模生产实践的背景,RocketMQ 5.0 将提供面向多种场景、可调整的极简弹性架构,帮助企业在资源弹性、运维复杂度、业务生态创新等方面做好平衡;其次,RocketMQ 5.0 将围绕高价值消息数据提供全新轻量化设计的流式处理框架,方便企业和开发者就近处理消息计算和分析;最后,RocketMQ 5.0 会基于开放的标准,连接云服务和开源生态,并配合 Serverless 开发模式,为用户提供低代码、无服务器的下一代事件驱动架构服务。
参考文章:终于!RocketMQ发布5.0版本:架构大重构,代码变更比例高达60%
云原生最开始提出来的时候,是以资源集群管理与运维为切入点,但是今天如果要把所有的工作负载运行在一套基础设施之上,还缺乏对应用的管理。所以我们提出,以应用为中心,关注点分离,把开发运维基础设施、合作边界、协议、方法全部定义出来,也就是一站式应用管理与交付平台 KubeVela。今年 6 月,KubeVela 进入 CNCF Sandbox,目前镜像下载量突破 30 万次,拥有 20 多家全球企业客户。今年 OAM 也被信通院立项作为行业标准。
如今,越来越多的算力和业务开始下沉到距离数据源及终端用户更近的地方。随着规模、复杂度逐日攀升,边缘计算场景下的运维能力开始不堪重负。为了推动边缘计算和云原生领域协同发展,阿里云将边缘容器服务 ACK@Edge 核心框架 OpenYurt 向业界开源,并捐赠 CNCF 。秉持业界首创的 “非侵入式”理念,OpenYurt 拥有边缘计算全场景覆盖能力,成为生态兼容场景下的领域首选平台。其应用已覆盖包括 IoT、音视频、物流等数十个行业,让云原生变得无处不在。
云原生让开发者成为更好的自己
在这样一个快速变化的时代,每一位开发者以及希望转型成为开发者的个人,都需要敏锐地把握到时代发展的脉搏、企业数字化转型需求的变化以及技术发展的走向。同时更为重要的是,在自己的舒适区域以外,要能够看到各种挑战的同时,发现自身进一步成长的空间。
无论是刚刚步入职场的年轻人,还是即将步入中年的资深工程师,每个开发者都会遇到成长过程中特有的挑战,诸如:职业生涯挑战。面对着高负荷的工作以及家庭的负担,无法再和刚毕业年轻人比拼熬夜加班,而连续加班时的工作效率也越来越难以保证;想要提升自己的技能,但面对着汹涌而来的技术浪潮,无法再有足够的精力去分辨哪些是珍珠哪些是泡沫。
随着企业纷纷上云,底层基础设施与平台工具不断标准化、自动化和智能化,在传统的技术技能体系下,自己的工作越来越被同质化甚至边缘化,职业发展的焦虑和年龄一同与日俱增;当抬起头来放眼外部的世界,却发现很难找到自己的定位;或者好不容易找到期待的机会,却又发现自己的技术经验变得狭窄而陈旧。
在调研过程中,72% 受访者反馈面对快速变化的市场环境,需要掌握更多的业务与行业知识,70% 的受访者认为随着企业愈来愈注重客户体验,需要开发者掌握相关的客户体验知识。不仅如此,各种内外部因素均对开发者的技能及素质提出了更高的要求,迫切要求开发者加速自我转型。
云原生技术的演进为开发者带来了破局之道。云原生开发模式将成为未来应用开发的主流模式,并帮助开发者差异化个人技术竞争力。从容器/K8s、微服务、服务网格到事件驱动的无服务器计算应用,从应用目录、服务目录与镜像仓库的管理到公有云、私有云、边缘网络的部署,不断发展的云原生全栈技术带给开发者全新的资源、资产与架构视角,使得开发者拥抱更现代化的技术方法、工具与最佳实践,实现自身技术能力的纵向提升与革新。
增强技术适应能力,实现跨领域发展。以容器、微服务、Serverless 为代表的云原生技术,已经让数据库、AI、大数据、音视频、区块链等技术领域都在其影响下持续推陈出新;而基于 K8s 的平台化能力,开发者在历史上第一次有机会将多种曾经彼此割裂的新兴技术领域协同起来,实现自身技术能力的横向扩展。此外,开发者有机会探索分布式应用架构设计、开发、测试、运维。不仅开拓技术视野,而且丰富开发经验,有效增强自身的竞争力和适应能力。
提升协作效能,探索业务创新。在容器和 K8s 等云原生技术的加持下,CI/CD 以及 DevOps 实践迎来了又一次飞跃式发展。应用开发流程的简化、自动化与一体化,不仅使得开发者可以更加聚焦于对业务需求与客户价值的深入理解,更加快速有效地满足客户需求;同时,通过解决业务问题,探索业务创新。
云原生为开发者实现全云实践的美好愿景提供了可能,但是开发者也要清醒地认识到,引领未来十年数字创新的使命,绝非一朝一夕之功。开发者应当以前瞻视角聚焦云原生开发者技术能力要求,关注价值实现。
技术可以推动转型,技术可以引领创新,但技术不是目的,技术要为业务服务。开发者在日常技术实践工作中,应当积极了解技术实现背后的具体业务需求,熟悉业务人员沟通语言背后的业务概念,并尽可能进一步挖掘业务需求背后的客户目标。其次,开发者也要摒弃常见的定势思维,比如客户体验就是漂亮的界面设计,体验只和 UI 有关,与技术人员无关等诸如此类的错误想法,开发者需要换位思考,让客户价值的思想融入自身的技术实践过程。
最后,开发者需要勤于思考,比如技术解决的核心业务问题是什么?这些问题的业务成因是什么?有哪些业务痛点没有考虑到,还可以做进一步增强?这样才能真正从业务与客户视角出发,由外而内地推动自身技术能力的提升。云原生技术在帮助企业快速落地业务需求的同时,也倒逼企业开发者具备商业视角,关注业务逻辑,做更有创新价值的事情。
时代呼唤云原生,这是云原生最好的时代,也是开发者最好的时代。让每一位开发者成为更好的自己,阿里云一直在路上。
原文链接
本文为阿里云原创内容,未经允许不得转载。