目 录
1.1培训背景... 2
1.2培训目标... 2
1.3教学计划... 3
1.4具体课程方案(含课程大纲)... 4
课程一:云原生概论(1天)... 4
课程二:Kubernetes(K8s)基础及企业级应用(2天)... 6
课程三:Kubernetes(K8s)进阶及开发(2天)... 8
课程四:云原生应用架构、微服务治理及服务网格(2天)... 11
课程五:将云原生能力延伸到边缘(1天)... 13
课程六:基于云原生的AI应用开发与交付(1天)... 14
课程七:项目模拟实践与研讨(1天)... 16
1.5讲师简介... 17
云计算技术经过近十年的发展,已经在各行各业产生了广泛而深刻的影响。然而,随着互联网的发展和数字化转型的深入,应用系统的复杂性和规模日益增加,已有的云平台不能满足大规模复杂应用系统开发、部署和运维的需求。在这个背景下,Google等公司总结大规模互联网应用及底层支撑平台的开发和运维的经验,沉淀并开源了一系列技术,提出了以容器和微服务为基础的云原生计算(Cloud Native Computing)体系。
如今云原生模式和技术已经在诸多数字化组织和互联网公司到了成功应用,也被推广到了边缘计算和AI领域。相比传统IT和传统云技术,云原生技术能帮助用户突破IT复杂性瓶颈,给开发和运维带来十倍甚至百倍的效能提升。
然而,新技术的产生和发展总伴随着认知和技能的更新,由于云原生体系对IT开发和运维效能带来的巨大提升效果,同时各行业数字化愈发深入,IT在组织业务开展中的作用越来越大,理解云原生模式掌握云原生技术的组织,将在未来形成巨大的优势,相反,对云原生缺乏了解的组织将面临被淘汰的风险。
云原生被认为是会颠覆软件行业、甚至将深刻影响云计算行业的一类技术。Gartner预测,到2022年全球会有75%的企业会使用基于容器的云原生技术构建它们的应用系统。IDC预测,未来5年企业将使用原生工具和方法构建5亿个应用,相当于过去40年所构建的应用的总和。可以佐证这些预测的是,越来越多的企业选择拥抱云原生技术,来加速其数字化转型之旅。
为了助力客户加速数字化转型,更新对云原生体系的认知,掌握相关技术,在未来继续取得领先地位,我们设计了这套培养方案。
1.2培训目标
该人才培养方案的目标概括为四个方面:
1. 理解“云原生”概念的内涵和外延,深入理解“云原生”是如何助力数字化、智能化的。践行“云原生”,除了技术以外,还需要组织转型方能更有效果。
2. 掌握“云原生”相关技术,包括容器、K8s、微服务架构设计、微服务治理、服务网格等,具备运用“云原生”模式与技术解决现实问题的能力。
3. 了解“云原生”和更大的云计算领域的发展动态和未来趋势。
1.3教学计划
本系列课程总共由7门课程组成:
NO. | 课程名称 | 课程天数 |
1 | 云原生概述 | 1天 |
2 | Kubernetes(K8s)基础及企业级应用 | 2天 |
3 | Kubernetes(K8s)进阶及开发 | 2天 |
4 | 云原生应用架构、微服务治理及服务网格 | 3天 |
5 | 将云原生能力延伸到边缘 | 1天 |
6 | 基于云原生的AI应用开发与交付 | 1天 |
7 | 项目模拟实践与研讨 | 2天 |
【主要内容和目标】
1. 深入理解“云原生”的概念,以及数字化、智能化、互联网化与“云原生”的关系。。
2. 理解微服务架构的原理、给用户带来的价值和问题,了解典型的微服务治理技术和服务网格。
3. 理解容器和容器编排技术的原理和价值,了解Docker等典型的容器技术和Kubernetes(K8s)容器编排框架。
4. 了解DevOps方法与技术,了解云原生领域的新技术。
5. 了解组织在云原生技术落地及价值实现中除了技术还需要做哪些事情。
【建议受众】
企业高管
研发总监
运维总监
开发、运维等技术团队各级负责人和骨干
业务骨干
【课程大纲】
时间 | 内容 |
上午
| 1. “云原生”应运而生 1.1 “数智化”转型给IT系统带来的新挑战 1.2 “云原生”的概念和内涵 1.3 “云原生”落地典型案例
2. 微服务架构,释放开发生产力 2.1 从单体应用到微服务架构应用 2.2 微服务架构带来的收益和新问题 2.3 微服务治理框架和服务网格
3. 容器平台,赋能云上应用的全生命周期运维 3.1 IT架构持续演进给运维带来的新挑战 3.2 Docker和Kubernetes实现云上应用的敏捷部署和自动化运维 3.3 容器技术相关标准和Docker的替代方案 |
下午
| 4. DevOps,打通开发-运维,规范流程,提升效能 4.1 云原生应用的开发-运维-迭代全流程及其中的瓶颈 4.2 DevOps打通开发与运维 4.3 DevOps提升测试效率
5. 云原生体系的新技术新趋势 5.1 Serverless无服务器架构 5.2 云边协同 5.3 支持AI的云原生技术
6. 技术之外 6.1 云原生技术落地对组织架构和组织能力的要求 6.2 “云原生计算基金会”(CNCF)简介 |
【主要内容和目标】
1. 了解Docker等容器技术和Kubernetes(K8s)容器编排框架的概念、起源和发展
2. 理解Docker及其镜像的原理,掌握基本操作
3. 深入理解Kubernetes(K8s)的架构和原理
4. 掌握如何基于容器和K8s开发、部署和运维应用
5. 理解K8s网络和存储的原理,了解典型的实现方案,掌握K8s网络和存储管理的方法
【建议受众】
1. 系统架构师、应用架构师、云平台架构师
2. 运维团队负责人、应用运维工程师、IT基础设施和平台运维工程师
3. 研发团队负责人、应用开发工程师、运维开发工程师
4. QA、项目管理经理、产品经理
【课程大纲】
时间 | 内容 |
Day 1 上午
| 1. 容器与容器编排技术概述 1.1 容器技术的发展与Docker 1.2 事实标准的容器集群与容器编排平台 —— Kubernetes(K8s) 1.3 OCI标准与CRI标准
2. Docker简介 2.1 Docker的原理 2.2 Docker常用操作及应用 2.3 Docker镜像及其构建 |
Day 1 下午
| 3. K8s的架构及安装部署 3.1 K8s的架构 3.2 K8s的自动化部署工具 3.3 单节点K8s环境安装 3.4 生产级别K8s集群的部署架构
4. K8s的基本应用 4.1 Kubectl命令行配置及使用 4.2 Yaml资源编排文件 4.3 Pod的概念及管理 4.4 重启策略+健康检查实现应用自修复 4.5 Pod的调度 |
Day 2 上午
| 5. K8s中的工作负载 5.1 K8s的控制器模型 5.2 Deployment 5.3 Stateful Set 5.4 Daemon Set 5.5 Job和Cron Job
6. Service和Ingress 6.1 Service的概念和基本使用 6.2 Service实现原理 6.3 部署和使用Ingress Controller能力 |
Day 2 下午
| 7. K8s 的网络 7.1 K8s的网络模型 7.2 K8s的网络南向接口标准CNI 7.3 典型的K8s网络方案:Calico、Flannel及其他 7.4 实现虚机/物理机与K8s容器IP直通 —— 需求、问题及解决方法
8. K8s 的存储 8.1 K8s 中使用存储的几种模式和应用场景 8.2 PV、PVC详解 8.3 K8s的存储南向接口标准CSI及存储类别、存储动态供给 8.4 IaaS上搭建K8s平台常见的存储问题及解决方法 |
【主要内容和目标】
1. 掌握如何基于K8s配置和管理分布式应用
2. 掌握使用Helm在K8s上交付复杂应用
3. 理解Operator模式,掌握K8s扩展开发技术
4. 掌握K8s的系统监控、日志归集和管理
【建议受众】
1. 系统架构师、应用架构师、云平台架构师
2. 研发团队负责人、应用开发工程师、运维开发工程师
3. 运维团队负责人、应用运维工程师、IT基础设施和平台运维工程师
4. QA、项目管理经理、产品经理
【课程大纲】
时间 | 内容 |
Day 1 上午
| 1. K8s中的服务发现和配置管理 1.1 K8s中服务名称解析及其实现原理 1.2 使用ConfigMap保存和管理应用的配置信息 1.3 使用Secret保存和管理应用的敏感信息
2. 在K8s中的弹性伸缩 2.1 Pod水平扩缩及其自动化(HPA) 2.2 定义HAP的扩缩指标 2.3 K8s Node自动扩容与下线(缩容)
3. 基于K8s部署和管理有状态服务 3.1 部署单实例有状态服务 3.2 基于StatefulSet部署和管理有状态服务 3.3 StatefulSet的原理和注意事项 3.4 StatefulSet的扩缩 |
Day 1 下午
|
4. Helm部署和管理一个复杂应用 4.1 为什么需要Helm及Helm的发展 4.2 Helm基本应用 4.3 Helm Chart模板编写基础 4.4 开发一个Helm Chart
5. Oprator模式及K8s扩展开发 5.1 K8s自有Controller的不足及Operator模式的产生与发展 5.2 通过CRD扩展K8s的资源类型 5.3 基于Kubebuilder开发Operator实现自定义资源的操作与维护 5.4 Kubebuilder与其他Operator开发框架的比较 5.5 Operator与Helm的比较和应用场景选择 |
Day 2 上午
| 6. 为K8s配置企业级监控、日志与镜像仓库 6.1 基于Prometheus监控K8s Pod、Node等资源的各项指标 6.2 使用Grafana实现K8s监控指标的图形化展现 6.3 基于ELK(Elastic Stack)收集容器标准输出日志 6.4 基于ELK(Elastic Stack)收集容器内的日志文件 6.5 使用Harbor镜像仓库 6.6 使用Harbor作为Helm Chart仓库 |
Day 2 下午
| 7. 案例实践: 模拟一个分布式应用(微服务架构)项目,实现在K8s中的 |
【主要内容和目标】
1. 深入理解微服务架构的发展、价值,带来的新问题及解决思路
2. 理解微服务架构的设计原则
3. 掌握基于Spring Cloud微服务治理框架进行应用开发的方法和技术
4. 深入理解服务网格的原理,掌握如何基于服务网格进行服务治理
【建议受众】
1. 系统架构师、应用架构师、云平台架构师
2. 研发团队负责人、应用开发工程师、运维开发工程师
3. 运维团队负责人、应用运维工程师、平台运维工程师
4. QA、项目管理经理、产品经理
【课程大纲】
时间 | 内容 |
Day 1 上午
|
1. 微服务架构与(微)服务治理平台 1.1 从单体架构(三层架构)向微服务架构的演进 1.2 微服务架构设计原则 1.3 微服务架构带来的新问题及服务治理平台的作用
2. SpringCloud微服务治理框架 2.1 SpringCloud整体介绍 2.2 服务注册、发现与负载分发 |
Day 1 下午
|
2. SpringCloud微服务治理框架(续) 2.3 服务网关 2.4 分布式应用的配置 2.5 调试与监控微服务架构应用 —— 调用链跟踪 2.6 防止雪崩 —— 熔断与限流 |
Day 2 上午
|
3. 服务网格与Istio 1.1 传统微服务治理方案的问题 1.2 解决之道:服务网格 1.3 基于K8s的典型服务网格方案:Isitio概述 1.4 在K8s中部署Istio 1.5 Istio Sidecar注入和应用基本管理 1.6 服务网关 1.7蓝绿、滚动、金丝雀、ABTest发布 1.8 调用链跟踪和应用流量可视化 1.9 Istio中的限流与熔断 |
Day 2 下午
|
4. 进阶问题 4.1 “分布式事务”与“分布式应用的事务” 4.2 将SpringCloud与K8s结合 4.3 适用于Go、Python和 .Net的微服务治理方案 4.4 传统微服务治理与服务网格方案的选择和过渡 |
【主要内容和目标】
1. 了解边缘计算,深入理解云-边协同的概念、应用场景和技术需求
2. 深入理解将云原生延伸到边缘的主要技术方案
3. 掌握基于云原生技术开发边缘应用和云-边协同应用的方法
【建议受众】
1. 系统架构师、应用架构师、云平台架构师
2. 研发团队负责人、应用开发工程师、运维开发工程师
3. 运维团队负责人、应用运维工程师、IT基础设施和平台运维工程师
4. QA、项目管理经理、产品经理
【课程大纲】
时间 | 内容 |
上午
| 1. 边缘计算以及为什么需要云原生能力 1.1 边缘计算的概念和分类 1.2 云-边协同的应用场景和技术需求 1.3 为什么要“将云原生能力延伸到边缘” 1.4 在边缘提供云原生能力的两类典型技术路径
2. 基于K8s Node拉远的方案 2.1 K8s Node拉远方案的需求和实现原理分析 2.2 K8s Node拉远方案的典型实现 —— KubeEdge概述 2.3 KubeEdge的云端组件架构与云边协同原理 2.4 KubeEdge的边缘组件架构与边缘自治原理 2.5 KubeEdge中的设备管理与编程 2.6 KubeEdge EdgeMesh 将服务网格延伸到边缘 |
下午
| 3. 基于K8s集群小型化的方案 3.1 K3s的架构和原理 3.2 K3s的部署与应用 3.3 K3s与K8s集群串联 3.4 大量K8s(K3s)集群的管理
4. 进阶话题 4.1 两类技术方案的对比和未来演进 4.2 StarlingX等其他边缘云/分布式云方案 4.3 5G发展给边缘云/分布式云带来的新产业空间 |
【主要内容和目标】
1. 了解人工智能和机器学习
2. 深入理解AI应用的开发、训练和部署全过程对容器等云原生技术的需求
3. 掌握如何基于云原生平台进行分布式训练
4. 掌握基于云原生平台进行AI应用开发和部署的方案
【建议受众】
1. 系统架构师、应用架构师、云平台架构师
2. 研发团队负责人、应用开发工程师、运维开发工程师
3. AI算法工程师、数据科学家
4. 运维团队负责人、应用运维工程师、IT基础设施和平台运维工程师
5. QA、项目管理经理、产品经理
【课程大纲】
时间 | 内容 |
上午
| 1. 人工智能与机器学习 1.1 我们正处于人工智能的第三次浪潮中 1.2 人工智能 - 机器学习 - 深度学习 1.3 中国人工智能产业现状 1.4 数据-算法-算力是现代人工智能的三大关键要素
2. 深度神经网络的原理与应用概述 2.1 神经网络及其训练的基本原理 2.2 卷积神经网络 2.3 神经网络应用的编程框架 —— TensorFlow、Keras及其他 2.4 机器学习分布式训练原理与实操
3. 基于K8s解决分布式训练场景中的实际问题 3.1 TensorFlow多业务分布式训练面对的问题分析 3.2基于 TFjob / tf-operator 在K8s上实现多业务共享资源分布式学习 |
下午
|
4. 基于KubeFlow以云原生的方式开发和交付AI应用 4.1 AI模型从研发到上线再到迭代的全流程 4.2 云原生技术简化AI应用开发和交付 4.3 KubeFlow的组件和整体架构 4.4 KubeFlow的安装部署 4.5 KubeFlow Notebook Server 4.6 基于KubeFlow Katib实现超参数和模型结构的搜索和优化 4.7 使用KubeFlow Pipeline实现AI应用的持续迭代研发和部署 4.8 使用KubeFlow KFServing实现AI应用的上线交付 |
【主要内容和目标】
以实际项目为背景,分组进行方案设计、部分代码开发、部署上线及运维。总结项目心得,讨论在实际工作中如何应用云原生技术提升开发、交付和运维效能。
【建议受众】
1. 系统架构师、应用架构师、云平台架构师
2. 研发团队负责人、应用开发工程师、运维开发工程师
3. 运维团队负责人、应用运维工程师、IT基础设施和平台运维工程师
4. QA、项目管理经理、产品经理