DevOps In OpenSource(使用VSTS)
主講:陳小風
為什麼要做 Open Source?
GitHub 搭配 VSTS:CI + DevOps 工具
什麼是 DevOps
- Dev 開發 + Ops 維運
- 是一種文化:同伴,流程,產品
- 開發維運一體
- 協同合作
- 持續改善
為什麼又需要 DevOps
- 變化快速, 協同合作, 時間就是金錢, 配合趨勢
- 沒有對的,只有最適合的
- 擁抱改變,適應變化
- 降低成本
- 專注開發
Open Source Project
- 大家共同建置的產品
- 多人合作的專案
- 流程很重要:pull request, code review, contribute guide
How to start?
- 計畫:問題修正、使
- 開發測試
- 發行版本
- 經驗學習
目標
- 專注開發
- 重複的事情交給自動化工具
- 只要會用 GitHub
- 讓每個人都容易上手
- 不用自己裝機器
開始動手
- 想一個很酷的名字,github 可以寫名字
- 建立一個新的專案
- 找出專案想解決的問題
- 列出希望擁有的功能
- 動作實現第一個功能
- Baby step
使用 issues 管理任務
GitHub 足夠使用,但沒有看板的效果
VSTS 看板管理進度
- burndown chart:掌握 sprint 進度
- query:客製化查詢條件
- Dashboard 顯示專案的重要資訊
VSTS 看板的好處
- 快速瞭解現在的狀況
- 為敏捷開發設計
- 容易管理問題及功能
- 方便規劃進度
『zapier』連結 GIthub VSTS
- 服務與服務連結
- 支援多種事件
- 許多現成範例
- 不用寫程式
- 同步 Github issue 到 VSTS
Recap
- 動手進行你的專案
- 設定目標
- 逐步實現
開發與測試
多人開發的問題?
- 程式看不懂
- 品質不穩定
- 潛在問題
- 這些都是風險
開發與測試
- 改用 BDD 工具
- 用口語的方法撰寫測試程式
- 搭配 Pickles,測試案例自動轉成文件(window only)
- 支援多種格式(包含 markdown)
- 整合 Github Page:產出可瀏覽的網站,轉換 feature 為不同格式
測試即文件
- 合併回 master 自動產生
- 透過 CI Server 自動部署到 Github Page
- 適用說明搭配範例講解
- 保持與程式碼同步
程式碼品質
程式碼規則,測試涵蓋率,程式碼品質
- 軟體品質的健檢報告
- 量化技術債
- 修改說明
- 測試涵蓋率
- VSTS 內建支援 SonarQube
Recap
- 讓測試變成最好的文件
- 替專案最健康檢查
使用 VSTS 建置程式
- CI + CD
- 有更新就建置及測試
- 分析 pull-request
- 第一時間找出錯誤
- 處理自動化建置
- 支援 github 建置
- VSTS 豐富的支援:支援不同的 task
- VSTS 圖形化介面:一目了然的建置結果
搭配 git flow
- 產品生命週期
- master 代表穩定(搭配 tag)
- develop 代表進行中
- 新功能一律建立 feature branch
- 配合 vsts 合併並發行
Badge
open source 專案入口:一眼了解品質
shields.io
- 支援大部分線上服務
- 沒有的可以自己發 pull-request
- 客製化
Recap
- 隨時確認程式碼的健康度
- 利用 git flow 管理生命週期
持續改善
- 沒有完美的,只有最適合的
- 瞭解其他角度:google groups, gitter, Githubissue
總結
- 良好循環
- 瞭解使用者狀態
- 打造更好用的專案
- 工具很好用
- 享受開發
- 重點在精神