At Etsy we have over 100 engineers deploying more than 60 times a day. This culture of continuously deploying small change sets enables us to build and release robust features all while serving over a billion page views per month. In order to make sure we can keep up this pace, we have development and deployment infrastructure in place that makes it comfortable and simple to make changes. So simple that as an engineer at Etsy you deploy the site on your first day - even if you're a dog.
But how is it possible to deploy so frequently among so many engineers and yet maintain a stable system? To answer this I give a high-level overview of the basic application structure to introduce the specific architecture we have at Etsy and how our development environment is set up. For development, every engineer gets their own VM with the full application stack configured. This makes it easy to get started and puts every developer in the same, familiar setup. This is a crucial part in removing confusion and ambiguity about how to work on and deploy changes.
For the actual deployment we use a one-button deploy system - Deployinator - which we developed and open sourced. We integrated our system tightly with our company-wide IRC server and a set of tools we built to foster confidence, fast feedback and easy communication and collaboration between engineers. A detailed overview will be given on how the system works, how we use it and what problems we had to solve while making sure everyone can deploy as easily and fast as possible. One of the pillars of keeping it fast and scalable was also implementing Atomic Deploys for our web stack. This talk will go into details about what challenges we faced and how we made it work with minimal interruption to the developer workflow.
Sign-in & networking at 6:30, talk at 7.
Daniel Schauenberg is a Software Engineer in Etsy's infrastructure and development tools team. Automation, documentation and simplicity are his usual tools for improving the status quo. He previously worked in systems and network administration, on connecting chemical plants to IT systems and as an embedded systems networking engineer. Things he thoroughly enjoys when not writing code include coffee, breakfast, TV shows and basketball.