エッジプログラミングを成功させるための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 つの教訓​​​、著者: ジョシュ・ジョンソン

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

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

推薦する

推奨: turnkeyinternet-格安ハイエンド KVM VPS/1000M 無制限トラフィック/ロサンゼルス

Turnkeyinternet は、1999 年からホスティング事業を運営しているアメリカの老舗ブラ...

盲目的な買収? LeEco のビジネス行動の背景には何があるのでしょうか?

LeTVが最近非常に人気になっているのは明らかです。これは、LeTVがコアビジネスで素晴らしい成果を...

ランキング最適化のための3つの要素: データ、ユーザー、クリック

ウェブサイトの SEO 担当者として、私たちがすべきことは、ウェブサイトのキーワードを検索エンジンの...

山東省泰安市の授業でFacebookグループマーケティングの商業的応用について議論

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

ユーザーエクスペリエンスはユーザーのニーズに応じて常に変化します

現在、ウェブサイトの最適化は、どの業界であっても競争が激化しています。たとえば、ウェディングフォトグ...

「お父さん、どこへ行くの?」は映画版が制作され、関連マーケティングも大成功を収めた。

大人気ドラマ「お父さん、どこへ行くの?」の第1シーズンが終了しました。まだ満足はしていませんが、映画...

ウェブサイトの最適化は模倣や盗作ではなく、成功の鍵は分析にあります(パート 1)

中国の古代の教育モデルでは、教師が教壇で講義し、生徒がステージの下でメモを取るというパターンがよく見...

BandwagonHostの登録に関するチュートリアル、BandwagonHostの登録の詳細について説明します

BandwagonHost VPS の登録プロセスは比較的簡単です。登録できない方もいらっしゃるでし...

ハイブリッドクラウド市場をめぐる戦いが現実になる

ハイブリッドクラウドの使用がますます増えています。過去 10 年間でハイブリッド クラウド、市場構造...

プライベートクラウドとパブリッククラウド: Kubernetes がバランスをどう変えるか

今日の企業のほとんどはハイブリッド クラウド ユーザーになります。 2021 年に Statista...

「タオバオ大学」をめぐる論争:人材育成か「ベンダー」の模倣か

アリワンワンの特徴的な「ピンポーン」という音とともに、店主は客に挨拶を始めました。「おや、何をお求め...

クラウド変革の 3 つの段階は何ですか?

クラウド変革とは、柔軟性、拡張性、効率性を向上させるために、従来の IT インフラストラクチャとアプ...

Kubernetes アプリケーション構成管理を 1 つの記事で理解する

アプリケーションに関係なく、基本的に設定ファイルが存在します。企業では、ほとんどが apollo、n...

数千万のデータセンターにクラウドネイティブのスーパーコンピューティングを導入

[51CTO.comより引用]ポストパンデミック時代において、企業はクラウドコンピューティング、ビッ...

競合他社の外部リンクを素早く検索する方法に関するヒントを共有する

多くの人の書いた記事を見るといつも腹が立ちます。長い間読んでいても、まるで読んでいないかのようだから...