Last Thursday I attended the NLUUG DevOps conference in Bunnik, near Utrecht. The NLUUG is the Dutch UNIX user group. In this blog I will summarize the talks I attended, some fun things I learned and I will discuss my own talk about continuous integration at a large organization.
Rudi van Drunen, NLUUG board member, entered the stage and kicked off the conference. “There are four tracks, DevOps, the free track, configuration management and the hallway track.” Rudi gave a short introduction the DevOps phenomenon, what it is, how to use it. He concluded it is really about cooperation and reducing silos in the organization. He recommended the book The Phoenix Project, which gives a good example on how to cooperate in teams and solve problems in IT organizations.
Keynote J.C. van Winkel – Engineering for reliability
Googler and site reliability engineer Jan Christiaan van Winkel discussed how to engineer large systems for reliability. For an application with only a few users a webserver and database server can be enough to support the expected load. But building systems at Google scale is a different story. J.C. guided us through the process of sizing an application at Google scale. “How many users will you have? How often do they visit, how many requests? How many disk seeks does that give us, how many disks?” After a few back of the envelope calculations it becomes apparent how much infrastructure is needed and how much monitoring infra is needed to monitor all of that! At Google many system concerns are not only directly related to the features of an actual product. For instance a lot of work, infra and code that keeps Google Maps working has nothing to do with the geo-information domain, it is purely for reliability.
Finagle’s law of dynamic negative’s – Anything that can go wrong, will-at the worst possible moment
J.C. told stories of system failures in the last years. Of course many hard disk failures, but what about a cat jumping in powerhouses that knock down a datacenter? For every domain of failure: disk, machine, rack, datacenter he discussed some ways to remedy failures. Many times Google develops their own solutions to solve some of these problems, hence the slogan: “We don’t just reinvent the wheel, we vulcanize our own rubber”.
My talk – Introducting continuous integration at a large organization
Straight after the keynote I presented my experiences when introducing CI at a large organization. I have been involved in this project for over a year, together with Jelmer Kuperus and Viktor Sadovnikov. We created a ‘common build platform’ to help developers build, test and distribute their software easier. We used Vagrant, Puppet, Jenkins, SonarQube and some custom built software to build this platform. Additionally, we created a virtual system test that tests the whole platform every night on Vagrant VMs. If you like to know more contact us.
Click here to download my full presentation
Alessandro Vozza – Private Cloud + DevOps = <3
Alessandro Vozza is a developer at Spil Games and he gave an interesting talk on OpenStack and how clouds enable DevOps practices. OpenStack is a large open source project with considerable adoption. Allessandro explained the components of OpenStack like Nova, the compute engine and other components that are similar to the well known AWS building blocks like S3, EBS and so on.
When discussing DevOps he drew a Venn diagram with three intersecting circles ‘Business’, ‘Devs’ and ‘Ops’. Allessandro explained that the goal of Agile methods was to align ‘Business’ with ‘Dev’ whereas the goal of DevOps is to align ‘Dev’ with ‘Ops’. Another point he made that having a cloud enables DevOps. You can do DevOps practices without a cloud but it sure makes it a lot easier if you can create compute instances at will through an API. Besides that, DevOps is fun: “Less silos. More beer”. After his talk we chatted a bit in the ‘hallway track’ about OpenStack. I am exciting to try out OpenStack, or perhaps CloudStack, which is written in Java.
Tjeerd Verhagen – DevOps Real World Example
Tjeerd gave a tour of a project he worked on discussing version control and continuous integration. He discussed a few formats supported by Maven Doxia module that I was not aware of: the APT format, the FAQ format and Twiki. Tjeerd advises to treat documentation like code. He trained his technical writers to use version control and commit documentation changes and this has improved the documentation process and reduced a lot of manual work. The documentation could now be generated from the project itself.
Jos Vos – Developing websites “the UNIX way” with Python and Flask
The UNIX way means creating programs that do one thing really well and combining them to solve a problem. In the next talk Jos Vos introduced Flask, a Python microframework. He argued that many frameworks such as Django are good at what they do but that they can be too complex. With flask you can write a short method with a Python function with a request path, start it and you have server.
from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run()
He then showed a few other libraries that you could combine together to create a simple application. For example he showed SQLAlchemy, a simple Python ORM and Jinja2 to create templates. I learned there are a few microframeworks out there these days for JVM languages: Spark Java and Scalatra inspired by Sinatra, a popular Ruby microframework.
It’s a wrap
This wraps up my summary the NLUUG DevOps conference. At the end of the day we had a few drinks and the discussions continued during the speaker’s dinner in the evening. I enjoyed the conference, the people I met and liked that the topics and talks had a slightly different focus than usual. The next NLUUG conference will probably be in april 2014.
If you would like to download my presentation at NLUUG DevOps conference 2013 it is available here: full presentation