Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

placeholderAs mentioned in the Meadowlark Architecture, the Ed-Fi Alliance chose  to develop Meadowlark on Amazon Web Services (AWS) simply because the development team needed to concentrate on one system while developing this proof-of-concept application. AWS was selected simply because they have the largest market share. However, the team stuck with a key principle: try to use only AWS managed services that have an analogous option on the other providers, which would make (relatively) easy to migrate from one platform to the other. This document reviews the services used and identifies the equivalent tools (or gaps) in Azure and in Google Cloud, with a bonus add-on of documenting equivalent services available on-premises.

PurposeAWS ServiceAzureGoogleOn-PremisesAdditional Notes
Load balancing and reverse proxy​API Gateway

Azure Application Gateway


Cloud Endpoints

NGiNX, among others


Serverless ApplicationAWS Lambda

Azure Functions

Google Cloud Functions

OpenFaas or Fn

The Meadowloark application is written in Typescript using the Serverless package, making it theoretically easy to reuse these components with any platform's serverless functions.

Could consider refactoring to OpenFaas or Fn for one system that is cloud-agnostic (runs in Kubernetes and Docker, respectively).

Key-value data  store and Change Data Capture

DynamoDB

with

DynamoDB Change Data Capture

CosmosDB in Cassandra API mode

with

CosmosDB Change Feed with Azure Functions

Firestore

(error) see note below about change streams

Apache Cassandra

with

Cassandra Triggers

The differences may be great enough that some tweaking of the storage model may be required.

Switching to MongoDB may be a useful alternative, as it is available on all platforms:

Another option would be to switch to Cassandra for a single database platform available on all providers

Search engineAmazon OpenSearch

Elastic on Azure

Elastic on Google Cloud Platform

Either ElasticSearch or OpenSearch can run on-premises



Note

Google Firestore might not have a direct equivalent of Change Data Capture... at least, the searching for this does not turn up functionality that is clearly the same as with the other products. However, perhaps one of these techniques is capable of writing out to a stream: Extend... with Cloud Functions or onSnapshot.