读《微服务体系建设和实践》

任钢 著

 

 

第1部分,微服务体系概述

是顺应时代的发展产生的。

微服务架构(MSA)的定义

微服务是一个完整的体系,并说明了什么是体系。(这个好)

 

第1章,微服务概述

关于微服务的一些辨证关系

辨证这个词在以往的文章中出现的比较少。

 

结构化分析设计,面向对象分析和设计,重构设计,领域设计,敏捷软件开发 = 只做好一件事。

 

第零个时代:主机时代

第一个时代:单体应用的 C/S 客户服务器时代。

第二个时代:分布式组件化应用时代。

第三个时代:SOA 时代(面向服务架构)。

第四个时代:微服务架构时代。

 

主机时代:那时应用程序都在后台,即所谓的中心大型机。当时没有服务的概念,只有计算的概念。前台终端作为输入/输出的工具。

 

第一个时代:以 CRUD 为主的单体应用。

1,程序代码汇总在一起,无法协同开发。

2,系统高度集中,非核心问题也可能导致整个系统瘫痪,稳定性差。

3,代码功能耦合度高,后期维护复杂,功能扩展困难。

4,业务功能变更或整合会导致重构整个系统,迭代时间长。

5,对开发语言的依赖性强。

 

第二个时代:

EJB , COM, CORBA 

EJB 产生了一个伟大的时代,紧接着 Spring 创造了一个新时代。但本质是同样的。

 

第三个时代:

企业内部实现数据共享,独立系统之间相互访问。

SOA 设计中有十大原则:显式消息传递,基于合约的行为,自治性,松耦合,元数据驱动等。

问题:

复杂的 ESB 总线处于核心位置;

整个系统的架构并没有实现完全的组件化及面向服务;

学习和使用门槛依然偏高;

传输效率低,无用信息较多;不利于多并发应用。

实施中对规范和标准要求比较高,实施难度高。

 

2000年 Roy Fielding 博士的论文 Architectural Styles and the Design of Network-based Software Architectures 提出了 REST

 

第四个时代:

 细粒度 SOA 

微服务是可独立部署,独立扩展,独立测试且具有单纯职责的一个小型应用程序。

独立进程,可以使用不同的开发语言实现。轻量级的通信方式。

 

定义:即微服务领域

服务:微小,独立,自治。

微服务架构:微服务本身和微服务的运行环境。

三个特征:1,有一定功能价值的服务。2,颗粒度不大。3,有自治管理能力。

 

业务微服务

    会员微服务

    订单微服务

    商品微服务

 

    员工微服务

    岗位微服务

    项目微服务

    任务微服务

技术微服务

    缓存微服务

    文件微服务

    数据微服务

    安全微服务

 

    表现微服务

    逻辑微服务

    存储微服务

是一种低耦合的软件架构。

 

微服务框架需要支持服务注册,服务发现,共享配置存储,验证和授权,请求路由,负载平衡,通信稳定性及服务监控等微服务架构基础功能。

 

微服务应用与单体应用的比较,选择

微服务的颗粒度大小的判断(辨证)

    过小灵活,耦合度低,但自治难度增大。

 微服务进程内外的辨证

组件独立性和共享性的辨证

去中心化和管理规范化之间的辨证

松耦合和敏捷性要求之间的辨证

投入成本和复杂度之间的辨证

微服务安全性与无状态性之间的辨证

    无状态的微服务缺少个体的安全认证信息。

 

不应微服务解决的问题:

技术上的纯算法问题

业务架构的抽象

研发管理流程落后

 

第2章

业务层面

    扩展能力强,快速响应业务。

    快速响应市场需求,实现迅速开发,快速交付功能。

    快速增加新功能,同时又不影响稳定性与安全性。

 

康威定律:设计系统的组织其产生的设计等价于组织间的沟通结构。

 

微服务体系

读《微服务体系建设和实践》_第1张图片

 

微服务与云原生架构的不同,33页

微服务体系与 API 开放框架平台的关系

 

 

第2部分,微服务技术体系

基础架构:

    服务发现

    注册组件

    API 网关组件

    服务容错组件

    服务监控告警日志组件

    认证授权组件

    统一配置管理组件

 

架构是如何将系统分解成不同的部分、以有各部分之间的静态结构关系和动态交互关系。

框架是一个可实例化的,部分完成的软件系统或实体。39页

IaaS,VM 虚拟化

CaaS,容器虚拟化

微服务技术框架体系不依赖 DevOps 和容器云。如果应用效果更好。

DevOps:

读《微服务体系建设和实践》_第2张图片

 

分布式消息队列系统,55页

 

微服务的集成平台自动化工具

微服务的基础设施环境

 

第4章,微服务技术架构体系

微服务技术架构体系概述

微服务运行时服务架构的组成部分

微服务运行时基础架构的组成部分

微服务运行时后端架构的组成部分

微服务技术架构设计模式

    常用微服务技术架构设计模式:171页

  • 聚合器微服务设计模式

  • 代理微服务设计模式

  • 链式微服务设计模式

  • 分支微服务设计模式

  • 数据共享微服务设计模式

  • 异步消息传递微服务设计模式

    微服务技术架构设计模式及其特性

 

第5章,微服务技术框架体系

开发型微服务基础框架平台

  • Spring Cloud 微服务框架

  • Dubbo 分布式服务框架

……

运维型微服务基础框架平台

  • Kubernetes 微服务框架

  • Docker Swarm 微服务框架

  • ZeroC IceGrid 微服务框架

  • Istio 微服务框架

 

微服务开发框架平台

  • 基于 java 的微服务开发框架

  • 基于 Microsoft .Net FRamework 的微服务开发框架

  • 基于 JavaScript 的微服务开发框架

  • 基于 PHP 的微服务开发框架

  • 基于 Go 的微服务开发框架

  • 基于 Python 的微服务开发框架

 

第3部分,微服务业务体系

第6章,微服务业务体系概述

  • 业务微服务是设计层面的服务。

  • 业务服务是需求层面的服务。

第7章,业务微服务分析设计方法论

普通服务分析和设计

领域驱动设计和微服务

六边形架构分析和设计

Clean 架构分析和设计

DCI 架构分析和设计

CQRS 架构分析和设计

 

第4部分,微服务管理体系

第8章,微服务管理体系概述

微服务管理体系的定义

微服务管理体系的内容

微服务应用成熟度级别

微服务应用的12要素原则

微服务规范

微服务度量指标

 

第9章,微服务应用的组织、人员和文化

单体架构应用的团队问题

微服务对组织、人员和文化的影响

根据微服务的需要调整组织、人员和文化

invest 原则

  • 独立性,可协商性,有价值,可以估算性,短小,可测试性

 

第10章,微服务的开发和运维流程

软件开发流程的演化历史

DevOps 概述

软件开发人员,IT 运维技术人员。

它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。

透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion

构建工具:Ant、Gradle、maven

自动部署:Capistrano、CodeDeploy

持续集成(CI):Bamboo、Hudson、Jenkins

配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail

容器:Docker、LXC、第三方厂商如AWS

编排:Kubernetes、Core、Apache Mesos、DC/OS

服务注册与发现:Zookeeper、etcd、Consul

脚本语言:python、ruby、shell

日志管理:ELK、Logentries

系统监控:Datadog、Graphite、Icinga、Nagios

性能监控:AppDynamics、New Relic、Splunk

压力测试:JMeter、Blaze Meter、loader.io

预警:PagerDuty、pingdom、厂商自带如AWS SNS

HTTP加速器:Varnish

消息总线:ActiveMQ、SQS

应用服务器:Tomcat、JBoss

Web服务器:Apache、Nginx、IIS

数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库

项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker

 

 

计划,需求,设计,开发,部署,运维,运营

  • 敏捷规范

  • 持续交付

  • IT 服务管理

  • 精益管理

在微服务下 DevOps 的实现

 

第5部分,微服务体系建设实践

第11章,传统架构迁徙到微服务架构

迁徒的必要性

需要考虑的问题

  • 需要考虑的问题

  • 业务方面的问题

  • 技术方面的问题

  • 管理方面的问题

  • 支撑方面的问题

传统架构迁徙到微服务架构的原则

传统架构迁徙到微服务架构的策略

传统架构迁徙到微服务架构的实施流程

 

第12章,新建系统的业务微服务全生命周期过程

业务微服务全生命周期过程概述

产品或平台微服务化需要考虑的问题

产品或平台业务微服务的建设步骤

 

一个讲级通透的书,代码不多,看了几页。个人感觉本书的代码不是重要的,文字的举例和说明很全面。有粗有细比较到位。从整体上讲解了微服务体系的技术、架构、框架、业务架构、管理整合及实践。本书不适合编写代码的程序员,但适合对架构(微服务架构)希望有进一步了解的人。本书的主要特点是采用体系化的思维来诠释和构建微服务体系。没有对微服务技术或框架用法进行细节说明,而是从整体上阐述的。还从微服务的落地上也进行了讲解。

 

参见:

《应用架构模式》

《ANSI/IEEE 610.12-1990 软件工程术语的标准汇编》英文

 

完。

你可能感兴趣的:(读书,架构设计)