搜索

取消
课程简介适用人群课程大纲付款方式

微服务与DevOps运维实战

课程时间:5月29日 - 5月30日

公开课费用:6800元/人

课程地点:北京

近些年,随着互联网的不断发展,市场变化越来越快,需求变更越来越频繁。为了能够跟上市场变化的脚步,在市场竞争中占得先机,越来越多的研发团队选择微服务架构。微服务架构将复杂而庞大的业务系统拆分成多个小而专的微服务,从而起到降低维护成本、提高交付速度的作用。然而,微服务该如何正确的拆分?如何构建高并发、高可用的微服务架构?又如何与各种分布式技术相结合,来架构我们的业务系统?以及类似跨库的分布式事务与数据查询等难题。针对以上这些微服务更加高端的技术难题,我们特此组织本次培训。

在本次课程中,首先学会站在全局地角度去规划与架构微服务。譬如,如何架构小而专的微服务?如何规划微服务的技术架构,实现去中心化的技术治理与数据管理。在次基础上,课程通过6个微服务的设计模式,讲解在不同的业务场景中进行不同的微服务设计,并在这个过程中讲解与微服务相关的分布式技术,以及跨库的分布式事务与跨库的关联查询等设计难题及其解决方案。

接着,本课程讲解如何将微服务部署在云原生架构中。采用云原生架构以后,可以通过DevOps进行自动化运维,实现快速交付;通过K8s分布式云端平台,进行容器化的分布式云端部署,以实现互联网的高并发、高可用。

 

培训特色

本课程注重实战,并以工作坊的形式提供很多案例,让学员通过练习掌握微服务架构设计的过程,以及从传统架构向微服务改造的过程。同时,通过大量真实的案例,讲解许多公司在开展微服务转型过程中面临的难题、解决的思路,以及最终的设计。

 

本课程有企业内训形式,授课老师、课程内容、教学方式均依据企业的培训需求灵活设置。

 

本网站内容包括并不限于课程介绍、课程大纲、上课照片、老师介绍等等资料及信息,未经允许不得抄袭和转载。

培训对象

中高级工程师、企业架构师、软件设计师、技术决策/解决方案人员等。

本课程分2天时间讲授

第一部分 微服务架构设计

第一单元 基于微服务的架构规划

小而专的微服务架构设计

  • 单体应用的弊病与向微服务转型的思路
  • 微服务转型初期采用数据共享模式
  • 剖析微服务数据共享模式的问题本质
  • 解决方案:小而专的微服务架构

基于微服务的技术架构规划

1、去中心化的技术治理

  • 基于父项目建立多套的技术架构
  • 每个微服务配置多套的配置管理
  • 生产环境中集中式的配置服务

2、去中心化的数据管理

  • RDBMS, NoSQL, NewSQL数据库的分析与选型
  • 建立读写分离的微服务架构
  • 写库的微服务设计与NewSQL数据库
  • 读库的微服务设计与NoSQL数据库

构建高并发、高可用的微服务架构设计

  • 高并发、高可用的微服务设计的挑战
  • 熔断、降级与断路器模式
  • 案例:基于Sentinel的服务降级实践
  • 演练:电商网站熔断、降级的设计实现

3、限流措施

  • 案例:基于Sentinel的限流措施
  • 演练:电商网站运用限流措施实现秒杀功能

第二单元 微服务设计模式及其应用

微服务架构的6种设计模式

  • 聚合模式

案例:电商网站购物功能的设计

  • 微服务前后端分离的设计
  • 分布式事务的两阶段提交
  • TCC方案与阿里Seata

实战演练:运用Seata实现微服务的分布式事务

  • 基于消息的最终一致性设计

实战演练:基于消息实现微服务的分布式事务

案例:电商网站下单服务的设计

单一职责原则与领域驱动设计

  • 互联网纵向切分在微服务的实现
  • 纵向切分应当注意的设计问题
  • 解决跨库关联查询的设计

实战演练:微服务间解决跨库关联查询的设计

  • 代理模式

案例:电商网站支付功能的设计思路

案例:电商网站多渠道支付的微服务实现

  • 链式模式
  • 分支模式
  • 数据共享模式

案例:大数据与微服务结合的架构设计

实战演练:运用NoSQL数据库实现海量订单数据的实时跟踪

  • 异步消息模式

案例:12306的异步化操作

实战演练:运用Springcloud Stream实现电商网站异步化操作的设计

微服务设计的重要原则:无状态设计

  • 有状态设计的问题与无状态设计的思路
  • 演练:微服务Session的无状态设计
  • 服务网关与用户鉴权的无状态设计
  • 各微服务获取用户Session的无状态设计

第三单元 架构安全与服务网关

服务网关在微服务架构中的作用

  • 多渠道用户接入

微服务前后端分离的架构设计

  • 微服务的负载均衡

负载均衡的难题:Session管理

  • 路由网关(Spring Cloud Gateway)

蓝绿发布、滚动发布、灰度发布与金丝雀发布

权限验证与安全保障

智能路由与服务迁移

过滤器的设计与配置

  •  流量控制与节流

实战演练:设计服务网关、智能路由与断路器

  • 基于Springcloud Gateway的服务网关设计
  • 对服务网关进行智能路由的设计
  • 设计断路器进行安全检查

第二部分 DevOps自动化运维

第一单元 DevOps自动化运维

DevOps的核心概念

  • DevOps的定义、起源与发展
  • DevOps与敏捷开发、持续集成的关系
  • 基于DevOps的团队协作与持续交付

基于DevOps的软件开发

  • 基于DevOps的团队文化与项目管理
  • 基于DevOps的开发与测试过程
  • 基于DevOps的自动化部署与运维
  • 持续探索、持续集成、持续交付与按需发布

DevOps自动化发布与运维平台

代码仓库与版本控制

  • 敏捷软件开发与持续集成
  • 微服务拆分与版本控制工具Git/GitLib

持续集成/持续交付CI/CD

  • 持续集成工具Jenkins及其安装部署
  • 创建自动化流水线Pipeline
  • 演练:基于Pipeline编写持续集成脚本

单元测试与契约测试

  • 演练:基于Mock构建单元测试体系
  • 微服务测试的难题与契约测试
  • 演练:基于Spring Cloud Contract的契约测试实践
  • 代码覆盖率检查工具Jacoco及其实践

代码规范性检查

  • 代码规范与静态代码检查工具
  • 代码规范性检查工具:SonarQube
  • 演练:基于SonarQube的代码规范实践

分布式云平台与容器化部署

  • 容器化部署:Docker
  • 分布式集群管理框架:Kubernetes

第二单元 容器技术与Docker实操

Docker的基本原理

1. 虚拟化技术 vs. 容器技术

2. 容器技术的标准化概念

Docker运维实战

  • Docker容器管理与实操
  • Docker镜像管理与实操
  • 使用Dockerfile构建镜像

演练:微服务如何打包制作Docker镜像

  • Docker仓库管理与实操

演练:如何搭建私有镜像仓库Docker Registry

  • 实战演练

用Docker部署和运维rabbitMQ

用Docker部署和运维mysql

第三单元 分布式云部署与K8s实操

分布式容器管理工具Kubernetes

  • Kubernetes的分布式管理运行原理
  • Kubernetes的基本组件及其应用场景:
    无状态应用(Deployment)、有状态应用(StatefulSet)、批处理任务(Job)、后台支撑型(DaemonSet)
  • Kubernetes的虚拟网络原理:Node IP、Pod IP、Cluster IP
  • Kubernetes的安装部署与弹性扩容

基于Kubernetes的运维实操

  • 演练:微服务在Kubernetes上的高可用云端部署

基于yaml文件的微服务部署与弹性扩展过程

Node, Pod, Deployment, Service等基础组件及其实操

Label标签、Selector选择器及其实操

K8s的访问类型ClusterIP、NodePort、LoadBalancer及Ingress

  • 演练:Redis高可用集群在Kubernetes的部署

Kubernetes的三种IP及其在项目中的运用

有状态应用的部署及无头服务的应用

  • 演练:基于K8s搭建三种类型的MySQL集群数据库

K8s的存储类型:存储卷、持久化存储卷与StorageClass

  • 演练:集群监控工具Prometheus的部署过程

K8s的权限管理:Account、Role、RoleBinding及其应用

集群调度:亲和性(Affinity)、污点(taints)与容忍(tolerations)

  • 演练:搭建Git+Jenkins+docker+k8s的自动化运维平台

1)从Git服务器上下载代码、编译、测试、打包

2)静态代码规范检查与形成测试报告

3)制作Docker镜像并上传本地私服

4)执行脚本进行灰度发布与K8s分布式云端部署

第四单元 微服务开发与云端部署

用实际项目演练微服务开发的整个过程

1. 演练:从单体应用到微服务的设计转型过程

2. 微服务开发的组织形式:父项目与基础平台

3. 微服务开发的组织形式:多环境配置

4. 前端、聚合层、原子服务层的微服务设计

5. 服务网关的设计:用户权鉴与智能路由

微服务开发高阶:

1. 在分布式环境中高可靠地部署Nacos集群

2. 演练:如何实现跨语言的微服务调用

3. 演练:如何实现高并发下的优雅降级

4. 微服务间调用的监控与调优

第五单元 云平台监控与日志采集

云平台安全可靠运行的重要意义

  • 网站可用性的评价指标与系统监控
  • 系统监控的具体内容
  • 系统监控与日志采集的原理与系统架构
  • 国内主流系统监控与日志采集软件介绍

Prometheus系统监控与运维

  • 设定rules进行系统监控告警实操
  • 设定pushGateway自定义监控与告警实操

EFK日志采集与故障分析

  • 日志采集与故障分析的重要意义
  • 使用Kibana系统监控组件分析与监控系统
  • 在Kibana中进行故障分析与运行监控

汇款、微信转帐

汇款信息:

单位名称:北京市海淀区中科院计算所职业技能培训学校

开户行:工行海淀西区支行

账号:0200 0045 1920 0043 667

开户银行代码:1021 0000 0458

 

微信转账:

    步骤一:打开微信,扫描二微码付款时,点击打开微信右下角里的“发现”,在列表界面有一个“扫一扫”选项,点击打开“扫一扫”(如下图):

    步骤二:点击打开“扫一扫”后,会出现一个扫描框,将中科院计算所培训中心二维码/条码放入框内,即可自动扫描,并显示支付信息,输入付款金额。

                                                                                                        

    (中科院计算所培训中心二维码)

 

    步骤三:点击 “添加付款备注”,填写付款人姓名和单位全称,所有信息核对无误后,点击“确认付款”,完成支付。

 

                

 

  • 注意:步骤三是为了尽快确认您的培训费用是否到帐,方便为您查帐,所以一定要把付款人姓名和单位名称填写完整,如果姓名和单位名称超过20个汉字,单位名称可以填写简称。
京公网安备 11010802025851号 | 京ICP备14030124号-1
版权所有:© 2018 中科院计算所培训中心 .All Rights Reserved.

邀请好友一起学习

微信 QQ 新浪微博