@[toc]
对于服务治理概念的一些总结和理解,我们应该如何实践服务治理
1、什么是服务治理
服务治理企业为了确保事情顺利完成而实施的过程,包括最佳实践,架构原则,治理规程,规律等
为什么服务需要治理呢,只有服务之间存在问题了,才需要治理
当然了,服务本身,也是存在一些问题,需要治理的
2、服务治理中的一些典型问题
1、投产比:交付价值和利益相关,这是投入产出比的问题
2、审计:对于标准和章程是否可以遵守
3、隐患:服务变更容易引起不可预见的后果,如果让后果最小化
4、质量:可用性,扩展性等
5、监控:现在是怎么样一个状态,哪些地方可能会暴露出问题
6、告警:是否可以在即将出现问题时,进行提前预警
3、服务治理的关键活动
1、既有服务的升级,新服务的开发要有计划
2、服务的生命周期管理
3、服务履行哪些职能,遵从哪些规则
4、服务性能和可用性的监控
5、服务怎么调用,由谁调用
4、具体到 Spring Cloud 中,服务治理履行哪些职能,解决什么问题
1、服务的注册和发现
2、分布式配置的集中管理和热更新、以及同步问题
3、服务之间的调用拓扑关系
4、服务的性能,比如 CPU 、内存、磁盘、网络、负载怎么监控
5、众多服务的日志如果进行管理,日志的读写问题
6、对于众多服务之间行为的一个审计
7、对于流量的处理,根据版本对流量进行分发 (这个问题孵化了灰度发布、蓝绿发布、A/B测试等主题)
8、安全问题(除了外部的安全问题之外,服务与服务之间也存在安全问题,如敏感服务认证鉴权)
9、控制,我们要如何控制众多的服务实例
5、为什么服务本身也需要治理
除了这些过程中的问题之外,微服务框架本身也是需要治理的
1、比如引入的框架或者组件,对业务代码是有侵入性的
2、框架的升级成本很高
3、对于人员众多,技术栈众多的团队,框架对于多语言的支持明显不足,如果要引入其他语言就十分困难
6、延伸到 Service Mesh
随着服务治理的复杂度逐渐加大,服务演进出了 Service Mesh 架构,通过伴生服务
把处理微服务通信、治理、可观测、安全等打包成业务服务的伴生服务,具备无侵入、多语言、热升级的优点
但是同时, Service Mesh 的技术比较新,业内没有系统的解决方案,而且体系比较庞大