プラットフォームエンジニアリング入門:Azure における従来のチケット管理システムからの脱却
By Mirko Peters ·
クラウドアーキテクチャ、開発者体験、モダン DevOps の進化する世界を掘り下げる今回のエピソードへ、ようこそお戻りくださいました。ポッドキャストの最新エピソードをお聴きになった方はご存じのとおり、今回は現代のソフトウェアデリバリーにおける最も厄介なボトルネックの一つ、従来の IT チケット管理システムを取り上げました。よくご存じの流れでしょう。開発者が新しいデータベース、ステージング環境、あるいは単純な DNS 更新を必要とします。チケットを起票すると、それはキューで待たされます。トリアージされ、担当者が割り当てられ、再割り当てされ、そしてようやく数日、場合によっては数週間後に手作業で対応されます。インフラが届く頃にはスプリントは終わり、勢いは失われ、全員が疲弊しています。
Automatically translated with AI from the original post. Read the English original
クラウドアーキテクチャ、開発者体験、モダン DevOps の進化する世界を掘り下げる今回のエピソードへ、ようこそお戻りくださいました。ポッドキャストの最新エピソードをお聴きになった方はご存じのとおり、今回は現代のソフトウェアデリバリーにおける最も厄介なボトルネックの一つ、従来の IT チケット管理システムを取り上げました。よくご存じの流れでしょう。開発者が新しいデータベース、ステージング環境、あるいは単純な DNS 更新を必要とします。チケットを起票すると、それはキューで待たされます。トリアージされ、担当者が割り当てられ、再割り当てされ、そしてようやく数日、場合によっては数週間後に手作業で対応されます。インフラが届く頃にはスプリントは終わり、勢いは失われ、全員が疲弊しています。
このコンパニオンブログ記事では、番組で議論した中核的な概念をさらに詳しく掘り下げます。Microsoft Azure を活用する組織が、プラットフォームエンジニアリングという変革的なアプローチを採用し、堅牢な内部開発者プラットフォーム(IDP)を構築することで、この消耗させられる手作業のループからどのように抜け出せるかを解説します。
はじめに:Azure における従来のチケット管理のボトルネック
よくある状況を想像してみてください。組織のワークロードはすでに Microsoft Azure に移行されています。クラウドを取り入れ、Azure Kubernetes Service(AKS)、Azure SQL、Cosmos DB、App Service を利用しています。見た目には最新の環境です。しかし、ワークフローをよく見ると、開発者は昔オンプレミスのサーバールームを扱っていたときと同じように Azure を扱っています。官僚的な手続きとチケットのキューという壁を通してです。
チームがリソースをプロビジョニングしたいとき、自分たちだけで実行することはできません。ガードレールは、歩道ではなく障害物として設けられてきました。チームは中央のプラットフォームチームや運用チームにチケットを提出します。これにより大きな認知負荷が生じ、クラウドコンピューティングが本来もたらすはずだったアジリティは完全に損なわれます。Azure は驚異的なスピードとプログラムによる制御を提供しているのに、開発者はしばしばそこから締め出されています。従来のチケット管理システムは、イノベーションに対する税金のような働きをしています。すべての要求に人の介入が必要であり、人為的ミス、コミュニケーションの齟齬、そして苦痛を伴う遅延を生み出します。インフラを任せられない子どものように開発者を扱うのをやめ、自動化されたガードレールに支えられたセルフサービス機能を備えた、権限を持つクリエイターとして扱い始める必要があります。
プラットフォームエンジニアリングとは何か、なぜ重要なのか?
では、どうすれば解決できるのでしょうか? そこで登場するのがプラットフォームエンジニアリングです。近年、プラットフォームエンジニアリングは DevOps の決定版ともいえる進化形として台頭してきました。DevOps は理論上は開発と運用の間の壁を取り払いましたが、実際には多くの組織が運用の負担のすべてを開発者に押し付けてしまいました。開発者は突然、ビジネスロジックを書きながら、Kubernetes、Terraform、ネットワークセキュリティ、Azure IAM ポリシーの専門家であることも求められるようになったのです。
プラットフォームエンジニアリングは、この状況が持続不可能であることを認識しています。開発者にインフラの専門家になることを強いたり、チケットのキューで待たせたりする代わりに、プラットフォームエンジニアリングは開発者体験をプロダクトとして扱います。専任のプラットフォームチームが内部開発者プラットフォーム(IDP)を構築し、Azure の基盤となる複雑さを抽象化します。
なぜこれが重要なのでしょうか。認知負荷は、エンジニアリングの生産性を静かに蝕む存在だからです。開発者が時間の 40 パーセントをインフラ構成、コンプライアンスチェックリスト、承認待ちとの格闘に費やしているとき、顧客を喜ばせる機能を作ることはできません。プラットフォームエンジニアリングが重要なのは、エンジニアリングチームにフロー状態を取り戻させるからです。事前に承認され、高度に安全で、コンプライアンスに準拠したアーキテクチャであるゴールデンパスを提供し、開発者は一度のクリックor コマンドでそれを立ち上げられます。
手作業の運用を超えて:内部開発者プラットフォームのビジョン
Azure における手作業の運用を真に超えるには、インフラを管理することからプラットフォームを構築することへと考え方を転換しなければなりません。内部開発者プラットフォームは単一のツールではありません。Azure のクラウドインフラの上に位置する、統合されたレイヤーであり、摩擦ゼロでソフトウェアを届けるためのサービスやツールを選別して提供するものです。
場当たり的なスクリプトと無秩序なプロビジョニングの問題点
一部の組織では、チケット対応が遅いことに気づき、開発者に Azure サブスクリプションへの共同作成者アクセス許可を与えて、好きなリソースを自由に作成させています。これは正反対の極端な方法であり、同じくらい深刻な問題を招きます。やがて、管理されていないリソース、急増するクラウドの請求額、重大なセキュリティ上の脆弱性、そして何かを監視したり更新したりするための標準的な方法がない状態になります。まさに「無法地帯」です。
IDP の理想的なバランス
IDP は、ちょうどよいバランスを実現します。セキュリティ、コンプライアンス、コスト管理、アーキテクチャ標準をワークフローに直接組み込みながら、セルフサービス機能を提供します。開発者は求めている自律性を得られ、運用チームやセキュリティチームは必要なガバナンスとコンプライアンスを確保できます。自動化によって実現される、双方にとって望ましいシナリオです。
Azure ベースの開発者プラットフォーム構築における中核となる柱
Microsoft Azure 上で Internal Developer Platform を構築する際は、しっかりしたアーキテクチャの基盤に頼る必要があります。Azure ベースのプラットフォームを成功させる中核となる柱を、順に見ていきましょう。
1. Infrastructure as Code (IaC) とモジュールカタログ
あらゆるクラウドプラットフォームの中心にあるのが Infrastructure as Code です。Azure のエコシステムでは、通常 Terraform、Bicep、または Azure Resource Manager (ARM) テンプレートを指します。ただし、Bicep ファイルを書くだけでは十分ではありません。プラットフォームチームは、モジュール化され、再利用可能で、安全なテンプレートを厳選したカタログを作成する必要があります。たとえば、開発者にデータベース構成をゼロから書かせるのではなく、プラットフォームで企業レベルの暗号化、適切なネットワーク統合、バックアップポリシーがあらかじめ構成された Azure SQL モジュールを提供します。開発者はアプリケーション名とティアを指定するだけです。
2. Azure Policy によるポリシー・アズ・コード
ガバナンスは、人によるチェックボックスの確認に頼ってはいけません。自動化される必要があります。Azure Policy と Azure Blueprints をプラットフォームに組み込むことで、IDP を通じてプロビジョニングされるすべてのリソースが、規制の枠組みと社内の企業標準に自動的に準拠するようになります。開発者が転送中の暗号化を無効にしたストレージアカウントを作成しようとすると、プラットフォームはただちにそれを検知し、Azure に到達する前に拒否します。
3. シームレスな CI/CD と GitOps の統合
IDP は孤立した環境に置かれるべきではありません。バージョン管理およびデプロイパイプラインとネイティブに統合される必要があります。GitHub Actions、Azure DevOps、GitOps 用の ArgoCD のいずれを使用する場合でも、プラットフォームはコードのコミットから Azure へのデプロイまでのパイプラインを、途切れなく統合的に制御すべきです。開発者は、プルリクエストから直接、環境の作成や削除をトリガーできるようにするべきです。
4. 統合された可観測性と監視
測定できないものは管理できません。優れたプラットフォームは、アプリケーションを Azure Monitor、Application Insights、Azure Log Analytics に直接接続することで、すぐに使える可観測性を提供します。開発者がプラットフォームを通じて新しいマイクロサービスを作成すると、ログ、メトリック、トレースが手作業でのインストルメンテーションなしに自動的に構成され、接続されます。
デリバリーのリードタイムを短縮し、開発者の摩擦を減らす
このアーキテクチャを導入することによる具体的な効果について考えてみましょう。2 週間かかっていたチケット処理プロセスを、2 分のセルフサービスポータルに置き換えると、指標は劇的に変わります。
市場投入までの時間とデプロイの頻度
開発のスピードは飛躍的に向上します。以前はステージング環境で手作業のネットワーク構成を待ってとどまっていた機能を、すぐにデプロイできるようになります。チームはプルリクエストごとに一時的な環境を作成し、本番環境と完全に同一の環境でコードをテストし、PR がマージされたら環境を削除できます。このレベルの俊敏性は、手作業のチケット処理の世界では実現不可能です。
開発者の燃え尽き症候群の解消
開発者の満足度は、多くの組織が軽視している重要な指標です。官僚主義と戦い、他のチームの対応を待ち、反復的で付加価値の低い作業に対処し続けると、開発者の燃え尽き症候群や高い離職率に直結します。摩擦を取り除き、退屈な作業を自動化することで、エンジニアが創造的で、生産的で、価値を認められていると感じられる環境が生まれます。幸せな開発者は、より良いコードを書きます。
組織で Platform Engineering を展開するためのベストプラクティス
Azure 上で Internal Developer Platform を構築するのは魅力的に聞こえますが、大きな混乱を招かずに実際にどう実行すればよいのでしょうか。以下は、リスナーやコンサルティングのクライアントに推奨しているベストプラクティスです。
プラットフォームをプロダクトとして扱う
これはプラットフォームエンジニアリングの基本原則です。社内の開発者こそが顧客です。ユーザーリサーチを行い、フィードバックを収集し、ドキュメントを作成して、開発者のニーズに基づいて継続的に改善する必要があります。プラットフォームが使いにくく扱いづらいものであれば、開発者は回避策を見つけてしまい、取り組み全体が失敗に終わります。
最小限の実用プラットフォーム(MVP)から小さく始める
初日から、すべてを網羅するモノリシックなプラットフォームを構築しようとしてはいけません。まずは、大きな課題を解決する単一のユースケースから始めます。たとえば、組み込みのログ記録とデータベースを備えた標準的なマイクロサービスのプロビジョニングを Azure Kubernetes Service で自動化するところから始めるとよいでしょう。それが成功し、採用されたら、プラットフォームの機能を段階的に拡張していきます。
開発者向けドキュメントとポータル体験に力を入れる
どれほど強力なバックエンドの自動化があっても、開発者がその使い方を知らなければ役に立ちません。開発者ポータルへの投資が必要です。Spotify の Backstage のようなツールは、まさにこの目的のために絶大な人気を集めています。Backstage と Azure の統合を組み合わせれば、チームはドキュメントの閲覧、サービスカタログの探索、セルフサービス操作の実行を一つの画面から行えるようになります。
結論: 次世代の開発チームを支える
従来のチケットシステムは、過ぎ去った時代の遺物です。イノベーションを遅らせ、エンジニアの意欲をそぎ、Microsoft Azure のようなクラウドインフラストラクチャが持つ真の力と俊敏性を活かせずにいます。プラットフォームエンジニアリングを採用し、思慮深く、安全で、自動化された内部開発者プラットフォーム(Internal Developer Platform)を構築することで、組織はボトルネックを取り除き、強固なガバナンスを徹底し、開発チームの潜在能力を最大限に引き出すことができます。
忘れないでください。現代のクラウドアーキテクチャの目的は、単にサーバーを他社のデータセンターに移すことではありません。人々がこれまでになく速く、安全に価値を届けられるようにすることです。このブログ記事の拡張版をお読みいただき、ありがとうございます。ポッドキャストの登録をお忘れなく。この記事を、プラットフォームチームやDevOpsチームと共有してください。次回も、クラウド技術の最前線を一緒に探っていきましょう。