Upgrade to Pro — share decks privately, control downloads, hide ads and more …

6 months with Concourse CI

Armakuni
December 01, 2015

6 months with Concourse CI

Lightning talk given at @londoncd on @concourseci by @pivotal http://www.meetup.com/London-Continuous-Delivery/events/223831175/

Armakuni

December 01, 2015
Tweet

More Decks by Armakuni

Other Decks in Technology

Transcript

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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!"]
  7. Credits Special thanks to all the people who made and

    released these awesome resources for free: ▪ Presentation template by SlidesCarnival ▪ Photographs by Unsplash