什么是云原生?
云原生(CloudNative)是一个很抽象的概念,单从字面很难理解它的意思,我们暂且抛开CNCF概念性定义换一种方式解读云原生。
在解读云原生之前,我们先想一下什么不是云原生?
最近这几年云厂商喊的最响亮口号就是“上云”,上云的意思很简单:就是把企业原有基于私有数据中心业务迁移到云商的平台中。这部分的业务可以理解成云计算时代的“拆迁户”。离开了之前适配的环境,在云平台修修改改,也能勉强运行。这些上云的业务,就不是云原生业务。
当上云阶段逐渐过去之后,开始出现在云商直接部署的业务,这些业务没有迁移历史包袱,会充分利用“云”的特点来设计和满足业务需求,技术架构变成了类似于云平台派生出来的产物。这些业务相当于“云”原住民,这也就是云原生的字面意思。
云原生的业务实质都是“在线”业务。现在的产品服务对在线
有很严格的要求:
- 首先业务不能中断,服务不能挂,比如要求服务可用性指标 99.999%
- 其次业务迭代升级用户要无感知
- 最后不论流量如何,服务都应该能随时适应这种流量变化
这些要求就决定了支撑“云原生”业务的技术所应具备的特点:高可用、快速迭代/交付、资源按需分配。
看起来就很符合容器、K8S、Microservice、DevOps、CI/CD那一套了?但好像虚拟化技术也可以搞高可用、DevOps、按需分配资源那套,这么说没错,功能都可以实现,但云原生业务不仅仅是容器更加轻量,更易扩展,同时也是新一代治理方式、管理手段的要求。
所以,并不是因为云计算/容器技术发展普及了,才出现了“云原生”这个概念,而是有了大规模的数据中心、有了成千上万微服务协调的场景,才促进了云原生技术出现和发展。
从根上讲,驱动技术发展演进的动力有很多,但能让技术大行其道的动力都是来自于业务发展的需求。