通過試用期-我規定了公司的標準部署流程

通過試用期-我規定了公司的標準部署流程

分類:
工作日記
標籤:
部署流程
更新於 2025年11月3日

我為公司做了什麼

今天是我11月3日,晴,入職後的三個月,今天過後我就結束了為期3個月的試用期。我打開公司的Jira,這個記錄了我從入職以來所有任務的工具,我一共接受了28項任務,其中包含寫文件、研究新工具、部署任務、實作API、介紹Terraform,而最重要的是訂立公司內部的軟體開發部署流程

軟體開發部署流程

身為專業的 Devops 工程師,將公司內部專案透過不同的部署策略,部署到對應的環境是我的任務,然而在開發工程團隊如何提出正確的部署需求,在我規定之前,貌似都有比較混亂的狀況,最近剛好有個專案由於沒有提供完整的環境變數導致部署失敗,最後排查也耗費比較多人力。

如何建立部署流程

在回答這個問題前,我先整理了公司最常有部署需求的服務有哪些,哪些需要儘快提供部署標準流程,哪些是暫時不需要那麼急迫的,這就是我這次的任務優先級安排。在評估後,公司內部有大量 API 部署需求,採用AWS App Runner 的方式去部署,為了能夠因應這種部署方式,我提供了1個部署規範的文件及1個雲端環境基礎建設範例 App-Hub ,只需要照著文件的步驟,就可以將開發團隊的功能進行部署。

步驟說明

STEP 0.完成Bitbucket專案上傳

專案的上傳本就是開發團隊已經知道的既有步驟,因此我設定為部署的前置步驟,然而最重要的部分應提供完整的Dockerfile及requirements.txt。這是比較多開發團隊可能疏漏的部分,我在會議中也特別強調了要多注意這個部分。

STEP 1.整理所需AWS資源

由於很多專案需要使用 AWS 資源,如何正確開權限取得資源就是很重要的步驟了,包含RDS、S3、Secret Manager、Cloud Watch…這些都是應該要在部署前告知,並且開啟對應的權限。

STEP 2. 提供環境變數

如何安全並且完整地提供.env環境變數給Devops團隊是一個很重要的事情,在多方考慮以及討論後,比較了目前現有方法的優劣勢,包含1.通訊軟體直接傳送.env,2.Email寄送.env傳送,3.Google Sheet 建立環境變數的範本。最後,我們採用3.Google Sheet進行統一管理,但prod等重要資訊不揭露在文件中,僅以Check作為設定完成的意思。

STEP 3. 驗證 App Runner 是否正確讀取 Secrets Manager的環境變數

AWS 的 Secrets Manager是一個用於存放環境變數的工具,但開發團隊並沒有存取權限,因此開發團隊如果需要知道部署後是否有讀取到正確的環境步驟,要有自己的方法能夠確認,我提供了3種方法,1.測試功能完整性,如果功能確實完整,則有讀取到正確的環境變數,2.開啟App Runner的Application Log,並且在程式中print相關環境變數,3.寫1隻專門用於讀取Secret Manager的API,印出環境變數的前5碼等較不機敏的資訊,確認符合需求。

以上簡單的幾個步驟,就可以明確開發團隊所需要的基本資源,並且減少重複溝通,雖然用Google Sheet仍然可能會有權限開啟錯誤等問題,但目前階段可以先嘗試簡單不需要太高學習成本的方法。

新鮮人的體悟

作為剛入社會的新鮮人,由於疫情期間導致沒有實習相關經驗(但其實那時候我去兼任了高中的社團老師,也算是某種進入職場?),這是第一次正式上班,很有趣的是我覺得無縫從學生狀態切換成工程師狀態並沒有太多的不適應,反而覺得自己比學生時期更能夠接受新的事物。

目錄