作者:龔晨霞
出品:朋湖網
加爾定律曾言:一個運轉正常的複雜系統,總是從一個運轉正常的簡單系統演化而來。縱觀如今科技圈動輒有關生態、宇宙的宏大故事,常常不免讓人聽的雲裡霧裡而忘了根本,如果直接問最基礎的技術底座是什麼?其實很多人還是會回答,程式碼。
所謂大道至簡,今天我們就從亞馬遜雲科技這個體量的科技巨頭的角度去分析,他們是如何把對底層程式碼的重視放置到了戰略層面?15年成立至今,對API的建設有何總結經驗?
近日,亞馬遜雲科技在其re:Invent 10週年活動上釋出了系列新品,並總結了行業五大風向標:自研晶片、大雲無疆、資料為王、行業專用、可持續發展。我們可以首先從這些整體的動向瞭解其宏觀架構設計,再回歸到程式碼基層角度仔細探討。
01 五大風向標:自研晶片、大雲無疆、資料為王、行業專用、可持續發展
亞馬遜雲科技大中華區產品部總經理顧凡在媒體溝通會上介紹,行業五大風向標分別為自研晶片、大雲無疆、資料為王、行業專用、可持續發展。
首先,作為最早自研晶片的雲廠商,目前亞馬遜雲科技擁有Nitro、Graviton、人工智慧機器學習自研晶片三條產品線,其中的每一條產品線在近幾年都持續推陳出新。
顧凡認為,這些產品,比如Amazon EC2的創新是沒有止境的。因為使用者對雲上的價效比追求永無止境;同時,未來在雲上的新型工作負載對於計算創新的要求亦是如此。而發生在底層的創新,往往最具備顛覆性。所以從半導體和晶片層面,這種自研晶片的創新,會是改變雲計算遊戲規則一個非常重要的能力。
其次,第二個風向標為大雲無疆,無限拓展,英文叫做“The Everywhere Cloud”,即進一步闡述了使用者對雲的需求無邊界。據亞馬遜雲科技大中華區產品部計算與儲存總監周舸介紹,計算、儲存、資料等相關的服務一步步打破了各種創新的邊界。以資料儲存為例,原本是儲存在本地機房,後來邊界拓寬到物聯網,再後來又到了偏遠地區。
那下一個邊界在哪裡?
顧凡表示,事實上目前還存在著許多新的約束,比如物理上儲存的地域、本地儲存的法規、各種地域產生的延時、網路的頻寬、連線的穩定性等等問題。
但如今,亞馬遜雲科技透過技術創新,打破壁壘,其邊界已經拓展到了太空,被命名為Ground Station的衛星託管地面站服務正在接收來自地球上任何一個地方發出的API指令,為其提供衛星照片服務。
接下來是第三個風向標,Programmable Cloud:程式碼即雲,萬物皆API。在被雲計算改變的這些年,應用的開發者已經將底層的基礎設施和各種平臺資源都看成了可被程式設計化、程式碼化的程式。顧凡表示,這也是亞馬遜雲科技一直以來的"API”文化。
”從2006年Amazon EC2就幾個API就可以建立、登出計算資源,到15年後的今天,我們有超過200類的亞馬遜雲科技的服務,有上千種API在服務於數百萬級的客戶,每天在自由地在雲上構建。而今年re:Invent釋出,我們也會繼續為這些希望自由構建的構建者帶來更加便捷、能夠賦予他更強大的創新能力。“
第四個風向標為降低雲計算門檻。顧凡堅持認為,”無論是一家初創公司,還是一個體量非常大的科技企業,降低門檻本身就是雲計算的一個非常重要的核心價值。“這樣的願景旨在讓那些不同崗位的員工,懂技術的、不懂技術的,都能消除對雲裡面新技術的恐懼,所有人都能參與進來,利用工具去找到資料的洞察、指導員工的行動。
在此基礎上,亞馬遜雲科技研發了針對不同技術基礎的人群如開發人員、資料從業者、運維人員、業務人員和行業使用者開發了Amplify Studio、CDK、RDS的DevOps Guru,以及四個無伺服器的分析服務等等供其選用。
最後一個風向標便是可持續發展。顧凡表示,可持續是亞馬遜雲科技非常重要的一環。據瞭解,亞馬遜雲科技曾推出關於雲的安全責任共擔模型,如今又丟擲了”可持續發展的責任共擔模型“,旨在更好地梳理如果要真正實現雲上的可持續發展,服務商和使用者之間應該各自承擔什麼責任?
在亞馬遜雲科技的責任共擔模型中,亞馬遜雲科技負責的是雲自身的可持續發展,如資料中心的效率、比自研晶片,以及採用更多的可再生能源;而使用者則需要負責在雲中的應用可持續發展,如提升程式碼效率,在設計其應用架構、資料儲存時加入可持續發展理念等等。
同時,顧凡還提到,如果使用者的應用選擇了事件驅動型的應用架構,就意味著使用者是可以採用無伺服器的技術,而一旦使用者採用了無伺服器的技術,實際上把一部分可持續發展的責任從使用者端轉移到了雲廠商這端。
02 詳解程式碼即雲:15年的API總結
我們注意到,在顧凡的表述中,提到了亞馬遜雲科技的“API文化”。
“API文化”是什麼?
在這15年的技術創新中,亞馬遜雲科技為何會如此重視最底層、最樸素,也最沒有故事可講的程式碼?
亞馬遜雲科技大中華區產品部資料類產品高階經理王曉野表示,其實今天大家所談到的這些無邊界、無處不在的雲,自誕生之日起就代表著一個API,包括計算資源Amazon EC2是一個API,儲存資源Amazon S3也是一個API,以及建立網路拓撲、建立資料庫的資源、起停關這些都是透過API實現的。
也就是說,API構建了這些服務,還透過許可權控制了這些服務,即每一個服務當你在啟動資源的時候、關閉資源的時候,都需要經過一個許可權的控制,這樣的許可權控制也是透過IAM這樣的服務來實現的,它依舊是一個API。
因此,Capella的CEO才會對全世界的研發人員、構建者喊出,當你和全球的衛星資料只有一個API的距離的時候,你會想做什麼?
程式碼的力量太強大了。
值得關注的是,王曉野還分享了亞馬遜全球副總裁、首席技術官Werner Vogels博士關於亞馬遜雲科技在15年API運營上的六大經驗,包括:API是永遠的;永遠不要破壞向後相容性;從客戶場景出發逆向工作;讓API的故障模式有據可查;建立具有明確、特定目的,自描述的API;以及不惜一切代價避免洩露實現細節。
具體來說:第一,亞馬遜雲科技認為,對於API的構建,API是永遠的。”一旦它(API)被髮布成為一個公共可用的服務,那麼就會有成千上萬得到客戶不斷去呼叫它。意味著我們對這個API的任何改動都是不明智的,而且是很危險的,我們不能夠對原有的API進行刪除或者更改。“
第二,對雲廠商和任何API的設計者來說,最大的挑戰其實就是向後相容。王曉野表示,亞馬遜雲一直在堅持保持超高的向後相容性,對於老版本的API他們並不允許被觸碰和開發者的協定,也不可以去改變API已有的使用方式,只能在上面增加新的功能,而不會去刪除或者改變已有的API。
第三,應該從使用者真正的場景出發構建API,找到使用者最希望的某種工具或者這個服務想要實現的功能,而不是依賴自身現有何種技術來實現。
第四,讓API的故障模式有據可查。一個真正的好的API和服務,不僅僅要讓別人知道它工作的時候是什麼樣,而且要讓大家知道,當它不工作的時候,開發者能真正知道它哪裡出了問題,然後持續地去對它進行改進。
第五,建立具有明確、特定目的、自描述的API。自描述其實對所有API是一個最基礎的原則,但是真正能夠保證它足夠簡潔,讓開發者能夠理解,需要回到一個最簡單的邏輯,即足夠簡單,且為專門的功能所設計。
第六,對於API和雲服務,要不惜一切代價地去隱藏背後的技術實現,以更好聚焦在使用者的需求上。如果過早地透露了這些具體的底層實現,可能會導致使用者對技術細節關注過多,從而產生技術實現的溝通成本問題,但這一溝通環節事實上對前期的執行並無太大實質性幫助。
總的來說,就要堅持簡單兩字,因為簡單就意味著更容易去創新,對雲廠商來說,也更容易規劃化和可靠地運維。
03 結語
在物理學上,程式碼就像一組簡單機械,這種簡單機械是能夠讓工作更輕鬆地一些超級簡單、完成目的單一的一組工具,包括斜面、螺旋、楔塊、槓桿、輪軸和滑輪。
螺絲可以在基於一個軸上面的斜面上發力,它的最大作用是能把旋轉的扭力變成縱向的垂直力,並使這個力透過旋轉的方式不斷放大,以取得更好的效果;槓桿則可以透過一個梁以及它的支點,幫助我們用很小的力支撐起更大作用的物體;滑輪、輪軸則是除了在平面上運動可以幫助減少摩擦力,還能在軸的直徑的不同位置,以同樣的作用力起到一個放大的效果。
這些簡單機械都有一個共同的特點,就是它們除了簡單本身,都能幫助構建一個更復雜的機械或者系統,同時它們又能夠將很小的力無限地放大。
比如,一個輪子、一個槓桿、一個軸輪,就可以構建一個手推車,完成了簡單機械的組合,實現了一個稍微複雜的機械,甚至再複雜一點,可以建立一個更為複雜的機械,比如汽車。
但誰是真正擁有創造這些複雜機械話語權的人呢?
如今的科技圈似乎偏離了話語權的焦點,越來越多的科技服務商成為了炫酷技術的講述者。
但亞馬遜雲科技認為,擁有創造能力的這些創造者和構建者,才是知道如何去解決業務裡特定問題的最佳人選。
“所以這些創造者真正需要的,不是一個由雲廠商幫他們直接去構建好的、最終的複雜機械,而是給他們提供非常簡單、低階的基礎元素,能夠讓他們基於此去持續構建。”
萬物皆API,信奉的正是最務實的技術基石,也是技術創新的根本。所以,如果再次回到亞馬遜雲科技的API文化,或許可以說是一種技術極客文化,只有對技術充滿敬畏和初心,才有可能創造出更多落地的科技現實。