將專案從heroku轉到render過程思路

前言

大家好,我是微笑

繼上次發文過了九個月了

很可怕啊,感覺自己好混,哈哈哈

疫情期間,遇到了不少事情,最近才終於有一點調整回正軌的感覺

剛好 Heroku 發生了一些問題,需要搬移程序到其他託管平台,這邊順便 水一點文章



關於發生在 Heroku 上的一些問題

Heroku 在10月初時,寄送給了開發者一封信

裡面提到,Heroku 將於2022年11月28號以後,全面關閉免費方案的主機

如果繼續使用 Heroku 的話,根據目前定價方案,一台託管主機需要負擔一個月 7 美元的成本

對於單純在學習的學生,又或是我這種程序用愛發電沒有利益的行為,顯然是十足的噩耗

也因此,原本在 Heroku 上使用免費方案的使用者,開始到處尋找可以繼續使用的平台。

heroku將於2022年11月28號以後,全面關閉免費方案的主機



多樣化的選擇

因應 Heroku 收費化的開始,有許多平台陸續浮現到開發者的眼前,其中甚至有網站的標題是「Migrate from Heroku to Railway」

可以看到,除了 Heroku 以外仍有許多平台等待著開發者發掘(Fly.io/Railway.app/GoogleCloudPlatform - CloudRun等..)

雖然根據專案不同,沒有所謂最好的選擇,不過筆者在多次嘗試後,最後決定將程式搬遷到 Render 上



render.com

render.com


當初搬遷主機時,最看中的點就是希望能盡量不用改動原本的架構,免費額度足夠

Render 目前有著每月 750 小時的免費額度,只開一台機器的話等同免費

並且他支援從 GitHub / GitLab 等開源平台專案部署的方式,功能單一讓流程簡化

除了支援許多語言直接部署,也支援 Docker 映像檔部署,這幾乎是現在主流平台都有的功能了。

那因為筆者的專案使用 Node.js,剛好在 Render 支援的語言列表內,所以設定好之後,將專案推到 Github,他就會自動做部署行為了



部署流程


第一次部署肯定會比較麻煩的

首先我們要先用 Github 帳號登入 Render 註冊帳號,進來後他會先告訴你,免費方案如以下

免費方案


Render 提供許多方案,這邊我們要找到 web services 才能使用免費主機


Overview


之後取得 Github 授權 repository,就可以載入專案,選擇主機地區,語言等設置

比較需要注意的是,因為 Render 的 web 每個半小時無人訪問,會進入休眠(記得 Heroku 也有這類設定)

需要再次訪問網站才能讓他喚醒

以 Node 來說,我們可以使用 request 跟 node-schedule ,呼叫自己防止進入睡眠的方式,來讓真正需要的程序能不間斷運行



env


以前在 Heroku ,如果不透過 Github 自動部署,而是用 Heroku Git 的話,是可以直接將較為私密的 key 等資料,直接明碼上傳上去的

雖然不是很好的做法,但是對於私人專案來說,這的確是個很方便的做法,只上傳在 Heroku 也有效的保障了程序的安全性

但是 Render 只接受 Github 鏡像部署,私密的 key 是無論如何都不會放在 Github 上的

Render 在 env 的設定上也是十分方便,官方流程可參考這篇文檔

env


單一的 key 要放在 Environment Variables

如果原本就習慣使用 .env 管理所有參數的話,可以將檔案的內容複製進 Secret Files

Render 在 env 有個好處是,一般平台設置 env 後,基於安全性,平台都不會讓使用者在前台存取 env 的真實資料

但是 Render 可以,而且還可以直接修改內容,雖然必須犧牲一些安全性,但這樣也方便了開發者對值的管理,對筆者來說是利大於弊



結語


筆者當初使用 Heroku,是因為接觸了 discord bot,為此還寫了鐵人賽

說長不長說短不短的兩年,Heroku 宣告收費化,對於筆者這樣的使用者來說,就像是一個平台的關閉一般

這兩年從後端摸到前端,再從前端學回後端,因為疫情也遇到了不少事情,原本覺得搬遷主機,對於筆者這點能力來說一定是一件艱鉅的工程

不過在搬遷的過程中,重新拾起 Node,摸索對筆者最好的平台時,感受到許多愉快,有一種 原來我還是能快樂寫 code 阿,的感想

我想 sideProject 就像是開發者們心靈的綠洲吧,能因為這次機會,重新澆灌他,我也收穫頗豐。

文末附上去年內部員工自己寫的推薦文

將專案從heroku轉到render過程思路

https://smilin.net/2022/10/25/herokuToRender/

作者

Smilin

發佈於

2022-10-25

更新於

2023-09-05

許可協議

評論