曾在多个全球500强研发中心研发中心服务近17年时间,参与多个全球协作的大型研发过程,积累了丰富的研发设计及管理的实战经验。近 17 年从事研发管理、产品管理及高端架构设计方面的工作。杜先生同时是微软企业护航专家。具有10多款大中型产品的研发管理、设计、实施及质量管理经验,包括可口可乐GKPMS,Schlumberger Horizon(全球下一代能源勘探开发平台)Viewers,RTPM(全球实时油藏分析与管理平台),Dolphin(面向全球的中间件开发平台),中国移动BI个性化客户沟通项目, CCM-Customer Communication Management(全球最大个性化客户沟通产品),Sagent(全球著名BI产品)。 近 17 年的产品及项目的研发过程中,在多个全球协作开发的大型项目上实践过,如:大型应用系统的需求分析,基于用例的需求分析,基于功能点的项目管理过程实践,敏捷开发,基于迭代的开发流程管理,大型项目群管理,单元测试, TDD(测试驱动的开发),大型应用系统的核心架构设计,基于领域模型的驱动开发(Domain Driving Development),海量数据/大数据存取的架构设计及实践,详细设计推动代码实现及质量, 持续集成, 高质量代码管理,等多种先进的软件研发过程,在大中型软件的项目管理,需求分析,研发管理, 架构设计及质量控制领域有相当丰富的实践经验。
课程简介
微服务作为一项在云中部署应用和服务的新技术已成为当下最新的热门话题。微服务是一个新兴的软件架构,把一个大型的单个应用程序和服务拆分为为数众多的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。企业和服务提供商正在寻找更好的方法将应用程序部署在云环境中,微服务被认为是未来的方向。通过将应用和服务分解成更小的、松散耦合的组件,它们可以更加容易升级和扩展,理论上是这样。讲师将结合微服务在企业应用的实践,展开对微服务架构设计的应用与思考,课程上覆盖构建微服务的10多种框架探讨与经验分享,帮助参课的学员更好的进行微服务应用的落地,实践性非常强,在前期多家知名企业的内训中都取得非常好的反馈。
课程对象
课程实施
课程特色
本课程方案注重微服务架构的实战过程,去掉了一定量的理论,把实战的比重增大到总课时数的60%。其余40%为理论以及指导性的流程。
课程安排(5天)
第一天 |
大型分布式系统的核心思想 Ø 通过一个大型分布式应用系统的核心架构讲解如何实现:高并发,高性能,高可用,横向扩容的巨石系统应用架构 Ø 巨石系统架构的缺陷 Ø 微服务架构的引入 微服务的核心架构思想 Ø 微服务的核心架构思想 Ø 什么是微服务 Ø 微服务服务自治的核心思想 Ø 微服务的粒度 Ø 微服务拆分的4个核心原则 Ø 微服务拆分的两个套方法实践 Ø 微服务平台的核心价值 Ø 技术异构性的解决方案 Ø 弹性资源调度在统一应用的微服务平台上的实践 Ø 扩容与缩容 Ø 简化部署与快速开发 Ø 微服务下的开发流程与组织结构相匹配 Ø 微服务的组合与编排调度 Ø 对可替代性的优化 Ø 面向微服务的架构 Ø 典型案例分析:分析一个千万级代码、全球多中心协同开发的大型商业化软件,在微服务架构设计中的实践与开发管理, Framework,开发流程调整,研发转型的分享 微服务平台与服务设计的核心12要素 Ø 服务中的基准代码管理策略 Ø 服务依赖管理管理策略 Ø 服务配置信息管理策略 Ø 服务后端服务平台的构建 Ø 服务的构建,发布,运行与持续集成的引用-DevOps的实现思想 Ø 服务进程化的无状态与有状态设计分离问题 Ø 服务通过端口的暴露 Ø 服务的并发与扩容设计 Ø 服务设计的Disposability提供简易的强健壮性 Ø 服务实现时保持 开发, 测试, 上线的环境一致性 Ø 服务的统一日志管理框架 Ø 服务管理进程的设计 Ø 典型案例分析:分析全球多中心协同开发的大型商业化软件,在微服务实现过程中对于12要素的实现方法 微服务架构设计之框架选择篇 Ø 微服务架构设计之开发框架选择(SpringCloud); Ø 微服务架构设计之容器选择(Docker); Ø 微服务架构设计之自动化部署选择(Jenkins、GitLab CI); Ø 微服务架构设计之实践案例; 微服务架构设计之容器篇Docker 环境 Ø 微服务架构设计容器选择Docker原因 Ø 微服务架构设计Docker环境搭建; Ø 微服务架构设计Docker实战案例; 微服务架构设计之容器篇Docker 核心架构解析 Ø 微服务容器集群 Ø Docker的特征 Ø Docker的组件与元素 Ø Docker体系架构分析 Ø Docker Client实现到Docker Daemon之间通信 Ø Docker 镜像-容器-仓库 Ø Docker Union文件系统 Ø Docker Images用来运行Docker容器 Ø DockerFile自动创建Docker镜像。 Ø 使用Docker 构建微服务私有仓库 Ø Docker在微服务中的多层Overlay网络的管理 Ø CGroup和NameSpace进行微服务的CPU/内存资源限制管理 Ø 通过Docker Compose实现多服务运行 Ø 典型案例分析:结合一个大型500强应用系统的实例案例进行分析,详细分析基于Docker的微服务体系架构设计,及对Docker的应用要求 |
第二天 |
Restful的微服务构建 Ø Restful 微服务的特点 Ø Restful 微服务的访问方式 Ø Restful 微服务的注册与发现 Ø Restful 微服务的端口定义原则 Ø Restful 微服务的构建工具 Ø RPC与Restful 微服务的混合架构 案例实践:从业务的角度拆分Restful微服务,构建Restful微服务,启动Restful微服务 微服务开发框架- SpringBoot Ø 微服务架构设计开发框架选择Spring Boot 原因; Ø 微服务架构设计之Spring Boot 环境搭建; Ø Spring Boot POM 与Application Ø Spring Boot 与Maven 综合应用 Ø Spring Boot之数据访问; Ø Spring Boot之微服务间调用选型与实现; Ø 微服务架构设计之Spring Boot 开发技巧&注意事项; Ø 微服务架构设计之Spring Boot 实战案例; 微服务应用开发SpringBoot进阶开发 Spring Boot Maven 项目构建结构演示 Ø 访问spring boot官方网站通过配置获取案例代码 Ø 使用STS套件快速构建一个maven spring boot程序 Ø 配置maven插件工具,完成打包工程 用Spring Boot构建一个RESTful的后端API程序 Ø RESTful的服务开发接口方式 Ø 对传统spring后台程序的改造 数据访问层的构建方式Spring Boot JPA + spring data Ø Spring Boot 引入 spring data和JPA的开发模式 Ø RDS关系型数据库的注解和配置说明 Ø NoSQL非关系型的数据库的注解和配置 Ø 环境变量的注入 案例实战,使用spring boot框架开发案例程序,并结合数据源完成相关配置。 使用Docker构建打包我们的Spring Boot程序 Ø Maven docker插件的集成和配置 Ø 编写Dockerfile,将Spring Boot程序用docker客户端启动 Spring Boot和Redis的集成能力 Ø Redis框架技术生态介绍 Ø Redis分布式缓存的应用开发 Ø 使用Redis实现秒杀的应用场景实现 Ø Spring Boot与Redis的集成开发 上机实践操作,使用spring boot实现Redis分布式缓存整合开发的完整案例 Spring Boot和Kafka的集成能力 Ø Kafka框架技术生态介绍 Ø Kafka异步消息队列的应用开发 Ø 使用Kafka实现微服务间消息通讯的应用场景实现 Ø Spring Boot与Kafka的集成开发 上机实践操作,使用spring boot实现Kafka异步消息队列整合开发的完整案例 Spring Boot和HBase的集成能力 Ø HBase框架技术生态介绍 Ø HBase大数据量并发处理的应用开发 Ø 使用HBase大数据量并发处理的应用场景实现 Ø Spring Boot与HBase的集成开发 上机实践操作,使用spring boot实现HBase整合开发的完整案例 Spring Boot和其它框架的集成能力 Ø Spring Boot框架技术生态介绍 Ø 与消息中间件、安全、大数据、批量任务等框架的集成 上机实践操作,使用spring boot实现Spring MVC RESTful的完整案例,并使用插件打包成docker镜像 |
第三天 |
微服务开发框架- SpringCloud架构解析 Ø 微服务架构设计开发框架选择Spring Cloud 原因; Ø 微服务架构设计之Spring Cloud 环境搭建; Ø 服务的注册与发现(Eureka) Ø 服务消费者(rest+ribbon) Ø 服务消费者(Feign) Ø 分布式配置中心(Spring Cloud Config) Ø 服务链路追踪(Spring Cloud Sleuth) Ø docker部署spring cloud项目 Ø 路由网关(zuul) Ø Spring Cloud之数据访问; Ø Spring Cloud之微服务间调用选型与实现; Ø 微服务架构设计之Spring Cloud开发技巧&注意事项; Ø 微服务架构设计之Spring Cloud实战案例; Spring Cloud Eureka 微服务注册发现与均衡负载 Ø 微服务的服务管理中心设计 Ø 服务路由的设计 Ø 服务路由的负载策略 Ø 使用Spring Clound 实现服务注册(consul) Ø 使用NetflixEureka/SpringCloud实现服务注册与发现 Ø 大型微服务集群的Eureka HA解决方案设计 Ø 使用NetflixRibbon/SpringCloud实现客户端负载均衡 Ø 使用NetflixFeign/SpringCloud实现申明式REST调用 案例实践: 微服务注册与发现 Eureka 实现 微服务均衡负载Ribbon实践 微服务本地化调用Feign实践 Spring Cloud Configration Server配置中心化及变更管理 Ø 微服务发布服务器 Ø 从微服务的构建到Docker Ø 配置的集中管理 Ø 集中化配置的实现原理与方式 Ø 配置的注册 Ø 配置的变更 Ø 配置的变更通知 Ø 使用SpringCloudConfig实现集中化配置 Ø 使用SpringCloudBus与RabbitMQ同步多服务配置 Spring Cloud 微服务的容错处理(circurt-breaker) 微服务熔断 Ø 熔断的设计 Ø 熔断的策略 Ø 熔断实现在哪里 Ø 微服务下的可用性与故障蔓延(FailureCascading) Ø 服务的熔断 Ø 断路器模式的原理与实现 Ø 使用NetflixHystrix/SpringCloud实现容错 Ø 使用NetflixTurbie实现监控聚合 Ø 断路器监控(Hystrix Dashboard) 案例实践:多服务混合调用过程中的熔断实践 Spring Cloud Zuul 微服务网关 Ø 为什么需要微服务网关 Ø 微服务网关的实现方案 Ø 使用Netflix Zuul实现微服务网关 Ø Zuul微服务网关的过滤器扩展 Ø 案例实践:Zuul 微服务网关Token认证实现 Spring Cloud Zipkin微服务调用链分析 Ø 微服务路由与调用 Ø 微服务调用链架构的核心实现思想 Ø 服务链路追踪(Spring Cloud Sleuth) Ø 案例实践:Zipkin微服务调用链实现 |
第四天 |
Kubernetes在微服务平台下的应用于选型-构建微服务的基础设施基于Docker集群的弹性平台集群构建 Ø 集成Docker构建弹性资源平台 Ø Kubernetes的微服务集群构建 Ø 微服务集群的搭建 Ø 微服务的弹性资源调度管理 Ø 微服务副本管理实现 Ø 实现微服务扩容与缩容 Ø 实现Service Gateway, 完成服务注册与服务路由 Ø 微服务集群服务路由的4层与7层均衡负载 Ø 基于微服务集群实现均衡负载 Ø 基于微服务集群实现微服务无缝升级 操作实践:综合实践操作通过一个实践案例, 完成Docker微服务集群的整合构建,构建微服务容器编排平台进行微服务核心框架的应用与讲解 实例分析:微服务ServiceGateway实现 实例分析:微服务均衡负载实现 实例分析:微服务无缝升级实现 大型案例实践-Spring Cloud, Docker与Kubernetes的集成与部署-在一个大型分布式环境中实践 Ø 部署Spring Cloud-Eureka服务注册中心到Kubernetes 集群 Ø 部署Spring Cloud-Zuul网关到Kubernetes 集群 Ø 基于Kubernetes 集群的Spring Cloud Ribbon负载均衡实现 Ø 基于Kubernetes 集群的Spring Cloud熔断实现 Ø 基于Kubernetes 集群的Spring Cloud限流实现 Ø 外部访问Kubernetes 微服务集群的流量配置 Ø Kubernetes 微服务集群的DNS配置 |
第五天 |
微服务架构设计自研进阶-Spring Cloud外的核心问题与解决方案-构建与实现-细节到详细设计 Ø 微服务扩容与缩容 § 集中资源的管理与调度 § 扩容的策略 § 与微服务管理集群的集成 § 动态的微服务扩容 Ø 微服务监控 § 通过微服务集群监控硬件资源的使用 § 使用微服务集群监控微服务状态 § 基于应用的微服务监控而不是基于硬件的微服务监控 Ø 微服务日志管理 § 微服务的基础日志服务 § 集中日志管理的架构设计 § 应对高并发的微服务日志处理 § 微服务日志中的削峰处理 § 微服务日志的解析与检索 § 微服务日志监控 Ø 微服务授权与防攻击 § 身份认证 § 电子证书 § 授权与用户验证 Ø 微服务限流 § 限流的设计 § 限流的策略 § 限流实现在哪里 Ø 微服务降级 § 分级的设计 § 降级的实现 § 降级对计算资源的调度 § 动态降级与计算资源 Ø 微服务上线验证与灰度发布 § 微服务版本控制 § 灰度升级的数据问题 Ø 微服务错误分析与调用链跟踪 § 微服务的集中日志管理 § 微服务编排调度日志实现 Ø 微服务实例调度 § 调度路径与管理 Ø 微服务的无缝升级 无缝升级的版本控制设计 无缝升级的服务路由设计 典型案例分析:分析一个千万级代码、全球多中心协同开发的大型商业化软件,在架构设计中的微服务架构自研实现。掌握微服务架构设计的核心设计技巧,提升微服务的可扩展性与灵活性应用 微服务架构设计之性能评估&扩容篇 Ø 微服务架构之服务性能评估目的; Ø 微服务架构之服务性能相关环节; Ø 微服务架构之服务性能评估工具 Ø 微服务架构之服务性能评估方法; Ø 微服务架构之服务扩容; Ø 微服务架构之我们的案例; 微服务架构设计之监控篇 Ø 微服务架构监控重要性; Ø 微服务架构监控数据采集方法; Ø 微服务架构监控设计; Ø 服务架构之进程监控; Ø 微服务架构之语义监控; Ø 微服务架构之错误日志监控; Ø 微服务架构之机器资源监控; Ø 微服务架构之数据波动监控; Ø 使用ELK(Elasticsearch、Logstash和Kibana)搭建微服务集群监控平台 Ø 微服务架构设计之我们的实践案例; 基于微服务的DevOps的应用实现 Ø 敏捷后从开发到运维依然存在障碍, 导致上线的问题 Ø 如何实现快速的开发到运维的自动化管道Pip-DevOps Ø DevOps的实现实践分析 Ø DevOps中的 Delivery Pipline Ø DevOps中的 Code Pipline的开源实现 Ø DevOps的持续集成过程 Ø 微服务在DevOps中的重要价值 Ø Git, Jenkins, Maven, Docker? J Ø 结合客户的真实情况:分析未来实现DevOps的规划步骤 典型案例分析:分析全球100强的研发中心,在DevOps领域的应用与探索 课程回顾及咨询建议 |