什麼是雲原生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

 

一點總結

其實現在你所負責的應用,除非是那種特別遠古的產物,否則基本或多或少都有云原生思想的影子。對於一個應用到底算不算雲原生,個人覺得不必那麼糾結。雲原生和之前大熱的微服務一樣,只是一個概念而已。真正讓自己的應用運轉更加穩定纔是王道。

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