服务网格历史
微服务(Microservices)
2014年,马丁·福勒在 Microservices一文中,对微服务做出了纲领性的定义,总结了微服务应该具备 的特点,如下所述:
- 在结构上,将原有的从技术角度拆分的组件,升级为从业务角度拆分的独立 运行的服务,这些服务具备各自的实现平台,并且独占自有数据,在服务之间以智能端点和哑管道的方式通信
- 在工程上,从产品而非项目的角度进行设计,强调迭代、自动化和面向故障 的设计方法
微服务架构在很大程度上提高了应用的伸缩性,方便了部门或业务之间的协作,使技术岗位能够更好地引入新技术并提高自动化程度,最终达到减耗增效的目的然而和所有新方法一样,微服务架构在解决老问题的同时,也带来了一些新问题:
- 例数量急剧增长,对部 和运维的 自动 要求更高
- 用网络调用代替内部 API ,对网络这一不可靠的基础设施依赖增强
- 调用链路变长,分布式日志追踪成为必选项目
- 日志分散严重,跟踪和分析难度加大
- 服务分散,受攻击面加大
- 在不同的服务之间存在协助关系,需要有更好的跨服务协调控制能力 。。。。。
计算机学科中的所有问题都可以在新的层次里直接或者间接的解决
容器云的出现
为了解决微服务架构产生的一些问题,以Kubernetes 为代表的容器云系统出现了,这类容器云系统以容器技术为基础,在进程级别为微服务提供了一致的部署、调度、伸缩、监控、日志等功能,但是除了进程本身的问题,微服务之间的通信和联系更加复杂,其中的观测,控制和服务质量保障都成为微服务方案的短板,因此随着Kubernetes成为事实标准,ServiceMesh顺势登场