省時省力不停機...

50
省時省力不停機 發行管理與持續部署 陳小風 (Microsoft MVP)

Transcript of 省時省力不停機...

Page 1: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

省時省力不停機發行管理與持續部署

陳小風 (Microsoft MVP)

Page 2: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

講師介紹

• 陳鋒逸(陳小風)

• 講師經歷• SkillTree兼任講師

• 微軟最有價值專家(MVP)

• Techday 講師 (2014)

• JSDC 講師 (2013)

• 社群研討會講師• AgileCommunity.tw

• Javascript.tw

• twMVC

Page 3: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

Agenda

• 什麼是持續整合?

• 軟體品質與自動化部署

• Release Management

• 產品發行週期

• DevOps實踐之道

Page 4: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

什麼是持續整合?

Page 5: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

你是否曾經遇過這些狀況…

• 程式碼無法建置

• 裝機器要花好幾天

• 修一個小小的bug 其他程式卻壞了

• 一定要 OOO 在才能建置最新版本

• 上線時總是少了些什麼

Page 6: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

沒有萬靈丹

• 人都會犯錯

• 程式都會有Bug

• 只能滿足想到的情境

• 使用流程降低問題

• 盡可能的降低意外狀況

Page 7: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

解決方法

單元測試

Code Review

程式碼掃描

整合測試

Page 8: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release
Page 9: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

什麼是 Continuous Integration?

• 把 Routing 的工作交給自動化

• 持續、反覆、不斷進行

• 維持軟體品質

• 降低交接 / 訓練門檻

• 產生報表

• 像呼吸一樣自然

Page 10: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

導入成本很高?

• 在第一次需要花費時間設定、修復錯誤

• 省下之後一百次、五年的時間

• 對一般開發人員沒有任何的影響

• 自動部屬到對應的環境

• 自動進行測試、軟體品質檢查

Page 11: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

Visual Studio Team Service

客制化的彈性

多平台、多語言

支援測試

持續整合

容易擴充

Page 12: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

定義自己的建置流程

Page 13: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

持續整合

需求

開發

建置

測試

Page 14: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

Agent Pool

Hosted Agent

Custom Agent 1 (ROR)

Custom Agent 2 (Python)

Visual StudioTeam Service

Local Servers

Build

Page 15: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

支援第三方整合

Page 16: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

DEMO• VSTS 自動化建置

Page 17: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

小結

• 自動化工作

• 有效產出

• 養成文化

Page 18: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

軟體品質與自動化部署

Page 19: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

讓程式碼可靠

• 簽入程式觸發

• 追蹤品質

• 產生報告

• 提前發現問題

Page 20: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

維持水準

單元測

整合測

程式碼

掃描

測試涵

蓋率

品質報

Page 21: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

改善依據

• 將抽象轉換為數據

• 測試涵蓋率

• 找出潛在問題

• Burn down chart

Page 22: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

DashBoard

Page 23: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

支援軟體品質工具

Page 24: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

持續部署

• 將程式發行至對應環境

• 發行後自動通知

• 工程師專注在開發

• 不會有人為疏失

Page 25: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

彈性的部署選擇

Powershell

Bash Script

Page 26: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

環環相扣

• 不易互相干擾的開發環境

• 開發過程維持高品質

• 程式碼自動部署至對應區段

• 可透過報表持續改善

• 記錄完整,降低出錯機率

Page 27: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

DEMO• VSTS 自動化部署

Page 28: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

小結

• 節省時間

• 專注開發

• 量化成效

Page 29: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

Release Management

Page 30: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

一個網站的開發週期

開發

測試

準備

正式

Page 31: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

Development

Test

RD

QA

Test DB

開發

測試

Production DBStage

測試

Production

線上購物

發行網站

Page 32: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

為什麼需要發行管理?

• 自動部署對應的平台

• 追蹤發行過程

• 控制部署

• 歷史紀錄

Page 33: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

Release Management

Definition

Environment

TaskRelease

Track

Page 34: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

Dev Test Staging Production

Dev Servers Test ServersStaging Servers

Production Servers

Developers QA PM

Release Manager

Release Manager

發行流程

Approve Approve Approve

Page 35: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

DEMO• 建立 Release Management 環境

• 建立 Release 與 Deploy 到不同環境

Page 36: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

簽核機制

• 完成階段

• 通知相關人員

• 確認工作完成

• 測試驗收

• 往下推進

Page 37: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

為什麼需要簽核?

• 降低錯誤發生的機率

• Double Check

• 通知相關人員

• 商業邏輯檢查

• 安全性

Page 38: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

DEMO• 善用 Release Management 的簽核機制

• 瀏覽 Release Management 稽核記錄

Page 39: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

小結

• 客制化流程

• 簽核機制

• SOP

Page 40: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

產品發行週期

Page 41: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

功能開發

Page 42: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

Canary Release

Production

Prod ServersGroup 1

Release Manager

Production

Prod ServersGroup 2

Release Manager

Production

Prod ServersGroup 3

Release Manager

Production

Prod ServersGroup 4

Release Manager

Asia – Stage 0 Asia– Stage 1 US – Stage 2 Europe– Stage 3

Core Member、VIP

Paid User User User

Page 43: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

DEMO• 使用 Release Management 管理與發

行 Feature

Page 44: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

小結

• 並行開發

• 循序部署

• 有效管理

Page 45: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

DevOps實踐之道

Page 46: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

計畫1 監控 + 學習

部署開發 + 測試2

開發階段 正式環境

DevOps

4

3

Page 47: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

DevOps 文化

• 從簡單的開始

• 持續改善 / 持續交付

• 養成良好的開發習慣

• 提前發現問題

• 找出潛在風險

Page 48: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

DevOps 的幫助

最佳化資源

讓系統可以自動化且安裝的進行安裝設定,減低 IT部門的工作成本,讓資源的運用最佳化。

Page 49: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release

Q & A

Page 50: 省時省力不停機 發行管理與持續部署download.microsoft.com/download/0/F/1/0F1B141A-9C69-4BEA...Agenda •什麼是持續整合?•軟體品質與自動化部署 •Release