“云原生”,很多人对这个新名词感到困惑。什么是云原生?而云原生给我们带来了什么?事实上,云原生概念最早是由Pivotal 的Matt Stine 在2013 年提出的。这是他根据多年的架构和咨询经验编写的想法集合,并由开源社区不断改进。至今仍在使用。
1.什么是云原生?
那么“云原生”到底是什么?我们尝试从字面上理解“云”和“原生”。
“云”的字面意思并不难理解。它们看起来就像天空中漂浮的云彩。这种“云”是从指代网络和互联网的标志演变而来的。因此,我们可以说现在的“云”默认指的是云计算。
“Native”字面意思是本地人,但在当今的技术环境中它也意味着“应用程序所在的环境”。
因此,“云原生”简单来说就是“利用云计算相关的外围技术来设计和开发一个应用系统,让应用程序完全适应云环境”。我的理解是。
云原生计算基金会总经理Priyanka Sharma 谈到云原生时表示,“云原生技术是利用云计算通过创建更快、更具弹性来快速响应客户需求的技术,是指构建技术的工程师和软件人员。
官网(CNCF)将云原生的定义概述为五个关键特征:服务网格、声明式API、不可变基础设施、微服务和容器。这也是很多人对云原生的基本印象。
综上所述,云原生是快速构建应用的概念和快速交付应用的技术的集合。
关于云原生的另一个非常重要的知识点是云原生基础。归根结底,如果您需要实现云原生概念,则需要获取CNCF(云原生)文档。计算基金会致力于开发和支持创客来推进云原生技术。可以说,CNCF的主要目的是培育云原生工具市场。
CNCF基金会目前正在征集的相关项目有:
CNCF基金会成员大致如下:
2. 云原生代表性技术
前面提到,云原生是一个概念,是技术栈的集合。支持的技术堆栈主要包括容器、服务网格、微服务、不可变基础设施和声明式API。
容器:容器是一组与系统其他部分隔离的进程。运行这些进程所需的所有文件均由单个映像提供。这意味着容器是可移植的,并且从开发到测试再到生产都是一致的。简单来说,容器就是一个“独立的容器”,用于存储应用程序以及应用程序相关的依赖项。可以根据所运输货物的不同特性开发多种集装箱类型(即集装箱图像)。 Service Grid可以认为是我平时使用的代理软件,但是这个代理软件更加智能。 Service Mesh可以看作是传统代理的升级版本,用于解决当前微服务框架遇到的问题。 Service Mesh 可以被认为是分布式微服务代理。微服务:将您的应用程序构建为一组松散耦合的服务。在微服务架构中,服务是细粒度的,协议是轻量级的。简单地说,一个应用程序由许多松散耦合且可以独立部署的小组件或服务组成。不可变的基础设施:这里的基础设施可以理解为运行应用程序的基本要求。从最基本的角度来说,不变性意味着运行服务的服务器在部署后不会改变。这是指容器镜像。声明式API:描述最终执行环境的状态,并决定系统如何创建这个环境。例如,不是运行命令创建Nginx 三次来形成集群,而是描述为“创建一个包含三个Nginx 的集群”。这样做的好处是,如果执行环境与描述不符,系统可以检测到差异并自动修复,从而使系统自动容错。这些技术能够构建容错、易于管理且易于观察的松散耦合系统。通过将云原生技术与可靠的自动化相结合,工程师可以轻松地对其系统进行频繁、可预测且重大的更改。
3、云原生带来了什么?
去年互联网数据中心(IDC)对企业的调查发现,近70%的企业采用了云战略,但只有3%的企业利润得到了明显改善。区别在于从技术角度来看“云实践的成熟度”。
当一个MSP团队(基础设施平台服务提供商)面对云项目时,典型的流程是首先对相关业务系统进行研究,然后选择相应的云平台,最后选择相关的云解决方案。您需要做的取决于您的迁移或云计划。业务系统改造基于然而,混合云或多云环境中云特性存在差异,导致云实践存在差异。
云原生云服务平台可显着降低基础设施和管理成本,提高部署灵活性和可扩展性,并提供更高的安全性。
微服务视角:云原生将应用程序代码分离为独立的模块化单元,减少了部署时间和微服务互连性,并提高了应用程序的可扩展性。关于容器化打包:以前,程序开发人员必须创建多个虚拟机来运行不同的应用程序,但程序容器化允许开发人员在同一个操作系统上运行多个应用程序,可以在容器内拥有代码和微服务。复制和移动可以防止容器相互干扰(沙箱机制),从而更好地利用硬件资源并允许更快的集成。分发和发布。从动态管理的角度来看:动态管理和调度是通过集中管理的编排和调度系统进行的,可以快速、低风险、快速扩展和部署来构建、测试和部署应用程序和服务。凭借以上优势和相对一致的做法,云原生能够快速突破不同云环境的壁垒,让企业尽快响应市场变化,让新的云原生企业不断颠覆传统企业。权力
4. 云原生挑战
据CNCF称,自2016年以来,生产中使用的容器数量增加了300%。基于这个规模,如果您在云中部署了一个大型应用程序(我们假设所有内容都在容器实例上运行),您可以为该应用程序运行数百或数千个容器,那么在整个周期中应该如何管理它?监控日志收集、报警、调度以及应用模块之间的链接调用跟踪是我们即将面临的最大挑战之一。
Data Stack 是一个云原生、固定数据中心PaaS。 GitHub 和gitee 上有一些有趣的开源项目。 FlinkX是一款基于Flink的批流集成数据同步工具。一个全局的、异构的批流集成数据同步引擎,可以实时收集变化的数据。如果喜欢的话请给个star吧!星星!星星!
github开源项目:https://github.com/DTStack/flinkx
gitee开源项目:https://gitee.com/dtstack_dev_0/flinkx
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/86570.html