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同时会把注册中心的地址以微服务的上下文进行无感输入,然后借助这个插件和这个跳板机即可实现。

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

热门文章

最新文章

相关产品

  • 函数计算