官术网_书友最值得收藏!

第1章 初見云原生

1.1 什么是云原生

1.1.1 云原生起源

云原生是一種軟件開發方法,它充分利用了云計算,使用開源軟件技術棧將應用程序部署為微服務。通常,云原生應用程序構建為在Docker容器中運行的一組微服務,在Kubernetes中編排,并使用DevOps和Git Ops工作流進行管理和部署。使用Docker容器的優點是能夠將執行所需的所有軟件及環境配置打包到一個可執行包中。容器在虛擬化環境中運行,從而將包含的應用程序與其環境隔離。

——維基百科“Cloud Native”

信息技術的發展日新月異,過去幾十年,企業IT架構經歷了單體架構、分布式架構和云計算架構3個階段的技術演進。尤其是云計算技術的發展,讓企業的整個IT基礎設施以及應用運行模式發生了革命性的改變。云時代的第一個十年,作為技術的創新探索先鋒,互聯網公司引領了云計算技術的發展趨勢,大多數互聯網應用從誕生之初就生長在云端。隨著云計算技術的成熟,以及以移動互聯網為特點的創新業務的驅動,很多傳統行業(如金融、零售、能源、制造以及政務等領域)的企業和機構也逐漸將各自的業務從互聯網數據中心(Internet Data Center,IDC)機房遷移至云上,充分利用云的彈性優勢,實現系統的動態伸縮與業務的創新。

企業應用上云,也經歷了從云托管到云原生的架構演進過程。上云初始階段,多數企業僅僅是把應用從傳統的IDC機房搬遷到云上的虛擬機,這是云托管模式,或者叫作基礎設施即服務(Infrastructure as a Service,IaaS)上云。但要真正用好云,不僅是基礎設施和平臺的升級,應用也需要摒棄傳統的設計方法,從架構設計、開發方式到部署維護的整個軟件生命周期管理,都要基于云的特點進行重構,從而構建“原生為云”而設計的應用,這樣才能在云上以最優的架構、最佳的模式運行,并充分利用和發揮云平臺的彈性以及分布式優勢。采用基于云原生的技術和管理方法,可以更好地把業務生于“云”或遷移到云平臺,從而享受“云”的高效和持續的服務能力。作為誕生于云計算時代的新技術理念,云原生擁有傳統IT無法比擬的優勢,可幫助企業高效享受云的彈性和靈活性,以服務化的形態獲取各種資源,降低大規模分布式高并發的技術門檻,從而實現快速開發、平滑遷移、穩定可靠、運維簡便的應用構建模式。云原生已經成為云時代的新技術標準。

云原生的概念最早是誰提出的,業界并沒有統一的說法。比較有影響力的是Pivotal(Spring開源產品的母公司)的技術產品經理 Matt Stine,他在2015年發表的電子書Migrating to Cloud Native Application Architectures(《遷移到云原生應用架構》)中,提出了將傳統的單體應用和面向服務的架構(Service-Oriented Architecture,SOA)應用遷移到云原生架構所需的文化、組織和技術變革。Matt Stine認為云原生是一組思想集合和最佳實踐,包括敏捷基礎設施(agile infrastructure)、微服務(microservice)、DevOps、持續交付(continuous delivery)等,主要涵蓋如下重要的內容。

(1)十二要素應用程序:云原生應用程序架構模式的集合。

(2)微服務:獨立部署的服務,每個服務只做一件事情。

(3)敏捷基礎設施:快速、可重復和一致地提供應用環境和后臺服務的平臺。

(4)基于應用程序接口(Application Programming Interface,API)的協作:發布和版本化的API,允許在云原生應用程序架構中的服務之間進行交互。

(5)抗壓性:系統具備良好的健壯性,能夠抵抗外界非預期的流量沖擊。

從狹義上來講,云原生包含以容器、微服務、持續集成和持續發布(Continuous Integration/ Continuous Delivery,CI/CD)為代表的云原生技術,使用一種全新的方式來構建、部署、運維應用。它不但可以很好地支持互聯網應用,也在深刻影響著新的IT技術架構和應用架構。

從廣義上來講,云原生完全基于分布式云架構來設計開發應用系統,是全面使用云服務的構建軟件。隨著云計算技術的不斷發展和豐富,很多用戶對云的使用,不再是早期簡單地租用云廠商基礎設施(計算、存儲、網絡)等IaaS資源。

云原生是當前炙手可熱且不斷發展的技術方向,其定義也會在日后不斷演進。據IDC的市場研究數據和報告,截至2019年,超過三成的企業使用了包含 Docker 在內的容器技術,50%以上的企業認為運維自動化和彈性擴容是容器技術的主要應用場景。Gartner報告指出,到2022年,75%的全球化企業將在生產環境中使用云原生的容器化應用。

主站蜘蛛池模板: 颍上县| 尤溪县| 通江县| 南汇区| 会昌县| 万宁市| 霍州市| 金寨县| 关岭| 富民县| 吉安县| 平遥县| 福海县| 广饶县| 永春县| 天长市| 竹北市| 北安市| 奉新县| 乐山市| 伊宁县| 湘西| 仁怀市| 微博| 岱山县| 醴陵市| 府谷县| 彰武县| 湛江市| 渭源县| 宝兴县| 双江| 聂拉木县| 大丰市| 兴安盟| 岗巴县| 凤冈县| 宜君县| 仁化县| 连南| 富平县|