Weitere ähnliche Inhalte
Ähnlich wie Azure DevOps CICD Azure SQL / Data Factory (20)
Mehr von Ryoma Nagata (13)
Kürzlich hochgeladen (12)
Azure DevOps CICD Azure SQL / Data Factory
- 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 データ ファクトリ、機械学習を使用したデータ パイプラインの構築
補足