つながる Macrometa Global Data Network (GDN) と Akamai Connected Cloud

分散システムを考える上で避けて通れないのはデータの配置です。Macrometa 社はグローバルに分散したアプリケーションから容易にデータにアクセスできる Global Data Network (GDN) を提供しており、分散されたエッジでデータを処理することを可能とします。Macrometa 社が提供するサービスの PoP を示したものが下図となります。
![macrometa-locations.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264188/c1f3aa03-dd02-b15e-1477-4018560b963f.png)
Akamai は Linode 社を 2022年に買収し、商用のクラウドコンピューティング市場に進出しました。そして、創業時から継続している CDN と、成長が著しいセキュリティサービス、新たなコンピューティングサービスで構成される、Akamai Connected Cloud を提供しています。 Linode がベースとなっている Akamai の Cloud Computing Services は、シンプルさ、開発者フレンドリー、手頃な価格といった特徴で、既に開発者に支持されていますが、今後、分散アプリケーションを動作する基盤としてさらに革新されていく予定です。そして、Macrometa 社はすでに Akamai の Cloud Computing Serivces を基盤の一部として利用しています。

また、Akamai は世界中に分散されているエッジ上で JavaScript を起動できる EdgeWorkers をサーバーレスとして提供しています。すでに、Akamai は EdgeWorkers から呼び出すキーバリュー型データベースである EdgeKV をリリースしていますが、Macrometa も利用することができるようになりました。EdgeKV は EdgeWorkers 向けに設計されたデータベースですが、Macrometa はデータ中心に設計されたプラットフォームであり、より汎用的にデータを利用できます。

# Macrometa の特徴

Macrometa は豊富な機能を持っていますが、その特徴は以下の Web に記載されている、データメッシュ、エッジ処理、データ保護の３つに要約できると思っています。

https://www.macrometa.com/


## データメッシュ

![global-data-network.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264188/4cab5b24-0dff-b087-600a-e70549670278.jpeg)

Macrometa の 1 つ目の特徴は、データを柔軟にリアルタイムに扱えることです。NoSQL データベースを提供し、キーバリュー、ドキュメント、グラフ、ストリームが扱えます。これらの異なる特性のデータをシングルプラットフォームで扱えます。個人的にはストリーム処理に期待しています。

Macrometa GDN はマネージドで、サーバーレスのクラウドサービスとして提供されます。データは分散されたリージョンの間で同期されます。データの一貫性に関しては、Conflict-Free Replicated Data Type (CRDT) という手法を使っています。Macrometa によると、彼らのアーキテクチャは、地理的に分散したイベントソースに、マテリアライズド・ビュー・エンジンとCRDTベースのレプリケーションを加えたものとのことです。そして、開発者が細かい粒度で一貫性レベルを定義し、ニーズに応じて異なるレベルの分離と一貫性を実現します。

また、90 パーセンタイルで 50 ミリ秒以内という低いレイテンシーを実現可能としています。

データの配置は最大 175 箇所を選択できます。Akamai の Cloud Computing Services のコアサイトは Linode 買収時点で 11 箇所、2023 年末までに 13 箇所追加予定です。このほかにも、Macrometa はハイパースケーラを含む多くの選択肢を与えています。有償プランで様々な対応ができます。

## エッジ処理
Macrometa の 2 つ目の特徴は、データベースの中に汎用的なプロセッシングの機能があることです。データ駆動型で、分散データを処理できるアプリケーションを容易に設計できます。

https://www.macrometa.com/platform/edge-compute

Query Workers と Stream Workers を提供しており、SQL ライクにデータを処理することができます。Stream Workers は入力イベントに対して分散された場所でリアルタイムにアクションする Complex Event Processing (CEP) として扱うことができます。
![cep-overview-4d655d807d112a6f19c1221765322d2f.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264188/69786b9f-d89a-c710-623e-ebdd28ab971e.png)
Stream Workers で利用できる Function には Complex Event Processing (複合イベント処理) を実行する関数が豊富に提供されています。物理的な一箇所で処理するのではなく、リプリケーションされたデータがある分散された場所でイベント処理します。

https://www.macrometa.com/docs/cep/query-guide/functions

ストリーム処理のためのインタフェースも豊富にもっており、Google Pub/Sub、HTTP、Kafka、MQTT、Prometheus などに対応できます。

https://www.macrometa.com/docs/cep/source/source-types/

データタイプのマッピングも提供され、text、JSON、CSV、バイナリ、Avro などに対応できます。

https://www.macrometa.com/docs/cep/source/source-mapping/

定義された処理は API として提供することができ、Akamai EdgeWorkers との統合はその拡張の一つです。


## データ保護

Macrometa の 3 つ目の特徴はデータの保護です。データ保護はサービスを提供する上で必要不可欠なものです。GDPR に対応するためには、データの配置にも気を配る必要があります。Macrometa のデータ配置は GeoFabrics で管理できます。

![governance.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264188/b4a14971-bfee-9f06-075f-58c5a99a6a49.png)


https://www.macrometa.com/docs/geofabrics/

GeoFabrics を使うと、利用するリージョンを定義できます。無償版ではすでに決められている Akamai の Cloud Computing Services にマッピングされていると思われる 10+ 箇所が利用できます。 

![macrometa-geofabrics.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264188/2b8ba141-62a8-4833-d910-b439218c7729.jpeg)

データへのアクセスはサービスとして提供されます。アクセスには API キーが必要となり、それぞれのサービスに対して細かいアクセス制御ができます。

https://www.macrometa.com/docs/account-management/permissions/

# ユースケース

エッジでデータを処理する必要があるケースに Macrometa は適用できます。

IoT やオンラインゲームだけでなく、動画のストリーミング、Eコマースとリテール、FinTech などに対して、ユーザ体験とオンライン体験の向上、不正検知、トレーサビリティ、オブザーバリティなど様々なケースに対応できると思われます。Macrometa 社のサイトで例が紹介されています。

https://www.macrometa.com/solutions


# Macrometa のサービスを EdgeWorkers に登録する

Macrometa の分散データへのアクセスには様々な方法がありますが、Akamai EdgeWorkers の統合サービスも提供されています。

https://www.macrometa.com/docs/akamai

Macrometa の Query Workers や Stream Workers で定義したサービスを EdgeWorkers のサービスとして呼び出す統合がされています。
![generate-edgeworkers.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264188/c9f786e0-ba04-3ac3-276a-07f60ff82beb.jpeg)

こちらについては別記事で紹介予定です。

# まとめ
Akamai Connected Cloud が向かうべき分散アプリケーションのプラットフォームの提供に対して、重要な一つの要因となる分散データを扱う技術の例として Macrometa を紹介しました。Macrometa は Akamai の Cloud Computing Serives の IaaS を使うパートナーでもあり、Akamai EdgeWorkers のサーバーレス環境や開発者の皆様が開発したアプリケーションからデータサービスを提供するためのテクノロジーパートナーでもあります。今後、様々なユースケースが登場すると思いますが、今回は簡単に Macrometa の概要機能を紹介しました。開発者向けの無償版が提供されていますので、是非お試しください。