这两天看了一个微服务专栏,希望有个感性的认识,分两篇。

微服务的定义

是一种架构风格,一组组小的服务之间互相协作;每个服务运行在独立的进程中,服务之间采用轻量级的通信机制协助;每个服务具备业务能力,能够自动化部署;服务可以使用不同的语言开发,也可以使用不同的技术。

微服务是有特定边界的,松散耦合的面向服务的架构。

那么微服务的好处是什么呢?强调边界,独立部署,技术多样性(单体技术有的时候会让一种技术用到底,比如我们?)

坏处就是复杂度,拆分的颗粒度太细,不管是运维还是一致性都很复杂。

康威法则

微服务的理论基础就是康威法则,公司的沟通方式和组织结构决定了系统的架构,而反康威法则就是产品的架构决定了公司的组织架构。

反康威法则意味着开发者像微服务一样:专注于某一件事情,而且努力做的最好,但他们之间不是孤立的,强调沟通。

何时引入微服务

单体应用意味着随着规模变大,会遇到伸缩性的问题,部署困难,会出现技术负债,当然不代表单体应用一无是处,它仍然有架构概念。

单体应用在产品发展早期功不可没,开发效率也较高,但随着规模越来越大,微服务的效率可能更高,所以达到一定规模才建议使用微服务,100人以上?

如果搞不定单体应用就不要去搞微服务。

微服务组织架构

从职能型到跨职能型,强调End-end ownership,每个人要全程跟进,对个人的挑战很大?微服务是组织架构的重组,如何理解。

中台

是微服务的一种具体形式?

  • 业务前台:
    搭积木?
  • 业务中台:
    业务层,我们的业务层是什么?
    核心服务是什么?
  • 技术中台:
    PassS和IaaS

如果这么理解,中台并非新概念,只是一个组织概念的理解。

服务分层

和微服务的关系是什么?是为了更好的理解微服务?分层和组件化是解耦的永恒处理。

  • 基础服务、核心领域服务、公共服务、中间层服务
  • 聚合服务、适配服务、边界服务、BFF(前端和后端的中间层):
    裁剪、聚合

微服务架构总体技术体系

感觉好熟悉呢?

微服务服务划分原则 微服务的定义_业务层