Empowering Developers With Deployments
Published: 2022-11-04 02:33:27

Kubenetes has been one of the most adopted technologies in the last couple of years. According to the [2021 Cloud Native Survey](https://www.cncf.io/reports/cncf-annual-survey-2021/) conducted by “The Cloud Native Computing Foundation” where they received around 3,829 response overall, around 96% of the organization are using/evaluating Kubernetes. According to SlashData reports, there are 5.6 million developers using Kubernetes worldwide, representing 31% of all backend developers.

But, Is Kubernetes a forte of Developers?

The answer is No! Developers are not meant to learn Kubernetes concepts, commands, etc  and deploy their applications over Kubernetes. Enforcing developers to do what they are not meant to be doing may results in -

- Delayed delivery of applications
- Decreased productivity
- Unnecessary Stress & Burnouts
Now the question arises, how to empower developers with Kubernetes deployments?

## Can Developers Deploy on Kubernetes?
Yes, Developers can deploy on Kubernetes!

Developers require an abstraction over the infrastructure layer, which should be a unified platform where they can deploy their code in different environments without being proficient in the domain. The platform should have the following features to empower Developers with deployments -

- Unified Dashboard for all the operations
- Debugging & Observibility capabilities
- Handy enough to operate with no/bare-min knowledge in k8s
- Capability to build images from multiple branches, tags, PR, etc
- Easy to integrate and run test cases, check code quality, etc
- Deploy on multiple environments without writing/learning k8s manifests
- Quick CI/CD setup
These are some of the features that a platform should have to empower their Developers. With these abstractions, a developer only needs to know about the branches on which he/she is working, and the rest of the thing will be handled by the platform itself.

Now the another question arises, why exactly we need such a platform when you already have Kubernetes CLI and dashboards?

## Why a Unified Platform?
When it comes to deploying your application quickly to a production or dev environment, then Kubernetes makes it really complex to handle that.

For e.g. say you're a developer, and you are working on an application, for testing this out you may need a lot of things to be set in prior.

Here are some the things you'll need -

- A Dockerfile in order to containerize your application
- You need to push that container image to a registry
- You will create a pod or deployment manifest for Kubernetes
- You will apply those manifest in your cluster with kubectl
- You will expose those deployments application with the help of a service
- Sometimes if you're working with manifests then it may grow in complexity when you start including probes like startup, readiness, and liveness probes.
This all sounds easy to perform, but in between if anyone of the steps gets broken then the whole cycle will be messed up. You need everything in between to work properly, and then only you will be able to see your application on a given port. Infact, before going ahead with these steps, you should be proficient in kubernets concepts, container registries and cloud concepts which is again not a forte of developers.

These are the certain things that a developer don’t know and learning all these things will take a lot of time which will effect the entire software development process. Now how do we streamline the process? Which platform you can use to improve the productivity?

The answer is Devtron! It is a CI/CD platform for kubernetes that helps you build, test, deploy and debug your applications across the software development lifecycle.

## Simplifying Kubernetes Deployments with Devtron
Generally, Developers write their code on their favourite editor, and they will automate the testing covering the edge cases. For testing across the organization one needs to set up automated testing so that whenever a new commit is pushed, the automated testing gets triggered.

Devtron greatly simplifies the automated testing for developers. They can easily configure it while creating a build pipeline using the pre-build stage, during build stage and post build stage. Devtron comes with some default plugins such as **k6** for load testing, **Sonarqube** for code-quality check, etc. For more details about the plugins, please refer to documentation.


![Devtron Prebuild](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/57ec9kxuf4hew83uy1ex.png)

With Devtron, developers can easily deploy on the top of Kubernetes cluster with the help of an intuitive Devtron dashboard. It allows you to easily build, test, deploy and debug your applications through the Devtron interface itself. Apart from these, it also provides you a lot of flexibility to easily integrate any of your existing stacks like Kibana for logs, with applications deploy through Devtron.

The main benefit here is that you don't have to worry about Kubernetes manifests.

Most of the time, a developer who writes code and working on a feature doesn't want/don't know how to write a Kubernetes manifest. Devtron simplifies deployments with ready-to-deploy templates that can be easily configured by the developer just by tweaking some values as per the need and ready to go. To know more about the Deployment Template, feel free to checkout the [documentation.](https://docs.devtron.ai/usage/applications/creating-application/ci-pipeline/ci-build-pre-post-plugins)

Pro-tip: You don’t have to be an expert with yamls and k8s configs as Devtron provides you the README of the template where you can learn about all the parameters and how to use it.

![Helm README](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uhjfzcaoy6u02qsmzhfb.png)


## What about Debugging & Logging?
One of the most important feature that a platform can offer is the ability to debug and check-out the logs in real time. With Devtron, it becomes really easy to check-out the logs of microservices deployed or helm charts deployed. It comes with a default log analyser which helps you to checkout the combined logs of a particular k8s resource.

Devtron also empowers you to easily debug your applications with the features such as - **exec into containers**, **check out events**, **logs of per pods**, **application metrics**, etc. Here’s a quick sneak-peak into the debugging capabilities of Devtron.

### Observability:
It enables you to easily checkout the **CPU usages**, **Memory usages**, Throughput and Latency of the microservices. For more detailed information of the k8s workloads, just hover into the resource and you would be able to see the options for Manifest, Events, Logs and Terminal.

![Devtron Observability](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m2f7z279r67k7bfk9kcj.png)

To expand the details, just click on any of the options available and you will able to see the entire manifest of the pod, or events if any. Logs of the pod and also Devtron enables you to easily get into the container and debug the applications for any issues.

### Kubernetes Manifest:

![Kubernetes Manifest](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h2j1co7paq1zdbd4r61e.png)

### Exec into Container:

![container exec](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2jaqcawf5fhlm91arie8.png)

So these are some of the functionalities of Devtron that can help you empower your Developers with k8s Deployments. There are a lot more features that Devtron offers to manage the entire software development lifecycle, helping out Developers and DevOps to accelerate their journey of k8s and improve their productivity.

For more insights on how to deploy an application with Devtron, please have a read of [this](https://devtron.ai/blog/how-to-deploy-mern-stack-over-kubernetes/). Feel free to checkout [Devtron](https://devtron.ai/blog/empowering-developers-with-kubernetes-deployments/github.com/devtron-labs/devtron) and join the [discord community](https://discord.devtron.ai/) for latest updates.