GCP-Rails與GCE、GAE、GKE

張凱喬
8 min readMay 13, 2018

--

介紹GCP到GCE到Ubuntu....的文章並不多
我先彙整資料並大致上整理一下架構

Google Cloud Platform
也就是Google雲端平台,簡稱GCP

提供架站的雲端服務,與VPS不同
雲端平台提供給你的服務是由一大群硬體串接起來

所以不用擔心擴充、運算問題(只要有錢的話XD)

GCP提供了300美金的試用金,所以雖然雲端服務會比VPS還貴
但是練習的時候可以善用GCP的試用金,體驗一下雲端服務的好處

GCP是google 雲端服務的統稱,但是下面有很多內容

假設今天我們用rails在本機端寫好了一個專案
需要部署的時候,有幾個選項

  1. 去買一台真的伺服器,申請真實IP與網路流量、在上面安裝linux、建置語言環境等等。
  2. 上網在遠端租一台主機、或使用VPS、Cloud Computing等方式,遠端建立VM(虛擬主機)的概念,然後再建置語言環境。
  3. 直接找像是Heroku這種,已經幫你省去建置環境的步驟,你只要把專案準備好,推上去就work。

像是2跟3這種遠端的服務,GCP都能包辦
這邊要談一下 GAE GCE GKE及對應的SAAS、PAAS、IAAS概念

參考來源

Google Compute Engine

GCE屬於IAAS(Infrastructure as a Service),也就是營運商提供給你運算力,讓你去處理自己的VM(虛擬機器)。

對應到其他廠商的服務,像是 AWS Elastic Compute及Microsoft Azure都是屬於這類型的模式

這種的好處是彈性很大,譬如你可以處理自己的load-balancing設定、客製自己所需要的CPU、RAM條件。但這個優點也是雙面刃,彈性很大就代表使用者需要處理很多問題,對於新手來說,誰知道我的服務到底需要哪種CPU。

Google App Engine

GAE屬於PAAS(Platform as a Serivce),代表營運商把你建好了環境(平台),你所需要做的事情,就是做好你的專案然後推上來。

對應到其他廠商的服務,像是Heroku、AWS Elastic Beanstalk。

好處就是省麻煩(對應到GCE),缺點就是比較貴。

簡單來說,GAE就是“Bring your code, we’ll handle the rest”

Google Kubernetes Engine

GKE、開源K8S技術、過去稱為Google Container Engine

簡單來說就是把所有東西都整合在一起,可以整合不同的虛擬環境、整合多個應用程式、網站

目的是共享資源(由主端點控管資源、提升效率),而且另外一個好處是溝通順暢(可以理解成多個應用程式在區域網路內溝通)

下一步 我們稍微介紹一下GAE與GCE部屬RoR的過程

上面這個連結是GCP部屬rails的說明網頁
database建議採PG或Mysql
基本上教學都滿仔細的,應該不會有甚麼大問題

先講GCE

在官方的教學中,會用Cloud Storage bucket+ GCP repository+GCP SDK
來完成部屬的過程

因為已經手把手了,就直接照著做就可以~

另外一個方式不依賴GCP的服務
直接建一個Ubuntu,透過cosole來處理環境的問題

選Ubuntu是因為Alphacamp用Ubuntu作教學拉哈哈~

https://read01.com/zh-tw/J06nO7.html#.WvgqmYiFOUk

下面提供申請帳號的參考(從申請帳號到選Ubuntu)
(裡面也教你透過或不透過SDK來控制自己的Ubuntu遠端)

建好了Ubuntu之後,再來的步驟
當然就是安裝Ruby、MySQL(或PG)、NGINX&Passenger

最後再使用Capistrano自動化部屬

其實用GCP+Ubuntu算是滿友善的環境
因為大多人使用Linux coding都是選Ubuntu
(只是對於新手滿硬的QQ 像我都是先用OSX寫 但是碰到VM就很頭痛)

這篇先降~

--

--

No responses yet