SlideShare a Scribd company logo
*本資料の内容 (添付文書、リンク先などを含む) は de:code 2020 における公開日時点のものであり、予告なく変更される場合があります。
#decode20 #
Azure Kubernetes Service と
Azure DevOps による
GitOps の実践
A06
西川 彰広
日本マイクロソフト株式会社
エンタープライズクラウド アーキテクト技術本部
クラウドソリューションアーキテクト
本セッションについて
対象者
課題
ゴール
• GitOps とは何か、その効果を知りたい方
• IaC は実現したが、コードと環境が一致しているか不安
• 環境の rollback や revert がうまくいかない
• 事例を通じて GitOps の概要とその効果を理解する
セッションアジェンダ
• IaC や DevOps で得られたもの
• GitOps
• 株式会社ベルシステム24ホールディングス様での GitOps 実践例
• まとめ
IaC や DevOps で得られたもの
Programmable
Programmable Programmable
& Declarative
QA
App
Infra
Dev Prod
QA
App
Infra
Dev Prod
QA
App
Infra
Dev Prod
Infrastructure as Code (IaC)
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
🤔最新のマニフェストと今
の環境は一致する? CI ツールが攻撃されたら...
環境をロールバックしたい
んだけど...
IaC 化したけど環境構築は
手作業が多い...
GitOps
Single source of Truth
• システム全体を宣言的に定義
• あるべきシステムの状態を
Git でバージョン管理
• 承認済み変更を
自動的・自律的にシステムに適用
• ソフトウェアエージェントが
環境の整合性を確保
Kelsey Hightower
twitter.com/kelseyhightower/status/953638870888849408
GitOps: versioned CI/CD on top of declarative
infrastructure. Stop scripting and start shipping.
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
GitOps の例
デプロイ
実行
システムの
理解・管理
モニタリングGit
(image repo)
出典:www.weave.works/blog/what-is-gitops-really
デプロイ
実行
システムの
理解・管理
モニタリングGit
(image repo)
出典:www.weave.works/blog/what-is-gitops-really
デプロイ
実行
システムの
理解・管理
モニタリングGit
(image repo)
出典:www.weave.works/blog/what-is-gitops-really
Fit SecureSimple
株式会社ベルシステム24ホールディングス様
での GitOps の取り組み
事業内容
創業
取引市場
CRMソリューションに関する、アウトソーシングサービス
テクノロジーサービス/コンサルティングサービス
1982(昭和57)年9月20日
東証一部
会社概要
従業員数 グループ連結 7,802名
(2019年2月末現在)
拠点 国内:東京、札幌、大阪、福岡、沖縄 等
海外:ベトナム、タイ、台湾
営業 / 広告・宣伝 / 販売
商品提供 / サービス提供
新商品・新サービス の 提供
顧客の声 分析収集
マーケティング領域における真の課題解決に向け、
コンサルティングから実行まで担う
アフターサポート
事業内容
消費者 企業
■株式会社ポッケ (POCKE,INC.)
https://www.pocke.co.jp/
設立:2009年3月2日
WEB、その他メディアを利用した各種コンテンツの企画・制作・販売・およびこれに関するサービス運営、BtoB向けの
システム開発等を行っています
会社紹介
(C)POCKE,INC.
マネージャー
荒川 史絵 様
グループマネージャー
小堀 祥太郎 様
部長
早川 賢 様
プロダクト
オーナー
プロダクト
マネージャー
フィーチャーチーム
(
6名 (2チーム)
SRE
(
2名
UXチーム
(
2名
ユーザーサポートチーム
(
3名
プロダクト
開発・運用
ステークホルダー
Bell24拠点
Microsoft Azure
AzurePublicService
(グローバル)
Traffic Manager
AzureDevOps
Azure DNS
internet
稼働系本番環境 (東日本) 待機系本番環境 (西日本)
Git
ACSAzure ADSQL DatabaseBLOB
ステージング環境 (西日本) 砂場環境 (西日本) アシスト環境 (西日本)
AP GW AP GW
VNet VNetAzure Kubernetes Engine
Sien Application Service
Azure Kubernetes Engine
Sien Application Service
運用支援/開発支援ツール
Subscription
ポッケ
外部利用
GitOps を実践されているシステム
• コールセンターのシステム
• 以前はオンプレミスで稼働
• マイクロサービス化し、
k8s 上で稼働
理由
• k8s の強みを活かして、容易なデリバリー、変更に強い、障害に強い
システムや仕組みにしたい
• 価値の源泉であるアプリケーション開発に集中したい
効果
• DDD (deploy / day / developer) の向上
(3ヶ月に1回のリリースから1週間で1回のリリースへ)
• マネージドサービス (AKS) の利用で管理が最小限に
k8s 採用の理由とその効果は?
• SRE チームの負担増大
• マニフェストファイル管理の属人化
• 開発チームへのオーナーシップの委譲を目指す
• 複雑化する Pipeline
• 管理が難しくなった
• コードとインフラの乖離
• 障害発生時にインフラ側で設定を変えてしまい、その結果マニフェストとそのイ
ンフラが乖離してしまったが、その変更に気づけなかったことがある
• Single source of truth の実現
GitOps 導入の背景
• Weaveworks のブログで GitOps を理解しつつ、
何ができそうかをチーム内で会話していった
• 製品 (Flux) はローカル環境で動作確認して理解を進めていった
• 開発者と SRE 合同の
Hackathon を開催し、
開発者に GitOps を理
解してもらった
どのあたりから手を付けた?
運用ツールや運用状況に合わせたカスタマイズや、アプリケーション開発
者が腹落ちする運用設計、プロセスの策定が大変だった
ツール
• (Bedrock を参考にしつつ) Flux のコードを読んで Kustomize での構成方
法を理解してカスタマイズ
• 多くのマイクロサービスに対応する Pipeline テンプレートの作成が難しかった
リリースプロセスの設計
• 開発環境や QA 環境で体験してもらい、フィードバックもらって、修正をしてい
く、というサイクルを細かく実施していった
導入時の課題や解決方法
• プロダクション環境での導入まで完了
• アプリケーション開発者が自分たちのアプリケーションを日々、プロダクション環
境にデプロイしている
気づき
• 複雑にしないこと(シンプルにすること)
• 役割および責任を明確にすることが重要
現在の GitOps のフローと、ここに至るまでの気づき
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
当初の目的は達成できた
• Single source of Truth にしたことで、環境の信頼性/再現性が向
上し、環境の初期化も容易になった
• Pipeline がシンプルになった
• アプリケーション・デプロイのオーナーシップを SRE からアプリケーション開
発者に移譲できた
GitOps で得られた効果
Dev と Ops がゆるく分かれたチームから、 DevOps チームというように
コラボレーションできるようになってきた
• 以前
• CI/CD や k8s のマニフェスト管理は全部 SRE チームのエンジニアがオーナーシッ
プを持っていた
• いま
• アプリケーション開発者が CI のパイプラインやマニフェストパイプラインに対して、
率先してオーナーシップを持つようになった
開発者、運用者、SREとの関係
ツールの機能を理解できれば導入は難しくないが、運用設計ならびに
文化のインストールが十分でなければ GitOps は定着しない
• GitOps を理解するための学習のハードルが高い
• GitOps の定着に苦心
• 技術検証や構築はそれほど困難ではない
• GitOps 導入の意味を SRE チームだけでなく、プロダクトチーム全体に広め、意
味があるものとして定着するまで体験してもらう(各人に腹落ちしてもらう)こ
とが非常に大変
GitOps を導入しての感想
• アプリケーションのみならず、その環境全体を GitOps 化したい
• k8s 環境の作成からアプリケーションやミドルウェアの展開まで
• 信頼性の高い環境を構築・運用するためのしくみ
• モニタリング、メトリックの分析
• セキュリティ、とくに鍵管理の強化
• IaC や Pipeline のテスト強化
• Policy as Code
• ゆくゆくは Progressive Delivery も
今後の展望
プロダクトマネージャーから
ポッケ 小堀様
GitOps 導入により、「開発者がオーナーシップを持ってプロダクト開発を進めていく」と
いうマインドがさらに醸成され、チームのレベルがさらに上がった。
今後もこの流れを加速し、プロダクト開発や開発者のレベル向上につなげていきたい。
ベルシステム24HD 荒川様
DevOps を進める中で、過去の「ぬくもりのある作業」を排除してきた。そしてモチベー
ションの高い SRE から GitOps を提案され、これが新プロダクト輩出や保守面での
改善のキーポイントになると感じた。
本来は今年の夏からはじめる予定だったが、前倒しで完了したのも、課題を解決した
いとの思いを持つメンバーが揃っていたからだと感じている。これからもこの流れを促進
したい。
まとめ
Single source of Truth
まとめ
Happy GitOps!
Appendix
Microsoft Learn おすすめコンテンツ
DevOps プラクティスを発展させる
docs.microsoft.com/learn/paths/evolve-your-devops-practices/
Azure DevOps を使用してアプリケーションをビルドする
docs.microsoft.com/learn/paths/build-applications-with-azure-devops/
Azure DevOps でアプリケーションをデプロイする
docs.microsoft.com/learn/paths/deploy-applications-with-azure-devops/
Azure DevOps を使用してデプロイを自動化する
docs.microsoft.com/learn/paths/automate-deployments-azure-devops/
Weaveworks
Guide To GitOps : www.weave.works/technologies/gitops/
GitOps 関連のブログエントリー : www.weave.works/blog/category/gitops/
Microsoft
Bedrock (GitOps フレームワーク) : github.com/Microsoft/bedrock
Fabrikate (抽象度の高いハイレベル定義から具体的な k8s のマニフェストを生成するツール)
github.com/microsoft/fabrikate
参考資料
© 2018 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
© 2020 Microsoft Corporation. All rights reserved.
本情報の内容 (添付文書、リンク先などを含む) は、公開日時点のものであり、予告なく変更される場合があります。
本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。

More Related Content

PPTX
さくっと理解するSpring bootの仕組み
PDF
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
PDF
SQL Server パフォーマンス問題対処 Deep Dive
PDF
Microsoft MVP が語る Azure 移行の勘所
PDF
ブラック企業から学ぶMVCモデル
PDF
マジックビーンズ
PDF
大規模オンプレミス環境はGitOpsの夢を見るか(CI/CD Conference 2021 by CloudNative Days 発表資料)
PDF
Data platformdesign
さくっと理解するSpring bootの仕組み
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
SQL Server パフォーマンス問題対処 Deep Dive
Microsoft MVP が語る Azure 移行の勘所
ブラック企業から学ぶMVCモデル
マジックビーンズ
大規模オンプレミス環境はGitOpsの夢を見るか(CI/CD Conference 2021 by CloudNative Days 発表資料)
Data platformdesign

What's hot (20)

PPTX
ここからはじめる SQL Server の状態取得
PPTX
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
PDF
Demystifying Identities for Azure Kubernetes Service
PDF
MHA for MySQLとDeNAのオープンソースの話
PDF
Kubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CD
PPTX
「NIST SP 800-204C サービスメッシュを利用したマイクロサービスベースのアプリケーション向けDevSecOpsの展開」概説
PDF
Apache Arrow - データ処理ツールの次世代プラットフォーム
PDF
SQLアンチパターン - ナイーブツリー
PPTX
re:Invent 2022 DAT326 Deep dive into Amazon Aurora and its innovations
PDF
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
PDF
AzureDevOps ユーザーストーリーを作ってみよう - 201904
PDF
Sql server 構築 運用 tips
PPTX
こわくない!Azure 運用管理
PDF
Ansibleで始めるインフラ構築自動化
PDF
待ち事象から考える、Sql server の改善ポイント
PDF
3分でわかるAzureでのService Principal
PDF
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
PDF
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
PDF
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
ここからはじめる SQL Server の状態取得
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
Demystifying Identities for Azure Kubernetes Service
MHA for MySQLとDeNAのオープンソースの話
Kubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CD
「NIST SP 800-204C サービスメッシュを利用したマイクロサービスベースのアプリケーション向けDevSecOpsの展開」概説
Apache Arrow - データ処理ツールの次世代プラットフォーム
SQLアンチパターン - ナイーブツリー
re:Invent 2022 DAT326 Deep dive into Amazon Aurora and its innovations
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
AzureDevOps ユーザーストーリーを作ってみよう - 201904
Sql server 構築 運用 tips
こわくない!Azure 運用管理
Ansibleで始めるインフラ構築自動化
待ち事象から考える、Sql server の改善ポイント
3分でわかるAzureでのService Principal
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
Ad

Similar to 【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践 (20)

PPTX
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
PDF
作る人から作りながら運用する人になっていく
PDF
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
PDF
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
PPTX
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
PDF
GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境
PDF
楽天がCloud foundryを選んだ理由
PDF
Devとopsをつなぐchat ops
PPTX
GitLab好きのAzureユーザーに朗報!あなたのAzure OpenAIをつかって、GitLabでAIを使う方法とメリットをご紹介.pptx
PDF
DevOps on Azure Kubernetes
PDF
HBase Meetup Tokyo Summer 2015 #hbasejp
PDF
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
PDF
【de:code 2020】 Azure トラブルシューティング道場 ~どこかがおかしくなりました~
PDF
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
PDF
Azure DevOps CICD Azure SQL / Data Factory
PDF
試して学べるクラウド技術! OpenShift
PPTX
技術選択とアーキテクトの役割
PDF
地味だけど劇的に便利になるGitHubリポジトリ設定あれこれ
PDF
【Japan Partner Conference 2019】遂に来た! フルマーネージド Azure Red Hat OpenShift で実現する O...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
作る人から作りながら運用する人になっていく
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境
楽天がCloud foundryを選んだ理由
Devとopsをつなぐchat ops
GitLab好きのAzureユーザーに朗報!あなたのAzure OpenAIをつかって、GitLabでAIを使う方法とメリットをご紹介.pptx
DevOps on Azure Kubernetes
HBase Meetup Tokyo Summer 2015 #hbasejp
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
【de:code 2020】 Azure トラブルシューティング道場 ~どこかがおかしくなりました~
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
Azure DevOps CICD Azure SQL / Data Factory
試して学べるクラウド技術! OpenShift
技術選択とアーキテクトの役割
地味だけど劇的に便利になるGitHubリポジトリ設定あれこれ
【Japan Partner Conference 2019】遂に来た! フルマーネージド Azure Red Hat OpenShift で実現する O...
Ad

More from 日本マイクロソフト株式会社 (20)

PDF
【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション
PDF
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
PDF
【BS12】Visual Studio 2022 40分一本勝負!
PDF
【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!
PDF
【BS9】モダン & クラウドネイティブなソフトウエア開発はじめよう ~ Azure DevOps & GitHub を使ったアプリ開発 DevOps 101
PDF
【BS8】GitHub Advanced Security で実践できる DevSecOps 対策
PDF
【BS7】GitHubをフル活用した開発
PDF
【BS5】帰ってきたハードコアデバッギング ~.NET6 を添えて~
PDF
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
PDF
【BS2】.NET 6 最新アップデート
PDF
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
PDF
【BS6】 マイクロソフトの GitHub との取り組み
PDF
【BS1】What’s new in visual studio 2022 and c# 10
PDF
N08_次世代通信キャリアの "Resilience" を支援する Microsoft Cloud [Microsoft Japan Digital Days]
PDF
S09_プライバシー規約準拠の基本! Amazon S3 やオンプレ SQL もサポートする Azure Purview による情報分類と管理 [Micr...
PDF
S18_ゼロトラストを目指し、Windows 10 & M365E5 を徹底活用した弊社 (三井情報) 事例のご紹介 [Microsoft Japan D...
PDF
S17_25 分でわかる!Windows 365 [Microsoft Japan Digital Days]
PDF
S15_標準 PC にさようなら!ニューノーマルの働き方に合わせたデバイスの選択 [Microsoft Japan Digital Days]
PDF
S13_レガシー ID 管理者でも分かる Verifiable Credentials のセッション [Microsoft Japan Digital D...
PDF
S12_Azure AD 活用術!アプリケーション認証を ADFS から移行しましょう。 [Microsoft Japan Digital Days]
【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS12】Visual Studio 2022 40分一本勝負!
【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!
【BS9】モダン & クラウドネイティブなソフトウエア開発はじめよう ~ Azure DevOps & GitHub を使ったアプリ開発 DevOps 101
【BS8】GitHub Advanced Security で実践できる DevSecOps 対策
【BS7】GitHubをフル活用した開発
【BS5】帰ってきたハードコアデバッギング ~.NET6 を添えて~
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS2】.NET 6 最新アップデート
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS6】 マイクロソフトの GitHub との取り組み
【BS1】What’s new in visual studio 2022 and c# 10
N08_次世代通信キャリアの "Resilience" を支援する Microsoft Cloud [Microsoft Japan Digital Days]
S09_プライバシー規約準拠の基本! Amazon S3 やオンプレ SQL もサポートする Azure Purview による情報分類と管理 [Micr...
S18_ゼロトラストを目指し、Windows 10 & M365E5 を徹底活用した弊社 (三井情報) 事例のご紹介 [Microsoft Japan D...
S17_25 分でわかる!Windows 365 [Microsoft Japan Digital Days]
S15_標準 PC にさようなら!ニューノーマルの働き方に合わせたデバイスの選択 [Microsoft Japan Digital Days]
S13_レガシー ID 管理者でも分かる Verifiable Credentials のセッション [Microsoft Japan Digital D...
S12_Azure AD 活用術!アプリケーション認証を ADFS から移行しましょう。 [Microsoft Japan Digital Days]

【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践