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

Continious Deployment with Docker

Continious Deployment with Docker

AppsFlyer

March 12, 2015
Tweet

More Decks by AppsFlyer

Other Decks in Technology

Transcript

  1. • High Traffic: 3 Billion requests per day • Maintaining

    Lots of data • Data integrity • Fast growing user base • Need to deploy new features fast • Bottom line: We need tools that can help us grow fast! A Little bit about our Production
  2. Yes No What this lecture is about and what not

    Sharing our experience with docker in production Production deployments and automation with dockers Eco system tools that we integrate with docker Tools we developed locally to ease containers usage The reasons to use or not use docker for specific Application / Infrastructure Where we failed and how to avoid that Docker/containers basics Testing environments Tutorial Kernel implementations behind the technology Analogs between harbor and docker principles
  3. • Docker registry (internal server) • Consul – Docker deployment

    configuration • Mesos for docker clustering • Marathon as Mesos API • Chef for “parent host configuration” • Custom AWS “docker AMI” External tools we use with Docker
  4. Stuff we built internally • Santa – Docker deployment tool

    • Docker log tailer • Docker metric collection • Builder and auto builder • Chef – docker protection • Configuration bootstrap • Marathon –> Consul integration • Auto Healing & Auto Scaling
  5. • Jenkins – builds / pull resources from Bitbucket •

    Rabbitmq – message passing between central deployment and agents • LDAP – Deployment Authentication • Graphite – Containers metrics Additional tools we use for the Deployment flow
  6. • Project name • Version • Modes • Health •

    Instances to deploy • Ports • Run command • Services to heal / scale • Heal / Scale url • Heal type • Heal/Scale Treshold • Deployment status • Docker - Chef enabled + agents status + override Information we are keeping in Consul for deployments
  7. Best Practices • What we dockerize and what not, examples

    and reasons • When we deploy to mesos and when to santa agents • Collect logs and metrics from outside the containers • Avoid manual containers managment
  8. Best practices in the deployment flow • Auto image creation

    & store • version management • Reverts • Configuration set in Consul • Using Docker/Consul/Jenkins API • Reviving from failures • feedback loop
  9. • Chef and dockers: Clash of the titans • Forcing

    an elephant into a box • Connection tracking table, mmm... • DNS stickiness • The destroyer of clusters • Deployment failures: retries & revive • Volumes hell • Auto Healing & Auto scaling • Choosing the right storage driver Failures/Mistakes & Fixes