写在前面
- 嗯, 了华为云的一个,这里整理课堂笔记记忆,感兴趣小伙伴也可去试试
- 学习的原因:
- 虽然考了CKA,了解了一些K8s相关的知识,但是对云原生一直都很模糊
- 希望对云原生有一个基本的认识,云原生入门
- 博文主要是课堂笔记
傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。——–王小波
一 云原生架构总览
云原生技术的发展
- 2001年,发布了第一个针对的虚拟化产品和,即的前身。
- 2006年10月,以色列的创业公司在完成了虚拟化基本功能、动态迁移以及主要的性能优化之后,正式对外宣布了的诞生。2009年4月,推出业界首款云操作系统。
- 2006年,推出首批云产品和,使企业可以利用的基础设施构建自己的应用程序。
- 2010年7月,和联合推出了一项名为的开源云软件计划。
- 2011年,Pivotal推出了开源版,作为的开源替代品,并于2014年底推出了。
- 2008年,容器发布,这是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源。是最初使用的具体内核功能实现。
- 2013年,发布,组合,和等创建容器化标准,风靡一时,逐步替代,。
- 2015年7月,联合成立了组织,成为管理的首个开源项目。
- 2018年3月,从毕业,成为 第一个毕业项目。
云原生的定义
云原生定义-
公司的于2013年首次提出云原生的概念,并推出了和系列开发框架,是云原生的探路者。
2015年,云原生刚推广时,在一书中定义了符合云原生架构的几个特征
- 符合应用(12 Factors Application)
- 面向(Microservices)
- 自服务集成设施(Self Service Agile Infrastructure)
- 基于的协作(API-Based Collaboration)
- (Antifragility)
云原生定义-
Pivotal官方 站对云原生最新论述如下:
- 云原生是一种构建和运行应用程序的方法,它利用了云计算交付模型的优势;
- 云原生关注如何创建和部署应用程序,而不是在何处(云计算);
- 虽然现在公有云影响了几乎每个行业的基础设施投资思想,但类似云的交付模式并不仅限于公有云环境,它适用于公有云和私有云;
- 云原生结合了DevOps、持续交付、微服务和容器的概念;
- 当公司以云原生方式构建和运营应用程序时,它们可以更快地将新想法推向市场并更快地响应客户需求;
2019年,被收购,成为其子公司。
云原生定义-
(以下简称)是一个开源软件基金会,成立于2015年7月,隶属于。致力于云原生(Cloud Native)技术的普及和可持续发展。。CNCF是GitHub上许多增长最快的项目的提供者的中立家园,其中包括,和等
起初,对的定义包含以下三个方面:
- (Software stack to be Containerized)
- (Microservices Oriented)
- (Dynamically Orchestrated)
到2018年,随着 区对理念的广泛认可和云原生生态的不断扩大,还有CNCF项目和会员的大量增加,起初的定义已经不再适用。
云原生定义-.(2018年更新后的定义论述如下:)
云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括、、、和。
-
底层:主要是在运行容器化服务之前,需要为容器准备标准化的基础环境,比如用于,代表性工具和厂商包括、 、 ,等。容器镜像库。凭据管理主要用于在整个容器平台中进行秘钥管
-
:容器的整个运行环境,是云原生底层技术中最核心的部分它包括了、、三大块,提供容器的运行环境()。要解决容数据器持久化的问题。也是非常核心且非常复杂多变的一块内容,常见方案有、 ,等。
-
编排调度层,主要负责容器平台的编排和调度,包括,,等组件。
-
最上层 就是跟应用定义与开发相关的内容,主要是一些技术或工具来支撑。
-
横向上 云原生还包括众多的经过认证的平台供应商。应用运维层,包含了大量用于对平台进行监控( 、等) 、日志( , ,) 、以及追踪()的工具。最后还有一块是关于无服务器架构的内容
容器技术-提高应用可移植性,提升业务敏捷
容器可以将应用本身及其依赖打包,使得应用可以实现“”。容器也可以理解成一种沙盒技术,在计算机安全领域中是一种,为运行中的程序提供的隔离环境。
容器核心价值可移植性:
- 环境标准化,应用随处运行敏捷:
- 创建速度快,秒级资源弹性提高生产力:
- 消除跨服务依赖性和冲突
针对期望状态结果给出声明,而不是过程
对于我们使用对象的方式,一般会编写对应的文件交给 (而不是使用一些命令来直接操作API) 。
所谓“”,指的就是我只需要提交一个定义好的对象来“声明”(这个YAML文件其实就是一种“声明”)表示所期望的最终状态是什么样子就可以了。而如果提交的是一个个命令,去指导怎么一步一步达到期望状态,这就是“命令式”了。可以说,声明式API是Kubernetes项目编排能力“赖以生存”的核心所在。
服务 格-剥离业务代码和分布式框架
- 非侵入式接管应用服务通信
- 细粒度流量治理:灰度发布、故障注入、可观测性支持
- 平台团队聚焦框架层的开发和调优
- 业务团队聚焦业务本身的开发
,它是松散耦合的分布式架构框架,因此一个团队的更改不会破坏整个应用。使用微服务的好处是,开发团队能够快速构建应用的新组件,以满足不断变化的业务需求。
微服务架构有别于更为传统的单体式方案,可将应用拆分成多个核心功能。每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工作(和出现故障)时不会相互影响。比如你在线购物时,使用搜索栏来找产品,这个搜索功能就是一项服务,同时你也看到了相关产品推荐,这些推荐也是来自于另外一项服务,还有购物车等,都是一项一项的服务
DevOps -促进开发运维一体化
云原生应用的12-Factors要素
于2012年提出,告诉开发者如何利用云平台提供的便利来开发更具可靠性和扩展性、更加易于维护的云原生应用。
单体架构的问题不在于不可拆分上,在于无法隔离和自治。应用规模越大,局限性越明显
云原生架构模式:
就是其中一种实现方式。它实现了服务彻底拆分,各服务可以独立打包、独立部署和独立升级,对开发者而言,摆脱开发语言的束缚。每个微服务负责的业务比较清晰,利于后期扩展和维护。微服务之间可以采用REST和RPC协议进行通信。同时,微服务架构可以和其他云原生技术完美结合,充分发挥云的优势。
华为云云原生解决方案
华为云长期投入云原生技术与产业,是全球云原生领域领导者
华为云基于擎天架构
基于云原生基础设施的多云管理解决方案
基于云原生基础设施的边云协同解决方案
企业级微服务管理平台,加速微服务应用开发和高可用运维
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!