Deploying Software at GoCardless: Open-Sourcing our “Getting Started” Tutorial
Building a modern infrastructure stack is difficult, with a bewildering number of choices to be made. Some technologies complement each other, while others have very different philosophies: it’s easy to get lost.
To help those facing similar challenges, we’re open-sourcing our “Getting Started” tutorial, which is what we ask all GoCardless developers to follow during their onboarding.
Our stack consists of a number of technologies integrated into a framework we’ve optimistically named Utopia. It aims to help developers build, deploy and operate their services, and leverages:
- Kubernetes, the compute platform
- Jsonnet with Ksonnet libraries for templating Kubernetes manifests
- Utopia Jsonnet library, to encourage consistent deployment patterns
utopiabinary, providing commands to operate services
- Tight integration with our service registry
- Config Connector, to provision GCP resources through Kubernetes
- Tekton, for deployment pipelines
- ArgoCD, for application deployment
Taking about one afternoon, the tutorial has new joiners install their tools, then configure and deploy a small service into a playground Kubernetes cluster.
While people outside of GoCardless won’t be able to run it themselves, it gives a detailed picture of how the technologies work together. As a bonus, you get a sense of how we build infrastructure, and our bar for accompanying documentation.
We hope you find it useful!
Core Infrastructure Team (@GoCardlessEng)
GoCardless has grown a lot in the past few years. When considered from the perspective of an SRE, there have been huge changes:
- We migrated our entire infrastructure estate from SoftLayer (bare metal machines, rented) into Google Cloud Platform
- Our technical challenges have grown with our 10x in payment volumnes
- We went from 20 full-time engineers to >100, and counting!
With our latest $95m funding round, we’re about to grow even faster than we’ve done before.