Drone 搭配 Kubernetes 升級應用程式版本

Screen Shot 2017-10-10 at 9.22.48 PM 本篇要教大家如何透過 Drone 搭配 Kubernetes 自動化升級 App container 版本。為什麼我只說升級 App 版本,而不是升級或調整 K8S Deployment 架構呢 (kubectl apply)?原因是本篇會圍繞在 honestbee 撰寫的 drone 外掛: drone-kubernetes,此外掛是透過 Shell Script 方式搭配 kubectl 指令來完成升級 App 版本,可以看到程式原始碼並無用到 kubectl apply 方式來升級,也並非用 Go 語言搭配 k8s API 所撰寫,所以無法使用 YAML 方式來進行 Deployment 的升級。本篇講解的範例都可以在 drone-nodejs-example 內找到。底下指令就是外掛用來搭配 Drone 參數所使用。
$ kubectl set image \
  deployment/nginx-deployment \
  nginx=nginx:1.9.1
Continue reading “Drone 搭配 Kubernetes 升級應用程式版本”

用 Kubernetes 將 Drone CI/CD 架設在 AWS

Screen Shot 2017-09-24 at 12.53.39 AM Drone 是我今年主推的 CI/CD 自架服務,詳細可以參考這篇文章,目前在公司內部團隊使用了一年以上,服務相當穩定。Drone 本身可以透過 docker-compose 方式快速在機器上架設完成,但是由於 Kubernetes 的盛行,大家也希望能透過 Kubernetes 來安裝 Drone 服務。本篇會教大家如何在 AWS 上透過 Kubernetes 安裝完成。Drone 預設使用 SQLite 當作資料庫,檔案會直接存放在 /var/lib/drone 路徑底下,但是容器內不支援寫入,所以必須要要額外掛上空間讓 Drone 可以寫入資料。此篇會以 GitHub 認證 + SQLite 來教學。 Continue reading “用 Kubernetes 將 Drone CI/CD 架設在 AWS”

為什麼我用 Drone 取代 Jenkins 及 GitLab CI

Logo-DevOpsDays 終於有機會正式跟大家介紹為什麼我會捨棄 JenkinsGitLab CI,取而代之的是用 Go 語言寫的 Drone。今年很高興錄取台灣第一屆 DevOps Day 講師,在今年主題是『用 Drone 打造輕量級容器持續交付平台』,主要推廣這套 Drone CI/CD 工具,會議內容圍繞在 Jenkins, GitLab CI 跟 Drone 的比較。也提到為什麼我不用 Jenkins 及 GitLab CI 的幾個原因。底下整理議程大綱。
  • 為什麼選擇 Drone
  • Drone 基礎簡介
  • Drone 架構擴展
  • Drone 安裝方式
  • Drone 管理介面
  • Drone 測試部署
  • Drone 自訂套件
Continue reading “為什麼我用 Drone 取代 Jenkins 及 GitLab CI”

2017 COSCUP 研討會: Gitea + Drone 介紹

gitea-lg 今年很高興可以到 COSCUP 分享『Gitea + Drone 介紹』,我是在第二天的最後一場來做分享,最後還被大會進來趕人,講超過時間了。這次是我第一次到台大社科院,太陽真的好大,兩天下來流的汗水,大概已經是一年份的了。由於今年 COSCUP 不供應午餐,在第一天中午到科技站出口,左轉第一個店面就坐下來吃麵,店面不大,賣傳統小吃,我點了麻醬麵大碗 55 元,燙青菜 35 元,真的很大碗,不知道是不是因為在學校附近的關係,所以特別大碗,我心裡想說,這裡不是台北嗎? Continue reading “2017 COSCUP 研討會: Gitea + Drone 介紹”

Drone 發佈 0.8.0-rc.1 版本

drone-logo_512 Drone 作者在昨天晚上發佈了 0.8.0-rc.1,此版本有兩個重大變更,第一是 Server 跟 Angent 之間溝通方式轉成 GRPC,另一個變更則是將原本單一執行擋 drone 拆成兩個,也就是之後會變成 drone-serverdrone-agent,拆成兩個好處是,通常 Server 端只會有一台,但是隨著專案越來越多,團隊越來越龐大,Agent 肯定不只有一台機器,所以把 Agent 拆出來可以讓維運人員架設新機器時更方便。 Continue reading “Drone 發佈 0.8.0-rc.1 版本”

台灣第一屆 Laravel 研討會

laravelconftw_o 這次很高興擔任第一屆 Laravel 台灣研討會講者,會議當天中午才到現場,我是兩點分享的議程,在整天聽下來及最後的案例討論,聽到最多的都是原本從 CodeIgniter 架構換到 Laravel 上面,身為 CodeIgniter 的維護人員的我,聽到是蠻開心的,在 Laravel 還沒出來前,大家都是選用這輕量級的 CodeIgniter。 Continue reading “台灣第一屆 Laravel 研討會”

台灣第一屆 GoPher 大會

Screen Shot 2017-06-30 at 10.47.50 AM 很高興可以擔任第一屆 GoPher Day 大會講者,每次參加聚會都是跟一堆網友見面,人在新竹很難得大家見到面。很感謝 iThome 大力幫忙舉辦,才可以讓整天議程順利完成。底下分享『用 Go 語言實戰 Push Notification 服務』投影片。 Continue reading “台灣第一屆 GoPher 大會”

Drone 自動觸發 GitLab CI 或 Jenkins 任務

drone-logo_512 Drone 是一套由 Go 語言所開發的開源碼專案,讓開發者可以使用 Docker Container 快速設定自動化測試及部署,上篇有提到『Cronjob 搭配 Drone 服務』,讓 JenkinsGitLab CI 用戶可以轉換 Cron Job 任務到 Drone 上面。本篇則是會介紹如何透過 Drone 去觸發 Jenkins 或 GitLab CI 上的工作,當然這是過渡時期,希望大家最後能將工作完整移轉到 Drone 上面,不要再依靠 Jenkins 或 GitLab CI 了。本篇會教大家用三種方式來觸發 GitLab CI 或 Jenkins 任務。
  • 使用 Drone CI/CD
  • 使用 Docker 指令
  • 使用 Command Line (命令列)
Continue reading “Drone 自動觸發 GitLab CI 或 Jenkins 任務”