DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Last call! Secure your stack and shape the future! Help dev teams across the globe navigate their software supply chain security challenges.

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Releasing software shouldn't be stressful or risky. Learn how to leverage progressive delivery techniques to ensure safer deployments.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Related

  • AppOps with Kubernetes and Devtron - The Perfect Fit
  • Java CI/CD: From Local Build to Jenkins Continuous Integration
  • A Concise Guide to DevSecOps and Their Importance in CI/CD Pipeline
  • Using Azure DevOps Pipeline With Gopaddle for No-Code Kubernetes Deployments

Trending

  • The Cypress Edge: Next-Level Testing Strategies for React Developers
  • Unlocking Data with Language: Real-World Applications of Text-to-SQL Interfaces
  • Comprehensive Guide to Property-Based Testing in Go: Principles and Implementation
  • Blue Skies Ahead: An AI Case Study on LLM Use for a Graph Theory Related Application
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. DevOps and CI/CD
  4. Zero to Hero on Kubernetes With Devtron

Zero to Hero on Kubernetes With Devtron

Devtron is an open-source tool that pulls together a number of popular components to bootstrap a fully managed application delivery platform on Kubernetes.

By 
Yitaek Hwang user avatar
Yitaek Hwang
DZone Core CORE ·
Updated Apr. 22, 22 · Tutorial
Likes (6)
Comment
Save
Tweet
Share
8.7K Views

Join the DZone community and get the full member experience.

Join For Free

One of the hot keywords in the DevOps space is AppOps. As the DevOps ecosystem matures, the focus is shifting from automation and continuous delivery to enriching the developer experience. AppOps takes an app-centric approach to enable developers with self-service tools to develop, deploy, and operate applications on modern, cloud-native platforms. While we have seen a proliferation of great open-source tools to achieve parts of this goal in recent years, creating a seamless experience that spans over CI/CD, security, cost management, and observability remains a challenging task.

Devtron is an open-source tool that pulls together a number of popular components such as ArgoCD, Clair, external secrets, and minio to bootstrap a fully managed application delivery platform on Kubernetes. Underneath the hood, it leverages GitOps principles to create sample CI/CD pipelines, integrated with security scanning and observability tools via a slick application dashboard. For teams looking to adopt Kubernetes at scale, Devtron offers a quick way to provide developers and platform teams a way to onboard their applications onto Kubernetes without having to fumble with various YAML files and piecing together complex tools.

Devtron AppOps Comic

Image Credit: Devtron

Devtron Overview

Looking at the documentation for Devtron, it is clear that the creators of Devtron really wanted to create a no-code experience for deploying applications onto Kubernetes. After a simple installation via Helm 3 or kubectl with minimal setup instructions to configure a Git repository and container registry, users can access the main dashboard with information about the Kubernetes cluster and the deployed application.

Devtron Main Dashboard

Image Credit: Devtron

To deploy an application onto Devtron, we need to first give Devtron access to the Git repository where the source code and the Dockerfile are stored. Then we need to configure where the containers will be published to.

Giving Devtron Access to Git Repository

Next, we can configure the deployment templates. For those familiar with Kubernetes manifest or Helm charts, the YAML file pre-generated by Devtron will look very similar. Even if you are not familiar with Kubernetes syntax, the template is divided into self-explanatory sections such as environment variables, secrets, and resources.

Configuring Rollout Deployment Template in Devtron

The full list of configurable sections is listed on the rollout deployment section of the documentation. For DevOps or platform teams with some Kubernetes knowledge, more advanced settings such as affinity, disruption budgets, and Prometheus rules can be configured. Note that even though our application did not explicitly specify an envoy or Prometheus exporter sidecar, Devtron is adding opinionated templates to build in best practices on collecting metrics and logs.

Next, we can use a drag-and-drop editor to create a CI/CD pipeline. Like popular CI tools such as Jenkins and CircleCI, Devtron can be configured to trigger off a branch, PR, or tags. The default template includes a Docker build step, but you can also add a pre-build step to run unit or component tests and post-build steps to run integration tests if desired.

Creating CI Pipeline Options in Devtron

Image Credit: Devtron

The CD side is equally easy to configure. Click on the "+" button on the right side of the CI stages:

Configuring CD Side of Pipeline in Devtron

Image Credit: Devtron

Like the CI side, CD setup is broken down into three stages: pre-deployment, deployment, and post-deployment stage. These hooks can be leveraged for activities like DB schema migrations or triggering notifications. Since Devtron uses ArgoCD and Argo Rollouts underneath the hood, it supports various deployment strategies including recreating, canary, blue-green, and rolling updates.

After configuring the Git repo, container registry, and the CI/CD pipeline template, we can trigger the build and check out the "App Details" or "Build History" tab to see the progress and the build logs:

Post-Configuration Build Progress in Devtron

If you have enabled Application Metrics in the deployment template, you can also see default values for deployment frequency, change failure rate, mean lead time, and mean time to recovery built into the dashboard. Other metrics such as CPU/memory usage as well as throughput/latency for applicable servers are automatically captured:

Application Metrics Dashboard in Devtron

Image Credit: Devtron

Finally, Devtron bakes in security scanning and policy enforcement to the pipeline. The default installation of Devtron ships with Clair to automate container vulnerability scanning and integrates with Kubernetes webhooks to control what level of severity of a vulnerability is acceptable to be deployed into the cluster.

Setting Security Scenning and Policy Enforcement Options in Devtron

Image Credit: Devtron

Teams with existing DevOps tooling will notice that Devtron is heavily leveraging familiar open-source tools for each of these application delivery workflows. However, the power of Devtron isn't in any individual feature, but in how it packages the entire experience in a complete DevSecOps experience into a single platform. Instead of configuring CI on Gitlab/CircleCI, configuring scanning policies on Docker Hub or GCR, and deploying ArgoCD into the Kubernetes cluster, you can simply use Devtron's console to set up a GitOps-based delivery pipeline in one place.

This app-centric approach is better highlighted when you are trying to deploy an existing Helm chart. Devtron ships with popular Helm repositories (e.g., Bitnami, Elastic, Jetstack, etc.), and you can click on any of the Helm charts to bootstrap the GitOps pipelines. For example, if we want to deploy MySQL, Devtron will automatically configure your Git repo to work with ArgoCD format:

Deploying to Existing Helm Chart in Devtron

Devtron Deployment on GitHub

This is powerful for developers who want to simply deploy databases or Nginx/HAProxy to integrate with their application without having to learn about Helm or Kubernetes syntax.

Devtron Pros and Cons

Devtron makes some opinionated design choices about what a cloud-native, application delivery workflow should look like. It comes with pre-configured templates to automate the Docker build, publish, scan, and deploy process with some guardrails baked in. This makes for a great choice for teams struggling to manage all the Kubernetes tooling or looking to adopt Kubernetes workflows with minimal overhead. The console makes it easy for both developers and DevOps teams to onboard new applications in a repeatable manner.

The heavy focus on the console experience and the "no-code" approach, however, may not work for teams looking for a headless or terminal-based experience. If you are used to configuring pipelines via some YAML-based configuration file, using the console may feel limiting, especially if templating or bootstrapping tools are already built-in. However, as Devtron continues to mature, I expect the team to add better support for teams to easily migrate to Devtron without having to use the console for every operation.

Continuous Integration/Deployment Git Kubernetes application Docker (software) Pipeline (software) teams Template

Opinions expressed by DZone contributors are their own.

Related

  • AppOps with Kubernetes and Devtron - The Perfect Fit
  • Java CI/CD: From Local Build to Jenkins Continuous Integration
  • A Concise Guide to DevSecOps and Their Importance in CI/CD Pipeline
  • Using Azure DevOps Pipeline With Gopaddle for No-Code Kubernetes Deployments

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!