Skip to main content

Harness

Harness

Official Documentation

Google and ServiceNOW are the main investors in Harness. Many companies such as C6 Bank, Localiza, 3M, Ebay, Nike, Vodafone, Nvidia, and even NASA use this tool.

Actually, Harness is a platform that encompasses much more than just CI/CD for building and pushing artifacts. The tool's idea is to create a DevOps lifecycle that abstracts the entire pipeline, including:

  • Governance
  • Audit
  • Security
  • SRE
  • Development
  • Quality

Harness has several features that you may or may not use, allowing you to grow within the platform as needed.

It's possible to do everything Harness offers using open source tools and applying them within pipelines at different stages. However, not all companies have qualified people and budget to develop and maintain a huge pipeline that could exist. Sometimes the company even has it but prefers to outsource and avoid so much training in the onboarding of new employees, especially since turnover in the IT market is very high.

The main focus is on developer experience, so they can deliver work as quickly as possible while avoiding all the process bureaucracy.

To facilitate this dynamic, there are even ready-made templates with pipelines for developers to use and avoid many configurations, allowing them to start coding quickly.

Within the Harness platform, you'll have a code repository which is the Gitness project. This is open source and can be deployed to have your own git repository if desired, similar to GitLab but lighter.

Licenses​

Since the license changes, it's good to check the official documentation.

It's not open source but has a free account for small projects and study. Create your account to study.

Developer is the group of people who contribute to development, deployment, security, and code optimization. Each developer created in your account will have direct access to Harness's main modules.

The modules are integral to a developer's daily workflow. Each module (CODE, CI, FF, SEI, IDP) requires a separate developer license for each user.

Just warning you that it's not very cheap!

Modules​

As mentioned above, it's not necessary to start using all modules, you can grow as needed.

Below are some modules worth commenting on, but there are others.

Continuous Delivery and GitOps​

Designed to automate and manage the software delivery process, from development to production.

  • Visual and configurable pipelines to facilitate automation
  • Deployment to various infrastructures such as Kubernetes, VMs, and services offered by major clouds
  • Integration with Terraform and Ansible
  • Automated rollback in case of deployment failures
  • Configurable approval flows to ensure only reviewed code reaches production
  • Release management with visibility over what's being deployed in each environment
  • Integration with major monitoring and logging tools like Prometheus, Splunk, etc.
  • Metrics collection for continuous application evaluation
  • In the case of GitOps, traceability of changes
  • Continuous reconciliation to compare current state with desired state
  • Easy commit reversion to previous states and complete change history for auditing

Continuous Integration (CI)​

Offers a series of resources to optimize the continuous integration process in a software development environment.

  • Build and test automation
  • Integration with code repositories like GitHub, GitLab, and Bitbucket, allowing automatic detection of changes and execution of CI pipelines
  • Resource usage optimization and speed at large scale for builds and tests
  • Integration with various DevOps world tools including Harness's own
  • Graphical interface for configuring and managing pipelines, facilitating creation and maintenance

Feature Flags (FF)​

  • Helps control releases for specific users or user groups
  • Segmentation based on attributes like location, app version, user type, etc.
  • Canary and blue-green deployments
  • Tests to compare different versions of a feature and determine which offers better performance and acceptance
  • Rollbacks or disabling functionality in case of negative feedback
  • Monitoring the impact of new features through integrated metrics and reports that can help future decisions

Infrastructure as Code Management​

The module allows you to define, generate, and manage your infrastructure using code, promoting a more consistent and replicable approach to infrastructure management. You can use tools like Terraform, Ansible, or CloudFormation to define the desired infrastructure.

  • Provides visibility into your infrastructure state and IaC deployment results with real-time dashboards and reports
  • Infrastructure security verification, ensuring configurations comply with your organization's security policies and best practices
  • Integrates with Continuous Delivery, allowing you to combine infrastructure management with continuous delivery pipelines, helping ensure infrastructure is always aligned with application code
  • Helps monitor and optimize resource usage and costs associated with infrastructure, helping keep the budget under control

Chaos Engineering​

Focused on improving system resilience and reliability through controlled introduction of failures and anomalies

  • Simulation of failures and problems in production or test environments to verify how the system responds to adverse conditions
  • Facilitates the creation and execution of chaos experiments in a controlled way, where you can define which parts of the system will be impacted and which failures will be introduced
  • Integrates with CI/CD pipelines, allowing you to add chaos tests as part of the continuous delivery process
  • Monitoring and analyzing the impact of chaos experiments. You can visualize system behavior during and after test execution, helping understand the effectiveness of implemented resilience strategies
  • Allows automating and scheduling chaos experiments to occur regularly or at specific times so the system is tested continuously and resilience is constantly verified
  • Provides detailed reports and insights on the impact of chaos experiments
  • Integrates with other tools and platforms

Service Reliability Management​

Focuses on ensuring service reliability and performance in production environments.

  • Offers resources to monitor service health and performance in real-time. This includes collection and analysis of metrics, logs, and traces to quickly identify and diagnose problems
  • Allows defining and monitoring Service Level Agreements (SLAs) and Service Level Objectives (SLOs). You can configure performance and availability goals, and the module helps ensure these objectives are met
  • Alerts and notifications to inform teams about critical issues or events that may impact service reliability
  • Facilitates incident analysis and management. Provides tools to document, investigate, and resolve issues, as well as offering insights into root cause and corrective measures
  • Integrates with automation mechanisms to automatically resolve common or recurring problems, reducing the need for manual intervention and speeding recovery
  • Detailed dashboards and reports on service performance and reliability status
  • Continuous Improvement: Helps identify areas for continuous improvements in service reliability, through analysis of historical data and service performance over time

Reflection​

Many open source tools together perfectly meet what Harness proposes, but there comes a time when complexity becomes so high that many companies look for a solution as a service to give developers more facilities or decide to develop their own development platform with a platform engineering team.

The developer expects to make a commit to the code, open a pull request, and have that code delivered with quality, governance, security, all integrated tests.

Whether using this tool or not, remember this: For DevOps, the developer is the customer! One way or another, we have to focus on developer experience.