ServiceMesh快速入门与实践系列(一)

299 阅读2分钟

服务网格历史

微服务(Microservices)

    2014年,马丁·福勒在 Microservices一文中,对微服务做出了纲领性的定义,总结了微服务应该具备 的特点,如下所述:

  • 在结构上,将原有的从技术角度拆分的组件,升级为从业务角度拆分的独立 运行的服务,这些服务具备各自的实现平台,并且独占自有数据,在服务之间以智能端点和哑管道的方式通信
  • 在工程上,从产品而非项目的角度进行设计,强调迭代、自动化和面向故障 的设计方法

    微服务架构在很大程度上提高了应用的伸缩性,方便了部门或业务之间的协作,使技术岗位能够更好地引入新技术并提高自动化程度,最终达到减耗增效的目的然而和所有新方法一样,微服务架构在解决老问题的同时,也带来了一些新问题:

  • 例数量急剧增长,对部 和运维的 自动 要求更高
  • 用网络调用代替内部 API ,对网络这一不可靠的基础设施依赖增强
  • 调用链路变长,分布式日志追踪成为必选项目
  • 日志分散严重,跟踪和分析难度加大
  • 服务分散,受攻击面加大
  • 在不同的服务之间存在协助关系,需要有更好的跨服务协调控制能力 。。。。。

计算机学科中的所有问题都可以在新的层次里直接或者间接的解决

容器云的出现

    为了解决微服务架构产生的一些问题,以Kubernetes 为代表的容器云系统出现了,这类容器云系统以容器技术为基础,在进程级别为微服务提供了一致的部署、调度、伸缩、监控、日志等功能,但是除了进程本身的问题,微服务之间的通信和联系更加复杂,其中的观测,控制和服务质量保障都成为微服务方案的短板,因此随着Kubernetes成为事实标准,ServiceMesh顺势登场