クラウドでアプリのパフォーマンスを最適化
99% の場合、「手動」という言葉は無気力と予測不可能性の両方と同義である可能性があります。速度と信頼性を追求する場合、自動化から始めるのが良いことにほとんどの人が同意するでしょう。 アプリをスケールアウトするために追加のクラウド リソースを起動する場合でも、重要なアプリ サービスを展開して構成する場合でも、API 呼び出しを実行したり、コンソールで 1、2 回クリックしたりするのと同じくらい簡単に実行できる必要があります。 ここでの成功の鍵は、インフラストラクチャ・アズ・コード (IaC) を活用することです。 インフラストラクチャ/NetOps/SecOps の担当者と協力して、展開内容と展開方法を詳細に記述した検証済みの定義ファイルを作成することで、インフラストラクチャとサービスを高速かつ繰り返し可能で信頼性の高い方法でプロビジョニングできるようになります。
このテンプレート化されたアプローチをセルフサービス展開に活用することで、最終的には他のチームへの依存度が下がり、手動のインフラストラクチャ プロビジョニングに対するチケットベースのリクエストによって発生する展開のボトルネックを防ぐことができます。
Infrastructure-as-Code は、デプロイメントを高速化しようとする場合に正しい方向への一歩となりますが、完全な CI/CD パイプラインの価値を活用することで、さらに多くのメリットが得られます。 新しいアプリケーション コードをより頻繁に統合し、それらの更新を自動的に本番環境にプッシュする機能に加えて、アプリ サービスの挿入をパイプラインに統合することもできることをご存知でしたか? これらのサービスをコード (IaC) として定義し、定期的に監視、更新、検証できるソース管理ツール内に保存することで、CI/CD ツール (Ansible や GitLab など) は API 呼び出しを介してこれらのサービスを自動的にデプロイメントに取り込むことができます。 そうすることで、展開を遅らせることなく、すべてのアプリが適切なセキュリティとコンプライアンスの制御を備えてリリースされることが保証されます。
アプリケーション全体に必要なコード、ライブラリ、バイナリを、プラットフォーム間で迅速かつ一貫して展開できる軽量パッケージにバンドルする機能は、最近のコンテナ採用の急増の基盤となっています。 これらの特性は、クラウドでの速度を最適化する際に有利であり、アプリを即座に起動およびスケールアウトし、CI/CD プロセスを加速し、高度に動的で管理しやすいマイクロサービス アーキテクチャを構築する機能を提供します。
こうした誇大宣伝はさておき、速度の追求に夢中になりすぎて、アプリケーション ポートフォリオの他の部分と同じ (またはそれ以上の) レベルのセキュリティとアプリ パフォーマンスの最適化を必要とするアプリがまだあることを忘れてしまうのは、非常に簡単なことです。 残念ながら、既存のアプリ サービスをコンテナの固有のニーズに合わせて改造しようとしても、成功する可能性は限られます。 代わりに、コンテナを真にサポートし、望ましくない停止やセキュリティ/コンプライアンスの問題を回避するには、コンテナ オーケストレーション システムと統合する、より動的なサービス セットを特定する必要があります。
4. 知識の可視性は力なり
アプリをすぐに起動して実行することは重要です。 それらをそこに維持し、ユーザーが利用できるようにすることは、まったく別の課題です。 アプリケーションの運用開始後は、ネットワークの中断、プラットフォームの問題、サイバー攻撃、コードのバグなど、アプリケーションの健全性に対する脅威が無数に存在します。 このため、単一のアプリケーション停止のトラブルシューティング作業は、干し草の山から針を探すような作業のように感じられることがよくありますが、異なるクラウド環境間で複数のアプリケーション障害が同時に発生した場合の規模を考えてみてください。 どこから始めますか?
このシナリオでは、可視性は知識の前段階であり、アプリの問題の解決策を探すときに非常に貴重になります。 アプリケーション スタックの各レイヤーの可視性が高まるほど、運用上の異常や根本原因を特定する能力が高まります。 そのためには、マルチクラウド アーキテクチャ全体でアプリの問題をより迅速に解決するために、クラウドとアプリの両方に依存しない集中型の可視性ソリューションを実装することが重要です。
最後に、クラウドの俊敏性は、適切なツールとテクノロジーを持つことだけがすべてではありません (もちろん、それらは間違いなく役立ちます)。 それは人とプロセスに関することでもあります。 「ネットワークの速度は、最も遅い回線の速度と同じになる」という格言には、ある程度の真実が含まれています。 この引用は、クラウド内でアプリを構築、展開、管理する責任のあるチームに当てはめた場合にも当てはまります。 これは通常、DevOps、SecOps、NetOps、および少なくともアーキテクトにまたがるチームの取り組みであり、個人または共同作業の非効率性がチーム全体に影響を及ぼす可能性が高くなります。
2020 年のアプリケーション サービスの現状を入手: DevOps エディション
サイロを解体し、チーム間で定期的かつ堅牢なエンゲージメント モデルを実施することで、計画、トラブルシューティング、情報共有を加速し、全員が同じペースで進むための優れた基盤が提供されます。 部門横断的な専門知識をより有効に活用して自分の生活を楽にできるだけでなく、他の職種における自動化やプロセス最適化などを推進することで、全員のスピードアップに貢献できるようになります。