开发者学堂课程【公开课-“第一堂”云原生课:【公开课】“第一堂”云原生课】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/825/detail/13945
【公开课】“第一堂”云原生课
内容介绍:
一、云原生技术发展历程(为什么学习这门课)
二、课程简介与预备知识(这门课到底教什么)
三、云原生的定义与技术要点(本节正式内容)
四、总结
一、云原生技术发展历程
1.云原生技术发展简史
2004~2007 Google 大规模使用容器(cgroups)技术
2008.01 cgroups 合并进入Linux 内核主干
有了技术基础
2013.03 Docker 项目正式发布
2014.06 Kubernetes 项目发布
因为有了容器,需要一个方式能够快速方便优雅的管理容器
2015.07 CNCF (云原生基金会)成立 22个创始人员 Kubernetes 称为第一个 CNCF 成员
2017.07 CNCF成立2周年 170个成员 14个基金会项目
2018.07 CNCF成立3周年 195个成员 19个基金会项目 11个孵化项目,发展速度快。
2.云原生技术生态现状
云原生全景图,有两百多个项目与产品,此图相当于CNCF 定义了一些产品和项目,任务与CNCF 理念所契合所关联的一些事情
以全景图为背景
①云原生基金会
CNCF(云原生基金会)是目前云计算领域最成功的开源基金会之一,是 Kubernetes,containerd,etcd,Envoy 等知名开源项目的托管基金会
②云原生技术社区
CNCF 目前托管的20+正式项目共同构成了现代云计算生态的基石。其中 Kubernetes 项目是全世界第四活跃的开源项目
③云原生技术产业
全球各大公有云厂商+100+技术创业公司持续投入,总体市场于2021年逼近1000亿美元。阿里云“全面上云”。
3.我们正处于时代的关键节点
2013年,Docker 项目发布
使得全操作系统语义的沙盒技术唾手可得,使用户更好更完整的打包自己的应用,对传统 PaaS 产业“降维打击”,使开发者有了真正能够运行的最小可运行单位
2014年,Kubernetes 项目发布
Google Borg/Omega 系统思想借助开源社区“重生”,“容器设计模式”的思想正式确立。为什么选择开源?
因为 Borg、Omega 系统太过复杂,很难直接使用
2015~2016年,容器编排“三国争霸”
Docker Swarm,Mesos,Kubernetes 在容器编排领域展开角逐。为什么要竞争?各自优势为何?
原因是容器本身的价值很大,但是要产生商业价值、云的价值,一定要在编排上有一定位置
优势在于生态和技术比较强
2017年,Kubernetes 项目事实标准确立
Docker 公司宣布在核心产品内置 Kubernetes 服务,Swarm 项目逐渐停止维护。
2018年,云原生技术理念逐步萌芽
Kubernetes 和容器成为所有云厂商上的既定标准,以“云”为核心的软件研发思想逐步形成
2019是一个关键节点
2019年–云原生技术普及元年
阿里巴巴集团“全面上云"
以“云"为核心的软件研发思想,逐步成为默认选项
Kubernetes 等云原生技能成为技术人员必修课,大量工作岗位涌现
“会Kubernetes"已经远远不够,“懂 Kubernetes"、“会云原生架构"的重要性日益凸显
二、课程简介与预备知识
1.公开课教学大纲(第一期)
基础与进阶并重
17个知识点,夯实基础+深入剖析。循序渐进的学习过程
课后自测
课后理论知识评测,用测试题的方式总结知识点,打造自己的云原生知识体系
云端实践
实践出真知。每个知识点,都后附云端实践环节+详细实践步骤。随堂赠送定量的阿里云代金券。
循序渐进的学习过程
第一堂课上线2019年4月第三周
课程更新频率
25个课时,每周一课,部分知识点每周两课
课后自测+云端实践
每个知识点一次
讲师阵容
CNCF 社区资深成员与项目维护者阿里云容器平台团队专家级工程师云原生社区资深技术专家(外部讲师)
不定期大咖直播+课程答疑+落地案例实讲
2.课程预备知识
Linux 操作系统
通识性基础即可,能够在 Linux 环境下进行开发最佳
计算机与程序设计基础
入门级工程师或高年级本科生水平即可
容器的使用基础
能够用 Docker 部署简单应用,有 Docker 化应用开发经验最佳
参考:https:/ldocs.docker.comlget-started/part2/
三、云原生的定义与技术要点
1.云原生的定义
(1)云原生,是一条最佳路径
云原生是一条使用户能:
①低心智负担的、
②敏捷的、
③以可扩展、可复制的方式,
最大化的利用”云“的能力、发挥”云“的价值的最佳路径
最核心的思想
(2)云原生的愿景
软件从诞生起就生在云上、长在云上的、全新的软件开发、发布和运维模式
为什么会强调容器技术具有革命性。
其实跟集装箱技术的革命性是非常类似的,容器技术使我们的应用能够有一个完整的自包含的一种定义方式。所以应用才能够有敏捷的、可扩展、可复制的方式发布在云上,发挥出云的能力,这就是容器技术,为什么对于计算产生了重大影响的一个根本性的原因,这也是为什么我们认为容器技术是云原生技术的一个核心底盘或者基础技术的一个重要原因所在,这也是云原生的容器的关系。
2.云原生的技术范畴
(1)云应用定义与开发流程
应用定义与镜像制作
CI/CD
消息和 Streaming
数据库
(2)云应用编排与管理
应用编排与调度
服务发现与治理
远程调用
API网关
Service Mesh
(3)监控与可观测性
监控
日志
Tracing
混沌工程
(4)云原生底层技术
容器运行时
云原生存储技术
云原生网络技术
(5)云原生工具集
流程自动化与配置管理
容器镜像仓库
云原生安全技术
云端密码管理
(6)Serverless
FaaS
BaaS
Serverless 计费
3.云原生思想的两个理论基础
(1)不可变基础设施
目前实现:容器镜像
应用下的基础设施是不可变的,是一个完全自包含、自描述、可以随时迁移的东西
(2)云应用编排理论
目前实现:容器设计模式
4.基础设施向云演进的过程
(1)传统的应用基础设施
可变
比如:SSH 连到服务器,手动升级或降级软件包,逐个服务器地调整配置文件,以及将新代码直接部署到现有服务器上
基础设施是独一无二的宠物,要细心呵护
自建基础设施
(2)对“云”友好的应用基础设施不可变
比如:部署完成之后基础设施不会被修改。如需更新,则先更改的公共镜像构建新服务以替换旧服务。经过验证后,新服务投入使用,旧服务则退役。
基础设施是可以替代的牲口,随时替换
“云”的价值
5.基础设施向云演进的意义
(1)基础设施一致性和可靠性
容器镜像 OS 也是一样的
自包含
可漂移
(2)简单可预测的部署与运维
自描述,自运维
流程自动化
容易水平扩展
可快速复制的管控系统与支撑组件
本身是容器化的,符合不可变基础设施的一套组件
6.云原生关键技术点
自包含、可定制的应用镜像
应用快速部署与隔离能力
应用基础设施创建和销毁的自动化管理
可复制的管控系统与支撑组件
四个云原生关键技术点是实现或落地云原生这套体系所必须的四个途径,四个技术点也是设计课程的依赖和参考的主要知识点
四、总结
“云原生"具备重要的意义,它是云时代技术人自我提升的必备路径
“云原生"定义了一条云时代应用从开发到交付的最佳路径
这条最佳路径上所需的核心技术点,是本公开课的主要讲授内容