SlideShare a Scribd company logo
1 of 104
Bo-Yi Wu
2017.08.10
 聯發科技後端工程師
 DevOps
 Golang, PHP, Node.js ..
 維護數個 Go 開源專案
 Gitea
 Gin
 Drone
 appleboy @GitHub
 appleboy @twitter
 appleboy @slideshare
 appleboy46 @facebook
2
Microservices vs. Monolithic 差異
微服務核心架構 (Go 工具專案)
Go 語言核心高並發
為什麼選用 Go 語言
微服務代價跟準備
Microservices vs. Monolithic 差異
微服務核心架構 (Go 工具專案)
Go 語言核心高並發
為什麼選用 Go 語言
微服務代價跟準備
用一張圖解釋兩個差異
圖片出處: https://goo.gl/azg49a
傳統開發模式
瀏覽器
使用者介面 (UI)
產品功能 訂單功能 帳戶功能
集中管理
開發簡單
容易上手
除錯簡單
單一主機
圖片來源: https://goo.gl/J9GUD4
Happy Coding
需求變多
開發效率低
不易維護
不易開發
穩定性差
不易擴充
解決衝突
效能瓶頸
瀏覽器
使用者介面 (UI)
產品功能 訂單功能 帳戶功能
瀏覽器
使用者介面 (UI)
老闆心目中架構
需求
開發
測試
部署
上線
敏捷開發
Microservices vs. Monolithic 差異
微服務核心架構 (Go 工具專案)
Go 語言核心高並發
為什麼選用 Go 語言
微服務代價跟準備
拆分應用層,實現敏捷開發及部署
桌機
產品功能 訂單功能 帳戶功能
手機
 依照業務區分
 自動化部署
 高度容錯
 可快速置換
 可獨立開發
 容易擴充
用 Go 語言方案
桌機 手機
Load Balancer
API
Gateway
API
Gateway
API
Gateway
REST REST
RPC
REST REST
RPC
REST REST
RPC
Database Cache NoSQLFile
API
Gateway
REST REST
RPC
服務發現
系統監控
負載平衡
API
Gateway
程式溝通
服務發現 部署分配 消息佇列
日誌管理 服務監控 CI/CD
Caddy
seesaw
Caddy Server Config
traefikfabiotyk
RPC REST 其他
gin kit micro
kite echo goa
grpc thrift hprose
Proto file
etcd consul serf
k8s swarm
NSQ nats
appdash cloudinsight opentracing
beats elastic grafana
prometheusopen-falcon
ConcourseDrone
代碼 測試 發佈 上傳 通知
62
 測試程式碼
 分析程式碼
 程式碼品質
 編譯 Binary
 部署 Binary
 編譯 Docker Image
 部署 Docker Container
 通知訊息
63
驗證代碼品質
測試程式覆蓋率
編譯執行擋
上傳執行檔
編譯
打包
上傳到 Docker Hub
http://plugins.drone.io/mactynow/drone-kubernetes/
為什麼大家都選 Go
Microservices vs. Monolithic 差異
微服務核心架構 (Go 工具專案)
Go 語言核心高並發
為什麼選用 Go 語言
微服務代價跟準備
goroutine
沒輸出東西?
Go channel
對調
透過 Select 管理多個通道
正確輸出, 錯誤輸出, 指令超時
使用 sync 及 channel
等待指令完成
關閉通道
https://github.com/appleboy/drone-ssh
Microservices vs. Monolithic 差異
微服務核心架構 (Go 工具專案)
Go 語言核心高並發
為什麼選用 Go 語言
微服務代價跟準備
Go 語言核心開發者
https://goo.gl/jGcwXK
開發 運行
類 C
語法
編譯
快速
交叉
編譯
無依賴
部署
編譯
檢查
統一
工具
Microservices vs. Monolithic 差異
微服務核心架構 (Go 工具專案)
Go 語言核心高並發
為什麼選用 Go 語言
微服務代價跟準備
 系統複雜度提升
 系統資料一致性
 維運工作複雜化
快速建置 (Develop)
監控機制 (Monitor)
快速部署 (Deploy)
A push notification server
https://github.com/appleboy/gorush
謝謝大家參與

More Related Content

What's hot

FIWARE implementation of IDS concepts
FIWARE implementation of IDS conceptsFIWARE implementation of IDS concepts
FIWARE implementation of IDS conceptsfisuda
 
[db analytics showcase Sapporo 2018] B13 Cloud Spanner の裏側〜解析からベストプラクティスへ〜
[db analytics showcase Sapporo 2018] B13 Cloud Spanner の裏側〜解析からベストプラクティスへ〜[db analytics showcase Sapporo 2018] B13 Cloud Spanner の裏側〜解析からベストプラクティスへ〜
[db analytics showcase Sapporo 2018] B13 Cloud Spanner の裏側〜解析からベストプラクティスへ〜Insight Technology, Inc.
 
Actuation, Federation and Interoperability of Context Brokers
Actuation, Federation and Interoperability of Context BrokersActuation, Federation and Interoperability of Context Brokers
Actuation, Federation and Interoperability of Context BrokersFIWARE
 
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.2.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.2.0対応)NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.2.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.2.0対応)fisuda
 
Creating a Context-Aware solution, Complex Event Processing with FIWARE Perseo
Creating a Context-Aware solution, Complex Event Processing with FIWARE PerseoCreating a Context-Aware solution, Complex Event Processing with FIWARE Perseo
Creating a Context-Aware solution, Complex Event Processing with FIWARE PerseoFernando Lopez Aguilar
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門VirtualTech Japan Inc.
 
認証から見たリモート署名 ー利用認証と鍵認可ー
認証から見たリモート署名 ー利用認証と鍵認可ー認証から見たリモート署名 ー利用認証と鍵認可ー
認証から見たリモート署名 ー利用認証と鍵認可ーNaoto Miyachi
 
今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified IDNaohiro Fujie
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.7.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.7.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.7.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.7.0対応)fisuda
 
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話Masaki Yamamoto
 
FIWARE - スマートサービスを支えるオープンソース
FIWARE - スマートサービスを支えるオープンソースFIWARE - スマートサービスを支えるオープンソース
FIWARE - スマートサービスを支えるオープンソースfisuda
 
コンテナ時代のOpenStack
コンテナ時代のOpenStackコンテナ時代のOpenStack
コンテナ時代のOpenStackAkira Yoshiyama
 
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINX, Inc.
 
今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>
今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>
今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>Naoto Miyachi
 
Try new transport protocol SRT (ver. 2)
Try new transport protocol SRT  (ver. 2)Try new transport protocol SRT  (ver. 2)
Try new transport protocol SRT (ver. 2)Tetsuyuki Kobayashi
 
Microsoftの認証システムの歴史と 過渡期におけるWAPの活用 +Next Generation Credentials
Microsoftの認証システムの歴史と過渡期におけるWAPの活用+Next Generation CredentialsMicrosoftの認証システムの歴史と過渡期におけるWAPの活用+Next Generation Credentials
Microsoftの認証システムの歴史と 過渡期におけるWAPの活用 +Next Generation CredentialsNaohiro Fujie
 
Kubernetes Summit 2023: Head First Kubernetes
Kubernetes Summit 2023: Head First Kubernetes Kubernetes Summit 2023: Head First Kubernetes
Kubernetes Summit 2023: Head First Kubernetes smalltown
 
Change Data Streaming Patterns for Microservices With Debezium
Change Data Streaming Patterns for Microservices With Debezium Change Data Streaming Patterns for Microservices With Debezium
Change Data Streaming Patterns for Microservices With Debezium confluent
 

What's hot (20)

FIWARE implementation of IDS concepts
FIWARE implementation of IDS conceptsFIWARE implementation of IDS concepts
FIWARE implementation of IDS concepts
 
[db analytics showcase Sapporo 2018] B13 Cloud Spanner の裏側〜解析からベストプラクティスへ〜
[db analytics showcase Sapporo 2018] B13 Cloud Spanner の裏側〜解析からベストプラクティスへ〜[db analytics showcase Sapporo 2018] B13 Cloud Spanner の裏側〜解析からベストプラクティスへ〜
[db analytics showcase Sapporo 2018] B13 Cloud Spanner の裏側〜解析からベストプラクティスへ〜
 
Actuation, Federation and Interoperability of Context Brokers
Actuation, Federation and Interoperability of Context BrokersActuation, Federation and Interoperability of Context Brokers
Actuation, Federation and Interoperability of Context Brokers
 
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.2.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.2.0対応)NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.2.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.2.0対応)
 
Creating a Context-Aware solution, Complex Event Processing with FIWARE Perseo
Creating a Context-Aware solution, Complex Event Processing with FIWARE PerseoCreating a Context-Aware solution, Complex Event Processing with FIWARE Perseo
Creating a Context-Aware solution, Complex Event Processing with FIWARE Perseo
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 
認証から見たリモート署名 ー利用認証と鍵認可ー
認証から見たリモート署名 ー利用認証と鍵認可ー認証から見たリモート署名 ー利用認証と鍵認可ー
認証から見たリモート署名 ー利用認証と鍵認可ー
 
今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.7.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.7.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.7.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.7.0対応)
 
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話
 
FIWARE - スマートサービスを支えるオープンソース
FIWARE - スマートサービスを支えるオープンソースFIWARE - スマートサービスを支えるオープンソース
FIWARE - スマートサービスを支えるオープンソース
 
コンテナ時代のOpenStack
コンテナ時代のOpenStackコンテナ時代のOpenStack
コンテナ時代のOpenStack
 
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
 
今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>
今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>
今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>
 
Try new transport protocol SRT (ver. 2)
Try new transport protocol SRT  (ver. 2)Try new transport protocol SRT  (ver. 2)
Try new transport protocol SRT (ver. 2)
 
HTTP/2 入門
HTTP/2 入門HTTP/2 入門
HTTP/2 入門
 
OpenID for SSI
OpenID for SSIOpenID for SSI
OpenID for SSI
 
Microsoftの認証システムの歴史と 過渡期におけるWAPの活用 +Next Generation Credentials
Microsoftの認証システムの歴史と過渡期におけるWAPの活用+Next Generation CredentialsMicrosoftの認証システムの歴史と過渡期におけるWAPの活用+Next Generation Credentials
Microsoftの認証システムの歴史と 過渡期におけるWAPの活用 +Next Generation Credentials
 
Kubernetes Summit 2023: Head First Kubernetes
Kubernetes Summit 2023: Head First Kubernetes Kubernetes Summit 2023: Head First Kubernetes
Kubernetes Summit 2023: Head First Kubernetes
 
Change Data Streaming Patterns for Microservices With Debezium
Change Data Streaming Patterns for Microservices With Debezium Change Data Streaming Patterns for Microservices With Debezium
Change Data Streaming Patterns for Microservices With Debezium
 

Viewers also liked

用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps BotBo-Yi Wu
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golangBo-Yi Wu
 
Docker初识
Docker初识Docker初识
Docker初识hubugui
 
認識那條鯨魚 Docker 初探
認識那條鯨魚   Docker 初探認識那條鯨魚   Docker 初探
認識那條鯨魚 Docker 初探仲昀 王
 
Docker 初探,實驗室中的運貨鯨
Docker 初探,實驗室中的運貨鯨Docker 初探,實驗室中的運貨鯨
Docker 初探,實驗室中的運貨鯨Ruoshi Ling
 
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Bo-Yi Wu
 

Viewers also liked (7)

用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golang
 
Docker初识
Docker初识Docker初识
Docker初识
 
認識那條鯨魚 Docker 初探
認識那條鯨魚   Docker 初探認識那條鯨魚   Docker 初探
認識那條鯨魚 Docker 初探
 
Docker 初探,實驗室中的運貨鯨
Docker 初探,實驗室中的運貨鯨Docker 初探,實驗室中的運貨鯨
Docker 初探,實驗室中的運貨鯨
 
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
 
Docker應用
Docker應用Docker應用
Docker應用
 

Similar to 用 Go 語言 打造微服務架構

Go 語言基礎簡介
Go 語言基礎簡介Go 語言基礎簡介
Go 語言基礎簡介Bo-Yi Wu
 
20141212 html5 及微軟跨平台佈局 long
20141212 html5 及微軟跨平台佈局   long20141212 html5 及微軟跨平台佈局   long
20141212 html5 及微軟跨平台佈局 longMeng-Ru (Raymond) Tsai
 
Building Chatbot With Huggging Face
 				Building Chatbot With Huggging Face 				Building Chatbot With Huggging Face
Building Chatbot With Huggging FaceKo Ko
 
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)National Cheng Kung University
 
Learn Django With ChatGPT
Learn Django With ChatGPTLearn Django With ChatGPT
Learn Django With ChatGPTKo Ko
 
由BrickPi實現半自動循機車
由BrickPi實現半自動循機車由BrickPi實現半自動循機車
由BrickPi實現半自動循機車AStar CHEN
 
转化的灵感
转化的灵感转化的灵感
转化的灵感Yan Shi
 
转化的灵感
转化的灵感转化的灵感
转化的灵感faming su
 
Introduction Hugging face.pdf
Introduction Hugging face.pdfIntroduction Hugging face.pdf
Introduction Hugging face.pdfKo Ko
 
Web App or Native App
Web App or Native AppWeb App or Native App
Web App or Native AppYu Wei Shang
 
20230830 淺談 Azure OpenAI.pdf
20230830 淺談 Azure OpenAI.pdf20230830 淺談 Azure OpenAI.pdf
20230830 淺談 Azure OpenAI.pdfKo Ko
 
A dev ops team's practice in trend micro in agile summit 2018
A dev ops team's practice in trend micro in agile summit 2018A dev ops team's practice in trend micro in agile summit 2018
A dev ops team's practice in trend micro in agile summit 2018Juggernaut Liu
 
天鹅绒围脖
天鹅绒围脖天鹅绒围脖
天鹅绒围脖Liu Chao
 
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例Justin Lee
 
Mochimedia's Success Story - Case Study I (Python-based Company)
Mochimedia's Success Story - Case Study I (Python-based Company)Mochimedia's Success Story - Case Study I (Python-based Company)
Mochimedia's Success Story - Case Study I (Python-based Company)Sting Chen
 
Koubei banquet 27
Koubei banquet 27Koubei banquet 27
Koubei banquet 27Koubei UED
 
2014南部創新應用工具研討會 快速開發行動 app
2014南部創新應用工具研討會 快速開發行動 app2014南部創新應用工具研討會 快速開發行動 app
2014南部創新應用工具研討會 快速開發行動 app益祥 許
 
App Developer Team Learning Map
App Developer Team Learning MapApp Developer Team Learning Map
App Developer Team Learning MapRyan Chung
 

Similar to 用 Go 語言 打造微服務架構 (20)

Go 語言基礎簡介
Go 語言基礎簡介Go 語言基礎簡介
Go 語言基礎簡介
 
ChatBot
ChatBotChatBot
ChatBot
 
20141212 html5 及微軟跨平台佈局 long
20141212 html5 及微軟跨平台佈局   long20141212 html5 及微軟跨平台佈局   long
20141212 html5 及微軟跨平台佈局 long
 
Building Chatbot With Huggging Face
 				Building Chatbot With Huggging Face 				Building Chatbot With Huggging Face
Building Chatbot With Huggging Face
 
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
 
Learn Django With ChatGPT
Learn Django With ChatGPTLearn Django With ChatGPT
Learn Django With ChatGPT
 
由BrickPi實現半自動循機車
由BrickPi實現半自動循機車由BrickPi實現半自動循機車
由BrickPi實現半自動循機車
 
转化的灵感
转化的灵感转化的灵感
转化的灵感
 
转化的灵感
转化的灵感转化的灵感
转化的灵感
 
Introduction Hugging face.pdf
Introduction Hugging face.pdfIntroduction Hugging face.pdf
Introduction Hugging face.pdf
 
Web App or Native App
Web App or Native AppWeb App or Native App
Web App or Native App
 
20230830 淺談 Azure OpenAI.pdf
20230830 淺談 Azure OpenAI.pdf20230830 淺談 Azure OpenAI.pdf
20230830 淺談 Azure OpenAI.pdf
 
A dev ops team's practice in trend micro in agile summit 2018
A dev ops team's practice in trend micro in agile summit 2018A dev ops team's practice in trend micro in agile summit 2018
A dev ops team's practice in trend micro in agile summit 2018
 
天鹅绒围脖
天鹅绒围脖天鹅绒围脖
天鹅绒围脖
 
行動技術開發概論
行動技術開發概論行動技術開發概論
行動技術開發概論
 
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
 
Mochimedia's Success Story - Case Study I (Python-based Company)
Mochimedia's Success Story - Case Study I (Python-based Company)Mochimedia's Success Story - Case Study I (Python-based Company)
Mochimedia's Success Story - Case Study I (Python-based Company)
 
Koubei banquet 27
Koubei banquet 27Koubei banquet 27
Koubei banquet 27
 
2014南部創新應用工具研討會 快速開發行動 app
2014南部創新應用工具研討會 快速開發行動 app2014南部創新應用工具研討會 快速開發行動 app
2014南部創新應用工具研討會 快速開發行動 app
 
App Developer Team Learning Map
App Developer Team Learning MapApp Developer Team Learning Map
App Developer Team Learning Map
 

More from 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 GolangBo-Yi Wu
 
Golang Project Layout and Practice
Golang Project Layout and PracticeGolang Project Layout and Practice
Golang Project Layout and PracticeBo-Yi Wu
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub ActionsBo-Yi Wu
 
Drone 1.0 Feature
Drone 1.0 FeatureDrone 1.0 Feature
Drone 1.0 FeatureBo-Yi Wu
 
Drone CI/CD Platform
Drone CI/CD PlatformDrone CI/CD Platform
Drone CI/CD PlatformBo-Yi Wu
 
GraphQL IN Golang
GraphQL IN GolangGraphQL IN Golang
GraphQL IN GolangBo-Yi Wu
 
drone continuous Integration
drone continuous Integrationdrone continuous Integration
drone continuous IntegrationBo-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 GoBo-Yi Wu
 
用 Drone 打造 輕量級容器持續交付平台
用 Drone 打造輕量級容器持續交付平台用 Drone 打造輕量級容器持續交付平台
用 Drone 打造 輕量級容器持續交付平台Bo-Yi Wu
 
Introduction to Gitea with Drone
Introduction to Gitea with DroneIntroduction to Gitea with Drone
Introduction to Gitea with DroneBo-Yi Wu
 
運用 Docker 整合 Laravel 提升團隊開發效率
運用 Docker 整合 Laravel 提升團隊開發效率運用 Docker 整合 Laravel 提升團隊開發效率
運用 Docker 整合 Laravel 提升團隊開發效率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: GiteaBo-Yi Wu
 
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式Bo-Yi Wu
 
Git flow 與團隊合作
Git flow 與團隊合作Git flow 與團隊合作
Git flow 與團隊合作Bo-Yi Wu
 
PHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding stylePHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding styleBo-Yi Wu
 
Why to choose laravel framework
Why to choose laravel frameworkWhy to choose laravel framework
Why to choose laravel frameworkBo-Yi Wu
 
How to choose web framework
How to choose web frameworkHow to choose web framework
How to choose web frameworkBo-Yi Wu
 

More from Bo-Yi Wu (20)

Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署
 
用 Go 語言打造多台機器 Scale 架構
用 Go 語言打造多台機器 Scale 架構用 Go 語言打造多台機器 Scale 架構
用 Go 語言打造多台機器 Scale 架構
 
Job Queue in Golang
Job Queue in GolangJob Queue in Golang
Job Queue in Golang
 
Golang Project Layout and Practice
Golang Project Layout and PracticeGolang Project Layout and Practice
Golang Project Layout and Practice
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
Drone 1.0 Feature
Drone 1.0 FeatureDrone 1.0 Feature
Drone 1.0 Feature
 
Drone CI/CD Platform
Drone CI/CD PlatformDrone CI/CD Platform
Drone CI/CD Platform
 
GraphQL IN Golang
GraphQL IN GolangGraphQL IN Golang
GraphQL IN Golang
 
drone continuous Integration
drone continuous Integrationdrone continuous Integration
drone continuous Integration
 
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
 
用 Drone 打造 輕量級容器持續交付平台
用 Drone 打造輕量級容器持續交付平台用 Drone 打造輕量級容器持續交付平台
用 Drone 打造 輕量級容器持續交付平台
 
Introduction to Gitea with Drone
Introduction to Gitea with DroneIntroduction to Gitea with Drone
Introduction to Gitea with Drone
 
運用 Docker 整合 Laravel 提升團隊開發效率
運用 Docker 整合 Laravel 提升團隊開發效率運用 Docker 整合 Laravel 提升團隊開發效率
運用 Docker 整合 Laravel 提升團隊開發效率
 
用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務
 
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
 
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式
 
Git flow 與團隊合作
Git flow 與團隊合作Git flow 與團隊合作
Git flow 與團隊合作
 
PHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding stylePHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding style
 
Why to choose laravel framework
Why to choose laravel frameworkWhy to choose laravel framework
Why to choose laravel framework
 
How to choose web framework
How to choose web frameworkHow to choose web framework
How to choose web framework
 

用 Go 語言 打造微服務架構

Editor's Notes

  1. 1.
  2. 開發效率低 所有功能都在同一包代碼修改,每次修改玩,跟同事衝突,還要去解決衝突現象 2. 不易維護 所有代碼都在同一包,邏輯混在一起,新人要入手非常不容易 3. 不易開發 為了解決一個小 bug 可能要動到很多地方,花的時間也很久 4. 穩定性差 修改了單一 bug 但是可能造成其他 bug 產生,讓系統 crash 5. 不易擴充 系統變慢了,想要擴充,變成整個系統複製,而無法擴充瓶頸的地方
  3. https://github.com/google/seesaw https://caddyserver.com/docs/proxy
  4. https://github.com/TykTechnologies/tyk https://github.com/fabiolb/fabio A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices managed by consul. https://github.com/fabiolb/fabio/wiki/Routing https://github.com/containous/traefik http://docs.traefik.io/basics/
  5. https://github.com/goadesign/goa
  6. https://github.com/apache/thrift http://www.jianshu.com/p/a58665a38022 https://github.com/hprose/hprose-golang
  7. https://www.consul.io/ https://github.com/coreos/etcd