COSCUP 2023

用 Docker Swarm 與 GitLab CI 讓你的 Rails 開發與部署更加敏捷
2023-07-30, 15:30–16:00 (Asia/Taipei), TR 413-1
Language: Traditional Chinese (Taiwan)

對於所有的開發團隊來說,如何在開發過程中管理測試伺服器一直都是一個棘手的問題,例如當同時開發的功能很多時,我們可能遇到測試伺服器數量不敷使用而必需等待的情況;我將分享如何省力且快速的使用 GitLab CI 加上既有的工具與範本,自動地為你的 Rails 專案中的每一個 Pull Request 建立獨立的測試環境,進而讓我們更專注於開發上。


基於 GitLab 對於 review apps 的定義,當一個專案具備 review app 時,將可以在每一個 Pull Request 上透過 CI 程式自動化地建立一個專屬的執行環境。

我們開發專案時,雖然會編寫自動化的測試,但實務上通常還是需要經過專案經理或是設計師的確認,一般的流程中,我們可能會有一或多個 staging server 並使用 Capistrano 之類的工具,由工程師手動將功能佈署到測試伺服器上,但當同時開發等待確認的功能較多的時候,可能就會需要等待空閒的 staging server 才能測試。

當我們可以透過 CI Pipeline 自動為 Pull Request 建立出獨立的 review app 環境後,就可以解決這樣的問題,並免去手動部署時可能產生的人為錯誤。

本次演講將是以小至中型的 Rails 開發團隊為目標,闡述如何省力且快速的為你的 Rails 專案建置自動化部署並建立從 review、staging 甚至 production App 環境的完整 CI script 流程與所需的全部工具,除了需要使用 GitLab CI 以外,對於基礎建設沒有任何偏好,可以實踐於所有的雲端服務提供者以及實體伺服器上,包含但不限於以下主題:

  1. 何謂 Review App,它可以為你的專案帶來什麼好處?
  2. 介紹基於 Docker Swarm 與 Traefik 的典型 Runtime Stack。
  3. 快速並精簡地將你的 Rails 專案 Docker 化。
  4. 使用預製的 CI script template,並講解如何應對你的需求進行客製與調整。
  5. 常見問題與排除方式。

Difficulty

中階

Target Audience

想加速開發流程的 Ruby on Rails 開發者

Length of session

45 分鐘

MAN WITH MANY BUGS