Slide 1

Slide 1 text

Concourse CI 6 months in

Slide 2

Slide 2 text

Problems ▪ Chef & Jenkins Job Builder : : Code to manage, difficult development process ▪ Pipeline configuration : : No first-class pipeline support ▪ Performance & Cost : : Hard to scale vertically or horizontally ▪ Environment parity : : CI & local differences ▪ Usability : : Overly complicated GUIs and visualisations

Slide 3

Slide 3 text

Wishlist ▪ Configurable : : Store in Git, apply quickly, local development ▪ Unpolluted builds : : Previous tests don’t affect subsequent tests ▪ Platforms & Code : : Easily test [PaaS] platforms and app code ▪ Scaleable : : Scale to save money or increase performance ▪ Usable : : Consistent builds and simple GUI

Slide 4

Slide 4 text

Concourse CI Stuff you’ll like Simple Concourse is a response to the complexity introduced by other systems. It is built on the idea that the best tools can be learned in one sitting. Usable Concourse is optimized for quickly navigating to the pages you most care about. A single click takes you from a pipeline view to the log of a job's latest failing build. Isolated Builds Build pollution is a constant threat, and the workers have to constantly be tweaked to make sure they're providing the right things for every build. Scalable, reproducible No Concourse deployment is a snowflake. There are no boxes to check; no config happens at runtime. Performance & Cost Easily horizontally scalable using BOSH to add worker nodes; Nodes can be destroyed out of hours Local iteration No more: push, build fails. Fix config, push, build fails... 20 commits later, a green dot and a messy repo history

Slide 5

Slide 5 text

Concourse CI What you might miss Plugins Being able to configure a gazillion plugins Runtime configuration Change the environment at build time Click-click-clicking Being able to use a GUI to configure build Not knowing BOSH Great tool, but takes some up-skilling Not knowing Docker Docker is key and you’ll need a good workflow to manage build environments Speed Isolated builds can be slower to initialise e.g. bundle install

Slide 6

Slide 6 text

Getting Started Vagrant & fly Vagrant 3 minute Configuration 1 second View Up to you $ vagrant init concourse/lite $ vagrant up $ fly set-pipeline -p really-cool-pipeline -c pipeline.yml http://192.168.100.4:8080

Slide 7

Slide 7 text

Configuration YAML & Docker jobs: - name: hello-world plan: - get: hello-world-git-repo - task: say-hello inputs: - name: hello-world-git-repo config: platform: linux image: "docker:///ubuntu" run: path: echo args: ["Hello, world!"]

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Give it a go? @bendodd @armakuni_uk http://concourse.ci/getting-started.html

Slide 12

Slide 12 text

Credits Special thanks to all the people who made and released these awesome resources for free: ▪ Presentation template by SlidesCarnival ▪ Photographs by Unsplash