Skip to content

Commit

Permalink
expand and reorder tekton, argo
Browse files Browse the repository at this point in the history
  • Loading branch information
Daniel Jones committed Jan 13, 2022
1 parent 7f11768 commit a479e2c
Showing 1 changed file with 27 additions and 23 deletions.
50 changes: 27 additions & 23 deletions content/blog/ci-shootout-conclusion.md
Original file line number Diff line number Diff line change
Expand Up @@ -238,16 +238,40 @@ It is difficult to recommend any new installs of Jenkins. Most competitors are b
>
> * have a choice
## Tekton and Argo Workflows commonalities

Both systems have a lot in common, so let's discuss the design constraints that they share before considering them in isolation. They really are very similar, and you'll be able to achieve similar outcomes with either.

### Kubernetes-only

Tekton and Argo Workflows are both Kubernetes-native, which means they get to leverage a great container scheduler by default, and are built using modern paradigms.

There's one obvious problem with being Kubernetes-based though - what happens if you don't have a Kubernetes cluster? What if you're writing a pipeline to _create_ a Kubes cluster?

I've genuinely been in a conversation with platform engineers who have never known a world before Kubernetes, who are mystified how to do CI without a Kubernetes cluster.

### Webhooks, public internet access

Neither Tekton nor Argo Workflows make it easy to poll external _things_ (eg Git repos, S3 buckets, FTP servers...), and instead the Kubernetes cluster running these systems need to be addressable from where-ever your code lives. If you're hosting code on public GitHub, then that means your cluster needs to be reachable from the outside world.

This isn't really feasible in an air-gapped, regulated environment like a bank.

### Single entry point

Tekton and Argo Workflows pipelines can only be triggered for one reason - a single code repository changing. If you have lots of reasons for a build to happen (perhaps you're integrating many upstream releases) then you're going to have to do a lot of work to stitch many jobs and pipelines together.

## Tekton

Tekton gives the impression of a set of building blocks from which more productive CI/CD solutions can be made. There's flexibility to be had here, but the low level of abstraction means there are lots of building blocks to put together.

### Tekton Hub

Tekton hub is a great idea. As anyone who's spent a few years in the industry will tell you, most CI pipelines end up repeating a lot of simple but error-prone tasks. Being able to leverage those from the community is great, and should be a productivity boon.

> ### Use Tekton if you:
>
> * are building a higher level of abstraction
> * want to get started quickly
> * have bespoke needs, and want to craft your own CI/CD system
> * use Slack alerting rather than a build monitor
>
> ### Don't use Tekton when you:
Expand All @@ -259,6 +283,8 @@ Tekton hub is a great idea. As anyone who's spent a few years in the industry wi
## Argo Workflows

The suite of Argo components combine to make provide a higher level of abstraction than Tekton.

> ### Use Argo Workflows if you:
>
> * want to get started quickly
Expand All @@ -270,28 +296,6 @@ Tekton hub is a great idea. As anyone who's spent a few years in the industry wi
> * cannot use webhooks
> * need to trigger builds for multiple reasons
## Tekton and Argo Workflows commonalities

Both systems have a lot in common, so it makes sense to address those together.

### Kubernetes-only

Tekton and Argo Workflows are both Kubernetes-native, which means they get to leverage a great container scheduler by default, and are built using modern paradigms.

There's one obvious problem with being Kubernetes-based though - what happens if you don't have a Kubernetes cluster? What if you're writing a pipeline to _create_ a Kubes cluster?

I've genuinely been in a conversation with platform engineers who have never known a world before Kubernetes, who are mystified how to do CI without a Kubernetes cluster.

### Webhooks, public internet access

Neither Tekton nor Argo Workflows make it easy to poll external _things_ (eg Git repos, S3 buckets, FTP servers...), and instead the Kubernetes cluster running these systems need to be addressable from where-ever your code lives. If you're hosting code on public GitHub, then that means your cluster needs to be reachable from the outside world.

This isn't really feasible in an air-gapped, regulated environment like a bank.

### Single entry point

Tekton and Argo Workflows pipelines can only be triggered for one reason - a single code repository changing. If you have lots of reasons for a build to happen (perhaps you're integrating many upstream releases) then you're going to have to do a lot of work to stitch many jobs and pipelines together.

## Concourse

### Single pane of glass
Expand Down

0 comments on commit a479e2c

Please sign in to comment.