什麼是雲原生架構

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

從業務角度看,雲原生是一種針對IT資源的按需付費的商業模式;
從技術角度看,雲原生分兩大部分,一部分是遵循微服務化和容器化原則的雲原生應用,另外一個部分是用於構建和運行雲原生應用的雲原平生臺。
雲原生應用和雲原平生臺,共同構成了一個雲原生的完總體系,在這個體系上,能夠實踐敏捷開發、DevOps、容器編排,微服務和容器化等理論和方法。框架

雲原平生臺

敏捷開發

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

最佳實踐微服務

  • scrum
  • xp

DevOps

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

最佳實踐測試

  • Jenkins
  • GitLab

容器編排

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

最佳實踐blog

  • Kubernetes
  • Docker Swarm
  • Mesos

雲原生應用

微服務

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

最佳實踐資源

  • Spring Boot
  • Spring Cloud
  • Jhipster

容器化

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

最佳實踐

  • Docker Image
  • OCI

雲原生應用與傳統應用

雲原生應用 傳統應用
可預測。 雲原生應用符合旨在經過可預測行爲最大限度提升彈性的框架或「合同」。 不可預測。 一般構建時間更長,大批量發佈,只能逐漸擴展,而且會發生更多的單點故障
操做系統抽象化。 依賴操做系統。
資源調度有彈性。 資源冗餘較多,缺少擴展能力
團隊藉助DevOps更容易達成協做。 部門牆致使團隊彼此孤立。
敏捷開發。 瀑布式開發。
微服務各自獨立,高內聚,低耦合。 單體服務耦合嚴重。
自動化運維能力。 手動運維。
快速恢復。 恢復緩慢。

參考資料

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

相關文章
相關標籤/搜索