SlideShare a Scribd company logo
Bo-Yi Wu
2017.04.27
 聯發科技後端工程師
 DevOps
 Golang, PHP, Node.js ..
 維護數個 Go 開源專案
 Gitea
 Gin
 Drone Plugin
 appleboy @GitHub
 appleboy @twitter
 appleboy @slideshare
 appleboy46 @facebook
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
5
Develop
Git Push
Git Tag
Develop
Git Push
Git Tag
Testing
Deploy
Deploy
Deploy
Production
Staging
Production
Testing
Deploy
Staging
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
Jenkins Drone Gitlab CI
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
 支援 Command Line Flag 參數功能
 支援 Bot API WebHook 功能
 支援 Https for WebHook Tunnel
 支援自動更新 https 憑證功能 (Let’s Encrypt)
 支援監控 WebHook 服務功能
 支援多種訊息格式 (圖片, 影片, 表情符號 … 等)
 支援跨平台編譯執行檔
 支援透過 Docker 發送訊息
 支援高並發 (處理大量發送訊息)
 支援 Command Line Flag 參數功能
 支援 Bot API WebHook 功能
 支援 Https for WebHook Tunnel
 支援自動更新 https 憑證功能 (Let’s Encrypt)
 支援監控 WebHook 服務功能
 支援多種訊息格式 (圖片, 影片, 表情符號 … 等)
 支援跨平台編譯執行檔
 支援透過 Docker 發送訊息
 支援高並發 (處理大量發送訊息)
import “flag”
https://golang.org/pkg/flag/
不支援系統環境變數
 支援 Command Line Flag 參數功能
 支援 Bot API WebHook 功能
 支援 Https for WebHook Tunnel
 支援自動更新 https 憑證功能 (Let’s Encrypt)
 支援監控 WebHook 服務功能
 支援多種訊息格式 (圖片, 影片, 表情符號 … 等)
 支援跨平台編譯執行檔
 支援透過 Docker 發送訊息
 支援高並發 (處理大量發送訊息)
http.NewServeMux()
 支援 Command Line Flag 參數功能
 支援 Bot API WebHook 功能
 支援 Https for WebHook Tunnel
 支援自動更新 https 憑證功能 (Let’s Encrypt)
 支援監控 WebHook 服務功能
 支援多種訊息格式 (圖片, 影片, 表情符號 … 等)
 支援跨平台編譯執行檔
 支援透過 Docker 發送訊息
 支援高並發 (處理大量發送訊息)
firewall
https://ngrok.com/
drone-line –s secret –t token ––tunnel –port 2002 webhook
https://localtunnel.github.io/www/
 支援 Command Line Flag 參數功能
 支援 Bot API WebHook 功能
 支援 Https for WebHook Tunnel
 支援自動更新 https 憑證功能 (Let’s Encrypt)
 支援監控 WebHook 服務功能
 支援多種訊息格式 (圖片, 影片, 表情符號 … 等)
 支援跨平台編譯執行檔
 支援透過 Docker 發送訊息
 支援高並發 (處理大量發送訊息)
不用擔心憑證過期
用 Go 語言打造 DevOps Bot
http.Serve(autocert.NewListener("example.com"), handler)
http://bit.ly/one-line-autotls
drone-line –s secret –t token ––autotls –host foo.bar webhook
 支援 Command Line Flag 參數功能
 支援 Bot API WebHook 功能
 支援 Https for WebHook Tunnel
 支援自動更新 https 憑證功能 (Let’s Encrypt)
 支援監控 WebHook 服務功能
 支援多種訊息格式 (圖片, 影片, 表情符號 … 等)
 支援跨平台編譯執行檔
 支援透過 Docker 發送訊息
 支援高並發 (處理大量發送訊息)
Memory 使用量 …
自訂監控數據, 分析使用者訊息
https://prometheus.io/
https://grafana.com/
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
 支援 Command Line Flag 參數功能
 支援 Bot API WebHook 功能
 支援 Https for WebHook Tunnel
 支援自動更新 https 憑證功能 (Let’s Encrypt)
 支援監控 WebHook 服務功能
 支援多種訊息格式 (圖片, 影片, 表情符號 … 等)
 支援跨平台編譯執行檔
 支援透過 Docker 發送訊息
 支援高並發 (處理大量發送訊息)
drone-line –s secret –t token –to xxxx –message “Hi”
drone-line –s secret –t token –to xxxx –image “xxxxx”
drone-line –s secret –t token –to xxxx –video “xxxxx”
drone-line –s secret –t token –to xxxx –audio “xxxxx”
 支援 Command Line Flag 參數功能
 支援 Bot API WebHook 功能
 支援 Https for WebHook Tunnel
 支援自動更新 https 憑證功能 (Let’s Encrypt)
 支援監控 WebHook 服務功能
 支援多種訊息格式 (圖片, 影片, 表情符號 … 等)
 支援跨平台編譯執行檔
 支援透過 Docker 發送訊息
 支援高並發 (處理大量發送訊息)
write once run anywhere
https://github.com/mitchellh/gox
用 Go 語言打造 DevOps Bot
真心不騙
用 Go 語言打造 DevOps Bot
http://www.banana-pi.org/m64.html
 支援 Command Line Flag 參數功能
 支援 Bot API WebHook 功能
 支援 Https for WebHook Tunnel
 支援自動更新 https 憑證功能 (Let’s Encrypt)
 支援監控 WebHook 服務功能
 支援多種訊息格式 (圖片, 影片, 表情符號 … 等)
 支援跨平台編譯執行檔
 支援透過 Docker 發送訊息
 支援高並發 (處理大量發送訊息)
Jenkins Drone Gitlab CI
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
用 Go 語言打造 DevOps Bot
https://github.com/urfave/cli
用 Go 語言打造 DevOps Bot
Drone
用 Go 語言打造 DevOps Bot
發送給原 commit 作者
避免團隊成員收到太多無意義訊息
用 Go 語言打造 DevOps Bot
 支援 Command Line Flag 參數功能
 支援 Bot API WebHook 功能
 支援 Https for WebHook Tunnel
 支援自動更新 https 憑證功能 (Let’s Encrypt)
 支援監控 WebHook 服務功能
 支援多種訊息格式 (圖片, 影片, 表情符號 … 等)
 支援跨平台編譯執行檔
 支援透過 Docker 發送訊息
 支援高並發 (處理大量發送訊息)
go f(“goroutine”)
專案: https://github.com/appleboy/drone-line
下載: https://github.com/appleboy/drone-line/releases
Docker: https://hub.docker.com/r/appleboy/drone-line
專案: https://github.com/appleboy/drone-facebook
下載: https://github.com/appleboy/drone-facebook/releases
Docker: https://hub.docker.com/r/appleboy/drone-facebook
結合手機 App 服務
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
Gorush Server
A push notification server written in Go
https://github.com/appleboy/gorush
(drone-line or drone-facebook) + Gorush
Why not Node.js, Python, PHP?
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
類似 C 語法
http://bit.ly/oneday-golang
http://bit.ly/oneday-devops
謝謝大家參與

More Related Content

What's hot (20)

Git 入门实战
Git 入门实战Git 入门实战
Git 入门实战
icy leaf
 
Git flow 與團隊合作
Git flow 與團隊合作Git flow 與團隊合作
Git flow 與團隊合作
Bo-Yi Wu
 
Bootstrap個人網站 20141117
Bootstrap個人網站 20141117Bootstrap個人網站 20141117
Bootstrap個人網站 20141117
均民 戴
 
Git and Github basic with SourceTree
Git and Github basic with SourceTreeGit and Github basic with SourceTree
Git and Github basic with SourceTree
Chu-Siang Lai
 
工程師必備第一工具 - Git
工程師必備第一工具 - Git工程師必備第一工具 - Git
工程師必備第一工具 - Git
Alan Tsai
 
Git與source tree 基礎教學
Git與source tree 基礎教學Git與source tree 基礎教學
Git與source tree 基礎教學
Duncan Chen
 
Git 入門與實作
Git 入門與實作Git 入門與實作
Git 入門與實作
奕浦 郭
 
微软Bot framework简介
微软Bot framework简介微软Bot framework简介
微软Bot framework简介
Zhichao Liang
 
連哈秋都懂的Git教學
連哈秋都懂的Git教學連哈秋都懂的Git教學
連哈秋都懂的Git教學
hydai
 
Xcode 的 git 版本管理
Xcode 的 git 版本管理Xcode 的 git 版本管理
Xcode 的 git 版本管理
彼得潘 Pan
 
Git 版本控制 (使用教學)
Git 版本控制 (使用教學)Git 版本控制 (使用教學)
Git 版本控制 (使用教學)
Jui An Huang (黃瑞安)
 
My DevOps Tour 0.1
My DevOps Tour 0.1My DevOps Tour 0.1
My DevOps Tour 0.1
Chu-Siang Lai
 
A successful git branching model 導讀
A successful git branching model 導讀A successful git branching model 導讀
A successful git branching model 導讀
Wen Liao
 
版本控制 使用Git & git hub
版本控制   使用Git & git hub版本控制   使用Git & git hub
版本控制 使用Git & git hub
維佋 唐
 
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Chu-Siang Lai
 
如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌
Mu Chun Wang
 
容器式軟體開發介紹
容器式軟體開發介紹容器式軟體開發介紹
容器式軟體開發介紹
Philip Zheng
 
Git基礎介紹
Git基礎介紹Git基礎介紹
Git基礎介紹
Max Ma
 
認識 Docker
認識 Docker認識 Docker
認識 Docker
協哲 蔡
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
littlebtc
 
Git 入门实战
Git 入门实战Git 入门实战
Git 入门实战
icy leaf
 
Git flow 與團隊合作
Git flow 與團隊合作Git flow 與團隊合作
Git flow 與團隊合作
Bo-Yi Wu
 
Bootstrap個人網站 20141117
Bootstrap個人網站 20141117Bootstrap個人網站 20141117
Bootstrap個人網站 20141117
均民 戴
 
Git and Github basic with SourceTree
Git and Github basic with SourceTreeGit and Github basic with SourceTree
Git and Github basic with SourceTree
Chu-Siang Lai
 
工程師必備第一工具 - Git
工程師必備第一工具 - Git工程師必備第一工具 - Git
工程師必備第一工具 - Git
Alan Tsai
 
Git與source tree 基礎教學
Git與source tree 基礎教學Git與source tree 基礎教學
Git與source tree 基礎教學
Duncan Chen
 
Git 入門與實作
Git 入門與實作Git 入門與實作
Git 入門與實作
奕浦 郭
 
微软Bot framework简介
微软Bot framework简介微软Bot framework简介
微软Bot framework简介
Zhichao Liang
 
連哈秋都懂的Git教學
連哈秋都懂的Git教學連哈秋都懂的Git教學
連哈秋都懂的Git教學
hydai
 
Xcode 的 git 版本管理
Xcode 的 git 版本管理Xcode 的 git 版本管理
Xcode 的 git 版本管理
彼得潘 Pan
 
A successful git branching model 導讀
A successful git branching model 導讀A successful git branching model 導讀
A successful git branching model 導讀
Wen Liao
 
版本控制 使用Git & git hub
版本控制   使用Git & git hub版本控制   使用Git & git hub
版本控制 使用Git & git hub
維佋 唐
 
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Chu-Siang Lai
 
如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌
Mu Chun Wang
 
容器式軟體開發介紹
容器式軟體開發介紹容器式軟體開發介紹
容器式軟體開發介紹
Philip Zheng
 
Git基礎介紹
Git基礎介紹Git基礎介紹
Git基礎介紹
Max Ma
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
littlebtc
 

Similar to 用 Go 語言打造 DevOps Bot (7)

LineBot
LineBotLineBot
LineBot
艾鍗科技
 
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
 Continuous Delivery Workshop with Ansible x GitLab CI (5th) Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Chu-Siang Lai
 
Git安裝
Git安裝Git安裝
Git安裝
Hong Da Lin
 
Bitbucket pipeline CI
Bitbucket pipeline CIBitbucket pipeline CI
Bitbucket pipeline CI
Zero Huang
 
Bluemix Node-Red Part I
Bluemix Node-Red Part IBluemix Node-Red Part I
Bluemix Node-Red Part I
Joseph Chang
 
Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)
Chu-Siang Lai
 
Continuous Delivery: automated testing, continuous integration and continuous...
Continuous Delivery: automated testing, continuous integration and continuous...Continuous Delivery: automated testing, continuous integration and continuous...
Continuous Delivery: automated testing, continuous integration and continuous...
Jimmy Lai
 
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
 Continuous Delivery Workshop with Ansible x GitLab CI (5th) Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Chu-Siang Lai
 
Bitbucket pipeline CI
Bitbucket pipeline CIBitbucket pipeline CI
Bitbucket pipeline CI
Zero Huang
 
Bluemix Node-Red Part I
Bluemix Node-Red Part IBluemix Node-Red Part I
Bluemix Node-Red Part I
Joseph Chang
 
Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)
Chu-Siang Lai
 
Continuous Delivery: automated testing, continuous integration and continuous...
Continuous Delivery: automated testing, continuous integration and continuous...Continuous Delivery: automated testing, continuous integration and continuous...
Continuous Delivery: automated testing, continuous integration and continuous...
Jimmy Lai
 

More from Bo-Yi Wu (20)

Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署
Bo-Yi Wu
 
用 Go 語言打造多台機器 Scale 架構
用 Go 語言打造多台機器 Scale 架構用 Go 語言打造多台機器 Scale 架構
用 Go 語言打造多台機器 Scale 架構
Bo-Yi Wu
 
Job Queue in Golang
Job Queue in GolangJob Queue in Golang
Job Queue in Golang
Bo-Yi Wu
 
Golang Project Layout and Practice
Golang Project Layout and PracticeGolang Project Layout and Practice
Golang Project Layout and Practice
Bo-Yi Wu
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
Bo-Yi Wu
 
Drone 1.0 Feature
Drone 1.0 FeatureDrone 1.0 Feature
Drone 1.0 Feature
Bo-Yi Wu
 
Drone CI/CD Platform
Drone CI/CD PlatformDrone CI/CD Platform
Drone CI/CD Platform
Bo-Yi Wu
 
GraphQL IN Golang
GraphQL IN GolangGraphQL IN Golang
GraphQL IN Golang
Bo-Yi Wu
 
drone continuous Integration
drone continuous Integrationdrone continuous Integration
drone continuous Integration
Bo-Yi Wu
 
Gorush: A push notification server written in Go
Gorush: A push notification server written in GoGorush: A push notification server written in Go
Gorush: A push notification server written in Go
Bo-Yi Wu
 
Introduction to Gitea with Drone
Introduction to Gitea with DroneIntroduction to Gitea with Drone
Introduction to Gitea with Drone
Bo-Yi Wu
 
用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務
Bo-Yi Wu
 
A painless self-hosted Git service: Gitea
A painless self-hosted Git service: GiteaA painless self-hosted Git service: Gitea
A painless self-hosted Git service: Gitea
Bo-Yi Wu
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golang
Bo-Yi Wu
 
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式
Bo-Yi Wu
 
PHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding stylePHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding style
Bo-Yi Wu
 
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
Bo-Yi Wu
 
Why to choose laravel framework
Why to choose laravel frameworkWhy to choose laravel framework
Why to choose laravel framework
Bo-Yi Wu
 
How to choose web framework
How to choose web frameworkHow to choose web framework
How to choose web framework
Bo-Yi Wu
 
Git Flow and JavaScript Coding Style
Git Flow and JavaScript Coding StyleGit Flow and JavaScript Coding Style
Git Flow and JavaScript Coding Style
Bo-Yi Wu
 
Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署
Bo-Yi Wu
 
用 Go 語言打造多台機器 Scale 架構
用 Go 語言打造多台機器 Scale 架構用 Go 語言打造多台機器 Scale 架構
用 Go 語言打造多台機器 Scale 架構
Bo-Yi Wu
 
Job Queue in Golang
Job Queue in GolangJob Queue in Golang
Job Queue in Golang
Bo-Yi Wu
 
Golang Project Layout and Practice
Golang Project Layout and PracticeGolang Project Layout and Practice
Golang Project Layout and Practice
Bo-Yi Wu
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
Bo-Yi Wu
 
Drone 1.0 Feature
Drone 1.0 FeatureDrone 1.0 Feature
Drone 1.0 Feature
Bo-Yi Wu
 
Drone CI/CD Platform
Drone CI/CD PlatformDrone CI/CD Platform
Drone CI/CD Platform
Bo-Yi Wu
 
GraphQL IN Golang
GraphQL IN GolangGraphQL IN Golang
GraphQL IN Golang
Bo-Yi Wu
 
drone continuous Integration
drone continuous Integrationdrone continuous Integration
drone continuous Integration
Bo-Yi Wu
 
Gorush: A push notification server written in Go
Gorush: A push notification server written in GoGorush: A push notification server written in Go
Gorush: A push notification server written in Go
Bo-Yi Wu
 
Introduction to Gitea with Drone
Introduction to Gitea with DroneIntroduction to Gitea with Drone
Introduction to Gitea with Drone
Bo-Yi Wu
 
用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務
Bo-Yi Wu
 
A painless self-hosted Git service: Gitea
A painless self-hosted Git service: GiteaA painless self-hosted Git service: Gitea
A painless self-hosted Git service: Gitea
Bo-Yi Wu
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golang
Bo-Yi Wu
 
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式
Bo-Yi Wu
 
PHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding stylePHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding style
Bo-Yi Wu
 
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
Bo-Yi Wu
 
Why to choose laravel framework
Why to choose laravel frameworkWhy to choose laravel framework
Why to choose laravel framework
Bo-Yi Wu
 
How to choose web framework
How to choose web frameworkHow to choose web framework
How to choose web framework
Bo-Yi Wu
 
Git Flow and JavaScript Coding Style
Git Flow and JavaScript Coding StyleGit Flow and JavaScript Coding Style
Git Flow and JavaScript Coding Style
Bo-Yi Wu
 

用 Go 語言打造 DevOps Bot

Editor's Notes

  • #7: 什麼時候該發通知訊息? 傳統都是透過 slack 或 email 發送訊息通知
  • #8: 每天收到幾百封 build success 或 fail 的 email 都懶得看了
  • #9: 每天收到幾百封 devops build success 或 fail 的 email 都懶得看了 大家應該都有經驗 被放到 maill loop 內 如果不甘自己的事情 根本就不會想花任何時間去看 何況是這種 CI/CD devops 的通知信
  • #10: 圖片來源: https://getez.info/hold/1162 當大家都不注重 deploy 成功或失敗的訊息時,devops 工程師就會很不高興
  • #11: 好險去年 fb 或 line 相繼公佈 API
  • #12: 大家不會裝 slack 也不會裝 email app 但是 fb 或 line 總會裝吧?
  • #13: 當消息丟來時,同事或主管會以為是朋友或家人丟過來,當然也可以 off 掉 notification 所以這也不是最終解,後面會講到該如何正確發送通知訊息給相關人員 PM Sales RD 主管
  • #14: 可以透過 jenkins 執行 command line 透過 Drone 執行 Docker image 簡單介紹 Drone 的由來
  • #15: 所以 chatbot 必須支援 docker 及 command line. 給不同單位需求使用 這也是目前開源專案的 best practice.
  • #16: 公司有 95% 是使用 Windows 電腦 + Linux 環境 5% 使用 Mac 環境上班 所以希望開發一次 各平台都可以支援使用 各部門也可以透過這軟體 在各 OS 中使用及開發
  • #17: 今天要教大家如何用 Go 語言打造 Bot, 如果不會寫程式 也想要主動丟訊息給其他人 也可以直接用 Go 的好處 包成 binary 的方式 測試及實驗
  • #21: https://commons.wikimedia.org/wiki/File:Emoji_u1f62d.svg
  • #23: 在 Go 裡面不需要任何 Framework 內建的 http library 就已經很夠用了 市面上 go framework 只幫忙處理了 routing 及 request 重寫
  • #24: 支援本地端開發
  • #26: 付費軟體,免費只能有一個 free host
  • #28: Ngrok 跟 localtunnel 是用來開發用的
  • #30: Nginx Caddy traefik
  • #34: Memory gc cpu 使用量等等 …
  • #35: 分析使用者訊息來分類 …. 今天發布多少 bug fix 上了多少次版本 失敗多少次 等
  • #36: 用 prometheus 做到上述功能 但是 prometheus 的報表顯示 不是很好看
  • #40: 前面會有多台 fb 或 line chat bot service 同接一台 grafana 監控系統 只要一有變化 就會通知
  • #42: 任何語言都可以執行此指令
  • #43: 圖片 影片 表情符號
  • #45: 要服務各式各樣的作業系統 所以選一種語言 寫一次 可以執行在任何地方。
  • #52: 除了 jenkins 之外 drone 或 gitlab ci 都可以透過 docker 來進行部署測試
  • #53: https://docs.docker.com/engine/userguide/eng-image/baseimages/ Creating a simple base image using scratch
  • #59: 為了避免不相關成員收到無意義的 notification 測試人員會收到 staging 上版通知 上面主管會收到 production 上版通知 開發者會收到自己測試失敗的通知 所有開發者會收到上版失敗通知
  • #73: 公司 90% 寫
  • #74: 公司 90% 寫 C 要轉來寫 go 輕而易舉 Go 效能 及 deploy 都大於其他語言 Php livereload node.js livereload 都吃不少開發機記憶體