Sebastian Neubauer - A Pythonic Approach to Continuous Delivery [EuroPython 2015] [22 July 2015] [Bilbao, Euskadi, Spain]
Software development is all about writing code that delivers additional value to a customer. Following the agile and lean approach this value created by code changes should be continuously delivered as fast, as early and as often as possible without any compromise on the quality.
Remarkably, there is a huge gap between the development of the application code and the reliable and scalable operation of the application. As an example, most of the tutorials about web development with Flask or Django end by starting a local “dummy” server, missing out all the steps needed for production ready operation of the web service. Furthermore, as there is no “rocket science” in-between, many proposals to bridge that gap from both sides, operations and developers start with sentences like: “you just have to...”, a clear indication that it will cause problems later on and also a symptom of a cultural gap between developers and operations staff.
In this talk I will go through the complete delivery pipeline from application development to the industrial grade operation, clearly biased towards the “DevOps” mindset. Instead of presenting a sophisticated enterprise solution, I will outline the necessary building blocks for continuous delivery and fill them up with simple but working poor man's solutions, so that it is equally useful for professional and non-professional developers and operations engineers. After the talk you will know how to build such a continuous delivery pipeline with open-source tools like “Ansible”, “Devpi” and “Jenkins” and I will share some of my day-to-day experiences with automation in general. Although many of the concepts are language agnostic I will focus on the ins and outs in a python universe and outline the pythonic way of “get this thing running”.