Advertisement

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

Full Stack & DevOps Engineer at MediaTek
Sep. 7, 2017
Advertisement

More Related Content

Slideshows for you(20)

Advertisement
Advertisement

Recently uploaded(20)

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

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

Editor's Notes

  1. 持續開發 持續測試 持續部署
  2. http://bit.ly/devops-tool
  3. 真的只要會簡單的 docker 指令及 bash 就可以寫 plugin 提供給更多人使用 相較於其他 CI/CD 工作有辦法做到嗎? jenkins
Advertisement