蒼時弦也蒼時弦也

Rails 實踐部署 - 使用 Alpine 製作容器鏡像

容器化 Rails 專案概述這篇文章,我們介紹了非常快速的 Rails 容器製作方式,然而這樣的方式除了容器鏡像會非常大之外,也包含了許多我們不需要在正式環境存在的套件,對安全性也會有索影響,因此接下來我們要透過 Alpine 來製作專為正式環境部署打造的容器鏡像。

蒼時弦也蒼時弦也

Rails 部署實踐 - 滾動更新

完成網站部署後,我們還需要持續的更新網站。然而如果只有一個節點的話,網站是會有一瞬間服務暫停的狀況,為了避免這樣的問題可以採取滾動更新(Rolling Upgrade)的方式處理。

過去我們需要仰賴人工切換,然而到了虛擬機、容器的階段就能夠透過預先安裝好環境來做到半自動、自動的處理。

蒼時弦也蒼時弦也

Rails 部署實踐 - 健康檢查

在過去傳統的部署方式中,我們大多是單機的方式部署,因此網站如果發生障礙連不上,那麼就可以視為無法使用。

然而當我們有多個網站節點的時候,大多會使用負載平衡(Load Balancer)來將流量分散到不同的節點上,這個時候哪一個節點可以接受流量,就會仰賴健康檢查(Health Check)來回報狀態。

蒼時弦也蒼時弦也

Rails 部署實踐 - 使用 HTTPS 協定加密連線

當我們透過 Docker Compose 在伺服器上將 Rails 運行起來後,基本上已經符合了部署的條件,也就是我們已經完成了一個可以提供服務的環境。

然而,在現代的網站部署中,使用 SSL 將使用者的連線加密已經是必備的條件,有 Let’s Encrypt 提供的免費憑證也能讓我們快速的搭建安全的網站服務。

蒼時弦也蒼時弦也

Rails 部署實踐 - 部署前置準備

我們在以容器部署 Rails 的方案介紹了以容器化的方式部署 Rails 專案的方案,然而在部署之前我們還有不少前置準備需要處理。

如果你已經有部署過網站,很可能已經有大部分需要的條件,那麼可以考慮跳過這篇文章。如果是第一次準備部署,那麼可以先來看看這些需要預先準備的東西有哪些。

蒼時弦也蒼時弦也

Rails 部署實踐 - 以容器部署 Rails 的方案

過去幾年,使用容器技術(Container)來部署 Ruby on Rails 專案已經變成我個人最喜歡的方式之一。除了生態系完整之外,也有著容易安裝、部署環境,並且可以很好的維持部署環境乾淨的優點存在。

基於這樣的理由,在 Rails 部署實踐這一系列,我們會由 Rails 的容器部署方案最為起點開始討論可以使用的部署方案。