圖片來源:Dailyhostnews
自從Amazon在2014年re:Invent發表會上以Lambda及相因應的服務發表、率先揭開無伺服器運算架構的新革命後,無伺服器與微服務越來越火紅,就跟水和電一樣,運算資源不用為了需求就蓋一座發電廠跟水壩,而是像水龍頭一樣,一開即來。
因為網路跟雲端技術的進步,新的革命已悄悄到來。
Serverless 從字面上是寫無伺服器架構,實際上並不代表真正的無伺服器,而是在傳統意義上的伺服器概念放大到整個雲端上面,乍看之下好像沒有一個實體的伺服器,實際上卻把整個傳統伺服器概念上的每一個功能獨立出一個專門的微服務,需要的時候,建立一個臨時的伺服器容器運行預設的環境,並執行設計好的程式碼。由於不用運行一台隨時待機的伺服器,即用即開,也因此花費部分便是用多少付多少(Pay as you go)的概念。
整個 Serverless 的演進是從 IaaS, PaaS, SaaS 演變而來,演進歷史從 Medium上 Serverless & FaaS 由施靜樺撰寫的文章有非常詳細闡述怎麼衍生而形成趨勢的。
圖片來源:可口可樂的Serverless之旅
從Serverless Pay as you go在部分情況下(根據產品架構而定),成本會遠低於Server架構,如可口可樂公司以每個月3千萬次請求的費用從每年的伺服器費用12,864美金降低到了4,490美金,省了65%美金,但陷阱就在這裡,當達到每月8千萬次,使用Function的總費用就會跟伺服器架設費用一樣,價格上並沒有優勢,唯一的優勢只剩於瞬間高負載的平行處理。
沒有一個最好的產品架構,只有最適合當前產品的需求設計的架構。
而這個架構會隨著時間跟產品生命週期等因素而有所改變。
iThome有一系列文章針對Serverless的探討非常深入淺出,想了解更深入歷史背景跟企業應用的可以參考:
世界級傳統企業可口可樂公司都願意做出改變了,為何我們做不到?
台灣大多企業卻還是躊躇不前,一方面是考量穩定性、轉換成本及實際需求面問題,一方面也有可能是掌權的技術人員不願意改變現有架構,學習新的事物。
雖然本系列文章以Azure來實作,實際上之後會在作者的個人網站上同步寫出GCP、AWS的建構方式,我們可以利用一些備援或是整合多雲不同服務的方式來使產品可以達成某些需求,而Azure也很貼心也有服務(Azure 成本管理 + 帳單)幫我們分析不同雲的帳單跟使用成本,讓我們可以整合帳單上面省事許多。
目前規劃文章篇幅:
因為使用到產品跟雲端架構的概念,因此作者覺得幾點是必要具備的:
此系列文章會使用Angular撰寫使用者端的專案,使用Python撰寫,
資料庫的部分使用雲端服務自帶的Cloud Native SQL
作者雖然是全端工程師,但實戰大多在前端為主,資料庫能力較弱,因此不會多著墨於資料庫設計。
當然每個人理解不同,作者也是會有錯誤的部分,也歡迎大家針對文章中觀念有誤或是任何有問題、錯字等等提出來,在文章下一起討論,使這系列文章能夠更加完整正確!
這是作者第一次在鐵人賽撰寫文章,也是直接組隊參加自虐,自己公司產品快上線了,強迫自己可以最大化生產力,提前把公司的東西做完才有辦法寫文章的概念,果然有壓力就會讓進度超前。以下是這次一起奮鬥的隊友,這次的隊友都大有來頭,也歡迎大家去看看他們寫的文章,以下主題依照加入團隊的時間排序:
看到第一張圖,每家都叫做 Functions
,只有 AWS 叫做 Lambda
真是不合群 (誤)
結果是AWS先出的...