AWS創立雲端計算15年來,沒有一個行業不跟雲端計算相關,沒有任何一個顛覆性創新缺少雲端計算的參與,雲已經是不可逆的滾滾洪流。
AWS這15年,是雲原生服務從無到有再到基本成熟的15年,是雲原生應用興起的15年,是雲原生業務和雲原生企業新生的15年。
一、什麼是雲原生?
目前業界對什麼是雲原生尚未形成統一的認識。各種機構從自身立場出發給出了其定義,但視角各不相同,有些是從架構視角,有些是從運維視角,有的是從搞錢視角。筆者認為,雲原生是一個包括五層的整體體系,如下圖所示。
該體系具有以下內容和特徵:
1、包括公有云平臺、雲原生服務、雲原生應用、雲原生業務和雲原生企業等五層。
2、公有云是雲原生體系的基座,雲原生體系根植和生長於公有云平臺之上。
3、雲原生服務是公有云上提供的服務,來源包括雲廠商和第三方。各大公有云已形成了較為整體的雲服務體系。從作用上,可把雲原生服務分為兩大類,一類包括計算、網路、儲存、大資料與資料分析、安全、人工智慧等可以直接被雲原生應用通過api使用的服務;另一類是雲原生工具鏈,比如DevOps、監控服務和可觀測性服務等。
4、雲原生應用,是指儘可能利用雲原生工具鏈進行設計、開發和運維,充分利用雲原生服務,根植和生長於公有云上,具有敏捷、彈性、可靠、簡單等特性的現代應用。
5、雲原生業務,是指執行在公有云之上的、7*24線上的、資料驅動的新型業務。
6、雲原生企業,是指大部分業務為雲原生業務的企業。
二、AWS:全球最大的公有云平臺,提供最全面的雲原生服務
AWS於2006年正式推出,最開始提供物件儲存服務S3和虛擬機器服務EC2。經過15年的發展,已成為全球最全面、應用最廣泛的雲平臺,提供超過200項功能齊全的服務,包括計算、儲存、網路、資料庫、分析、應用服務、部署、管理、機器學習、移動、開發工具、RobOps和物聯網工具等。大多數服務並不直接向終端使用者公開,而是通過 api 提供功能,供開發人員在其應用程式中使用。
(2018年部分AWS產品)
在AWS Marketplace中,還有超過17000個服務。
AWS 擁有最廣泛的全球雲基礎設施。其區域具有多個通過低延遲、高吞吐量和高冗餘聯網連線的可用區,並且其數量也遠超所有其他雲服務提供商。AWS雲現已在全球25個地理區域內運營著80個可用區,並宣佈計劃新增5個AWS區域和15個可用區。
三、雲原生應用
(一)雲原生應用的主要特徵
-
敏捷:能快速適應新型業務快速變化的需求,能做到快速交付和快速迭代
-
彈性:能滿足數字化業務快速增加的效能要求,能做到自動擴容,如能支援數百萬量級的使用者,具有毫秒級響應能力,能處理PB甚至EB級別的資料
-
可靠:能應用各種故障,能安全地持續地穩定地提供服務
-
簡單:能讓普通工程師就能快速地、高質量地開發出來和維護好
(二)為什麼雲原生應用需具有這些特徵?
主要有兩方面原因。
一是數字化業務對應用的要求。
新型雲原生業務(或者說數字業務)要能快速滿足使用者要求,要應用能夠快速上線、快速擴容、快速變更、穩定執行。
下面引用一段亞馬遜雲科技大中華區產品部總經理顧凡的觀點:
“事實上,即使在去年因為新冠疫情而導致商業活動最舉步維艱的那段時間,我們仍能看到許多身姿靈活的企業,快速適應了新的環境,甚至發掘出新的增長機遇。相信很多人很好奇,這些企業的數字化基礎設施如何能在極短的時間去適應可能與過去迥異的業務需求。
越來越多的企業意識到,現代化應用的敏捷性、通用性及擴容能力等優勢,已成為企業立足長期發展的“必選項”。當你不知道變化從何而來,也無法制定如同說明書一樣按部就班的發展計劃,此時構建與業務相匹配,且更為敏捷的現代化應用架構,就成了面對不確定性的最優解。
雖然有時候我們會用微服務、容器化、Serverless這類技術名詞去描述現代化應用,但必須強調的是,現代化應用以及實現過程並不是技術和產品的機械化堆砌。企業對現代化應用的嚮往並非是因為技術先進,而是為了適應業務需求、助力業務擴充,以便能夠不斷發現新的機會,或是創造更好的產品和服務。”
二是現代應用的開發維護對IT工程師的要求越來越多、越來越高。
軟體正在吞噬一切,各大公司雖然無法都變成軟體公司,但至少都養了一個IT團隊,這必然推動對工程師的數量和質量的要求越來越高。而且,傳統應用開發運維模式下,業務對應用要求越高越多,那麼高階開發和運維人員的要求也越來越多,IDC的容量也越來越大,要管理的軟硬體越來越多,IT團隊人員數量、成本和招聘要求自然就水漲船高。這種狀態顯然不具有持續性。
這種背景下,雲原生應用開發的簡單化要求應運而生,要使得絕大部分的分散式雲原生業務應用可由普通IT人員開發和運維。
(三)如何構建雲原生應用?
從應用架構上,對於大型應用,可利用容器和微服務來實現並行開發、共享複用、快速修改、彈性伸縮以及標準化;對於中小型應用,可直接採用Serverless服務快速上線。可利用DevOps來實現開發上線一體化和自動化。可儘量利用雲原生服務來降低對開發和運維人員的技能要求,因為這些服務天生就是雲原生的,天生是高可用和彈性,而且因為是託管的,所以降低了運維要求。
BTW,個人認為CNCF所提供的雲原生概念,即“雲原生的代表技術包括容器、服務網格、微服務、不可變基礎設施和宣告式API”,其角度正是應用架構視角。
從社會分工上,應用開發人員只負責業務邏輯,其它的都交給第三方,包括雲服務廠商(如AWS、阿里雲)和雲上軟體服務商(如Datadog、SnowFlake)。
BTW,有不少企業搞雲原生的第一步是自己搭建雲原生底座,基於開源專案自研了一堆服務,買了一堆自己實在做不來的服務。筆者認為,這是本末倒置。與其這樣,不如好好用公有云,實在擔心安全就做好安全管控,把主要精力放到應用的業務邏輯上吧,把主要精力放到研究如何面向公有云做設計開發和維護吧。
從團隊組織上,要建立面向公有云、面向雲原生應用的架構設計、開發和運維的新IT體系,建立由少量高階IT人員加大量中初級IT人員相結合的成本較低但能保證產出效率和質量的IT團隊,包括一定數量的雲架構師、資料分析師、資料科學家、演算法工程師等人員。
從IT理念上,要革新傳統應用設計、開發和運維理念。傳統上,從IDC往上,計算網路儲存中介軟體等都是要麼外採,要麼基於開源自己搞,要麼自研,統統都自己做,把IT搞得很重,把團隊搞得很累(當然了,也把IT團隊搞得很大,可以設定一堆領導崗)。如果理念不改,即使上了公有云,還是隻會用虛機,還是會自己搭建和運維一切基礎性服務,還是會搞一個龐大的基礎設施運維團隊。只有真正理解和領會了雲原生理念和價值,才能有真正的雲原生實踐。
這裡引申出四個問題:
-
為什麼要強調是公有云?因為私有云一是無法提供足夠的彈性,二是無法提供夠多夠好夠新夠全的雲原生服務。
-
雲原生一定需要K8S嗎?不一定。舉個例子,基於AWS的Serverless架構開發的應用。K8S只是一個容器編排平臺。如果確實要用,也要儘量用雲上託管的K8S服務。
-
用了K8S就是雲原生嗎?也不一定。多少K8S案例中把容器當做虛擬機器用,多少K8S機器上跑著老舊的應用。
-
用公有云原生服務,會導致供應商鎖定嗎?是的,會。這還是一個取捨和權衡問題,而且支援多雲的第三方服務越來越多了。
如果你還是糾結怎麼開始,可先從以下四條做起:
-
儘量多用公有云
-
儘量多用託管服務
-
資料儘量不要存在伺服器上;用物件儲存靜態檔案
-
用IAM role而不要用訪問金鑰(AKSK)
(四)AWS等雲廠商在雲原生應用興起過程中的作用
一是提供大量雲原生服務,這些服務也是雲原生應用的標杆範例。
二是宣傳雲原生理念,身體力行,並提供最佳實踐。AWS釋出了面向雲端計算進行架構設計和開發的N多白皮書,N多視訊,N多線上文件,而且還在持續更新,比如https://docs.aws.amazon.com/wellarchitected/latest/framework/wellarchitected-framework.pdf。
三是培育出一批非常成功的雲原生企業,比如Netflix和Capital One,成為令人印象深刻的樣板。
四、雲原生業務和雲原生企業
AWS等公有云上誕生了第一批雲原生企業。每年的AWS re:invent等雲廠商峰會大會,都是展示這些企業的舞臺。下面是幾個典型。
Netflix是美國一家線上視訊公司,於2015年關閉了其最後一個資料中心,成為完全使用AWS等公有云的企業。關於Netflix,我有兩篇文章可參考,雲中奈飛(一):Netflix的上雲之旅, 雲上奈飛(二):Netflix全球視訊流服務的微服務架構設計。
Capital One 是美國最大的金融機構之一,這家銀行專門經營信用卡、汽車貸款、銀行和儲蓄賬戶,擁有近5萬名員工,2020年的收入接近300億美元。2021年初,它退出了所有的資料中心,通過AWS將所有應用程式和系統轉移到公共雲上。具體可參見 https://diginomica.com/capital-one-closes-its-data-centres-and-goes-all-aws。
Spotify可以說是世界上最大的音樂流媒體服務。2018年關閉了其資料中心,完全搬遷到GCP上,具體可參見https://www.computerworld.com/article/3427799/how-spotify-migrated-everything-from-on-premise-to-google-cloud-platform.html。
滴滴出行是全球卓越的移動出行平臺,為超過4.5億使用者提供全面的出行服務,目前市值 684 億美元。滴滴在2020財年平臺總交易額達到3410億人民幣。滴滴近三年向阿里採購雲服務約 14 億元,向騰訊採購支付、託管及雲服務約 32.6 億元,約佔其總成本的1%。
五、展望
關於雲端計算的一切不過剛剛開始,分析師預測目前雲上支出只佔IT整體支出的5%到15%,在中國市場,這個數字甚至只有2.7%。
雲原生時代也才剛剛拉開帷幕。
就像文章開頭的照片,如果把公有云廠商比作高速公路公司,那麼高速公路就是公有云平臺,在高速公路上盡情奔跑的汽車如同雲原生應用。奔跑吧,雲原生!
感謝您的閱讀,歡迎關注我的微信公眾號,給您更好的閱讀體驗!