其他
阿里云云原生架构专家王彬:云原生 Serverless 微服务落地实践
云布道师
近日,阿里云用户组(AUG)第 12 期活动在厦门举办。活动现场,阿里云云原生架构专家王彬,向参会企业代表分享了云原生 Serverless 微服务落地实践。本文根据演讲内容整理而成。
产品简介
企业应用架构的演进
企业应用上云之路
选型困难?
Serverless 应用引擎 SAE
Serverless 应用引擎[容器化/应用上云]最简平台
最佳实践
集成部署最佳实践
对接 Jenkins:SAE 对接 Jenkins,Jenkins 在业界的使用是比较广泛的,SAE 提供了 Jenkins 插件,企业用户在本地开发完应用之后,可以直接部署到 SAE。 快速部署运维:第二个是部署 SAE 的整个过程,传统云主机/K8S 的方式,需要经过几个步骤,首先需要先购买 ECS 或者创建 K8S 集群,然后企业用户按照规范部署应用,并且安装相关插件,最后程序运行时还会不少运维工作;在 SAE 上,整个操作就简单很多。SAE 免开通,只需要按照规范部署应用,程序运行之后直接通过 SAE 白屏化的操作界面直接运维,整个过程都非常简单高效。 Java冷启动:Java 冷启动利用了 Dragonwell 的能力,对于 Java 类的应用,在启动上有不错的加速效果。 一键启停:对很多业务还是非常需要的,比如企业很多应用,可以分为开发环境、运行环境、测试环境。测试环境只需要在上班时间使用,在夜间,可以完全回收测试环境资源,SAE 完全是按照资源收费的,所以资源回收之后,测试环境在夜间也不会产生任务的资源费用。
稳定性和复杂网络最佳实践
多可用区部署:稳定性方面 SAE 采用了多可用区部署,加强了机房环境的容错性。 白屏化的发布:直接在 SAE 的控制台上就可以完成应用的分批发布,比如说企业应用有十个实例,可以分批次发布,比如说先发布三个实例,然后再发布三个,最后发布剩下的四个实例,这样就可以保证应用在发布期间也可以正常对外提供服务。 复杂网络支持:再下面是 SAE 对网络的支持,像南北流量、东西流量,SAE 都是支持的,SAE 主要通过集成 SLB,NAT 网关,EIP 弹性公网等完成了各种应用的网络需求。
微服务最佳实践
弹性伸缩:SAE 除了提供一些基础的基于 CPU、Mem 这些硬件的策略,做了进一步的增强,如基于 QPS、RT、定时的一些策略,利用这些策略,可以构建业务精准弹性。 健康检查:企业用户可以直接在 SAE 控制台设置健康检查的策略。当应用有异常时,SAE 可以自动监测并重启。 微服务无损上下线:前瞻性的开发了 Agent 组件,通过 Agent 组件在微服务应用上下线时,可以达到无损的效果。 Java 微服务全链路灰度:当一个新版本上线的时候,可以引入一些特定的灰度规则,比如说 UID,企业用户可以设置某些规则的 UID 先验证功能,然后再把这个功能开放给所有的用户。
运维审计最佳实践
Web shell 登陆运行环境:虽然 SAE 是一个全托管的服务,但 SAE 是提供了入口,供企业用户登陆实际的运行环境,用于企业用户查看实际的运行环境,比如运行机器指标,环境变量等。 日志监控:日志监控分为两部分,一部分是实时的操作日志,在控制台上可以直接查看,另一部分是历史的操作日志,可以在设置应用时选择转储到 sls 或者 kafka。 权限助手和企业分账:权限助手、发布审批和企业分账主要是一些更加精细化的权限和审计管理。
SAE 上的一些最佳实践
一是免运维的能力,降低运维压力。 二是自动弹缩的能力,从容应对突增流量。 三是微服务治理方面的能力,轻松构建强大的微服务管控系统。
客户案例
案例一:谱尼测试与阿里云 SAE 联手抗疫
之前全国刚开始做核酸检验,并没有常态化,常常有些突发的情况需要加强监测,为应对业务洪峰,需要提前预估容量,运维成本非常高。 业务的洪峰应对能力是不足的,为应对突发的流量高峰,只能去手工扩机器,时效性比较低,并且系统比较复杂。 版本的迭代风险比较大,谱尼测试核酸检测是持续的,目前系统需要快速迭代,但内部没有一套开发迭代系统,应用变更风险高。
在 SAE 上快速的构建核心系统。 从容的应对流量洪峰。 实时的感知机器的健康状态,并且在机器异常时,SAE 可以自动重启。 极大的提高了运维效率和运维成本。
案例二:互动娱乐-爱奇艺体育(直播平台)
资源利用率低:在晚上的时候,有某场著名的球星比赛,就会出现流量高峰;没有热门球队或球星的比赛,流量就会很低;在流量高峰到来时,很难预测流量峰值会达到多少。爱奇艺体育之前的策略是多备机器,这种方式可以很好的应对峰值流量,但同时也导致资源利用率很低。 扩容繁琐:在实际场景中,会因为预估不准导致机器资源不足,这种只能运维同学快速扩容机器,工作量大。 缺少应用级监控:比如调用链路出现延迟的情况,很难排查具体哪一步出现了问题,定位链路场,每个环节定位繁琐。
弹性:SAE 有丰富的弹性策略,通过配置 SAE 的弹性策略,可以从容的应对突增流量。 内置监控:SAE 是内置的监控的,特别是对 Java 微服务框架的支持。所以当有类似 mysql 慢查询的时候,SAE 直接可以看到是哪一个环节出现了问题,方便企业用户有针对性的优化。 节省资源:不再需要提前准备资源。SAE 可以在 15 秒左右扩展出一个新的实例。对大多数企业用户,弹性的时间已经可以很好的满足业务需求。
/ 相关推荐 /
1. 阿里云研究员马涛:龙蜥社区做对了两件事
2. 阿里云高级技术专家史明伟:从技术升级到降本提效
3. 云栖大会|未来,万物皆是计算机?
4. Koordinator 1.0 正式发布:业界首个生产可用、面向规模场景的开源混部系统
5. 阿里云周明:磐久,下一代云计算基础设施
欢迎关注加星标✨ 每日推送不错过