Multi-cloud Apps & Data — A holy grail — Evaluation of the architectural pattern with Vendia
As large enterprises move to the cloud, a multi-cloud strategy is defined anywhere from, each line of business can choose a cloud provider (e.g., CMO choosing GCP whereas CIO chooses AWS or Azure) to organizations ability for any given application to run in any cloud or on-premise.
Very divergent and orthogonal definitions of what a multi-cloud means to them.
One common issue, how do we make the data and data services available between CSPs (Cloud Service Providers), without building large integration projects whilst giving up availability requirements.
One SaaS platform, I came across, was promising to address these problems with the same solution and also using only cloud-native solutions! Vendia Share. I figured I should start investigating it, this is an introductory view of what’s possible, using a real use case.
Financial Services use cases
For large banks, asset managers, and regulators — data sharing amongst them, as constituents move to different clouds is going to be increasingly challenging and require massive integration efforts.
Within large banks, pervasive entities such as customer master, security master, product information, partner data sharing (like trade files, settlement data), and associated data services’ making them available as multi-cloud could have huge efficiency potential.
Industry utilities such as KYC, trade clearing, counterparty legal entity master are also candidates for data sharing across multi-cloud.
Let’s get hands-on with Vendia
Vendia Share is a PaaS (They call themselves SaaS, this debate is for another time, not really important at the moment) — that allows building, what they call “Unis — Universal Apps” — Domain, Data Model, Service layer, Integrations — All come out of the box as a multi-cloud (only available for AWS, for now) friendly service.
This “App” can be made available out of the box in any CSP/AZ/Region and data is available for anyone who wants to use/share this “App”.
While there is a lot to be proven by Vendia, and I am sure some competitors will show up (e.g., Snowflake data sharing), I believe the architecture has merits.
My simple sketch of what we are talking about here — This is really “a conceptual” version — not really what Vendia is promising from what I could gather, not yet, anyway.
I am going to define, setup, and run, multi-cloud data and app services with no-code!
I going to define a Uni — called Customer Master Database (MDM) — a pervasive dataset that is slowly changing and large, available for anyone to use.
I will define the schema here, pretty simple — customer name, email, and reference number.
I have also started with 3 Customers in the “Initial State” below (bottom left).
Uni is deploying!!
Once deployed, I get a fully-featured data services application in AWS us-east-2 AZ!
I have a Uni called CustomerMasterMDM.unis.vendia.net
I can query, mutate, monitor changes via WebSockets, Async processing, bulk processing, and receive notifications — without a single line of code!!!
This is amazing.
Now, the crazy part — I can invite someone to participate in my “decentralized Uni” — Currently I have 1 Node running, but I could invite someone else via email to join and manage their own Node of data/services, anywhere else they choose to do it!
Let’s go back to Uni and see what we can do.
We will use GraphQL explorer provided directly in the UI. Let’s first look at the data we have stored, an interesting view here.
I have queried via GraphQL the customers I have in my ‘datastore’. Immediately, I see headers similar to what I see in QLDB for example.
The data is stored in an immutable ledger (underlying platform, I am not sure), which allows you to trust the data that is available across multiple clouds, partners, and vendors.
I will add another customer directly through a GraphQL Mutation I have defined in the UI.
Now, I see a 4th customer in the Uni.
You could see the 2nd block is created with the previous black and content hash to prove that the content of the previous block and also the cumulative state called “world state” in blockchain lingua-franca.
Coming back to Uni, it is clear “on paper” this architectural pattern is a great topic of discussion for large multi-cloud enterprises.
Imagine the amount of work one has to do to maintain this much infrastructure/services for a dataset (small or large).
I still think the verdict is still not out on this.
As multi-cloud nodes are deployed, as data sharing needs increase, resiliency and SLOs are measured, with Vendia or any custom platforms built with this pattern in mind, architects will get continue to get comfortable over time.
Data replication, transactionality, master-master consensus, etc., still need to be evaluated for a truly multi-cloud vision to be met. This is a great start, though.