SpringBoot与Spring Cloud微服務(wù)构建最佳实践

SpringBoot与Spring Cloud微服務(wù)构建最佳实践
    马上咨询

    杜威  高级研发管理(lǐ)顾问,资深系统架构师,微软企业护航专家 

    曾在多(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ō)家知名企业的内训中都取得非常好的反馈。

    课程对象

    • 架构师
    • 资深开发人员
    • 开发人员
    • 项目管理(lǐ)人员

    课程实施

    • 课程通过4种方式实施:
    • 实践经验分(fēn)享
    • 大型实例案例分(fēn)析
    • 深入探讨
    • 系统性理(lǐ)论知识梳理(lǐ)

    课程特色

    本课程方案注重微服務(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)与探索
    课程回顾及咨询建议