云计算时代,企业上云后,应用构建依然面临很多挑战,如何保障系统资源的弹性、降本增效;如何做到应用敏捷开发,实现业务快速迭代;如何保障系统的稳定以及业务的连续性,这些问题仅仅通过上云并没有完全解决。
经过多年发展,云原生变成了非常流行的技术趋势,企业从最开始关注上云到开始关注如何用好云,对于云服务商也提出了更高的要求,不仅仅是提供资源,更希望以服务的形式便捷用云。从最开始布局容器,到核心系统云原生化,再到今年提出核心云产品全面 Serverless 化,阿里云始终以先行者的视角布局技术,并不断带给业界新的想象空间。而这些布局的背后,源自于对企业用云需求的理解更深入。12月28日,在阿里云和Intel联合举办、天池平台承办的第三届云原生实战峰会上,阿里巴巴研究员、阿里云智能云原生应用平台总经理丁宇详细解读了阿里云在云原生领域的产品矩阵、最新实践与突破进展,并提出断言:Serverless 奇点已来,将引领下一代应用架构。在2006年-2010年,淘宝主要采用互联网分布式架构,同时开源了多项关键技术,比如今天耳熟能详的Dubbo、RocketMQ等,这些都是在互联网分布式技术时代沉淀并开放出来。在这个阶段,阿里完成了应用架构的互联网化。2011年到2018年也是一个关键的技术演进——核心系统的云原生化。2011年做容器化,随后进行统一调度,将大数据和在线业务混合部署,大幅提升资源使用效率和可运维性。在2019年到2020年实现了阿里巴巴全面上云。第一年阿里完成了Cloud Hosting,云当资源去用;第二年阿里完成了Cloud Native上云,更多地去使用云的技术、产品和能力。2021年到2022年完成了阿里云云原生化,这是全球所有厂商中唯一做到的。阿里云云原生化就是核心云产品、尤其是PaaS层丰富的云产品,实现全面的容器化、全面的统一调度管理,释放云底层带来的运维标准化,带来非常好的资源效率,让云产品自身也享受到云原生的红利。2022年被认为是全面Serverless化的元年。Serverless技术会带来非常大的变革, Serverless也将成为云原生的终极形态,是企业用好云的关键,推动云上研发模式的变革,推动云上架构模式的变革,所以阿里云会All in Serverless。“以前构建应用,需要买ECS实例,搭建开源软件体系然后维护它,流量大了扩容,流量小了缩容,整个过程很复杂繁琐。用了Serverless服务以后,这些问题都简化了,从半托管到全托管,所有的服务API化,无限容量充分弹性,可以组装使用,能够感受到生产力大幅度的改变。也会在软件开发的全生命周期进行优化,升级研发模式,让开发者更多的聚焦在业务上,加速迭代。”丁宇在演讲中提到。Gartner预测,到2022年,超过75%的全球组织会在他们的生产环境中运行容器化的应用,而这一数据在2020年才不到30%。容器技术已经跨越鸿沟,从早期的互联网行业到现在的千行百业,都在生产系统中使用。虽然阿里云容器服务 ACK 大幅降低了K8s的门槛,但管理和运维一个大规模、分布式的集群依然充满挑战,比方说,如何调度应用,在保障稳定的同时,提升资源利用率;如何对应用进行成本规划、分析优化;当集群出现问题后,如何及时的定位和修复。智能化可以解决这些问题,智能化是容器平台发展的必然趋势。阿里云基于过去10年的大规模容器实战经验,通过数据化手段和智能化算法,推动容器服务ACK走向智能化,通过智能化混部调度、智能化成本治理、智能化运维体验三大升级,助力企业客户精益用云,让企业和开发者可以轻松上云、高效用云、做好云上架构和全云开发。在智能化混部调度方面,阿里云今年开源了云原生混部项目Koordinator,它可以将资源效率提升100%,提供差异化 SLO 保障,应用间性能影响 <5%;以识货App为例,早期系统面临较多的挑战,运维团队压力非常大。从2020年开始识货启动了容器化改造,平台再也没有出现过中断情况。到2022年,识货系统的稳定性已经大幅提升。紧接着识货开始布局如何实现低成本和高效能,基于智能化混部调度,在线和离线业务相整合,最终识货App 节省了20%的资源成本。在智能化成本治理方面,随着企业用云程度加深,企业面临云成本管理困难的新问题,云成本优化能力成为企业用云管理的首要需求。阿里云结合业财一体化实践和FinOps理念,重磅发布 ACK FinOps 套件,通过数字化手段和智能化方法,帮助企业实现成本可视化、可优化、可控制。今年 5 月,信通院发布了《可信云•云成本优化工具能力》标准及首批评测结果。阿里云凭借在云上成本管理的产品能力,以满分的成绩通过了全部 33 个能力指标,成为国内首家通过信通院云成本优化标准的云服务商。中华保险作为国内互联网金融行业的代表之一,在云原生上云的过程中,在兼顾架构稳定性、资源成本效率、数据安全性的同时,通过容器FinOps套件提供的闲置资源巡检、租户级费用分摊、弹性与混部等方式,将企业 IT 成本治理周期从季度缩短到天级别,资源闲置率从 30% 降低到 10% 以内。在智能化运维体验上,容器服务也实现了全新升级。众所周知,Kubernetes的复杂性是阻碍很多客户采用的一个重要因素,尤其是在使用过程中遇到问题的时候,需要很多专业知识进行排查。阿里云此次重磅发布容器 AIOps套件,作为容器智能运维体系的基础,帮助企业客户实现故障防御与定位。容器AIOps套件基于阿里巴巴10年大规模容器运维经验沉淀,通过专家系统和AI算法相结合的方式,提供了全栈巡检、升级检查,智能诊断等三大功能。智能诊断目前包含200+诊断项,覆盖90%的常见问题场景。以得物App 为例,在偶发性网络抖动场景,基于ACK内核网络智能化分析,快速定位异常网络栈路径,定位时间从周缩短到小时,大幅提升运维效率。总结来看,阿里云容器服务,在基础设施层,利用面向云原生优化的新算力,提升计算效率;在容器编排层,通过弹性、混部调度等能力,让应用更加稳定;在应用架构层,利用服务网格等技术,提升应用的韧性与可伸缩性。在运营治理领域,通过FinOps套件,降低资源闲置率。这些能力升级,会进一步降低容器技术的使用门槛,让 ACK 做到普惠化,服务更广泛的客户群体。
最新的调查研究表明,超过80%的企业使用4个以上的可观测工具,工具多样性带来数据碎片化,导致企业运维效率低下、维护成本上升。解决数据碎片化的方式有两种思路,一种方式是推出一个全自研、一站式可观测产品,试图替换客户现有方案,但往往这种一站式的方案会形成另一座数据孤岛。阿里云选择另外一条路,全面拥抱开源,通过标准化数据接口,可自由定制的产品界面,帮助客户形成自己独有的、无厂商锁定的可观测体系,云原生可观测套件ACOS包含了阿里云上提供的Prometheus服务,兼容OpenTelemetry的链路追踪服务,以及Grafana服务。针对企业运维最高频的三个场景:采指标、建图表、配告警,ACOS都提供了相应功能与深度应用。在本次实战峰会,阿里云宣布可观测集成中心2.0发布,目前已经支持50+云服务一键集成,据统计,观测接入效率提升超过20%。其次,阿里云Grafana服务也推出新版9.0,预置100+常见场景指标看板模版,支持80+款主流可观测数据源集成,进一步简化操作流程,降低制作指标看板工作量50%。最后,基于Grafana发布了智能告警插件,提供高准确率的动态阈值智能告警能力和智能告警协同处理能力,全面提升告警配置和响应效率。作为企业级可观测的解决方案,光提供基础的接口、界面服务还远远不够,而是让更多的企业能”管好云、用好云“。云原生可观测套件ACOS已经成为企业必备的可观测基础设施 。缩短微服务落地路径,EDAS助力企业云原生架构升级
企业级分布式应用服务 EDAS 一直致力于云原生场景下的微服务更稳更快的落地,今年阿里云围绕微服务工作负载的特点,推出了一系列工具,助力企业云原生架构升级。首先,充分发挥 EDAS 的大集成优势,将 ALB/ARMS/ACK/ECS 等 8 种和应用架构有关的云资源,通过一张图进行可视化编排,同时融合应用运行过程中的资源使用率视图与成本分析视图,满足企业精益用云的诉求。其次,任务调度产品 SchedulerX 与 EDAS 深度融合,除了元数据的打通,更打通了任务与微服务的全链路监控与全链路灰度,这也是业界首个将任务调度的流量治理与微服务打通的产品。第三,围绕云原生容器瞬态的特点,为开发者提供了一系列工具能力,如文件浏览器、插件部署、远程调试等 20 多项能力;同时推出接口访问工具,让用户无需借助额外网络资源,可直达 VPC 内网进行服务访问与测试。随着企业用云的深入,云的能力也在不断升级。过去企业用云就是去买资源、买实例、买规格、搭应用。企业期待使用云计算应该是像水电煤一样的基础设施,但是现在这一点还没有完全实现。阿里云一直在推动产品形态、研发方式的升级,希望从提供资源到提供服务,这个服务就是即插即用的能力,企业不需要管理和维护,可以实现自动伸缩免运维,平台全托管,按用量计费,真正实现了服务化、模块化,这也是云产品升级演进的方向。目前,阿里云已经有20 多款的 Serverless产品,并且会推进核心产品全面Serverless化。回顾阿里云在Serverless 领域的演进历程:2017年推出的函数计算FC是一款FaaS产品,这是一种事件驱动的全托管计算服务,用户只需编写代码并上传,函数计算就会自动准备好计算资源,以弹性、可靠的方式运行代码,并提供完整的可观测能力,大幅简化开发运维过程。2018年推出的Serverless 应用引擎SAE是业内首款面向应用的Serverless PaaS平台,屏蔽底层IaaS和Kubernetes的复杂度,提供了零代码改造、成本更优、效率更高的应用托管方案,帮用户实现单体Web应用、微服务应用以及定时任务的Serverless化。同年,领先业界推出 Serverless 容器服务ASK,基于弹性容器实例ECI(Elastic Container Instance),可以实现 1min 扩容 2000个 pod,降低了 Kubernetes 使用门槛,让用户更专注于应用程序,而不是管理底层基础设施。2020年阿里云开源 Serverless Devs,成为业内首个支持主流 Serverless服务/框架的云原生全生命周期管理的平台。2022年9月该项目正式进入CNCF Sandbox,也成为业内首个入选的Serverless工具项目。Serverless 将云计算的粒度变得很细,企业选择是否采用 Serverless 产品不是单纯的软件问题,Serverless 背后需要有足够大的计算机集群和产品体系能力,才能保证其弹性满足企业复杂的业务需求 。阿里云提供了从容器到应用等各个层次的 Serverless 产品组合,并且坚定的推进产品体系的全面 Serverless 化。当然,在规模化落地的道路上,Serverless 也会遇到一些阻力。我们发现,企业开发者在是否采用这一问题上仍有犹豫和顾虑。丁宇在演讲中提到,这是技术发展过程中常见的现象,也符合技术发展规律的。Serverless 规模化落地需要一个契机。而今天这个契机已经到来。当前企业及开发者拥抱云计算更加积极,云已经成了一个创新平台。同时,更多产品具备了云特性,如自适应弹性、免运维等。从 Serverless 本身来讲,因为它足够先进,不是简单地替代互联网分布式架构,而是对互联网分布式架构的升级,从而形成了自己的一套体系,能够为企业带来很多显而易见的变化。由于处在不同的时期,企业会有自己不同的选择,随着 Serverless 技术发展得更成熟,相信会有更多的企业愿意拥抱 Serverless,也许像互联网分布式架构一样成为主流架构还需要 5-10 年的时间,但是先行者往往会拿到第一波红利,这会让企业更具有竞争力。目前,Java 语言仍占据国内后端开发主导地位,而 Java 语言的冷启动特性在函数计算上的并不友好。冷启动时长使得用户很难享受到 FC 毫秒计费,秒级扩容等特性带来的技术红利。冷启动问题需要从系统冷启动和应用冷启动两个部分拆解来看,对于系统冷启动,阿里云在硬件、MicroVM、操作系统、语言运行时等进行了全栈优化。阿里云函数计算 FC 在系统冷启动阶段的性能指标业界领先。而应用冷启动和用户选择的语言以及程序逻辑本身有关系。比如 Java 类应用,启动时间通常远远高于 Node.js、Python、Go 等语言,阿里云内部一直在打磨这类技术,但实际应用会比较谨慎。因为AWS SnapStart 这类技术需要客户的应用程序对 SnapStart 进行适配,否则会出现程序正确性问题。今天 AWS 支持了这个技术,做了大量基础库、三方库的适配,虽然简化了客户的复杂度,但最终仍然需要客户自己保证正确性。因此阿里云提供了一些保证兼容性的方案,希望通过持续优化尽可能减少用户的适配负担。目前,阿里云主要通过预留和闲置处理冷启动问题。另外,今年函数计算 FC 发布了 vCPU 和内存解绑的策略,客户可以更精细化管理资源配比,资源利用率再一次得到优化,成本会进一步降低。除此之外,厂商锁定(vendor lockin)也是阻碍 Serverless 规模化的一大困扰。对此,阿里云也有解法。首先,阿里云已开源了 Serverless Devs,Serverless Devs 是一个开源开放的 Serverless 开发者平台,致力于为开发者提供强大的工具链体系。得益于功能的可插拔特性,Serverless Devs 可以非常简单的支持不同云厂商的项目部署,或者一键部署到不同云平台。除了产品形态的改变之外, Serverless 同样带来了软件研发范式的改变。随着阿里云提供越来越全面的Serverless产品以后,很多云产品都变成模块化、API化、服务化,它可以进行组装,通过拖拉拽的方式就能够构建应用。这就彻底颠覆了原有的软件研发方式,大幅提升研发效率,灵活应对业务挑战。根据权威机构调研统计,组装式研发相比传统模式,可为研发提效 50%以上。 Serverless先行者已经充分享受到技术红利。作为浙江省商贸龙头企业,传统零售商超的世纪联华在2020年将应用全面部署在Serverless架构上,计算、存储、数据库全部采用Serverless产品构建,运行至今 0 事故,业务峰值翻了2翻,促销活动准备时间从周级缩短到小时级,研发运维提效30%,成本下降40%,真正的把促销活动变成常态。对于互联网企业,以南瓜电影为例,这是一家典型的“生于云,长于云”的企业。一场热映电影让南瓜电影在1小时内增加了100万用户,是平时峰值的5倍以上,流量暴涨引发网站服务一度中断,临时云上扩容也无法及时满足巨大的流量。了解到Serverless的优势后,南瓜电影果断将系统切到阿里云 Serverless 应用引擎上,整体上线仅仅耗时7天。3 天完成核心应用 API 网关上线,第 5 天验证结束 100% 流量打到 SAE 上,第 6-7 天把其余 30 多个系统快速迁移到 SAE,整个过程非常顺利。使用 SAE 后,运维效率提升 70%,成本下降超过 40%,扩容效率提升 10 倍以上。再看新兴的创业公司,Wolai 是一款云端信息协同平台,通过使用函数计算,9人团队即可保证 wolai 研发高度迭代。相比传统架构,使用函数计算可节省 50% 计算费用,人力的投入能够节省一半甚至更多。纵观过去几年云原生技术的发展历程,开放、标准的开源生态对云原生技术持续演进起到极大推动作用。开源生态带来了众多云原生领域技术创新,并成为技术进步的重要载体。木兰开源社区统计了 CNCF Landscape 中的 580 个开源项目以及他们所对应的发起企业,观察到近八年来云原生领域中企业的投入与其发起项目的影响力。得出结论,2022年阿里云在CNCF开发者协作影响力排名中 ,位列全球第二,仅次于谷歌。在多云、混合云领域, Kubernetes 经历了从单集群到多集群、混合云、多云形态进化的过程,主要聚焦解决:多地域、规模性、容灾/隔离问题。多云、多集群部署已经成为常态,云原生进入多云管理服务的时代。过去一年,诸如OCM、Kubevela 等众多云原生多云开源方案致力于打造面向多云、多集群场景的应用管理平台,支持用户将云原生化的应用扩展到分布式云,全局视角统一管理和运维分布式云资源,解决混合云、分布式云带来的技术挑战。在边缘计算领域,CI/CD、DevOps、MLOps、容器和微服务等被应用到端和边缘。边缘计算云原生旨在通过云原生架构构建边缘计算(物联网、CDN、混合云等)云边一体化协同基础设施。通过云端托管边缘资源/应用,无缝对接丰富云产品能力,提供边缘计算业务的自动化运维、高可靠性保障,提升边缘计算业务创新效率。过去一年可以看到,边缘计算正在成为云原生领域的一个重要分支,面向不同的业务场景,CNCF涌现了非常多的开源项目,如 CNCF OpenYurt等,并共同推动着这个新兴业务方向的发展,在云边协同、设备管理、轻量化、云边网络等方面带来了大量创新。长期以来,阿里云及 Intel 的工程师一直在相关领域进行探索、创新和实践,并且通过 OpenYurt 和 EdgeX Foundry 开源社区展开积极合作,共同推动云边协同标准的建立,为企业边缘设备的云原生管理能力的大规模落地提供最优路径。在应用交付领域,云原生技术的发展趋势正在朝着利用 Kubernetes 作为公共抽象层来实现高度一致的、跨云、跨环境的应用交付而不断迈进。然而,尽管 Kubernetes 在屏蔽底层基础架构细节方面表现出色,它并没有在混合与分布式的部署环境之上引入上层抽象来为软件交付进行建模。因此,在云原生开源领域诞生了以OAM/KubeVela为代表的应用交付与管理平台,也是一个独立于运行时集群的应用交付控制平面。过去一年,KubeVela在资源状态可视化、插件化,自动化等方面进行了全面的升级。此外,聚焦于云原生应用自动化(部署、发布、运维以及可用性防护)的开源项目OpenKuise,旨在解决分布式软件的打包、分发与运行的标准化问题的项目sealer,都是云原生应用交付管理领域的关键项目。在云原生 AI 领域,在过去一年,不论是开源社区(典型项目如Fluid)还是商业方案(阿里云ACK云原生AI套件)都聚焦在持续优化异构资源效率和高效运行 AI 等异构工作负载上。与此同时,另外一个和降本增效相关的就是混部技术。“混部”是一种充分利用多种应用负载之间的削峰填谷,提升Kubernetes集群资源利用率,让工作负载以更稳定、更高效、更低成本的方式去使用资源的能力。混部体系往往需要数年的打磨实践才能逐渐稳定并产生生产价值,是企业内部重金打造的成本控制内核,凝聚了众多的业务抽象和资源管理的优化经验。在过去的一年,诸如云原生混部Koordinator等优秀的开源混部项目推出和落地普及,为整个行业带来了成熟的混部、调度能力。
在微服务领域,阿里云布局了全面的开源框架或组件,在流量入口层面开源了基于 Ingress 标准的云原生网关 Higress;在治理面,开源了 Sentinel/ChaosBlade/AppActive,提供了限流降级、混沌工程、多活等技术能力,并推出OpenSergo,用来解决不同语言、不同通信协议下的微服务治理难题;在运维面,KubeVela 将面向混合/多云环境的应用交付变得非常简单高效;在服务集群层面,Apache Dubbo 和 Spring Cloud Alibaba 已经被广泛使用,此外,Apache RocketMQ 提供了异步调用的能力,Seata 提供了分布式事务的能力,Nacos 作为市场占有率极高的注册配置方案,未来则极有可能作为控制面来帮助用户提升微服务的管控体验。
阿里云提供的微服务开源技术栈之所以被越来越多的开发者选用,核心是默认高可用。首先,阿里云基于大量的生产实践,才有底气对外开源;而且自主可控,避免一些不可控的风险;其次,阿里云构建了丰富的上下游生态,微服务的核心思想是解耦,阿里云每个微服务开源项目对上下游的开源项目都是开放、无绑定的;最后是开源的云上商业版,通过对开源项目稳定性、性能、易用性的提升,对商业服务有诉求的用户提供了开源之外更多的选择。例如面对流量有损的情况,或是版本发布时没有做全链路灰度,一个线上故障引发全量业务受影响,没有控制爆炸半径等等问题,都可以通过微服务引擎 MSE 这类商业化产品来规避风险。
标准和开源加速了云原生,也推动了云原生的全面落地。把脉企业数字化需求,布局更前沿的技术,并做出关键技术决策,推动行业应用与技术持续创新,阿里云一直在路上。