云计算与分布式架构概览 |
云计算与分布式架构的引入
1.什么是系统云计算与分布式
2.如何通过架构保证云计算与分布式
3.云计算与分布式架构都要考虑什么
4.云计算与分布式架构的质量评价指标有哪些
5.云计算与分布式设计都设计那些环节
6.从一个大型互联网系统架构看云计算与分布式的解决方法 |
大型互联网架构案例解析 |
大型互联网架构演化过程:从单点到分布式,云计算与分布式
大型互联网架构案例解析:
- 12306架构改造过程
- 案例:淘宝网的架构演进过程
- 京东订单系统的优化过程
大型互联网架构的关注点:
|
云计算与分布式架构的特点及解决思路 |
高并发
1.高并发的概念
2.高并发问题的解决思路:目标→问题→方案
3.横向扩展与纵向扩展
大数据
1.大数据的概念
2.大数据问题的解决思路
1)针对三种不同操作类型的优化
2)并行操作与异步处理
3)集中式处理 vs. 分布式处理
高可靠性
1.高可靠性在三个层面的概念
2高可靠性的设计思路
|
一、微服务架构 |
微服务架构概述 |
什么是微服务架构
微服务架构是敏捷开发的必然结果
1.单体应用的优势与面临的挑战
案例:演示淘宝在系统不断发展的过程中面临的难题
许多系统在不断发展过程中越来越庞大带来的问题
2.康威定律与人月神话
烟囱式的功能团队导致烟囱式的应用
人员越来越多、沟通越来越困难、工作效率越来越低
3.未来快速变化的市场需要敏捷团队
更快地交付、更快地反馈、更快地产生价值
敏捷化的开发团队呼唤微服务架构 微服务是未来互联网发展的必然结果
1.互联网的发展及其面临的挑战
案例:分析淘宝近十年的发展及其面临的挑战
互联网在面临横向扩展、服务隔离等问题的局限
2.微服务能够更好地解决互联网问题
分析传统架构在解决互联网问题时采用的办法
讲解微服务架构应当是什么样子
剖析微服务架构在解决诸多互联网问题时的思路
微服务架构给测试与运维带来的挑战
1.微服务架构给测试带来的挑战
2.微服务架构给运维带来的调整
微服务架构与DevOps
微服务架构的管理与发布过程 |
准确认识微服务 |
关于微服务的误解
1.微服务 vs. SOA
案例:SOA在项目中的应用
案例:微服务在项目中的应用
微服务与SOA的联系与差异
2.微服务架构的本质
- 由服务组件组成的系统
- 按照业务而不是技术来组织服务
- 做全生命周期的产品而不是项目
- 智能端点与通道扁平化
- 去中心化治理
- 去中心化数据管理
- 自动化运维(DevOps)
- 故障恢复与容错
- 演化式设计
案例:演示出租车调度系统的微服务设计过程 |
微服务常用架构 |
微服务案例解析:
淘宝的微服务架构框架
京东的微服务架构框架
金税系统的微服务架构框架
Spring Cloud微服务框架解析
1.服务注册与发现Spring Cloud Eureka
2.服务网关Spring Cloud Zuul
3.微服务及其相互调用Spring Cloud Ribbon/Feign
4.配置管理 Spring Cloud Config
微服务的平台建设:
1.微服务的平台应具备的要素
2.配置中心Spring Cloud Config
3.断路监控Spring Cloud Turbine
4.信息采集Spring Cloud Sleuth
5.链路监控Spring Cloud ZipKin
6.管理中心Spring Cloud AdminUI
7.监控平台prometheus+EFK |
服务注册与发现 |
服务注册与发现的概念与作用
实现服务注册与发现的方案
1.Dubbo的简介
2.Zookeeper的简介
3.Netflix Eureka的简介 Spring Cloud Eureka方案
1.Spring Cloud Eureka的系统架构
2.Eureka Server的设计
3.Eureka Client的设计
4.服务发现的设计
5.熔断机制
- 断路器设计模式
- 线程池隔离、优雅降级与熔断
- Hystrix的断路器设计
6.高可靠设计与Eureka集群
练习:使用Eureka构建微服务系统
1.Eureka Server
2.Eureka Client
3.使用ribbon/feign进行微服务间调用
4.设计熔断器
|
微服务层的设计 |
微服务架构的6种设计模式
1.聚合模式
互联网纵向切分在微服务的实现
纵向切分应当注意的设计问题
避免跨库关联查询的设计
采用分布式事务解决跨库的事务操作
2.代理模式
3.链式模式
4.分支模式
5.数据共享模式
6.异步消息模式
案例:微服务实现异步化操作 微服务的粒度
1.微服务的拆分原则
2.微服务的拆分方式 微服务设计的反模式
1.太多数据迁移
2.数据共享反模式
3.频繁交互反模式
探讨:如何解决微服务接口太多的问题 |
服务网关 |
服务网关在微服务架构中的作用
1.多渠道用户接入
2.微服务的负载均衡
3.路由网关(zuul)
蓝绿发布、滚动发布、灰度发布与金丝雀发布
权限验证与安全保障
路由网关的设计实现
4.流量控制与节流
练习:设计服务网关、路由网关与断路器 |
配置管理与DevOps |
DevOps简介
1.微服务为什么需要DevOps
2.微服务的测试过程
3.微服务的发布过程
4.持续集成方法实践
5. 持续交付方法实践。 |
二、中间件产品介绍,介绍功能及特性
分布式缓存(redis)
重点:分布式数据库(MySQl),介绍主从复制、分库分表代理层等;
分布式消息队列(Kafak、rockerQ等),比较各产品的差异等。 |
云计算与分布式架构之:内存数据库的设计 |
内存数据库技术
1.内存数据库的概念
2.解析内存数据库的运行原理
3.Oracle TimesTen的介绍
4.Gemfire及其在12306的应用
Redis内存数据库技术
1.Redis的运行原理及其特点
2.Redis的部署形式
3.Redis的应用设计
案例:spring-redis-data的设计应用
案例:京东订单系统的优化过程
4.内存数据库的设计局限 |
云计算与分布式架构之:应用缓存的设计 |
应用缓存技术
1.页面静态缓存
2.应用缓存技术解决的问题
3.单机缓存 vs. 分布式缓存
4.分布式缓存的特点及其设计
Memcached技术
1.Memcached技术及其特点
2.分布式哈希算法及其一致性哈希
3.Memcached的部署结构及其应用方案
案例:负载均衡的session同步及其故障转移 如何在原有系统上进行应用缓存改造
1.Spring + Memcached的设计改造过程
2.Hibernate + Memcached的设计改造过程
3.Memcached的命中率分析及其调优 应用缓存的设计过程及其应当注意的问题
1.负载均衡的Session同步及其故障转移
2.缓存服务器雪崩现象及其解决思路
3.缓存服务器依赖现象及其解决思路
4.缓存服务器穿透现象及其解决思路 |
云计算与分布式架构之:异步化操作的设计 |
1.异步化操作的原理
案例:12306的异步化改造过程
2.异步化操作的设计实践
Netty与Kafka的设计实现
3.分布式队列的设计
案例:用消息队列解决分布式事务
案例:用消息队列解决内存数据库的同步
4.分布式锁的设计实现
剖析分布式锁要解决的问题
基于数据库的分布式锁
基于缓存的分布式锁
基于Zookeeper的分布式锁 |
三、Cloud
native架构介绍
- Docker+K8S基本原理;
- Server Mesh原理及当前开源产品
|
Cloud
native的支持技术 |
微服务的分布式运维
1.Kubernetes简介
2.用Kubernetes进行分布式运维
探讨:如何构建一个微服务运营平台
将微服务部署到Docker中
1.Docker vs. 虚拟化
2.Docker的运行方式
3.Docker的基本操作 演练:微服务在Docker中的部署过程
练习:模拟构建一个微服务系统
微服务的分布式运维
3.Kubernetes的运行原理解析
4.Kubernetes命令与操作
5.Kubernetes管理界面
6.用配置文件在Kubernetes中部署微服务
演示:Git+Jenkins+docker+k8s的自动化分布式部署 微服务设计指南
1.如何划分微服务
2.服务的接口与参数设计
3.服务的验证设计
案例:高负载微服务系统的架构演进之路 服务网格(Service Mesh)
1.服务网格的概念
2.Istio技术框架简介 |
云计算与分布式架构之:不断演进的架构设计过程 |
互联网+时代的架构设计特点
1.互联网+带来的巨大变革
2.互联网公司不断面对的升级改造
3.传统行业必须面对的互联网转型
好的架构源于不断的衍变
案例:58同城的架构衍变过程
1.最初的架构设计
2.网络接入层的改造过程
3.数据库拆分的改造过程
服务化为中心的改造过程 |