Manuel Pais氏はQCon London [スライド] で、Kubernetesをうまく採用するために認知的負荷を軽減するためにチームの相互作用がどのように不可欠であるかについて話した。Pais氏は、開発チームが使用できるように、Kubernetesの上にデジタルプラットフォームを構築することに専念するチームを持つことを勧める。その他の重要なポイントには、組織がチームの認知的負荷を評価し、デジタルプラットフォームを定義し、明確なチームの相互作用を設定することから始めることができることが含まれていた。
Kubernetesは、開発チームが複雑な分散システムで作業するのを支援し、サービスを実行およびデプロイするための抽象化を提供する。ただし、キャパシティプランニング、アップグレード、パッチ、セキュリティプラクティスなど、組織が考慮する必要のある非機能要件がある。さらに、Kubernetesの学習曲線は高く、開発チームはこのテクノロジーの採用に苦労することがよくある。したがって、Pais氏は、知識とサポートに関する開発チームの認知的負荷を軽減するために、デジタルプラットフォームの構築に専念する内部チームを持つことを勧める。たとえば、AirbnbやUswitchのような企業は、セルフサービス機能を備えた開発者が認知的負荷を軽減できるようにする。
組織がKubernetesの採用のためにチームに焦点を当てたアプローチから始めたい場合、Pais氏は3つの推奨事項を示した。まず、定期的に使用するKubernetesの抽象化をチームがどの程度理解しているかを調べて、チームの認知的負荷を評価する。次に、プラットフォームチームがオンコールサポート、通信メカニズム、および推奨されるプラクティスをどのように提供するかを文書化することにより、プラットフォームの責任を定義する。そして第3に、チームの相互作用を明確にして、誰が何に責任を持ち、誰が影響を受け、セルフサービス機能を備えた新しい内部デジタルプラットフォームでコラボレーションがどのように行われるかを定義する。
InfoQは、書籍 Team Topologiesの共著者であるManuel Pais氏にインタビューし、組織でKubernetesを採用するための彼の推奨事項について詳しく学んだ。
InfoQ: Kubernetesは複雑な分散システムであり、学習曲線は高くなります。組織を変えるための基盤となることで、Kubernetesが特別な理由は何だと思いますか?
Manuel Pais氏: プラットフォームに焦点を当てます。テクノロジーにあまり焦点を当てないでください。この講演を見ることができます、そして、KubernetesをOpenShiftなどに置き換えることができます。Kubernetesについて話したのは、多くの組織が「なぜ」または「どのように」開発チームの営みに役立つのかを理解せずに着手していることがわかったからです。
重要な点は、プラットフォームと開発チームとのインターフェースに焦点を当てることです。その下にあるのはKubernetesかもしれません。それはかなりしっかりしていて、多くの機能を備えているからですが、それ以外のものかもしれません。大きな銀行で働いている友人と話していました。そして彼らにとって、少なくとも今はKubernetesを使用することは実際には意味がありません、プラットフォームチームがあったとしても、すべての学習が必要になるからです。今あるものは、彼らのために機能しています。この急進的なKubernetesへの移行を実際に行わなくても、対処できるギャップがあるかもしれません。
InfoQ: Kubernetesは複雑であるため、使用しないことを提唱している人もいます。しかし、それは他のテクノロジーでも起こり得ることです。代わりに、重要なのは認知的負荷の軽減に焦点を当てることであるべきだと思われますか?
Pais氏: 講演の中で、これらのプラットフォームは、組織にとって意味のあるものでなければならないという意味で、状況に応じたものであると述べました。「まあ、Kubernetesはみんなが使っているのでいい」という額面としてとらえることはできません。
しかし、あなたの組織にとって意味のあるプラットフォームは何でしょうか?「OK、Kubernetesは、それを使用するのに十分な知識と成熟度があるため、正しい選択です。そして、それは私のモデルに適合します」、これはUswitchの場合でした。彼らにはかなり高度なエンジニアリングチームがいたので、Kubernetesが複雑であることを知っていましたが、それは彼らにとって問題ではありませんでした。また、前述の大銀行の場合、すべてをKubernetesに移動することは根本的な変更であり、そのコンテキストでは価値がないため、問題ありません。
開発チームに焦点を合わせて、プラットフォームでの認知的負荷を軽減します。テクノロジーはささいなことではありませんが、それは第二の考え方になります。ほとんどのチームがサービスを提供および実行できるようにする必要がある問題を最初に確認すると役立ちます。
InfoQ: Kubernetesや新しいテクノロジーを採用したいときに、企業が旅を始めることをどのようにして勧められますか?
Pais氏: エンドカスタマ製品の採用を検討し始めます。あなたのサービスや製品が収益の観点からあなたにもたらすものをどのように測定しますか? 採用をどのように測定しますか? なぜなら、顧客ベースからの採用が見られない場合は、単に機能を開発しているだけではないからです。つまり、プラットフォームについても同じです。これを簡単に採用でき、チームが関与できるものにするにはどうすればよいでしょうか? 私はプラットフォームを製品として話しました。それが出発点になるはずです。
次に、テクノロジーの複雑さの観点から、他のすべての人が行っていることに基づいて早期の決定を下さないでください。今必要なものに基づいて決定を下します。これは、内部ユーザによる採用に重点を置くことと一緒になります。小さなステップが必要です。プラットフォームの関与と採用を見てください。プラットフォーム内のサービスが異なれば、採用パターンも異なる場合があります。それを自分の利点のために使うことができ、サービスを利用することが一部のチームにとっては楽だったのに、他のチームにとってはそう簡単ではなかった理由を理解することができます。テクノロジーによって複雑になっているために、新しいサービスは実際には採用されなかったのかもしれません。もっと簡単なものが必要です。プラットフォームの採用に焦点を当てます。