云原生是真的火?还是炒作?
大多人学习和掌握云原生架构和技术成长的目的,是为了符合企业需求,职场发展,毕竟在互联网领域它是人尽皆知。
那么云原生是真的火?还是炒作?看完这篇文章,或许你心里会有个答案。
首先说说传统云平台
在云原生之前,IT/互联网领域中也是存在着云平台的。
基于虚拟化的传统云平台,典型的有 Openstack 等。在传统方式下,如果说一个企业生产应用,需要部署 100 台应用实例,那么它就得准备 100 个虚拟机,然后再将代码部署上去,最后为应用构建高可用的方案。这样无论生产还是运维耗费精力都是巨大的。
区别
而云原生有一个核心概念容器,传统云平台与云原生之间必须要关注的少不了容器与虚拟机之间的区别。
虚拟机即在宿主机/物理机的基础上装一个操作系统,操作系统之上部署 Hypervisor,由它再带起一个个承担应用的子系统。从这个层面来看它是很复杂的,如果系统出现了某些问题,我们需要去检测宿主机、虚拟机乃至 Hypervisor。
而且虚拟机是模拟完整的操作系统,这当然也包括了硬件驱动等等,资源需求很大,一个物理机可以开放的虚拟机是有限的。当我们要部署一个应用时,需要考虑该应用在并发高峰时可能需要需要多少资源,创建虚拟机时按照资源的最大需求进行设定,以防止虚拟机无法支撑应用。但在大部分时间内应用的资源需求并不会一直处于高峰,这就造成了资源利用率很低。
此外,传统云平台其他各方面的缺陷也相当明显,比如
业务代码与基础架构割裂、虚拟机构建和业务代码相互分离、基础架构后期维护风险大
基础架构无法感知业务状态,升级维护困难、缺少自动化、需要自己构建应用的高可用方案
扩容缩容难、故障转移难、可见传统的云平台无论对于任何的操作、变更都是非常困难的,需要耗费大量的成本和人力。
云原生正是为解决此问题而生
从技术层面来看:
应用程序从设计之初就在为上云而做好了准备
云平台基于自动化体系
云原生包含的核心技术栈有应用容器化封装、服务网格、不可变基础架构、声明式 API 等。这些技术不仅提升了系统适应性、可管理性、可观察性,使开发者可以以最小成本进行频繁和可预测的系统变更,而且还可以提升部署维护速度和效率,助力业务的快速成长。
此外,在使用云原生之后,运维工程师和开发工程师也不会再那么界限清晰,因为大家面向的都是同样的 API。
云原生核心项目概览
云原生很复杂,它本身是一个很大的生态,包含着几十个甚至上百个项目。
这其中最重要的就是 Kubernetes,它主要的作用是集群管理(node)和作业调度(pod),作业调度之后, k8s 通过CSI、CNI、CRI将应用以容器的方式运行起来。
云原生技术演进
云原生本身其实是为微服务而服务的,在应用架构上的演进由最开始的单体应用,到分层架构,到 SOA,再到当前流行的微服务。
每一个微服务都是一个独立的部署单元,比如说这几个微服务由这个团队负责,那几个微服务由那个团队负责,团队只需关注自己负责的业务即可,不会受全局的影响。微服务也有着启动速度快、资源需求小、部署灵活等诸多优点。
此外云原生也不断在朝着应用规模化、计算边缘化、部署多样化、应用复杂化的趋势发展。
应用规模化:从概念验证到大规模生产应用
计算边缘化:以数据中心为主的云计算到面向边缘节点的边缘计算
部署多样化:私有云和公有云混合的多云和混合云
应用复杂化:简单的无状态应用到复杂的有状态应用管理
还有更重要的局部技术革新,如基于 XDP 和 eBPF 实现的网络加速和应用隔离、基于 WebAssembly 实现的个性化 proxy plugin、不断增强的安全保证手段等等。
相较于传统云平台,云原生有着得天独厚的诸多优势。
毫不夸张的说,云原生是这个时代的产物,也必将会引领一个新的时代。
也会有人问“跨专业进入IT行业可以学云原生吗?”答案是“当然可以!”
学习进度太慢?点击右下角咨询,跟着专业的老师,加上老师同学的陪伴相信一定效率倍增!