Introduction and Setting Up Devtron

Introduction and Setting Up Devtron

25 February 2022
kubernetes
devtron

Get to know about Devtron tool and how to set it up in a Kubernetes cluster

Nowadays, Kubernetes has been widely used as an orchestrator and multiple open-source tools can be integrated with it for monitoring, debugging, automating workflows, and so on. But using and managing all these tools together with Kubernetes is difficult. So, to solve this problem, the Devtron tool can be used.

In this hands-on lab, we will be going to explore and learn about Devtron deeply, and later on, we will see how to set it up in a Kubernetes cluster.

Lab Setup

You can start the lab setup by clicking on the Lab Setup button on the right side of the screen. Please note that there are app-specific URLs exposed specifically for the hands-on lab purpose.

Our lab has been set up with all necessary tools like base OS (Ubuntu), and developer tools like Git, Vim, wget, and others. 

About Devtron

Devtron is an open-source tool that provides No-Code Software-as-a-Service (SaaS) experience for creating and managing software delivery workflows for Kubernetes. It easily integrates with multiple open-source tools like ArgoCD, Helm, Prometheus, and so on to provide and build an ecosystem for Kubernetes software delivery workflows and give ease of experience in managing all. 

Figure 1: Devtron dashboard (Credit: https://docs.devtron.ai/#devtron)
Figure 1: Devtron dashboard (Credit: https://docs.devtron.ai/#devtron)

But now the question is, apart from getting seamless experience of managing various open-source tools through Devtron, why should one use this and what other features does it have?

Devtron: Why use it

Managing various open-source tools with Kubernetes is not an easy task as these tools don’t interact with each other for managing various aspects of the application lifecycle like security, cost, observability, stabilization, CI/CD.

Devtron is introduced as it provides a uniform interface and a seamless experience, integrated with various popular open-source tools across the entire life cycle in an isolated way. Along with this, it also focuses on user experience by providing a self-serve model, able to handle security, cost, stability in a unified way.

The different open-source tools that Devtron comprises are as follows:

  • Grafana: It allows to query, visualize and understand the metrics through beautiful dashboards.
  • Flux: A tool that helps Kubernetes clusters to be in sync with sources of configuration like git repositories.
  • Argo: A tool that helps Kubernetes to run workflows and do GitOps in the right way. 
  • Clair: A tool for scanning vulnerabilities in application containers such as Docker.
  • Keda: An event-driven auto-scaler based on Kubernetes which works with HPA.
  • Elastic: It is a set of tools that creates a data management platform that allows doing the monitoring, logging, observability, and analysis.
  • Helm: It is a package manager for Kubernetes applications.
Figure 2: Different open-source tools integrated with Devtron
Figure 2: Different open-source tools integrated with Devtron

Features of Devtron

Following are the features of Devtron:

No code software delivery workflow for Kubernetes

  •  Workflows that helps in managing Kubernetes, testing, and other operations without writing any scripts.
  • Giving ease of reusable and connected components so that workflows are easy to construct and manage.

Multi-cloud deployment

  • With one Devtron setup, one can deploy applications and workflows to multiple Kubernetes clusters on multiple cloud platforms and on-premises

Easy DevSecOps(development, security, and operations) integration

  • Provides multi-level security through policies at global, cluster, environment, and application levels.
  • Comes with a behavior-driven security policy.
  • It also defines policies and exceptions for Kubernetes resources and events.

Dashboard for application debugging

  • Provides application metrics such as CPU, RAM, HTTP status code, and latencies comparisons
  • Access all manifests in a secure way
  • Advanced logging with grep and JSON search
  • For the faster resolution of issues, a smart correlation between events and logs.
  • Easy to see and observe all Kubernetes events
  • Auto issue identification 

Compliance and security

  • Provide fine-grained access control like who can deploy and who can edit configurations
  • Generates audit logs to know who did what and when
  • Keeps a record and history of all CI/CD events
  • Give details about the Kubernetes and cloud events and their impact on applications
  • Provide advanced workflow policies such as branch environment relationships to build and secure the deployment pipelines.

GitOps(Git Operations)

  • Makes GitOps easy through API and UI without intervening it through git CLI.
  • Backing it up by Postgres for easier analysis and enforcing more access control than git.

Operational insights

  • Generates audit logs to know the cause of failure
  • Deployment metrics to measure agile process success and failure by capturing mttr, change failure rate, deployment frequency, and deployment size out of the box.
  • Monitoring changes across the deployments and reverting them easily if needed.

Cost Management

  • Resource optimization through HPA(Horizontal Pod Autoscaler)
  • Optimizing cluster through unused resource management
  • Giving complete insights into the cost of the cluster, environment, and applications.

Installation of Devtron

Devtron is installed in a Kubernetes cluster in various ways. In this hands-on lab, we will be going to install Devtron without any integrations through the Helm package manager for Kubernetes, and then through Devtron Dashboard, we will be integrating more functionalities to the Devtron stack.

As we triggered the lab through the LAB SETUP button, a terminal, and an IDE comes for us which already have a Kubernetes cluster running in it. This can be checked by knowing about cluster nodes.

kubectl get nodes -o wide

Helm Installation

As we have a cluster running now, let’s install Helm by running the following commands

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

To verify the Helm installation, check its version.

helm version

Devtron Installation

  • Installing Devtron without any integrations through Helm along with its default configurations
helm repo add devtron https://helm.devtron.ai
helm install devtron devtron/devtron-operator --create-namespace --namespace devtroncd

This will starts the Devtron-operator which will spin up all the Devtron microservices in a few minutes in a devtroncd namespace.

  • Check the different microservices Devtron comes with, and for this check, its pods and services running inside the devtroncd namespace.
kubectl get pods -n devtroncd
kubectl get svc -n devtroncd

Accessing Devtron Dashboard

Once the Devtron installation gets finished, access the Devtron dashboard by exposing it through a NodePort service

  • Run the following command which will expose the devtron-service running inside the devtroncd namespace to NodePort service via a 30000 port.
kubectl patch -n devtroncd svc devtron-service -p '{"spec": {"ports": [{"port": 80,"targetPort": "devtron","protocol": "TCP","name": "devtron","nodePort": 30000}],"type": "NodePort","selector": {"app": "devtron"}}}'
  • Verify the patch on devtron-service running in devtroncd namespace.
kubectl get svc -n devtroncd

At this moment, the Devtron dashboard can be accessed through the devtronui URL under the Lab-URLs section.

  • To login as an admin into the Devtron dashboard, it needs credentials. Use admin as a username and for password run the following command
kubectl -n devtroncd get secret devtron-secret -o jsonpath='{.data.ACD_PASSWORD}' | base64 -d

Copy the generated password and use it to log in to the dashboard.

Yay!! Now you are inside the Devtron dashboard. Now we will be adding Devtron integrations to enhance the functionality of Devtron.

Devtron Integrations

These integrations will help development teams to automate the build and deployment process, maintaining code quality and improving security.

Figure 3: Devtron Stack Manager
Figure 3: Devtron Stack Manager

Installation

  • On the Devtron Stack Manager > Discover page, select the Build and Deploy (CI/CD) integration.
  • On the Discover integrations/Build and Deploy (CI/CD) page, select Install.
  • A list of installed integrations can be viewed on the Devtron Stack Manager > Installed page.
Figure 4: Installing Integrations in Devtron with Devtron Stack Manager
Figure 4: Installing Integrations in Devtron with Devtron Stack Manager

Conclusion

In this hands-on lab, we saw what Devtron is with its features and saw how to set it up and access its dashboard and add integrations to it.

How likely are you going to recommend this lab to your friends or colleagues?

Unlikely
Likely

Leave a comment:

About the Authors

Oshi Gupta

Oshi Gupta

DevOps Engineer & Technical Writer, CloudYuga

Oshi Gupta is currently working as DevOps Engineer and Technical Writer at CloudYuga. She is working on Kubernetes and different cloud-native technologies.

Neependra Khare

Neependra Khare

Founder and Principal Consultant at CloudYuga

Neependra Khare is the Founder and Principal Consultant at CloudYuga. He is an CNCF Ambassador and Certified Kubernetes Administrator. He co-authored the CNCF's official Introduction to Kubernetes course on Edx, which is now taken by more that 170000 users, around the world.