这是我参与「第五届青训营 」伴学笔记创作活动的第8天,开始的开始除了准备学习相关的知识,还要规划好每天的日程。
有一段时间没总结笔记了,今天的收获主要是微服务架构的原理与治理实践。
目前大型互联网公司基本都采用微服务架构,系统架构经历了从单体架构、垂直用用架构、分布式架构、soa架构到微服务架构的演进过程。
从soa架构开始引入了“服务”和“服务注册”的概念,然而整个系统从设计上依然是中心化,需要从上至下去设计划分,在重构方面又会有很多困难。
微服务架构是彻底的服务化,通常是从下而上设计的。他的优势是具有高效的开发迭代效率,业务是独立设计的并且故障隔离相对可控。缺点是治理和运维难度急剧增加,观测挑战,安全性等问题以及分布式系统本身的复杂性。
微服务架构核心要素主要是服务治理、可观测性以及安全性问题。
服务治理包括:服务注册、服务发现、负载均衡、扩缩容、流量治理以及稳定性治理等。
可观测性包括:日志采集、日志分析、监控打点、监控大盘、异常报警以及链路追踪等。
安全性包括:身份验证、认可授权、访问令牌、审计、传输加密以及黑产攻击等。
服务治理的核心功能有服务发布、流量治理、负载均衡以及稳定性治理。
服务发布指让一个服务升级运行新的代码的过程,难点在于服务的不可用、抖动以及回滚问题。服务发布有蓝绿部署的方法,简单稳定但是需要两倍资源。灰度发布减少资源占用,但是回滚难度大,基础设施要求高。
流量治理可以基于地区、集群、实例、请求等维度。