Deployment Automation - Kubernetes in Azure Cloud, AWS and GC

Hello fellow indexers,

As part of the Grants Program we created a solution to deploy TheGraph on the big three public clouds: Azure, AWS, Google Cloud. Actually it only supports the Azure Cloud but in the next weeks we’ll release the AWS and GC options.

The solution is using Terraform to automatically deploy the Cloud Infrastructure and Helm in order to deploy The Graph containers on a Kubernetes Cluster. It includes the following:

  • Automated Infrastructure Deployment [k8s]
  • Integration with Log Analytics [Azure]
  • The Graph resources (All the main containers)
  • Prometheus and Grafana
  • Community Dashboards included

There are some pros and cons when migrating to a public cloud such as Azure/AWS/Google.
Pros:

  • scalability
  • flexibility
  • a nice set of tools for every situation
  • less management burden

Cons:

  • Costs - It can become costly over time since all these benefits have a price tag attached. The costs must be carefully kept under control.

The solution is modular and it can be used in any combination by an experienced user.
Terraform:

  • deploy your own Kubernetes Cluster
  • deploy the PAAS Database / User your own database
  • scale the cluster resources both vertically and horizontally dependig on the needs

Helm:

  • use helm charts to deploy the app containers

For the less experienced user there is a step by step tutorial on the Github Readme page and a video tutorial that can be followed as a walkthrough. Links below:

Github: GitHub - easy2stake/thegraph
Youtube: The Graph - Azure Cloud Automation - YouTube

Note:
The Youtube video is quite big [56m] but you can jump to the section you need by following the chapters. It was recorded so that anyone (experienced or not) can follow while having the possibility to skip through the sections easily if you already have automation skills.

Step 1 - Installing prerequisites
Step 2.1 - Terraform files explained
Step 2.2 - Grabing Azure Credentials for Terraform
Step 2.3 - Using Terraform to deploy
Step 2.4 - Exploring Azure Portal after deploying
Step 3.1 - Grabbing K8S Credentials
Step 3.2 - Helm Files Explained
Step 3.3 - Deploying with Helm
Step 3.4 - Exploring the Helm Deployment

4 Likes