ブログ

デジタル変革に関する驚くべき真実: 規模の不経済

ロリ・マクヴィッティ サムネイル
ロリ・マクヴィッティ
2018年6月19日公開

これは、デジタル変革から生じる課題に関するシリーズの 4 番目のブログです。

 

規模の不経済。

ビジネスを成長させていくと、特に時間が経つにつれて、対処が必要な問題が山積みになる傾向があります。 サポートする必要があるアプリケーションの数が減ることはほとんどありません。 通常、数年のうちに増加し、時には指数関数的に増加することもあります。 平時においては、申請数は 4 年ごとに倍増する傾向があります。 新しいテクノロジーが押し寄せると、その数は増加します。

各アプリには、運用面でのさらなるサポート(初心者向けに言えば、ネットワーク、コンピューティング、ストレージ、セキュリティ)が必要です。 しかし、垂直的なスケールには限界があることがわかっているのと同じように(問題に対して投入できるハードウェアの量は限られている)、人材についても同じことが言えるのです。 アプリの成長に合わせてオペレーションを追加し続けることはできません。 そうすると、管理(オーバーヘッド)が増加し、誰が何の責任を負っているのかを把握するのに苦労し、実際にその人と会話をすることさえできなくなるため、コミュニケーションが遅くなります。

それが配備減少の法則が示していることです。 オペレーションの数が実際に展開を妨げ、トレードオフが始まる時点が来ます。 ファウストが悪魔と交渉するのと同じように、私たちはセキュリティよりもスピード、安定性よりも規模を選びます。 最終的に、私たちは理論上の限界に達し、開発、運用、ビジネスが他の場所で解決策を探し始めるという変曲点に達しました。

簡単に言えば、デプロイ数減少の法則に違反する前に、増加するアプリの数に対処するために雇用できるオペレーターの数には限りがあります。 

そのため、アプリケーションの増加とより迅速な展開の要求に対応するには、運用の自動化が不可欠です。 なぜなら、どれだけ速く入力しても、計算の方が速くなるからです。

 

ただし、自動化はスクリプト作成以上のものであることに留意してください。

私たちはすでに多くのスクリプトを作成しており、それが少なくともデプロイメントの競争に勝ち続けるための要因となっていることは間違いありません。 自動化を本当に成功させるには、デバイスごとまたはアプリケーションごとに実行すべきではありません。 そんなことはあってはならない。 それはスケールしません。 デバイスまたはアプリごとに 1 つのスクリプトを作成している場合、自動化は正しく行われていません。

自動化はプロセス(つまり実際にはオーケストレーションですが、それは私が傾け続けているが倒れない風車です)と一貫した実行に関するものである必要があります。 つまり、スクリプトの変更だけでなく、自動化を導入する必要があるということです。 つまり、インフラストラクチャをコードとして扱う DevOps の原則を取り入れた新しいアプローチを意味します。

インフラストラクチャ・アズ・コード

Infrastructure as Code は直喩です。 つまり、実際のインフラストラクチャはソフトウェア、ハードウェア、クラウド、オンプレミスのいずれかになります。 インフラストラクチャの動作をコードとして実現するために API とデプロイメント アーティファクトを使用するため、実装はデプロイメントの目的には無関係です。 構成をデバイスから切り離すことで、デバイスをブラックボックスのように扱うことができます。

重要なのは、デプロイメント アーティファクト、つまり、目的のサービス用にデバイスをプロビジョニングおよび構成するために使用されるテンプレート、スクリプト、ポリシーです。 それらはリポジトリ (オンプレミス) に保存されます。 これらは、ネットワーク、セキュリティ、ストレージ、アプリ インフラなど、特定のサービスを完全に記述し、自由にサービスを再作成するために使用できます。 これらの成果物を使用して、ファイアウォール ルールの追加、ロード バランサーの展開、WAF の構成などの個々のタスクを自動化し、その後、オーケストレーションされたプロセスに組み合わせて継続的な展開を実現できます。

規模の不経済に対処する上でこれが重要な理由は、純粋なスクリプト作成が依然としてデバイスごとのタスクであるためです。 スクリプトがあれば、5 分間の作業が 5 秒で完了します。 しかし、それは依然として手動で呼び出され、人がプロセスを実行する必要があります。 これは、プロセス全体を自動化するという大きなニーズには対応していません。これは、デジタル経済で競争するために必要な規模の経済性を達成するために必要なことです。 

 

このシリーズの最後の投稿では、コンテナ化された環境にデプロイされるアプリの増加を安全かつ確実に配信する方法について詳しく説明します。