DevOps 課程

drone-logo_512

課程緣由

當初想開這課程的原因是,希望可以造福全台灣的朋友,之前跟 iThome 合作開了一堂實體課程,但是很多人卡在假日無法出門,再來是實體課程成本比較高,有時候上課沒聽懂,回家也沒有老師可以討論,造成學習效果不是很好,所以我就來錄製線上課程,讓不能北上的朋友們也可以學習到基本的 DevOps 技巧。希望能透過線上課程可以跟學員有些互動,把 DevOps 推廣到各大公司及新創。如果正要創業,或是在 DevOps 上有些困擾,不知道該如何導入及選擇工具,都可以來跟我聊聊。團隊內原本使用 Bamboo 之後跳到 Jenkins 最後又跳到 Drone,本課程會介紹為什麼我們放棄 Bamboo 及 Jenkins,它們所帶來的缺陷,以及為什麼最後選擇 Drone。

課程簡介

Drone 是一套以 Docker 容器為基礎的 CI/CD 伺服器。每次執行編譯時,都是運作在 Docker 容器內,可以確保開發者都在獨立環境執行,避免每次編譯狀況都不同。傳統企業在導入 DevOps 流程都會以 Jenkins 或者是 Gitlab CI 為主流,前者是 Java 語言開發,後者是 Ruby 語言開發,維運人員會發現這兩套其實都蠻吃重系統資源,然而 Drone 是一套由 Go 語言開發的伺服器,啟動 Drone 時,只需要不到 20 MB 的記憶體就可以跑此服務,大幅降低維運成本,也讓維運人員更好維護伺服器。Drone 的出現就是為了讓團隊可以像 Github 一樣持續開發持續部署,另外開發者可以輕易的用自己喜歡的語言(像是 Node.js, Python 甚至 Bash Script)撰寫 Plugin 整合進 Drone,取代傳統的 Jenkins 思維。 本課程您會學到:
  1. 如何製作 Docker 映像檔並且自動上傳到 Docker Hub
  2. 如何將 Drone 導入團隊取代傳統 Jenkins 服務
  3. 如何用其他語言撰寫 Plugin 整合進 Drone 服務
  4. 如何用 Drone 整合團隊部署測試流程 (如下圖)
Screen Shot 2017-05-04 at 11.50.29 AM

課程大綱

  1. 什麼是 DevOps
  2. DevOps 帶來的好處及影響
  3. Docker 語法介紹 (製作 Image 及 Docker Hub 整合)
  4. Docker 語法介紹 (製作 Image 及 Docker Hub 整合)
  5. Drone 安裝 (整合 Gitlab, Github, Bitbucket)
  6. Drone 整合 Nginx, Caddy, Ngrok (設定 Let’s Encrypt)
  7. Drone 整合測試 Python, Node.js, 或 Golang 搭配 redis, mysql 等服務
  8. Drone 整合訊息通知 (Line, Facebook, Slack …)
  9. Drone 指令介紹 (設定 Secret,管理權限)
  10. Drone 套件實作 (Node.js, Python, Shell Script, Golang)
  11. Drone 部署到 AWS, Linode, DigitalOcean 等 …

講師資訊

Appleboy (吳柏毅) 目前服務於聯發科技,擔任 IoT 物聯網工程師。長期貢獻於 Open Source 專案,熱愛開發程式。
  • iThome Modern Web 研討會講師 (2017)
  • iThome Gopher Day 研討會講師 (2017)
  • iTHome Cloud Summit 研討會講師 (2017)
  • iTHome ChatBot 研討會講師 (2017)
  • iTHome DevOps 研討會講師 (2016, 2017)
  • PHPConf 研討會講師 (2012, 2013)
  • COSCUP 研討會講師 (2016, 2014)
  • JSDC 研討會講師 (2013)
  • OSDC 研討會講師 (2014)
  • 公司內部教育訓練講師 (Git, Docker 及相關程式語言)
目前為數個 Go 專案開發及維護者
  • Gin: 主流的 Web 框架,適合用來寫 API 服務,目前是擔任維護及開發角色。
  • Gitea: 輕量級 Git 伺服器,目前擔任維護及開發角色。
  • Drone: 用 Docker Container 來持續整和部署,可與上面 Gitea 串接,目前為貢獻者及數個 Plugin 作者。
講師個人相關連結

適合對象

  • 系統管理者
  • 前端開發者
  • 後端開發者
  • 全端開發者

開發環境

  • 開發環境:Docker + 您的偏好語言 (Node.js, Python, Golang)
  • 開發工具:Visual Studio Code 或您偏好的編輯器 (Sublime, Vim ..)
  • 開發語言:您偏好的開發語言 (Node.js, Python, Golang ..)
  • 開發系統:Linux, MacOS

事前準備

請大家先安裝好 Docker 及相關開發工具及語言。

為什麼不使用 Jenkins 或 GitLab CI

可以直接參考之前寫的一篇:『為什麼我用 Drone 取代 Jenkins 及 GitLab CI

購買線上教學課程