省時省力不停機...

Post on 13-Aug-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

陳小風 (Microsoft MVP)

講師介紹

• 陳鋒逸(陳小風)

• 講師經歷• SkillTree兼任講師

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

• Techday 講師 (2014)

• JSDC 講師 (2013)

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

• Javascript.tw

• twMVC

Agenda

• 什麼是持續整合?

• 軟體品質與自動化部署

• Release Management

• 產品發行週期

• DevOps實踐之道

什麼是持續整合?

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

• 程式碼無法建置

• 裝機器要花好幾天

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

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

• 上線時總是少了些什麼

沒有萬靈丹

• 人都會犯錯

• 程式都會有Bug

• 只能滿足想到的情境

• 使用流程降低問題

• 盡可能的降低意外狀況

解決方法

單元測試

Code Review

程式碼掃描

整合測試

什麼是 Continuous Integration?

• 把 Routing 的工作交給自動化

• 持續、反覆、不斷進行

• 維持軟體品質

• 降低交接 / 訓練門檻

• 產生報表

• 像呼吸一樣自然

導入成本很高?

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

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

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

• 自動部屬到對應的環境

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

Visual Studio Team Service

客制化的彈性

多平台、多語言

支援測試

持續整合

容易擴充

定義自己的建置流程

持續整合

需求

開發

建置

測試

Agent Pool

Hosted Agent

Custom Agent 1 (ROR)

Custom Agent 2 (Python)

Visual StudioTeam Service

Local Servers

Build

支援第三方整合

DEMO• VSTS 自動化建置

小結

• 自動化工作

• 有效產出

• 養成文化

軟體品質與自動化部署

讓程式碼可靠

• 簽入程式觸發

• 追蹤品質

• 產生報告

• 提前發現問題

維持水準

單元測

整合測

程式碼

掃描

測試涵

蓋率

品質報

改善依據

• 將抽象轉換為數據

• 測試涵蓋率

• 找出潛在問題

• Burn down chart

DashBoard

支援軟體品質工具

持續部署

• 將程式發行至對應環境

• 發行後自動通知

• 工程師專注在開發

• 不會有人為疏失

彈性的部署選擇

Powershell

Bash Script

環環相扣

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

• 開發過程維持高品質

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

• 可透過報表持續改善

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

DEMO• VSTS 自動化部署

小結

• 節省時間

• 專注開發

• 量化成效

Release Management

一個網站的開發週期

開發

測試

準備

正式

Development

Test

RD

QA

Test DB

開發

測試

Production DBStage

測試

Production

線上購物

發行網站

為什麼需要發行管理?

• 自動部署對應的平台

• 追蹤發行過程

• 控制部署

• 歷史紀錄

Release Management

Definition

Environment

TaskRelease

Track

Dev Test Staging Production

Dev Servers Test ServersStaging Servers

Production Servers

Developers QA PM

Release Manager

Release Manager

發行流程

Approve Approve Approve

DEMO• 建立 Release Management 環境

• 建立 Release 與 Deploy 到不同環境

簽核機制

• 完成階段

• 通知相關人員

• 確認工作完成

• 測試驗收

• 往下推進

為什麼需要簽核?

• 降低錯誤發生的機率

• Double Check

• 通知相關人員

• 商業邏輯檢查

• 安全性

DEMO• 善用 Release Management 的簽核機制

• 瀏覽 Release Management 稽核記錄

小結

• 客制化流程

• 簽核機制

• SOP

產品發行週期

功能開發

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

DEMO• 使用 Release Management 管理與發

行 Feature

小結

• 並行開發

• 循序部署

• 有效管理

DevOps實踐之道

計畫1 監控 + 學習

部署開發 + 測試2

開發階段 正式環境

DevOps

4

3

DevOps 文化

• 從簡單的開始

• 持續改善 / 持續交付

• 養成良好的開發習慣

• 提前發現問題

• 找出潛在風險

DevOps 的幫助

最佳化資源

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

Q & A

top related