Cloud Infrastructure

Introduction

CARE is cloud-agnostic and can be deployed on any Cloud Provider of your choice. We recommend using a Kubernetes Cluster, but since CARE is dockerized, you can deploy a Single Node using Docker as well.

During the initial days, when CARE was used for capacity monitoring, it was deployed on Heroku. Once the need for storing Patient Data was raised, CARE was moved to AWS (Mumbai Region). Moving forward, different versions of CARE were deployed across different Cloud and on-prem Environments. CARE supports deployments in major Cloud Service Providers such as AWS, GCP, and Azure.

Different components of CARE for a cloud deployment are as follows:

Backend

CARE backend consists of the following components

  1. Django application

  2. Celery Beat

  3. Celery Worker

  4. Redis

All of the above have their own docker images. Backend images are available in the CARE repository. It allows us to deploy backend in any of the various cloud solutions such as Virtual Machine, Kubernetes Cluster, Container Services, etc.

Refer backend documentation for setting it up once the deployment is done.

Frontend

CARE frontend is a React Web application. Docker images for the frontend are available in the CARE_FE repository. Frontend also can be deployed in Virtual Machines, Kubernetes Cluster or Container Services.

Database

The database used in CARE is PostgreSQL. CARE is tested up to v14 of the PostgreSQL database. Cloud solutions like AWS RDS can be used to deploy the database. Make sure to deploy the database in the same region as the backend to ensure minimal latency.

Object Storage

CARE uses two S3 API compatible object storage. One public object storage is used for storing facility images and one private object storage is used for patient file uploads.

Email Service

An email service like Amazon SES or Sendgrid can be used for the email functionalities of CARE.

SMS Gateway

An SMS gateway like Amazon SNS can be used for the SMS functionalities of CARE.

Dashboard

Dashboard service is also a React Web app that will provide an interactive dashboard to monitor metrics in CARE

Reporting Tool - Metabase Instance

A Metabase instance can be used along with CARE as a reporting tool for creating a static, but comprehensive dashboard with metrics captured by CARE

Cloud Architecture

As mentioned above, CARE supports a variety of ways for it to be deployed. The following is a generic cloud architecture for deploying CARE with a Kubernetes cluster.

Cloud Components List for CARE application:

  1. Load balancer

  2. Virtual Network

  3. Postgres DB

  4. Kubernetes Cluster

  5. File Storage

  6. Email Gateway

  7. SMS Gateway

Cloud Components List for Metabase (Reporting Software):

  1. Virtual Machine

  2. Postgres DB

Cloud Components for Dev Access:

  1. Virtual Machine as a jump server

Last updated