Soumettre la recherche
Mettre en ligne
CICD Workshop 20180922
•
0 j'aime
•
146 vues
Earou Huang
Suivre
2018/09/22 在 DevOpsDay Taipei 工作坊 Slide https://devopsdays.tw/workshop.html
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 55
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
為瞬間巨量做好準備 20180726
為瞬間巨量做好準備 20180726
Earou Huang
Ops X Serverless (GCPUG.TW meetup 20180627)
Ops X Serverless (GCPUG.TW meetup 20180627)
Earou Huang
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
Philip Zheng
VSCode Remote Development 介紹
VSCode Remote Development 介紹
Philip Zheng
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)
Will Huang
[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...
[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...
Edward Kuo
2014 Hpocon 李志刚 1号店 - puppet在1号店的实践
2014 Hpocon 李志刚 1号店 - puppet在1号店的实践
Michael Zhang
Ansible & GitLab CI / CD Workshop 101 ( @Agile Tour Taipei 2017)
Ansible & GitLab CI / CD Workshop 101 ( @Agile Tour Taipei 2017)
Chen Cheng-Wei
Recommandé
為瞬間巨量做好準備 20180726
為瞬間巨量做好準備 20180726
Earou Huang
Ops X Serverless (GCPUG.TW meetup 20180627)
Ops X Serverless (GCPUG.TW meetup 20180627)
Earou Huang
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
Philip Zheng
VSCode Remote Development 介紹
VSCode Remote Development 介紹
Philip Zheng
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)
Will Huang
[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...
[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...
Edward Kuo
2014 Hpocon 李志刚 1号店 - puppet在1号店的实践
2014 Hpocon 李志刚 1号店 - puppet在1号店的实践
Michael Zhang
Ansible & GitLab CI / CD Workshop 101 ( @Agile Tour Taipei 2017)
Ansible & GitLab CI / CD Workshop 101 ( @Agile Tour Taipei 2017)
Chen Cheng-Wei
用Octopus deploy做自動部署 - 快速上手
用Octopus deploy做自動部署 - 快速上手
Alan Tsai
[2021 .NET Conf]善用 Azure Monitor 服務打造 DevOps 監控一環
[2021 .NET Conf]善用 Azure Monitor 服務打造 DevOps 監控一環
Edward Kuo
我們與Azure DevOps的距離
我們與Azure DevOps的距離
Edward Kuo
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Alan Tsai
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
Will Huang
容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中
Andrew Wu
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
Edward Kuo
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
Edward Kuo
VSCode Remote Development
VSCode Remote Development
Philip Zheng
API Token 入門
API Token 入門
Andrew Wu
Rancher 快速打造叢集的解決方案
Rancher 快速打造叢集的解決方案
Miles Chou
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Will Huang
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽
Will Huang
01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overview
Alan Tsai
My DevOps Tour 0.1
My DevOps Tour 0.1
Chu-Siang Lai
容器式軟體開發介紹
容器式軟體開發介紹
Philip Zheng
Is it really easy for companies to import Ansible automation
Is it really easy for companies to import Ansible automation
Chu-Siang Lai
Angular 4 網站開發最佳實務 (Modern Web 2017)
Angular 4 網站開發最佳實務 (Modern Web 2017)
Will Huang
與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構
與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構
Andrew Wu
容器式基礎架構介紹
容器式基礎架構介紹
Philip Zheng
Build Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratch
National Cheng Kung University
How to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B service
Alex Su
Contenu connexe
Tendances
用Octopus deploy做自動部署 - 快速上手
用Octopus deploy做自動部署 - 快速上手
Alan Tsai
[2021 .NET Conf]善用 Azure Monitor 服務打造 DevOps 監控一環
[2021 .NET Conf]善用 Azure Monitor 服務打造 DevOps 監控一環
Edward Kuo
我們與Azure DevOps的距離
我們與Azure DevOps的距離
Edward Kuo
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Alan Tsai
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
Will Huang
容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中
Andrew Wu
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
Edward Kuo
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
Edward Kuo
VSCode Remote Development
VSCode Remote Development
Philip Zheng
API Token 入門
API Token 入門
Andrew Wu
Rancher 快速打造叢集的解決方案
Rancher 快速打造叢集的解決方案
Miles Chou
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Will Huang
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽
Will Huang
01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overview
Alan Tsai
My DevOps Tour 0.1
My DevOps Tour 0.1
Chu-Siang Lai
容器式軟體開發介紹
容器式軟體開發介紹
Philip Zheng
Is it really easy for companies to import Ansible automation
Is it really easy for companies to import Ansible automation
Chu-Siang Lai
Angular 4 網站開發最佳實務 (Modern Web 2017)
Angular 4 網站開發最佳實務 (Modern Web 2017)
Will Huang
與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構
與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構
Andrew Wu
容器式基礎架構介紹
容器式基礎架構介紹
Philip Zheng
Tendances
(20)
用Octopus deploy做自動部署 - 快速上手
用Octopus deploy做自動部署 - 快速上手
[2021 .NET Conf]善用 Azure Monitor 服務打造 DevOps 監控一環
[2021 .NET Conf]善用 Azure Monitor 服務打造 DevOps 監控一環
我們與Azure DevOps的距離
我們與Azure DevOps的距離
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
VSCode Remote Development
VSCode Remote Development
API Token 入門
API Token 入門
Rancher 快速打造叢集的解決方案
Rancher 快速打造叢集的解決方案
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽
01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overview
My DevOps Tour 0.1
My DevOps Tour 0.1
容器式軟體開發介紹
容器式軟體開發介紹
Is it really easy for companies to import Ansible automation
Is it really easy for companies to import Ansible automation
Angular 4 網站開發最佳實務 (Modern Web 2017)
Angular 4 網站開發最佳實務 (Modern Web 2017)
與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構
與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構
容器式基礎架構介紹
容器式基礎架構介紹
Similaire à CICD Workshop 20180922
Build Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratch
National Cheng Kung University
How to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B service
Alex Su
Cocoa on Rails 4th
Cocoa on Rails 4th
Xiaochun Shen
用 Drone 打造輕量級容器持續交付平台
用 Drone 打造輕量級容器持續交付平台
Bo-Yi Wu
Github初上手教學
Github初上手教學
um nop
Git and Github basic with SourceTree
Git and Github basic with SourceTree
Chu-Siang Lai
Git 入门实战
Git 入门实战
icy leaf
Git 入門與實作
Git 入門與實作
奕浦 郭
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
Alan Tsai
Git flow 與團隊合作
Git flow 與團隊合作
Bo-Yi Wu
COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
Bachue Zhou
如何與全世界分享你的 Library
如何與全世界分享你的 Library
Mu Chun Wang
GCP 的應用
GCP 的應用
Patrick Her
Software Engineer Talk
Software Engineer Talk
Larry Cai
Coscup2011: porting android to brand-new cpu architecture
Coscup2011: porting android to brand-new cpu architecture
lusecheng
Learning to Use Git | WeiYuan
Learning to Use Git | WeiYuan
Wei-Yuan Chang
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Chu-Siang Lai
Bitbucket pipeline CI
Bitbucket pipeline CI
Zero Huang
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰
Will Huang
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
Bo-Yi Wu
Similaire à CICD Workshop 20180922
(20)
Build Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratch
How to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B service
Cocoa on Rails 4th
Cocoa on Rails 4th
用 Drone 打造輕量級容器持續交付平台
用 Drone 打造輕量級容器持續交付平台
Github初上手教學
Github初上手教學
Git and Github basic with SourceTree
Git and Github basic with SourceTree
Git 入门实战
Git 入门实战
Git 入門與實作
Git 入門與實作
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
Git flow 與團隊合作
Git flow 與團隊合作
COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
如何與全世界分享你的 Library
如何與全世界分享你的 Library
GCP 的應用
GCP 的應用
Software Engineer Talk
Software Engineer Talk
Coscup2011: porting android to brand-new cpu architecture
Coscup2011: porting android to brand-new cpu architecture
Learning to Use Git | WeiYuan
Learning to Use Git | WeiYuan
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Bitbucket pipeline CI
Bitbucket pipeline CI
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
CICD Workshop 20180922
1.
We Are A
Team!! 1
2.
我們即將接手一個 專案 2
3.
3
4.
密碼產生服務 password password password password 4
5.
DEMO 5
6.
解決了市場需求 那現在可以解決自己的 生理需求了嗎 非功能性需求 6
7.
接下來,就交給你們了 7
8.
1. 登入自己的 Gitlab
帳號 2. Fork unipass project (https://gitlab.com/earou/unipass) 3. 進入 Cloud9 環境 4. git clone https://gitlab.com/{GITLAB_ID}/unipass.git Chat Room: https://gitter.im/cicd-workshop-tw/Lobby 專案之初 8
9.
腦力激盪 1. 想像一下你剛換新工作,或換專案。 2. 你拿到了一份程式原始碼。 3.
5 分鐘小組討論時間,試著提出一些問題。 9
10.
9/22 小組討論 1 1.
要怎麼 build 環境,怎麼看到結果,plugin 要麼加 2. 必要的第三方軟體,如何準備開發環境 3. 專案進入點,config property,from QA 10
11.
Exercise 1 目標:自動化建置,執行 延伸閱讀 Continuous Delivery
中文版 第一章 Page5-6 用自動化腳本取代詳細的說 明文件。 如何讓所有參與這個專案的人,快速建立本機測試環境 11
12.
腦力激盪 1. 程式跑起來了!! 2. 重新檢視一下
code structure 3. 思考每個資料夾名稱的意義 12
13.
Exercise 2 目標:重整專案結構 延伸閱讀 Continuous Delivery
中文版 第二章 Page33-35 對所有內容進行版本控制。 讓腳本處理的範圍可以被明確劃分 13
14.
腦力激盪 1. 試著做一些修改吧 2. 怎麼確認系統跑起來沒問題? 3.
怎麼和其他人溝通? 4. 5 分鐘小組討論時間 14
15.
9/22 小組討論 2 1.
找本人 2. regression test 3. 測試用 branch 4. 加版號 5. 15
16.
Exercise 3 目標:快速掌握系統狀態 延伸閱讀 Continuous Delivery
中文版 第二章 Page47-48 每個人都應該能夠非常容易 的看到目前軟體的某個特定 版本部署到各種環境上的具 體設置資訊。 讓每次的變更都可以被辨識,並且在早期定義 Health Check 16
17.
17
18.
Version 要 release 出去的 使用者面向的 Build
Id 內部溝通的 開發測試面向的 18
19.
腦力激盪 1. 什麼是 CI,持續整合? 2.
2 分鐘小組討論時間 19
20.
9/22 小組討論 3 寫完
code 以後,做一些測試,unit test, feature test, test coverage, 確認 build 完成,deploy 到 qa 然後是 production。 20
21.
Exercise 4 目標:內建品質,提交測試 延伸閱讀 Continuous Delivery
中文版 第一章 Page26-27 若能在尚未將程式簽入版本 控制之前,就發現並修復錯 誤,代價是最小的。 不用建置就可進行的測試, 或是對單一元件 (或角色) 即可做的測試。 21
22.
Lint (檢查 Coding
Style ) Vet (預先檢查 Runtime 錯誤) Unit Test (最小單元的程式邏輯檢查) 22
23.
腦力激盪 1. 整合測試不同於 Unit
Test,需要將整個系統環 境建立起來測試。 2. 人工整合測試 vs 自動化整合測試 23
24.
Exercise 5 目標:自動化整合測試(驗收測試) 延伸閱讀 Continuous Delivery
中文版 第五章 Page125-128 提交測試對於多種錯誤的發 現而言,是非常優秀的試金 石。然而,有許多類型的錯誤 是它無法捕獲的。 24 好寫好維護才是重點(可先避免使用者介面測試)
25.
書中自有黃金屋 1. 整個團隊都是驗收測試的擁有者。p127(並非只有 QE
在做) 2. 開發人員必須能在自己的開發環境中執行自動化驗收測試。p127 3. 當執行失敗時,不管是原始碼的失敗或是測試案例的失敗,都一視同仁進行修復, 同等重要。 4. 常見的誤區:手動測試功能邏輯後,就忽略自動化測試的失敗,延到以後有空再 修。 25
26.
腦力激盪 1. 如何建立團隊紀律? 2. CI
Pipeline 26
27.
Exercise 6 目標:完成 CI
Pipeline 延伸閱讀 Continuous Delivery 中文版 第三章 Page55-83 提交前先在本地執行全部的 提交測試,在還沒提交前發 現並修復問題,修復成本就 越低。 27 決定我們要交付什麼東西,Artifact 產出物 建立一個基本提交紀律
28.
腦力激盪 1. 新功能開發完成,通過 UT、和自動化功能測試 後,還需要經過什麼樣的程序,才有把握正式上 線。 2.
5 分鐘小組討論時間。 28
29.
9/22 小組討論 4 1.
部署到客戶的驗收機,給客戶驗收 stanley 2. 29
30.
GitHub Flow Create Branch Code Commit Create PR/MR Deploy To Production Merge BackReview 30 We Are
Here Master, 主線, 穩定版本 創建開發用分支
31.
GitHub Flow Create Branch Code Commit Create PR/MR Deploy To Production Merge BackReview 31 We Are
Here
32.
GitHub Flow Create Branch Code Commit Create PR/MR Deploy To Production Merge BackReview 32 We Are
Here
33.
GitHub Flow Create Branch Code Commit Create PR/MR Deploy To Production Merge BackReview 33 We Are
Here
34.
GitHub Flow Create Branch Code Commit Create PR/MR Deploy To Production Merge BackReview 34 We Are
Here
35.
GitHub Flow Create Branch Code Commit Create PR/MR Deploy To Production Merge BackReview 35 We Are
Here
36.
延伸閱讀 Continuous Delivery 中文版 第十四章
Page407-410 主線開發 不用分支也可以做複雜修改 36
37.
建立一個可被 Review 的環境 1.
登入 GCP,新增一個 project 2. 建立 GCP SQL instance,開啟 ip 3. 新增 GCE instance 4. 登入 gcloud,並指定專案 5. 複製產出物到 GCE instance 6. 修改 default conf 37
38.
腦力激盪 1. 可以部署的產出物要去哪裡拿? 2. 測試人員要自己
build? 3. 大家測的版本都不一樣 38
39.
Exercise 7 目標:所有環境使用同樣的產出物 延伸閱讀 Continuous Delivery
中文版 第七章 Page175-177 提交階段的產出物應該一直 在部署流水線的 Job 中被重 複使用,如果可能,最後發佈 給使用者或 Prod 環境。 39 不因環境不同而重新建置 Artifact 產出物管理
40.
40 GCP Storage QA env Unipass
Artifacts 專案相關人員可存取
41.
建立 GS Bucket 1.
命名是全球唯一的,所以大家的應該都不一樣 2. 我取名為 unipass-earou 3. 事後可以砍掉 41
42.
腦力激盪 1. 設定檔怎麼辦? 42
43.
Exercise 8 目標:加入設置檔管理 延伸閱讀 Continuous Delivery
中文版 第二章 Page47 將應用程式的設置與原始程 式碼保存在同一個 repo 中, 但要把設置的值保存在別 處。 43 使用者密碼這類型的敏感資訊不應該簽入版本控制。
44.
44 GCP Storage QA env Unipass
Artifacts Config Files 只有維運人員/或是特定執行個體 具備存取機敏訊息的權限 設置檔範例 不含機敏資料的設置資訊 版本控制 Git
45.
Exercise 9 目標:部署策略,完成 CD
Pipeline 延伸閱讀 Continuous Delivery 中文版 第二章 Page33 為了重新建立測試與生產環 境,將所有必需的資訊保存 起來也是很重要的。 45 Infra As Code
46.
環境建立進化版 1. 手動試跑 startup
script 2. Infra-as-code 建立 instance template 3. 建立 instance group 和負載平衡器 4. immutable 46
47.
47 GCP Storage Unipass Artifacts Config
Files QA env Deploy Info
48.
48 GCP Storage Unipass Artifacts Config
Files QA env Deploy Info PT env Prod env Canary env
49.
49 Prod env Canary env DNS
服務權重控制 unipass.com canary.unipass.com 95% 5%
50.
我們完成了!! 50
51.
Exercise 10 目標:工具導入 延伸閱讀 Continuous Delivery
中文版 第五章 讓測試團隊只要自己點擊按 鈕,就能將某個特定版本部 署到測試環境中。維運人員 也可以用一樣的方式部署到 Production。 51 整個交付期間,全部的人都能具有兩種權利,那 就是他能使用任何他想使用的版本,也能看到整 個發布流程。整個回饋鍊都是透明的。
52.
發行(release) 管理 1. release
後會立刻 commit version file(跳號) 2. tag release & release notes (change log) 52
53.
Exercise 11 目標:加入維運工程 53 收集各個環境的 log,可視化,告警 有良好的
log 資訊才能有好的 feedback
54.
自我總結 1. 腳本都可以重複執行,而且不需而外的說明文件 2. 不同的環境裡面使用相同的腳本 3.
部署策略是實作一個簡單的套件管理腳本。 4. Docker 和 K8S 可以幫我們什麼? 54
55.
環境回收 1. 將資源砍掉 2. 將防火牆關掉 3.
砍掉 GS bucket 4. 砍掉 LB 5. Commit 變更到 fork 專案 55
Télécharger maintenant