作为中国专业的软件开发者社区,CSDN是云原生开发者重要的学习与交流平台。据CSDN 2021年官方数据统计,在3200万CSDN实名注册用户中,总计406万云原生开发者有阅读和研究云原生技术的偏好,其中包括30万资深创作者。从文章发布数量与文章阅读热度来看,容器、Docker、微服务是最受开发者关注的技术。可见,云原生技术在经过五年的高速增长期之后,成为了当下妥妥的“热门”。
因此,CSDN计划发布《2021中国云原生开发者调查报告》,力求还原当下云原生领域的开发者现状、技术应用现状,希望为云时代的开发者提供成长机遇和发展可能的分析、洞察、启发。
云时代,开发者将成为核心
通常,当我们谈及云原生,很多人并不能对其定义脱口而出,即使是不同的企业与社区组织都有着不同的理解与阐释。《多云和混合云:云原生多集群和应用管理》一书中这样解释云原生:“云原生并不是简单地使用云平台运行现有的应用程序,而是一种能充分利用云计算优势对应用程序进行设计、实现、部署、交付和操作的应用架构方法。”
这样一种“应用架构方法”,其价值是清晰而明确的。在战略层面,云原生解决了传统应用在架构、故障处理、系统迭代等方面问题;在开发层面,云原生加速了应用与基础设施资源之间的解耦,将复杂性封装到基础设施层,让开发者更关注业务价值;在应用层面,云原生作为数字化的基础设施,助力企业完成从传统时代向云时代的跨步,加速经济增长。
或许,你会觉得云原生只是众多技术星海中的一颗星辰,经过“热情高涨”时期就会“归于平淡”。但目前来看,由云原生带领的容器、虚拟化、DevOps、服务网格等技术已经成为企业数字化转型、业务上云并成功应用的关键技术。而随着数字化进程的全面、增速、深化,负责技术的开发者将在企业中越来越重要。正如CSDN董事长蒋涛所说“当业务皆被数字化和数据化以后,企业的竞争力是什么?答案是:你所拥有的开发力量”。
那么,作为数字化转型的中坚力量、云时代的核心人才,开发者需要具备何种能力或者如何提升自己呢?
提升技术,了解行业,参与开源
蒋涛认为,在云时代,开发者的机遇与挑战并存。开发者不仅要掌握新一代开发范式、学习新一代的云原生技术,未来也将朝着两大方向发展:一个方向是升级为架构级工程师,去帮助开发者开发更好的程序;另一个方向则是要转变为业务专家,以低代码驱动企业的业务发展。
MegaEase创始人、前阿里云资深架构师陈皓表示,云时代的开发者需要具备五项能力:
微服务拆分及分层。业务拆分其实是一种业务架构能力,需要熟悉业务并对业务进行抽象、解耦和提取公共功能。这是一个从代码库,到软件包,再到数据库的全面拆分,并分层堆叠。
API接口化。所有的程序模块都要通过服务化接口API的方式将其数据保护起来,并随时做好对外开入的准备。
无限伸缩随时迁移能力。所有的应用服务和中间件 都需要被设计成具备可无限伸缩的属性。与传统的IaaS层云进行联动。
服务治理。包括:服务注册发现、服务流量路由调度、配置管理、健康检查、服务间通讯、服务的弹力容错(隔离、限流、重试、幂等、熔断、降级……),以及服务观测性(日志、指针、调用链追踪、性能排名等)。
分布式的中间件。包括分布式数据库、分布式缓存、 分布式消息队列、分布式大数据处理等等。
而在火山引擎副总经理张鑫看来,应该多参与开源。因为参与开源,面对的是整个开放社区和生态,这不仅会迫使开发者更好地去提升自己的代码质量和架构能力,还可以从中找到设计很好的代码或者经验比较强的人当“师傅”。
阿里云全球技术服务部副总经理、交付技术负责人张瑞认为,云时代的开发者一方面应该在技术上“一专多能”,并且能够将技术与行业相结合。如云计算、大数据、AI这三个技术至少要掌握其一,同时对其余两项技术有深刻的理解,否则会缺乏想象力,难以产生创新。另一方面,需要深度思考行业痛点,长期积累行业经验,不断找出行业规律,并能够通过数字化的工具和手段来帮助行业解决问题、改进效率、优化组织。 一言以蔽之,未来技术不再是程序员的天花板,而是对行业创新的想象力。只有了解行业的技术人,才能成为数字化人才。
总而言之,云时代的开发者既需要专注于提升技术,又需要关注行业问题,还需要迈入开源生态。
那么,对于当前的你来说,这意味着更多挑战还是更多机遇呢?不妨聊一聊你的云原生应用现状,对于工具使用、开发痛点、技术选型等方面的感受,以及你对云时代的畅想。