エッジプログラミングを成功させるための6つの教訓

エッジプログラミングを成功させるための6つの教訓

​翻訳者 |ブガッティ

校正:孫淑娟

多くの組織が、レイテンシ、柔軟性、コスト、パフォーマンスの面でエッジ コンピューティングがもたらすメリットを享受しているため、エッジ コンピューティングは急速に成長しています。 IDC は、エッジ ハードウェア、ソフトウェア、サービスへの世界的な支出が 2022 年に 1,760 億ドルを超え、前年比 14.8% 増となり、2025 年までに 2,740 億ドルに達すると予測しています。したがって、開発者が現在エッジ アプリケーションを開発しているか、近い将来に開発する可能性は十分にあります。

積極的に試してみる前に考慮すべき点がいくつかあります。私は、いくつかの開発組織で働いた経験のあるエンタープライズ アーキテクトであり、エッジ アプリケーションの作成に関していくつかの重要な教訓を提供できます。これらの教訓を念頭に置くことで、イライラする結果を回避し、エッジ コンピューティングを最大限に活用できるようになります。

レッスン1: 自分の考えに疑問を持つ

開発者は、エッジ アプリケーションをデータ センターやクラウド向けのアプリケーションであるかのように作成することがよくあります。しかし、エッジは異なるパラダイムであり、コードの記述には異なるアプローチが必要であり、どのアプリケーションがエッジに適しているかを慎重に選択する必要があります。

ほとんどの開発者は、少数のサーバーが大量のコンピューティング リソースを持つ集中型コンピューティング環境に慣れています。しかし、エッジ コンピューティングでは、適度な量のリソースをさまざまな場所にある複数のサーバーに分散することで、この状況を一変させます。これは、あらゆる種類のエッジ ワークロードのスケーラビリティに影響を与えます。たとえば、大量のメモリを使用するアプリケーションは、数百または数千のエッジインスタンスに適切に拡張できない可能性があります。このため、ほとんどのエッジ アプリケーションは、既存のデータ センターやクラウド デプロイメントから「リフト アンド シフト」されるのではなく、エッジ専用に構築されます。

エッジ アーキテクチャがアプリケーションにどのような影響を与えるか、またどのアプリケーションがこの分散アプローチからメリットを得られるかについて、慎重に考える必要があります。データがある場所にロジックを導入する方が簡単な場合がよくあります。したがって、データが分散している場合や、大規模な集中データ ストアにアクセスする必要がある場合は、クラウド ベースのアプローチが適切である可能性があります。しかし、エッジ コンピューティングが真価を発揮するのは、オンライン ユーザーからのリクエスト/レスポンス、Cookie、ヘッダーなど、エッジで生成されたデータをアプリケーションが使用するときです。

レッスン2: 基本を無視しない

コードをエッジに配布するとレイテンシとスケーラビリティは向上しますが、すぐに実行速度が速くなるわけではありません。非効率的なコードは、エッジでも非効率的です。前述したように、エッジの各アクセス ポイントは、特にサーバーレス エッジ環境では、一般的な集中型コンピューティング環境よりもリソースが制限されます。エッジ用のコードを作成する場合、このアーキテクチャを最大限に活用するには、効率を最適化することが重要です。

機能をエッジにプッシュするのは比較的迅速かつ簡単ですが、通常のコードに適用するのと同じ適切なガバナンス プロセスを適用する必要があります。これには、適切な変更管理プロセス、ソース コード管理システムへのコードの保存、コード レビューを使用したコード品質の評価が含まれます。

レッスン3: スケーラビリティを再考する

エッジを使用する場合は、「スケールアップ」ではなく「スケールアウト」することになります。したがって、各サーバーの制約を考慮するのではなく、各リクエストの制約に対応するようにコードを開発する必要があります。これには、メモリ使用量、CPU サイクル、リクエストごとの時間に対する制約が含まれます。制約は使用しているエッジ プラットフォームによって異なるため、制約を理解し、それに応じてコードを設計することが重要です。

通常、各操作に必要な最小限のデータ セットを使用して操作する必要があります。たとえば、エッジで A/B テストを実行している場合は、ルールセット全体ではなく、処理している特定のリクエストまたはページに必要なデータの部分のみを保存したい場合があります。位置情報に基づくエクスペリエンスの場合、軽量クエリでエッジ インスタンスが提供する特定の州または地域のデータのみが必要であり、すべての地域のデータは必要ありません。

レッスン 4: 信頼性を重視したコードを書く

エッジ アプリケーションの信頼性を確保することは、良好なユーザー エクスペリエンスを提供するために重要です。品質保証 (QA) 計画にエッジ コードのテストが含まれていることを確認します。問題が発生した場合のフォールバック動作の計画とテストなど、コードがエラーを適切に処理できるようにするために、適切なエラー処理を追加することも重要です。たとえば、コードがプラットフォームによって課された制限を超えた場合、ユーザー エクスペリエンスに影響するエラー メッセージがユーザーに表示されないように、デフォルトのコンテンツにフォールバックするフォールバック メカニズムを作成する必要があります。

分散負荷テストを実行することは、アプリケーションがスケーラブルであることを証明する優れた方法です。コードをデプロイしたら、プラットフォームを継続的に監視して、CPU とメモリの制限を超えないようにし、エラーを追跡します。

レッスン5: パフォーマンスを最適化する

エッジ コンピューティングの主な利点は、データとコンピューティング リソースをユーザーの近くに移動することで、レイテンシを大幅に削減できることです。数百または数千のプレゼンス ポイント (PoP) に拡張する場合、この利点を実現するには、軽量で効率的なコードを作成することが重要です。機能を完了するために必要なデータもエッジにある必要があります。集中型データ ストアからデータを取得する必要があるコードを開発すると、エッジがもたらすレイテンシのメリットが無効になります。

効率的な実行に対する同様の重点は、エッジ アプリケーションで使用する可能性のあるサードパーティ コードにも適用されます。既存のコード ベースの中には非効率なものがあり、パフォーマンスを低下させたり、エッジ プラットフォームの CPU やメモリの制限を超えたりするものがあります。したがって、展開されたエッジ環境にコードを組み込む前に、慎重に評価する必要があります。

教訓6: 車輪の再発明はしない

エッジは新しいパラダイムですが、すべてをゼロからコーディングする必要があるわけではありません。ほとんどのエッジ プラットフォームはさまざまなコンテンツ配信ネットワーク (CDN) 機能と統合されており、キャッシュなどの既存の CDN 機能を表す出力を生成するカスタム ロジックを作成できます。

また、エッジコンピューティング環境と集中型コンピューティング環境の両方でコードを実行できるように、再利用性を確保するようにコードを構造化することもお勧めします。コア機能を、ブラウザ、Node.JS、または特定のプラットフォーム機能に依存しないライブラリに抽出することで、コードを「同型」にし、クライアント、サーバー、エッジで実行できるようになります。

既存のオープンソース ライブラリを使用することは、共通機能の書き換えを回避するもう 1 つの方法です。ただし、Node.JS またはブラウザ機能を必要とするライブラリには注意してください。また、使用しているエッジ プラットフォームと統合する製品を開発するサードパーティの開発者と協力することも検討してください。これにより、実証済みの相互運用性の利点を享受しながら、時間と労力を節約できます。

経験を実践する

これらのベスト プラクティスの影響を説明するために、実際の例を考えてみましょう。ある組織がエッジでジオフェンシング アプリケーションを実装するのに苦労していました。組織は、CPU とメモリに関してプラットフォームの制限を超えたために、高いエラー率に直面していました。

組織がアプリケーションを構築した方法を見ると、すべてのジオフェンス ゾーンのデータが、各エッジ PoP に 900 KB の JSON として保存されています。各ジオフェンスでは、CPU を集中的に使用するアルゴリズムを使用して関心ポイントがチェックされ、チェックされた最初の数エリアで関心ポイントが見つからない場合は CPU タイムアウトがトリガーされます。

これを修正するために、各ジオフェンス領域のデータはキー値ストア (KVS) システムに移動され、各領域は個別のエントリに保存されます。特定の関心ポイントが存在する可能性がある「候補領域」(通常は 1 ~ 3 つの候補) を識別するための軽量チェックが追加されました。完全なデータと CPU を集中的に使用するチェックは候補領域に対してのみ実行されるため、CPU のワークロードが大幅に削減されます。これらの変更により、次の図に示すように、エラー率が無視できるレベルまで低下し、初期化時間も短縮され、メモリ使用量も削減されました。

図 1: 成功率とエラー率の前後の比較 (成功とエラーの指標は異なるスケールであるため、直接比較することはできません)

図2: 初期化前後の時間の比較

図 3: 比較前後のメモリ使用量。 (画像提供: Akamai)

エッジを活用する

エッジ コンピューティングは、ユーザーに近いことから恩恵を受けるアプリケーションに多大な利点を提供し、速度と効率だけでなく、パーソナライズされたユーザー エクスペリエンスももたらします。成功の鍵は、アプリケーションがエッジに適合していることを確認し、制約を超えずにエッジ プラットフォームの機能を最大限に活用できるようにコードを最適化することです。

複数の組織と連携して私が学んだことに注意を払えば、頭を悩ませることなく、エッジのメリットをより早く最大限に享受できるようになります。

原題:エッジのためのコーディング: 成功のための 6 つの教訓​​​、著者: ジョシュ・ジョンソン

<<:  マルチクラウドが現実のものとなりました。マルチクラウド管理をより適切に実現するにはどうすればよいでしょうか?

>>:  クラウドネイティブデータ管理の謎を解く: 運用レイヤー

推薦する

蘇寧社や美団社が相次いでクラウド市場から撤退する中、中小メーカーはどうやって生き残ることができるのだろうか?

最近、蘇寧クラウドと美団クラウドが相次いでクラウド市場からの撤退を発表し、それぞれ長年続いたクラウド...

インターネット生存の神話:中国のコミュニティの行き詰まりと生存

中国のインターネット食物連鎖には永遠の勝者は存在しない。曹国偉氏は、Weiboは実際にはWeChat...

ウェブサイトの信頼性を高め、顧客のコンバージョン率を高める方法

信頼の構築は次のような側面に反映されます。 1. 会社概要ページ: 会社の背景、歴史、事業範囲などに...

ウェブサイトの検索エンジンランキングを向上させる方法

1. ウェブサイトのランキングの基本原則 検索エンジンの「古代」の時代では、検索結果におけるウェブサ...

VMware は、現代の分散型企業向けに優れたセキュリティとビジネス回復力を提供します

2021 RSA カンファレンスで、VMware のセキュリティ専門家は、現代の組織がセキュリティ戦...

オンラインマーケティングの観点から、Good Voice が人気なのはなぜでしょうか?

「中国の声」は一夜にして人気となり、「爆発的ヒット」と形容しても過言ではない。浙江衛星テレビも「中国...

ビジネス戦争と紛争:ケータリングO2Oが世界を征服し、市場シェアをめぐる戦いを開始

O2Oは間違いなく中国の電子商取引市場におけるダークホースであり、近年の急速な拡大と成長は中国のO2...

Demi Cloud - VPS 60% 割引、サイト全体にユニバーサル、ロサンゼルス C3/香港/福州/貴州などの複数のデータセンター

西安賴菲雲科技有限公司のブランドである Demi Cloud は、企業形式で運営されており、仮想ホス...

関連性の穴から抜け出し、SEOの視野を広げる方法

関連性を体系的に説明し、例示する記事をたくさん見てきましたが、私が言いたいのは、衣料品店は本当に衣料...

ウェブサイト構築会社は企業にどのようなメリットをもたらすのでしょうか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています企業がドメ...

Linode - 試して 10 ドルゲット!

Linode.com、最近は簡単ではないようですね。もちろん、過去と比べての話です。最近、新規ユーザ...

国内のデータベースメーカーは、50兆ドル規模の新しいインフラ市場にどのように参入するのでしょうか?

今年の両会期で初めて「新インフラ」が政府活動報告に盛り込まれたため、業界では関連テーマが注目の的とな...

MozillaがWebXR標準を提案し、複合現実技術を標準化すると発表

Mozilla は、ユーザーが使用しているデバイスに関係なく、Web 上で複合現実と拡張現実が機能す...

マイクロソフトは自社のマーケティングの弱点を浮き彫りにするためにライバルを嘲笑している

Appleは6月からさらに脱Google化を進め、Siri音声アシスタントが提供する検索エンジンサー...