iT邦幫忙

2026 iThome 鐵人賽

DAY 30
0
JavaScript

不要再說你不會後端!30 天 Node.js 降維打擊指南 系列 第 30 篇

Day 30:自動化部署 (CI/CD) 與後端工程師的下一站

  • 分享至 

  • xImage
  •  

恭喜你,終於來到了 30 天挑戰的最後一關!

昨天我們成功將 API 部署到了 Render 雲端平台。但實務上,如果你每次修改程式碼,都要自己手動登入伺服器、拉取 Git、執行 npm install、然後重啟伺服器,那實在太不符合工程師「能讓機器做,就絕對不自己動手」的偷懶美學了。

今天,我們要來認識現代軟體開發團隊的絕對標配:CI/CD (持續整合與持續部署),並為你未來的後端之路指引方向。


1. 什麼是 CI/CD?

CI/CD 是一套自動化的工作流程,目的是讓「寫程式 -> 測試 -> 上線」這個過程變得如同呼吸一樣自然且不易出錯。

  • CI (Continuous Integration, 持續整合):
    當你把程式碼 Push 到 GitHub 時,雲端機器人會自動幫你檢查程式碼格式、跑單元測試 (Unit Tests)。如果測試沒過,就會亮紅燈並阻止這段程式碼合併,避免有 Bug 的程式碼害慘整個團隊。
  • CD (Continuous Deployment, 持續部署):
    當 CI 測試全數通過,且程式碼合併到 main 主分支後,機器人會自動把最新的程式碼打包 (例如 Build 成 Docker Image),並自動推送到正式的雲端伺服器上。

結論:有了 CI/CD,你只需要專心寫程式並執行 git push,剩下的測試與上線工作,機器人都會自動幫你搞定。


2. GitHub Actions 實戰初體驗

業界有很多 CI/CD 工具 (如 Jenkins, GitLab CI, CircleCI),而目前最普及、對開源專案最友善的就是 GitHub Actions。

你只需要在專案根目錄建立一個 .github/workflows/deploy.yml 檔案,就可以指揮 GitHub 的雲端機器人。

一個基本的自動部署腳本範例:

name: Node.js CI/CD Pipeline

# 觸發條件:當程式碼 push 到 main 分支時執行
on:
  push:
    branches: [ "main" ]

jobs:
  build-and-test:
    runs-on: ubuntu-latest # 給機器人一台 Ubuntu 系統

    steps:
    # 1. 下載你的程式碼
    - uses: actions/checkout@v3

    # 2. 安裝 Node.js 20 環境
    - name: Use Node.js 20.x
      uses: actions/setup-node@v3
      with:
        node-version: 20.x

    # 3. 安裝套件
    - name: Install Dependencies
      run: npm ci

    # 4. 執行測試 (假設你有寫測試指令 npm test)
    - name: Run Tests
      run: npm test

  # (後續可以串接自動部署到 Render 或 AWS 的腳本)

現在的 Render 等 PaaS 平台,其實背後就已經幫你實作了簡易版的 CD (只要 GitHub 有新 commit 就自動更新)。但當你未來走向更複雜的 AWS 或 Kubernetes 部署時,撰寫 Pipeline 腳本將是你的必修課。


3. 後端工程師的下一站 (Next Steps)

30 天的 Express.js 旅程雖然結束,但後端的世界才剛為你敞開大門。未來你可以朝以下幾個方向繼續深造:

  1. TypeScript (絕對推薦):
    JavaScript 是動態弱型別,很容易在執行時才爆發變數找不到的 undefined 錯誤。TypeScript 為 JS 加上了嚴格的型別保護,是目前所有大型企業開發 Node.js 的唯一首選。
  2. GraphQL:
    受夠了 REST API 每次都回傳一堆前端用不到的欄位嗎?GraphQL 允許前端「要什麼欄位就自己點餐」,是社群巨頭與複雜前端系統最愛的 API 查詢語言。
  3. Message Queue (訊息佇列):
    當系統遇到「黑色星期五」等級的瞬間高流量,你可以利用 RabbitMQ 或 Kafka 這樣的工具作為緩衝池,把訂單排隊慢慢消化,避免資料庫瞬間被擊穿。
  4. 系統架構設計 (System Design):
    學習如何使用 Kubernetes 管理成千上萬個 Docker 容器,理解 Load Balancer (負載平衡) 的分配策略,以及資料庫的讀寫分離與分片技術。

4. 結語

從 Day 1 的第一行 console.log,到 Day 10 的 RESTful API 規格,再到 Day 21 的 JWT 防禦與 Day 28 的 Docker 容器化。你已經完整走過了一個現代後端工程師的核心開發流。

技術會不斷更新,框架會改朝換代,但這 30 天建立的「HTTP 通訊邏輯」、「資料庫正規化思維」與「伺服器安全意識」,將會是你職涯中最堅實的基石。

帶上你的開發者武裝,去創造屬於你的偉大應用吧!


上一篇
Day 29:讓全世界看見你的作品 — 雲端部署實戰
系列文
不要再說你不會後端!30 天 Node.js 降維打擊指南 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言