什麼是Serverless 2020版 - Go Serverless換的不是技術,而是思維方式

關於我自己:2018年初,陰差陽錯入了谷歌雲(Google Cloud Platform)的坑,再也沒爬出來… 目前有2年穀歌雲的項目開發經驗,之前工作裏也接觸過AWS。最近開始接觸國內各大廠的雲,所以萌生了po一些從不同的視角,用有趣的方式解讀關於雲的文章…
第一次發文,請多關照…

什麼是Serverless

什麼是Serverless - 普羅大衆版

這是來自於AWS的官方博客的定義

如同許多新的概念一樣,Serverless目前還沒有一個普遍公認的權威的定義。最新的一個定義是這樣描述的:“無服務器架構是基於互聯網的系統,其中應用開發不使用常規的服務進程。相反,它們僅依賴於第三方服務(例如AWS
Lambda服務),客戶端邏輯和服務託管遠程過程調用的組合。”

看到這裏,我設想,如果我現在還是那個計算機專業的學生,沒有真正使用過雲產品,看到這樣的解釋,我表示真心看不懂…

這也是我個人非常不喜歡看教科書的原因,非常不人性化

再來一波谷歌版:
在這裏插入圖片描述

Serverless: Just Code
Grow from prototype to production to planet-scale, without having to think about capacity, reliability, or performance.

簡潔明瞭,最關鍵的是我看得懂啊!!!

插個題外話,谷歌的文檔也很人性化,我曾經那些真正熱愛技術的程序猿同事說到Google Cloud,熱淚盈眶…用過就知道,程序猿真愛

谷歌與Coursera合作的官方課程講,谷歌雲(GCP)最根本的設計原則是:

You give us your code, and we do the rest

你給我代碼,我幫你完成餘下的一切。
在這裏插入圖片描述
這餘下的一切就包括在各大廠的官網上看到的:

  • 零服務器管理 No server management
  • 自動擴容 Auto-scale
  • 用戶只爲實際使用的資源付費 Pay-per-execution(never pay for idle)
  • 函數是部署和運行的基本單位 Function as a unit of application logic
  • 安全託管 Managed Security

什麼是Serverless - 2020版

在實際用戶體驗層面,Serverless可以理解成,作爲從事IT工作的我們,只需要做好我們的份內事情就好,該寫代碼寫代碼,該分析數據分析數據,與底層服務器,代碼部署,運維,安全等相關的事宜,完全交由各大雲廠商負責,反正我們有Serverless雲函數,Serverless數據庫,Serverless機器學習。
但這樣的責任託管,也帶來一定的風險,以後的文章裏我會引用曾經遇到的實際事例來加以解釋。

是的,我在這裏故意濫用了Serverless,因爲曾經Serverless原本是指FaaS or a technology that enables FaaS,但是因爲各大雲廠商的市場推廣,Serverless已經變了味道 - 一切與零服務器管理 No infra management相關的都可以被理解成Serverless。

大家可以分別看一下2018年和2020年AWS對Serverless的定義:
2020年:在這裏插入圖片描述
2018年:
在這裏插入圖片描述

當前2020的版本增加了一句:

Serverless is the native architecture of the cloud that enables you to shift more of your operational responsibilities to AWS, increasing your agility and innovation.

所以,Serverless不再跟Serverless Computing捆綁定義, Serverless這個詞幾乎可以被解讀爲Cloud,一切雲提供的服務都是Serverless,其根本目的是幫助企業實現敏捷開發以及模式創新。

Go Serverless換的不是技術,而是思維方式

我們再去仔細研讀一下AWS新增的這段話的後半部分,

Serverless is the native architecture of the cloud that enables you to shift more of your operational responsibilities to AWS, increasing your agility and innovation.
將更多的底層責任分配給AWS,以此來幫助企業快速地開發新功能以滿足新的業務需求(Agility)和實現模式創新(Innovation)

這就引出了我接下來所要講的觀點,也是Paul Johnston (ServerlessDays CoFounder (Jeff), ex AWS Serverless Snr DA) 在Medium上發文所講的:

Serverless is not a technology, it’s a mindset.
A serverless application is one that provides maximum business value over its application lifecycle and one that costs you nothing to run when nobody is using it, excluding data storage costs.

在AWS新增的這段話的後半部分以及Paul的那篇文章裏,大家都在鏈接到一個關鍵詞:Business Value。

面向未來,正如谷歌所宣傳的那樣,所有的公司,不管你是來自於哪個行業,都會轉型成數字化IT公司,再加上Covid-19 新冠肺炎的推波助瀾,未來傳統行業的公司都需要開拓線上業務,進行數字化轉型(Digital Transformation)
Go Serverless and Go Cloud也是比較便捷的轉型方式,非科技公司可以利用購買現有的成熟度的底層技術,自己只需要負責業務邏輯層的設計,實現商業價值的快速變現。

這也就意味着,未來的市場對部分程序員的要求是深入理解業務需求,更快速地開發出符合市場需求的產品,實現商業變現。
Serverless的意義在於將大部分程序猿從單純地與機器打交道的活兒中拖拽出來,有更多的時間去思考如何實現技術創新,業務模式創新,快速創新,最終將business value最大化。曾經程序猿是存在於利益鏈的底端,上面有底層基礎設施,代碼,產品,商業價值,未來我們至少可以把底層基礎設施踩在腳下,對託管他們的公司頤指氣使,只對代碼負責,也符合單一職責原則SRP(Single Responsibility Principle)。

其次,Go Serverless 也意味着我們不需要在去重複一些機械性工作:
比如ssh去instance看看主機狀態,設置網絡,一切都在browser裏完成;
我們不需要自己安裝開發環境,我們有云IDE, 雲SDK;
我們不需要寫腳本去運行各個相關聯的task,雲端scheduler可以替代這些…
這就好像我們不再需要寫彙編語言,只需要用更抽象的‘人類’語言來完成編碼一樣,雖然付出了更多編譯所需的時間成本,但是也實現了快速創新的可能。
曾經看到有人講,工業革命之後,人類越來越不熱愛工作的原因在於,流水線生產將人類的工作內容瑣碎化,機械化,重複化,Go Serverless是不是能夠幫助我們,至少程序猿,勻出更多時間去創新,去探索不同的可能,我們也就少掉幾根頭髮呢!!!

面向未來,什麼是Serverless思維方式?
站在那些巨人的肩上(購買他們的服務),
去做更有趣的事情(模式創新+商業變現)。

Paul Johnston講Serverless is the next iteration of Cloud,那再之後呢?當有一天機器人能替代我們編碼,替代我們寫詩畫畫創作的時候,我們又會是在幹嘛呢?

本篇是從商業角度看Serverless的科普文,以後會有更多技術性的案例分析…
請多多關注,謝謝🙏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章