<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>CI/CD | The .NET Blog</title><link>https://thedotnetblog.com/ja/tags/ci/cd/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>ja</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Wed, 15 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/ja/tags/ci/cd/index.xml" rel="self" type="application/rss+xml"/><item><title>Stop Treating Databases as Special Snowflakes: Azure DevOps + SQL Projects Done Right</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-devops-sql-projects-ci-cd-fundamentals/</link><pubDate>Wed, 15 Jul 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-devops-sql-projects-ci-cd-fundamentals/</guid><description>Azure DevOps の SQL プロジェクトパイプラインモデルは、チームがコードファーストの CI/CD 規律を採用すれば、データベースデリバリーが反復可能で、セキュアで、テスト可能であることを証明している。</description><content:encoded>&lt;p&gt;多くのチームは DevOps を主張しながら、データベースの変更は誰かのラップトップから手動でデプロイしている。その矛盾こそ、この Azure SQL ガイダンスが修正するものである。SQL プロジェクトと Azure DevOps パイプラインは、実際の本番ワークフローに十分な決定論的、監査可能、セキュアなデータベースデリバリーを実現する。&lt;/p&gt;
&lt;p&gt;オリジナルソース: &lt;a href="https://devblogs.microsoft.com/azure-sql/fundamentals-of-azure-devops-with-sql-projects/"&gt;https://devblogs.microsoft.com/azure-sql/fundamentals-of-azure-devops-with-sql-projects/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;このアプローチの最も強力な部分は YAML 構文ではなく、&lt;strong&gt;規律の順序&lt;/strong&gt;である: 最初にビルド、次に公開、そして最小特権とパスワードレス ID でデプロイパスをセキュアにする。&lt;code&gt;dotnet build&lt;/code&gt; で &lt;code&gt;.sqlproj&lt;/code&gt; をビルドすることで、ターゲットプラットフォームとの互換性を早期に検証し、環境間でプロモート可能な DACPAC アーティファクトを生成する。&lt;/p&gt;
&lt;p&gt;私の見解は明確である:&lt;strong&gt;スキーマが CI でビルドされていないなら、データベース品質プロセスはほとんど希望にすぎない&lt;/strong&gt;。SSMS や VS Code でのローカル成功はリリースの保証ではない。&lt;/p&gt;
&lt;p&gt;デプロイ設計もまた、新鮮なほど&lt;strong&gt;実用的&lt;/strong&gt;である。Entra ID に紐づいたサービス接続を使用し、スキーマとデータ比較のためにスコープ付きデータベースロールを付与し、ランナー IP の一時的なファイアウォール開放を確実なクリーンアップ付きで自動化する。これは、侵害レビューがすべてを再考することを強制するまでチームがスキップする種類の運用衛生である。&lt;/p&gt;
&lt;h3 id="すぐに適用すべき実践的推奨"&gt;すぐに適用すべき実践的推奨&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ビルドとデプロイのパイプラインを分割する。&lt;/strong&gt; ビルドはブランチ変更時に実行し、迅速に失敗するべきである。デプロイは環境固有でポリシーゲート付きにするべきである。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ターゲット接続文字列とインフラメタデータをセキュアなパイプライン変数に格納し&lt;/strong&gt;、ロール割り当てのガバナンスレビューを定期的に実施する。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SqlPackage のバージョンを CI で明示的に固定し&lt;/strong&gt;、予期しない動作変更を避ける。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;早期に過剰な特権を付与しないこと。&lt;/strong&gt; &lt;code&gt;db_ddladmin&lt;/code&gt;、&lt;code&gt;db_datareader&lt;/code&gt;、&lt;code&gt;db_datawriter&lt;/code&gt; から始めることは、「とりあえず動かすため」にすべてのパイプライン主体に &lt;code&gt;db_owner&lt;/code&gt; を渡すよりも優れたベースラインである。具体的なデプロイ要件が必要であることを証明した場合にのみ権限を昇格させる。&lt;/p&gt;
&lt;p&gt;もうひとつの重要なポイントは&lt;strong&gt;ポータビリティ&lt;/strong&gt;である。SQL プロジェクトは .NET SDK ツールチェーン上で動作するため、このパターンは Azure DevOps 限定ではない。同じ基礎は GitHub Actions や他のオーケストレーターにも適用可能であり、このガイダンスは戦略的であって、プラットフォームにロックされていない。&lt;/p&gt;
&lt;h2 id="結論"&gt;結論&lt;/h2&gt;
&lt;p&gt;組織が依然としてスキーマデリバリーをアプリ CI/CD の外部にある特別なプロセスとして扱っているなら、これが移行のブループリントである。英雄的なプラットフォームエンジニアリングは必要ない。必要なのは&lt;strong&gt;一貫性、アイデンティティファーストのセキュリティ&lt;/strong&gt;、そしてアドホックな特権パスを通じてデータベース変更を出荷するのをやめる意志である。&lt;/p&gt;
&lt;p&gt;これを実行するチームはより速く出荷でき、ロールバックも少なくなる。遅らせるチームは、手動のデータプレーンデプロイという隠れた税金を払い続けることになる。&lt;/p&gt;</content:encoded></item></channel></rss>