进击的云原生,为开发者提供更多可能性
简介: 云原生为开发者提供了三方面便利:应用基础设施“零”维护、应用架构现代化“零”阻力、数字与物理世界“零”边界。
作者|易立 阿里云容器服务负责人
背景
云原生是云计算发展的必然产物,而云原生的持续生长也绝非偶然。
2021年,云原生呈现怎样的面貌、又带来了哪些新变化?阿里云容器服务研发总监易立近日在阿里云开发者大会发表了《云原生应用新边界》的演讲,并表示,云原生为开发者提供了三方面便利:应用基础设施“零”维护、应用架构现代化“零”阻力、数字与物理世界“零”边界。
云原生:因云而生
云原生是因云而生的技术,它根植于开发者,并提供最大云价值。
在 CNCF 2020 开发者现状报告中,现在全球有超过 470 万开发者在使用云原生技术,占全部后端开发者的 36%。开发者已经成为云原生变革最主要的推动力量。
应用基础设施“零”维护
容器、Serverless 等云原生技术持续推动计算界面上移,复杂性下沉,让开发者可以关注于业务创新而非基础设施,这样可以极大提升研发效率。
阿里云为开发者提供了全国最丰富的云原生产品,帮助企业专注于业务创新、而非基础设施建设。企业可以通过容器服务, 函数计算,服务网格,实现应用架构的互联网化,在此之上,云原生数据库、云原生 AI,云原生大数据等产品更可以帮助企业加速业务流程的数字化与智能化。
应用架构现代化“零”阻力
越来越多的企业希望通过应用现代化改造,比如微服务化、Mesh 化,带来新的的收益,更好地满足业务发展的需求。不过新技术也会给现有应用架构带来很大的冲击。利用云原生技术,可以循序渐进将现有应用架构平滑升级。
在对现有应用进行现代化改造时, 开发者需要把一个单体应用程序分拆为分布式的微服务架构, Spring Cloud / Dubbo 等微服务架构都是以 SDK 代码库的方式把服务治理逻辑构建在应用程序之中。但这种架构存在几个问题:
- 侵入性:在微服务框架中,服务治理能力的实现和生命周期与业务逻辑耦合在一起的。服务治理能力的变更和增强需要应用的重新构建和部署,导致升级和维护成本提升。
- 实现绑定:由于微服务框架代码库通常由特定语言实现,难以支持多语言(polyglot)异构系统之间的集成为挑战。
因此,社区提出 Service Mesh(服务网格)架构 —— 将应用的业务逻辑与服务治理能力解耦。服务治理的能力运行在一个独立的 Sidecar 进程之中,独立部署。通过网络拦截来实现对应用透明的服务发现、流量管理、可观测性、安全等能力。
解决了上述侵入性、绑定的问题,具体优势如下:
- 复杂性下沉:服务治理实现下沉到基础设施,可以独立演进。使得开发人员可以更加聚焦于业务应用本身。
- 零侵入:无需代码改造既可以实现零信任安全,可观测性等高阶能力。
- 多语言支持:可以透明支持多种编程语言和编程框架。
那么,微服务与服务网格是否非此即彼,鱼与熊掌不可得兼?在进行服务网格改造的同时,如何与现有微服务架构兼容并存?
随着社区的努力,服务网格和微服务可以很好地结合在一起, 支撑企业微服务架构平滑演进。
阿里云提供的托管服务网格 ASM
- 支持 Dubbo 通信协议, 通过声明式方式支持灰度发布、金丝雀发布、无损下线等能力。
- 利用阿里开源的 Nacos 服务注册中心,可以统一支持 Mesh 应用和微服务应用的服务注册与发现。Nacos 2.0 性能提升 10 倍, 有效地支持大规模服务网格应用落地。
- Apache Dubbo 3.0 也在探索 Proxyless 式,也就是采用无代理方式支持服务网格; 在 Proxyless 模式下无需 Sidecar 即可直接通过服务网格的 UDPA 协议实现对 Dubbo 应用的流量管理。这种方式可以进一步网络延迟,减少资源开销。
- 服务网格也加强了对虚拟机应用部署的支持,助力遗留应用的平滑升级。
以东风日产汽车为例,介绍企业的服务网格化迁移之路。首先,它的数据服务采用 Python / Java 等不同语言开发,Java 应用使用 Dubbo 微服务框架,Python 使用 REST/HTTP 进行服务调用,缺乏统一的服务治理能力;其次,虚拟机、容器化部署等多种方式并存,希望全面迁移到容器架构。
通过 ASM 服务网格, 无论 Python / Java 应用,是虚拟机不是还是容器化部署, 都可以加入服务网格, 以统一的、声明的方式实现服务治理。其中,现有 Dubbo 微服务应用和网格中的应用, 可以统一使用 Nacos 注册中心实现服务注册与发现, 保持现有应用架构的兼容性。
数字与物理世界“零”边界
数字化创新需要深入行业,将物理和数字世界融合在一起,才能实现创新的业务价值。云边端计算一体协同成为趋势,昨天的阿里云峰会描绘了未来云发展的方向,一云多芯,一云多形态,云与 AIoT 相结合,这有这样才能支撑无处不在的计算。而以容器为代表的云原生技术,因为其敏捷、轻量、可移植的优势,将成为下一代分布式云应用的最重要的载体。
物流是数字化创新的典型场景,围绕着人、货、机、车四个维度,涉及大量的数据处理,智能调度等复杂业务场景。以申通快递为例,每天涉及数亿包裹的中转、运输和派送。数字化技术在物流供应链优化方面发挥重要作用。申通快递基于阿里云边缘容器产品构建了整体云边端一体化架构的物流云 PaaS 平台。
- PaaS 平台在中心云负责分布式资源调度和应用管理,大数据处理和智能化分析。
- 位于各地仓储中心的边缘云节点结合 IoT 设备支持快递业务的核心流程,扫描校验等操作在本地即可完成,降低了延迟,减少了对云端的强依赖。
这样架构能够帮助企业成本下降 30%, 稳定性从 99.9% 提升到 99.95%,不但支撑了日常的业务开展,也能从容应对双十一这样的业务高峰。
菜鸟物流云 PaaS 正是利用阿里云边缘容器服务 ACK@Edge,解决了计算下沉后的分布式资源调度、应用管理、自治运维等挑战。而其背后的核心技术就是阿里云开源的 OpenYurt 项目,该项目已经成为 CNCF 沙箱项目。
边缘计算面临着算力分散,资源异构以及弱网连接等技术挑战。OpenYurt 是基于 Kubernetes 打造的云边协同计算框架,具备边缘应用管理,边缘自治自愈、边缘算力管理等核心能力。
此外,OpenYurt 坚持在原生 K8s 非侵入实现,主打标准化和开放性。在过去两年 OpenYurt 已实现在 CDN、优酷、菜鸟、工业大脑、城市大脑等行业的落地,也支撑了声网、快手等客户。
如果云是企业智能化的大脑,而 IoT 设备就是眼和手,实现了与物理世界的交互。利用 K8s 降低海量分布式设备的管理复杂性,可以将分布式应用和 IoT 设备实现统一管理和更好的协同。将云原生与 IoT 相结合,会有巨大的创新机遇。
携手VMware共建云原生IoT生态聚开源社区合力打造领域标准
阿里云容器服务负责人易立、VMware 中国研发中心研发总监路广联合宣布达成双方在“云原生边缘计算”领域的技术战略合作,希望未来依托开源社区力量,加速边缘云原生生态系统的构建,共同推动云边融合进程,帮助更多企业全面拥抱数智化转型升级。
基于共同的理想和愿景,OpenYurt 社区与 Linux 基金会下属 EdgeX Foundry 社区会在边缘计算、IoT、云原生领域深入合作:一方面,通过云原生方式重新定义 IoT 领域的设备管理模式,实现设备孪生能力;一方面,并利用 EdgeX Foundry 成熟的技术生态,让云原生应用支持各种物联网协议和设备。
阿里云开源项目 OpenYurt 和由 VMware 共同发起并维护其中国社区的开源项目 EdgeX Foundry 展开深度合作,将帮助企业和边缘业务开发者在不需要对 K8s 进行任何改造的基础下,轻松打造云边端一体化协同的 IT 架构。作为“即插即用”的开源 IoT Edge 平台,Edge X Foundry(EdgeX)支持来自不同制造商,使用不同协议的设备。同时,OpenYurt 通过原生插件即可将 Kubernetes 延伸至边缘场景,并且支持所有的上游 Kubernetes 特性。
此外,会上宣布《阿里云云原生架构实践》正式出版。这是一部从技术和商业双重视角剖析云原生如何赋能实际业务的著作,是阿里云智能云原生应用平台团队的经验总结,得到了阿里云智能总裁兼达摩院院长张建锋、阿里巴巴首席技术官程立、阿里云智能基础产品事业部负责人蒋江伟等专家的联袂推荐。
本书内容全面,对云原生所涵盖的技术和业务特性一览无余,从设计原则、模式/反模式、技术选项、设计方法、行业案例等多个维度全面总结阿里云云原生架构的方法论和实践经验。
原文链接
本文为阿里云原创内容,未经允许不得转载。