Kubernetes requires a new approach to continuous delivery
Adopt a solution that codifies Kubernetes-native CD practices.
Why Not Jenkins?
When moving to Kubernetes, many would default to Jenkins for CI/CD. After all, teams are already familiar with it.
In choosing K8S you are likely looking to benefit from consistency and repeatability that typically comes with an opinionated standard. Jenkins, maybe a standard, but is the opposite of opinionated. Jenkins instances are often snowflakes comprised of many diverse plug-ins. Lack of consistency in build process is the #1 complaint of Jenkins users. Failing to reboot your build and deployment infrastructure with an opinionated Kubernetes native system kills the very benefits one looks to achieve when standardizing on Kubernetes.
Container-Native Best Practices
Immutable definitions for build and deploy process, stored and versioned in Git
You can think of Concourse as a tool that enables you to codify your build and deployment pipelines into a distributed, continuously running makefile.
Everything is based on three key abstractions: resources, tasks and jobs. Using these abstractions, a pipeline is defined as a clean, immutable dependency graph that continuously pushes your project forward, from source code to production.
Consistency through stateless, container-based builds
Everything runs in containers, ensuring a clean environment on every run. Each task specifies its own image, giving it full control over its dependencies, rather than managing them on your workers. This approach results in build and deployment tasks that are reproducible and easy to debug.
Integrate with external systems without plug-in hell
Instead of relying on a complex plugin-in system, Concourse has a single strong abstraction for dealing with external resources.
For example, in integrating with Git, Concourse knows nothing about Git. Instead it comes with a git resource type implemented as container images, containing scripts that can be fetched from an artifact repository.
Simple yet effective pipeline visualization
Pipeline configuration defined as code is automatically visualized in the web UI. Failed stages are displayed bright red. With a single click you can get to the code and see why things are failing.