M365Con 2027 – 無料オンラインカンファレンス · 11–22 Jan 2027 · 120 sessions→ m365con.net

ブログ · Mirko Peters

GitHub と Azure DevOps の比較:エンタープライズ分析に適した CI/CD プラットフォームの選び方

By · · Updated

Microsoft Fabric のような現代的なエンタープライズ分析プラットフォームを構築する際、適切な継続的インテグレーション/継続的デプロイ(CI/CD)の基盤を選ぶことは、重要なアーキテクチャ上の判断です…

Automatically translated with AI from the original post. Read the English original

Microsoft Fabric のような現代的なエンタープライズ分析プラットフォームを構築する際、適切な継続的インテグレーション/継続的デプロイ(CI/CD)の基盤を選ぶことは、重要なアーキテクチャ上の判断です。多くの組織が、GitHub と Azure DevOps のどちらを採用するかで検討を迫られています。どちらも Microsoft の広範な開発者向けツール群から生まれたものですが、歴史的なワークフロー、ガバナンスの考え方、コミュニティの構造は大きく異なります。これらのツールがガバナンス、成果物の管理、パイプラインの柔軟性をどのように扱うかを理解することが、デプロイ戦略を決め、プラットフォーム全体の成否を左右します。

このアーキテクチャ上の課題を深く掘り下げ、これらのツールがデータのデプロイにどのような影響を与えるかについての詳しい解説を聞くには、関連するエピソード GitHub vs Azure DevOps for Microsoft Fabric CI/CD をぜひお聴きください。

デプロイのオーナーシップとは

Deployment Ownership Explained

デプロイのオーナーシップとは

デプロイのオーナーシップとは、DevOps プロセスのすべてのステップを自分で管理できる状態を指します。コードが開発からリリースまでどのように移動するかを決められます。DevOps ツールへのアクセス者を管理し、変更をどのように追跡するかも管理します。自動化のルールを定め、チームがそれに従うことを確実にします。

コードと成果物

DevOps プラットフォームでは、ソースコードと成果物を管理します。これらはデリバリーパイプラインの基盤を構成します。最新の DevOps ツールにおいて、デプロイのオーナーシップを構成する主要な要素は次のとおりです。

  • ソースコードの追跡
  • テスト
  • デプロイ
  • インフラストラクチャ管理
  • ビルドの追跡
  • シークレット管理
  • リリース管理

これらの工程は DevOps ツールで自動化します。自動化により更新をより速く提供でき、エラーも減らせます。コードを安全に保ち、成果物がテスト済みのバージョンと一致していることを確認します。ビルドとリリースを追跡し、環境全体での一貫性を維持します。

アクセスとガバナンス

DevOps ツールへのアクセスを管理し、ガバナンスポリシーを設定します。誰がコードを閲覧、編集、デプロイできるかを決めます。自動化を使ってルールを適用し、アクティビティを監視します。ガバナンスにより、開発とデリバリーの間もチームが標準に従うことが保証されます。操作を記録し、変更をレビューすることで、ソフトウェア開発プロセスを守ります。

オーナーシップが重要な理由

オーナーシップがあれば、DevOps 環境を自ら統制できます。デリバリーパイプラインをリスクから守り、開発を安全に保てます。規制へのコンプライアンスを維持し、運用上の統制を支えます。次の表は、DevOps においてデプロイのオーナーシップが重要である理由を示しています。

項目説明
ガバナンスフレームワークソフトウェア開発ライフサイクル(SDLC)全体にセキュリティ、コンプライアンス、説明責任を組み込みます。
自律性標準に従いながら、チームが独立して作業できるようにします。
リスク管理開発プロセス全体で一貫したリスク管理を確保します。

DevOps ツールを使って、強固なガバナンスフレームワークを構築できます。チームの自律性を高め、独立して作業を進めてもらえます。リスクを管理し、デリバリープロセスの信頼性を保てます。自動化は、開発とデリバリーをより効率的にすることで、これらの目標を支えます。

ヒント:DevOps パイプラインを自ら管理していれば、変更に迅速に対応し、ソフトウェア開発を計画どおりに進められます。

デプロイのオーナーシップを理解することは、DevOps ツールについて賢明な判断を下すうえで欠かせません。デリバリーの速度を高め、コードを守り、開発プロセスに対する統制を維持できます。

GitHub のオーナーシップモデル

コードと成果物の保存

GitHubは、ソース管理を一元化する場所として使えます。コードをgithub.comにプッシュすると、すべての変更履歴が明確に残ります。これにより、誰がいつ更新したのかを追跡できます。ニーズに応じて、コードはパブリックリポジトリにもプライベートリポジトリにも保存できます。GitHub Enterpriseを使用すると、高度なセキュリティやコンプライアンスツールなど、大規模組織向けの追加機能も利用できます。

デプロイ成果物には、GitHub Packagesを利用できます。このサービスを使うと、ビルド出力、コンテナーイメージ、その他のファイルをコードと一緒に保存できます。これらの成果物には、ワークフローから直接アクセスできます。ただし、GitHub Packagesが提供するのは作成日やダウンロード数などの基本的なメタデータのみです。成果物管理のためにカスタムプロパティを追加したり、高度なクエリを使用したりすることはできません。JFrogなどの他のプラットフォームは、メタデータとクエリの面でより多くの選択肢を提供しています。

以下は簡単な比較です。

機能JFrogGitHub
自動化:ネイティブに統合されたCI/CD✅✅
リリース段階に向けたビルドのプロモーション✅❌
トレーサビリティのための拡張メタデータ✅❌
高度なクエリ言語✅❌
プロキシリポジトリのキャッシュ✅❌
配布ソリューション✅❌
エンドツーエンドのDevOpsソリューション✅限定的

GitHubはソース管理と基本的な成果物の保存に使えます。より高度な成果物管理が必要な場合は、他のツールを使用したり、外部サービスと連携したりする必要があるかもしれません。

アクセス許可とアクセス管理

github.com上でコードを閲覧および変更できるユーザーを管理できます。ユーザーやチームにロールを割り当て、各メンバーが必要なアクセス権だけを持つようにします。これは最小権限の原則に沿った方法です。組織内でチームを作成し、チームごとに異なるアクセス許可を設定することもできます。たとえば、開発者には書き込みアクセスを与える一方で、管理者権限は信頼できるメンバーだけに限定するといった運用が考えられます。

ID およびアクセス管理(IAM)システムとGitHubを連携させることで、アクセス管理を自動化できます。チームの体制が変わったときに、ユーザーの追加や削除を簡単に行えます。また、明確なアクセス制御ポリシーを設定し、定期的に見直すことも重要です。GitHubではアクセスログを監査し、不審な動きがないかを確認できます。

GitHub Enterpriseを使用すると、大規模にアクセスを管理するための選択肢がさらに増えます。多数のリポジトリにまたがってポリシーを設定したり、ユーザーのプロビジョニングを自動化したりできます。

ガバナンスとコンプライアンス

デプロイを安全かつコンプライアンスに準拠した状態に保つには、強固なガバナンスが必要です。GitHubにはこれを管理するためのツールがいくつか用意されています。ワークフローをプロジェクト間で再利用できるため、時間を節約しつつ一貫性も確保できます。GitHub Actionsを使うと、デプロイを自動化し、環境ごとのルールを適用できます。

成果物の構成証明(アーティファクト アテステーション)を使うと、デプロイファイルが改ざんされていないことを検証できます。GitHubは、クラウドプラットフォームへの安全なデプロイのためにOpenID Connect(OIDC)もサポートしています。誰がいつデプロイできるかのルールを設定して、デプロイを制御することもできます。さらに、デプロイ履歴を確認できるため、監査やコンプライアンスチェックにも役立ちます。

機能説明
ワークフローの再利用リポジトリや組織をまたいで、ワークフローを共有および再利用します。
成果物の構成証明の使用デプロイで使用される成果物の整合性を検証します。
デプロイのセキュリティ強化OIDCを使用して、複数のクラウドプラットフォームに安全にデプロイします。
デプロイの制御デプロイプロセスを効果的に管理および構成します。
デプロイ履歴の表示過去のデプロイを追跡し、監査やコンプライアンスに役立てます。
環境の管理デプロイ環境を整理して、より適切に制御します。
カスタム保護ルールの作成重要なブランチやデプロイが承認されていない変更から保護されるよう、ルールを設定します。

役割に基づいてアクセス許可を付与し、管理者アクセスを必要なユーザーだけに制限できます。機密性の高いコードにはレビューを必須とするため、CODEOWNERS ファイルを使用してください。これらの機能によってガバナンスを徹底し、デプロイプロセスを安全に保てます。

注意: GitHub Actions は Microsoft Fabric と統合されているため、同じガバナンス管理を適用したまま、デプロイを自動化し、分析ソリューションを管理できます。

セキュリティに関する考慮事項

デプロイパイプラインで GitHub を使用する際は、セキュリティに十分注意する必要があります。ワークフローの多くの段階でセキュリティの脅威が発生する可能性があります。攻撃者はソースコードやビルドの成果物にマルウェアを埋め込もうとすることがあります。ベストプラクティスに従わないと、アクセスキーやパスワードなどの機密データが漏えいするおそれがあります。不正アクセスによって、攻撃者がパイプラインや本番環境を制御できてしまう場合もあります。古い依存関係には脆弱性が含まれることがあり、システム全体を脅かす可能性があります。

GitHub のデプロイパイプラインに影響する主なセキュリティの脅威を確認してください。以下の表に、各リスクとその影響を示します。

セキュリティの脅威影響
マルウェアの埋め込み攻撃者がソースコードやビルドの成果物にマルウェアを埋め込むおそれがあります。
機密データの漏えいアクセスキー、資格情報、パスワードが漏えいするおそれがあります。
不正アクセス攻撃者がパイプラインや本番環境を制御できるようになるおそれがあります。
古い依存関係既知の脆弱性を持つ依存関係が、パイプラインを脅かすおそれがあります。
パイプラインの設定ミスシステムに脆弱性を生じさせるおそれがあります。
データの損失攻撃者が機密データを盗んだり破壊したりするおそれがあります。
ダウンタイムセキュリティ侵害によって、システムが停止するおそれがあります。
評判の低下顧客の信頼を失い、経済的な損失が生じるおそれがあります。

強力なアクセス制御を使用して GitHub リポジトリを保護してください。すべてのユーザーに対して 2 要素認証を有効にすることをお勧めします。シークレット管理を使用すると、資格情報やトークンを安全に保管できます。機密情報をコードに直接保存することは避けてください。アクセス許可を定期的に見直し、不要になったユーザーのアクセスは削除してください。

GitHub Actions を使用してセキュリティ関連のタスクを自動化できます。変更をプッシュするたびにコード分析と脆弱性スキャンを実行するワークフローを設定するとよいでしょう。こうした自動チェックによって問題を早期に発見し、本番環境に影響が及ぶ前に修正できます。また、GitHub Actions を使用してブランチ保護ルールを適用し、重要な変更にはレビューを必須とすることもできます。

依存関係は常に最新の状態に保つ必要があります。GitHub の Dependabot を使用すると、プロジェクトを監視し、既知の脆弱性を持つ依存関係が見つかった際に通知を受け取れます。パイプラインの構成をテストし、システムがリスクにさらされていないことを確認してください。また、ログと監査証跡を定期的に確認し、不審なアクティビティを見逃さないようにしてください。

ヒント: GitHub に標準搭載されているツールと外部ソリューションを組み合わせることで、セキュリティ態勢をさらに強化できます。追加の保護が必要な場合は、サードパーティ製のスキャナーを使用したり、クラウドセキュリティプラットフォームと統合したりするとよいでしょう。

セキュリティは継続的なプロセスとして扱う必要があります。チームに安全な作業方法を教育し、定期的な見直しを推奨してください。多くのセキュリティタスクは GitHub の機能で自動化できますが、常に注意を怠らず、先を見越して対応する必要があります。強固なセキュリティは、コード、データ、そして評判を守ることにつながります。

GitHub をリポジトリとして始める - チェックリスト

GitHub をコードリポジトリとして使い始めるための実践的なチェックリストです。

  • GitHub アカウントを作成するか、既存のアカウントにサインインする
  • チームで所有するため、個人アカウントと組織のどちらを使うか決める
  • 新しいリポジトリを作成し(パブリックまたはプライベート)、適切な公開範囲を選択する
  • わかりやすいリポジトリ名と、内容を説明する README.md を追加する
  • プロジェクトの要件に合った LICENSE ファイルを追加する
  • 使用する言語やフレームワークに合わせた .gitignore を追加する
  • 既定のブランチ(main)でリポジトリを初期化し、ブランチ保護ルールを設定する
  • CODEOWNERS と貢献ガイドライン(CONTRIBUTING.md)を設定する
  • Issue テンプレートとプルリクエストテンプレートを設定する
  • Issue 管理のために、ラベル、マイルストーン、プロジェクトボードを設定する
  • CI/CD 用の GitHub Actions ワークフローを設定するか、既存のパイプラインと統合する
  • CI、デプロイ、サードパーティ サービス用のリポジトリ シークレットを追加する
  • ブランチ保護ルールを設定する(必須レビュー、状態チェック、必要に応じて署名付きコミットの必須化)
  • 依存関係の更新とセキュリティアラートのために Dependabot を有効にする
  • セキュリティ機能(コード スキャン、シークレット スキャン、脆弱性アラート)を有効にする
  • CI、チャットオプス、外部サービスとの連携のために Webhook や統合を設定する
  • 共同作業者やチームメンバーを招待し、リポジトリのアクセス許可を設定する
  • 既存のリポジトリと Issue を移行する(Azure DevOps から移行する場合は、移行を計画し、作業項目を対応付ける)
  • リポジトリの構造、開発ワークフロー、リリースプロセスを Wiki または docs フォルダーに文書化する
  • リリース、デプロイ、重要なワークフローについて監視とアラートを構成する
  • ワークフローと代替手段(GitHub と Azure DevOps の比較)を検討・比較し、CI/CD とプロジェクト管理の選択を最適化する
  • リポジトリへのアクセス、シークレット、セキュリティ設定を定期的に監査する

Azure DevOps の所有権モデル

リポジトリとパイプライン

Azure DevOps を使用すると、コード、成果物、デプロイプロセスを管理するための統合プラットフォームが手に入ります。Azure DevOps のサービスは、コードリポジトリ、作業項目の追跡、テストツール、成果物ストレージをまとめて提供します。この統合により、ソフトウェア提供ライフサイクルのすべての段階を管理できます。各パイプラインの実行を特定のコミット、プルリクエスト、作業項目までたどれるため、開発プロセスを明確に把握できます。

機能説明
ライフサイクル管理Azure DevOps は、コードリポジトリ、作業項目の追跡、テスト、成果物ストレージを統合します。
パイプラインの統合すべてのパイプラインの実行を、特定のコミットや作業項目までたどれます。
ロールベースのアクセス制御プロジェクトには、アクセスとアクセス許可を管理するためのロールが割り当てられます。

Azure DevOps のパイプラインは、リソースにアクセスするために ID を使用します。これらの ID は、コレクションレベルまたはプロジェクトレベルで設定できます。プロジェクトレベルの ID を使うと、各プロジェクトで必要なリソースだけにアクセスを制限できるため、セキュリティが向上します。また、チェックやパイプラインのアクセス許可を使ってリポジトリのリソースを保護することもできます。これにより、コードとデプロイのワークフローに対する所有権と編集権限を管理できます。

Azure DevOps は合理化された CI/CD をサポートしており、ビルド、テスト、デプロイを自動化できます。Azure Pipelines を使えば、継続的インテグレーションと継続的デリバリーを利用でき、更新を迅速かつ確実に届けられます。Microsoft は Azure DevOps をクラウドコンピューティングと相性良く設計しており、ニーズの拡大に合わせてプロジェクトを容易にスケールできます。

アクセス制御

ロールベースのアクセス制御を使って、Azure DevOps サービスにアクセスできるユーザーを管理します。このモデルでは、ロールに基づいてアクセス許可を割り当てるため、各ユーザーは必要なアクセスだけを得られます。ユーザーはセキュリティグループにまとめることができ、組織、プロジェクト、またはオブジェクトのレベルでアクセス許可を割り当てられます。Microsoft は最小特権の原則に従うことを推奨しています。つまり、ユーザーにはタスクに必要なアクセス許可だけを与えます。

  • ユーザーやグループにロールを割り当て、アクセスを細かく制御します。
  • セキュリティグループを使って、さまざまなレベルでアクセス許可を管理します。
  • 想定外の利用を見つけるため、アクセス許可を定期的に確認し、監査します。

Azure DevOps では、チームの変化に応じてアクセスを容易に監視し、調整できます。各リポジトリとパイプラインにアクセスできるユーザーを追跡できるため、DevOps 環境の管理を維持しやすくなります。

ガバナンスとポリシー

安全で信頼性の高いデプロイには、強固なガバナンスが欠かせません。Azure DevOps は、ブランチポリシー、アクセス制御、カスタムロールによってガバナンスを実施します。ブランチポリシーを使うと、コードをマージする前にチェックと要件を設定できるため、品質の確保されたコードだけが本番環境に到達します。最小特権の原則に基づいてセキュリティプリンシパルにロールを割り当てることで、不正アクセスのリスクを減らせます。

  • マージ前にコードレビューとチェックを必須とするブランチポリシーを設定します。
  • 本番環境での破壊的な操作を防ぐため、サービス プリンシパルにカスタムロールを割り当てます。
  • 重要な環境にデプロイできるユーザーを、アクセス制御によって制限します。

Microsoft は、エンタープライズ環境のガバナンスをサポートするために Azure DevOps を開発しました。GitHub や Microsoft Fabric などの他の Microsoft ツールと Azure DevOps を統合すると、シームレスな DevOps ワークフローを構築できます。この統合により、デプロイの管理、ポリシーの適用、組織全体のコンプライアンスの維持が容易になります。

ヒント: デプロイを安全かつコンプライアンスに準拠した状態に保つため、Azure DevOps のガバナンス設定を定期的に確認してください。

セキュリティとコンプライアンス

デプロイを管理するうえで、強力なセキュリティとコンプライアンスの統制は欠かせません。Azure DevOps には、コード、データ、ワークフローを保護するためのさまざまなツールが用意されています。組み込みのセキュリティ機能を使うと、開発プロセスを安全に保ち、業界標準に準拠させることができます。

Azure DevOps では、ロールベースのアクセス制御によって、リソースを表示または変更できるユーザーを制限します。ユーザーやグループにアクセス許可を割り当てて、適切な人だけがアクセスできるようにします。また、サービス接続を使うと、パイプラインが他の Azure サービスとどのようにやり取りするかを制御できます。これにより、不正な操作のリスクを低減できます。

Azure DevOps でブランチ ポリシーを設定すると、変更をマージする前にコードレビューとチェックを必須にできます。これらのポリシーにより、問題を早期に発見し、コードベースの安全性を保てます。さらに、パイプラインに承認ゲートを設定すると、テスト済みで承認されたコードだけを本番環境に反映できます。このプロセスは、あらゆる段階でルールを適用することにより、コンプライアンスを支えます。

Azure DevOps では、詳細な監査ログを取得できます。プロジェクト内のすべての操作を追跡できるため、変更の確認や異常なアクティビティの発見が容易になります。これらのログは、コンプライアンス監査への対応や、規制要件の充足に役立てられます。

Azure DevOps では、シークレットと資格情報を安全に保存できます。プラットフォームは、機密情報を安全なストレージに保管します。コードに公開することなく、シークレットをパイプラインに関連付けられます。これにより、パスワード、トークン、キーの漏えいを防げます。

Azure DevOps は、Azure のセキュリティ ツールとの統合をサポートしています。Microsoft Defender for Cloud を使うと、コードやリソースをスキャンして脅威を検出できます。また、Azure policy に接続すると、環境全体にコンプライアンス ルールを適用できます。これらの統合により、強固なセキュリティ態勢を構築できます。

パイプラインにセキュリティ チェックを自動化して組み込むことができます。脆弱性のスキャンやコンプライアンス上の問題の確認を行うタスクを追加できます。この自動化により、本番環境に到達する前に問題を見つけて修正できます。また、継続的インテグレーションを使えば、コードをプッシュするたびにこれらのチェックを実行できます。

Azure DevOps があれば、セキュリティとコンプライアンスを安心して管理できます。コードの保護、アクセスの制御、業界標準への準拠に必要なツールがそろっています。デプロイを安全に保ちながら、優れたソフトウェアの開発に集中できます。

Azure DevOps をリポジトリとして始める — チェックリスト

  • Azure DevOps の組織を作成する、またはその組織にサインインする
  • 新しいプロジェクトを作成し(公開範囲をプライベートまたはパブリックから選択)、バージョン管理として Git を選択する
  • 最初のリポジトリを作成するか、既存のリポジトリをインポートする(GitHub またはローカルから)
  • わかりやすい README.md とライセンス ファイルを追加する
  • プロジェクトの言語やフレームワークに合わせた .gitignore を追加する
  • ブランチ戦略と命名規則を定義する(main、develop、feature/*、hotfix/*)
  • main ブランチを保護する:ブランチ ポリシー、必須レビュアー、状態チェックを有効にする
  • プル リクエストのテンプレートとコントリビューター向けガイドラインを作成する
  • リポジトリのアクセス許可とグループを構成する(Readers、Contributors、Project Administrators)
  • デプロイ用のサービス接続を設定する(Azure、AWS、Docker レジストリ、外部の Git プロバイダー)
  • CI パイプラインを作成する(Azure Pipelines YAML またはクラシック)し、PR でビルドを検証する
  • 環境(dev/stage/prod)向けの CD パイプラインまたはリリース パイプラインを作成し、承認ゲートを設定する
  • Boards と統合する:作業項目を作成し、コミットや PR を作業項目にリンクする
  • 外部連携用の Webhook またはサービス フックを構成する(Slack、Teams、Jenkins)
  • リポジトリのブランチ保持期間とビルドの保持ポリシーを構成する
  • 監査を有効にし、必要なコンプライアンスおよびセキュリティの統制を設定する
  • コード スキャン、セキュリティ分析、依存関係チェックを設定する(GitHub には追加のツールがある場合があるため、必要に応じて比較する)
  • パッケージのホスティングが必要な場合は、Artifacts フィードを設定する(NuGet、npm、Maven)
  • Wiki またはドキュメント サイトを作成し、適切な場合はドキュメントをリポジトリ内で管理する
  • GitHub から移行する場合は、移行手順を計画する:リポジトリ、Issue、PR、CI/CD、サービス アカウントを対応付ける
  • チーム メンバーを招待し、各自のアカウントからアクセスできることを確認する
  • 初回のエンドツーエンドテストを実施します。クローン、コミット、プッシュ、PRの作成、パイプラインの実行、テスト環境へのデプロイまでを確認します。
  • 利用状況とパイプラインを監視し、ポリシーと自動化を継続的に改善します。

Microsoft Fabric との統合

Git との統合

Microsoft Fabric のワークスペースを GitHub リポジトリに直接接続できます。この接続により、分析プロジェクトを強力にバージョン管理できます。ワークスペースをGitHub の develop ブランチにリンクします。この構成により、すべての変更を追跡し、必要に応じて以前の状態に戻すことができます。Microsoft Fabric のデプロイメントパイプラインを使えば、コンテンツを開発環境からテスト環境、そして本番環境へ移行できます。このプロセスにより、環境間の同期の問題を回避できます。

安定した機能をリリースする場合は、リリースブランチを作成します。デプロイメントパイプラインを使用して、これらの変更を本番環境へ反映します。緊急の問題を修正する必要がある場合は、ホットフィックスブランチを作成します。このブランチを main ブランチにマージしてからデプロイします。環境ごとに個別のデータベースを使用する必要があります。これにより、テストや開発の過程での誤った変更から本番データを保護できます。

Azure DevOps と GitHub による CI/CD

Azure DevOps または GitHub Actions を使用して、Microsoft Fabric に CI/CD パイプラインを設定できます。これらのツールを使うと、ビルド、テスト、デプロイの各手順を自動化できます。デプロイメントパイプラインには、明確で分かりやすい名前を付けることをお勧めします。そうすると、各パイプラインの目的を簡単に識別できます。開発、テスト、本番などのパイプラインの段階ごとに、既存のワークスペースを使用することも、新しいワークスペースを作成することもできます。

段階間でコンテンツを頻繁に比較してください。この確認により、すべてのアイテムが正しくデプロイされていることを確認できます。パイプライン内の任意のワークスペースからアプリケーションを公開できます。この手順により、エンドユーザーは最終デプロイの前に機能をテストできます。開発者や機能ごとに個別のブランチを維持することをお勧めします。これにより、マージの競合を回避できます。Gitflow のような堅牢なブランチ戦略を採用すると、開発、リリース、ホットフィックスを効率的に管理できます。

変更をマージする前に、コードレビューを必須にしてください。このルールにより、他のチームメンバーが更新内容を確認し、承認することが保証されます。Microsoft Fabric では、変更をデプロイする前に、ソースワークスペースとターゲットワークスペースのコンテンツを比較できます。この機能を使うと、ミスを早期に発見し、環境の一貫性を保つことができます。

データガバナンス

Microsoft Fabric は、データライフサイクルのあらゆる段階にガバナンスを組み込んでいます。データの収集、保存、分析を1つの環境で管理できます。Microsoft Purview がデータをカタログ化し、そのリネージを追跡します。OneLake が一元化されたストレージを提供するため、ガバナンスポリシーを簡単に適用できます。Microsoft Entra ID によるロールベースのアクセス制御により、データを閲覧または変更できるユーザーを決定できます。

ガバナンスポリシーは OneLake のレベルで適用します。これらのルールは、ワークスペースやデータセットをまたいでデータに追従します。この方法により、データの取り扱いを一貫して迅速に保つことができます。ワークスペースごとに個別のルールを設定する必要はありません。Microsoft Fabric の設計により、データが増えても制御を維持し、コンプライアンス要件を満たし続けることができます。

セキュリティとコンプライアンス

Microsoft Fabric でデータやデプロイメントを管理する際は、強固なセキュリティとコンプライアンスの管理が必要です。このプラットフォームには、情報を保護し、規制要件を満たすための高度なツールが用意されています。Data Factory パイプラインの機密データを分類し、保護することができます。これにより、重要な情報を不正アクセスから守ることができます。

Microsoft Fabricは、Microsoft Defender for Cloud Appsと連携できます。この連携により、運用状況の可視性と制御性が向上します。アクティビティを監視し、リスクの高い動作に対するアラートを設定できます。データのリネージ(系統情報)を追跡することもできます。この機能により、データがシステム内をどのように移動しているかを確認できます。この情報を使って、コンプライアンスを検証し、機密データの流れを把握できます。

Microsoft Fabricでは、データ損失防止(DLP)ポリシーを設定できます。これらのポリシーは、機密情報の不正な共有を防ぐのに役立ちます。組織のニーズに合わせて、カスタムルールを作成することもできます。たとえば、ユーザーが機密データを社外に送信できないようにブロックできます。保護された情報を共有しようとする動きがあった場合に、アラートを受け取ることもできます。

Microsoft Fabricはデータのローカライズに対応しています。Multi-Geo機能を使うと、データの保存場所を選択できます。これにより、各国のデータ所在地に関する法律に準拠しやすくなります。現地の規制を満たすために、特定のリージョンにデータを保持することもできます。この機能は、複数の拠点で事業を展開している組織にとって重要です。

Microsoft Fabricは、GDPRなどの法律に基づくプライバシーの権利に対応しています。このプラットフォームには、データ主体からの要求(DSR)に対応するためのツールが用意されています。Microsoft Purviewを使って、特定の個人のデータを検索できます。このデータは、JSONやCSVなどの形式でエクスポートできます。誤りが見つかった場合は、修正できます。必要に応じて、ユーザーIDを削除することもできます。これらの手順により、プライバシーを尊重し、法的ルールに従うことができます。

Microsoft Fabricにおけるプライバシー権の管理の概要は、次のとおりです。

  1. 検索と検出: Microsoft Purviewを使って、データ主体に関する情報を見つけます。
  2. 取得: 一般的な形式でデータをエクスポートします。
  3. 訂正: 保存されているデータの誤りを修正します。
  4. 消去: ユーザーIDを完全に削除します。

これらの機能を使うことで、安全でコンプライアンスに準拠したデータプラットフォームを構築できます。Microsoft Fabricは、データの保護、アクセス制御、そして現代の規制要件への対応を支援します。デプロイがセキュリティとコンプライアンスのベストプラクティスに従っていると分かれば、安心して運用できます。

ヒント: セキュリティとコンプライアンスの設定を頻繁に見直してください。定期的なチェックにより、新たなリスクに先回りして対応し、データを安全に保つことができます。

GitHub、Azure DevOps、Fabricの比較: 所有権の違い

リポジトリの場所

コードがどこに保存されているかを把握しておく必要があります。GitHubとAzure DevOpsの比較では、これが重要なポイントです。GitHubはリポジトリをクラウドに保存します。パブリックとプライベートのどちらかを選択できます。多くのオープンソースプロジェクトは、共有と共同作業が容易なGitHubを利用しています。Azure DevOpsもコードをクラウドに保存しますが、プライベートでエンタープライズ向けのプロジェクトに重点を置いています。誰がコードを閲覧および変更できるかを、より細かく管理できます。Microsoft Fabricは、バージョン管理のためにGitHubとAzure DevOpsの両方に接続できます。分析プロジェクトはFabricで管理しますが、実際のコードは接続先のリポジトリに置かれます。

簡単な比較は次のとおりです。

プラットフォームリポジトリの場所最適な用途
GitHubクラウド(GitHub.com)オープンソース、共同作業
Azure DevOpsクラウド(Azure Repos)エンタープライズ、プライベートプロジェクト
Microsoft Fabric接続されたGitHub/Azure DevOpsデータ分析、統合された制御

自社のニーズに合ったプラットフォームを選択してください。オープンな共同作業を重視するならGitHubが適しています。厳格な制御が必要な場合は、Azure DevOpsのほうが多くの選択肢を提供します。Microsoft Fabricではどちらも利用できるため、自社のワークフローに合わせることができます。

アーティファクト管理

アーティファクト管理とは、プロジェクトで作成されるビルド成果物、パッケージ、ファイルを扱う方法のことです。GitHubとAzure DevOpsの比較では、大きな違いが見えてきます。GitHubはアーティファクトの保存にGitHub Packagesを使用します。パッケージの保存や共有といった基本的な機能が利用できます。Azure DevOpsはAzure Artifactsを提供しており、より高度な制御が可能です。バージョンを管理し、フィードを設定し、使用状況を追跡できます。Microsoft Fabricは、Power BIレポートやセマンティックモデルなど、分析系のアーティファクトに重点を置いています。バージョン管理のためにリポジトリと連携し、環境間でアーティファクトを移動させるためにデプロイメントパイプラインを使用します。

アーティファクト管理を比較する際は、次の点に注目してください。

  • 認証: Azure DevOps は Microsoft Entra のユーザー アカウントを使用します。そのため、サインインが簡単で安全です。GitHub は個人用アクセス トークンを使用します。特に大規模なチームでは、管理が難しくなる場合があります。
  • ガバナンス: Azure DevOps には組み込みのガバナンス機能があります。ルールを設定し、変更を簡単に追跡できます。GitHub Enterprise は標準の GitHub よりも優れたガバナンスを提供しますが、エンタープライズのニーズという点では Azure DevOps が依然として優位です。
  • 統合: Microsoft Fabric がアーティファクト管理でサポートするのは、クラウドベースの Azure DevOps と GitHub のみです。Fabric を利用する場合は、クラウド ベースのワークフローに対応しておく必要があります。

以下の表で比較してみましょう。

プラットフォームアーティファクト ストレージガバナンス機能Fabric との統合
GitHubGitHub Packages基本的(Enterprise が最適)はい
Azure DevOpsAzure Artifacts高度(組み込み)はい
Microsoft FabricリンクされたリポジトリFabric に統合該当なし(リンクされたリポジトリを使用)

強力なアーティファクト管理とガバナンスが必要な場合は、Azure DevOps を選択するとよいでしょう。GitHub はシンプルな要件やオープンなプロジェクトに適しています。Microsoft Fabric では分析アーティファクトを一元的に管理できますが、ストレージにはリンクされたリポジトリを利用します。

アクセスと許可

アクセスと許可は、誰がコードやアーティファクトを参照、編集、デプロイできるかを決定します。GitHub と Azure DevOps の比較では、両者のアプローチの違いが見えてきます。GitHub では、リポジトリ、組織、エンタープライズの各レベルでロールを設定できます。チームとコード所有者を使って変更を管理します。Azure DevOps はロールベースのアクセス制御を採用しています。ユーザーをセキュリティ グループに割り当て、プロジェクトまたはオブジェクト単位でアクセス許可を設定します。これにより細かな制御が可能になり、大規模な組織では重要です。

Microsoft Fabric は、アクセス制御に Microsoft Entra ID を使用します。分析ワークスペースに対してロールを設定し、分析コンテンツを誰が表示、編集、デプロイできるかを決められます。Fabric を GitHub または Azure DevOps にリンクする場合は、コードとアーティファクトについてはそれぞれのアクセス制御を使用します。つまり、Microsoft による強力なID管理と、選択したリポジトリの柔軟な制御の両方を活用できます。

概要は次のとおりです。

  • GitHub: ロールとチーム、コード所有者、監査ログ。
  • Azure DevOps: ロールベースのアクセス、セキュリティ グループ、プロジェクト レベルの制御。
  • Microsoft Fabric: Entra ID のロール、ワークスペースのアクセス許可、リンクされたリポジトリの制御を継承。

アクセス設定は定期的に見直しましょう。適切なユーザーだけがアクセス許可を持っていることを確認してください。これによりプロジェクトを安全に保ち、コンプライアンスをサポートできます。

ヒント: 最小特権の原則を適用しましょう。ユーザーには必要なアクセスのみを付与します。これによりリスクを抑え、安全性を維持できます。

ガバナンスとコンプライアンス

デプロイを保護し、業界標準を満たすために、強力なガバナンスとコンプライアンスが必要です。GitHub、Azure DevOps、Microsoft Fabric のいずれも、これらのニーズに対して異なるツールとアプローチを提供しています。

GitHub は柔軟なガバナンスを提供します。ブランチ保護ルールの設定、コード レビューの必須化、CODEOWNERS ファイルの利用が可能です。これらの機能により、コードを変更できるユーザーを管理できます。監査ログを使えば、リポジトリ内の操作を追跡することもできます。コンプライアンスについては、サードパーティ ツールとの統合をサポートしています。ポリシー チェックを自動化し、GitHub Actions でルールを適用できます。GitHub Enterprise を利用すると、SAML シングル サインオンや組織全体のポリシー管理といった高度なコンプライアンス機能も使えます。

Azure DevOps はエンタープライズ向けのガバナンスに重点を置いています。ブランチ ポリシー、承認ゲート、カスタム ロールを設定できます。これらの制御により、プロジェクト全体で標準を徹底できます。作業項目の追跡機能を使えば、コードの変更をビジネス要件に結び付けられます。パイプラインにコンプライアンス チェックを設定することもできます。監査証跡と詳細なログ記録にも対応しています。ISO、SOC、GDPR などのフレームワークへの準拠を示すレポートをエクスポートできます。さらに、Azure Policy や Microsoft Purview と統合し、一元的なガバナンスを実現します。

Microsoft Fabric は、データ分析のワークフローにガバナンスをもたらします。Microsoft Purview を使ってデータをカタログ化し、データ系列を追跡できます。ポリシーは OneLake 全体に設定でき、すべてのワークスペースに適用されます。この統合されたアプローチにより、データが増えてもコンプライアンスを管理しやすくなります。Microsoft Fabric は、Microsoft Entra ID によるロールベースのアクセス制御に対応しています。データへのアクセスやデプロイに関するルールを設定できます。また、GDPR のようなプライバシー法に対応する組み込みのコンプライアンス ツールも利用できます。必要に応じて、ユーザー データの検索、エクスポート、削除が可能です。

ガバナンスとコンプライアンスの機能を比較するための表を以下に示します。

プラットフォームガバナンスツールコンプライアンスへの対応Azure との統合
GitHubブランチ ルール、CODEOWNERS、ログサードパーティ、Enterpriseはい
Azure DevOpsポリシー、ロール、監査証跡ISO、SOC、GDPR、Purviewネイティブ
Microsoft FabricPurview、OneLake、Entra IDGDPR、プライバシー ツールネイティブ

ヒント: ガバナンスの設定は定期的に見直してください。強固なガバナンスは、コンプライアンスの要件を満たし、デプロイを安全に保つのに役立ちます。

セキュリティの現状

コード、データ、デプロイを脅威から保護する必要があります。プラットフォームごとに、提供されるセキュリティ機能と制御手段は異なります。

GitHub は、2 要素認証、シークレット管理、ブランチ保護によってリポジトリの保護を支援します。GitHub Actions を使えば、セキュリティスキャンや脆弱性チェックを自動化できます。Dependabot は、古くなった依存関係があると通知します。監査ログを確認して、不審なアクティビティを見つけることもできます。クラウドへのデプロイでは、GitHub が安全な認証のための OpenID Connect をサポートしています。これらのツールを使って、コードと成果物を安全に保ってください。

Azure DevOps は、高度なセキュリティ制御を提供します。ロールベースのアクセス制御を使って、アクセス許可を制限できます。Azure DevOps はシークレットを安全に保存し、パイプラインに関連付けます。承認ゲートを設定して、リスクの高いデプロイをブロックできます。Azure DevOps は Microsoft Defender for Cloud と統合され、脅威をスキャンします。Azure Policy を使うと、環境全体にセキュリティ ルールを適用できます。詳細な監査ログにより、すべての操作を追跡できます。パイプラインにセキュリティ チェックを自動化すれば、問題を早期に検出できます。Azure DevOps は業界標準へのコンプライアンスをサポートし、セキュリティ レポートをエクスポートするためのツールも提供します。

Microsoft Fabric は、データ セキュリティに重点を置いています。Microsoft Defender for Cloud Apps を使ってアクティビティを監視し、リスクの高い動作に対するアラートを設定できます。パイプライン内の機密データを分類して保護できます。Microsoft Fabric は Data Loss Prevention (DLP) ポリシーに対応しています。機密情報の不正な共有をブロックできます。また、Multi-Geo によるデータの地域配置も利用できるため、データの保存場所を選択できます。Microsoft Fabric は、プライバシーに関する権利の管理やデータ主体からの要求への対応にも役立ちます。法的要件を満たすために、ユーザー データの検索、エクスポート、削除ができます。

セキュリティ機能の概要は以下のとおりです。

  • GitHub: 2 要素認証、シークレット管理、自動スキャン、監査ログ
  • Azure DevOps: ロールベースのアクセス制御、シークレットの安全な管理、承認ゲート、Defender for Cloud、ポリシーの適用、監査証跡
  • Microsoft Fabric: Defender for Cloud Apps、DLP ポリシー、データ分類、Multi-Geo、プライバシー管理

注意: プラットフォームのセキュリティ機能とベストプラクティスを組み合わせて使用してください。チームへのトレーニングを行い、設定を見直し、脅威の変化に応じてポリシーを更新してください。

適切なツールを使い、先回りして対策を講じることで、最も強固なセキュリティの状態を実現できます。GitHub、Azure DevOps、Microsoft Fabric のいずれも、デプロイとデータを保護するために必要な制御手段を提供しています。

実際の DevOps シナリオ

GitHub によるオープンソース開発

オープンソース プロジェクトに取り組む場合、GitHub を使えばデプロイの所有権をシンプルに管理できます。デプロイのプロセスを自動化し、コードを変更するたびにプロジェクトを公開状態に保てます。GitHub を使った一般的なオープンソースの DevOps ワークフローで、所有権がどのように機能するかは次のとおりです。

  • コードを GitHub のパブリック リポジトリにプッシュします。
  • main ブランチへのプッシュのたびに、自動デプロイがトリガーされます。
  • デプロイにあたって、申請や承認の待機は必要ありません。
  • 独自の AWS アカウントや同等のサービスを利用することで、クラウド インフラストラクチャの管理権限を保持できます。
  • プロジェクトは、常に本番環境レベルのインフラストラクチャ上で公開され続けます。

この方法では、プロジェクトの構築と改善に集中できます。手動の承認や遅延を心配する必要はありません。コードを公開する場合でも、デプロイのプロセスとインフラストラクチャはご自身で管理できます。GitHubでは、GitHub ActionsなどのDevOpsツールを使って、テストやデプロイの手順を自動化することもできます。

Azure DevOpsを利用するエンタープライズ環境

エンタープライズ環境では、複雑なプロジェクトの管理にAzure DevOpsを使うことがよくあります。スピード、セキュリティ、コンプライアンスのバランスを取る必要があります。この環境では、管理責任の所在があいまいになりがちです。次の表は、直面しやすい代表的な課題を示しています。

課題の種類説明
責任の所在の不明確さDevOpsの導入により責任が変化し、クラウドインフラストラクチャを誰が管理するのかが分かりにくくなります。
セキュリティとコンプライアンスの懸念セキュリティの構成やコンプライアンス要件への対応は、デプロイの管理責任を複雑にします。
クラウドインフラストラクチャの複雑さクラウドインフラストラクチャの導入により、従来のデプロイプロセスと管理責任が複雑になります。

チームの役割と責任は明確に定義する必要があります。Azure DevOpsでは、アクセス許可を割り当てたり、ロールベースのアクセス制御を使用したりして、これを実現できます。すべての変更を追跡し、自社の基準に合わせてポリシーを適用できます。Microsoftは、セキュリティとコンプライアンスのための組み込みツールを提供しており、コードとデータを保護できます。また、Azure DevOpsを他のMicrosoftサービスと統合すれば、一貫性のあるDevOps環境を実現できます。

Fabricによるデータ分析

データ分析プロジェクトを管理する場合、Microsoft Fabricではデプロイの管理責任を強力にコントロールできます。ワークスペース内の各アイテムについて、誰がデプロイ、編集、表示できるかを管理できます。次の表は、Microsoft Fabricのアイテムごとの管理責任の仕組みを示しています。

Fabricアイテム既存のアイテムをデプロイするために必要なアクセス許可初回デプロイ後のアイテムの所有者アイテムが存在するステージへのデプロイ後のアイテムの所有者
セマンティック モデルワークスペース メンバーデプロイを実行したユーザーが所有者になります変更なし
データフローデータフローの所有者デプロイを実行したユーザーが所有者になります変更なし
データマートデータマートの所有者デプロイを実行したユーザーが所有者になります変更なし
ページ分割レポートワークスペース メンバーデプロイを実行したユーザーが所有者になりますデプロイを実行したユーザーが所有者になります

分析アセットを明確にコントロールできるようになります。新しいアイテムをデプロイすると、そのユーザーが所有者になります。アイテムがすでに存在するステージにデプロイする場合、所有者は変わりません。Microsoft Fabricでは、ワークスペースのロールとアクセス許可を使ってアクセスを管理できます。ワークスペースをGitHubまたはAzure DevOpsに接続すれば、バージョン管理と自動デプロイが可能です。この統合により、データ分析プロジェクトでも一貫性のあるDevOpsのワークフローを実現できます。

ヒント: Microsoft Fabricのデプロイ パイプラインとワークスペースのアクセス許可を使うと、データを安全に保ちながらチームの生産性を高められます。

ハイブリッド デプロイ

デプロイの管理には、複数のプラットフォームを使う必要があることがよくあります。これは大規模な組織や、異なるツールの長所を組み合わせたい場合によく見られます。ハイブリッド デプロイでは、ソース管理にGitHub、パイプラインにAzure DevOps、分析にMicrosoft Fabricを使えます。これらのプラットフォームを連携させ、自社のニーズに合ったワークフローを構築できます。

まず、コードをGitHubに保存するところから始めるとよいでしょう。GitHub Actionsを使えば、テストの実行やアプリケーションのビルドができます。その後、ビルドの成果物をAzure DevOpsに送信できます。Azure DevOpsでは、高度なパイプライン制御と成果物の管理が可能です。承認ゲートを設定し、ロールベースのアクセスを使って本番環境へのデプロイを行うユーザーを制御できます。データ分析が必要な場合は、Microsoft Fabricをリポジトリに接続できます。これにより、強力なガバナンスのもとで分析アセットとデプロイを管理できます。

ハイブリッド デプロイには柔軟性があります。ワークフローの各部分に最適なツールを選べます。チームの成長に合わせて運用を拡張することもできます。ただし、管理責任は慎重に扱う必要があります。各プラットフォームには、アクセス、ガバナンス、セキュリティに関する独自のルールがあります。これらのルールが相互に機能するよう確認する必要があります。

ハイブリッド環境でデプロイのオーナーシップを管理するためのベストプラクティスを以下に示します。

ベストプラクティス説明
自動化継続的デプロイ(CD)パイプラインを使用して、ビルド、テスト、デプロイを自動化します。これにより、エラーを減らし、時間を節約できます。
デプロイ戦略ブルーグリーンデプロイまたはカナリアデプロイを適用します。これらの方法を使うと、リスクとダウンタイムを抑えてアプリケーションを更新できます。
一貫した管理ツールOctopus、Anthos、OpenShiftなどのツールを使用して、さまざまなプラットフォーム全体のデプロイを管理します。これらのツールは、プロセスの一貫性を保つのに役立ちます。

できる限り自動化しましょう。自動化はミスを減らし、デプロイを高速化します。また、効果的なデプロイ戦略も活用してください。ブルーグリーンデプロイとカナリアデプロイを使えば、すべてのユーザーに影響を与えずに新しいバージョンをテストできます。これにより、問題を早期に発見できます。

プラットフォームをまたいで機能する管理ツールを使用する必要があります。これらのツールは、デプロイの状況を把握し、全員が同じルールに従うようにするのに役立ちます。ダッシュボードを設定してパイプラインを監視し、問題が発生した場合にアラートを受け取ることもできます。

ヒント: 各プラットフォームのアクセスとガバナンスの設定を確認してください。適切な担当者だけがコードをデプロイしたり変更したりできるようにしてください。これにより、ワークフローのセキュリティを保てます。

ハイブリッドデプロイは複雑に思えるかもしれませんが、適切なプラクティスを使えば管理できます。各プラットフォームの利点を活かしつつ、デプロイを引き続きコントロールできます。ベストプラクティスに従うことで、ソフトウェアの信頼性とセキュリティを確保できます。

適切な DevOps プラットフォームの選択

重要なオーナーシップの質問

DevOps プラットフォームを選ぶ前に、適切な質問を投げかける必要があります。これらの質問により、各ツールがオーナーシップ、ガバナンス、統合をどのように扱うかを理解できます。次の点を検討してください。

  • コードやアーティファクトへのアクセスは誰が管理しますか?
  • プラットフォームはガバナンスとコンプライアンスをどのように適用しますか?
  • デプロイでメタデータが欠けている場合に、リマインダーを自動で送信できますか?
  • プラットフォームは既存のツールとの統合をサポートしていますか?
  • プラットフォームは、サービスのオーナーシップとメタデータをどのように扱いますか?

サービスのオーナーシップを管理できる DevOps プラットフォームを選びましょう。新しいサービスを作成する際に、開発者がサービスのメタデータを入力するようにしてください。自動化によって、メタデータを正確に保てます。デプロイプラットフォームを Internal Developer Platform(IDP)に発展させ、オーナーシップを一元化して DevOps プロセスを効率化することもできます。

ヒント: これらの質問は早い段階で確認しましょう。混乱を避けられ、DevOps ワークフローの強固な基盤を築けます。

プラットフォームの強み

各 DevOps プラットフォームには固有の強みがあります。それらの強みを、プロジェクトの要件に合わせる必要があります。概要は次のとおりです。

プラットフォーム強み
GitHubシンプルなセットアップ、迅速な自動化、リポジトリ中心のワークフローとのシームレスな統合
Azure DevOps成熟した CI/CD サービス、高度なガバナンス、承認ゲート、複雑な複数ステージのデプロイ
Microsoft Fabric統合分析、強力なデータガバナンス、GitHub および Azure DevOps とのシームレスな統合

すぐに導入でき、簡単に統合したい場合は GitHub Actions を使用できます。GitHub は、シンプルなソリューションを求めるチームに適しています。Azure DevOps では、複雑なワークフローに対する高度な制御が得られます。承認ゲートや条件付き実行戦略といった機能を利用できます。Azure Pipelines は、統合が多いデプロイに最適です。Microsoft Fabric は、統合分析とガバナンスを提供します。ワークスペースを GitHub または Azure DevOps に接続して、バージョン管理とデプロイを行えます。

  • GitHub Actions は、シンプルさと迅速な導入に重点を置いています。
  • Azure DevOps は、継続的インテグレーションと継続的デリバリーのための成熟したサービスを提供します。
  • Microsoft Fabric は、データエンジニアリング、データウェアハウス、分析ツールを統合します。

注: ワークフローとガバナンスの要件に合ったプラットフォームを選ぶ必要があります。各プラットフォームは、DevOps のオーナーシップにおいて異なる強みを持っています。


GitHub、Azure DevOps、Microsoft Fabric が、コード、成果物、アクセス、ガバナンスをどのように管理するかを理解すると、デプロイの責任範囲を明確にできます。セキュリティ要件とコンプライアンス要件に合ったプラットフォームを選択してください。エンドポイント管理ポリシーを定義し、チーム間で共同の責任体制を確立して、必須のセキュリティ制御を特定します。リスクに先手を打つため、プラットフォームの機能を頻繁に確認してください。プラットフォームの選択を、公平性、信頼性、説明責任を含む責任ある AI のポリシーに合わせることも大切です。このアプローチにより、データを保護し、強固なガバナンスを維持できます。

これらの選択がデプロイ戦略にどう影響するかをまとめると、関連するポッドキャスト エピソード GitHub vs Azure DevOps for Microsoft Fabric CI/CD もぜひご確認ください。このエピソードでは、こうしたエンタープライズ向けの判断を詳しく解説しています。

よくある質問

DevOps プラットフォームにおけるデプロイの責任範囲とは何ですか?

デプロイの責任範囲とは、コード、成果物、アクセス、ガバナンスを自分で管理できることを意味します。誰がデプロイできるか、変更をどう追跡するか、ルールをどう適用するかを決められます。責任範囲を持つことで、プロジェクトを保護し、コンプライアンスを維持できます。

GitHub、Azure DevOps、Microsoft Fabric はアクセス制御をどのように処理しますか?

各プラットフォームでロールとアクセス許可を設定します。GitHub はチームとコード所有者を使用します。Azure DevOps はセキュリティ グループとロールベースのアクセス制御を使用します。Microsoft Fabric はワークスペースのアクセス許可に Microsoft Entra ID を利用します。

3 つのプラットフォームすべてでデプロイを自動化できますか?

はい、GitHub Actions、Azure Pipelines、Microsoft Fabric のデプロイ パイプラインを使ってデプロイを自動化できます。自動化により更新をより迅速に提供でき、ミスも減らせます。

Microsoft Fabric は GitHub や Azure DevOps とどのように統合されますか?

Fabric ワークスペースを GitHub または Azure DevOps のリポジトリに接続します。この統合により、バージョン管理、自動デプロイ、統合された分析ガバナンスを利用できます。

デプロイを保護するセキュリティ機能にはどのようなものがありますか?

2 要素認証、シークレット管理、自動セキュリティ スキャンを利用します。Azure DevOps では承認ゲートと Defender for Cloud が加わります。Microsoft Fabric では Data Loss Prevention とプライバシー管理ツールを利用できます。

これらのプラットフォームでコンプライアンスをどのように管理しますか?

ブランチ ポリシー、監査ログ、ガバナンス ルールを設定します。Azure DevOps と Microsoft Fabric は GDPR や ISO などのコンプライアンス フレームワークに対応しています。GitHub Enterprise には、組織向けの高度なコンプライアンス ツールがあります。

Microsoft Fabric でデプロイされた分析資産の所有者は誰ですか?

新しいアイテムをデプロイすると、そのデプロイした人が所有者になります。既存のアイテムがあるステージにデプロイした場合、所有者は変わりません。ワークスペースのロールとアクセス許可を使ってアクセスを管理できます。

Azure DevOps と GitHub の主な違いは何ですか?

Azure DevOps (ADO) は、Azure Boards、Pipelines、Repos、Test Plans、成果物管理を提供する開発者向けツール スイートで、エンタープライズのプロジェクト管理と CI/CD に重点を置いています。一方、GitHub は Git を基盤とするプラットフォームで、Git リポジトリ、プル要求、開発者コミュニティを中心に、GitHub Repos、GitHub Enterprise Cloud、GitHub Actions などの機能を備えています。作業項目の追跡が統合されている点や Visual Studio Team Services (TFS) の経緯から Azure DevOps が選ばれることが多い一方、GitHub は大規模なオープンソース エコシステムと最新のコラボレーション機能を提供します。

バージョン管理には Azure Repos と GitHub Repos のどちらを使うべきですか?

どちらも Git リポジトリとバージョン管理に対応しています。Azure Repos は Azure Boards および Azure Pipelines と密接に統合されているため、Microsoft Azure DevOps のワークフローを使うチームに適しています。GitHub Repos (GitHub 上でホスト) は、公開リポジトリと非公開リポジトリ、オープンソース プロジェクトの管理、コミュニティへの貢献、プル要求ワークフローなどに優れています。統合された Azure Boards を重視するか、より広い GitHub のプラットフォームとコミュニティを重視するかで選んでください。

Azure Repos から GitHub にリポジトリを移行できますか?

はい、Azure Repos から GitHub にリポジトリを移行することは可能です。多くのチームは、ADO リポジトリの git リポジトリをエクスポートして GitHub リポジトリにインポートするか、移行ツールを使用しています。移行では、コミット履歴の保持、GitHub Enterprise Cloud 向けのエンタープライズ管理ユーザーの管理、そして必要に応じて Azure Pipelines から GitHub Actions への CI/CD 連携の更新が伴うことが一般的です。

アジャイルプロジェクト管理の観点では、Azure Boards と GitHub Issues はどのように比較されますか。

Azure Boards は、作業項目、バックログ、スプリントを備えた高機能なアジャイルプロジェクト管理を提供し、パイプラインや Test Plans との深い統合により、エンタープライズ向けの強力なプロジェクト管理ツールとなります。一方、GitHub Issues(およびプロジェクトボード)はよりシンプルで、オープンソースや開発者コミュニティのワークフローに適しています。GitHub もプロジェクト計画機能を拡充していますが、両方の長所を活かすために、GitHub リポジトリを Azure Boards に接続するチームもあります。

Azure DevOps を利用しているユーザーも GitHub Copilot を使えますか。

GitHub Copilot は主に Visual Studio Code や Visual Studio などの開発ツールと統合されているため、Azure DevOps を利用している開発者も、IDE で Copilot を引き続き使用できます。GitHub Copilot とその後のコパイロットワークスペース機能により、バックエンドの CI/CD に関係なく開発者が利用しやすくなっています。ただし、一部のエンタープライズ向けの管理機能やライセンスは、GitHub Enterprise Cloud を使用するか、Azure DevOps で管理された環境を使用するかによって異なります。

エンタープライズ管理ユーザーとセキュリティの観点では、GitHub と Azure DevOps のどちらのプラットフォームが優れていますか。

両プラットフォームとも、エンタープライズ向けの機能を提供しています。Microsoft Azure DevOps は、きめ細かなアクセス制御、Azure AD との統合、高度なコンプライアンス機能を備えています。一方、GitHub Enterprise Cloud には、エンタープライズ管理ユーザーと、Azure 向けの GitHub Advanced Security が含まれており、コードスキャン、シークレットスキャン、依存関係の管理を利用できます。どちらを選ぶかは組織のニーズによって異なります。Azure DevOps は既存の Microsoft ツールとより良く統合できる可能性があり、GitHub はオープンソースやコミュニティ機能に加え、高度なセキュリティオプションを強化しています。

CI/CD パイプラインは、Azure Pipelines と GitHub Actions でどのように比較されますか。

Azure Pipelines(Azure Boards and Pipelines の一部)は、Azure DevOps および Visual Studio との強力な統合により、堅牢なマルチプラットフォーム CI/CD を提供します。GitHub Actions は GitHub プラットフォームと密接に統合されており、リポジトリのイベントをトリガーとする柔軟なワークフローと、シームレスなプルリクエストの自動化を提供します。どちらもコンテナ、クラウドへのデプロイ、セルフホステッドランナーをサポートしています。ワークフローに合った DevOps ツールを選ぶか、両者を連携させて双方の長所を活かしてください。

両方のプラットフォームで Visual Studio と VS Code を使用できますか。

はい、Visual Studio と Visual Studio Code(VS Code)の両方が GitHub と Azure DevOps をサポートしています。Visual Studio には Azure Repos と ADO 向けの組み込み統合機能があります。一方、VS Code は GitHub リポジトリ、GitHub Copilot、一般的な git リポジトリと相性が良好です。開発者は、これらのツールを使ってプラットフォームを問わずコードの編集、テストの実行、プルリクエストや作業項目の操作を行えます。

テストについては、GitHub にも Azure Test Plans に相当する機能はありますか。

Azure Test Plans は、Azure DevOps に統合されたテストソリューションであり、手動テストや探索的テストのためのツールを提供します。GitHub には同一の組み込みテスト計画製品はありません。ただし、テストフレームワーク、Actions、サードパーティ製のテスト管理ツールを GitHub リポジトリと連携させることで、同様のテスト自動化とレポート機能を実現できます。

料金と運用形態はどのように異なりますか。GitHub でホストする場合と Microsoft Azure DevOps でホストする場合を比較してください。

GitHub は、ホステッドサービス(GitHub.com、GitHub Enterprise Cloud)を提供しており、チームやエンタープライズ向けに段階的なプランが用意されています。パブリックリポジトリとプライベートリポジトリ、およびコミュニティへのアクセスを重視しています。Microsoft Azure DevOps Services も、ユーザー単位の料金体系によるクラウドホスティングを提供しています。また、オンプレミス版(旧 TFS/Visual Studio Team Services)も用意されています。コストを検討する際は、パイプラインの実行時間、成果物のストレージ、エンタープライズ管理ユーザー、オンプレミスホスティングの必要性を考慮する必要があります。

チームは GitHub と Azure DevOps を併用できますか。

はい、多くの組織では、コードホスティングとコミュニティでの協業には GitHub を、プロジェクト管理、パイプライン、テストプランには Azure DevOps を組み合わせて利用しています。このアプローチでは、リポジトリとコミュニティに関する GitHub の強みと、Azure Boards などの Azure DevOps の機能を両立できます。また、コネクタや統合機能を使えば、Azure Repos から GitHub へのリポジトリ同期や、GitHub のリポジトリイベントと ADO ボードの連携も容易になります。

開発者コミュニティでは、GitHub と Azure DevOps のどちらが好まれていますか?

オープンソースの貢献者や個人開発者の多くは、コミュニティを育てやすく、パブリックリポジトリとプライベートリポジトリの両方を扱え、レビューのワークフローが統合されている点から GitHub を好みます。一方、エンタープライズの開発者や、包括的なプロジェクト管理が必要なチームは Azure DevOps を選ぶことが多いです。どちらを好むかは、Visual Studio や Microsoft Azure への既存の投資状況や、GitHub Copilot、Azure 向けの GitHub Advanced Security といった機能を重視するかどうかにalso 左右されます。

GitHub と Azure DevOps のどちらを選ぶかを決める際に、チームはどのような点を検討すべきでしょうか?

次の点を検討してください。バージョン管理の要件、Visual Studio や VS Code との統合、アジャイルなプロジェクト管理の必要性(Azure Boards)、セキュリティとコンプライアンスの要件、Azure Test Plans の必要性、コミュニティやオープンソースでの可視性、そして GitHub Copilot や高度なセキュリティスキャンといった機能を使いたいかどうかです。自社のワークフローに合うツールを評価するか、Azure Repos のリポジトリを活用する、あるいは GitHub のリポジトリで Azure Boards とパイプラインを使うといったハイブリッドモデルを採用してください。

Entities in this article

GitHub DevOps Azure DevOps Governance Microsoft Fabric GitHub Actions Continuous integration Automation Secrets management Compliance

Related articles

RSS