什麼是雲原生架構

本文簡要介紹了雲原生架構的定義和個人對雲原生架構的理解。 個人認爲,雲原生架構應該包括2大部分:雲原生平臺和雲原生應用。

雲計算提供了對無限IT資源的按需付費的商業模式,但從技術架構上看,還需要一個用於構建和運行雲原生應用的平臺,來實踐敏捷開發、DevOps、容器編排,微服務和容器化等理論和方法:

雲原生平臺

敏捷開發

一種小規模團隊的、全棧式的開發方法,要求團隊具備快速響應變化,快速迭代開發的能力。

最佳實踐

  • scrum
  • xp

DevOps

開發和運維之間保持流程連續的協作方法,目標是快速、頻繁且更可靠地構建、測試和發佈軟件。

最佳實踐

  • Jenkins
  • GitLab

容器編排

一種容器資源的管理方法,目標是管理容器集羣和調度容器化應用。

最佳實踐

  • Kubernetes
  • Docker Swarm
  • Mesos

雲原生應用

微服務

是將大型應用作爲小型服務集合進行開發的架構方法,其中每個服務都可實現業務功能,在自己的流程中運行並通過 HTTP API 進行通信。每個微服務都可以獨立於其它服務進行部署、升級、擴展和重新啓動,通常作爲自動化系統的一部分運行,可以在不影響最終客戶的情況下頻繁更新正在使用中的應用。

最佳實踐

  • Spring Boot
  • Spring Cloud
  • Jhipster

容器化

與虛擬機相比,容器能同時提供更好的效率和啓動速度。每個容器都具有唯一的可寫文件系統和資源配額。創建和刪除容器的開銷較低,在單個虛擬機上能通過容器化充分利用物力資源,這使的容器成爲部署微服務的完美工具。

最佳實踐

  • Docker Image
  • OCI

雲原生應用與傳統應用

雲原生應用

傳統應用

可預測。 雲原生應用符合旨在通過可預測行爲最大限度提高彈性的框架或“合同”。

不可預測。 通常構建時間更長,大批量發佈,只能逐漸擴展,並且會發生更多的單點故障

操作系統抽象化。

依賴操作系統。

資源調度有彈性。

資源冗餘較多,缺乏擴展能力

團隊藉助DevOps更容易達成協作。

部門牆導致團隊彼此孤立。

敏捷開發。

瀑布式開發。

微服務各自獨立,高內聚,低耦合。

單體服務耦合嚴重。

自動化運維能力。

手動運維。

快速恢復。

恢復緩慢。

參考資料

https://pivotal.io/cn/cloud-native

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