“云原生”,很多人會對這個新名詞感到困惑,到底什么是云原生,云原生又能給我們帶來什么呢?其實云原生的概念最早是由來自Pivotal的MattStine于2013年首次提出,這是他根據自身多年的架構和咨詢經驗總結出來的一個思想集合,得到了開源社區的不斷完善,并被一直延續使用至今,
一、什么是云原生
那么到底什么是“云原生”呢?我們試圖先從字面意思理解“云(Cloud)”和“原生(Native)”,
“云(Cloud)”這個字面意識不難理解簡單的看就是天空中漂浮的一朵云,那么這個“云”放在科技環境下由從指代網路、互聯網的標識到現在的云計算,所以可以說“云”在現在我們默認指代云計算,
“原生(Native)”字面的意識理解為本地人,那么同樣的放到現今的科技大環境下就是指"應用所處的環境",
所以"云原生"可以簡單的理解為:“一個應用系統借助云計算相關的周邊技術進行設計研發,從而使該應用能完美的適配云上環境”,
云原生計算基金會總經理Priyanka Sharma對云原生的解釋為:“云原生技術是指工程師和軟體人員利用云計算構建更快、更有彈性的技術,這樣做是為了快速滿足客戶的需求”,
而官網(CNCF)上則將云原生的定義概況為:服務網格、宣告式API、不可變基礎設施、微服務、容器這五大特征,這也成了很多人對云原生的基礎印象,

?
總結來說,云原生就是一個快速構建應用的理念,一種快速交付應用的技術集合,
云原生還有一個非常重要的知識點,那就是云原生基金會,畢竟云原生這個理念需要落地推行的話還是需要靠眾人來拾材,CNCF(云原生計算基金會)致力于培育和維護一個廠商中立的開源生態系統,來推廣云原生技術,可以說CNCF的主要目的是培育云原生工具市場,
目前CNCF基金會開放的相關專案圖如下:
?
CNCF基金會的會員大致如下:
?
二、云原生的代表技術
上文提到過云原生是一種理念,一個技術堆疊的集合,那么相對應的技術堆疊主要有:容器、服務網格、微服務、不可變基礎設施和宣告式API,
-
容器:容器是與系統其他部分隔開的一系列行程,運行這些行程所需的所有檔案都由一個鏡像提供,這意味著從開發到測驗再到生產的整個程序中,容器都具有可移植性和一致性,簡單的說容器就是存放應用和應用相關依賴的“獨立集裝箱”,根據運送的貨物的不同特性可以制定多種集裝箱型別(即容器鏡像)
-
服務網格:服務網格簡單的說可以看做是我們平時用的代理軟體,但這個代理軟體又更加的智能,Service Mesh可以看做是傳統代理的升級版,用來解決現在微服務框架中出現的問題,可以把 Service Mesh看做是分布式的微服務代理,
-
微服務:將應用程式構造為一組松散耦合的服務,在微服務體系結構中,服務是細粒度的,協議是輕量級的,簡單的說就是其中單個應用程式由許多松散耦合且可獨立部署的較小組件或服務組成,
-
不可變基礎設施:這里基礎設施可以理解為一個應用運行所需要的基本需求,不可變性最基本的就是指運行服務的服務器在完成部署后,就不在進行更改,這里指代容器鏡像,
-
宣告式API:描述最終運行環境的狀態,而由系統來決定如何來創建這個環境,例如,你的描述就變成“創建一個有三個Nginx的集群”,而不是把創建Nginx的命令運行三次組成一個集群,這樣的好處是當運行環境與描述不符合時,系統能檢測到差異,并自動修復,這樣系統就有了自動容錯的功能,
這些技術能夠構建容錯性好、易于管理和便于觀察的松耦合系統,結合可靠的自動化手段,云原生技術使工程師能夠輕松地對系統作出頻繁和可預測的重大變更,
三、云原生能帶來什么
在去年IDC(互聯網資料中心)對企業的調研中,有將近70%已經將云策略落地,卻只有3%能帶來明顯的獲利突破,差異就在技術面的“云實踐成熟度”也就是云原生化,
MSP團隊(基礎設施平臺服務商)在面對一個云化專案時大致的流程,首先需要做相關的業務系統的調研,然后選擇相對應的云平臺,然后給出相關的云化方案,最后根據方案對業務系統進行遷移或者云化的改造,但是面對混合云或多云環境的下云特色存在差異性,導致了在云實踐上的差異性,
而云原生化的云服務平臺,不僅能夠顯著的降低基礎建設與管理成本、提高布署靈活性與可擴充性,而且還有較高的安全性,
-
在微服務化方面:云原生將應用程式代碼解耦成獨立模塊化單元,降低微服務的部屬時間與互依性,提高應用的擴展性等,
-
在容器化包裝方面:過去程式開發者可能需要創建多個虛擬機好讓不同的應用程式運作,但程式容器化讓多個應用程式得以存在同一操作環境中,開發人員將代碼、微服務放置在可復制、搬移的容器中,輕松地復制、發布到任意云平臺,多個容器間不會互相干擾(沙盒機制),不僅減少管理作業還能更有效地利用硬體資源,實作更快的持續集成、交付與發布,
-
在動態管理方面:通過集中的編排調度系統進行動態管理和調度,達到高速、低風險、迅速擴展和部署的方式,進行應用或服務的構建、測驗、部署,
借助以上優勢以及相對一致的實踐方式,云原生能快速的打通各家云環境的壁壘,企業可以對市場變化做出最快的反應,使得新創云原生企業擁有能不斷顛覆傳統企業的威力,
四、云原生的挑戰
根據CNCF的統計自2016年以來,生產中使用容器的數量增加了300%,根據這個規模來看若是在大型應用云化部署后(這里假設都是以容器實體在運行),那么這個應用數以百計或者千計的容器該如何做好全生命周期的管理,如:監控日志的采集告警、調度、以及應用模塊與模塊之間鏈路呼叫追蹤等將會是我們即將面臨的最大的挑戰之一,
本文宣告:
本文首發于:數堆疊研習社
數堆疊還在github有一個開源專案:FlinkX,歡迎大家一起交流~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/270782.html
標籤:其他
