作为诞生于云计算时代的新技术理念,云原生拥有传统IT无法比拟的优势,可帮助企业高效享受云的弹性和灵活性,从而实现平滑迁移、快速开发、稳定运维,大大降低技术成本,云原生已经成为云时代的新技术标准。
云原生是什么?
广义来讲,云原生是全面使用云服务构建软件。随着云计算技术的不断发展和丰富,很多用户对云的使用,不再是早期简单地租用云厂商服务器等IaaS资源。
Now Every Company Is A Software Company, every business is a software business。如何像互联网公司那样,快速上线应用、面对海量突发流量临危不惧?云原生的技术理念就可以解决这些问题。
狭义来讲,云原生包含以容器、服务网格、微服务、Serverless为代表的云原生技术,带来一种全新的方式来构建应用。它不但可以很好的支持互联网应用,也在深刻影响着新的计算架构、新的智能数据应用。
云原生是个不断在发展的技术方向,其定义也会在日后不断演进。Gartner报告指出,到2022年有75%的全球化企业将在生产中使用云原生的容器化应用。
企业为什么需要云原生?
过去数十年,企业IT架构经历了单机、分布式和云计算三个阶段的技术演进。
云计算时代的第一个十年,大多数互联网公司的应用从诞生之初就生长在云端;如今,金融、制造、医疗以及政务等领域的企业和机构也逐渐将业务迁移至云上。
企业的云化不仅仅是基础设施和平台的升级,应用也需要摒弃传统的设计方法,从架构设计、开发方式到部署维护整个软件生命周期都基于云的特点设计,从而构建原生为云而设计的应用,这样才能在云上以最佳姿势运行,充分利用和发挥云平台的弹性以及分布式优势。
云原生就是这样一套全新的理念,背后涵盖了一系列全新的技术,例如容器、微服务、服务网格等。Gartner报告指出,到2022年有75%的全球化企业将在生产中使用云原生的容器化应用。
目前,不仅互联网行业在使用云原生,制造、地产、生命科学、政府等各行各业也都在拥抱云原生技术。根据CNCF去年发布的一份调查报告显示,58%受访者已经在生产环境中使用了Kubernetes,Kubernetes不仅接受住了生产实践的检验,也从技术采纳生命周期的early adoptor进入到了early majority阶段。
企业使用云原生到了什么阶段?
目前,8成新应用都是云原生化的。而Gartner数据显示,到2020年,将有50%的传统老旧应用也被以云原生化的方式改造。在这种情况下,行业也存在较为彻底的预判:未来成功的企业都将采用云原生技术,并且是深度采用。
Kubernetes被认为是“云时代的Linux”,根据此前Stackoverflow对近十万程序员调查显示,Docker 和Kubernetes已经成为继Linux和Windows之后开发者们top 3最常用、最喜爱的工具。
灵雀云CTO陈恺此前对雷锋网表示,2018年产业已经进入后Kubernetes时代。在未来可能Kubernetes往下管理所有种类的基础设施,往上支撑所有种类的应用。如果一个应用部署在Kubernetes平台上,从另外一个角度说又像一个新时代的应用服务器。更重要的是作为一个开发者,以后会看到越来越多的应用部署在Kubernetes集群,出现越来越多的Kubernetes编排文件,甚至在今后对于绝大多数应用来说,这是唯一一种交互方式。
容器和云原生的关系是什么?
云原生的核心技术之一就是容器,容器技术的兴起起源于2013年开源的docker。
容器是一种应用虚拟化技术。举个例子,如果说物理机是独栋别墅,虚拟机是联排别墅,那么容器就是集装箱房。
住户(云用户)想住进独栋别墅,那就需要单独占用一块地,专门设计图纸,入住周期最长,且价格昂贵、不亲民,只有资源有资金的人才能享有。对于联排住宅而言,设计方案可以共享,一定程度上减少了入住周期。有容器呢,则是新式的集装箱房,可以高密度安排很多房间,内部设计可以个性化,建造时只需要吊车搬运集装箱房间即可。
容器的价值
容器的价值可以从两个角度阐述:
从应用架构的角度,容器技术可以方便地支持微服务架构实现应用的现代化,更加灵活的应对变化和弹性扩展。在软件生命周期管理上面,容器技术可以帮助把DevOps等最佳实践落地成可运用的标准化工具和框架,大大提升开发效率,加速迭代。
在基础架构层面,利用容器技术带来的可移植性,帮助开发者和企业更便捷的上云和迁云,让应用在自有数据中心和云端实现动态迁移。随着容器技术和云计算的计算、存储、网络的进一步融合,更加推动从传统以基础设施为中心,向以应用为中心的IT架构转变。
Docker之后,一些与其相关或思想有异曲同工之妙的技术也诞生了。比如Kubernetes、服务网格等等。正如人类社会发展伴随着技术革命与社会大分工一样,云原生技术的出现解耦了很多复杂性,这是IT技术的进步。
首先,Docker实现了应用与运行环境的解耦,众多业务应用负载都可以被容器化,而且应用容器化满足了敏捷、可迁移、标准化的诉求;
其次,Kubernetes的出现让资源编排调度与底层基础设施解耦,应用和资源的管控也开始得心应手,容器编排实现资源编排、高效调度;
随后,Istio为代表的服务网格技术解耦了服务实现与服务治理能力。
此外,容器云厂商还提供了Open API、SDK等开发工具,这样的技术分层推动了社会分工,极大促进了技术和业务创新。
阿里云容器研究人员总结表示,云原生首先可以支持互联网规模应用,可以更加快速地创新、和低成本试错;其次,屏蔽了底层基础架构的差异和复杂性;同时,服务网格、无服务计算等新的计算范型的不断涌现,给整体IT架构能力带来了极致弹性,从而更好地服务于业务。用户可以基于阿里云容器服务构建面向领域的云原生框架,如面向机器学习的Kubeflow,和面向无服务器的Knative等等。
相关阅读: