チームを作る

組織レベルでは、プラットフォーム エンジニアリングはリアクティブな文化からは離れた進化です。 リアクティブな文化では、単独の開発者がサイロ内にツールを構築します。 その 1 人の開発者が退職すると、そのツールの動作に関する知識も失われ、プロセスとダウンタイムが壊れる可能性があります。

より成熟した文化では、ツールは積極的に構築され、プラットフォーム エンジニアリング チームによって維持されます。 開発者には管理された自律性があり、開発者は新しいプロジェクトをすぐに開始できます。

プラットフォーム エンジニアリング チームを成功させるには、組織は経営幹部の同意と適切なスキルを持つ開発者によるプロアクティブな文化を持っている必要があります。

文化の役割

プラットフォーム エンジニアリングの成熟度を持つ組織には、強力なリーダーシップがあります。 企業内のプラットフォーム エンジニアリングは、継続的な再評価を必要とするバランスを取った行動です。 組織は、現在のリソース使用量を理解し、今後のパスをマップするために、プラットフォーム エンジニアリング チームをサポートする必要があります。

プラットフォーム エンジニアリング導入の初期段階では、製品チームはそれぞれツール、運用、デプロイ プロセスの独自のセットを持っています。 成熟したプラットフォーム エンジニアリング組織では、一元化されたプラットフォーム エンジニアリングは、リーダーシップと開発者の両方で最適な作業方法と見なされます。 成熟した組織は、製品チームの問題が組織の問題であることを認識しています。

..さまざまなパス、クラウドのコスト、インフラストラクチャのコスト、エンジニアリングのコスト、さまざまな側面を追いかけているとき、それは組織の問題であり、20,000 人の開発者や 30,000 人の従業員という組織の全員の問題であることが判明しました。 – エンタープライズ ソフトウェア企業のシニア エンジニアリング リーダー

組織の文化は、プラットフォーム エンジニアリングの絶え間ない検出パスをサポートする必要があります。 経営幹部は、プラットフォーム エンジニアリング チームのイノベーションを支援することに重点を置く必要があります。

組織の目標は、経営幹部が次のように最適化する文化に向けて、より多くのことを行う必要があります。

  • チームがエッジ ケースに効果的に対処し、イノベーションを推進できるようにします。
  • イノベーションと実験を奨励するために、チーム内の自律性と責任を促進します。
  • 進化するビジネス ニーズとユーザーの要求の中で、継続的な関連性と有効性を確保します。

時間の経過と共に、組織は暫定的な段階から、プラットフォーム エンジニアリングによる文化的変化をサポートするレベルの最適化に移行します。 各レベルで、プラットフォーム エンジニアリングのビジョンを受け入れるために必要な文化的変化を促進するリーダーシップの役割が進化します。

[仮] 運用時 拡張性 最適化
データドリブンの意思決定と適応性の文化を推進します。 コラボレーション、継続学習、改善の文化を促進します。 共感と成長の文化を促進する イノベーションを奨励し、変化と進歩を促進するチームを支援する

また、組織の動機は、プラットフォーム エンジニアリングの文化的変化をサポートする各レベルで進化します。

[仮] 運用時 拡張性 最適化
  • 組織全体のソリューションを実装するための命令を認識します。
  • メトリックと測定値を使用して非効率性に関する分析情報を得る優先順位を付けて、システムのボトルネックを効果的に特定します。
  • 組織構造を強化して、変革イニシアチブを有効にし、サポートします。
  • 組織全体で共同作業の考え方を育て、集団的な問題解決を促進します。
  • 継続的な改善を推進するために、堅牢なフィードバック メカニズムの確立に優先順位を付けます。
  • 信頼性の文化を促進します。
  • 製品主導の成長アプローチを推進し、持続可能な成功を実現します。
  • チーム間の共感と成長の考え方の文化を育てます。
  • 意思決定プロセスにおける製品ユーザー調査の重要性を高めます。
  • チームがエッジ ケースに効果的に対処し、イノベーションを推進できるようにします。
  • イノベーションと実験を奨励するために、チーム内の自律性と責任を促進します。
  • 進化するビジネス ニーズとユーザーの要求の中で、継続的な関連性と有効性を確保します。

組織構造

プラットフォーム エンジニアは、開発と運用の間の接着剤です。 特定の組織構造に関しては、チーム トポロジ モデルは、何を行う必要があるかを考えるのに適したアプローチです。 たとえば、開発者が直面するプラットフォームの側面に焦点を当てた個別のスペシャリストを含む、進化したプラットフォーム チームを選択できます。

成功するには、次の内容を特定します。

  • 高レベルの目標の優先順位付けと、より広範な組織全体でのプラットフォームの使用の支持を支援するチーム (通常は経営幹部) のスポンサー。
  • プラットフォームがガイダンスとニーズに確実に対応できるように支援する、運用、セキュリティ、コンプライアンス、アーキテクチャの関係者。
  • すべての構成要素のニーズを理解し、優先順位を付けるのに役立つ、(実際の役職に関係なく) プロダクト マネージャーとして行動するユーザー。

人材不足を克服する: プラットフォーム エンジニアの要件

プラットフォーム エンジニアは、製品の考え方を持ち、運用も理解する必要があります。 開発者として始めたか、運用チームで始めたのかは、スキル セットほど重要ではありません。 社内の開発者プラットフォームを構築するチームは、開発、IT 運用、K8 管理者、サイト信頼性エンジニア (SRE)、コードとしてのインフラストラクチャ (IaC) の専門家など、さまざまな背景を持つさまざまなチーム メンバーを導入することで強みを得ることができます。

また、組織内の既存のアプリケーション チームから適切な開発者を取り込むことで、ツールを開発するためのチームの知識とスキル セットを強化することもできます。 これらの開発者は、投資について考える際にお客様の声を表すのに役立ちます。

プラットフォーム エンジニアを見つけることは難しい場合があります。

本当に優れたインフラストラクチャ エンジニアやプラットフォーム エンジニアを採用することはとても困難です。 今日私たちが採用している人の多くは、顧客が直接直面するアプリケーションにかなりの情熱を持っています。 しかし、テクノロジ業界全体を見渡しても、インフラ エンジニアリングに情熱を注いでいる対象者や候補者はそれほど多くなく、それは常に課題となっています...インフラの場合、この種の専門知識は通常見られません。 - 中規模の販売会社のエンジニアリング担当副社長

プラットフォーム エンジニアは、次のことが可能である必要があります。

  • 効率性、信頼性、セキュリティに重点を置いた社内開発者向け製品の構築とスケーリング
  • プラットフォームエンジニアリング製品のアーキテクチャと設計に貢献する
  • コンテナー オーケストレーション (Kubernetes など)、継続的インテグレーション/継続的デプロイ (GitHub Actions、Azure Pipelines など)、監視およびログ ツール (Prometheus、Grafana、Elasticsearch など) を使用して適切に作業する
  • コードとしてのインフラストラクチャ (IaC) や関連するツール (Terraform、Azure Resource Manager など) を使用してテンプレートを構築する
  • 少なくとも 1 つのスクリプト言語 (Python、PowerShell、Bash など) でコードを記述する

優れたプラットフォーム エンジニアリング チームを構築するには、多様な技術スキルと製品中心のアプローチの組み合わせが必要です。 雇用の課題にもかかわらず、さまざまなバックグラウンドを持つチームを構築することは、効率、信頼性、セキュリティを向上させる、より優れた社内プラットフォームにつながります。 この包括的なアプローチは、組織の即時の技術的ニーズに対応するだけでなく、イノベーションと継続的な改善の文化を促進します。