1.2 什么是云原生
云原生(Cloud Native)概念是由Pivotal的Matt Stine在2013年首次提出的。這個概念得到了社區的不斷完善,內容越來越豐富,目前已經包括了DevOps(Development和Operations的組合)、持續交付(Continuous Delivery,CD)、微服務(MicroServices)、敏捷基礎設施(Agile Infrastructure)和十二要素(The Twelve-Factor App)等幾大主題。這個概念不但包括根據業務能力對企業(高校)進行文化、組織架構的重組與建設,也包括方法論和原則,以及具體的操作工具。采用基于云原生的技術和管理方法,可以更好地從云中誕生業務,也可以把業務遷移到不同的云中,從而享受云的高效與持續服務的能力。
2015年云原生計算基金會(CNCF)成立,對云原生定義進行了修改,認為云原生需要包含應用容器化、面向微服務架構以及支持容器編排調度等方面的內容。2018年,隨著云原生生態的壯大,主流云計算供應商都加入了該基金會,隨之云原生定義又進一步得到完善。
云原生技術增強了公司和機構在現代動態的環境中構建和運行可彈性擴展的應用,這些環境主要是公有云、私有云和混合云的環境。容器、服務網格、微服務、敏捷基礎結構和聲明性API都是這些方法的例證。這些技術能夠構建可彈性擴展的、可管理的、可觀察的松耦合系統。結合自動化手段,云原生技術可以使得開發者以最低的成本對系統進行頻繁并可預測的重大變更。云三層模型與云原生架構的對比如圖1-4所示,原先的IaaS層升級為敏捷基礎設施,而PaaS和SaaS層則合并為微服務架構。敏捷基礎設施和微服務都屬于技術范疇的架構。在整個云原生架構中,也少不了自動化的持續交付和DevOps等管理措施。

圖1-4 云原生架構
在傳統的應用系統開發過程中,軟件開發商喜歡聚焦在業務系統,專注于系統如何開發、如何閉源成一個獨立的整體系統。但是隨著開源軟件的盛行,全球合作背景下的分工細化,再加之GitHub的影響力越來越大,一個軟件開發商很難在短時間內處理所有問題。軟件開發商應該充分利用第三方開源或不開源的組件,自己僅僅實現必要的代碼,再借助敏捷基礎架構進行靈活多變的必要集成,從而節省大量人力、物力和時間,以便更加聚焦業務開發,同時又能利用整體協作快速部署業務。云原生的意義就在于此,按照云原生的理念進行頂層架構設計、實施、部署,即可實現快速迭代,投入生產使用。
云原生主要包括兩部分內容:云原生基礎架構和云原生應用。
- 玩轉智能機器人程小奔
- 大數據項目管理:從規劃到實現
- 大數據戰爭:人工智能時代不能不說的事
- 蕩胸生層云:C語言開發修行實錄
- Hands-On Cloud Solutions with Azure
- Cloud Analytics with Microsoft Azure
- Maya 2012從入門到精通
- 機器人創新實訓教程
- Photoshop CS3圖像處理融會貫通
- 21天學通Visual Basic
- 完全掌握AutoCAD 2008中文版:機械篇
- ESP8266 Home Automation Projects
- Google SketchUp for Game Design:Beginner's Guide
- Ansible 2 Cloud Automation Cookbook
- HBase Essentials