Home Explore Blog CI



kubernetes

1st chunk of `content/en/blog/_posts/2016-07-00-Automation-Platform-At-Wercker-With-Kubernetes.md`
b8c2ce7bcc3d8eea8a8537c0dee65add37a527dd1fcfbc83000000010000076b
---
title: " Steering an Automation Platform at Wercker with Kubernetes "
date: 2016-07-15
slug: automation-platform-at-wercker-with-kubernetes
url: /blog/2016/07/Automation-Platform-At-Wercker-With-Kubernetes
author: >
  Andy Smith (Wercker)
---

At [Wercker](http://wercker.com/) we run millions of containers that execute our users’ CI/CD jobs. The vast majority of them are ephemeral and only last as long as builds, tests and deploys take to run, the rest are ephemeral, too -- aren't we all --, but tend to last a bit longer and run our infrastructure. As we are running many containers across many nodes, we were in need of a highly scalable scheduler that would make our lives easier, and as such, decided to implement Kubernetes.  

Wercker is a container-centric automation platform that helps developers build, test and deploy their applications. We support any number of pipelines, ranging from building code, testing API-contracts between microservices, to pushing containers to registries, and deploying to schedulers. All of these pipeline jobs run inside Docker containers and each artifact can be a Docker container.  

And of course we use Wercker to build Wercker, and deploy itself onto Kubernetes!  

**Overview**  

Because we are a platform for running multi-service cloud-native code we've made many design decisions around isolation. On the base level we use [CoreOS](http://coreos.com/) and [cloud-init](https://coreos.com/os/docs/latest/cloud-config.html) to bootstrap a cluster of heterogeneous nodes which I have named Patricians, Peasants, as well as controller nodes that don't have a cool name and are just called Controllers. Maybe we should switch to Constables.  


 ![k8s-architecture.jpg](https://lh5.googleusercontent.com/i_Gtd1J9dekCxy7jJYZDZX0XmAmGD4f8qhrYG60FdVqnM87l-si44BGHjFdEFACZcx2E-rgRZNxuvniYDninlHAl9ZHyF2-jJjKUl-QQH8Au29hwVTbnDc0tP1Rv_Yd8mvt1tfoX)

Title: Wercker's Automation Platform on Kubernetes
Summary
Wercker uses Kubernetes to run millions of containers for CI/CD jobs. Wercker is a container-centric automation platform that allows users to build, test, and deploy applications. They use CoreOS and cloud-init to bootstrap a cluster of heterogeneous nodes.