JFrog & Harness – Don’t Get Bogged Down with Continuous Delivery

Harness, a company that provides a Continuous Delivery as-a-Service platform, automates CD with machine learning and security. In this guest post, Stephen Burton, VP Marketing offers a primer on how customers use Artifactory, XRay and Harness together to accelerate Continuous Delivery. This post, also published on Harness.io, has been lightly edited from the original to comply with style.

Everyone is doing CI/CD these days. If you attend any DevOps conference you’ll notice two things: 1) lots of teams claiming to do ten billion deployments a day and 2) lots of vendors claiming to help enable ten billion deployments a day.

The truth is, Continuous Delivery is often misunderstood, and it’s very much a problem that remains unsolved for the masses.

“Nonsense, we’ve built our own CI/CD process/platform,” I hear you say, and that’s the problem. Nearly everyone has tried to build it themselves.

The normal recipe is Jenkins plus several hundred thousand lines of BASH scripts (aka jobs). That’s a great way to make your production deployment…croak.

Continuous Integration != Continuous Delivery

Taking code to artifact (Continuous Integration) has largely been solved by CI servers like Jenkins, and JFrog has been a pioneer and leader in how those artifacts are managed.

Despite lots of innovation in infrastructure automation technologies and frameworks like Ansible/Terraform, taking artifacts into production still remains a complex, manual and painful process if you build it with Jenkins or a similar tool.

Deployment scripting is not automation. Why? Because deployment scripts change more frequently than Tesla’s stock price. This is not automation; it’s called software maintenance.

It’s also still not uncommon for deployment pipelines to be babysat by a team of DevOps engineers. Truly enabling developers to deploy and test on their own remains a massive challenge, both from a capability and governance perspective.

Continuous Delivery As-A-Service with Harness and JFrog

At Harness, we’re trying to solve Continuous Delivery by offering it as a turnkey service for DevOps and developers.

Harness integrates with your cloud stack and tools in minutes. Then you can build dynamic deployment pipelines to promote artifacts across your environments.

In that journey, our JFrog story and integration has been critical. In fact, we recently supported one of the largest Artifactory implementations on the planet (~1 PB). Below is a quick primer on how you can integrate JFrog into your deployment pipelines.

Configuring Artifactory with Harness

First thing you need to do is register your Artifactory instance(s) inside Harness.

To do this, goto: Setup > Connectors > Artifact Servers > Add Artifact Server

Now enter your Artifactory URL, username and password.

Optional: you can also place usage restrictions on your Artifactories. E.g. Artifactory A can only be used for Application X and Environment D, E and F.

Creating Apps/Services Based on Artifactory Artifacts

With Artifactory now integrated you can start to define your application and service hierarchy in Harness.

Let’s create a simple microservice using Artifactory.

Goto: Setup > Your App > Services > Add Service

Give your service a name and select ‘Docker’ as the artifact type.

Now, click ‘Add Artifact Source

Now point Harness to your Artifactory Server, Repository and Image Name:

That’s it — Harness will now automatically version control every new artifact build or version from your Artifactory instance:

Building Your First Deployment Pipeline (with Xray)

With your service artifacts now defined inside Harness, you can build deployment workflows and pipelines in minutes.

Goto: Setup > Your Application > Workflows > Create Workflow

For example, we can build a 3-phase canary deployment workflow to deploy our new microservice that starts with a JFrog Xray security scan on the container artifact:

To integrate JFrog Xray simply click ‘Add Step’ under the ‘Pre-deployment Steps’ section. Choose ‘HTTP’ and create a webhook to Xray that references the ${artifact.displayName} and ${artifact.artifactPath} within your workflow. That’s it!

When this deployment workflow (or pipeline) is kicked off, you can watch all these deployment steps execute in real time, with full insight into console output and logs.

With JFrog and Harness, it’s now possible to create end-to-end deployment pipelines in minutes using your artifact repository as the source/trigger.

For more information and a free trial of Harness, visit www.harness.io.