走进云研发时代 阿里云发布云原生DevOps解决方案

2020年10月21日,阿里云云效DevOps平台联合云原生应用平台共同举办“阿里云云原生DevOps解决方案重磅发布”云端发布会,正式发布基于阿里巴巴最佳研发实践的云原生DevOps解决方案及典型应用场景。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

>>发布会传送门

产品详情

开发者在云研发时代遇到的挑战

阿里云智能高级解决方案架构师张裕在分享中指出,我们正处在一个云研发的时代,并总结了云研发时代的三个“要求”。第一,IT基础设施需要可靠、低成本、高弹性;第二,向用户提供的服务需要稳定、安全、高性能;第三,软件交付要持续、快速、高质量、低风险。

所谓“理想很丰满,现实很骨感”。与上述“理想状态”恰恰相反的是,在云研发时代,软件开发者遇到了诸多挑战。

第一个挑战,IT基础设施成本越来越高。在企业初创时期,可能只需要几台服务器就可以满足业务需求,但是随着业务发展,用户规模不断扩大,可能需要几排机柜、甚至一个机房才能满足需求。而且IT基础设施成本的增长的速率往往是大于业务规模增长的,这就会让开发者觉得基础设施的成本越来越高。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

第二个挑战,“发不了,老出错,时间长”。在上图中显示了A、B两款应用近半年的发布情况,其中纵轴代表发布一次所使用的时长,横轴代表发布日期,每一个绿点代表一次成功发布,红点代表失败的发布。我们可以看到,A应用半年发布了13次,但是有7次是HotFix的发布,即带紧急Bug修复的发布,而且发布时长差别特别大,从几分钟到几天都有。B应用的发布很频繁,但是发布成功率不到30%,每次发布时长都超过24小时,而且有的时候连续多天没有发布。

第三个挑战,用于新功能开发的时间越来越少。在软件研发初期,我们几乎所有的人力都可以用于软件研发,但是随着应用功能的丰富,越来越多的人力用于已有功能的维护,几乎没有时间来进行新功能开发。

云研发时代需要基于云原生的持续交付实践

那么,如何迈向云研发时代呢?我们需要基于云原生的持续交付实践,包含云原生基础设施、端到端的持续交付流水线、高质量守护和低成本、高效率的服务治理体系四个方面。

在上世纪五六十年代,标准化集装箱的采用,由此建立起一整套标准化的运输体系,有效降低了货运成本,并最终促进了经济全球化。而云原生技术中的“容器”和“集装箱”有着异曲同工之妙。张裕介绍说,云原生基础设施具备“不可变”和“标准化”两个特点,通过“不可变” 消除不一致带来的不确定性,减少不一致的风险,从而降低维护成本;通过“标准化” 简化部署,降低环境维护成本,同时降低工具链开发和学习成本。

一条标准的“端到端的持续交付流水线”一般包含需求分析、代码提交、构建、集成验证、预发、上线等环节,并且需要具备可描述、可观测、自动化三个特性。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

有了“云原生基础设施”和“端到端的持续交付流水线”之后,我们还需要“高质量的质量守护”来提升软件发布质量。质量守护是开发、测试、运维所有人的事,其实大家都是在“一条船上”,只有所有人同舟共济,共同努力,才能保障软件的高质量交付。

最后,我们需要一个低成本、高效率的服务治理体系。当一款微服务发布后,服务平台可以提供一系列服务治理体系,包括网关、服务监控、自动扩缩容等。这样开发者就可以只专注于开发代码,而不用考虑太多服务治理相关的事情。

阿里云云原生DevOps解决方案重磅发布

为帮助更多企业和开发者高质量、低成本地享受技术升级带来的研发福利,云效联合云原生团队打造了一站式云原生DevOps解决方案,无论是通用K8s场景、Spring Cloud/Dubbo微服务场景、还是轻量级的函数计算场景,云效DevOps都能从容应对。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

如上图所示,左上方是“云效看板”,产品经理可以利用“云效看板”将需求管理起来,当“需求”经过澄清和规划之后,拆分成“任务”分配到某个团队或某个开发者进行“任务执行”。开发过程中,开发者借助云效代码管理平台,创建特性变更分支。当代码被提交后,会触发特性分支监听,在这期间,云效会自动进行代码扫描、代码评审和安全扫描等。代码开发完后,开发者可以通过云效流水线,进行编译构建、开发验证、上线审核、生产发布等环节。流水线会依赖多个阿里云提供的服务,比如在编译时会依赖“镜像服务”,在开发验证、生产发布等环节会依赖ACK集群服务而当应用正式上线之后,又会依赖微服务治理服务,包括配置中心、服务监控、容量调整等等。而所有这些信息,最后会通过钉钉等方式反馈给开发者。当出现问题时,会以“缺陷”的形式体现在云效看板中。

总结来说,云效的云原生持续交付解决方案包含四个方面:第一,云原生基础设施,支持阿里云容器服务ACK、函数计算(FC)、Serverless引擎(SAE)等;第二,通过云效看板、代码管理平台、流水线实现了端到端的持续交付流水线;第三,通过云效代码管理的自动化扫描和云效流水线的检测和验证实现高质量的质量守护;第四,阿里云的微服务治理实现了低成本、高质量的服务治理体系。

云效云原生DevOps解决方案典型应用场景

云效云原生DevOps解决方案包含三个典型应用场景:函数计算持续交付场景 、微服务持续交付场景、通用云原生持续交付场景。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

“云效+函数计算”的持续交付方式比较适合开发者规模较小的初创团队。因为他们的业务往往处于快速验证和发展阶段,希望业务能快速上线、快速更新、无需关心业务之外的工作。

这样的“函数计算持续交付场景”具备三方面优势:第一,开发者可以专注于业务逻辑开发,无需关注底层细节和资源情况,也无需关注服务的运维和治理。第二,能够按照服务使用量付费,减少资源成本,并且可以实现分钟级快速上线。第三,整个研发流程基于云效DevOps平台,由云效提供自动安全守护能力;运行环境基于阿里云提供的经过大规模商业实践的基础设施,稳定性好;同时“函数平台”天然具备高弹性,可以从容应对突然业务流量。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

对于已经采用或准备采用微服务架构的中小规模开发者团队,推荐使用“云效+SAE”的持续交付方式。这种“微服务持续交付”具备如下特点:第一,Serverless 应用引擎SAE(Serverless App Engine)与spring cloud、dubbo等微服务框架深度整合,内建微服务治理能力,可有效降低使用微服务的成本。第二,基于秒级弹性能力,服务扩容快、弹性高,能够应对业务突发流量,可保障服务的稳定性。第三,内建微服务发布、运维能力,可有效提升微服务测试、发布、运维效率。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

对于有自己的服务治理体系,希望研发有足够的灵活性,同时又能享受云原生和持续交付的技术红利的中等或大型研发团队,可以使用“通用云原生持续交付”解决方案。这种交付方式有哪些优势呢?首先,云效提供从需求到线上运维的一站式研发流程支持。其次,云效提供从基础设施到DevOps工具链的全流程安全防护。第三,与阿里云基础设施和云服务深度整合,具备免托管、高性能的特性;同时由于阿里云的基础设施是完全遵循遵循Kubernetes(k8s)开源标准的,所以不存在迁移成本。

截至目前,阿里云云效已经服务十万家企业、百万开发者,帮助众安保险、光大银行、天弘基金、南方航空、上汽通用、南京银行、万科、国泰产险、上海博卡、石家庄掌讯等众多企业成功完成DevOps转型。本次云原生DevOps解决方案的发布,云效希望可以助力更多企业迈进云研发时代,实现DevOps转型“超车”。

登录“阿里云云原生DevOps解决方案重磅发布”官方网站,可以查看发布会视频回放、体验云原生DevOps场景、获取产品优惠等更多信息。