In the traditional way of deploying an instance of an application in a VM or a shared machine, requires a lot of operational task, which involve setting up of runtime environments, installing dependent softwares, setting up databases etc. Scalability, Availability, Health Metrics are some of the important factors that we may need to address. This become more complex and actually multiplies in the case of microservice based applications with each of the instances being independent with the provision of being scaled up or scale down individually. Another bottleneck is the seamless integration of DevOps systems with the existing deployment structure. Extensive efforts are needed to track down the release versions of the applications deployed into different environments like Test, Staging and Production.
ThinkStack – ThinkPalm’s Private Cloud for Microservice Apps
ThinkStack, ThinkPalm’s PAAS system tries to solve these problems by orchestrating the automated build, test and deployment of microservice based applications in different environments on top of well-structured open source cloud stack. On top of OpenStack, ThinkStack also contains CloudFoundry OSS, which facilitates the deployment of containerized applications. This can be integrated with existing DevOps system to automate the build and release management. Being completely build on open source technologies, it is a low cost infrastructure.
In the above Host Networking layout, first interface of Controller and Compute Node is connected to a local network through a switch and a configuration laptop (Management Network). It is used for the management, installation, upgrades, troubleshooting of the cloud. The nodes in this network access WAN through the shared Wi-Fi network of the configuration laptop. This is a closed network and not available externally. The second interface provides the bridge to the ThinkPalm LAN (Provider Network) and the Virtual Network created inside the OpenStack cloud. This will be shared and used by the Virtual Machines running inside the cloud. A separate VLAN has been provided inside ThinkPalm LAN to facilitate this. The virtual machines inside the ThinkStack cloud can be accessed from the internal network through the VLAN.
DevOps Integration with ThinkStack
Most importantly, ThinkStack facilitates the integration of deployment and release functionalities in existing DevOps systems. The DevOps build pipeline starts when a developer commits the code to the source repository and it goes all the way till the deployment. ThinkStack enables the pipe line to completely run independently without any interventions from the operations team for the deployment.
When the developer pushes his code to GitLab, the Jenkins will pull the source code, builds, minify, run unit tests and deploy it to ThinkStack. It also stores an achieved version to the Artifact repository. It supports Python, Java, Nodejs, Ruby apps environment to run inside Docker Containers. These apps can be staged as Development, Test and Production corresponding to the Git source branch. For growing demands or for larger applications, ThinkStack can horizontally scale up to meet the requirements.