Breadcrumbs

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.


Application-Replication-Local-disk.png

Sign-Up

A user signs up form  with 

  • username

  • Password

  • email

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 KeyCloakwith central postgreSQL DB running in pgpool env witha minimum of 1K connections availablePV size of 250 GiBmongoOption-1 1 single MongoDB cluster ( 1 master, all else slaves )consistency 1 master always availableDR can survive upto 1 node in the whole clusteraverage size of the customer dataretention of the customer's dataretention policymanagement is expensiveadministration is hecticesingle point of failureeasy 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-21 single instance per Tenant ( Using MongoDB operator )Requires Cloud Enabled Storage ( longhorn, OpenEBS  or Rook )manageabilityadministration ( more sort of automated administration is handy with operator style )backups and restoration is easyredisOption-1Redis Operator based deploymentindependently covered and managedrequires 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 blankif using Cloud native – will emerge from where it crashed.Option -2Deploy as a Redis Cluster ( possibly with Centinel ) One Central EndPoint for the whole clusterRequires 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 nodeBackup/restore – discussOption-3Deployed as 1 Master with 1 Slave approachCan be either per tenant or CentralSupports multiple databasecan be namespaced ( local to tenant ) requies at least 2 nodesOption-41 single instance of the redis will be enough ( manually driven )ActiveMQ/Artemis in a central Poolpreferred single instance per tenant