My Randezvous with Tech

A brief insight on various tech related topics

DevOps


Problem Statement:


Setup DevOps for the Portal instances.

Detailed Solution:


Terraform

In the initial stages of development, we had configured CI/CD for the portal and loadbalancer which deployed code on every commit to the Auto Scaling setup. However, we were still required to log into AWS Console to create an Auto-Scaling Configuration and launch it for the cloud environment to be setup. This manual setup did not conform to the DevOps principles.

Terraform seemed like a possible solution to this and was found to be feasible for provisioning Cloud setups over Amazon EC2. It provides a simple way to create / modify an Auto-Scaling group of Cloud instances using just a few configuration files.

Continuing on the Terraform setup done for the API-Server, I have extended it to the Portal. The Portal DevOps setup has been configured at the moment to create just the cloud environment. Once we have the Django portal, we need to add its install commands at the end of the userdata.sh file. This will effectively install and start the Portal on any spawned up instance without the need to deploy it again.


Conclusion


For now, we are using Terraform for setting up Auto Scaling groups on Amazon EC2. However Terraform lacks some features when it comes to OpenStack as identified by Anuj Bhandar in this Discussion and hence we may probably move to an alternative technology to provision cloud instances over OpenStack. Future plans are to create a Cloud Agnostic DevOps setup.


Associated Github issues