400-626-7377
开课时间北京 11月27-30日

微服务架构诞生的背景

单体架构的水平扩展遇到瓶颈

微服务架构设计原则

  • 1.

    高内聚、低耦合

    高内聚指微服务粒度应满足独立发布、独立部署、独立运行与独立测试;低耦合指尽量松散

  • 2.

    无缝的API集成

    不要有门槛,不涉及第三方的关联

  • 3.

    每⼀项服务分配唯⼀的资源标识

    服务器、数据库、集群都要有唯一的标识,方便追溯问题,不要两个服务共用一个标识

  • 4.

    实时流量管理

    监控服务的性能

  • 5.

    最小化数据表,以优化加载

    合理拆分数据库表

  • 6.

    通过内/外部API,持续监控

    可通过内外部工具执行监控

  • 7.

    为每个微服务隔离数据的存储

    限制数据访问和避免服务耦合

  • 8.

    去中心化

    将单体结构分解成独立的多个个体

  • 9.

    可扩展性

    扩展性要保证性能和效率是不能变的

  • 10.

    通过DevOps集成实现持续交付

    微服务一定是基于敏捷模型的

微服务架构与SOA(面向服务的架构)的区别

功能 SOA 微服务
组件大小 大块业务逻辑 单独任务或小块业务逻辑
耦合 通过松耦合 总是松耦合
公司架构 任何类型 小型、专注于功能交叉的团队
管理 着重中央管理 着重分散管理
目标 确保应用能够交互操作 执行新功能、快速拓展开发团队
代码 注重重用 注重重写
服务分层 水平服务 垂直服务
服务逻辑 自上而下 自下而上

微服务架构实现高并发高可用服务有哪些优势

  • 独立的开发环境

    将应用拆分为独立的微服务,服务之间彼此隔离,通过轻量级的通讯机制进行交互,使得开发时无需关注具体的开发环境。

  • 根据使用需求收缩

    基于服务的独立性,服务之间的耦合性降低,无论从功能上,还是架构上,我们都可以进行更为灵活的扩展,而不影响其他服务。

  • 独立的部署环境

    微服务对于访问量大的服务可以增加服务的部署数量,访问量小的服务适当的减少部署数量。

  • 易于开发和维护

    一个微服务只会关注一个特定的业务功能,所以它业务清晰、代码量少。开发和维护单个微服务相当简单。

  • 局部修改容易部署

    单个应用只要有修改,就得重新部署整个应用,微服务解决了这样的问题。

  • 技术栈不受限

    在微服务架构中,可以结合项目业务及团队的特点,合理选择技术栈。

  • 单个微服务启动较快

    单个微服务代码量较少,所以启动会比较快。

微服务架构核心技术知识体系

  • 接入层

    接入层

    主要是负责把外部的流量接入到内部的平台上,实现负载均衡。

  • 基础设施层

    基础设施层

    主要涉及的内容包括计算、网络、存储、NOC监控、安全、IDC管理等。

  • 网关层

    网关层

    网关在微服务体系当中具有非常重要的地位,它主要做反向路由、限流熔断、安全认证等等的一些跨横切面的功能。

  • 业务服务层

    业务服务层

    业务服务层分为聚合层和基础层。聚合层将内部复杂的微服务,适配成对各种不同用户体验友好和统一的API。聚合裁剪适配是聚合层的主要职责。

  • 服务支持体系

    服务支持体系

    支持体系涉及的内容包括注册发现、集中配置、限流容错、认证授权、日志聚合、监控告警、后台服务(MQ、Cache、DB、JOB)等。

  • 接入层

    平台服务

    平台服务层包括发布系统、集群资源调度、镜像治理、资源治理、IAM(权限管控)

微服务及高并发、高可用架构设计课程大纲

上午 理解微服务架构
  1.微服务架构的定义

微服务架构出现的背景
微服务架构解决的问题
微服务架构主要特征解读
微服务与SOA
微服务与中台
实施微服务架构的挑战

2.微服务整体架构

互联网架构的演进
微服务架构组成
微服务网关
微服务注册中心
微服务配置中心
微服务调用框架
微服务监控框架

下午 微服务架构设计
  3.微服务架构设计

架构与架构风格
微服务的分层与分类
领域驱动与微服务设计
微服务粒度和拆分原则
微服务架构设计原则
微服务架构常见设计模式
如何从单体架构演进到微服务架构

4.服务设计

服务的设计原则
服务的无状态设计
服务的幂等设计
服务的容错设计
服务间通信机制选择

上午 微服务架构相关方案
  5.微服务的安全访问方案

外部访问身份认证
服务间访问身份认证
服务访问授权
服务访问审计
OAuth 2认证方案
安全的进程间通讯

6.微服务的分布式事物方案

分布式事物相关理论
Sage事务处理模式
基于补偿的分布式事物方案
基于消息表的分布式事物方案
隔离性缺失的应对策略
LCN分布式事务组件

下午 微服务开发与测试
  7.微服务开发

微服务项目规范与模版
微服务接口定义描述
应用层服务实现
业务层服务实现
多资源的rest接口设计
查询接口的实现:API组合与CQRS模式
微服务异常设计
微服务日志设计
日志聚合与错误定位
API的演化与版本控制
如何处理共享库

8.微服务测试

测试相关原则
微服务测试挑战
微服务测试策略
微服务单元测试
微服务接口测试
微服务集成测试
端到端测试
微服务间契约测试

  9.微服务发布与部署

微服务开发与测试环境规划
发布包格式选择
代码管理策略
Docker容器介绍
将服务部署为容器
使用Kubernetes部署服务
使用jenkins构建持续发布生产线
微服务发布与滚动升级

 
上午 微服务治理
  10.微服务治理

IT治理与服务治理
微服务监控内容与方式
服务负载策略与弹性伸缩
服务集群与容错
服务熔断保护
服务访问流控
服务降级
APM及调用链发展史
Google Dapper与调用链跟踪原理
调用链跟踪的整体架构
调用链跟踪实战

11.高可用微服务架构设计之性能评估&扩容篇

微服务架构之服务性能评估目的
微服务架构之服务性能相关环节
微服务架构之服务性能评估工具
微服务架构之服务性能评估方法
微服务架构之服务扩容
实践案例。

下午 使用Spring Cloud实现微服务
  12. 使用Spring Cloud实现微服务

SpringBoot与SpringCloud
练习案例介绍与准备
Eureka原理介绍
使用Eureka实现服务注册与发现
使用Ribbon实现客户端负载均衡
自定义负载均衡规则
Hystrix核心机制剖析
使用Hystrix实现容错和服务降级
使用Hystrix Dashboard实现可视化监控
使用Zuul实现微服务网关
Applo配置中心使用介绍

 
上午 大型互联网系统常用架构方案
  13.互联网系统架构

互联网系统的特点
互联网系统架构的挑战
互联网架构演进

14.互联网架构设计原则

无状态原则
幂等原则
异步原则
缓存原则
冗余原则
一致性原则

  15.高可靠性设计

服务分级
超时设计
服务降级
限流设计

 
下午 高性能高可用数据库方案
  16.高可用高性能数据库设计

数据库架构设计基本概念
高可用性设计与实践
高并发设计与实践
读性能设计与实践
一致性设计与实践
扩展性设计与实践
实践案例

 
  PaaS与云
  17.PaaS平台与云

云原生PaaS平台高可用高并发设计实践
云原生平台PaaS核心架构
基于Kubernetes 容器云构建
云原生平台服务的动态扩容与缩容
云原生平台服务的蓝绿发布/金丝雀发布/灰度发布
基于云原生平台的第二代微服务架构--ServiceMesh

 
  案例分享
  案例分享