網站實際上線了之後,就要開始討論線上實際會遇到的問題了。
雖然我們都不希望專案出現線上問題,但是實際上因為使用者的狀態,以及線上環境與開發環境的不同,線上問題是不可避免的。
所以我們除了要減少線上環境出現問題,還要有一個機制,在實際出現線上問題的時候,能夠減少對用戶的影響,並快速的解決問題。
下面我們來聊聊怎麼達成這些事情
首先,我們要盡可能地減少線上問題。
前面的開發裡面,我們做了開發本地的檢查,以及部署到線上的流程。
在實際的專案開發裡面,特別是一個專案有多個人同時進行開發的時候,通常會再多兩個系統
要做到這件事,Laravel Cloud 提供了部署多個環境的功能,可以在我們推到特定 git branch 的時候,部署該分支的內容。
我們來看看怎麼利用 git 和 Laravel Cloud 來達成這件事情。
首先,我們先建立 develop
和 release
兩個分支,並推上 GitHub Repo
git checkout -b develop
git push --set-upstream origin develop
git checkout -b release
git push --set-upstream origin release
推到雲端上面後,我們就可以在 Laravel Cloud 裡面部署了!
我們在「Environment」標籤頁裡面,選擇「Add Environment」
點選之後,選擇我們要的 develop
和 release
分支
之後就會看到建立環境的畫面,我們可以根據不同環境選擇對應的資料庫
藉由開發時遵守一定的版控規範,針對不同的階段將程式碼推送到不同的分支,加上不同階段的環境佈置,我們可以盡量減少問題出現在正式環境上的機會。
如果經過測試之後,還是遇到線上問題,有時候必須線上緊急維修。
我們在維修中時,可以透過維護中頁面,讓使用者知道網站目前處於有問題的狀態
在 laravel 12 裡面,我們可以很簡單的透過指令,讓專案進入維護頁面
我們只需要輸入指令 down
php artisan down
專案就會進入維護模式,當有人進入網頁時,會看到 503 頁面
如果我們希望讓部分的人可以進去看狀況,我們可以加上 --with-secret
php artisan down --with-secret
這樣一來,Laravel 會幫你生成一串 token,如果網址帶有這段 token 就允許進入
INFO Application is now in maintenance mode.
INFO You may bypass maintenance mode via [https://..../mhgnHDt5hTmS7try].
今天的部分就先到這邊,我們明天見!