無伺服器是一種學說,而不是技術 - PaulDJohnston
過去幾年我一直在無伺服器社群中試圖弄清楚如何幫助其他人理解“無伺服器”意味著什麼。對於我來說,最近幾個月談論無伺服器一直試圖避免談論技術,並試圖開始討論該方法的商業價值。我甚至寫過關於其中一些內容的部落格:
我注意到的一件事是,過去幾年我以各種不同的方式改變了自己的想法。我現在對特定的技術選擇不太感興趣,對組織內部如何實施技術的戰略方法更感興趣,以及組織需要實現的過渡以接受無伺服器的思維模式。
然後昨天我偶然發現了斯沃德利在2016年寫回一篇關於組織的普遍學說的文章。我意識到了......
無伺服器是一種學說
什麼是學說?為了我們的目的,一個學說是你從經驗中學到的一套原則,並編成了一些書面形式,例如一套最佳實踐......就像我的最佳實踐部落格文章......
考慮到“無伺服器作為一種學說”,我認為當有人將任何技術或服務稱為“無伺服器”時,我發現它真的令人沮喪。最常見的例子是當有人說“無伺服器”這個詞的意思是“作為服務的函式”或FaaS時 - 它沒有。FaaS是無伺服器方法的主要支援技術之一,FaaS本身並不是無伺服器的。
讓我再說一遍:
FaaS不是無伺服器的
讓我解釋…
無伺服器特點:
1. 將您的想法從程式碼轉移到配置
無伺服器應用程式不是由程式碼定義,而是由定義資源的配置定義,以及觸發將這些資源粘合在一起的少量程式碼的事件。
程式碼變得更加關注獨特的業務邏輯
配置定義非業務關鍵應用程式。
2. 將您的思維從高量程式碼行轉移到低量程式碼行
今天的程式碼是明天的技術債務
在我的世界中,最好是零程式碼(全部在配置中)
我們越可以轉向配置,我們需要的程式碼行越少
3. 將您的想法從架構服務轉移到消費服務
如果存在可以做我們想要的服務,那麼我們就有理由想要構建該服務。
因此,除非業務至關重要,否則不要構建該服務。
4. 將您的想法從擁有工作量轉移到不再使用工作量
在執行系統時,您應該只關注業務關鍵系統。其他一切都不重要。
沒有例項,伺服器或容器,除非沒有其他方法
如果我不需要,為什麼我要再管理這些了!除非它是關鍵業務,否則這些是技術預算中最大的浪費時間之一!
向上和向下縮放應儘可能由服務處理
向上和向下縮放至關鍵是關鍵。
這包括基本上配置伺服器以在其上執行某些內容的服務。在AWS上執行RDS資料庫之類的東西在這一點上是有問題的,因為您必須配置例項,並且縮放是手動的。這也是為什麼RDBMS通常不合適存在我的無伺服器應用程式檢視中的原因 。
資料層應該是特定於應用程式的 - 沒有“一刀切”的方法
這個對我來說是關鍵的,它只是挑戰“一切都必須是RDBMS”的假設。
有沒有說你不能使用RDBMS,但記得要顧及縮放和管理學說太多。
但是,在過去幾年中我遇到的幾乎所有場景中,應用程式資料層都有比RDBMS更好的解決方案。
沒有有效的業務案例,沒有新的服務或技術
我經常讓開發人員來找我說“我能做到這一點的唯一方法就是使用X服務/技術”。但願這永遠不會成真。
我的回答是將他們送走並要求他們寫一個“業務案例”。在他們編寫了一個業務案例(通常需要幾個,因為他們不知道是什麼)後,我告訴他們離開並確定他們是否可以使用當前的技術堆疊來實現他們所需要的。答案几乎總是肯定的,或者如果不是,它通常是一種完全不同的技術。
例如,我有一個開發人員來問我是否可以使用RedShift,我把他送走了,經過一輪“商業案例”賓果遊戲,他意識到他可以使用雅典娜來實現同樣的目標。它沒有伺服器,符合原則。
開發人員需要了解他們必須證明決策的合理性,當他們意識到他們必須瞭解他們所處的業務時,他們往往會成為更好的開發人員。
企業中的所有技術人員都在那裡提供商業價值
企業中的人的工作不是提供技術,而是提供商業價值。
這應該是顯而易見的,但對大多數開發人員來說並非如此。
現在,對我而言,無伺服器是一種學說
相關文章
- DevOps是一種哲學,而不是一個具體技術名頭 - DZone DevOpsdev
- AI不是一種技術,而是一種思考方式AI
- 百利而無一害的技術——LinuxLinux
- 幹掉APT的是人不是技術APT
- 大資料計劃驅動因素是種類而不是數量大資料
- 語言主要是一種交流工具,而不是思維工具
- SQLite是一種經典的無伺服器ServerlessSQLite伺服器Server
- 【譯】需要學習的是程式設計,而不是程式語言程式設計
- 遊戲防沉迷,防的是沉迷,而不是遊戲遊戲
- 為什麼是“程式猿”而不是“程式媛”?
- 技術不是問題
- 庫克說VR很酷並不是小眾技術 蘋果正憋大招VR蘋果
- 技術人創業:失敗不是成功,但反思是創業
- 亞洲父母才明白:他們孩子學習的是C++ ,而不是A++C++
- 【同行說技術】swift最全學習資料彙集(一)Swift
- parseInt 是用於字串,而不是用於數字字串
- 馬斯克: 教育是解決問題, 而不是教工具馬斯克
- 學的是技術,用的是思想
- 為什麼說Java是2021年最值得學的技術?Java
- 說說技術書籍
- 建站技術是一錘子買賣,而建站服務則是長久性的共贏嗎?
- 誰說Vim不是IDE?(一)IDE
- ReactiveProgramming一種技術,各自表述React
- 無偏光片顯示技術:一種COE的低成本替代方案
- 軟體開發人員需要的不僅是技術,也不是文件,也不是管理,而是……
- 如果說程式語言是一種宗教,你的信仰是?
- TensorFlow技術主管Peter Wardan:機器學習的未來是小而美機器學習
- 一種產生 DSN 放大攻擊的深度學習技術深度學習
- 我是如何學習一門程式設計技術的?程式設計
- Go是Google的語言,而不是我們的語言Go
- canvas 繪製圖案是重疊繪製而不是重置Canvas
- canvas繪製圖案是重疊繪製而不是重置Canvas
- 技術更迭,一往無前
- 從技術上來說PHP好還是JAVA好?PHPJava
- 如何看待無伺服器計算與容器技術?伺服器
- RestEasy技術說明REST
- 為什麼說強化學習是一種人工智慧的通用框架?強化學習人工智慧框架
- 【同行說技術】Java程式設計師學習資料彙總(一)Java程式設計師