SlideShare a Scribd company logo
1 of 61
TECHNOLOGY
TO FIX
YOUR CHALLENGES.
開発サイクルを爆速にする!
Azure DevOpsでアプリのビルド・デプロイを⾃動化
Contents
Azure PipelinesでCI/CDを構築して、
爆速開発を実現しよう!
About Myself
河野光司 Cloud Solutions Engineer
株式会社FIXER(2020/4/1⼊社)
フロントエンド開発
バックエンド開発
データベース構築
インフラ構築
パイプライン構築
Unity開発
学⽣時代は教育学部
プログラミングはほとんどやってこなかった
クラウドの可能性に魅せられ、エンジニアになる
@koji_kono Koji Kono
1.ざっくりDevOpsの概要
2.ざっくりCI/CDの概要
3.Azure Pipelinesでビルドの⾃動化デモ
4.解説
Contents
DevOps
って知ってますか?
より素早くかつ柔軟に、信頼性の⾼いシステムをユーザーに届けるために
開発チーム(Dev) と 運⽤チーム(Ops)が連携する組織⽂化
DevOps とは
「新たな機能の開発」
開発チームのミッション
「システムの安定稼働」
運⽤チームのミッション
https://ja.wikipedia.org/wiki/DevOps
DevOpsを実現するために
• 組織の⽂化づくり
• アジャイル開発の導⼊
• CI/CDの構築
CI/CD
って知ってますか?
CI - Continuous Integration(継続的インテグレーション)
開発チームの仕事を統合する
CD - Continuous Delivery(継続的デリバリー)
統合されたシステムをユーザーに届ける
要するに
アプリのテスト、ビルド、デプロイを⾃動化する技術
DevOps的な組織では、頻繁にリリースする
毎回⼿動?
テスト・ビルド・デプロイ
毎回⼿動?
テスト・ビルド・デプロイ
嫌です。
というわけで、
ビルド・デプロイを⾃動化しよう!!!
サンプルコード
https://github.com/kono-koji20-fixer/GiikusaiDevOpsDemo
ビルド・デプロイ⾃動化デモ
デモ⽤のアプリ
https://giikusai-devops-demo.azurewebsites.net
今回使うツール
Nuxt.js GitHub
Azure Container Registry
Azure Pipelines
Docker
Azure Web Apps
Azure DevOps
Webアプリケーションが簡単につくれるフレームワーク
サンプルアプリの作成に使⽤
アプリ開発のプラットフォーム
ソースコード管理のデファクトスタンダード
コンテナ技術のデファクトスタンダード
アプリのコンテナ化に使⽤
Azureが提供するコンテナ管理サービス
Docker化したアプリの格納に使⽤
簡単にアプリケーションを公開できるサービス
作成したアプリのデプロイ先として使⽤
Infrastructure as CodeでCI/CDを構築できるサービス
今⽇の主役
DevOpsを実現するためのツール群の総称
Azure Pipelinesもこの中の⼀つ
ビルド・デプロイ⾃動化フロー
main
develop
feature/*
簡易版Gitフロー https://www.atmarkit.co.jp/ait/articles/1708/01/news015.html
Azure Pipelines
developにmerge
docker build Push to ACR Deploy to Web Apps
developブランチへのCommitをトリガーに、⾃動でビルド・デプロイ
まずは、アプリのソースコードを準備しましょう!
Step.1
アプリを作成してGitHubに公開
Nuxt.js
Webアプリケーションが簡単につくれるフレームワーク
サンプルアプリの作成に使⽤
https://ja.nuxtjs.org/
GitHub
アプリ開発のプラットフォーム
ソースコード管理のデファクトスタンダード
https://github.co.jp/
Step.2
Dockerfileを作成
Docker
コンテナ技術のデファクトスタンダード
アプリのコンテナ化に使⽤
https://www.docker.com/
Dockerイメージを作成するための
設計図になるファイル
https://github.com/kono-koji20-fixer/GiikusaiDevOpsDemo/blob/develop/Dockerfile
Dockerfileの書き⽅
https://blog.codecamp.jp/docker-file-how-to
https://qiita.com/tmiyajima/items/b099fb707bfde9337a70
Step.3
yamlファイルを作成
ビルドパイプラインを作成するときの
設計図になるファイル
https://github.com/kono-koji20-
fixer/GiikusaiDevOpsDemo/blob/develop/.azuredevops/workflows/CI-develop.yaml
Azure Pipelinesのyamlの書き⽅
https://qiita.com/sengoku/items/e832c3f1c1c8fbb98415
Azure のリソースを作って⾏きます!
アカウントとサブスクの⽤意をお願いします!
Step.4
Azure Web Appsの作成
作成したアプリをデプロイする環境を作成
AzureのWeb App for Containerなら、
コンテナ化したアプリを簡単にデプロイできる!
Step.5
Azure Container Registryの作成
コンテナ化したアプリを格納するリソース
DockerHubのAzure版
これでアプリとデプロイ先の準備完了!
CI/CDを組んでいく!
Step.6
Azure DevOpsの準備
Azure DevOps(https://dev.azure.com/)にアクセスして
作成したAzure アカウントでログイン
右上の”New project”をクリック
Step.6
Azure DevOpsの準備
Project NameやDescriptionを⼊⼒して
Createをクリック
Step.6
Azure DevOpsの準備
DevOpsにProjectが作成されました!
まずはビルドパイプラインを作る!
Step.7
Build Pipelinesの作成
サイドバーから”Pipelines”を選択
Step.7
Build Pipelinesの作成
Create Pipelineをクリック
Step.7
Build Pipelinesの作成
“Use the classic editor”をクリック
Step.7
Build Pipelinesの作成
GitHubを選択して
サービスコネクションを作成
“Authorize using OAuth”をクリックして
GitHubのログイン情報を⼊⼒
Step.7
Build Pipelinesの作成
RepositoryとBranchを選択して
“Continue”をクリック
Step.7
Build Pipelinesの作成
”YAML”を選択してApply
Step.7
Build Pipelinesの作成
YAML file pathを選択
Step.7
Build Pipelinesの作成
作成したyamlファイルを選択してOKをクリック
Step.7
Build Pipelinesの作成
しっかりSaveしておきます
Step.7
Build Pipelinesの作成
パイプラインの実⾏時に使⽤する
Variable Groupを作成
サイドバーからLibraryを選択して
”+ Variable group”をクリック
Step.7
Build Pipelinesの作成
ACRの接続情報を登録していきます。Saveを忘れずに!
yamlのこの辺で使ってる変数
ビルドパイプライン完成!
リリース(デプロイ)パイプラインを作る
Step.8
Release Pipelinesの作成
サイドバーからReleaseを選択して
“New pipeline”をクリック
Step.8
Release Pipelinesの作成
Azure App Service deploymentを
選択してApplyをクリック
Step.8
Release Pipelinesの作成
リリースパイプラインが作成される
左側の”Add an artifact”をクリック
Step.8
Release Pipelinesの作成
ビルドソースの選択
先程作成したビルドパイプラインを
選択
Step.8
Release Pipelinesの作成
Artifactを選択したら
⚡マークをクリックして
ビルドのトリガーをEnabledに変更
Step.8
Release Pipelinesの作成
右側の”1 job, 1 task”をクリック
Step.8
Release Pipelinesの作成
デプロイ先のApp service nameや
ACRの情報を⼊⼒
Step.8
Release Pipelinesの作成
タブからVariablesを選択して
作成したVariables Groupとの
リンクを作成
Step.8
Release Pipelinesの作成
忘れずにSave
リリースパイプライン完成!
ビルド・デプロイを⾃動でやってくれる
CI/CDパイプラインが完成しました!
Step.9
developにコミットしてみる
アプリに変更を加えてdevelopブランチにプッシュ
Step.9
developにコミットしてみる
before after
ソースコードの変更がデプロイされているアプリに反映!
やろうと思えばもっと⾊んな事ができます!
DevOpsなチームで
爆速開発を実現しよう!

More Related Content

What's hot

【19-D-2】今更聞けない!?インフラ選定のケーススタディ「ベアメタルクラウド」を活用した最適な環境構築をするためのポイントはなんだ!?
【19-D-2】今更聞けない!?インフラ選定のケーススタディ「ベアメタルクラウド」を活用した最適な環境構築をするためのポイントはなんだ!?【19-D-2】今更聞けない!?インフラ選定のケーススタディ「ベアメタルクラウド」を活用した最適な環境構築をするためのポイントはなんだ!?
【19-D-2】今更聞けない!?インフラ選定のケーススタディ「ベアメタルクラウド」を活用した最適な環境構築をするためのポイントはなんだ!?
Developers Summit
 

What's hot (20)

今、おさえておきたい DevOps
今、おさえておきたい DevOps 今、おさえておきたい DevOps
今、おさえておきたい DevOps
 
アジャイルにモデリングは必要か
アジャイルにモデリングは必要かアジャイルにモデリングは必要か
アジャイルにモデリングは必要か
 
事業成長にコミットするエンジニア組織への道のり
事業成長にコミットするエンジニア組織への道のり事業成長にコミットするエンジニア組織への道のり
事業成長にコミットするエンジニア組織への道のり
 
「俺の背中について来い」アジャイルチームを一気に立ち上げる方法
「俺の背中について来い」アジャイルチームを一気に立ち上げる方法「俺の背中について来い」アジャイルチームを一気に立ち上げる方法
「俺の背中について来い」アジャイルチームを一気に立ち上げる方法
 
ニュービジネスとドメインモデル V2
ニュービジネスとドメインモデル V2ニュービジネスとドメインモデル V2
ニュービジネスとドメインモデル V2
 
【19-D-2】今更聞けない!?インフラ選定のケーススタディ「ベアメタルクラウド」を活用した最適な環境構築をするためのポイントはなんだ!?
【19-D-2】今更聞けない!?インフラ選定のケーススタディ「ベアメタルクラウド」を活用した最適な環境構築をするためのポイントはなんだ!?【19-D-2】今更聞けない!?インフラ選定のケーススタディ「ベアメタルクラウド」を活用した最適な環境構築をするためのポイントはなんだ!?
【19-D-2】今更聞けない!?インフラ選定のケーススタディ「ベアメタルクラウド」を活用した最適な環境構築をするためのポイントはなんだ!?
 
Portfolio for JIRA で"全体計画にコミット"し続けるべし
Portfolio for JIRA で"全体計画にコミット"し続けるべしPortfolio for JIRA で"全体計画にコミット"し続けるべし
Portfolio for JIRA で"全体計画にコミット"し続けるべし
 
IoTやデジタル活用で価値を生み出すための開発手法 ~BtoBでも、ChatOps等のモダンな開発・運用ができる!~
IoTやデジタル活用で価値を生み出すための開発手法 ~BtoBでも、ChatOps等のモダンな開発・運用ができる!~IoTやデジタル活用で価値を生み出すための開発手法 ~BtoBでも、ChatOps等のモダンな開発・運用ができる!~
IoTやデジタル活用で価値を生み出すための開発手法 ~BtoBでも、ChatOps等のモダンな開発・運用ができる!~
 
SoRとSoEをつなぐ 「エンジニアの役割」と 「企業の課題」
SoRとSoEをつなぐ 「エンジニアの役割」と 「企業の課題」SoRとSoEをつなぐ 「エンジニアの役割」と 「企業の課題」
SoRとSoEをつなぐ 「エンジニアの役割」と 「企業の課題」
 
ノーツが日本を救う(2002/3/13)
ノーツが日本を救う(2002/3/13)ノーツが日本を救う(2002/3/13)
ノーツが日本を救う(2002/3/13)
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
 
nikkeibp20131120public
nikkeibp20131120publicnikkeibp20131120public
nikkeibp20131120public
 
エンタープライズアジャイル内製プロジェクトを立ち上げる前に考慮すべき3つのこと
エンタープライズアジャイル内製プロジェクトを立ち上げる前に考慮すべき3つのことエンタープライズアジャイル内製プロジェクトを立ち上げる前に考慮すべき3つのこと
エンタープライズアジャイル内製プロジェクトを立ち上げる前に考慮すべき3つのこと
 
デジタルトランスフォーメーションを推進するためのガバナンスのあり方とは?
デジタルトランスフォーメーションを推進するためのガバナンスのあり方とは?デジタルトランスフォーメーションを推進するためのガバナンスのあり方とは?
デジタルトランスフォーメーションを推進するためのガバナンスのあり方とは?
 
Base 20141011 1_for_slideshre
Base 20141011 1_for_slideshreBase 20141011 1_for_slideshre
Base 20141011 1_for_slideshre
 
【導入事例】Lychee Redmineユーザーが語る!トラブル予防としての使い方
【導入事例】Lychee Redmineユーザーが語る!トラブル予防としての使い方【導入事例】Lychee Redmineユーザーが語る!トラブル予防としての使い方
【導入事例】Lychee Redmineユーザーが語る!トラブル予防としての使い方
 
Cost estimation using Wagby
Cost estimation using WagbyCost estimation using Wagby
Cost estimation using Wagby
 
新卒2ヶ月でAIを社会実装させた3つのデザイン
新卒2ヶ月でAIを社会実装させた3つのデザイン新卒2ヶ月でAIを社会実装させた3つのデザイン
新卒2ヶ月でAIを社会実装させた3つのデザイン
 
ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版
 
エクストリームエンジニア3
エクストリームエンジニア3エクストリームエンジニア3
エクストリームエンジニア3
 

Similar to 開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~

CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando
 

Similar to 開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~ (20)

DevOps and Compliance and Security
DevOps and Compliance and SecurityDevOps and Compliance and Security
DevOps and Compliance and Security
 
Case study of DevOps for Hadoop in Recruit.
Case study of DevOps for Hadoop in Recruit.Case study of DevOps for Hadoop in Recruit.
Case study of DevOps for Hadoop in Recruit.
 
Case study of DevOps for Hadoop in Recruit.
Case study of DevOps for Hadoop in Recruit.Case study of DevOps for Hadoop in Recruit.
Case study of DevOps for Hadoop in Recruit.
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
 
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure
 
Azure DevOps CICD Azure SQL / Data Factory
Azure DevOps CICD Azure SQL / Data FactoryAzure DevOps CICD Azure SQL / Data Factory
Azure DevOps CICD Azure SQL / Data Factory
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06
 
Azure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewAzure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - Overview
 
Azure DevOps - ALGYAN Oct 2022.pdf
Azure DevOps - ALGYAN Oct 2022.pdfAzure DevOps - ALGYAN Oct 2022.pdf
Azure DevOps - ALGYAN Oct 2022.pdf
 
XPFes2023_DevOps business-briefing_Hasegawa
XPFes2023_DevOps business-briefing_HasegawaXPFes2023_DevOps business-briefing_Hasegawa
XPFes2023_DevOps business-briefing_Hasegawa
 
20141010 マイクロソフト技術と共に目指すフルスタックエンジニアへの道
20141010 マイクロソフト技術と共に目指すフルスタックエンジニアへの道20141010 マイクロソフト技術と共に目指すフルスタックエンジニアへの道
20141010 マイクロソフト技術と共に目指すフルスタックエンジニアへの道
 
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
 
DevOpsに求められる様々な技術とその連携の学習方法
DevOpsに求められる様々な技術とその連携の学習方法DevOpsに求められる様々な技術とその連携の学習方法
DevOpsに求められる様々な技術とその連携の学習方法
 
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
 
2014.11.01 Dockerことはじめ
2014.11.01 Dockerことはじめ2014.11.01 Dockerことはじめ
2014.11.01 Dockerことはじめ
 
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
 
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
 
【BS9】モダン & クラウドネイティブなソフトウエア開発はじめよう ~ Azure DevOps & GitHub を使ったアプリ開発 DevOps 101
【BS9】モダン & クラウドネイティブなソフトウエア開発はじめよう ~ Azure DevOps & GitHub を使ったアプリ開発 DevOps 101 【BS9】モダン & クラウドネイティブなソフトウエア開発はじめよう ~ Azure DevOps & GitHub を使ったアプリ開発 DevOps 101
【BS9】モダン & クラウドネイティブなソフトウエア開発はじめよう ~ Azure DevOps & GitHub を使ったアプリ開発 DevOps 101
 
MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組みMicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組み
 

Recently uploaded

Recently uploaded (10)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~