Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

用 Drone 打造 輕量級容器持續交付平台

19,666 views

Published on

團隊內原本使用 Bamboo 之後跳到 Jenkins 最後又跳到 Drone,本意議程會介紹為什麼我們放棄 Bamboo 及 Jenkins,他們所帶來的缺陷,以及為什麼最後選擇 Drone。

Drone 是一套基於 Docker 容器技術的持續交付平台。每個 Build 都在一個短暫的 Docker 容器中執行,讓開發人員可以完全控制他們的建構環境並保證隔離互不干擾。Drone 非常容易安裝及維護,並且提供強大的插件系統,也可以讓開發者輕易完成個人插件,如果您正在煩惱該選擇 Jenkins 或 GitLab CI 等工具,我會建議您嚐試看看輕量級的 Drone。本議程會帶您深入了解由 Go 語言所撰寫的 Drone 架構及如何輕易整合原有的 Git 服務 (像是 Github, Bitbucket, Gitea 或 GitLab) 來快速部署及測試軟體品質。

線上課程:

DevOpsDay 優惠價: 1600
購買網址: http://bit.ly/devops-taipei
Coupon Code: KUBERNETES

Published in: Technology
  • Be the first to comment

用 Drone 打造 輕量級容器持續交付平台

  1. 1. Bo-Yi Wu 2017.08.01
  2. 2.  聯發科技後端工程師  DevOps  Golang, PHP, Node.js ..  維護數個 Go 開源專案  Gitea  Gin  Drone  appleboy @GitHub  appleboy @twitter  appleboy @slideshare  appleboy46 @facebook 2
  3. 3.  為什麼選擇 Drone  為什麼不用 Jenkins  為什麼不用 GitLab CI  Drone 基礎簡介  Drone 架構擴展  Drone 安裝方式  Drone 管理介面  Drone 測試部署  Drone 自訂套件
  4. 4. 開發 測試 部署 Develop CI CD 工程師
  5. 5. 開發 測試 部署 Develop CI CD 自動化
  6. 6. CI/CD 工具選擇
  7. 7. 1. Jenkins 2. Gitlab CI http://bit.ly/devops-tool
  8. 8. Jenkins Drone Gitlab CI
  9. 9. 安裝眾多 Plugin 達成需求
  10. 10. 需安裝 plugin
  11. 11. 你需要會 Java
  12. 12. http://bit.ly/devops-tool
  13. 13. 部署基本條件
  14. 14. https://florianbrinkmann.com/en/3473/deployment-gitlab-ci/
  15. 15. https://github.com/appleboy/drone-ssh
  16. 16. 還是無法擴充 Yaml 設定
  17. 17.  為什麼選擇 Drone  為什麼不用 Jenkins  為什麼不用 GitLab CI  Drone 基礎簡介  Drone 架構擴展  Drone 安裝方式  Drone 管理介面  Drone 測試部署  Drone 自訂套件
  18. 18. 基於容器 (Container) 技術的 CI/CD 系統
  19. 19. Everything is a Docker Container
  20. 20. Git Clone 測試 打包 部署 發送訊息
  21. 21. 使用 yaml 管理專案流程
  22. 22. 後端測試 前端測試 上傳容器 通知訊息
  23. 23.  為什麼選擇 Drone  為什麼不用 Jenkins  為什麼不用 GitLab CI  Drone 基礎簡介  Drone 架構擴展  Drone 安裝方式  Drone 管理介面  Drone 測試部署  Drone 自訂套件
  24. 24. 一個主伺服器,多個代理服務
  25. 25. Server agent agent agent Database
  26. 26.  為什麼選擇 Drone  為什麼不用 Jenkins  為什麼不用 GitLab CI  Drone 基礎簡介  Drone 架構擴展  Drone 安裝方式  Drone 管理介面  Drone 測試部署  Drone 自訂套件
  27. 27. How to install drone server and agent? http://docs.drone.io/installation/
  28. 28. Docker Compose && Binary Install
  29. 29. docker pull drone/drone:0.8 docker pull drone/agent:0.8
  30. 30. go install github.com/drone/drone/cmd/drone-agent go install github.com/drone/drone/cmd/drone-server
  31. 31. Nginx, Caddy, Apache
  32. 32.  為什麼選擇 Drone  為什麼不用 Jenkins  為什麼不用 GitLab CI  Drone 基礎簡介  Drone 架構擴展  Drone 安裝方式  Drone 管理介面  Drone 測試部署  Drone 自訂套件
  33. 33. 簡單、清楚、明暸
  34. 34.  為什麼選擇 Drone  為什麼不用 Jenkins  為什麼不用 GitLab CI  Drone 基礎簡介  Drone 架構擴展  Drone 安裝方式  Drone 管理介面  Drone 測試部署  Drone 自訂套件
  35. 35. 專案流程都是寫在這邊
  36. 36. Drone Workspace Clone 步驟 Build 步驟 Deploy 步驟
  37. 37. Drone Workspace Clone 步驟 Build 步驟 Deploy 步驟
  38. 38. Git Test Release Docker Discord
  39. 39.  執行測試指令  分析程式碼  驗證程式碼品質  編譯 Binary  部署 Binary  編譯 Docker Image  部署 Docker Container  通知訊息
  40. 40. Git Test Release Docker Discord
  41. 41. /drone/src/github.com/appleboy/hello-world
  42. 42. Drone 特定字 (勿改)
  43. 43. 所有步驟都可以存取此目錄資料
  44. 44. 預設進入目錄,所有指令都在此目錄執行
  45. 45. Drone 關鍵字勿改
  46. 46. 自己撰寫 clone 指令
  47. 47. 將 Tags 一起拉下來
  48. 48. 務必打勾
  49. 49. Git Test Release Docker Discord
  50. 50. Drone 關鍵字勿改
  51. 51. 名稱可自訂
  52. 52. 自選 Image
  53. 53. 拉最新版
  54. 54. 執行指令
  55. 55. Parallel Execution 前端及後端一起測試
  56. 56. 平行測試 平行測試
  57. 57. Mysql, Postgres, Redis
  58. 58. 服務名稱
  59. 59. 全域變數
  60. 60. 服務名稱 服務名稱
  61. 61. Branch, Event, Status, Environment, Matrix
  62. 62. Matrix
  63. 63. 只有 Pull request 才跑測試 測試成功才跑
  64. 64. 只有上傳 tag 才跑部署到 China china 標籤才執行 限制 git tag
  65. 65. 成功或失敗都通知訊息
  66. 66. Git Test Release Docker Discord
  67. 67. 請善用 plugin Marketplace http://plugins.drone.io/
  68. 68. https://github.com/appleboy/drone-scp
  69. 69. Plugin 映像檔 Deploy Key 打包列表 遠端目錄
  70. 70. https://github.com/appleboy/drone-ssh
  71. 71. Plugin 映像檔 Script 列表
  72. 72. 多主機 Host 列表
  73. 73. Git Test Release Docker Discord
  74. 74. Plugin 映像檔
  75. 75. Git Test Release Docker Discord
  76. 76. Plugin Image
  77. 77. 方便下次執行更快速 vendor, node_modules
  78. 78. Drone Workspace Clone 步驟 Build 步驟 Deploy 步驟 建立快取使用快取 雲端儲存
  79. 79. Volume or SFTP cache
  80. 80. http://plugins.drone.io/appleboy/drone-sftp-cache/
  81. 81. http://plugins.drone.io/drillster/drone-volume-cache/
  82. 82. [skip cache] or [cache skip] Only for SFTP cache
  83. 83. http://plugins.drone.io/drone-plugins/drone-downstream/
  84. 84. http://plugins.drone.io/appleboy/drone-gitlab-ci/
  85. 85. http://plugins.drone.io/appleboy/drone-jenkins/
  86. 86.  為什麼選擇 Drone  為什麼不用 Jenkins  為什麼不用 GitLab CI  Drone 基礎簡介  Drone 架構擴展  Drone 安裝方式  Drone 管理介面  Drone 測試部署  Drone 自訂套件
  87. 87. 擴充 Yaml 參數
  88. 88.  撰寫程式  打包 Docker Image  上傳到 Docker Hub  測試外掛
  89. 89. 任何語言都可以寫 Plugin PHP, Ruby, Bash, Go, Python …
  90. 90. 自訂參數 自訂參數 自訂參數
  91. 91. 前置符號 PLUGIN_
  92. 92. 如何在本機端測試及除錯?
  93. 93. $ drone exec
  94. 94. 啟動速度超快 (低記憶體用量)
  95. 95. 啟動速度超快 (低記憶體用量) 不需要管理者 (簡單的 UI 介面)
  96. 96. 啟動速度超快 (低記憶體用量) 不需要管理者 (簡單的 UI 介面) 可在本機端運行測試
  97. 97. 啟動速度超快 (低記憶體用量) 不需要管理者 (簡單的 UI 介面) 可在本機端運行測試 完全基於 Container 開發
  98. 98. 啟動速度超快 (低記憶體用量) 不需要管理者 (簡單的 UI 介面) 可在本機端運行測試 完全基於 Container 開發 任何語言都可以寫 Plugin
  99. 99. 啟動速度超快 (低記憶體用量) 不需要管理者 (簡單的 UI 介面) 可在本機端運行測試 完全基於 Container 開發 任何語言都可以寫 Plugin 支援 matrix 編譯 (多版本)
  100. 100. DevOpsDay 優惠價: 1600 http://bit.ly/devops-taipei Coupon Code: DEVOPSDAY
  101. 101. 謝謝大家參與

×