具備 6-7 年的後端與 devops 工作經驗,目前在團隊內主要常用語言為 Golang 與 shell script ,在過往的經歷中導入 Docker, Kubernetes, CI/CD, Grafana 等監控工具,減少管理服務成本,使工程師們可以更專注於開發與專求技術,免於過頻繁的處理 server 問題。
我擅長與其他團隊溝通,因為在過往的經驗中長時間的與不同單位合作與協商,例如: 客服團隊、MIS團隊、PM或者其他 RD 團隊,並且有 devops 和後端開發的經驗。 我會主動尋找一些工具來幫助我節省更多的工作時間與優化專案底層,讓我有更多的時間可以專心追求技術的樂趣。
五月 2023 - Present
主要產品:體育投注聊天室、賽事預測文章、主播直播 API 串接
使用技術:
技術亮點:
貢獻:
五月 2022 - 三月 2023
主要職責:
擔任後端組長,帶領4人 Golang 團隊,負責需求開發及進度追蹤。
跨部門溝通與合作,對需求功能進行對焦。
需求開發:
架構優化:
在回應中引入日誌追蹤 ID,使得在5分鐘內可迅速找到對應日誌,提升問題處理速度。
為各資料庫(MySQL、Redis、MongoDB)實施連接池,減少伺服器與資料庫之間的 TCP 連接資源消耗。
使用 Redis 的 RPUSH
和 BRPOP
實現隊列功能。
開發並導入 CronJob 框架以進行排程任務。
引入 pprof 以監控 CPU、記憶體和 goroutine 的資源消耗。
建立線上 Dockerfile 以簡化部署流程。
通過增加緩存、減少不必要的 GORM 預加載、提升用戶數據收集,並利用 channel、goroutine 和 waitgroup 進行高併發處理的代碼優化。
加強 Redis 緩存以防止緩存雪崩,透過分散緩存紀錄時間和定期更新緩存過期時間進行處理。
開發 GitLab CI 自動化部署工具,提升上版流程的效率。
九月 2018 - 五月 2022
《導入 Golang與微服務架構》
建置能穩定獨立運行且具高網路傳輸性能的服務,藉以減少故障停擺風險,降低服務之間的依賴性。
1. 架構規劃與汰換:初期除了需維運 PHP 現有服務外,同時進行Golang 底層架構的規劃與設計、新專案開發,並將PHP 專案全數重構為Golang。
2. 導入微服務架構:設計分佈式服務,按造業務拆分各項服務,引用 grpc 做微服務之間的溝通橋樑,建置—遊戲中心、會員中心、管理者中心、圖片中心等專案,提高系統乘載量以及服務穩定度,降低服務間彼此依賴。
《導入Docker 與 kubernetes》
運用 docker 與 kubernetes ,大幅降低維運成本,如減少虛擬機的管理工作、開發人員管理 server 的時間與成本等,讓開發人員能專注於程式與邏輯撰寫。
1. 初期—Docker導入:為了便利建立與管理服務,開始規劃導入 Docker,以手動於機器上建置 Container,大幅縮減建置服務所需耗時。
2. 中期—K8S導入:隨著 Container 服務越來越多,維運成本也隨之浮現,有幸遇上公司大力推廣導入 K8S ,逐漸將 Container 轉向 K8S 上做管理。
3. 後期—Helm導入:考量到降低各環境的建置成本,導入 Helm 管理 K8S,透過一套 template 部署於各環境。
4. 優化:透過 grafana、prometheus、elasticsearch、datadog 等 log 監控server 效能運作,使開發人員能快速並清楚了解自身產品的效能運行程度與問題追蹤
《導入CICD》
考量 Jenkins 學習成本較高,多方參考後選擇使用Golang的Drone。
1. 大幅縮減部署時間與建置專案規則的繁雜度
2. 結合 telegram 推播通知結果,即時監控程式上版狀況
七月 2016 - 七月 2018
1. 伺服器管理
『伺服器架構、虛擬機連線配置、機器對外、開放防火牆、DNS解析設定、F5負載平衡、套件安裝...』等細節設定,皆需要與專案人員及MIS人員討論,至虛擬機器建制完成後的Apache或Nginx配置、檢查機器。ex:機器規格、機器數據監控、套件版本檢查、連線測試、DNS解析或憑證、logroate等設定。
2. 專案開發 & Bug issue tracking
具備Restful API的設計經驗,在專案開發過程中導入「敏捷式開發」,了解MVC概念運作方式,專案開發上使用Git協同專案作業,也曾用過PHP的Laravel框架自行練習PHP語言、究過Google開發的Go Lang,但實際在專案上開發時,是使用Node JS與Express框架進行開發。
因工作職務主要是負責維運偵錯,也曾經協助專案人員排除Memcache、Redis連線、資料存取、Port連線異常,故也略懂該項技術的運作方式;另外也時常會接到同事間反應與機器有相關的問題,ex: Apache 或 Nginx異常(服務異常停止、設定檔吃錯Position、新增設定檔設定)、Domain連線時好時壞、機器空間異常增量...經歷過這些經驗後,當再次接到問題時,更能掌握問題點,並縮小問題查找範圍,大幅降低問題處理時間。
2011 - 2015