yossydev Blog

EdgeComputingのプログラマビリティの課題

publishedAt:
2024/12/02
updatedAt:
2024/12/02
目次

2024年 ユウトの一人アドベントカレンダーの2日目の記事です。

Intro

Edge Computing: Vision and Challengesという論文を読みました。 EdgeComputingについて、筆者は浅い知識しかなかったのと、論文を読む練習も兼ねて、読んでみました。

課題

この論文では、大きく以下のように定義されています。

  • プログラマビリティ
  • 命名
  • データ抽象化
  • サービス管理
  • プライバシーとセキュリティ
  • 最適化指標

本当は全て書きたかったのですが、アドカレの時間都合的に全部書いてると時間足りなさそうだったので、 本記事では特に気になったプログラマビリティについて記載します。

プログラマビリティ

EdgeComputingは言葉の通り、Edge(端)で様々な処理を行えることがメリットです。 そしてそういったEdgeComputingで動かされるデバイスのことを、EdgeDeviceと呼びます。

デバイスと言うととても広く、例えば筆者は今のスマホはGoogle Pixelを使っています。 しかし少し前はiPhone SEを使用していました。日々使っていて分かりますが、Google Pixelの方がぬるぬる動きます。

このように、ユーザーによって使うデバイスが異なることによる処理速度の差が、今回のプログラマビリティの課題になります。 他にも当然ですがユーザーのいる場所による通信環境の差などもあります。

この課題を解決するために生まれたのがCompute Stream(計算ストリーム)という概念です。これは処理をクラウドかエッジのどちらで実行させるか決めることができるという機能になっています。 これにより、各エッジデバイスの負荷を減らし、適材適所で処理を実行できるようになりました。

そしてここで余談ですが、WebエンジニアでEdgeComputingと聞くと、Fastly ComputeやCloudflare Workerなどがやはり思い浮かぶのではないでしょうか。 筆者が知識としてあるのはFastly Computeなのでそちらにに絞って話すと、これはエッジデバイスでは実行されず、Fastly側が用意しているエッジサーバー上で動作する機能になっています。

なので今ここで書いたプログラマビリティ的な課題はそこまで影響しないかもしれませんが、Fastly Computeを使う場合、Node.jsのようなランタイムに依存できないという点では、環境依存なのである意味この課題が関わっているのかなと考えています。

0