Kubernetes deployment via automated CI/CD pipelines is always a hassle that requires some expertise in the DevOps field. In this post, we talk about Devtron; a tool to create CI/CD pipelines for Kubernetes in a no Code format.
Are you a DevOps? Even if you aren't, you must know that the job isn't a piece of cake! The DevOps team is not just responsible for deploying your application on a server, they are also setting up the other infrastructure including network, storage, databases.... the whole shebang!
And I still wonder why the DevOps teams are so small in size. Yeah, they just are a handful of people in every team. Brave ones, I must say.
The CI/CD Saga
With smaller projects, you can always get away with manual deployments. But for large-scale projects...... maybe not a good idea, huh? That's when CI/CD comes into the picture.
The idea is, once a new patch of code is in, it should be deployed automatically.
No "homo sapiens" involved in the process!
So you basically have a workflow or "pipeline" that is triggered which carries out all the steps required for deployment. Sounds good in theory. But ha! You'll need to code the pipeline (and make sure it works fine).
And of course, most of the time the DevOps team are the ones responsible for writing these CI/CD pipelines and maintaining them. But if the project scale grows, it might become a bit too much to handle.
The Kubernetes Angle
If CI/CD determines HOW to deploy, you also need to know WHERE to deploy.
Kubernetes is the current "hot" trend in the area right now. Think Container orchestration think Kubernetes! Be it the cloud or an on-premise setup...Set up a cluster with Kubernetes installed and start spinning up containers!
But the world of Kubernetes is huge. And deployments aren't always a smooth ride. Let's just say you have a cluster ready.....there are so many things you have to put together.
Look at the crude way of deploying things....create a bunch of yaml files for each of the resources and apply them. For example, to deploy a basic REST API service, you need to create resources such as deployment, a service, an ingress, etc. That's just the bare minimum you might need a few more. And each of these will require its own yaml files.
Are you really sure you want to handle so many yaml files?
The Monitoring Side
Then there's the fuss about monitoring and logging. You need to be sure your deployment is smooth and just in case things go south, you need to track the culprit down. Sure you got tools and applications for this. But how many tools will a poor human use!
In the end, the whole deployment process can be more time-consuming than development itself. But what if we had a platform to handle all this in one place. Without any code involved? That's how we came across Devtron.
Devtron is created as a one-stop solution for Kubernetes-based deployments. You have a handful of useful features that will make Kubernetes hassle-free. To try the solution out, we deployed a simple microservice application, and here are a few things we liked about it
Now I don't about you, but installing new software for me has always been a nightmare. I am prone to mess up with the steps during installation because of which I spend hours making things right later.
But this was pretty straightforward. You deploy with either helm or kubectl. We chose kubectl. We ran two to three commands and the rest was handled by the Devtron installer.
I ran everything, went out for a cup of coffee (installation takes some time) and when I came back, everything was up and running, ready to use for me!
No Code Deployments
This may be by far the best possible feature. You got a UI!
The Devtron Dashboard Interface has almost everything you need to ensure a seamless deployment using CI/CD.
We created and tested a basic CI/CD pipeline in minutes that too without writing a single line of code. All through a few button clicks!
GitOps and CI
For creating a generic CI workflow. All we had to do was punch in our Github repository link and credentials and set the deployment branch (master/main in our case)
Devtron automatically triggered the CI pipeline whenever a push operation took place on the deployment branch, built the docker image, and pushed it to our DockerHub registry (we had configured our DockerHub registry from the Devtron Dashboard)
One of the main needs for us was to deploy applications to multiple clusters (or cloud). We had two clusters set up, one on GCP which was our production environment, and the other on Linode for development (which also had Devtron running on it).
We used Devtron to deploy to both the clusters, with a single button click. We just had to add the cluster on Devtron. And the rest is history!
Logging and Monitoring
The entire Deployment process always throws curveballs at us and believe me trying to get to the root cause of the issue is an issue in itself. Sometimes, we have to go through our manifest files and helm charts. Sometimes, we have to look at the application logs. And in a few rare cases its the infrastructure thats the real culprit. You know....no memory....no storage...the usual...( we can't have pricey high compute clusters when we're on a budget you see).
For this, we kinda oscillate between different windows and platforms to search for the issue. The best thing about Devtron was we had it all in one place.
We could easily track the status of the deployments on the dashboard. If something went wrong we knew exactly where the error had occurred. The application logs, manifest files, deployment history and logs, and even metrics for the deployed can be viewed in one place.
One nifty feature that we liked was related to security. Scanning images for vulnerabilities is often done to ensure there is no security loophole in the docker image, especially during release. Earlier, we used to use separate tools or use AWS ECR to store our images which provided the image scanning feature.
Devtron enables image security scanning right after the CI process and even lists down the vulnerabilities with their severity. Moreover, you can even define your own security policies for these vulnerabilities.
We're going to tell you how to go about with Devtron. And for that, you'll have to head over to our next post, Kickstart with Devtron - II: The Setup. Get all warmed up folks!