AWS在容器服務的大棋盤上有哪些“落子”?

AWS CEO Jeff Bezos曾提出一個著名的理論——兩個披薩原則,即每個內部團隊都應該足夠小,小到可以用兩個披薩餵養。如何實現兩個披薩團隊呢?AWS現代化應用產品市場負責人 Aaron Kao和我們講述了AWS的實踐歷程,同時也介紹了AWS提供的現代化應用產品。

2000年,亞馬遜網站還是一個超大型的單體應用,內部很多團隊在開發同一個應用,如果團隊成員想要添加新產品,就必須對原代碼進行編輯、修改。當時,很多不同團隊都必須到同一個管道中進行單體應用開發,敏捷性非常差。

2001年,爲了實現更快速地開發,AWS決定改變構建應用的方式,打造“雙披薩團隊”,把應用分解爲多個微服務。S3就是其中一個很好的例子,2013年S3剛推出時,只有8個微服務,現在S3已經包含有235個以上的微服務。

這是AWS的實踐歷程,那麼其它公司應該如何實踐呢?Aaron Kao表示:“想要實現現代應用的開發,就必須在很多方面都做出改變,包括架構模型、運營模型、軟件交付、安全模型以及數據管理。”

以架構模型爲例,隨着單體應用程序的代碼庫不斷擴大,添加、修改功能就變得十分複雜。爲了解決這個問題,AWS引入了微服務體系架構,每個團隊做一個服務,每個服務執行一個功能,彼此之間相互獨立,通過輕量級的API實現服務和團隊之間的溝通。如果想把規模做大的話,只需對某個服務進行規模化,如果想修改的話,只需修改某個微服務的代碼,而無需影響其它代碼。

微服務如果部署在多個主機上也會遇到很多問題,例如大量微服務的管理,部署等,而容器的出現剛好可以解決這些問題。下面我們就來看看AWS在容器方面有哪些佈局。

AWS在容器大棋盤上的“落子”

整個AWS容器服務的佈局可以分爲三個層次,最下面是映像註冊表,Amazon ECR (Amazon Elastic Container Registry),它可以存儲容器映像文件,容器註冊表非常易用;中間是計算引擎,用戶可以使用Amazon EC2作爲啓動類型來運行容器,也可以使用AWS Fargate來啓動無服務器的運行;最上層是編排層,根據不同的用戶需求,AWS提供了不同的服務,如果客戶想要專注於基礎架構或配置,可以自己搭建編排服務。如果客戶只想開發應用,那麼可以使用AWS的託管服務,Amazon Elastic Container Service或者Amazon Elastic Kubernetes Service。

2014年,爲了給客戶提供容器管理服務,AWS發佈了Elastic Container Services(簡稱ECS),與AWS其它服務深度集成,例如Elastic Load Balancing,支持在EC2實例裏運行Docker容器。

隨着Kubernetes漸漸成爲市場上容器編排的事實標準,AWS在2018年6月推出了面向Kubernetes的EKS。用戶可以通過EKS完成微服務、PaaS、企業應用遷移以及機器學習。

爲什麼我們要選擇EKS呢?Aaron Kao給出了四大理由:

  • 安全可靠:EKS是運行生產級工作負載的平臺,因此安全可靠是首要任務。AWS會確保EKS每個版本在發佈時是完全符合安全要求的,並且會始終提供安全補丁。如果你運行的是老版本Kubernetes也不用擔心,AWS也會提供支持老版本的安全補丁。
  • 原生和上游Kubernetes體驗:AWS的Kubernetes與開源Kubernetes的運行是一樣的,與開源社區密切合作,並會將代碼貢獻給上游。
  • 無縫集成:EKS與AWS平臺實現了無縫集成,可享受165種不同的服務,包括存儲服務、管理服務等。
  • 目前51%的工作負載運行在AWS上。

據Aaron Kao透露:“EKS很快會在AWS中國(北京)區域、AWS中國(寧夏)區域、AWS南美洲(聖保羅)區域推出。”

除了ECS 和 EKS,AWS還有一個祕密武器AWS Fargate。有了它,用戶就無需處理服務器或基礎架構了,可以快速推出和擴充容器應用,據Aaron Kao介紹:“現在,客戶使用Fargate每週管理和運行上百萬個容器。”

2019年10月8日,AWS Fargate正式在中國推出。

寫在最後

“產品衆多”是AWS的一大特徵,在容器服務領域也不例外。相信很多人都會有疑問:“AWS是基於什麼樣的原因推出瞭如今的產品。”Aaron Kao表示:“其實90%的產品路線圖都是從客戶那裏獲得的,我們會根據客戶的要求分地區提供給他們想要的服務。除此之外,我們還將重點關注安全性、可用性、可靠性以及開發工具的創新。”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章