什么是云原生Cloud Native

起源

2010年5月,WSO2的CTO Paul Premantle在博客中首次提出了云原生(Cloud Native)的概念。

2013年,Netflix的云架构师Adrian Cockcroft在Yow会议上介绍了Netflix基于Cloud Native的成功应用实践。

同在2013年,Pivotal的Matt Stine在文章中详细介绍了如何将应用迁移到Cloud Native。

2015年,Google牵头成立了CNCF(Cloud Native Computing Foundation),发布了Kubernetes,为应用上云提供了诸多工具。

 

概述

云原生可以理解为一种设计模式。一个云原生应用应具备可用性和伸缩性,以及自动化部署和管理能力。可随处运行,还可以提供持续集成、持续交付工具提升开发测试效率。

云原生也对研发流程和代码协作提出了要求,统称为十二要素:

 

十二要素

1.基准代码Codebase

一个应用一套代码,可多次部署。

 

2.依赖Dependencies

显式声明第三方依赖。

 

3.配置Config

配置储存到环境变量。

 

4.后端服务Backing Services

低耦合。

 

5.构建、发布、运行Build,Release,Run

分离构建和运行流程。

 

6.进程Processes

应用进程无状态。

 

7.端口绑定Port Binding

通过端口绑定对外提供服务。

 

8.并发Concurrency

能够水平伸缩实现并发。

 

9.已处理性Disposability

可优雅启动和关闭应用。

 

10.开发/线上环境等价Dev/Prod parity

 

11.日志Logs

事件流处理日志。

 

12.管理进程Admin Processes

 

一点总结

其实现在你所负责的应用,除非是那种特别远古的产物,否则基本或多或少都有云原生思想的影子。对于一个应用到底算不算云原生,个人觉得不必那么纠结。云原生和之前大热的微服务一样,只是一个概念而已。真正让自己的应用运转更加稳定才是王道。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章