On-Premise Parse Server Deployment.

Task Overview :

Here I’m trying to provide an solution for on-premise application deployments to enterprise clients and here i’m doing it for Atlan, So we are going to deploy Parse Server on a cluster of machines.

  • Incremental remotely triggered application updates.
  • Easy remote debugging.
  • Health Alerts and Monitoring.
  • Application Security (with source code protection).
  • Disaster management.

Installation / Usage Instructions :

So basically for reaching the solution requirement i’m using this below given Platform and software's:

  • Google Kubernetes Engine: GKE clusters are fully managed by Google Site Reliability Engineers, ensuring your cluster is available and up-to-date. GKE runs on Container-Optimized OS.
  • Google Cloud Platform: Google Cloud Platform is a suite of public cloud computing services offered by Google. The platform includes a range of hosted services for compute, storage and application development that run on Google hardware.
  • Rancher: Rancher is an open source project that provides a container management platform built for organizations that deploy containers in production.
  • Helm & Helm Charts: Helm helps you manage Kubernetes applications and Helm Charts help you define, install, and upgrade even the most complex Kubernetes application.
  • Prometheus and Grafana: Prometheus is an open-source systems monitoring and alerting toolkit and Grafana is an open-source analytics and interactive visualization web application. It provides charts, graphs, and alerts for the web when connected to supported data sources.
  • Weave Cloud: Weave Cloud is an automation and management platform for development and DevOps teams.
  • Velero: Velero is an open source tool to safely backup and restore, perform disaster recovery, and migrate Kubernetes cluster resources and persistent volumes.
docker run -dti --restart unless-stopped -p 80:80 -p 443:443 rancher/rancher
https://kubernetes-charts.storage.googleapis.com/
  • Copy cluster resources from one cluster to another
  • Replicate your production environment for development and testing environments.
brew install velero
gsutil mb gs://<gke-cluster-migrate-velero-placeholder-name>
velero backup create atlantaskbk
velero get backups

Use Cases, Edge Conditions and Assumptions

  1. It is assumed that Source Code Protection is all managed by Professional coding team.
  2. Configuration.yaml file in GitHub is only a sample code file. It is assumed that it can be used for automatic triggered updates.
  3. It is assumed that clusters are managed by load balancers and can be scaled as per loads.
  4. It is assumed that for saving up backup data we have good storage capacity and also it is stored in different Zone.

Workflow

All the actions of this is task are sequentially taken from the assignment problem document.

  • Encryption and monitoring: Your source code is one of your most prized commodities on the programming side of things. So ensure that it includes the ability to encrypt the relevant data both in transit and at rest, as this will go a long way toward keeping it away from prying eyes.
  • Redundancy: Although many effective ways to protect your source code are on the table, this is one case in which the more methods you have in place, the better off you’ll be in the long run. In many cases, businesses opt to limit redundancy, since it amounts to an excess expense of resources.
  • Copy cluster resources from one cluster to another
  • Replicate your production environment for development and testing environments.

Data formats and Reporting

All the data that Prometheus and Grafana is providing from Rancher server, this data can be used by DevOps engineer or a system Admin for analyzing various statistical data from the running cluster. These statistics can then be used for processing information about the health of the application clusters, take productive measures checks and finally debugging the issues if any bugs are founded.

Metrices received from Prometheus monitoring

Performance and Scaling

Generally Scaling is used when traffic of work loads are increased and here we have Rancher for making it really easy to perform scaling by just few clicks.

Unresolved issues

Incremental remotely triggered application updates is not currently working because I had put a sample configuration file on GitHub, It’s actually because I am not confirmed in providing the updates to Kubernetes Cluster or to the application deployed in the Parse Server.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store