Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Analysis: Support for multiple Storage backends #127

Closed
2 tasks
altinnadmin opened this issue Feb 21, 2021 · 5 comments
Closed
2 tasks

Analysis: Support for multiple Storage backends #127

altinnadmin opened this issue Feb 21, 2021 · 5 comments
Labels
area/data-storage kind/analysis solution/platform Issues related to Altinn Platform solutions.

Comments

@altinnadmin
Copy link
Member

altinnadmin commented Feb 21, 2021

Description

Currently we're using CosmosDB as backend for metadata JSON-documents and Azure Blob storage for storing data and attachments.

There are four main problems with this:

  1. Does not work on Linux, making it hard to test locally and provide a complete local test environments for apps. This also means we need to use time on providing a "mock" of Platform that apps running locally can use. Sadly it seems like MS is not listening as this has been requested for 4 years. Update: seems like it's now in preview.
  2. This is a dependency on Azure, making it harder than needed to move the Storage component on-prem or to other clouds.
  3. There is a risk that using only Cosmos and BLOB as backends can "bleed into" the designs of our external Storage APIs.
  4. Not open source

We took these dependencies with open eyes, since there are a lot of other document databases and BLOB/S3-like object storage services out there, and since using managed PaaS-services gives us big Ops-benefits since we're a small team.

And since these dependencies are taken only by our Storage microservice, abstracting these dependencies away, it should be easy to change backend without changing anything else (apps, the rest of platform, etc).

In scope

What's in scope of this analysis?

  • Find good alternatives to Cosmos and Blob that also can run locally in Linux-containers on a dev machine.

Out of scope

What's out of scope for this analysis?

  • Create new bindings to other cloud PaaS services.

Constraints

  • Alternatives must be able to run on Linux in containers
  • Alternatives must be open source with liberal licensing
  • Alternatives must be able to scale

Analysis

Conclusion

Short summary of the proposed solution.

Tasks

  • Is this issue labeled with a correct area label?
  • QA has been done
@altinnadmin altinnadmin added kind/analysis area/data-storage solution/platform Issues related to Altinn Platform solutions. labels Feb 21, 2021
@altinnadmin altinnadmin changed the title Support for more multiple Storage backends Support for multiple Storage backends Feb 21, 2021
@SandGrainOne
Copy link
Member

@altinnadmin Authorization also interface directly with CosmosDB with a separate implementation.

@TheTechArch
Copy link
Member

@lorang92 techforum

@SandGrainOne
Copy link
Member

There are now options for running a CosmosDB emulator on linux. This is also true for the new Storage emulator, Azurite.

@SandGrainOne SandGrainOne closed this as not planned Won't fix, can't repro, duplicate, stale Jan 4, 2023
@altinnadmin
Copy link
Member Author

There are now options for running a CosmosDB emulator on linux

That's nice, but does not solve the other more serious problems related to Cosmos. It's breaking 2 of our architure principles.
Also, an emulator is not the same as beeing able to run the real thing locally.

@altinnadmin altinnadmin reopened this Jan 9, 2023
@altinnadmin altinnadmin transferred this issue from Altinn/altinn-studio Jan 9, 2023
@SandGrainOne
Copy link
Member

SandGrainOne commented Sep 15, 2023

There are no plans of adding support for multiple different storage backends as of now. Though there are work being done to replace CosmosDB with PostgreSQL. That alone will make us more independent of Azure.

#193

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/data-storage kind/analysis solution/platform Issues related to Altinn Platform solutions.
Projects
None yet
Development

No branches or pull requests

3 participants