如何在幾分鐘內容器化 Rails 專案
Ruby on Rails 至今為止一直都是快速開發網站的首選框架之一,雖然我們可以利用 Rails 快速的製作網站,然而在部署上依舊還是要 DevOps 透過手動的方式部署伺服器、更新才能夠進行測試或者發布。
那麼,我們是否有更好的方式來解決這樣的問題呢?
Ruby on Rails 至今為止一直都是快速開發網站的首選框架之一,雖然我們可以利用 Rails 快速的製作網站,然而在部署上依舊還是要 DevOps 透過手動的方式部署伺服器、更新才能夠進行測試或者發布。
那麼,我們是否有更好的方式來解決這樣的問題呢?
今年 COSCUP 的時候前同事 Cindy 分享了 Rails 容器化最佳實踐 這場演講,裡面提到我們在五倍紅寶石在將 Ruby on Rails 專案轉換為容器的一些技巧。
這系列文章會分享一下這個容器化的過程是怎麼判斷、處理以及在過程中需要注意哪些事情。
寫完上篇後就開始員工旅遊、鐵人賽(從讀遊戲原始碼學做連線遊戲)反而一直都沒有時間把下篇寫完,離 COSCUP 都已經過了一個多月自己都忘記還剩什麼沒有寫在文章裡面。
中間在鐵人賽的部分花了一些時間把目前理解到關於 Unlight 的一些基本設計整理出來,後面則是實作。至於近期也已經開始在搭建 HTML5 版本的底層設計,還有 mruby 的整合(因為想提供 Mod 功能到遊戲中)等等東西都在進行中,十一月還要飛日本一趟參加 Ruby World Conference,可以說是完全都閒不下來。
總之,讓我們在來看看 COSCUP 這場演講的後續吧 XD
在 COSCUP 分享了這兩週左右(8/3 ~ 8/17)把一款決定開放原始碼的網頁遊戲,從無法啟動到恢復伺服器開始運作的一些經驗跟大家分享。 不過看起來還是有很多人沒有機會來聽,雖然之後因為會把一部分重心放在這款遊戲上,所以應該還是有不少機會,但還是簡單的來彙整一下今天講的東西。
上一篇快速閱讀 Unlight 原始碼大致上有提到了我在當時看到原始碼的看法跟概觀。有興趣的話可以搭配演講簡報一起讀這篇文章。
另外,這次整個遊戲運作起來除了我自己本身對 Ruby / ActionScript 有一定的了解外,也要感謝一下我們這個團隊(Open Unlight)的初期成員 Poka 和舞鶴,給我硬體上的支援跟對其他玩家的客服支援,不然有時候真的很難同時處理這些事情。
前陣子看到 Throughbot 這間在 Ruby 圈 算是蠻有名的公司做了一個叫做 Suspenders 的 Gem 主要是對 Rails 擴充,簡單說就是基於原本的 rails new
做了一個替代品,而這個替代品會自動幫你先做好一些原本要手動做的事情。
像是安裝好常用的 Gem、套版之類的,想了一下覺得五倍其實也很需要,不少新專案也都是從我這邊經手初始化的,有一個這樣的工具會省下不少時間。
所以 Bankai (卍解) 這個 Gem 就樣做出來了,裡面基本上就是設置好在五倍大多數時候用的標配 Ex. GitLab CI 設定、RSpec 等等
但是又發現好像不太夠用,有些時候有 Docker 會方便很多,但是 Bankai 現在做不到!
最近 Heroku 推出了 Docker 支援,也因此我馬上就去試玩了這個功能。
這篇文章會簡單介紹 Heroku Docker 的運作,以及可以運用的方式。
文章大致上會涵蓋這些內容: