DevOps の振り子: アジリティ vs. コントロール
投稿者: Cindy Blake、2023 年 8 月 2 日
GitOps などのツールやプラクティスがすべて進歩しているにもかかわらず、クラウド資産への変更の管理は、今日の多くのエンジニアリング リーダーが感じている普遍的な苦痛です。 なぜなら、現実には、常にすべてを完全に封鎖することはまったく不可能であるためです。私たちは事件がゼロのユートピアに住んでいるわけではありません。 エンジニアリング組織が、厳格な GitOps プラクティスや CI/CD による変更管理プロセスに準拠せずに、クラウド コンソールやコードとしてのインフラストラクチャ (IaC) を介して変更を加えることを妨げている場合、開発者は非常に不満を抱いている可能性があります。リアルタイムでのトラブルシューティングやデバッグができず、現実世界のインシデントをほとんど制御できない人たちです。
エンジニアリングは、人生における他のすべてのことと同様、バランスがすべてです。
パンデミックは、分散型で高速なエンジニアリングと運用を管理するためのまったく新しい考え方と実践を生み出しました。 リモートでの働き方を想定して構築されていない企業は、一夜にして、まったく慣れていないグローバルで分散された非同期の方法で業務を継続しなければならなくなりました。 これには、ソフトウェア配信についての新しい考え方が必要となり、その配信をサポートする DevOps 実践が加速されました。 セルフサービス インフラストラクチャにより、開発者の障壁が取り除かれ、継続的なパフォーマンスと速度が確保されました。
同時に、クラウドは、誰もがオーダーメイドのインフラストラクチャを作成する荒野のようなものであってはなりません。 管理が不可能になり、構成を誤ると危険が伴う可能性があります。 ガードレールとポリシーの自動化が話題になっています。 今日、テクノロジー市場が低迷し、クラウドコストが高騰しているため、開発者をイライラさせるリスクを冒してでも、物事を再びロックダウンしようとする傾向が強まっているようです。
ここで疑問が生じます。コンプライアンス、リスク、コストに関するポリシーとベスト プラクティスに従いながら、開発者にとって負担のないインフラストラクチャを実現するにはどうすればよいでしょうか? バランスを見つける方法があります。
セキュリティの多くの側面と同様、制約や障壁が高すぎると、ユーザーは最終的にそれらを回避する方法を見つけることがわかりました。 これは運用にも当てはまります。 開発者が迅速に行動できるように、よりバランスのとれた方法を設計するよりも、すべてをロックダウンするほうが簡単に思えることもありますが、最終的にはこのアプローチが裏目に出ます。 これは、アプリケーションおよびクラウドネイティブ セキュリティ業界が現在経験しているのとまったく同じ進化です。 適用されているすべてのガードレールと制御は、開発プロセスに多大な摩擦を引き起こしており、開発者は最終的にそれらを回避しています。
CloudOps は、セキュリティ業界が今日経験している混乱から多くを学ぶことができます。 ポイントインタイム セキュリティが完全に役に立たなくなったのと同様に、インフラストラクチャのドリフトに対する非リアルタイムのアラートや最終的なアラートは、一時的なクラウドを管理する場合には役に立ちません。 本当に必要なのは、監視と可観測性を通じてシステムに適用するものと同様の、クラウド資産と IaC のリアルタイムかつ継続的なスキャンです。 これらのソリューションは、クラウド サービスの継続的な運用と可用性を確保するために、当社のビジネスに不可欠なバックボーンとなりました。
IaC とそれがもたらすメリットを採用すると、Everything-as-Code により機敏性と可視性が向上し、すべてをロックダウンすることなく自動的に修復できるようになります。 DevOps が言うように、「フェイルフォワードとフェイルファスト」です。 決して間違いを犯さないことに焦点を当てるのではなく、それをすぐに修正する方法に焦点を当ててください。
IaC や GitOps を通じて実際のクラウド資産と望ましい状態を継続的に比較することで、他の種類の侵害や重大なシステム障害と同様に、構成のドリフトやポリシー違反を即座に明らかにすることができます。 失敗や事件は避けられません。 停止中の午前 2 時にクラウド コンソールで何かを変更できないような固有の基本設計を備えたシステムを構築することは非現実的であり、危険ですらあります。