SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
Azure DevOpsを利用した
Azure SQL、Data Factoryの
CICDパイプライン
株式会社ジール
永田 亮磨
Twitter:@ryomaru0825
Linkedin:ryoma-nagata-0825
Qiita:qiita.com/ryoma-nagata
1. 本日のデモの構成要素の紹介
1. Azure DevOps
2. Azure における環境のコード化(IaC)
3. アプリ(SQL Project 、Data Factory)のCICD
2. デモ
AGENDA
• 開発(Dev)と運用(Ops)を各種のプラクティスで迅速に改善するカルチャー
DevOps とは何ですか?
• 継続的インテグレーション/継続的デプロイメント(CI/CD)
• バージョンコントロール
• アジャイル開発
• IaC(コードとしてのインフラストラクチャ)
• 構成管理
• 継続的モニタリング
• MSのDevOps転換話は面白い
• Microsoft の DevOps への道のり
• Microsoft がアジャイルの原則 をどのようにチームに適用したか
• 私の業務活用について
• すべてのPJでできているわけではない
• BI・DWH のDevOpsって難しい・・・
What’s DevOps
• Azure DevOps
• DevOpsに必要な機能が一通り提供されているSaaS(無償~)
• 今回の利用機能
• Azure Repos
• Git 環境を提供
• What is Azure Repos?
• Azure Pipelines
• Gitの変更などをトリガーにビルド・テスト、環境へのデプロイを自動化できる
• What is Azure Pipelines?
• 作成の基本
Azure DevOps
• Azureリソースは原則、ARM(Azure Resource Manager)テンプレー
トと呼ばれるjsonファイル形式に変換可能
• リソース名、各種プロパティなど
AzureにおけるIaC ARMテンプレート
Portalからのデプロイ
簡単だが繰り返し、移行は辛い
単一のリソース
設定内容
デプロイ
Azure Resource
Manager
{
”$schema": “https://schema.management.azure.comxxxx",
"contentVersion": "1.0.0.0",
"parameters": {
"resources": [
{
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2020-04-01",
・・・
・・・
手動でARMテンプレート送信
ARMテンプレートをGit管理
環境構築をパイプライン化(再利用可能)
自動でARMテンプレート送信
ARMテンプレートによるデプロイ
環境をコード化して再利用・自動化可能。
ARM作成は少し大変。
Azure Resource
Manager
必要なリソース
設定のセット
• 作成方法
• VSCodeの拡張がおすすめ
• 既存リソースはAzure Portalからテンプレート
の出力が可能
※CICDにそのまま転用するのは厳しい。どん
な設定状況かの参考に利用する
• 単体テストキット
ARMテンプレートについて
• ARM テンプレートとは
• 基本構造(例:ストレージアカウント)
Parameters:リー
ジョンなどの引数
Variables:テンプ
レート内の変数
Resources:デプ
ロイするリソース
定義
outputs:デプロ
イリソースからの
返り値
• SQL DB
• コード化:Azure Data Studio or Visual studio)でSQL Databaseプロジェクトを作成
• 既存環境のスキーマ比較など可能
• ビルド:dacpacと呼ばれるDBオブジェクトの定義パッケージを生成
• デプロイ:Azure Pipelineには「 SqlAzureDacpacDeployment」というタスクがあ
り、Firewallも一時的にDevOpsを許可するなど便利
• 参考
• Visual Studio×DevOpsを利用したSQL DB CICDのチュートリアル
※VS2019対応のためVM imageをwindows-2019にすると吉
• 補足
• なぜかPipelineタスクでazuresubscriptionのパラメータは変数が使えなかった
• sqlprojをADSから普通に作成すると、sql2019,ManagedInstance用のものができるの
で、.sqlprojのDSPタグを変更しておく
• <DSP>Microsoft.Data.Tools.Schema.Sql.SqlAzureV12DatabaseSchemaProvider</DSP>
アプリ部分のCICDについて
• dacpac、bacpacについて
• Data Factory
• コード化:Git連携機能により、すべてのア
セットがjson化、保存される
• ビルド(publish):adf_publishブランチ
にARMテンプレートが生成される
• デプロイ:adf_publishのARMテンプレー
トを利用して別環境のADFにデプロイ
• 補足
• Linked ServiceはAzureKeyVaultで接続先を
secret化し、 ADF->AKVの向き先だけ変えれば
secret同じ、接続先変更が簡単
アプリ部分のCICDについて
• Azure Data Factory における継続的インテグレーションとデリバリー
デモ構成イメージ
開発環境 CI・CD 本番環境
ローカル開発
Azure上での開発
ARMテンプレート作成
ADFパイプライン開発
push
Save
/publish
DBプロジェクト開発
参照
適用
定義変更を適用
パイプラインを適用
+SalesOrderCount(table)
+SalesCountCopy(pipeline)
+SalesOrderCount(dataset)
環境デプロイ
Schema Compare
• ADFのSQLへの登録
• Azure SQL Server(Single DB or DW)内のADユーザ登録手順(Qiita)
• その他
• Github Repo
• 本日使用したCode(README未整備)
• Synapse Analytics(GA版)のIaC構築ハンズオン
• データ インジェスト パイプラインの DevOps
• その他のDeployAzureSample
• Azure DevOps Pipelines
• DevOps、Azure データ ファクトリ、機械学習を使用したデータ パイプラインの構築
補足

Weitere ähnliche Inhalte

Was ist angesagt?

[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
de:code 2017
 
M08_あなたの知らない Azure インフラの世界 [Microsoft Japan Digital Days]
M08_あなたの知らない Azure インフラの世界 [Microsoft Japan Digital Days]M08_あなたの知らない Azure インフラの世界 [Microsoft Japan Digital Days]
M08_あなたの知らない Azure インフラの世界 [Microsoft Japan Digital Days]
日本マイクロソフト株式会社
 
Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎
Masayuki Ozawa
 

Was ist angesagt? (20)

SAP on Azure Cloud Workshop Material Japanese 20190221
SAP on Azure Cloud Workshop Material Japanese 20190221SAP on Azure Cloud Workshop Material Japanese 20190221
SAP on Azure Cloud Workshop Material Japanese 20190221
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
 
【Veeam基礎】簡単解説!バックアップ可能な環境や機能をご紹介
【Veeam基礎】簡単解説!バックアップ可能な環境や機能をご紹介【Veeam基礎】簡単解説!バックアップ可能な環境や機能をご紹介
【Veeam基礎】簡単解説!バックアップ可能な環境や機能をご紹介
 
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
[DI12] あらゆるデータをビジネスに活用! Azure Data Lake を中心としたビックデータ処理基盤のアーキテクチャと実装
 
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
 
Ingress on Azure Kubernetes Service
Ingress on Azure Kubernetes ServiceIngress on Azure Kubernetes Service
Ingress on Azure Kubernetes Service
 
一歩先行く Azure Computing シリーズ(全3回) 第2回 Azure VM どれを選ぶの? Azure VM 集中講座
一歩先行く Azure Computing シリーズ(全3回) 第2回 Azure VM どれを選ぶの? Azure VM 集中講座一歩先行く Azure Computing シリーズ(全3回) 第2回 Azure VM どれを選ぶの? Azure VM 集中講座
一歩先行く Azure Computing シリーズ(全3回) 第2回 Azure VM どれを選ぶの? Azure VM 集中講座
 
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
 
M08_あなたの知らない Azure インフラの世界 [Microsoft Japan Digital Days]
M08_あなたの知らない Azure インフラの世界 [Microsoft Japan Digital Days]M08_あなたの知らない Azure インフラの世界 [Microsoft Japan Digital Days]
M08_あなたの知らない Azure インフラの世界 [Microsoft Japan Digital Days]
 
Azure サポート チームの現場からお届けする落ちないサービスのために
Azure サポート チームの現場からお届けする落ちないサービスのためにAzure サポート チームの現場からお届けする落ちないサービスのために
Azure サポート チームの現場からお届けする落ちないサービスのために
 
kpackによるコンテナイメージのビルド
kpackによるコンテナイメージのビルドkpackによるコンテナイメージのビルド
kpackによるコンテナイメージのビルド
 
Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎
 
Quarkus入門
Quarkus入門Quarkus入門
Quarkus入門
 
Azureを頑張る理由と頑張り方(Cloud Skills Challenge 2022 winter 発表資料)
Azureを頑張る理由と頑張り方(Cloud Skills Challenge 2022 winter 発表資料)Azureを頑張る理由と頑張り方(Cloud Skills Challenge 2022 winter 発表資料)
Azureを頑張る理由と頑張り方(Cloud Skills Challenge 2022 winter 発表資料)
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
 
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
 
AWS 技術者向け Azure サービス解説 de:code2019版 #CD81
AWS 技術者向け Azure サービス解説 de:code2019版 #CD81AWS 技術者向け Azure サービス解説 de:code2019版 #CD81
AWS 技術者向け Azure サービス解説 de:code2019版 #CD81
 
SSMSでSQL Serverの実行計画を見てSQLチューニング
SSMSでSQL Serverの実行計画を見てSQLチューニングSSMSでSQL Serverの実行計画を見てSQLチューニング
SSMSでSQL Serverの実行計画を見てSQLチューニング
 
Azure Event Grid 事始め
Azure Event Grid 事始めAzure Event Grid 事始め
Azure Event Grid 事始め
 

Ähnlich wie Azure DevOps CICD Azure SQL / Data Factory

AWS CloudFormationによるInfrastructure as Codeの実現
AWS CloudFormationによるInfrastructure as Codeの実現AWS CloudFormationによるInfrastructure as Codeの実現
AWS CloudFormationによるInfrastructure as Codeの実現
HIRA
 

Ähnlich wie Azure DevOps CICD Azure SQL / Data Factory (20)

AWS CloudFormationによるInfrastructure as Codeの実現
AWS CloudFormationによるInfrastructure as Codeの実現AWS CloudFormationによるInfrastructure as Codeの実現
AWS CloudFormationによるInfrastructure as Codeの実現
 
開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~
開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~
開発サイクルを爆速にする!~ Azure DevOpsでアプリのビルド・デプロイを自動化 ~
 
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 PresentationMicrosoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
 
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料
 
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料
 
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
 
【de:code 2020】 今すぐはじめたい SQL Database のかしこい使い分け術 後編
【de:code 2020】 今すぐはじめたい SQL Database のかしこい使い分け術 後編【de:code 2020】 今すぐはじめたい SQL Database のかしこい使い分け術 後編
【de:code 2020】 今すぐはじめたい SQL Database のかしこい使い分け術 後編
 
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
 
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
 
オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用
 
【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 の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
 
【de:code 2020】 GitHub と Azure Security Center による、アプリケーションのための Azure セキュリティ
【de:code 2020】 GitHub と Azure Security Center による、アプリケーションのための Azure セキュリティ【de:code 2020】 GitHub と Azure Security Center による、アプリケーションのための Azure セキュリティ
【de:code 2020】 GitHub と Azure Security Center による、アプリケーションのための Azure セキュリティ
 
Azure Arc 概要
Azure Arc 概要Azure Arc 概要
Azure Arc 概要
 
The seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurugThe seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurug
 
Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介
Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介
Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介
 
【de:code 2020】 今すぐはじめたい SQL Database のかしこい使い分け術 前編
【de:code 2020】 今すぐはじめたい SQL Database のかしこい使い分け術 前編【de:code 2020】 今すぐはじめたい SQL Database のかしこい使い分け術 前編
【de:code 2020】 今すぐはじめたい SQL Database のかしこい使い分け術 前編
 
Azure Functionsでサーバーレスアプリケーション構築
Azure Functionsでサーバーレスアプリケーション構築Azure Functionsでサーバーレスアプリケーション構築
Azure Functionsでサーバーレスアプリケーション構築
 
Circle of Code with Cloud Foundry
Circle of Code with Cloud FoundryCircle of Code with Cloud Foundry
Circle of Code with Cloud Foundry
 
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
 
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
 

Mehr von Ryoma Nagata

Mehr von Ryoma Nagata (13)

Synapse lakedatabase
Synapse lakedatabaseSynapse lakedatabase
Synapse lakedatabase
 
Azure Purview Linage for Dataflow/Spark
Azure Purview Linage for Dataflow/SparkAzure Purview Linage for Dataflow/Spark
Azure Purview Linage for Dataflow/Spark
 
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
 
Delta Lake with Synapse dataflow
Delta Lake with Synapse dataflowDelta Lake with Synapse dataflow
Delta Lake with Synapse dataflow
 
Data platformdesign
Data platformdesignData platformdesign
Data platformdesign
 
Power Query Online
Power Query OnlinePower Query Online
Power Query Online
 
Paas_Security_Part1
Paas_Security_Part1Paas_Security_Part1
Paas_Security_Part1
 
Databricks の始め方
Databricks の始め方Databricks の始め方
Databricks の始め方
 
Ignite update databricks_stream_analytics
Ignite update databricks_stream_analyticsIgnite update databricks_stream_analytics
Ignite update databricks_stream_analytics
 
BigData Architecture for Azure
BigData Architecture for AzureBigData Architecture for Azure
BigData Architecture for Azure
 
道徳経営実践講座
道徳経営実践講座道徳経営実践講座
道徳経営実践講座
 
Delta lakesummary
Delta lakesummaryDelta lakesummary
Delta lakesummary
 
20190517 Spark+AI Summit2019最新レポート
20190517 Spark+AI Summit2019最新レポート20190517 Spark+AI Summit2019最新レポート
20190517 Spark+AI Summit2019最新レポート
 

Kürzlich hochgeladen

Kürzlich hochgeladen (12)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: 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
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: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...
 
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デバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: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 CICD Azure SQL / Data Factory

  • 1. Azure DevOpsを利用した Azure SQL、Data Factoryの CICDパイプライン 株式会社ジール 永田 亮磨 Twitter:@ryomaru0825 Linkedin:ryoma-nagata-0825 Qiita:qiita.com/ryoma-nagata
  • 2. 1. 本日のデモの構成要素の紹介 1. Azure DevOps 2. Azure における環境のコード化(IaC) 3. アプリ(SQL Project 、Data Factory)のCICD 2. デモ AGENDA
  • 3. • 開発(Dev)と運用(Ops)を各種のプラクティスで迅速に改善するカルチャー DevOps とは何ですか? • 継続的インテグレーション/継続的デプロイメント(CI/CD) • バージョンコントロール • アジャイル開発 • IaC(コードとしてのインフラストラクチャ) • 構成管理 • 継続的モニタリング • MSのDevOps転換話は面白い • Microsoft の DevOps への道のり • Microsoft がアジャイルの原則 をどのようにチームに適用したか • 私の業務活用について • すべてのPJでできているわけではない • BI・DWH のDevOpsって難しい・・・ What’s DevOps
  • 4. • Azure DevOps • DevOpsに必要な機能が一通り提供されているSaaS(無償~) • 今回の利用機能 • Azure Repos • Git 環境を提供 • What is Azure Repos? • Azure Pipelines • Gitの変更などをトリガーにビルド・テスト、環境へのデプロイを自動化できる • What is Azure Pipelines? • 作成の基本 Azure DevOps
  • 5. • Azureリソースは原則、ARM(Azure Resource Manager)テンプレー トと呼ばれるjsonファイル形式に変換可能 • リソース名、各種プロパティなど AzureにおけるIaC ARMテンプレート Portalからのデプロイ 簡単だが繰り返し、移行は辛い 単一のリソース 設定内容 デプロイ Azure Resource Manager { ”$schema": “https://schema.management.azure.comxxxx", "contentVersion": "1.0.0.0", "parameters": { "resources": [ { "type": "Microsoft.Network/networkSecurityGroups", "apiVersion": "2020-04-01", ・・・ ・・・ 手動でARMテンプレート送信 ARMテンプレートをGit管理 環境構築をパイプライン化(再利用可能) 自動でARMテンプレート送信 ARMテンプレートによるデプロイ 環境をコード化して再利用・自動化可能。 ARM作成は少し大変。 Azure Resource Manager 必要なリソース 設定のセット
  • 6. • 作成方法 • VSCodeの拡張がおすすめ • 既存リソースはAzure Portalからテンプレート の出力が可能 ※CICDにそのまま転用するのは厳しい。どん な設定状況かの参考に利用する • 単体テストキット ARMテンプレートについて • ARM テンプレートとは • 基本構造(例:ストレージアカウント) Parameters:リー ジョンなどの引数 Variables:テンプ レート内の変数 Resources:デプ ロイするリソース 定義 outputs:デプロ イリソースからの 返り値
  • 7. • SQL DB • コード化:Azure Data Studio or Visual studio)でSQL Databaseプロジェクトを作成 • 既存環境のスキーマ比較など可能 • ビルド:dacpacと呼ばれるDBオブジェクトの定義パッケージを生成 • デプロイ:Azure Pipelineには「 SqlAzureDacpacDeployment」というタスクがあ り、Firewallも一時的にDevOpsを許可するなど便利 • 参考 • Visual Studio×DevOpsを利用したSQL DB CICDのチュートリアル ※VS2019対応のためVM imageをwindows-2019にすると吉 • 補足 • なぜかPipelineタスクでazuresubscriptionのパラメータは変数が使えなかった • sqlprojをADSから普通に作成すると、sql2019,ManagedInstance用のものができるの で、.sqlprojのDSPタグを変更しておく • <DSP>Microsoft.Data.Tools.Schema.Sql.SqlAzureV12DatabaseSchemaProvider</DSP> アプリ部分のCICDについて • dacpac、bacpacについて
  • 8. • Data Factory • コード化:Git連携機能により、すべてのア セットがjson化、保存される • ビルド(publish):adf_publishブランチ にARMテンプレートが生成される • デプロイ:adf_publishのARMテンプレー トを利用して別環境のADFにデプロイ • 補足 • Linked ServiceはAzureKeyVaultで接続先を secret化し、 ADF->AKVの向き先だけ変えれば secret同じ、接続先変更が簡単 アプリ部分のCICDについて • Azure Data Factory における継続的インテグレーションとデリバリー
  • 11. • ADFのSQLへの登録 • Azure SQL Server(Single DB or DW)内のADユーザ登録手順(Qiita) • その他 • Github Repo • 本日使用したCode(README未整備) • Synapse Analytics(GA版)のIaC構築ハンズオン • データ インジェスト パイプラインの DevOps • その他のDeployAzureSample • Azure DevOps Pipelines • DevOps、Azure データ ファクトリ、機械学習を使用したデータ パイプラインの構築 補足