• 九个基本特征,三个容易被遗漏的内容
    1. 通过服务实现组件化;
    2. 服务按照业务能力划分组织;
    3. 服务以产品而不是项目研发;
    4. 逻辑集中在服务中,编排简单;
    5. 每个服务自主决策(技术栈,语言等等);
    6. 每个服务自主管理数据(不强制使用统一数据源);
    7. 基础设施自动化;
    8. 将服务失败当作常态纳入设计考量;
    9. 演进式设计(不求一步到位)TDD是必须的
  • 为什么云原生时代下,微服务架构设计是默认选择?
    • 微服务架构风格在粒度上更能符合云原生(镜像、API、弹性)和架构设计(按能力划分组织)的需要,所以微服务架构风格被视为云原生架构的“默认选择”。
    • 云原生的视角下,微服务的核心关注就是:如何更好的利用弹性(怎么拆,如何更好的水平拓展)+ 如何设计 API
  • 拆分依据: 弹性作为最优先的考虑要素,以业务上下文为辅助考虑因素,从而划定系统边界。通过弹性边界,就能判断某个系统是否充分利用了云平台的能力。
    • 微服务到底要多微?微到能够更好地利用弹性控制成本的大小。
    • 弹性优先原则不仅仅适用于微服务架构,而是适用于所有云原生架构
    • 云平台更擅长处理依赖吞吐量(Thoughput)的弹性依赖,而不擅长处理对依赖于响应时间(Reponse Time)的弹性依赖。 业务的天然异步性,是弹性边界的天然识别点。