見出し画像

ITプラットフォームにとってのシフト・レフト

DevOpsやDevSecOpsといった言葉とともにシフト・レフトの必要性を目にする機会が増えてきました。しかしITインフラを担当するプラットフォームチームにとって、シフト・レフトがどのような意味を持つのかは必ずしも明確ではありません。
シフト・レフトにより開発者に管理・運用機能を提供することで、プラットフォームチームが向き合う次の大きな変化を理解しましょう。

シフトレフト

DevOpsにまつわる多くの原則と同様に、シフト・レフトもかつては特定の意味を持っていましたが、時が経つにつれて一般化してきました。
シフトレフトは一般的にアプリケーションテストを自動化し、アプリケーションライフサイクルの初期段階に統合することで、問題を早期に発見して修復することにより迅速かつコスト低減を実現します。

最近ではアプリケーションのライフサイクルの早い段階で統合したり、運用機能を開発者やエンドユーザに近づけるために、管理や運用のプロセスもシフトレフトの対象となり、同じメリットが享受されています。

・統合に関する潜在的な問題を早期に発見し、より効率的に対処
・人手による遅延、エラー、設定ミスの可能性の排除
・セキュリティやコンプライアンスを含む、アプリケーションの
 ライフサイクル全体における可視性と説明責任の向上

画像1

アプリケーション・ライフサイクルは一般的に円として描かれます。
DevOpsはループとして描かれますが、それでもフェーズは特定の順序で流れます。フェーズが左から右へと流れていく個々のサイクルをイメージすれば、「シフト・レフト」の原則が明確になります。

つまり「統合テストやセキュリティ・運用プロセスを開発サイクルのできるだけ早い段階で組み込むことで、問題の発見が遅くなり、解決が困難でコストがかかることを避ける」ということです。

画像2

シフト・レフトとは責任転嫁なのか?

DevOpsで取り上げられる人物像は「(ITサービスやリソースの)提供者」と「利用者」という2つの視点だと考えられます。
つまり、この「提供者」「利用者」というのは実は役割ではなく、関係するチーム内の個々人が担う責任であり、明確に分離・独立して存在しているのものではなく一つの線としてつながっていることがわかります。
DevOpsで取り上げられる人物像とは、その1つの線の中でここに異なる優先順位もっているというだけでしかありません。
「提供者」「利用者」という人物像は、従来型の開発や運用で用いられた「提供者」「利用者」という役割に近く想像するほど、DevOpsで取り上げる人物像としての「提供者」「利用者」はかけ離れた人物像となります。

ここにこそ問題があります。
従来の開発担当者に対して、新たにセキュリティや耐障害性や可用性といった重要な業務の責任を負わせるべきでしょうか?このような重要な業務を、これまで長く優先事項として、優先的な関心事項として認識してこなかった開発担当者に、今からあえて責任として負わせるべきでしょうか。

私たちは「そんな必要はない」と考えます。管理や運用のプロセスを「シフト・レフト」するとき、プラットフォームとセキュリティのチームが握ってきた鍵を「せいぜい頑張れ!」と投げつけて終わるべきではありません。

画像3

シフトレフトにおける管理とは
・運用機能への管理されたアクセスを提供
・開発者に権限を与える
・運用上の考慮事項をアプリケーション開発にとっても重要事項として扱う
ということです。
プラットフォームチームは、サービスの自動提供にガバナンスとポリシーを組み込むことでコンプライアンスを確保します。
アプリケーション開発者は、サイクルの早い段階で、アプリケーションの状況に応じた運用上の影響を把握でします。

アプリケーション開発者にとってのシフト・レフトの意味

アプリケーション開発者にとっては、アプリケーションのライフサイクルを通じて、業務プロセスを利用することができることを意味します。
例えば、開発者は自身が開発するアプリケーションにセキュリティを自然な形で統合できるため、アプリケーション開発者全員が苦労を伴うことなく自然にセキュリティに責任を負うことができるようになります。同様にインフラは必要に応じてプロビジョニングされ、人手による確認やチェック、承認、捺印などによる設定の遅れはありません。

もちろんアプリケーション開発者はすでにこの方法でパブリッククラウドのリソースにアクセスしています。
しかしガバナンスをともなわず、ポリシーやコンプライアンスに適合している確証のないままパブリック・クラウドの利用を続けることにはリスクが伴います。
シフト・レフトはプラットフォームチームにより管理されたポリシーと、適切さを確認されたコンプライアンスに適合したガバナンスにもとづき承認されたパブリック・クラウド、ハイブリッド・クラウド、エッジ・クラウドのエンドポイントに展開するためのテンプレートを提供されることで、リソースの管理を自然に開発者に近づけます。

シフトレフト管理とは、アプリケーション開発者に自動運転の車を提供するようなものです。アプリケーション開発者は目的地、車内温度、音楽をコントロールし、スマートなモビリティシステムが運転をコントロールします。これらは全て事前にプログラムされた、もしくは機械的に学習されたプロセスに従いますが、ドライバーは行動を制限され、抑圧されているとは考えません。

プラットフォームチームにとってのシフト・レフトの意味

プラットフォームチームにとっては、業務プロセスへのアクセスを許可し、それらの機能をオンデマンドで利用できるサービスとして提供することを意味します。
ガバナンスとポリシーが組み込まれるので、プラットフォーム以外のチームに業務アクセスを拡大する際のリスクや懸念は軽減されます。

自動運転に例えると、プラットフォーム チームは速度、方向、乗客数などのオプションを設定し、自動化は安全な車線変更や降車の方法とタイミングを決定します。

まとめ

一般的にコストやセキュリティ、リソースによるパフォーマンスへの影響は、アプリケーションの稼働準備が整った後、もしくは稼働した後に発見されます。
このような遅い段階で発見しても、コストの高騰やセキュリティ、パフォーマンスへの影響などの問題を効率的に解決することは大きな困難をともないます。

アプリケーション開発者にシフトレフトによる管理機能を持たせることで、ソフトウェア開発ライフサイクルの早い段階で、コスト、セキュリティ、リソースの最適化などの運用上の考慮事項をアプリケーション開発にとっても重要事項として扱うようにすることができます。

アプリケーション開発者の意思決定をサポートするために、関連性の高い情報や、ソフトウェアのライフサイクル全体に組み込むことのできる重要な運用プロセスへのアクセス権を提供することが必要です。

コントロールを維持しながら、選択をサポートしよう。

原文

この記事が気に入ったらサポートをしてみませんか?