Serverless 时代 DevOps 的最佳打开方式

简介: 本篇内容分享了Serverless 时代 DevOps 的最佳打开方式。

分享人|竞霄

直播地址:0 基础晋级 Serverless 高手课 — Serverless 时代 DevOps 的最佳打开方式


本篇内容将通过三个部分介绍Serverless时代DevOps的最佳打开方式:

  • Ÿ   DevOps简析
  • Ÿ   Serverless简析和Serverless时代DevOps的变化
  • Ÿ   Serverless时代DevOps最佳实践


一、DevOps简析

    在传统软件开发过程中,开发和运维是极其分裂的两个环节,运维不关心代码如何运作,而开发不知道代码如何运行在服务器中。互联网公司发展迅速,往往需要快读的更迭以满足用户的差异化需求,或是应对竞对的产品策略需要产品快速迭代,通过小步快跑的方式进行敏捷开发。对于每周甚至每天发布N次的场景,高效的写作文化就显得非常重要了。DevOps就在这种情况下应运而生了。


     DevOps打破了开发人员和运维人员之间的壁垒,它重视软件开发人员即DevIT运维技术人员即Ops之间的沟通合作的文化、运动或惯例。通过自动化“软件交付“和”架构变更“的流程,来使得构建、测试、发布软件能够更加快捷、频繁和可靠。另外,它包括整个软件构建的生命周期,包括集成、测试、发布和部署,以及基础架构的管理。


DevOps工程师的工作职责主要分三个方面:

  • Ÿ  管理应用全生命周期(需求、设计、开发、QA、发布和运行);
  • Ÿ  关注流程效率提升,挖掘瓶颈点并将其解决;
  • Ÿ  通过标准化、自动化、平台化的工具来解决问题。


    工程师核心关注点在于缩短开发周期、增加部署效率和更加可靠的发布。通过将DevOps的理念引入到整个系统的开发过程中,能够显著提升软件的开发效率,缩短软件的交付周期,更加适合当今快速发展的互联网时代。

 

二、Serverless简析和Serverless时代DevOps的变化

     Serverless带给开发运维的体验有哪些变化呢?如下图所见,在传统的应用构件中,需要经历资源准备阶段、研发部署阶段和运维阶段;而Serverless应用构建的流程就简化了很多,在资源准备阶段是完全不需要准备资源的,也无需创建具体的集群,在研发阶段,只需要将业务部署上来,其他像监控、日志警告等等,都是平台提供的开箱即用的功能;运营阶段也是免运维的,用户无需关注,用户只需要关注核心业务即可。

image.png


     SAE整体解决方案,实际是互联网企业一个比较标准的系统架构,整个架构自底而上的包分为几个层次。


    首先是网关层,通常完成健全的网络路由、流量转发等系列回头策略的部分;第二个是业务系统,比如像电商、物流等,有逆向有交易等。一些核心业务逻辑在业务系统中,这个业务系统往往也是采用了像Java这种比较主流的微服务框架,既然有微服务,就需要有相应的注册中心、配置中心进行辅助发现以及配置管理。比较大型的电商系统中,都会有限流、降级和熔断的措施来应对流量激增的情况。还有一些压测混沌平台来保证整体的可能性。


     底层的应用部署有两种方式,一种是传统部署,部署到ECS上;一种是在云原生时代慢慢兴起的现在已经趋向于主流的Kubernetes部署方式。Kubernetes也是部署到ECS上的。


     以上是主题的组成部分,旁的华友一些发布系统,即如何将源码到镜像再到整个集群中进行部署的构建系统。还有监控竞购服务治理等等。这些实际上也是一个大型系统,比较标准的功能。


     下图是一个比较标准的电商系统架构,当运用到SAE上,我们可以看到,用户只需要关注业务核心系统的开发,其他的都是SAE相应的解决方案。

image.png


     首先是网关层。网关层是阿里云提供的网关功能,实际上是一个开箱即用的微服务网关,对于这些微服务的框架,我们也提供了MSE/PTSAHAS微服务事件。MSE是微服务网关以及微服务的治理功能,PTS是一个压测组件,AHAS是一个限流降级的组件。

     而下面的KubernetesIaaS照应了SAE方案的特点,无需用户关注。左侧的云效是阿里云一个商业化的CSC平台。Jenkins是业界比较主流的自建CSC平台;CloudTookit是阿里云提供的一个插件,可以进行全生命周期的管控。


    右侧是实时监控、报警、服务治理等等,可以通过阿里云提供的可观测平台,比如ARMS/SLS/云监控和Prometheus等等系列阿里云提供的开箱即用的组件。


     SAE构建高效闭环的DevOps体系,应用了开发部署和运维的整个流程。中大型企业往往都使用企业级的CICD工具/产品来实现源码到镜像再到部署的全链路的流程。而个人开发者更倾向于使用轻量级的一键部署的插件,比如上述的CloudTookit/Maven-plugin插件等。无论是通过企业级工具还是开发者工具,都很方便将应用直接部署到SAE上。他们具体的流程实际上是调用SAE提供的Open API,然后也更加友好的把这些控制台上的界面、相应的配置提升到产品中。

image.png

     Ops提供了一站式生命周期的管理,比如通用的操作:创建应用、部署应用、启动应用、停止应用和扩容等等,也是SAE提供了开箱即用的功能。


     同时SAE还提供了一些非常核心的开箱即用的高级功能,比如高可用运维提供了服务治理、性能压测和限流降级。应用诊断,可以查看应用是否存在潜在问题或是当前存在哪些异常行为。


     通过上述自动化的CICD以及一键本地部署到云端和可视化智能运维的核心特性,构建了高效闭环的DevOps体系。

 

三、Serverless时代DevOps最佳实践

部署态最佳实践:CICD

    SAE的部署方式有很多种,它支持Java主流的微服务框架,比如Spring Cloud/dubbo/HSF等,可以通过War.jar进行部署。另外还有多语言应用,如PHP/Python等等。同时也支持镜像部署,后续也提供了多元化的能力。


     除了通过控台直接部署的方式外,还支持本地部署、云效部署和自建部署三种方式。本地部署是通过CloudTookit插件的方式,可以直接一键部署到SAE上。云效是企业级的CICD平台,也是完美的和SAE的集成,云效可以从代码库种拉取对应的代码,然后进行可配置的代码检查或是代用测试。然后进行预先操作,再对代码进行编译构建,这样会产生具体生成物。Jenkins也是同理部署到SAE上。

image.png

【实操过程请点击视频观看】


部署态最佳实践:一键启停

一件启停主要适用于具有多套环境的中大型企业,这些环境有比如开发环境、测试环境、线上环境等等。对于这些测试环境往往晚上是不用的,长期保留应用实例会造成资源的闲置浪费,因此SAE提供了一件启停的功能,整体可节省成本高达三分之二。另外例如,像银行这种传统企业,会有具体的上下班实践,其他时间基本没有流量,这就成为了可预测的,在这种情况下,可以使用一键启停功能来批量启动或停止具体应用。


部署态最佳实践:应用发布三板斧

    部署态集成了阿里云内部实践的应用发布三板斧,即可灰度、可监控、可回滚,借助阿里云的最佳实践,可以完整的输入到SAE整个产品的设计中。


Ÿ    可灰度,它支持单批、分批、金丝雀等多种发布策略;支持按流浪灰度,批次间自动/手动发布,分批间隔等多种发布选项。


    可监控,是指发布过程中清晰对比不同批次基础监控与应用监控指标异动,及时暴露问题,定位变相风险。


Ÿ     可回滚,是指允许人工介入控制发布流量:异常中止,一键回滚。


部署态最佳实践:金丝雀发布

    金丝雀发布在发布过程中有多个版本:灰度版本和正常版本。部署态是把灰度版本主键扩大流量,完全替换掉线上的版本。通过这个提供金丝雀发布功能就可以不断控制流量百分比。同时提供了非常细粒度的灰度策略,比如可以通过访问参数进行具体的灰度执行行为。

image.png


部署态最佳实践:全方位可观测

     全方位可观测是指对分布式系统中任何变化都可以进行观测。当系统出现问题的时候,可以进行非常便捷的定位问题,排查问题和分析问题。而当系统平稳运行时,也可以提前评估风险预测可能出现的问题。


    可观测分为三个方面,Metrics/Tracing/Logging,支持了非常多的细分特性。比如Metrics提供了基础监控、应用监控和监控告警。Logging提供了实时日志、文件日志和事件。Tracing提供请求调用链堆栈查询,应用拓扑自动发现,常用场景的指标下钻分析,事务快照查询和异常事务和慢事务捕捉。


部署态最佳实践:在线调试

     在线调试可以在本地直接访问云端某个应用的具体实例,原理是可以为这个目标实例提供端口映射,然后借助这个能力可以安装open SSH来实现SSH远程登陆,或是SFTP上传下载功能。


部署态最佳实践:权限隔离

关于权限隔离可以参考下图左侧的应用案例。

image.png


    在以上案例的情况下,企业ASAE资源的所有者,企业B是实际是资源的使用者,B具有操作权限,比如应用发布、应用管控、自动弹性等等。同时企业A希望企业B有员工变动时无需任何权限变更,以及当AB的合作终止,A可以完全撤销对B的授权。


    以上就是典型的需要权限配置功能的案例。SAE集成了阿里云的RAM,实现了密闭空格键级别以及应用级别的访问权限的配置,或可以实现某个人或某一群人的权限配置。


部署态最佳实践:端云联调

     对于微服务场景,本地开发联调提供了端云联调的能力。端云联调是测试阶段的功能,它可以实现本地和云端应用的互调。它可以基于CouldTookit插件加跳板机实现服务订阅并注册到云端SAE内置的注册中心,这样本地的服务就可以和云端的服务互调。

image.png

    它的原理是,在云上SEA应用可以在同一个VPC中新建一个ECS代理服务器,因为VPC是用户的,所以需要用户自己来建代理服务器。通过ECS代理服务器跳板机,CloudTookit插件就会连到ECS中,再通过ECS转发到SAE上,实现端云联调的功能。CloudTookit同时会把注册中心的地址以微服务的上下文进行无感输入,然后借助这个插件和这个跳板机即可实现。

相关实践学习
函数计算部署PuLID for FLUX人像写真实现智能换颜效果
只需一张图片,生成程序员专属写真!本次实验在函数计算中内置PuLID for FLUX,您可以通过函数计算+Serverless应用中心一键部署Flux模型,快速体验超写实图像生成的魅力。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
弹性计算 缓存 监控
课时5:云原生体系下 Serverless 弹性探索与实践(四)
课时5:云原生体系下 Serverless 弹性探索与实践(四)
|
监控 Devops Serverless
|
人工智能 监控 Devops
|
JSON 前端开发 Serverless
Serverless 时代,这才是 Web 应用开发正确的打开方式
如同 iPhone 当年颠覆了诺基亚,Serverless 的出现也带来了一种全新的、颠覆式的云开发架构模式。
391 0
Serverless 时代,这才是 Web 应用开发正确的打开方式
|
弹性计算 运维 监控
Serverless 时代 DevOps 的最佳打开方式
传统软件开发过程中,开发和运维是极其分裂的两个环节,运维人员不关心代码是怎样运作的,开发人员也不知道代码是如何运行的。
Serverless 时代 DevOps 的最佳打开方式
|
6月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
680 30
|
7月前
|
存储 人工智能 Serverless
函数计算进化之路:AI 应用运行时的状态剖析
AI应用正从“请求-响应”迈向“对话式智能体”,推动Serverless架构向“会话原生”演进。阿里云函数计算引领云上 AI 应用 Serverless 运行时技术创新,实现性能、隔离与成本平衡,开启Serverless AI新范式。
709 12
|
12月前
|
SQL 分布式计算 Serverless
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
鹰角网络为应对游戏业务高频活动带来的数据潮汐、资源弹性及稳定性需求,采用阿里云 EMR Serverless Spark 替代原有架构。迁移后实现研发效率提升,支持业务快速发展、计算效率提升,增强SLA保障,稳定性提升,降低运维成本,并支撑全球化数据架构部署。
1255 56
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
|
12月前
|
人工智能 开发框架 安全
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力,用户只需提交 npx 命令即可“零改造”将开源 MCP Server 部署到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,欢迎你在阿里云百炼和函数计算 FC 上体验 MCP 服务。
933 30
|
10月前
|
存储 编解码 Serverless
Serverless架构下的OSS应用:函数计算FC自动处理图片/视频转码(演示水印添加+缩略图生成流水线)
本文介绍基于阿里云函数计算(FC)和对象存储(OSS)构建Serverless媒体处理流水线,解决传统方案资源利用率低、运维复杂、成本高等问题。通过事件驱动机制实现图片水印添加、多规格缩略图生成及视频转码优化,支持毫秒级弹性伸缩与精确计费,提升处理效率并降低成本,适用于高并发媒体处理场景。
958 0

相关产品

  • 函数计算