SlideShare a Scribd company logo
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

More Related Content

PPTX
Deploy to Azure by ??? Azure Repos or GitHub
PDF
DevOps and Compliance and Security
PPTX
What's new Azure DevOps in //Build 2019
PDF
Azure boards for beginners
PDF
Introduce TFSUG and Azure DevOps Server 2020
PDF
Azure Boards and Azure Test Plans inside out.
PDF
Azure DevOpsとセキュリティ
PDF
Azure DevOps's security
Deploy to Azure by ??? Azure Repos or GitHub
DevOps and Compliance and Security
What's new Azure DevOps in //Build 2019
Azure boards for beginners
Introduce TFSUG and Azure DevOps Server 2020
Azure Boards and Azure Test Plans inside out.
Azure DevOpsとセキュリティ
Azure DevOps's security

What's hot (20)

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

More from Kazushi Kamegawa (13)

PDF
Ignite 2021秋 recap - 開発者向け新機能紹介
PDF
DevOps and compliance and security
PPTX
What's Azure DevOps
PDF
はじめてのコンテナーDocker & Windows & Linux
PPTX
その後のBash on windows
PDF
Windows10時代のクロスプラットフォーム開発
PDF
Cross Platform CI for Visual Studio Online
PDF
はじめてのTeam Foundation ServerとVisual Studio Online
PDF
トラブル発生、その時あなたがすることは?
PDF
PowerShell and Release Management Server
PDF
Application insights で行ってみよう
PDF
TypeScript And ALM
PDF
Planning Effective Test Plan
Ignite 2021秋 recap - 開発者向け新機能紹介
DevOps and compliance and security
What's Azure DevOps
はじめてのコンテナーDocker & Windows & Linux
その後のBash on windows
Windows10時代のクロスプラットフォーム開発
Cross Platform CI for Visual Studio Online
はじめてのTeam Foundation ServerとVisual Studio Online
トラブル発生、その時あなたがすることは?
PowerShell and Release Management Server
Application insights で行ってみよう
TypeScript And ALM
Planning Effective Test Plan
Ad

Deploy Strategy with Azure Pipelines