無伺服器會成為新的Visual Basic嗎?
在無伺服器架構的幫助下,我們可以藉助更少的有經驗開發者,實現比以往更多有經驗的雲開發者更出色的工作成果。這個有趣的觀點是Movivo的CTOPaul Johnston在The ServerlessCast #6 – 事件驅動的設計思維中提出的,我也是第一次聽到這樣的觀點。
得出這種結論的思考過程差不多應該是這樣:
在事務性系統、框架,以及承擔多種任務並且顯得笨重的容器等方面,有經驗的雲開發者很可能採取一種程序化的思維方式(Think procedurally)。
但無伺服器開發者不需要這樣考慮問題。無伺服器開發者的思路需要從小型函數著手,只需要考慮一件事:通過事件將不同函數連接在一起,這一過程中需要領會非同步、分布式的思維方式。
因而此時我們實際上根本不需要典型的開發者思維。Paul發現,很多具備系統管理技能的人已經具備這樣的能力了。擁有系統管理員背景的人往往能比框架開發者更深入地理解分布式思維,進而更好地構建出完整的事件系統。
Paul還提出了一個觀點,認為一旦系統已經構建完成,有經驗的開發者很快會感到無聊,因為無伺服器架構的系統並不需要那麼多的維護工作。
例如,他們已經習慣於僱傭通過在職培訓具備兩年職業經驗的員工,因為這樣的員工在框架、伺服器,以及其他各種技術的使用方面沒有「歷史包袱」。沒有包袱才能輕裝上陣。
那麼不妨僱傭更年輕,更有幹勁,不具備此類經驗的開發者。
很明顯,「更年輕,更有幹勁」以及「較少的經驗」同時也意味著人力成本更低,追求這一點也沒什麼錯。畢竟好的開發者難覓。
類似的情況以前就出現過。很多公司都曾藉助經驗相對不多的人,使用Visual Basic開發了大量承擔重要工作的系統,因為通過VB,我們可以很輕鬆地開發Windows程序。以往,Windows程序的開發很難,需要耗費大量時間;而今天的雲程序開始其實也很難,很浪費時間。但是與VB類似,無伺服器技術大幅降低了雲程序開發工作對技能的要求。
雖然可以實現目的,但大部分此類VB程序都蘊含著「技術債」的炸彈。隨著時間流逝,程序中被加入越來越多的功能,整個程序將變得非常難以理解,難以改動,難以測試,整個設計變得越來越糟糕。漸漸地,變成了一個大泥球(Big Ball of Mud。譯註:指缺乏直觀架構的軟體系統,詳見:https://en.wikipedia.org/wiki/Big_ball_of_mud)。
VB使得很多原本麻煩的問題變得更容易解決,例如事件句柄中的業務邏輯,由於不需要分層,可以通過GUI負責編排工作。但這也導致VB程序難以測試。無伺服器也存在此類問題。缺乏經驗的程序員還會在VB程序中使用大量全局變數,導致不同領域之間缺乏清晰的劃分,高耦合低內斂。無伺服器同樣存在類似問題,由於代碼中不存在全局變數,最終只能使用資料庫存儲所有無伺服器函數所需訪問的全局變數。
我倒是很想知道無伺服器架構最終能否擺脫類似VB那樣的宿命。
最初發佈於:HackerNews
作者:Todd Hoff,閱讀英文原文:Is Serverless The New Visual Basic?
感謝郭蕾對本文的審校。
※Core Graphics,第一部分:序章
※怎樣做代碼Review
※Core Graphics,第二部分:說說 context
※對P10的洗白,終於徹底摘掉了zealer「客觀、獨立、第三方」的帽子
※為什麼我們當初沒有選擇 Kotlin
TAG:推酷 |
※Web Forms Validation 伺服器控制項
※新的Apache Struts RCE缺陷讓黑客接管Web伺服器
※什麼是Serverless無伺服器架構?
※使用 Testinfra 和 Ansible 驗證伺服器狀態
※Windows 上的 SSH?使用 PowerShell Remoting 遠程管理 Windows 伺服器
※VSCode 引入 Python 語言伺服器;Canonical 請求幫助測試 Ubuntu 伺服器安裝程序
※Hitachi Vantara升級Skylaking伺服器加入Optane緩存和GPU
※Windows和Ubuntu系統如何遠程連接Linux伺服器
※centos下apache伺服器以及Tomcat的配置
※Emissary Panda攻擊:針對中東政府的Sharepoint伺服器
※Cloud Next:Google Cloud Run將無伺服器基礎設施帶入軟體容器
※專為RainbowSix Siege確認的伺服器 Remastered在本周出局
※使用 Nginx的image_filter 模塊來構建動態縮略圖伺服器
※linux中搭建samba伺服器全攻略(centos版)
※首款基於Pascal腳本語言的全功能Web伺服器Moon Http Server即將上線
※Serverless真的不需要伺服器嗎?
※Marvell會成為Arm伺服器晶元市場的贏家嗎?
※SpringBoot伺服器壓測對比(jetty、tomcat、undertow)
※Facebook公布Big Basin Volta計劃 為OCP貢獻伺服器設計
※三步教你如何使用RT-Thread MicroPython搭建一個Web伺服器