全面容器化之后,来电科技如何实现微服务治理
我们讲这些挑战分为三个大的层面,他们分别是效率,稳定和成本。我们进行微服务化,本身的使命是让业务的迭代
更加高效,但当我们的微服务数量逐步增多,链路越来越长,如果不进行进一步的治理,那么引发的效率问题可能会
大于微服务架构本身带来的架构红利。
全面容器化的优势
容器化总结来说有以下这些优势:
简单讲一下全面容器化给来电科技系统带来的好处,首先就是应用部署变得非常方便,同时由于 K8s 的标准化使得
CI/CD 也变得简单,整体的发布效率大大提升;同时部署在 K8s 上的应用天然具备弹性扩缩容的能力,可以有效应
对流量洪峰;同时由于上了 K8s 后,服务按需使用资源,相比原先按照峰值长期固定保有服务器,资源利用率相对
比较低,现在可以大大节约服务器成本。相比传统集群运维非常繁琐,同时对运维人员技能要求也非常高:既要精通
lua/ansible 脚本等,又要懂云产品网络配置和监控运维。系统的运维成本非常高,阿里云容器服务 ACK 的标准化
界面能很好解决高密部署以及系统运维的问题,极大降低成本。
稳定发布三板斧的诉求
日常发布中,我们常常会有如下一些错误的想法:
部署方便,发布效率大大提升
弹性扩缩容
大大节约服务器成本
运维成本降低
这次改动的内容比较小,而且上线要求比较急,就不需要测试直接发布上线好了。
发布不需要走灰度流程,快速发布上线即可。
灰度发布没有什么用,就是一个流程而已,发布完就直接发布线上,不用等待观察。
虽然灰度发布很重要,但是灰度环境很难搭建,耗时耗力优先级并不高。
这些想法都可能让我们进行一次错误的发布。
阿里巴巴内部有安全生产三板斧概念 : 可灰度、可观测、可回滚。所有研发同学必须要掌握发布系统的灰度、观测和
回滚功能如何使用。
互联网频繁发布是常态,对于来电科技来说也是如此,系统具备灰度、观测、回滚的能力是微服务系统必须具备的能
力,灰度可以说是发布之前的必备流程,也是提升线上稳定性的关键因素。当服务有新版本要发布上线时,通过引流
一小部分流量到新版本,可以及时发现程序问题,有效阻止大面积故障的发生。业界上已经有比较成熟的服务发布策
略,比如蓝绿发布、A/B 测试以及金丝雀发布,这些发布策略主要专注于如何对单个服务进行发布。
来电科技的微服务数目众多,服务之间的依赖关系错综复杂,如果采用多套环境的硬隔离,会使得成本大幅升高,发
布方式变得复杂。有时某个功能发版依赖多个服务同时升级上线。希望可以对这些服务的新版本同时进行小流量灰度
验证,通过构建从 Ingress 网关到整个后端服务的环境隔离来对多个不同版本的服务进行灰度验证,这就是微服务
治理中的全链路灰度的能力。
《云原生架构白皮书2022新版》——各个行业面临的挑战及解决方案——全面容器化之后,来电科技如何实现微服务治理(2) https://developer.aliyun.com/article/1232865