工具篇:云效云原生 DevOps 解决方案(二)|学习笔记

本文涉及的产品
云效 DevOps 流水线,基础版人数 不受限
传统型负载均衡 CLB,每月750个小时 15LCU
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 快速学习工具篇:云效云原生 DevOps 解决方案(二)

开发者学堂课程【ALPD 云架构师系列-云原生 DevOps36计工具篇:云效云原生 DevOps 解决方案(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/82/detail/1267


工具篇:云效云原生 DevOps 解决方案(二)

 

内容介绍:

一、云研发时代

二、云研发时代现状及问题

三、云原生持续交付实践

四、云原生持续交付实践解决方案

五、典型场景

六、总结

四、云原生持续交付实践解决方案

前面提到了良好的愿景以及想法,那如何将其落到现实呢?这里观察一下在云效场景下,怎么落地云原生持续交付实践。下图是云效的云原生持续交付解决方案。左上角是云效方案,包括需求管理、交付协作和质量管理。当拿到产品需求时,会在这里进行需求拆分和分解,当分解完具体任务之后,

开发组会拿到具体任务,就会在任务上创建,修改代码提交。这样就流转到右上部分,也就是云效代码托管部门。当开发者把代码提交出去之后,云效的平台会对其自动进行代码扫描、代码评审、安全扫描等等测试。同时如果配置了流水线,那么当代码提交被触发之后,流水线就会被抛弃。而在流水线中间,会进行编译、构建、验证、预发,审核和发布等等。

而在流水线的运行中间,会使用 ACK 或者其他云原生的基础设施,比如在开发验证和 sip 验证中间会用到测试集群,在预发验证中会用到预发集群,在生产发布中会用到生产集群。同时会把编译构建的产物,存放到镜像服务中,被各集群拉取。而服务上线之后,就会被微服务治理平台所接管。

比如 ice,在微服务治理平台上,可以进行配置、服务、监控、容量调整等等,而一切都会通过一个反馈机制和一个度量体系,被开发者所提取。

所以基于此方案,可以实现所谓的四个基础标准:第一个原生的基础设施。第二个端到端的持续交付流水线,这里借助云效代码托管平台和云效流水线来实现。

第三个高质量的质量守护,在代码托管时,在原生中间可以提升大量的测试提示,第四个低成本高质量的服务质量体系,这里通过微服治理平台来解决。这就是云效的云原生持续交付实践的整个的操作。

 image.png

 

五、典型场景

1.函数计算持续交付场景

A 同学有了一个绝妙的商业点子,其希望能做个原型,快速验证一下。

B 同学赶在大促前给产品增加一个监控告警的功能,其很快的在本地用 Python 实现了一个告警的原型,希望能快速部署上线。C 同学是一个前端高手,Web、 Android、iOS 信手拈来,其最希望不用关心那些恼人的后端服务,因为其认为这十分繁琐。

在这种场景下,可以发现这些用户都有一个特点,其业务为轻量级,不需要关心能够达到后端的东西,想尽可能快的将业务上线。这时使用函数计算加云效是非常好的方式。如下图所示,当拿到需求的时候,会在代码仓库中去为其提交代码,代码提交之后经过云效的流水线,做一些简单的考点:例如单元测试,代码评审、审核等等。

 image.png

直接调用云效的函数发布能力就可以把函数发布到阿里云 serveriss 平台上。那么函数发布出去之后,通过在函数计算里面去配置触发器,就可以把函数的能力迅速上线,而作为普通的 web 服务,通常会用域名去带动的函数计算,所以各个端可以通过域名去访问刚刚上线的业务。

这种情况下对用户也有许多好处:

(1)专注业务逻辑开发:轻量级开发,用户不需要关心底层细节和资源情况,也无需关心服务的运维和治理。

(2)快速上线,按需付费:整个代码提交到上线分钟级,付费方面按照服务使用量来计算,有利于减少资源成本,让业务有机会进行快速试错。

(3)安全持续交付和稳定快速运行:整个研发流程有自动的安全守护的。由于基于阿里云 serveriess,可以达到非常高的基础设施稳定性和非常高的弹性,当业务突发流量上升时,可以非常轻松的应对。 

2.微服务持续交付场景

A 团队已经建立了基于 Dubbo 的微服务应用体系,但是研发运维还是老的方式,希望能升级到 DevOps 的开发交付模式。B 团队打算将现有产品从单体架构迁移到了基于 Spring Cloud 的微服务架构,可是服务治理是一个问题。C 团队基于 ECS 自建了 K8S 集群,平时还好,可大促时候资源就不够用了。面对这种情况应该采取什么做法?

在此情况下,希望将老人的微服务治理的事情交给阿里云这样专业单位处理,把交付流程的事情 Dubbo 全流程交给云效来去解决。所以可以看到会从需求开始,当需求来临时,给予一或多个微服务的应用。

那开发者就会基于此应用开发代码,然后基于这个线去做构建、编译、验证和发布,而此发布会直接发布到阿里云的 sae或 edas,那么一旦发布到 sae 或 edas 之后,这个服务治理就由 sae 或 edas 来解决。所以作为终端用户,不需要关心底层的基础设施,用了哪些 ACK 资源或者集群,容量怎么调整也不用操心。用户所要做的就是通过 sae 与暴露的一些控制方式去做服务结构,配置中心,容量调整,那么所有服务通过 SLB 做负载均衡暴露给终端用户,其好处是什么?

(1)首先它与微服务框架的深度继承,因为 sae或 edas 内置了与 Spring Cloud、 Dubbo 这样的微服互联网的继承能力,所以用户不需要关心微服务的细节,极大的降低了使用微服务的成本。

(2)其次服务扩容快,弹性高,对整个扩容可以达到秒级,这样当应对业务突发流量,可以非常好的保障服务的稳定性。同时借助类似SLB 这样的能力,可以做到非常好的网关防护作用。

(3)最后提升微服务的持续交付能力。因为整个微服务的发布、运维是基生在云效内部的,所以可以在流水线中间直接进行发布、测试和运维。这样极大的提升微服务的测试、发布、运维的效率。

 image.png

3.通用云原生持续交付场景

A 公司打算通过云原生的持续交付来提升效率、降低成本,但是自建工具的成本有点高,质量也没有保证。B 公司提供线上金融服务,对安全问题非常敏感,可是研发流程中安全问题防不胜防。C 公司打算把自建 K8S 集群切换为 ACK,以节省成本,提升弹性,但担心应用迁移成本太大。

针对这种场景存在一些解决方案。基于云效的 kanban 来做取舍的管理和加速协作。基于云效的代码,多管垂直线来做代码的开发以及整个上线流程,而在底层基于 ACK 集群能力来做基础设施的管理,那么整个的流程同样是有一个完整的反馈机制来保证,那这种场景下它的特点是什么?

(1)端到端的 DevOps 平台。从需求提出到开发,测试,上线,需求跟踪,质量管理,线上运维的一站式研发流程支持。

(2)全流程安全防护。因为整个流程都是内线安全质量,从工具链,到基础设施,到制品,到代码,都有一个非常好的安全防护体系。解决了研发过程中的安全问题。

(3)与阿里云的基础设施的深度整合,云效跟阿里云的集群服务,例如 ACK,容器,镜像服务,SLB,存在深度整合的能力。所以整个的服务可以达到免托管以及高性能,同时整个产品拥抱开源,遵循 k8s 的标准体系,所以免除了用户在从 k8s 进化过来的迁移成本。

image.png

 

六、总结

针对这几种场景来做总结,假设遇到这样的问题时,应该如何应对。第一种方案云效+FC,还是计算的方案,适用的团队是小团队,适用场景是业务处于一个快速验证和发展阶段,希望能够快速上线,快速更新,去关心业务之外的一个工作。

第二种方案云效+SAE,适合较小或者中等规模团队,它的特点是采用微服务架构,希望服务弹性高,稳定性好,服务的治理维护成本足够低。

第三种方案云效+EDAS,适用于大团队,企业级的服务,有自己的基础设施,打算迁移到企业级的微服务架构,对齐互联网最佳实践。

最后一种方案云效+ ACK,它适用于中等或较大规模团队。有自己的服务治理体系,希望研发有足够的灵活性,同时又能享受云原生和持续交付的技术红利。场景有很多,希望基于这四个场景有一个启发,可以更好去选择合适的方案。

方案

团队

适用场景

云效+FC

小团队

业务处于一个快速验证和发展阶段,希望能够快速上线,快速更新,我们去关心业务之外的一个工作

云效+SAE

较小或者中等规模团队

采用微服务架构,希望服务弹性高,稳定性好,服务的治理维护成本足够低。

云效+EDAS

大团队

企业级的服务,有自己的基础设施,打算迁移到企业级的微服务架构,对齐互联网最佳实践。

云效+ ACK

中等或较大规模团队

有自己的服务治理体系,希望研发有足够的灵活性,同时又能享受云原生和持续交付的技术红利

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
SVN版本控制系统
SVN是现在软件开发之中的主流软件版本控制工具,在工作之中利用SVN可以有效的解决多人开发的代码管理问题,本课程将为读者讲解SVN服务器的配置以及基于MyEclipse的SVN客户端插件的配置与使用,并且在讲解之中着重讲解了冲突的产生于解决。
相关文章
|
运维 数据可视化 Devops
阿里云云原生DevOps-开启企业级DevOps方案
阿里云云原生DevOps-开启企业级DevOps方案
阿里云云原生DevOps-开启企业级DevOps方案
|
存储 安全 测试技术
阿里云云原生 DevOps-云效平台六大产品(2)
阿里云云原生 DevOps-云效平台六大产品(2)
阿里云云原生 DevOps-云效平台六大产品(2)
|
存储 敏捷开发 安全
阿里云云原生 DevOps-云效平台六大产品(1)
阿里云云原生 DevOps-云效平台六大产品(1)
阿里云云原生 DevOps-云效平台六大产品(1)
|
敏捷开发 存储 运维
阿里云云原生 DevOps - DevOps 基础概念
阿里云云原生 DevOps - DevOps 基础概念
阿里云云原生 DevOps - DevOps 基础概念
|
安全 Devops 测试技术
DevOps高效开发管理-云效实践初体验
本实验带您体验通过云效产品,实现快速持续交付。
|
弹性计算 运维 Kubernetes
带你读《云原生架构白皮书2022新版》——运维提效 60%,视野数科 SAE+Jenkins 打造云原生 DevOps
带你读《云原生架构白皮书2022新版》——运维提效 60%,视野数科 SAE+Jenkins 打造云原生 DevOps
225 8
|
运维 Cloud Native Devops
【云原生|DevOps】DevOps工具精讲
【云原生|DevOps】DevOps工具精讲
206 1
|
Kubernetes 监控 Cloud Native
工具篇:云效云原生 DevOps 解决方案(一)|学习笔记
快速学习工具篇:云效云原生 DevOps 解决方案(一)
327 0
工具篇:云效云原生 DevOps 解决方案(一)|学习笔记
|
运维 Cloud Native 安全
云原生时代的软件持续交付实践(一)|学习笔记
快速学习云原生时代的软件持续交付实践(一)
121 0
云原生时代的软件持续交付实践(一)|学习笔记
|
Cloud Native 安全 架构师
云原生时代的软件持续交付实践(二)|学习笔记
快速学习云原生时代的软件持续交付实践(二)
云原生时代的软件持续交付实践(二)|学习笔记
下一篇
无影云桌面