O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

用 Go 語言 打造微服務架構

5.369 visualizações

Publicada em

Go 語言 (又稱Golang) 是 Google 推出新一代的強大語言,今年 3 月 Google 公佈了去年底統計的問卷結果,發現 63% 用 Go 來寫網站,38% 用來開發系統程式,35% 用來做 DevOps,本次議題將會帶您瞭解為什麼 Go 語言適合打造微服務架構,Go 語言大給微服務什麼樣的特性以及 Go 語言適合用來開發什麼樣的系統?

Publicada em: Tecnologia
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui

用 Go 語言 打造微服務架構

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

×