iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Modern Web

Let's Go! 解剖Go server開發到部署的過程 系列

用30天仔細地走過一遍開發到部署的工作環節, 模擬收到專案之後是如何一步步走向部署到環境的過程, 包含需求分析, 工具選用等

鐵人鍊成 | 共 30 篇文章 | 21 人訂閱 訂閱系列文 RSS系列文 團隊神龍特攻隊 - it 宏的逆襲
DAY 11

day 11 - log服務想說的話

log是什麼?為什麼要寫log? 寫了有什麼幫助? 寫log就像是在幫服務表達它的各種心情, 一個request從api接口進來之後走過的每個路徑,遇到的每個關...

2021-09-19 ‧ 由 Evelyn_Chen 分享
DAY 12

day 12 - API組裝實作

零件都準備好就可以組裝起來了!前幾天分別完成了redis, error, log的封裝, 接下來就是依照API的input/output分別組合出各個API的內...

2021-09-20 ‧ 由 Evelyn_Chen 分享
DAY 13

day 13 - go mod & vendor 簡介

完成API實作之後就要開始build bin檔了。 Go開發的過程中,會使用到很多套件, 在Go v1.11.0之後, 官方推出 go mod 來管理這些相依套...

2021-09-21 ‧ 由 Evelyn_Chen 分享
DAY 14

day 14 - drone 的go-test & golangci-lint

自己的產出自己負責!每次交付專案之前我都會想到這句話, 是不是該再檢查一下 程式碼已經成功的build完之後, 為了確保程式碼有經過基本的檢查, 可以導入gol...

2021-09-22 ‧ 由 Evelyn_Chen 分享
DAY 15

day 15 - 從執行時間開始優化

經過了前面幾天的步驟, 已經算是走過一遍本機開發到交付的流程了,接下來再依照團隊推上k8s的流程新增好對應的deployment.yaml,服務架上共用環境之後...

2021-09-23 ‧ 由 Evelyn_Chen 分享
DAY 16

day 16 - 開啟git worktree 進行redis lua-script 測試比較

今天要來換個redis寫法, 看看能不能縮短執行時間。 首先我會用git worktree再開一個專案資料夾, 新資料夾就留在調整前, 稱為v1版, 再修改版本...

2021-09-24 ‧ 由 Evelyn_Chen 分享
DAY 17

day 17 - 利用 interface 來mock外部回應

到目前為止所跑的測試都是利用 docker 在本機run scylla & redis 測試的,今天利用Go interface 來把model的程式改...

2021-09-25 ‧ 由 Evelyn_Chen 分享
DAY 18

day 18 - graceful shutdown 優雅地退場

服務上線之後, 另一個考驗才剛開始。 當流量開始進出服務之後, 如果要進行更版, 服務就需要重啟或中斷, 其中就有機率存在流程跑到一半的request。如果是一...

2021-09-26 ‧ 由 Evelyn_Chen 分享
DAY 19

day 19 - health check 讓k8s幫忙關懷服務

服務上k8s之後, 除了介接的系統會來打API之外, 在API沒有被觸發的期間如果服務發生問題, 很難被事先發現。 以我們現行的專案來說, k8s上面起的服務有...

2021-09-27 ‧ 由 Evelyn_Chen 分享
DAY 20

day 20 - 新增需求:隨時通知目前統計狀況 nsq / websocket 介紹

假設收到一個回饋, 希望能即時把目前的點數狀況反應在操作畫面上, 讓調度員可以隨時掌握點數的狀況來做調度跟分配。 在跳坑Go以前開發的API多是由介接端主動往S...

2021-09-28 ‧ 由 Evelyn_Chen 分享