鐵人賽 飛上雲端上青天 - Jian-Min-Huang/tech-note GitHub Wiki
前言
不知道大家有沒有一種感覺,資訊界每幾年紅的玩意兒就要換一下,我記得我念書的時候紅 Cloud,後來紅 Big Data,再來紅 Blockchain,現在紅 AI。那麼一個東西鋒頭過了是不是代表就樣丟掉不紅了呢?其實我覺得不是這樣的,他只是換了一個方式融入我們的領域裡面作為基底,而且其實這些都不是新的東西,只是在某個領域突然突破之後有新的應用再包裝商業化而已。例如 Cloud 是在虛擬化技術成熟之後,把我們以前的本地伺服器放上遠端直接提供服務,讓你省去機器管理的麻煩。而 Cloud 走到今天,從紅過頭到回歸平凡,其實是有些演進跟改變的,今天就是想跟大家來聊聊這些。
SAAS (Software as a Service)
泛指直接提供應用的雲端服務,可能是一個網路硬碟,可能是一個關聯式資料庫管理系統,可能是一套訊息佇列系統。所以在你做好一些簡單的設定之後,它應該是開箱即用的。
BAAS (Backend as a Service)
在各端逐漸分離開發的浪潮中,無論是前端、手機端、後端或是資料端都有各自的生態系及每個時期的流行趨勢。曾經其中一個時間,前端與手機端開發者需要一個量不是特別大卻可以快速集成的服務,可以取代輕量後端的一些需求,例如簡單的邏輯與資料庫。於是把這個概念實體並且雲端化就是 BAAS 了。
FAAS (Function as a Service)
如果你不需要前端介面,不想管後端資料存取,你只是需要一個單純的邏輯功能。由服務提供者提供 Runtime,你提交符合 Context 的程式碼,定義如何被驅動,決定邏輯運行後產生的中繼資料要往哪裡去。而且這通常提供多重語言,如果你需要的服務小而巧,這通常是很棒的一個選擇。
PAAS (Platform as a Service)
其實管理應用系統的基礎架構與環境是件苦差事,以往公司通常要擁有自己的 MIS 或是 IT 部門才能應對需求。但是最累人的往往也不是這點,是如果你的需求開發和版本升級跟這些全部混在一起,變因多了就免不了有交互作用,所以合理的作法就是省掉變因。所以這種幫你控基礎架構與環境的服務也就應運而生,你只需要在版本更新的時候提交專案打包的成果,剩下由它來幫你處理。
IAAS (Infrastructure as a Service)
人就是這樣,PAAS 幫你控多了你又嫌它,或是說你有更多特製的需求想要自己控制,於是就有了這種給你一個 VM 剩下你自己來的服務,VM 在我手,什麼我都有。
CAAS, K8s (Container as a Service)
在 K8s 沒紅之前,Docker 先紅起來,如同 PAAS 的概念,可以想成你提交的專案打包成果剛好就是 Docker Image,一開始 CAAS 算是特化的 PAAS。然後後來 K8s 紅了,雲端商也就趁這個勢把它換成 K8s 的服務。
Cloud Service Provider
上面的類別是 General 的概念,實際的實作其實在各家雲端商都可以看到。當然因為推出的時間跟友善的程度,他們的火紅程度是不同的。但選擇一家服務往往也不只是單純的好不好用,常常還會跟網路區域綁在一起,但在競爭越發激烈的今天,其實你是很難見到哪家有一些其他家沒有的特有服務。下面這個連結是國外針對 2019 公有雲市佔 的分析,有興趣的人可以看一下。
About Me
Jian-Min Huang
wide range skill set backend engineer
Research, Architecture, Coding, DB, Ops, Infra.
mainly write Java but also ❤️ Scala, Kotlin and Go