」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 生產準備清單

生產準備清單

發佈於2024-08-05
瀏覽:705

Production Readiness Checklist

我一直在研究多個項目,我已將應用程式從 PoC 轉移到生產環境。
這些是我為自己和我的團隊準備的清單,以確保我們做好生產準備。
這裡檢查表是重點,因為應用程式採用 Python 程式語言並透過 Kubernetes 部署到 AWS。
並非所有這些都是強制性的,但它們是我發現最有用的。

1. 警報和指標

  • [ ] 是否針對基礎設施問題設定了警報(例如記憶體或 CPU 使用率增加、服務不可用)?
  • [ ] 是否為關鍵的應用程式特定邏輯故障設定警報?
  • [ ] 我們可以查看基礎設施和資源使用情況的歷史資料(過去幾個小時/幾天)嗎?
  • [ ] 是否有即時監控儀表板?

2. 儀表板和SOP

  • [ ] 是否有處理警報和已知問題的 SOP 文件?
  • [ ] 是否有適用於常見場景的操作手冊?
  • [ ] 是否有適當的事件回應計畫?

3. 待命映射和節奏

  • [ ] 是否有針對應用程式層級問題的待命人員映射?
  • [ ] 是否有針對基礎設施相關問題的待命人員映射?
  • [ ] 是否有明確的輪調時間表和升級政策?

4. 部署

  • [ ] 是否已確定適當的實例類型(GPU 或 CPU)?
  • [ ] 是否已指定所需的伺服器類型?
  • [ ] 是否支援故障轉移的多可用區?
  • [ ] 是否支援多區域?
  • [ ] 是否針對流量高峰設定了自動縮放(例如 HPA、Keda)?
  • [ ] 是否為伺服器配置了健康檢查?
  • [ ] 資源限制是否已定義並記錄?
  • [ ] 是否有藍綠或金絲雀部署策略?
  • [ ] 是否有明確的回溯計畫和程序?

5. 可觀察性和追蹤性

  • [ ] 是否有顯示相關指標的儀表板(例如請求計數、HTTP 狀態代碼、使用情況)?
  • [ ] 我們可以端到端追蹤單一請求以進行調試嗎?
  • [ ] 是否有日誌聚合與分析系統?
  • [ ] 是否實現了分散式追蹤?

6.負載測試

  • [ ] 是否已執行容量規劃來確定伺服器的負載處理能力?
  • [ ] 是否有明確的性能基準?
  • [ ] 是否進行了壓力測試?

7. 質量

  • [ ] 是否有自動化單元測試?
  • [ ] 是否有自動化整合測試?
  • [ ] 是否執行靜態程式碼分析(例如複雜度檢查)?
  • [ ] 代碼覆蓋率是否經過測量並處於可接受的水平?
  • [ ] 是否有生產健全性測試案例?
  • [ ] 是否有 CI/CD 管路?
  • [ ] 是否定期進行安全掃描與漏洞評估?

8. 發布

  • [ ] Swagger/OpenAPI 文件是否可用且是最新的?
  • [ ] 是否有 API 和版本的版本控制系統?
  • [ ] 是否有已建立的溝通管道用於定期維護?
  • [ ] 是否有變更管理流程?
  • [ ] 功能標誌是否用於逐步推出新功能?

9. 災難復原和業務連續性

  • [ ] 備份和復原程序是否已到位並經過測試?
  • [ ] 有資料複製策略嗎?
  • [ ] 是否已定義復原時間目標 (RTO) 與復原點目標 (RPO)?
  • [ ] 是否定期進行災難復原演習?

10. 合規性和安全性

  • [ ] 資料在靜態和傳輸過程中是否加密?
  • [ ] 存取控制和身分驗證機制是否到位?
  • [ ] 是否定期進行安全審核?
  • [ ] 應用是否符合相關行業標準(例如 GDPR、HIPAA)?

11. 文件

  • [ ] 系統架構文件是否可用且是最新的?
  • [ ] API 文件是否完整且最新?
  • [ ] 操作程序是否記錄在案?
  • [ ] 是否有全面的故障排除指南?
版本聲明 本文轉載於:https://dev.to/soumendrak/production-readiness-checklist-1io5?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 為什麼JavaScript反斜杠會導致錯誤及修復方法
    為什麼JavaScript反斜杠會導致錯誤及修復方法
    javascript backslash挫敗感:在javascript中理解逃生字符逃脫字符函數,BackSlash修改了以下字符的含義。 For example, \n represents a newline, rather than a backslash and the letter &...
    程式設計 發佈於2025-04-21
  • 為什麼PHP的DateTime :: Modify('+1個月')會產生意外的結果?
    為什麼PHP的DateTime :: Modify('+1個月')會產生意外的結果?
    使用php dateTime修改月份:發現預期的行為在使用PHP的DateTime類時,添加或減去幾個月可能並不總是會產生預期的結果。正如文檔所警告的那樣,“當心”這些操作的“不像看起來那樣直觀。 考慮文檔中給出的示例:這是內部發生的事情: 現在在3月3日添加另一個月,因為2月在2001年只有2...
    程式設計 發佈於2025-04-21
  • 如何使用Python的請求和假用戶代理繞過網站塊?
    如何使用Python的請求和假用戶代理繞過網站塊?
    如何使用Python的請求模擬瀏覽器行為,以及偽造的用戶代理提供了一個用戶 - 代理標頭一個有效方法是提供有效的用戶式header,以提供有效的用戶 - 設置,該標題可以通過browser和Acterner Systems the equestersystermery和操作系統。通過模仿像Chro...
    程式設計 發佈於2025-04-21
  • CSS強類型語言解析
    CSS強類型語言解析
    您可以通过其强度或弱输入的方式对编程语言进行分类的方式之一。在这里,“键入”意味着是否在编译时已知变量。一个例子是一个场景,将整数(1)添加到包含整数(“ 1”)的字符串: result = 1 "1";包含整数的字符串可能是由带有许多运动部件的复杂逻辑套件无意间生成的。它也可以是故意从单个真理...
    程式設計 發佈於2025-04-21
  • 如何在php中使用捲髮發送原始帖子請求?
    如何在php中使用捲髮發送原始帖子請求?
    如何使用php 創建請求來發送原始帖子請求,開始使用curl_init()開始初始化curl session。然後,配置以下選項: curlopt_url:請求 [要發送的原始數據指定內容類型,為原始的帖子請求指定身體的內容類型很重要。在這種情況下,它是文本/平原。要執行此操作,請使用包含以下標頭...
    程式設計 發佈於2025-04-21
  • 如何使用Java.net.urlConnection和Multipart/form-data編碼使用其他參數上傳文件?
    如何使用Java.net.urlConnection和Multipart/form-data編碼使用其他參數上傳文件?
    使用http request 上傳文件上傳到http server,同時也提交其他參數,java.net.net.urlconnection and Multipart/form-data Encoding是普遍的。 Here's a breakdown of the process:Mu...
    程式設計 發佈於2025-04-21
  • Python中何時用"try"而非"if"檢測變量值?
    Python中何時用"try"而非"if"檢測變量值?
    使用“ try“ vs.” if”來測試python 在python中的變量值,在某些情況下,您可能需要在處理之前檢查變量是否具有值。在使用“如果”或“ try”構建體之間決定。 “ if” constructs 結果= function() 如果結果: 對於結果: #處理...
    程式設計 發佈於2025-04-21
  • PHP陣列鍵值異常:了解07和08的好奇情況
    PHP陣列鍵值異常:了解07和08的好奇情況
    PHP數組鍵值問題,使用07&08 在給定數月的數組中,鍵值07和08呈現令人困惑的行為時,就會出現一個不尋常的問題。運行print_r($月)返回意外結果:鍵“ 07”丟失,而鍵“ 08”分配給了9月的值。 此問題源於PHP對領先零的解釋。當一個數字帶有0(例如07或08)的前綴時,PHP將...
    程式設計 發佈於2025-04-21
  • 人臉檢測失敗原因及解決方案:Error -215
    人臉檢測失敗原因及解決方案:Error -215
    錯誤處理:解決“ error:( - 215)!empty()in Function openCv in Function MultSiscale中的“檢測”中的錯誤:在功能檢測中。”當Face Cascade分類器(即面部檢測至關重要的組件)未正確加載時,通常會出現此錯誤。 要解決此問題,必...
    程式設計 發佈於2025-04-21
  • 如何從PHP中的數組中提取隨機元素?
    如何從PHP中的數組中提取隨機元素?
    從陣列中的隨機選擇,可以輕鬆從數組中獲取隨機項目。考慮以下數組:; 從此數組中檢索一個隨機項目,利用array_rand( array_rand()函數從數組返回一個隨機鍵。通過將$項目數組索引使用此鍵,我們可以從數組中訪問一個隨機元素。這種方法為選擇隨機項目提供了一種直接且可靠的方法。
    程式設計 發佈於2025-04-21
  • Python元類工作原理及類創建與定制
    Python元類工作原理及類創建與定制
    python中的metaclasses是什麼? Metaclasses負責在Python中創建類對象。就像類創建實例一樣,元類也創建類。他們提供了對類創建過程的控制層,允許自定義類行為和屬性。 在Python中理解類作為對象的概念,類是描述用於創建新實例或對象的藍圖的對象。這意味著類本身是使用...
    程式設計 發佈於2025-04-21
  • eval()vs. ast.literal_eval():對於用戶輸入,哪個Python函數更安全?
    eval()vs. ast.literal_eval():對於用戶輸入,哪個Python函數更安全?
    稱量()和ast.literal_eval()中的Python Security 在使用用戶輸入時,必須優先確保安全性。強大的Python功能Eval()通常是作為潛在解決方案而出現的,但擔心其潛在風險。 This article delves into the differences betwee...
    程式設計 發佈於2025-04-21
  • Python讀取CSV文件UnicodeDecodeError終極解決方法
    Python讀取CSV文件UnicodeDecodeError終極解決方法
    在試圖使用已內置的CSV模塊讀取Python中時,CSV文件中的Unicode Decode Decode Decode Decode decode Error讀取,您可能會遇到錯誤的錯誤:無法解碼字節 在位置2-3中:截斷\ uxxxxxxxx逃脫當CSV文件包含特殊字符或Unicode的路徑逃...
    程式設計 發佈於2025-04-21
  • 解決MySQL插入Emoji時出現的\\"字符串值錯誤\\"異常
    解決MySQL插入Emoji時出現的\\"字符串值錯誤\\"異常
    Resolving Incorrect String Value Exception When Inserting EmojiWhen attempting to insert a string containing emoji characters into a MySQL database us...
    程式設計 發佈於2025-04-21
  • 為什麼不使用CSS`content'屬性顯示圖像?
    為什麼不使用CSS`content'屬性顯示圖像?
    在Firefox extemers屬性為某些圖像很大,&& && && &&華倍華倍[華氏華倍華氏度]很少見,卻是某些瀏覽屬性很少,尤其是特定於Firefox的某些瀏覽器未能在使用內容屬性引用時未能顯示圖像的情況。這可以在提供的CSS類中看到:。 googlepic { 內容:url(&...
    程式設計 發佈於2025-04-21

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3