Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
使用octopus deploy
做自動部署
By Alan Tsai 2018-01-18
快速上手
關於我
2
▰Alan Tsai 蔡孟玹
▰後端工程師
▻Web Developer - Asp .Net Mvc
http://blog.alantsai.net
http://fb.alantsai.net
http://ln.alants...
Agenda
3
Agenda
4
▰什麼是自動部署
▻傳統部署的問題
▰Octopus Deploy
▻架構介紹
▻環境需求
▻設定
▰日常使用
▰結語
什麼是自動部署
從修改到部署
5
修改到部署會經過的步奏
6
需求
開發
建制測試
部署
Continues Integration
7
需求
開發
建制測試
部署
Continuous Delivery
8
需求
開發
建制測試
部署
部署有什麼難?
9
▰不同環境
▻Testing
▻Production
▰不同設定
▰多台機器
▰每次部署是否一致?
▻裝在哪裡
▻權限設定
▰目前最新在那一版?
▻退板
▰部署是否需要授權?
▻手動通過?
▻部署通知
Continuous Delivery vs Continous Deployment
10
解決方案
11
▰Release Management / Continuous Delivery (Deployment)
System
▰Continues Integration(CI)直接發佈上去
Octopus Deploy
架構介紹
12
架構介紹
13
MSSQL
Octopus Server
Tentacle Calamari
Server
Tentacle Calamari
Server
Tentacle Calamari
Server
資安
14
▰Octopus Server存在DB的資訊有加密
▻所以備份也需要包含Master Key
▰Tentacle有兩種模式
▻Listening
▻需要特定的Octopus 資訊才有
▻Pulling
▰Octopus 和 Tent...
Octopus Server
15
▰Microsoft Sql Server
▻2008 +
▻Express +
▰.Net Framework
▻Octopus 3.0.0 ~ 3.3.27 = 4.5 +
▻Octopus 3.4 = ...
Deployment Target
16
▰Windows - Tentacle
▰Server version
▻2003 SP2 +
▰.Net Framework
▻Tentacle 3.0 => 4.0+
▻Tentacle 3.1 =...
License
17
▰Community版本
▻5臺機器免費(2018/01/18)
▻隨時有可能變動
▰安裝一定要License Key
▻https://octopus.com/licenses/trial
▻試用45天,之後變Commu...
Octopus Deploy – 安裝
18
下載
19
▰https://octopus.com/downloads
▰Octopus Deploy Server
▻4.1.9 – x64
▰Tentacle
▻3.16.3 - x64
Octopus Deploy – 安裝
Server
20
Octopus Server
21
Octopus Server
22
Octopus Server
23
▰DB 可以先建立或者直接打 – 不存在會問是否建立
Octopus Server
24
Octopus Server
25
Octopus Server
26
Octopus Server
27
Octopus Server
28
Octopus Server
29
Octopus Deploy – 安裝
Tentacle
30
Tentacle
31
Tentacle
32
Tentacle
33
Tentacle
34
▰回到Octopus Server – 建立Environment
Tentacle
35
Tentacle
36
Tentacle
37
Tentacle
38
Tentacle
39
Tentacle
40
Tentacle – 測試連線
41
Tentacle
42
Tentacle
43
Octopus Deploy
設定介紹
44
設定架構
45
▰架構方面
▰Infrastructure
▻Environment
▻Deployment Target
▰Library
▻Package
▻Variable
▻Scripts
▰專案方面
▰Project
▻Process...
Octopus Deploy – 設定
架構
46
Environment
47
▰定義環境架構
▰常見的有
▻Testing
▻Production
▰一台機器可以在多個Environment
▰主要用於更新流程
▰參考文件
▰https://octopus.com/docs/infrastr...
Deployment Target
48
▰可以被部署的機器
▰Windows – 有裝 Tentacle的機器
▰Server Role
▻定義某一個Target的角色
▻例如
▻Web-Server
▻DB
▻Service
▰參考文件
▰...
Package
49
▰可更新的程式
▰不同格式
▻Nuget
▻Tar、Zip
▻Docker Image
▻JAR、WAR、EAR、RAR
▰Package Id + Version組成
▰例如:
▰SimpleAspNetMvcApp.1...
.Net Package做法 - OctoPack
50
▰.Net 程式
▻可以使用 OctoPack
▻MSbuildTask產生nuget package
▻也可以用nuget.exe產生
▻或者Octo.exe
▰參考文件
▰建立pac...
Package
51
Octopus Deploy – 設定
專案
52
Project
53
▰一組設定用來代表最後部署的資訊
▰共用從架構設定的內容
▰參考資料
▻https://octopus.com/docs/deployment-process/projects
Process
54
▰Step
▻發佈的時候執行的步奏
▻例如
▻需要人工審核才能繼續
▻寄信
▰可以做Rolling Update
▻一台一台更新而不是一次更新
▰參考資料
▻https://octopus.com/docs/deploym...
Release
55
▰定義一個要發佈的Snapshot
▰會記錄
▻那些process會執行
▻那個package版本會使用
▻那些Environment參數
▰參考資料
▻https://octopus.com/docs/deploymen...
實際Deploy
56
▰預設是一個Environment到另外一個
▰只有上一個ok之後才能夠往下
Deploy執行結果
57
測試 出錯 避免 發佈到正式
58
variable
59
▰定義參數值替換
▰同一個key能夠定義不同層級(scope)的
值
▻例如依照Environment不同給予不同的值
▰可以自動替換config裡面的值:
▻Appsetting
▻connectionstring
▰...
日常使用
60
更版動作
61
git tag
建制
Package
上傳
建立
Release
發佈
發佈動作
62
Deploy
Testing
測試
Deploy
Production
Demo
63
▰V1.0.0
▻發佈有問題
▻Block Production
▰V1.1.0
▻修正問題
▰V1.1.1
▻參數設定修改
▻第一次部署沒有設定Variable
▻退板
▻第二次部署有設定Variable
▻Testing和P...
結語
64
結語
65
▰Continues Delivery能做就做
▰最好結合CI一起做
▻直接CI Package完自動上CD
▻人只需要手動Deploy就好
▻甚至都別手動直接Continues Deployment
▰有時候只是要管理正式機器的上...
參考資料
66
▰官方Getting Started
▻https://octopus.com/docs/getting-started
▰用Docker測試Octopus Deploy功能
▻只想測試功能可以用我build的Docker im...
67
Q&A
感謝大家
CREDITS
Special thanks to all the people who made and
released these awesome resources for free:
▰ Presentation template b...
Upcoming SlideShare
Loading in …5
×

用Octopus deploy做自動部署 - 快速上手

777 views

Published on

介紹如何使用Octopus Deploy這個部署工具
透過使用Octopus Deploy達到中央管控一次部署在多台機器上面
適合架設在客戶的機器裡面做更新用

Published in: Software
  • Be the first to comment

  • Be the first to like this

用Octopus deploy做自動部署 - 快速上手

  1. 1. 使用octopus deploy 做自動部署 By Alan Tsai 2018-01-18 快速上手
  2. 2. 關於我 2 ▰Alan Tsai 蔡孟玹 ▰後端工程師 ▻Web Developer - Asp .Net Mvc http://blog.alantsai.net http://fb.alantsai.net http://ln.alantsai.net http://twitter.alantsai.net http://ss.alantsai.net contact@alantsai.net http://gitter.alantsai.net
  3. 3. Agenda 3
  4. 4. Agenda 4 ▰什麼是自動部署 ▻傳統部署的問題 ▰Octopus Deploy ▻架構介紹 ▻環境需求 ▻設定 ▰日常使用 ▰結語
  5. 5. 什麼是自動部署 從修改到部署 5
  6. 6. 修改到部署會經過的步奏 6 需求 開發 建制測試 部署
  7. 7. Continues Integration 7 需求 開發 建制測試 部署
  8. 8. Continuous Delivery 8 需求 開發 建制測試 部署
  9. 9. 部署有什麼難? 9 ▰不同環境 ▻Testing ▻Production ▰不同設定 ▰多台機器 ▰每次部署是否一致? ▻裝在哪裡 ▻權限設定 ▰目前最新在那一版? ▻退板 ▰部署是否需要授權? ▻手動通過? ▻部署通知
  10. 10. Continuous Delivery vs Continous Deployment 10
  11. 11. 解決方案 11 ▰Release Management / Continuous Delivery (Deployment) System ▰Continues Integration(CI)直接發佈上去
  12. 12. Octopus Deploy 架構介紹 12
  13. 13. 架構介紹 13 MSSQL Octopus Server Tentacle Calamari Server Tentacle Calamari Server Tentacle Calamari Server
  14. 14. 資安 14 ▰Octopus Server存在DB的資訊有加密 ▻所以備份也需要包含Master Key ▰Tentacle有兩種模式 ▻Listening ▻需要特定的Octopus 資訊才有 ▻Pulling ▰Octopus 和 Tentacle ▻全程用SSL加密
  15. 15. Octopus Server 15 ▰Microsoft Sql Server ▻2008 + ▻Express + ▰.Net Framework ▻Octopus 3.0.0 ~ 3.3.27 = 4.5 + ▻Octopus 3.4 = 4.5.1 + ▰Windows Server ▻2008 SP2 +
  16. 16. Deployment Target 16 ▰Windows - Tentacle ▰Server version ▻2003 SP2 + ▰.Net Framework ▻Tentacle 3.0 => 4.0+ ▻Tentacle 3.1 => 4.5+ ▰Powershell ▻2.0 + ▰Port 10933 ▰Linux ▰SSH ▰Calamari ▻Mono ▻.Net Core
  17. 17. License 17 ▰Community版本 ▻5臺機器免費(2018/01/18) ▻隨時有可能變動 ▰安裝一定要License Key ▻https://octopus.com/licenses/trial ▻試用45天,之後變Community ▰https://octopus.com/purchase
  18. 18. Octopus Deploy – 安裝 18
  19. 19. 下載 19 ▰https://octopus.com/downloads ▰Octopus Deploy Server ▻4.1.9 – x64 ▰Tentacle ▻3.16.3 - x64
  20. 20. Octopus Deploy – 安裝 Server 20
  21. 21. Octopus Server 21
  22. 22. Octopus Server 22
  23. 23. Octopus Server 23 ▰DB 可以先建立或者直接打 – 不存在會問是否建立
  24. 24. Octopus Server 24
  25. 25. Octopus Server 25
  26. 26. Octopus Server 26
  27. 27. Octopus Server 27
  28. 28. Octopus Server 28
  29. 29. Octopus Server 29
  30. 30. Octopus Deploy – 安裝 Tentacle 30
  31. 31. Tentacle 31
  32. 32. Tentacle 32
  33. 33. Tentacle 33
  34. 34. Tentacle 34 ▰回到Octopus Server – 建立Environment
  35. 35. Tentacle 35
  36. 36. Tentacle 36
  37. 37. Tentacle 37
  38. 38. Tentacle 38
  39. 39. Tentacle 39
  40. 40. Tentacle 40
  41. 41. Tentacle – 測試連線 41
  42. 42. Tentacle 42
  43. 43. Tentacle 43
  44. 44. Octopus Deploy 設定介紹 44
  45. 45. 設定架構 45 ▰架構方面 ▰Infrastructure ▻Environment ▻Deployment Target ▰Library ▻Package ▻Variable ▻Scripts ▰專案方面 ▰Project ▻Process Step ▻Release ▰Deploy
  46. 46. Octopus Deploy – 設定 架構 46
  47. 47. Environment 47 ▰定義環境架構 ▰常見的有 ▻Testing ▻Production ▰一台機器可以在多個Environment ▰主要用於更新流程 ▰參考文件 ▰https://octopus.com/docs/infrastructure /environments
  48. 48. Deployment Target 48 ▰可以被部署的機器 ▰Windows – 有裝 Tentacle的機器 ▰Server Role ▻定義某一個Target的角色 ▻例如 ▻Web-Server ▻DB ▻Service ▰參考文件 ▰Windows Deployment Target ▻https://octopus.com/docs/infrastructure/windo ws-targets ▰Linux (SSH) ▻https://octopus.com/docs/infrastructure/ssh- targets ▰其他Target ▻https://octopus.com/docs/infrastructure
  49. 49. Package 49 ▰可更新的程式 ▰不同格式 ▻Nuget ▻Tar、Zip ▻Docker Image ▻JAR、WAR、EAR、RAR ▰Package Id + Version組成 ▰例如: ▰SimpleAspNetMvcApp.1.1.1.nupkg ▻Package Id = SimpleAspNetMvcApp ▻版本 = 1.1.1 ▻格式 = nuget
  50. 50. .Net Package做法 - OctoPack 50 ▰.Net 程式 ▻可以使用 OctoPack ▻MSbuildTask產生nuget package ▻也可以用nuget.exe產生 ▻或者Octo.exe ▰參考文件 ▰建立package的參考資料 ▻https://octopus.com/docs/packaging-applications ▰支援的格式 ▻https://octopus.com/docs/packaging- applications/supported-packages ▰OctoPack ▻https://octopus.com/docs/packaging- applications/creating-packages/nuget-packages/using- octopack
  51. 51. Package 51
  52. 52. Octopus Deploy – 設定 專案 52
  53. 53. Project 53 ▰一組設定用來代表最後部署的資訊 ▰共用從架構設定的內容 ▰參考資料 ▻https://octopus.com/docs/deployment-process/projects
  54. 54. Process 54 ▰Step ▻發佈的時候執行的步奏 ▻例如 ▻需要人工審核才能繼續 ▻寄信 ▰可以做Rolling Update ▻一台一台更新而不是一次更新 ▰參考資料 ▻https://octopus.com/docs/deployment-process/steps
  55. 55. Release 55 ▰定義一個要發佈的Snapshot ▰會記錄 ▻那些process會執行 ▻那個package版本會使用 ▻那些Environment參數 ▰參考資料 ▻https://octopus.com/docs/deployment-process/releases
  56. 56. 實際Deploy 56 ▰預設是一個Environment到另外一個 ▰只有上一個ok之後才能夠往下
  57. 57. Deploy執行結果 57
  58. 58. 測試 出錯 避免 發佈到正式 58
  59. 59. variable 59 ▰定義參數值替換 ▰同一個key能夠定義不同層級(scope)的 值 ▻例如依照Environment不同給予不同的值 ▰可以自動替換config裡面的值: ▻Appsetting ▻connectionstring ▰參考文件 ▰https://octopus.com/docs/deployment- process/variables
  60. 60. 日常使用 60
  61. 61. 更版動作 61 git tag 建制 Package 上傳 建立 Release 發佈
  62. 62. 發佈動作 62 Deploy Testing 測試 Deploy Production
  63. 63. Demo 63 ▰V1.0.0 ▻發佈有問題 ▻Block Production ▰V1.1.0 ▻修正問題 ▰V1.1.1 ▻參數設定修改 ▻第一次部署沒有設定Variable ▻退板 ▻第二次部署有設定Variable ▻Testing和Production不同
  64. 64. 結語 64
  65. 65. 結語 65 ▰Continues Delivery能做就做 ▰最好結合CI一起做 ▻直接CI Package完自動上CD ▻人只需要手動Deploy就好 ▻甚至都別手動直接Continues Deployment ▰有時候只是要管理正式機器的上版流程 ▻這個時候Octopus Deploy就很適合 ▻因為環境關係不一定能夠做整套
  66. 66. 參考資料 66 ▰官方Getting Started ▻https://octopus.com/docs/getting-started ▰用Docker測試Octopus Deploy功能 ▻只想測試功能可以用我build的Docker image ▻https://hub.docker.com/r/alantsai/octopus-tentacle/ ▰整個DevOps介紹 ▻部落格系列:從.Net工程師的角度來看DevOps
  67. 67. 67 Q&A 感謝大家
  68. 68. CREDITS Special thanks to all the people who made and released these awesome resources for free: ▰ Presentation template by SlidesCarnival ▰ Photographs by Startup Stock Photos 68

×