Continuous Deployment - Developers Conference Hamburg #dchh
Upcoming SlideShare
Loading in...5
×
 

Continuous Deployment - Developers Conference Hamburg #dchh

on

  • 1,041 views

We want to talk about our approach towards Continuous Deployment and how we have setup our process with integrations to Jenkins, Hipchat, Rackspace and GitHub. We want to show you how a easy to use ...

We want to talk about our approach towards Continuous Deployment and how we have setup our process with integrations to Jenkins, Hipchat, Rackspace and GitHub. We want to show you how a easy to use environment enables every developer to do production releases with just a few lines.

Statistics

Views

Total Views
1,041
Views on SlideShare
975
Embed Views
66

Actions

Likes
1
Downloads
16
Comments
0

2 Embeds 66

https://twitter.com 65
http://eventifier.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Continuous Deployment - Developers Conference Hamburg #dchh Continuous Deployment - Developers Conference Hamburg #dchh Presentation Transcript

  • ! Continuous Deployment
  • ! ! ! Me: Hajo Eichler ! ! ‣ founded 2006 ‣ Munich & Berlin ‣ 40 people ‣ Cloud eCommerce Software provider ‣ company behind SPHERE.IO, first eCommerce PaaS ! ! ‣ Head Product Development ‣ DevQaOps ! ! ! ! ‣ commercetools.com ‣ hajo@commercetools.com ‣ @commercetools ‣ github.com/hajoeichler ‣ @sphereio
  • SPHERE.IO ! ‣ Single Source Commerce ‣ Open API for products, customer, cards, orders, tax ... ‣ SDK, templates, CLI, connectors, examples, plugin-ins, etc
 as Open Source
  • SPHERE API
  • JAVA NODE.JS IOS RUBY 📱 PHP ANDROID SPHERE API
  • App Stack Ops Stack ! ! ‣ Scala ‣ Puppet ‣ Play 2 ‣ mcollective ‣ REST/JSON ‣ hiera/raziel ‣ Netty ‣ Ruby ‣ Mongo ‣ nginx ‣ ElasticSearch ‣ Rackspace
  • Today’s challenge... Code Server
  • ... in practice ! several environment LB different languages config sensitive data fast iterations LB multiple server
  • Packaging ! ‣ One system to rule them all (OS, services and apps) ‣ Yum or apt update, rollback and handle config files ‣ fpm is you friend Repository ! ‣ Repository categories for stages ‣ Using S3 for hosting ‣ Implemented with s3cmd ‣ Access controlled
  • System automation - bootstrapping ! ‣ Running on Rackspace
 bootstrap with http://fog.io ‣ We build nodes from scratch based on standard distro image ‣ Automated DNS management using AWS Route53
  • System automation - configuration automation - provisioning ! hiera packed with YAML = plain text ! Package ! ! ! Config ! ! ! Service ! ! Define for each environment as code ‣ InfrastructureVersioned in GitHub ‣ Role based puppet ‣ Puppet standalone
  • System automation - configuration automation - configuration ! hiera packed with YAML = plain text ! ! ! ! ! ! ! ! ! Define YAML environment ‣ Hiera withfor each- just text files Versioned in code ‣ Treat config asGitHub ‣ Versioning via GitHub
  • System automation - credentials ! ! Raziel ‣ Take care of sensitive data ‣ Using GPG encryption ‣ Keep versioning and history ! ‣ github.com/hajoeichler/raziel
  • System automation - orchestration ! ‣ How to deal with more than 10 servers? mcollective ‣ Facts/roles link puppet modules to mcollective filters ! ‣ mco ping ‣ mco ping -F roles=sphere-merchantcenter ‣ mco ping -F group=black ‣ mco ping -F roles=sphere-merchantcenter -F group=black ‣ Plugin system ‣ Write your own agents
  • Pretty complex... ! several environment LB different languages config sensitive data fast iterations LB multiple server
  • Demystify ! ‣ Build tooling that brings complexity of systems down to a ! ‣ single command line ‣ click of a button
  • Demystify puppet ! ‣ vagrant brings puppet down to the developer machine ! ‣ run production squeezed in one vm ‣ bit of port magic ‣ port forwarding to developer host ‣ shared folders ! ‣ no more “but it works on my machine”
  • Demystify operations ! ‣ git like interface (GLI) ‣ mcollective agent
  • Demystify Continuous Integration ! ‣ we use Jenkins and travis ci ‣ build.sh for all projects ‣ build / test / package / publish ‣ trigger deployments and acceptance tests ‣ build it once only! (no releases) ! ‣ But, what runs where? github.com/hajoeichler/JenkinsJobConfigGenerator
  • Demystify deployments ! ! ! HipChat with ! robut = mco client ! ! !
  • The big picture ! ! ! ! ! GitHub UserVoice ! JIRA PagerDuty ! ... Mission Control S3 repo robut robut robut CI Staging Production
  • BTW: Quality matters ! ‣ All this works only when you can trust your security net = automated tests ! ‣ No explicit QA team, task whatever ‣ Let all involve in the story we use cucumber for specifying ‣ web ‣ command line ‣ API
  • Things to take home ! ‣ There is a new eCommerce platform ! ‣ Package everything and build it only once ‣ Automate what ever possible - test it! ‣ You build it you deploy it ‣ Give trust to developers and provide nice tooling ‣ Build an audit log on what happens visible to all Data Source: eMarketer 2012
  • Questions? commercetools.com @commercetools @sphereio
  • ! SPHERE.IO - from developers to developers! Try: admin.sphere.io ‣ 60 days for free! ‣ no cc required ‣ #holyshit