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