iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 1
3
Microsoft Azure

Azure Serverless 平步青雲,漫步雲端系列 第 1

Day 01 - 萬里之行,始於足下:認識Serverless

Serverless
圖片來源:Dailyhostnews

自從Amazon在2014年re:Invent發表會上以Lambda及相因應的服務發表、率先揭開無伺服器運算架構的新革命後,無伺服器與微服務越來越火紅,就跟水和電一樣,運算資源不用為了需求就蓋一座發電廠跟水壩,而是像水龍頭一樣,一開即來。


AWS 2014年re:Invent發表會

因為網路跟雲端技術的進步,新的革命已悄悄到來。


什麼是 Serverless (無伺服器架構)

Serverless 從字面上是寫無伺服器架構,實際上並不代表真正的無伺服器,而是在傳統意義上的伺服器概念放大到整個雲端上面,乍看之下好像沒有一個實體的伺服器,實際上卻把整個傳統伺服器概念上的每一個功能獨立出一個專門的微服務,需要的時候,建立一個臨時的伺服器容器運行預設的環境,並執行設計好的程式碼。由於不用運行一台隨時待機的伺服器,即用即開,也因此花費部分便是用多少付多少(Pay as you go)的概念。

整個 Serverless 的演進是從 IaaS, PaaS, SaaS 演變而來,演進歷史從 Medium上 Serverless & FaaS 由施靜樺撰寫的文章有非常詳細闡述怎麼衍生而形成趨勢的。

圖片來源:https://www.ithome.com.tw/news/112431

圖片來源:可口可樂的Serverless之旅

從Serverless Pay as you go在部分情況下(根據產品架構而定),成本會遠低於Server架構,如可口可樂公司以每個月3千萬次請求的費用從每年的伺服器費用12,864美金降低到了4,490美金,省了65%美金,但陷阱就在這裡,當達到每月8千萬次,使用Function的總費用就會跟伺服器架設費用一樣,價格上並沒有優勢,唯一的優勢只剩於瞬間高負載的平行處理。

沒有一個最好的產品架構,只有最適合當前產品的需求設計的架構。
而這個架構會隨著時間跟產品生命週期等因素而有所改變。

延伸閱讀

iThome有一系列文章針對Serverless的探討非常深入淺出,想了解更深入歷史背景跟企業應用的可以參考:

  1. AWS Lambda大躍進的真義:Part 1

  2. AWS Lambda大躍進的真義:Part 2

  3. 可口可樂的Serverless之旅

世界級傳統企業可口可樂公司都願意做出改變了,為何我們做不到?
台灣大多企業卻還是躊躇不前,一方面是考量穩定性、轉換成本及實際需求面問題,一方面也有可能是掌權的技術人員不願意改變現有架構,學習新的事物。


關於本系列文章

雖然本系列文章以Azure來實作,實際上之後會在作者的個人網站上同步寫出GCP、AWS的建構方式,我們可以利用一些備援或是整合多雲不同服務的方式來使產品可以達成某些需求,而Azure也很貼心也有服務(Azure 成本管理 + 帳單)幫我們分析不同雲的帳單跟使用成本,讓我們可以整合帳單上面省事許多。

目前規劃文章篇幅:

  1. 系統設計:預計篇幅約10篇,主要是了解各種不同類型的產品如何設計,並根據需求來使用相對應的雲端服務,有鑒於大家對於雲端服務的不熟悉,因此也會講解Azure的相關服務的簡介,想知道詳細介紹可以參考其他邦友的文章,這邊主要是系統設計上的介紹跟為什麼採用為主。
  2. 產品實戰:預計篇幅約10~15篇,以實際產品設計完根據系統設計的架構圖部署的概念,並加入 CI/CD 流程減少人工部署上可能會發生的失誤。
  3. 產品功能拓展:預計篇幅約3~5篇,產品部署之後,因為新的需求而要在產品上增加全新功能時(如AI、影音串流、通知推播等),如何直接開啟新服務快速接上現有產品達到敏捷開發的目的。
  4. 多雲整合:預計篇幅約3~5篇,一個公司可能有不同產品跟架構,分佈在不同雲上,介紹如何快速整合不同雲的資源,使用在同一個專案上面。

建議應該預備知識

因為使用到產品跟雲端架構的概念,因此作者覺得幾點是必要具備的:

  1. 開發並實際部署過產品。
  2. 了解要使用的雲的各種產品服務。
  3. 網路基本概念,如IP、Port、Proxy、DNS等。
  4. 同步跟非同步是什麼,狀態跟無狀態的概念。
  5. 基本的程式能力,而這個程式能力而外還要涵蓋到使用SDK等套件來呼叫其他雲資源的服務。
  6. 隨時保持學習新事物的心。

此系列文章會使用Angular撰寫使用者端的專案,使用Python撰寫,
資料庫的部分使用雲端服務自帶的Cloud Native SQL

作者雖然是全端工程師,但實戰大多在前端為主,資料庫能力較弱,因此不會多著墨於資料庫設計。

歡迎討論

當然每個人理解不同,作者也是會有錯誤的部分,也歡迎大家針對文章中觀念有誤或是任何有問題、錯字等等提出來,在文章下一起討論,使這系列文章能夠更加完整正確!

開賽

這是作者第一次在鐵人賽撰寫文章,也是直接組隊參加自虐,自己公司產品快上線了,強迫自己可以最大化生產力,提前把公司的東西做完才有辦法寫文章的概念,果然有壓力就會讓進度超前。以下是這次一起奮鬥的隊友,這次的隊友都大有來頭,也歡迎大家去看看他們寫的文章,以下主題依照加入團隊的時間排序:


下一篇
Day 02- 籠天地於形內,挫萬物於筆端:系統設計 - Server base/less 差異
系列文
Azure Serverless 平步青雲,漫步雲端30

1 則留言

1
黃升煌 Mike
iT邦新手 2 級 ‧ 2020-09-16 16:12:40

看到第一張圖,每家都叫做 Functions,只有 AWS 叫做 Lambda 真是不合群 (誤)

CK Sun iT邦新手 5 級 ‧ 2020-09-16 16:20:40 檢舉

結果是AWS先出的...

我要留言

立即登入留言