SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Azure Pipelinesとデプロイ戦略
かめがわ かずし(kkamegawa)
Who am I?
personal:
name: KAMEGAWA Kazushi(Last-First)
alias: kkamegawa
community:
MVP: Microsoft MVP for Developer Technologies(2009-)
Users Group: Team Foundation Server Users Group
URL: https://dev.azure.com/tfsug/tfsuginfo
Blog:
URL: https://kkamegawa.hatenablog.jp
devblog radio: https://devblog.connpass.com/
This contents based on 2021/9/4
Build
Deploy
Build
Deploy
Build
Deploy
Target
ビルド&デプロイの基本的な構成
Target Target
はじめてのCI
CI/CDを分離 CDをより高度に
リリースの悩み
別のリリースで意図しない
上書きされてしまった
リリースして
壊れないかな
DevOpsプラクティスで使うデプロイ戦略
Blue/Green Deploy
Canary Release
Rolling Deploy
Rolling Deploy
複数の環境(サーバーなど)へ順番に展開
展開環境をLoad Balancerから切り離し
デプロイ
Load Balancerに再接続
Blue/Green Deploy
エラーが起きてもロールバックできるように
DB丸ごと変えているけど、そうもいかない場合も
ある
Canary Release
複数あるインスタンスを少しずつ入れ替える
エラーレートなどのデプロイ基準を見ながら調整
Azure Pipelinesでの実装
Pipelines(YAML) Environments
Environmentsとは
YAML/Classicデプロイで使用
デプロイターゲットに関して制限/
チェックを行うための機能
None / Kubernetes/ VMが
選択可能
Environmentsのチェック
 指定したブランチのみリリース
 指定した時間帯のみリリース
 コンテナーイメージの使用可否
 排他ロック
 Azure Function呼び出し
 REST API呼び出し
 Azure Monitorアラート確認
 指定したtemplate使っているか
Rolling Deploy
全体を少しずつ更新していく
Azure PipelinesではVMのみ
サポート
Deployment jobs - Azure Pipelines | Microsoft Docs
strategy:
rolling:
maxParallel: [ number or percentage as x% ]
preDeploy:
steps:
- script: [ script | bash | pwsh | powershell | checkout |
task | templateReference ]
deploy:
steps:
Blue/Green Deploy
接続先を切り替えるので、Azure
PipelinesのYAMLに専用構文
はなし
Web AppsならSwap, VMなら
ロードバランサーから切り離し
Canary Deploy
エラーレートなどを見ながらトラ
フィックを少しずつ移行する
AKSだとpodを少しずつ入れ替
える
デプロイ ジョブ - Azure Pipelines | Microsoft Docs
Environmentsとデプロイ
デプロイの組み合わせ方
Environmentsの役割
人間がやるとしんどいチェックを
やってくれる
デプロイ履歴の確認
システム間連携
Environments
Empty:なんでも(Web Apps等)
Kubernetes(AKS/EKS/GKEな
ど)
Virtual Machine
Environmentsのわけ方(一例)
本番用、開発用
承認の有無
デプロイに使用するブランチ
デプロイ対象時間(夜間、いつでも等)
デプロイ先(リージョン、リソースグループ、サブスクリプ
ション)
セキュリティでの分割
マルウェアチェック、シークレットキーチェック等
こんなときどうする?
複数のレポジトリで一つのサービス
一つのレポジトリで複数のターゲット
Functions / Web / DB / インフラ
Kubernetes
複数レポジトリで単一サービス
本番/本番以外(branch制御)
本番のEnvironmentには承認、
Monitor Queryを適用
開発にはMonitorのみなど
単一レポジトリで複数デプロイ
本番 / 本番以外(Branch制御)
使用するパイプラインごとに
Environmentを分割する
Environmentの管理者が違う
デプロイ履歴の追跡に
Environments仕様変更
Sprint 188の仕様変更
今までは誰でも作れてしまってい
たけど、セキュリティ上まずいので
誰でも作れなくしましたという話
一部MS Learnでもこのために
失敗していたので注意。
New policies for personal access tokens | Microsoft Docs
セキュリティでの活用例
コンプライアンス&セキュリティの
ために使う
詳細は以前のセッションの資料で
どうぞ
DevOps and Compliance and Security (slideshare.net)
まとめ
Azure Pipelinesが想定しているデプロイスタイ
ルがあるので、あう場合は使うと便利
使えなかったら…カスタマイズ地獄?
Environmentに関してはまずここから
ターゲット環境を作成する - Azure Pipelines | Microsoft Docs

Mais conteúdo relacionado

Mais procurados

Visual studioonlineとwebサイトで始めるci/cdの第一歩
Visual studioonlineとwebサイトで始めるci/cdの第一歩Visual studioonlineとwebサイトで始めるci/cdの第一歩
Visual studioonlineとwebサイトで始めるci/cdの第一歩
Kazunori Hamamoto
 

Mais procurados (20)

Ignite 2021 振り返り(DevOps)
Ignite 2021 振り返り(DevOps)Ignite 2021 振り返り(DevOps)
Ignite 2021 振り返り(DevOps)
 
Azure DevOps ハンズオン Vo.3 ~Delivery Plans を用いたプロジェクトのスケジュール管理~
Azure DevOps ハンズオン Vo.3 ~Delivery Plans を用いたプロジェクトのスケジュール管理~Azure DevOps ハンズオン Vo.3 ~Delivery Plans を用いたプロジェクトのスケジュール管理~
Azure DevOps ハンズオン Vo.3 ~Delivery Plans を用いたプロジェクトのスケジュール管理~
 
Getting Start for Azure Pipelines
Getting Start for Azure PipelinesGetting Start for Azure Pipelines
Getting Start for Azure Pipelines
 
Azure DevOps Management in Organization
Azure DevOps Management in OrganizationAzure DevOps Management in Organization
Azure DevOps Management in Organization
 
NET5 and Diagnostics
NET5 and DiagnosticsNET5 and Diagnostics
NET5 and Diagnostics
 
How to create your own Azure Pipeline's image
How to create your own Azure Pipeline's imageHow to create your own Azure Pipeline's image
How to create your own Azure Pipeline's image
 
Azure DevOps入門~TechLab編
Azure DevOps入門~TechLab編Azure DevOps入門~TechLab編
Azure DevOps入門~TechLab編
 
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesAzure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure Pipelines
 
Visual studioonlineとwebサイトで始めるci/cdの第一歩
Visual studioonlineとwebサイトで始めるci/cdの第一歩Visual studioonlineとwebサイトで始めるci/cdの第一歩
Visual studioonlineとwebサイトで始めるci/cdの第一歩
 
Azure DevOps ハンズオン Vo.1 ~Azure Boards を用いたアジャイル計画とポートフォリオマネジメント~
Azure DevOps ハンズオン Vo.1 ~Azure Boards を用いたアジャイル計画とポートフォリオマネジメント~Azure DevOps ハンズオン Vo.1 ~Azure Boards を用いたアジャイル計画とポートフォリオマネジメント~
Azure DevOps ハンズオン Vo.1 ~Azure Boards を用いたアジャイル計画とポートフォリオマネジメント~
 
Static website + Piplelines
Static website + PiplelinesStatic website + Piplelines
Static website + Piplelines
 
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
 
Visual studio online and Agile
Visual studio online and AgileVisual studio online and Agile
Visual studio online and Agile
 
「何もしないのにCIが失敗した」を防ぐ
「何もしないのにCIが失敗した」を防ぐ「何もしないのにCIが失敗した」を防ぐ
「何もしないのにCIが失敗した」を防ぐ
 
Visual Studio 2019 新機能を時間のかぎりできるだけ!
Visual Studio 2019 新機能を時間のかぎりできるだけ!Visual Studio 2019 新機能を時間のかぎりできるだけ!
Visual Studio 2019 新機能を時間のかぎりできるだけ!
 
PHPerだってサーバーレスしたい!
PHPerだってサーバーレスしたい!PHPerだってサーバーレスしたい!
PHPerだってサーバーレスしたい!
 
Azure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewAzure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - Overview
 
”試してみた”で終わらない サーバーレスアプリケーションの実践開発
”試してみた”で終わらない サーバーレスアプリケーションの実践開発”試してみた”で終わらない サーバーレスアプリケーションの実践開発
”試してみた”で終わらない サーバーレスアプリケーションの実践開発
 
[MR09] デスクトップ アプリをストアから配布するための A to Z
[MR09] デスクトップ アプリをストアから配布するための A to Z[MR09] デスクトップ アプリをストアから配布するための A to Z
[MR09] デスクトップ アプリをストアから配布するための A to Z
 
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
 

Semelhante a Deploy Strategy with Azure Pipelines

cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
Takeshi Morikawa
 

Semelhante a Deploy Strategy with Azure Pipelines (20)

Ignite 2021秋 recap - 開発者向け新機能紹介
Ignite 2021秋 recap - 開発者向け新機能紹介Ignite 2021秋 recap - 開発者向け新機能紹介
Ignite 2021秋 recap - 開発者向け新機能紹介
 
クラウドで運用するCouchbase Server
クラウドで運用するCouchbase Serverクラウドで運用するCouchbase Server
クラウドで運用するCouchbase Server
 
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
 
Drupal deployment trial on Engine Yard
Drupal deployment trial on Engine YardDrupal deployment trial on Engine Yard
Drupal deployment trial on Engine Yard
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門
 
ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方
 
俺とHashiCorp
俺とHashiCorp俺とHashiCorp
俺とHashiCorp
 
Nano Server First Step
Nano Server First StepNano Server First Step
Nano Server First Step
 
de:code 2019 Cloud トラック 総まとめ! 完全版
de:code 2019 Cloud トラック 総まとめ! 完全版de:code 2019 Cloud トラック 総まとめ! 完全版
de:code 2019 Cloud トラック 総まとめ! 完全版
 
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
 
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure
 
de:code 2019 Cloud トラック 総まとめ!
de:code 2019 Cloud トラック 総まとめ!de:code 2019 Cloud トラック 総まとめ!
de:code 2019 Cloud トラック 総まとめ!
 
LINE BOOT AWARDS に挑む ~テクノロジーファーストでもいいじゃない
LINE BOOT AWARDS に挑む ~テクノロジーファーストでもいいじゃないLINE BOOT AWARDS に挑む ~テクノロジーファーストでもいいじゃない
LINE BOOT AWARDS に挑む ~テクノロジーファーストでもいいじゃない
 
MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組みMicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組み
 
Azure AntennaでCD/CIを学んできた
Azure AntennaでCD/CIを学んできたAzure AntennaでCD/CIを学んできた
Azure AntennaでCD/CIを学んできた
 
熊本クラウド語ろう会 - Azure開発入門
熊本クラウド語ろう会 -  Azure開発入門熊本クラウド語ろう会 -  Azure開発入門
熊本クラウド語ろう会 - Azure開発入門
 
Docker Enterprise Editionで実践するCaaS
Docker Enterprise Editionで実践するCaaSDocker Enterprise Editionで実践するCaaS
Docker Enterprise Editionで実践するCaaS
 
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
 

Mais de Kazushi Kamegawa

Mais de Kazushi Kamegawa (12)

DevOps and compliance and security
DevOps and compliance and securityDevOps and compliance and security
DevOps and compliance and security
 
What's Azure DevOps
What's Azure DevOpsWhat's Azure DevOps
What's Azure DevOps
 
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxはじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & Linux
 
その後のBash on windows
その後のBash on windowsその後のBash on windows
その後のBash on windows
 
Windows10時代のクロスプラットフォーム開発
Windows10時代のクロスプラットフォーム開発Windows10時代のクロスプラットフォーム開発
Windows10時代のクロスプラットフォーム開発
 
Cross Platform CI for Visual Studio Online
Cross Platform CI for Visual Studio OnlineCross Platform CI for Visual Studio Online
Cross Platform CI for Visual Studio Online
 
はじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio OnlineはじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio Online
 
トラブル発生、その時あなたがすることは?
トラブル発生、その時あなたがすることは?トラブル発生、その時あなたがすることは?
トラブル発生、その時あなたがすることは?
 
PowerShell and Release Management Server
PowerShell and  Release Management ServerPowerShell and  Release Management Server
PowerShell and Release Management Server
 
Application insights で行ってみよう
Application insights で行ってみようApplication insights で行ってみよう
Application insights で行ってみよう
 
TypeScript And ALM
TypeScript And ALMTypeScript And ALM
TypeScript And ALM
 
Planning Effective Test Plan
Planning Effective Test PlanPlanning Effective Test Plan
Planning Effective Test Plan
 

Deploy Strategy with Azure Pipelines