杨二

Machine repeats, Human creates

阅读笔记《微服务:架构与实践》

单块架构

功能集中、代码中心化、一个发布包、部署后运行在同一进程的应用程序,通常称之为单块架构应用。

单块架构通常划分三个层次:

  • 表示层,聚焦数据显示和用户交互
  • 业务逻辑层,聚焦业务逻辑处理
  • 数据访问层,聚焦数据存储与访问

逻辑上虽然划分了三层,但并不是物理上的分层,也就是说,对不同层的代码而言,经历编译、打包、部署后,所有的代码最终还是运行在同一个进程中。

单块架构优点:

  • 易于开发
  • 易于测试
  • 易于部署
  • 易于水平伸缩

单块架构缺点:

  • 维护成本增加

    随着代码量的增加,在开发人员对全局功能缺乏深度理解的情况下,修复一个缺陷,还有可能引入其他缺陷。

  • 持续交付周期长

  • 新人培养周期长

  • 技术选型成本高

  • 可扩展性差

  • 构建全功能团队难

互联网产品特点:创新成本低、需求变化快、用户群体庞大。

微服务架构

微服务架构与 SOA:

micro_and_soa

微服务本质:

  • 服务作为组件
  • 围绕业务组织团队
  • 关注产品而非项目:You build it, you run it.
  • 技术多样性
  • 业务数据独立
  • 基础设施自动化
  • 演进式架构

分布式系统的复杂度:

  • 性能
  • 可靠性
  • 异步
  • 数据一致性
  • 工具:开发、调试

微服务实践

微服务实践

如何从工程实践出发,尽早将开发、测试、部署、运维、监控的流水线打通,才能帮助团队更好地驾驭微服务。

日志聚合工具:LogStash (ELK 三大件之一)