App 上線至 Engine Yard

Created by Mary Jenn, @mfjenn

Translation by JuanitoFatas, @JuanitoFatas

確認資料庫使用的是 PostgreSQL。

Engine Yard 使用不同於 Rails 預設的資料庫。要讓資料庫在 Engine Yard 跑起來,請修改 Gemfile 的內容:

gem 'sqlite3'

改為

group :development do
	gem 'sqlite3'
end

group :production do
	gem 'pg'
end

執行 bundle install --without production 來安裝所需要的 RubyGems。

版本管理系統

妳需要把妳的 App 加到 Git 程式碼倉庫(repository)。在終端機裡輸入下面的命令:

`git init`
`git add .`
`git commit -m "initial commit"`

教練: 講解版本管理系統以及 Git 的好時機。

確認 GitHub 上有個 Rails 的應用

妳需要有個 GitHub 帳號,以及一個 Repository,讓 Engine Yard 可以去該 Repository 抓妳的 App。按照 GitHub 官方的步驟來建立一個 Repository 並將 App 傳上去。如果妳沒有可以跑起來的 Rails App,可以 fork Engine Yard 提供的範例 TODO app。需要幫忙的話,教練可以帶妳玩一遍這個流程。

註冊 Engine Yard 免費測試帳號

到 Engine Yard 的官網點擊 “GET STARTED FREE” 的按鈕來註冊 500 小時免費試用帳號。註冊會寄一封驗證信,檢查妳的 E-mail,按下驗證連結並登入妳的帳號。點選 “Your available applications” 下的連結(”Engine Yard Cloud”),這會帶妳到主控台。

建立 Engine Yard 雲帳戶

  1. 為妳的帳號選個名字。建議選個與妳相關的帳號名稱。選擇開發者或機構(如果妳會有協作者的話)。按下 “Start Trial” 按鈕。

  2. 看看下拉式選單有什麼功能,但現在用預設值就好。因為這是個基本的 Rails App 而已。

  3. 在標有 “Git Repository URI” 的框框,貼上妳的 GitHub Repository 的 URI。格式應該會像是這樣(”git@github.com:mfjenn/blogotron.git”)

準備妳的部署金鑰

妳現在應該會在一個頁面寫 “Allow Engine Yard access to private repository”。

  1. 複製框裡的那段文字並前往 GitHub settings 頁面

  2. 到 SSH Keys 頁面。

  3. 點 “add SSH key” 的按鈕。

  4. 貼上妳從 Engine Yard 頁面複製的一段文字,存檔。

  5. 回到 Engine Yard 頁面,並按下 “My deploy key is in place” 的按鈕。

教練: 講解私有與公有 repo 的差別,什麼時候要用私有?什麼時候要用公有。

建立與設定環境

一旦妳按了 “My deploy key is in place” 按鈕,會跳到一個頁面,上面寫 “Create New Environment for (Your Account Name) App”。看看下拉式選單有什麼功能,但現在用預設值就好。妳不用設定域名沒關係。

環境設定

在這頁,我們來選擇 staging 的設定。

教練: 講解 Staging 與 Production 的差別,為什麼有兩個重複的環境很重要?講解 master & slave 是什麼。Engine Yard Failover 的工作原理?為什麼 Failover 很重要?

部署妳的應用

  1. 當所有的燈變綠燈的時候,按 “Deploy”。

  2. 一旦妳看到這段話 “YOUR NAME successfully deployed HEAD”,恭喜妳,部署成功!

  3. 按 “View your application” 來訪問正上線中的 App。

  4. 如果妳看到紅色的提示說部署失敗,我們需要來研究看看。舉手找個教練來幫忙。

停止執行中的 App 來節省時間

一旦妳把 App 跑起來以後,記得按 “stop” 按鈕來節省寶貴的 500 小時免費試用時間,當然妳可以再次啟動 App。

其它資源