Unifie.cloud – Is SaaS platform for managing deployments in Kubernate clusters.
In this post I will show you – how to automate deploy for your own application.
Use case
Your company is developing a web application. It is necessary to deploy/maintain multiple instances of this application, each client having its own instance. The instances will differ only in configuration files.
How can you organize the deploying new application instances for a new customers? How to update it later?
Intro
In commpany were I worked did a same issue. We had several dozen clients, for each of which it was necessary to deploy a large application with almost a dozen microservices.
In addition, some of our customers have asked us to deploy their applications in certain regions because the laws of some countries require us to store user data in those countries. So we have several clusters in different AWS regions.
Solution
I recomend to deploy web applicationsin kubernates cluster, or several clusters in different regions.
1. Create a cluster if you do not have it
If you do not have a cluster – create one. You can use these instructions for AWS EKS for testing propose minikube or K3S also good solution.
2. Connect you own cluster to unifie dashboard
To be able to manage kubernetes from unifie web dashboard you need install unifie api agent into your cluster.
Unifie api agent is a small application that will perform api requests from unifie.
3. Create a project for your business app.
Unifie project – is a template for application. To create it you need at least basic DevOps skills. How to create a simplest project you can read here
4. Add CI/CD integration to your project
If you want to deploy a third party project – you can use helm chart with hardcoded application version.But for own developed project this way is not really good. I am sure you will have hundreds of different versions for your application, dev builds, production builds and a lot of other builds (in best case – dedicated build for each issue from Jira)
5. Define variables
Each project has some settings. Developers often use environment variables to get some values instead of hardcode them. Almost all Helm charts has a lot of variables. Control all this variables and values is a big job to DevOps engineers.
Unifie allows to delegate part of this job for a managers and developers from your organization. For this propose you can set variable source as Deployment configuration
After this, without any additional coding you will get the configuration form in deployment settings.
This approach allows to create a simple UI for the managers team. They will only change those values that is allowed in the project settings. This will allow give them some flexibility and not overload them with technical details.
Conclusion
This solution will allow to managers and developers without any devops skills control applications in a multi cluster environment.
Time to deploy your app will decrease to several minutes.
You will get audit logs to know who and when changed any settings in customer deployment.
In clusters you can use spot instances to save money.
Update application to a new version will be automated.
You will be able to rollback any changes in your configuration.
Developers will be able to create and delete test deployments. It will be easy to test big applications.
Developers can use git branches to deploy different versions of the application.
Developers can see the application logs.
Managers can deploy a new version app, give it to the customer and delete it after the presentation.
Comments