“云原生”,很多人会对这个新名词感到困惑,到底什么是云原生,云原生又能给我们带来什么呢?其实云原生的概念最早是由来自Pivotal的MattStine于2013年首次提出,这是他根据自身多年的架构和咨询经验总结出来的一个思想集合,得到了开源社区的不断完善,并被一直延续使用至今。
一、什么是云原生
那么到底什么是“云原生”呢?我们试图先从字面意思理解“云(Cloud)”和“原生(Native)”。
“云(Cloud)”这个字面意识不难理解简单的看就是天空中漂浮的一朵云,那么这个“云”放在科技环境下由从指代网络、互联网的标识到现在的云计算,所以可以说“云”在现在我们默认指代云计算。
“原生(Native)”字面的意识理解为本地人,那么同样地放到现今的科技大环境下就是指"应用所处的环境"。
所以"云原生"可以简单的理解为:“一个应用系统借助云计算相关的周边技术进行设计研发,从而使该应用能完美地适配云上环境”。
云原生计算基金会总经理Priyanka Sharma对云原生的解释为:“云原生技术是指工程师和软件人员利用云计算构建更快、更有弹性的技术,这样做是为了快速满足客户的需求”。
而官网(CNCF)上则将云原生的定义概况为:服务网格、声明式API、不可变基础设施、微服务、容器这五大特征,这也成了很多人对云原生的基础印象。
总结来说,云原生就是一个快速构建应用的理念,一种快速交付应用的技术集合。
云原生还有一个非常重要的知识点,那就是云原生基金会,毕竟云原生这个理念需要落地推行的话还是需要靠众人来拾材,CNCF(云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术,可以说CNCF的主要目的是培育云原生工具市场。
目前CNCF基金会开放的相关项目图如下:
CNCF基金会的会员大致如下:
二、云原生的代表技术
上文提到过云原生是一种理念,一个技术栈的集合。那么相对应的技术栈主要有:容器、服务网格、微服务、不可变基础设施和声明式API。
这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。
三、云原生能带来什么
在去年IDC(互联网数据中心)对企业的调研中,有将近70%已经将云策略落地,却只有3%能带来明显的获利突破,差异就在技术面的“云实践成熟度”也就是云原生化。
MSP团队(基础设施平台服务商)在面对一个云化项目时大致的流程,首先需要做相关的业务系统的调研,然后选择相对应的云平台,然后给出相关的云化方案,最后根据方案对业务系统进行迁移或者云化的改造。但是面对混合云或多云环境的下云特色存在差异性,导致了在云实践上的差异性。
而云原生化的云服务平台,不仅能够显着的降低基础建设与管理成本、提高部署灵活性与可扩充性,而且还有较高的安全性。
借助以上优势以及相对一致的实践方式,云原生能快速地打通各家云环境的壁垒,企业可以对市场变化做出最快的反应,使得新创云原生企业拥有能不断颠覆传统企业的威力。
四、云原生的挑战
根据CNCF的统计自2016年以来,生产中使用容器的数量增加了300%。根据这个规模来看若是在大型应用云化部署后(这里假设都是以容器实例在运行),那么这个应用数以百计或者千计的容器该如何做好全生命周期的管理,如:监控日志的采集告警、调度、以及应用模块与模块之间链路调用追踪等将会是我们即将面临的最大的挑战之一。
数栈是云原生—站式数据中台PaaS,我们在github和gitee上有一个有趣的开源项目:FlinkX,FlinkX是一个基于Flink的批流统一的数据同步工具,既可以采集静态的数据,也可以采集实时变化的数据,是全域、异构、批流一体的数据同步引擎。大家喜欢的话请给我们点个star!star!star!
github开源项目:
https://github.com/DTStack/flinkx
gitee开源项目:
https://gitee.com/dtstack_dev_0/flinkx