高效能無伺服器工程的6個最佳實踐
當你寫下你的前幾個lambdas時,效能是你最不想要的,你最關心的是許可權,安全性,身份和訪問管理(IAM)角色和觸發器,這些都是為了進行“hello world”試用之後,讓您的第一個無伺服器能夠部署正常執行。但是,一旦您的使用者開始依賴您的lambdas提供的服務,就應該專注於高效能無伺服器。
當您嘗試生產高效能無伺服器應用程式時,需要記住以下一些關鍵事項。
1.可觀察性
無伺服器處理擴充套件非常好。但隨著規模與複雜性的相互作用,減速和錯誤是不可避免的。
可觀察性不僅僅是日誌記錄或指標 - 這兩者都是無伺服器的。您可以深入瞭解雲監視,以便在每次呼叫lambda時獲取日誌記錄資訊,並且AWS控制檯提供了充分的方法來檢視執行時間,記憶體使用和其他關鍵指標的平均值。
但是可觀察性是我們如何從外部分析系統而不破解其內部結構。日誌記錄和指標都不能真正做到這一點,因為日誌記錄提供的資訊太精細,無法告訴您如何處理請求,而度量標準只能指出問題的症狀而不是其原因。該解決方案是真實的儀器,可以對跟蹤資訊進行取樣,併為您提供一般和異常資料。
2.想想函式的請求路徑
一旦觸發一個函式lambda,就尋找各種資訊,發出各種Web請求,檢查配置檔案,獲取各種上下文,不要在一個函式中做太多事,登出這個被呼叫的lambda,尋找可實現你目標的函式。
3.不要重寫您的程式碼
以下列出了常見的謊言:
- “在迭代之前一定要製作一個陣列的副本,改變副本會更有效”
- “不要連線字串,即使它只是兩個字串仍然加入一個陣列,這將節省記憶體”
- “全域性變數的效能比良好的變數要糟糕得多”
所有這些都是由善意的人提供的,他們希望幫助人們編寫更具效能的JavaScripts。所有這些都忽略了一個基本事實: JavaScript是一種更高階的語言。
可以透過減少必須執行的操作來改程式序:
- 將多個請求組合到其他服務;
- 當你有足夠的匹配時就立即停止迴圈;
- 返回有用的錯誤資訊;
- 失敗優雅。
但除了這些最基本的最佳實踐之外,重寫程式碼並不是解決效能問題的方法
4.從本地開始
我認識的每個人在無伺服器開發的早期都有類似的經歷:當你的lambda開始做一些有點複雜的事情時,你會發現自己對你的配置和功能程式碼做了幾十個小的調整。每次更改時,您都必須等待程式碼部署,然後堆疊的其餘部分才能生效。而不是“儲存,構建,重新整理”,您的開發週期看起來更像是“儲存,開啟控制檯,部署,等待,重新整理,等待,重新整理,等待,等待,重新整理”
可以複製lambdas和API端點以及許多其他資源到本地docker容器中。
5.本地永遠不會複製你的整個堆疊
要真正模擬無伺服器流,您需要有一個堆疊來部署程式碼。
具體情況可能因團隊規模而異,但基本上您需要某種階段或測試版本的堆疊,您可以在其中測試我們的程式碼。
6.管理程式碼,而不是配置
建立YAML,管理你的堆疊。
相關文章
- 無伺服器最佳實踐伺服器
- 17 個提高效能的 Flutter 最佳實踐Flutter
- Kubernetes日誌的6個最佳實踐
- 前端高效能動畫最佳實踐前端動畫
- Taro | 高效能小程式的最佳實踐
- Taro:高效能小程式的最佳實踐
- 應用部署初探:6個保障安全的最佳實踐
- J2EE架構的6個最佳實踐架構
- 前端工程化最佳實踐前端
- Vue工程化最佳實踐Vue
- Vue 工程化最佳實踐Vue
- 混沌工程最佳實踐 - 尋交流
- 如何用無伺服器技術實現最佳的DevOps實踐伺服器dev
- 編寫高效能 Java 程式碼的最佳實踐Java
- 資料庫設計中的6個最佳實踐步驟資料庫
- 確保 Kubernetes 安全合規的 6 個最佳實踐
- WebGPU 的幾個最佳實踐WebGPU
- 十個JDBC的最佳實踐JDBC
- J2EE架構學習者的6個最佳實踐架構
- 使用GitHub的十個最佳實踐Github
- 24個javascript最佳實踐JavaScript
- 7 個 jQuery 最佳實踐jQuery
- webService幾個最佳實踐Web
- 無限滾動的最佳實踐經驗
- SSRS最佳實踐:無憂部署TJ
- 8個雲成本最佳化的最佳實踐
- 收藏 | Google 釋出關於機器學習工程的最佳實踐Go機器學習
- 有效的微服務:10 個最佳實踐微服務
- 有效尋源的4個最佳實踐
- Apache Kafka 12個最佳實踐ApacheKafka
- 7個API安全最佳實踐API
- 20 個 OpenSSH 最佳安全實踐
- PHP 無限級分類最佳實踐PHP
- 介面自動化測試的最佳工程實踐(ApiTestEngine)API
- Android最佳效能實踐(3):高效能編碼優化Android優化
- 6個最佳的開源Python應用伺服器Python伺服器
- 測試微服務的4個最佳實踐微服務
- 13 個設計 REST API 的最佳實踐RESTAPI