Milestone 5 - airavata-courses/Swishh GitHub Wiki
As a part of this milestone, we have also deployed the application on TACC cloud, to make it available always in scenarios where the jetstream fails to get up and running.
Milestone-Goals:
- Developing multi-component systems which are to be integrated, tested, deployed into production, and operated at scale.
- Deploying our APIs across both TACC and IU instances of Jetstream.
- The pipelines were restructured to keep them in synchronization in both IU and TACC.
- During the Blue-Green Deployments, in case of any failures interchange between TACC and IU.
- Assessing all the failed test cases.
Blue-Green Deployment:
What is it?
A blue/green deployment is a change management strategy for releasing software code. Blue/green deployments, which may also be referred to as A/B deployments require two identical hardware environments that are configured exactly the same way. While one environment is active and serving end-users, the other environment remains idle.
NGINX:
- NGINX is the proxy server that we are making use of whenever the IU cloud or jetstream is down. IT helps route the requests to the TACC cloud.
- NGINX ensures that the requests are directed to the cloud server that is live, either IU cloud or the TACC cloud. It also helps in performing health checks. In NGINX, an upstream server was created with both IP addresses.
TACC Deployment:
For TACC deployment, we cloned the exact replica of our setup on IU with a CentOS distribution running OpenShift, keeping all the attributes of the VM same. The IP for TACC VM is http://129.114.16.153:32092/. An additional step includes deploying the application on TACC was also included in the Jenkinsfile, therefore there was continuous deployment to both jetstream and the TACC.
Testing
- We needed to make all the replicas of the gateway down to verify if NGINX would correctly redirect to the TACC cloud.
($kubectl scale --replicas=0 deployment/gateway-deploy)
- Once that was done, all we need to do is fire up the UI and check if the application is running properly.
$kubectl scale --replicas=0 deployment/gateway-deploy
Following are some of the important IPs of our VMs:
Then, the application was accessed to verify if everything was running smoothly.