近些年,随着互联网的不断发展,市场变化越来越快,需求变更越来越频繁。为了能够跟上市场变化的脚步,在市场竞争中占得先机,越来越多的研发团队选择敏捷开发、快速迭代。然而,越来越庞大的软件系统,越来越复杂的业务逻辑,使得系统维护变得越来越困难,变更成本越来越大,团队工作效率越来越低。许多用户需求需要拖延数月才能交付,使得软件企业痛失有利商机,在市场竞争中处于不利地位。微服务架构正是解决规模化复杂业务系统的应对之策。
然而,微服务应当如何拆分、如何架构?有哪些技术特点与技术难点?如何构建支持微服务的技术中台?如何应对未来的技术更迭?最终又应当如何部署在云端自动化运维呢?为了帮助大家准确理解微服务,合理设计微服务,有效规避微服务转型过程中的那些“坑”,我们特此组织了此次课程。
培训特色
本课程的授课特点是注重实战,授课老师在微服务设计相关领域从业多年,收集了大量的真实案例,会针对项目过程中常见的问题进行汇总、研讨,通过大量的真实案例,详细地介绍微服务设计过程中需要注意的要点以及难点。通过讲师十几年经验的总结与传授,既保证了课程的理论体系完整,又使学员掌握实际工程方法,达到学以致用的目的。
证书
培训结束,颁发中科院计算所职业培训中心“微服务架构设计与实践”结业证书。
培训对象
1、系统架构师、系统分析师、高级程序员、资深开发人员
2、涉及到微服务技术转型的团队负责人、规划师、架构师
3、云服务运营服务提供商规划负责人
培训内容
第一部分:微服务之基本概念
培训概要:
想要在快速变化的市场中获得竞争优势,需要打造快速交付的团队。但规模化软件开发团队带来快速交付的困局,解决的思路就是微服务。然而,只有准确理解微服务,理解微服务的“小而专”、“去中心化技术治理与数据管理”,才能真正发挥微服务的优势。
培训收益:
培训内容:
1)快速变化的市场与快速更迭的技术带来发展机遇
2)激烈竞争的新兴市场需要更快速的交付去占领市场
1)烟囱式的开发团队导致烟囱式的软件开发
2)烟囱式的软件开发导致烟囱式的软件交付
解决思路:
1)跨功能团队(特性团队)的组织形式
2)将单体应用改为微服务架构
1)准确理解微服务架构“小而专”的概念提高设计质量
3)准确理解微服务“去中心化的数据管理”做大数据转型
第二部分:微服务之技术组件
培训概要:
带着学员搭建一套微服务的系统,将其运行起来,在实战的过程中理解微服务的注册中心、生产者、消费者、断路器、服务网关等技术组件的原理与设计过程,从实践中来,到实践中去。
培训收益:
培训内容:
1. 注册中心的概念与作用
1)Dubbo的简介
2)Zookeeper的简介
3)ETCD的简介
4)Netflix Eureka的简介
2. Spring Cloud Eureka方案
1)Spring Cloud Eureka的系统架构
2)Eureka Server的设计
3)Eureka Client的设计
4)服务发现的设计
使用ribbon的设计
使用feign的设计
断路器设计模式
线程池隔离、优雅降级与熔断
Hystrix的断路器设计
3.微服务的安全措施与服务网关设计
1)多渠道用户接入
2)请求合法性与用户鉴权
3)灰度发布、金丝雀测试与全链路压测
4)服务降级、流量控制与节流
4.路由网关(zuul)的设计
1)智能路由与服务迁移
2)过滤器的设计与配置
3)Zuul的高可靠设计
5.服务网格(Service Mesh)
1)Spring Cloud的跨语言调用
3)Linked、Istio、Sofa MOSN服务网格框架
第三部分:微服务之设计模式
培训概要:
通过实际案例举例,讲解如何运用6种设计模式进行微服务的设计,并且在设计过程中讲解微服务开发经常遇到的一些设计难题及其解决方案,诸如:跨库的关联查询、跨库的事务处理、异步化操作、无状态设计,以及与大数据技术的结合。
培训收益:
培训内容:
1.微服务架构的6种设计模式
1)聚合模式
案例:电商网站购物功能的设计
微服务前后端分离的设计
分布式事务的两阶段提交
TCC方案与阿里GTS
采用分布式事务解决跨库的事务操作
案例:电商网站下单服务的设计
单一职责原则与领域驱动设计
互联网纵向切分在微服务的实现
纵向切分应当注意的设计问题
避免跨库关联查询的方案设计
2)代理模式
案例:电商网站支付功能的设计思路
3)链式模式
4)分支模式
5)异步消息模式
案例:12306的异步化操作
案例:电商网站异步化操作的微服务实现
6)数据共享模式
高并发写入的分布式设计方案
案例:TiDB数据库的分布式方案
如何实现高并发大数据查询场景
案例:MongoDB实现大数据秒级查询
2.微服务的无状态设计
1)Session管理的设计难题
2)微服务的无状态设计
3)基于http/rest的无状态低耦合通讯
3.微服务设计的反模式
1)太多数据迁移
2)数据共享反模式
探讨:如何解决微服务接口太多的问题
第四部分:微服务之进阶实战
培训概要:
老师带着学员演练在真实项目中该如何开发微服务,包括微服务的父项目、多套配置文件、集中式的配置中心,以及如何架构一个既支持微服务又支持领域驱动的技术中台,既能够降低技术门槛,减少开发工作量,又能够易于业务变更,易于架构演化。
培训收益:
培训内容:
1. 演练在真实项目中开发微服务
1)微服务项目中父项目的设计
2)微服务项目中多套配置文件的设计
3)微服务项目中集中式配置中心的设计
2. 演练在真实项目中高可靠微服务架构
1)高可靠注册中心的设计
2)高可靠服务网关的设计
3. 演练在真实项目中微服务的性能测试
1)断路器监控Turbine及其应用实践
2)链路跟踪Zipkin与微服务路由优化的应用实践
第五部分:微服务之自动化运维
培训概要:
运维微服务架构还需要强大的运维平台支持,也就是打造一整套DevOps自动化运维体系。这个体系包括:持续探索、持续集成、持续交付,以及在这个过程中的自动化测试与运维。老师将带领学员实际操作如何搭建这样的平台,如何自动化部署微服务,以及用Prometheus、EFK运维。
培训收益:
培训内容:
1. 微服务架构需要DevOps自动化运维
1)剖析传统运维存在的“交付困难”的困局
2)Who build who run it与DevOps的概念
3)敏捷团队快速交付的持续探索、持续集成、持续交付与按需发布
4)DevOps带来开发人员的负担与自动化运维
2. 自动化运维的工作原理
1)Docker容器技术与发布标准化
2)分布式容器部署与Kubernetes
3)实操Git+Jenkins+Docker+Kubernetes的自动化部署过程
3. 打造微服务架构的自动化运维体系
1)注册中心Eureka在Kubernetes的分布式部署
2)配置中心Config在Kubernetes的分布式部署
3)断路器监控Turbine与路由优化Zipkin
4. 微服务云端架构的系统监控与日志采集
1)Kubernetes的系统监控工具Prometheus+Grafana
2)Kubernetes的日志采集工具EFK
汇款、微信转帐
汇款信息:
单位名称:北京市海淀区中科院计算所职业技能培训学校
开户行:工行海淀西区支行
账号:0200 0045 1920 0043 667
开户银行代码:1021 0000 0458
微信转账:
步骤一:打开微信,扫描二微码付款时,点击打开微信右下角里的“发现”,在列表界面有一个“扫一扫”选项,点击打开“扫一扫”(如下图):
步骤二:点击打开“扫一扫”后,会出现一个扫描框,将中科院计算所培训中心二维码/条码放入框内,即可自动扫描,并显示支付信息,输入付款金额。
(中科院计算所培训中心二维码)
步骤三:点击 “添加付款备注”,填写付款人姓名和单位全称,所有信息核对无误后,点击“确认付款”,完成支付。