DevOpsプラットフォームチームが組織にもたらすメリット
DIY DevOpsの取り組みがインフラサポートの必要性に圧迫されているなら、DevOpsプラットフォームチームという最先端の要素の追加を検討しましょう。
DevOpsプラットフォームの採用は、サイクルタイムを改善するだけでなく、従来の役割、特に運用面での役割を再考する機会を提供してくれます。2022年グローバルDevSecOps調査では、すべてのDevOpsの役割が変化していることが示唆されています。Opsの専門家は、クラウドの管理、ツールチェーンの維持、DevOpsコーチング、自動化、プラットフォームエンジニアリングなどの新しい責任が発生していることを証言しています。一部の組織では、高度なDevOpsの独自の課題に対処するためにDevOpsプラットフォームチームを作成しています。
ここでは、それがDevOps組織に加わる理由とその方法について説明します。
DevOpsプラットフォームで実感するのは、まさにシンプル・イズ・ベストだということ。ここではソフトウェアの開発、保護、リリースに必要なすべてのステップが1か所に集約され、ツールチェーン税からも解放されます。DevOpsプラットフォームは、Kubernetesやマイクロサービス、Infrastructure as Code(IaC)といった高度なテクノロジーを提供できるため、オーナーが必要となります。以前はサイトリライアビリティエンジニア(SRE)がこの役割の一部を担っていたかもしれませんが、現在ではDevOpsプラットフォームチームの作成にDevOpsプラットフォームエンジニアを採用しようとしている組織もあります。
しかし、DevOpsプラットフォームを持つすべての企業がチームを必要とするわけではありません。レガシーシステムのない組織ではインフラストラクチャにこの水準の対応は必要ないかもしれませんが、クラウド環境とオンプレミスデータセンターの両方を持つ組織なら、すべての可動部分をサポートできる追加のヘルプが必要となるかもしれません。
DevOpsプラットフォームチームの基本的な存在意義は、内部顧客である運用担当者(および開発担当者)をインフラを維持するための複雑で厄介な作業から解放することにあります。その目標はもちろん、開発部門と運用部門に可能な限り効率化され、面倒を排除したセルフサービス機能を提供することにあります。DevOpsプラットフォームチームはいわば「猛獣使い」として働き、開発者は面倒な作業に関わることなくデプロイに集中できます。
DevOpsプラットフォームチームはInfrastructure as Codeを最大限に活用するため、手動での介入は必要ありません。開発者は、インフラストラクチャがどのように作成されているかを実際に理解する必要なく、作業を実行するAPIインターフェースの恩恵を受けられます。
DevOpsプラットフォームチームは、ある組織にとってはエンジニアリング効率を最大化する方法として、また別の組織にとっては、ベストプラクティスに集中し、事業目標を見失う原因となりがちな煩雑な作業に終止符を打ち、ビジネスの俊敏性を高めることを可能にする方法として活用されています。
プラットフォームエンジニアリングチームはDevOpsチームの延長であり、その代替ではありません。プラットフォームチームを作ろうとし、誤って二次的なDevOpsチームを作ってしまうリスクを警告する声も時に聞かれます。
また、プラットフォームエンジニアには、コミュニケーションやコラボレーションなどのソフトスキルはもちろん、セキュリティからLinux、Kubernetesに至るまで、幅広いスキルが必要です。プラットフォームエンジニアは、製品開発ではなくインフラストラクチャに焦点を当てる必要があります。
プラットフォームエンジニアリングチームはDevOpsプラットフォームやその他のソフトウェア開発ツール、クラウドインフラストラクチャなどのコアシステムの構築、保守、最適化に焦点を当てた中央チームであり、他のチームが高品質のソフトウェアを安全かつ定期的に組織の外部顧客に出荷できるようにします。プラットフォームチームの顧客は内部顧客であり、多くの場合、開発チーム、運用チーム、製品管理チーム、製品チームが含まれます。
以下は業務内容の一例です。
- 古いシステムやレガシーツールを近代化したり置き換えたりするための新しいソリューションを見つけ、他のチームが移行するのを支援する
- さまざまなクラウドサービスプロバイダーをよりうまく連携させる
- 継続的インテグレーションや継続的なデリバリー(CI/CD)、自動テストのような慣行をより全面的に採用するためのプラットフォームの構築
- プラットフォームの安定性、効率性、パフォーマンスを継続的に改善する方法への取り組み