亞馬遜的雲原生故事
從 20 世紀 90 年代初開始,經過 20 年的發展,總部設在西雅圖的亞馬遜已經從網路書店成長為世界上最大的線上零售商。
今天,它就像著名的“亞馬遜河”一樣,銷售的東西遠不僅僅是書籍了。在 2015 年,亞馬遜超過了沃爾瑪成為美國最有價值的零售商。
在亞馬遜耀眼的成長故事中,最有趣的一部分可以簡單地歸納成一個問題 :
作為一個簡單的線上書店網站,在沒有設立任何零售網點的前提下,是如何成為世界上最大的零售商之一的?
不難看出,商業世界在全球各地不斷增長的網際網路推動力下,圍繞著數字連線進行著轉變和重塑。隨著個人電腦變得越來越小,變成了今天人們隨時隨地使用的智慧手機、平板電腦和智慧手錶,我們經歷了銷售渠道的指數級增長,這正在改變世界的商業方式。
亞馬遜的首席技術官 Werner Vogels,見證了亞馬遜從一個非常成功的線上書店,到世界上最有價值公司和零售商之一的技術演進。
Werner Vogels
2006 年 6 月,Vogels 在計算機雜誌 ACMQueue 上接受了一段關於技術選型演進如何驅動亞馬遜快速增長的採訪。在採訪中,Vogels 談及了其背後的核心驅動力。
亞馬遜技術演進的很大一部分原因是為了實現持續的增長,在實現超大規模的同時保持可用性和效能。
Vogels 說,亞馬遜為了實現超大規模,必須向不同的軟體架構模式遷移。他提到亞馬遜開始是一個單體應用程式。隨著時間的推移,越來越多的團隊在同一應用程式中執行程式碼,程式碼庫的所有權界限也開始變得模糊。
“沒有隔離的結果,就是沒有清晰的所有權。”
Vogels 指出,共享資源(例如資料庫)使得整體業務難以擴充套件。無論是應用程式伺服器還是資料庫,共享資源的數量越多,團隊對功能上線時的控制就越少。
你建立它,你執行它。
Vogels 談及了雲原生應用程式的本質 :
團隊對所構建的程式碼全權負責。他繼續說 :“在傳統的模式下,開發和運維之間是隔離的,你把軟體往他們中間一扔就不管了。但是在亞馬遜,你建立它,你執行它。”
在曾經世界首屈一指的軟體大會上,由主要發言人發表的最重要的引用之一就是“你建立它,你執行它”。這個詞已經成為我們今天所熟知的一個 DevOps 流行語。
Vogels 在 2006 年談到的許多做法,已經成為了如今蓬勃發展的流行軟體運動的種子。DevOps 和微服務等實踐活動可以與 Vogels 在十年前提出的想法相互印證。雖然像亞馬遜這樣的大型網際網路公司正在開發類似的工具,但這些工具需要許多年的開發才能成熟到對外提供服務。
亞馬遜 2006 年推出了名為 Amazon Web Services(AWS)的新產品。 AWS 背後的想法是提供一個平臺,同亞馬遜內部使用的平臺一樣,並將其作為服務向公眾釋出。亞馬遜希望將這個平臺背後的想法和工具商品化。Vogels 提出的許多想法已經被應用到Amazon.com 平臺中。通過將平臺作為服務向公眾釋出,亞馬遜進入了一個稱為公有云的新市場。
公有云背後的想法是很好的。使用者可以按需配置虛擬資源,而無須擔心基礎架構。開發人員可以簡單地租用虛擬機器來執行他們的應用程式,而無須購買或管理基礎設施。這是一種低風險的自助服務形式,有助於增加公有云的吸引力,也讓 AWS 在行業中領先一步。
AWS 花了幾年時間,才讓構建公有云上服務和模式的方法變得成熟。雖然許多開發人員通過這些服務來構建新的應用程式,但是許多現存公司仍然最關心遷移的問題。之前的應用程式不是為了便攜性而設計的。此外,許多應用程式仍然依賴於與公有云不相容的遺留功能。
為了讓大多數大公司能夠使用公有云,他們需要改變開發應用程式的方式,而這就是雲原生夢開始的地方。
本文選自《雲原生Java:Spring Boot、Spring Cloud與Cloud Foundry彈性系統設計》
不緊不慢,雲原生越走越近,跨過觀望期,開始進入試用區間。本書是原理與實踐相當益彰的典範,概念陌生者可以藉由其中娓娓道來的歷史沿革而由底至頂理解Cloud Native,躍躍欲試者則可按圖索驥,沿著專家鋪就的blueprint一路狂飆。跟隨本書,讓你從此駕雲有方。