GoTo PartnerCloud Inception
Reason to deploy a cloud native deployment
- 1 Click deployment of EF-CX tenant
Bigger Picture
External components for-example mongo, minio, redis and postgreSQL are deployed using replication while using the local disk as the storage mechanism.
Sign-Up
A user signs up form with
- username
- Password
and is returned with a customer ID
Process
The user given a progress bar which will run below given schedulers at the backend.
- region
- namespaced EF-CX deployment
- instantiation of
- tenant ID in KeyCloak
- with central postgreSQL DB
- running in pgpool env with
- a minimum of 1K connections available
- PV size of 250 GiB
- running in pgpool env with
- with central postgreSQL DB
- mongo
- Option-1
- 1 single MongoDB cluster ( 1 master, all else slaves )
- consistency
- 1 master always available
- DR can survive upto 1 node in the whole cluster
- average size of the customer data
- retention of the customer's data
- retention policy
- management is expensive
- administration is hectice
- single point of failure
- easy to setup with Local-Volume based storage ( no need for a Cloud native Storage )
- Backup and restores are
- overall performance
- restoration of the cluster may take time.
- Option-2
- 1 single instance per Tenant ( Using MongoDB operator )
- Requires Cloud Enabled Storage ( longhorn, OpenEBS or Rook )
- manageability
- administration ( more sort of automated administration is handy with operator style )
- backups and restoration is easy
- Option-1
- redis
- Option-1
- Redis Operator based deployment
- independently covered and managed
- requires Cloud Native Storage ( Longhorn, OpenEBS or Rook ) ( another option is to use local-disk of the node as always )
- performance degradations covered because another client may have messed up the their own redis instnace.
- Backup/recovery-- do we really need to backup redis data PV ??? discuss
- Node Failures are covered when
- Node where the redis instance was running, fails, the cluster spins up the same instance on another available node with possibilities of
- if using local storage – the re-birth will be flash blank
- if using Cloud native – will emerge from where it crashed.
- Node where the redis instance was running, fails, the cluster spins up the same instance on another available node with possibilities of
- Option -2
- Deploy as a Redis Cluster ( possibly with Centinel )
- One Central EndPoint for the whole cluster
- Requires at least 5 nodes ( a minimum of 3 , but recommended 5 )
- One large database ( with centinel only 1 large database is possible ) but solution is guarentee to run
- Node failure survivals
- can survive until last node
- Backup/restore – discuss
- Option-3
- Deployed as 1 Master with 1 Slave approach
- Can be either per tenant or Central
- Supports multiple database
- can be namespaced ( local to tenant )
- requies at least 2 nodes
- Option-4
- 1 single instance of the redis will be enough ( manually driven )
- Option-1
- ActiveMQ/Artemis in a central Pool
- preferred single instance per tenant
- tenant ID in KeyCloak