【Community open camp 2016】DevOps In OpenSource(使用VSTS)- 陳小風

Channel 9

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
  • 適用說明搭配範例講解
  • 保持與程式碼同步

程式碼品質

程式碼規則,測試涵蓋率,程式碼品質

SonarQube 

  • 軟體品質的健檢報告
  • 量化技術債
  • 修改說明
  • 測試涵蓋率
  • 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

總結

  • 良好循環
  • 瞭解使用者狀態
  • 打造更好用的專案
  • 工具很好用
  • 享受開發
  • 重點在精神