“云原生”,不少人会对这个新名词感到困惑,到底什么是云原生,云原生又能给咱们带来什么呢?其实云原生的概念最先是由来自Pivotal的MattStine于2013年首次提出,这是他根据自身多年的架构和咨询经验总结出来的一个思想集合,获得了开源社区的不断完善,并被一直延续使用至今。安全
1、什么是云原生服务器
那么到底什么是“云原生”呢?咱们试图先从字面意思理解“云(Cloud)”和“原生(Native)”。网络
“云(Cloud)”这个字面意识不难理解简单的看就是天空中漂浮的一朵云,那么这个“云”放在科技环境下由从指代网络、互联网的标识到如今的云计算,因此能够说“云”在如今咱们默认指代云计算。架构
“原生(Native)”字面的意识理解为本地人,那么一样的放到现今的科技大环境下就是指"应用所处的环境"。框架
因此"云原生"能够简单的理解为:“一个应用系统借助云计算相关的周边技术进行设计研发,从而使该应用能完美的适配云上环境”。分布式
云原生计算基金会总经理Priyanka Sharma对云原生的解释为:“云原生技术是指工程师和软件人员利用云计算构建更快、更有弹性的技术,这样作是为了快速知足客户的需求”。ide
而官网(CNCF)上则将云原生的定义概况为:服务网格、声明式API、不可变基础设施、微服务、容器这五大特征,这也成了不少人对云原生的基础印象。模块化
总结来讲,云原生就是一个快速构建应用的理念,一种快速交付应用的技术集合。微服务
云原生还有一个很是重要的知识点,那就是云原生基金会,毕竟云原生这个理念须要落地推行的话仍是须要靠众人来拾材,CNCF(云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术,能够说CNCF的主要目的是培育云原生工具市场。工具
目前CNCF基金会开放的相关项目图以下:
CNCF基金会的会员大体以下:
2、云原生的表明技术
上文提到过云原生是一种理念,一个技术栈的集合。那么相对应的技术栈主要有:容器、服务网格、微服务、不可变基础设施和声明式API。
容器:容器是与系统其余部分隔开的一系列进程。运行这些进程所需的全部文件都由一个镜像提供,这意味着从开发到测试再到生产的整个过程当中,容器都具备可移植性和一致性。简单的说容器就是存放应用和应用相关依赖的“独立集装箱”,根据运送的货物的不一样特性能够制定多种集装箱类型(即容器镜像)
服务网格:服务网格简单的说能够看作是咱们平时用的代理软件,但这个代理软件又更加的智能。Service Mesh能够看作是传统代理的升级版,用来解决如今微服务框架中出现的问题,能够把 Service Mesh看作是分布式的微服务代理。
微服务:将应用程序构造为一组松散耦合的服务。在微服务体系结构中,服务是细粒度的,协议是轻量级的。简单的说就是其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。
不可变基础设施:这里基础设施能够理解为一个应用运行所须要的基本需求,不可变性最基本的就是指运行服务的服务器在完成部署后,就不在进行更改。这里指代容器镜像。
声明式API:描述最终运行环境的状态,而由系统来决定如何来建立这个环境。例如,你的描述就变成“建立一个有三个Nginx的集群”,而不是把建立Nginx的命令运行三次组成一个集群。这样的好处是当运行环境与描述不符合时,系统能检测到差别,并自动修复,这样系统就有了自动容错的功能。
这些技术可以构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师可以轻松地对系统做出频繁和可预测的重大变动。
3、云原生能带来什么
在去年IDC(互联网数据中心)对企业的调研中,有将近70%已经将云策略落地,却只有3%能带来明显的获利突破,差别就在技术面的“云实践成熟度”也就是云原生化。
MSP团队(基础设施平台服务商)在面对一个云化项目时大体的流程,首先须要作相关的业务系统的调研,而后选择相对应的云平台,而后给出相关的云化方案,最后根据方案对业务系统进行迁移或者云化的改造。可是面对混合云或多云环境的下云特点存在差别性,致使了在云实践上的差别性。
而云原生化的云服务平台,不只可以显着的下降基础建设与管理成本、提升布署灵活性与可扩充性,并且还有较高的安全性。
在微服务化方面:云原生将应用程序代码解耦成独立模块化单元,下降微服务的部属时间与互依性,提升应用的扩展性等。
在容器化包装方面:过去程序开发者可能须要建立多个虚拟机好让不一样的应用程序运做,但程序容器化让多个应用程序得以存在同一操做环境中,开发人员将代码、微服务放置在可复制、搬移的容器中,轻松地复制、发布到任意云平台,多个容器间不会互相干扰(沙盒机制),不只减小管理工做还能更有效地利用硬件资源,实现更快的持续集成、交付与发布。
在动态管理方面:经过集中的编排调度系统进行动态管理和调度,达到高速、低风险、迅速扩展和部署的方式,进行应用或服务的构建、测试、部署。
借助以上优点以及相对一致的实践方式,云原生能快速的打通各家云环境的壁垒,企业能够对市场变化作出最快的反应,使得新创云原生企业拥有能不断颠覆传统企业的威力。
4、云原生的挑战
根据CNCF的统计自2016年以来,生产中使用容器的数量增长了300%。根据这个规模来看如果在大型应用云化部署后(这里假设都是以容器实例在运行),那么这个应用数以百计或者千计的容器该如何作好全生命周期的管理,如:监控日志的采集告警、调度、以及应用模块与模块之间链路调用追踪等将会是咱们即将面临的最大的挑战之一。