4006-998-758
3000+课程任你选择
分布式技术系列产品应用培训
研发学院 高并发 大数据 高可用 开课时间:2022-06-20
范钢

从事软件研发工作近二十年,并且现在一直坚守在大型软件架构设计一线工作。从需求分析、软件开发到项目管理、架构设计都有丰富的从业经验,尤其熟悉互联网架构与分析的特点。先后主持或参与了数十个国内外大型软件项目,涉及领域包括互联网、金融、军工、财务、税务等领域。先后为京东、淘宝网、支付宝等电商网站设计电子发票开票平台,为全国各地各行各业的纳税人设计增值税发票在线开票系统,为各级税务机关提供税务大数据风险监控平台。此外,还是大型遗留系统改造专业户,多次参与大型遗留系统改造、软件系统重构等重大项目,长期关注大型业务系统的品质保证、防止腐化以及技术改造等困扰软件企业的问题,进而提出了许多实用而有效的解决方案,在遗留系统优化与改造方面有丰富的经验。


查看老师详情
课程内容

课程介绍


近些年,随着互联网的不断发展,市场变化越来越快,需求变更越来越频繁。为了能够跟上市场变化的脚步,在市场竞争中占得先机,越来越多的研发团队选择敏捷开发、快速迭代,云原生的概念孕育而生。云原生=微服务+DevOps+持续交付+容器化,它通过微服务进行设计开发系统,通过DevOps进行持续交付,以容器化的形式进行分布式云端部署。

云原生的核心是为了构建高并发、高可用的分布式架构,因此本课程详细讲解了如何通过架构演化去应对不同阶段的互联网架构设计,在这个过程中,以专题的形式讲解分布式缓存、分布式队列、分布式锁、分布式数据库等分布式技术。

然而,要把分布式技术的优势发挥出来,关键在于云端分布式部署,以适应互联网高并发、高可用的需要。因此本课程结合目前最流行的技术架构,详细讲解了DevOps自动化运维、CI/CD持续集成、Docker容器技术、Kubernetes分布式容器部署,并以此为基础演练基于Git+Jenkins+Docker+Kubernetes的DevOps自动化云端部署与运维的过程。


课程对象


1、系统架构师、高级程序员、资深开发人员

2、涉及到微服务技术转型的团队负责人、规划师、架构师

3、涉及到云端DevOps平台部署与交付的运维人员


课程特色


本课程注重实战,范老师在分布式微服务开发与运维相关领域从业多年,积累了大量的实操,会针对系统搭建过程中常见的问题进行汇总、研讨,并最终形成培训教程。通过大量的实际操作,详细地介绍了微服务开发与DevOps云端部署过程中需要注意的要点以及难点,这些知识都是讲师十几年经验的总结。


课程大纲


第一单元 互联网分布式系统

什么是互联网分布式系统

1. 互联网架构的特点:高并发、大数据、高可用

2. 集中式系统在面对互联网时的弊病

3. 分布式系统的概念及其优势

 

大型互联网分布式架构的演化过程

1. All-in-One集中式架构设计

2. 多级集中式架构及其弊病

3. 前后端分离与读写分离的架构设计

  案例:构建高并发、高可用的在线订餐系统

1)前后端分离的应用实战

2)读写分离的应用实战

 

生产型业务系统的分布式设计

1. 数据库的横向纵向切分

  1)数据库的纵向切分与微服务的设计

  2)数据库的横向切分与分布式数据库

2. 分布式缓存的设计

3. 异步化操作与分布式队列

 

生产型业务系统未来的发展趋势

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

  1)微服务的拆分与分布式云部署

  2)通过Kubernetes实现微服务的弹性扩容与高可用

  3)微服务的高可用措施:故障转移、熔断、降级、限流措施

2. 亿级流量的架构设计:通过分层实现逐级限流

3. NewSQL数据库的原理与应用

分析型业务系统的分布式设计

1. NoSQL数据库的原理与应用

2. 海量数据高并发秒级查询的设计

 

云原生(Cloud Native)的概念

1. 面向互联网分布式系统运维的难点与痛点

2. 云原生=微服务+DevOps+持续交付+容器化

3. 云原生架构的核心思想与“12因素(12-Factors)”

4. 云原生的设计实现:Kubernetes、微服务、服务网格

 

第二单元 分布式系统技术专题

分布式缓存的设计实践

1. 本地缓存vs.分布式缓存

2. 分布式缓存设计原理与高可用设计

3. Redis分布式缓存的部署演练

4. Redis分布式缓存设计实践

5. Redis分布式缓存设计应注意的问题

 

内存数据库的设计实践

1. 内存数据库运行原理

2. 内存数据库设计选型

3. Redis内存数据库设计实践

  1)内存数据库+异步化技术方案

  2)京东订单系统的优化过程

 

分布式事务的设计实践

1. 分布式事务的两阶段提交

2. TCC方案

  1)TCC方案设计原理

  2)阿里的Seata与GTS

  3)TCC方案的设计实现

3. 基于消息的分布式事务

  1)基于消息的最终一致性

  2)设计实践及其存在的问题

  3)基于半消息的设计实践

  4)基于消息表的设计方案

 

分布式锁的设计实践

1. 分布式锁的应用场景及其原理

2. 基于数据库的设计方案

3. 基于Redis的设计方案

  1)基于Redis的设计实践

  2)方案存在的问题

4.  基于etcd的设计方案

  1)etcd的特点介绍

  2)etcd在分布式锁中的设计实现

 

分布式消息队列的设计实践

1. 异步化操作与分布式消息队列

2. RabbitMQ, RocketMQ, ActiveMQ与kafka的比较

3. RabbitMQ的部署演练与设计实践

4. RocketMQ的部署演练与设计实践

5. Kafka的部署演练与设计实践

 

分布式数据库的设计实践

1. RDBMS→NewSQL→NoSQL

2. 分布式存储CAP理论

3. NoSQL数据库及其原理

4. 如何实现高并发大数据查询场景

案例:MongoDB实现大数据秒级查询的实践

5. NewSQL数据库及其原理

6. 高并发写入的分布式设计方案

案例:TiDB数据库的分布式原理及其设计应用

 

第三单元 构建云原生架构

DevOps运维与快速交付

持续集成与DevOps的概念

1. 跨团队开发面临的难题

2. 规模化敏捷与快速交付面临的难题

3. 互联网运维面临的难题

4. DevOps的概念及其解决思路

构建分布式持续集成环境

1. 什么是分布式持续集成

2. 大前端+技术中台的组织形式与微服务架构

    1)规模化敏捷与特性团队的应用实践

    2)项目群层、发布火车与按节奏开发

    3)构建微服务技术中台与自动化运维平台

3.  持续探索、持续集成、持续交付、按需发布的概念

微服务云端部署的自动化运维过程

1. 持续集成工具Jenkins

2. 单元测试与契约测试

3. 运行容器:Docker

4. 分布式集群管理框架:Kubernetes

 

Docker容器技术及其应用

Docker的基本原理

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

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

Docker运维实战

1. Docker容器管理与实操

2. Docker镜像管理与实操

3. 使用Dockerfile构建镜像

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

4.  Docker仓库管理与实操

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

5. 实战演练

用Docker部署和运维rabbitMQ

用Docker部署和运维mysql

基于容器的微服务自动化运维

1. 微服务运维的难点与痛点

2. 基于Maven的Docker构建过程

3. 使用Jenkins编写定时任务

演练:基于容器的微服务持续集成过程

 

分布式容器管理工具Kubernetes

1. Kubernetes的分布式管理运行原理

2. Kubernetes的基本组件及其应用场景:

无状态应用(Deployment)、有状态应用(StatefulSet)、批处理任务(Job)、后台支撑型(DaemonSet)

3. Kubernetes的虚拟网络原理:Node IP、Pod IP、Cluster IP

4. Kubernetes的安装部署与弹性扩容

 

第四单元 K8s容器化部署实战

基于Kubernetes的运维实操

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

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

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

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

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

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

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

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

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

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

4. 演练:基于K8s搭建Hadoop大数据平台

  1)使用Dockerfile制作镜像并上传镜像仓库

  2)K8s的配置信息管理:ConfigMap、Secret及其应用

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

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

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

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

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

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

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

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

 

云平台的系统监控与日志采集

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

1.  网站可用性的评价指标与系统监控

2.  系统监控的具体内容

3.  系统监控与日志采集的原理与系统架构

4.   国内主流系统监控与日志采集软件介绍

Prometheus系统监控与运维

1.  搭建系统监控组件Prometheus实操

2.  搭建监控数据展现组件Grafana实操

3.  设定rules进行系统监控告警实操

4.  设定pushGateway自定义监控与告警实操

EFK日志采集与故障分析

1. 日志采集与故障分析的重要意义

2. 搭建ElasticSearch+Flunted+Kibana日志采集实操

3. 使用Kibana系统监控组件分析与监控系统

4.  在Kibana中进行故障分析与运行监控








返回上一级