{"id":10167,"date":"2013-11-26T12:41:44","date_gmt":"2013-11-26T11:41:44","guid":{"rendered":"https:\/\/blog.trifork.com\/?p=10167"},"modified":"2013-11-26T12:41:44","modified_gmt":"2013-11-26T11:41:44","slug":"nluug-devops-conference-2013-reliability-clouds-and-the-unix-way","status":"publish","type":"post","link":"https:\/\/trifork.nl\/blog\/nluug-devops-conference-2013-reliability-clouds-and-the-unix-way\/","title":{"rendered":"NLUUG DevOps Conference 2013 &#8211; Reliability, clouds and the UNIX way"},"content":{"rendered":"<p>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.<br \/>\n<!--more--><\/p>\n<h2>Opening word<\/h2>\n<p>Rudi van Drunen, NLUUG board member, entered the stage and kicked off the conference. &#8220;There are four tracks, DevOps, the free track, configuration management and the hallway track.&#8221; 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 <a href=\"http:\/\/www.amazon.com\/The-Phoenix-Project-Helping-Business\/dp\/0988262592\">The Phoenix Project<\/a>, which gives a good example on how to cooperate in teams and solve problems in IT organizations.<\/p>\n<h2>Keynote J.C. van Winkel &#8211; Engineering for reliability<\/h2>\n<p>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. &#8220;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?&#8221; 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.<\/p>\n<h3>Finagle&#8217;s law of dynamic negative&#8217;s &#8211; Anything that can go wrong, will-at the worst possible moment<\/h3>\n<p>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: &#8220;We don&#8217;t just reinvent the wheel, we vulcanize our own rubber&#8221;.<\/p>\n<h2>My talk &#8211; Introducting continuous integration at a large organization<\/h2>\n<p>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 &#8216;common build platform&#8217; 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 <a href=\"http:\/\/www.trifork.nl\/en\/home\/contact-us.html\" target=\"_blank\" rel=\"noopener\">contact us<\/a>.<\/p>\n<p>Click here to download my\u00a0<a title=\"full presentation\" href=\"http:\/\/info.trifork.nl\/2013DevOpstalk.html\">full presentation<\/a><\/p>\n<h2>Alessandro Vozza &#8211; Private Cloud + DevOps = &lt;3<\/h2>\n<p>Alessandro Vozza is a developer at <a href=\"http:\/\/www.spilgames.com\/\">Spil Games<\/a> and he gave an interesting talk on <a href=\"http:\/\/www.openstack.org\">OpenStack<\/a> 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.<\/p>\n<p>When discussing DevOps he drew a Venn diagram with three intersecting circles &#8216;Business&#8217;, &#8216;Devs&#8217; and &#8216;Ops&#8217;. Allessandro explained that the goal of Agile methods was to align &#8216;Business&#8217; with &#8216;Dev&#8217; whereas the goal of DevOps is to align &#8216;Dev&#8217; with &#8216;Ops&#8217;. 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: &#8220;Less silos. More beer&#8221;. After his talk we chatted a bit in the &#8216;hallway track&#8217; about OpenStack. I am exciting to try out OpenStack, or perhaps CloudStack, which is written in Java.<\/p>\n<h2>Tjeerd Verhagen &#8211; DevOps Real World Example<\/h2>\n<p>Tjeerd gave a tour of a project he worked on discussing version control and continuous integration. He discussed a few formats supported by <a href=\"http:\/\/maven.apache.org\/doxia\/doxia\/\">Maven Doxia module<\/a> 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.<\/p>\n<h2>Jos Vos &#8211; Developing websites &#8220;the UNIX way&#8221; with Python and Flask<\/h2>\n<p>The <a href=\"http:\/\/en.wikipedia.org\/wiki\/Unix_philosophy\">UNIX way<\/a> means creating programs that do one thing really well and combining them to solve a problem. In the next talk Jos Vos introduced <a href=\"http:\/\/flask.pocoo.org\/\">Flask<\/a>, 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.<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\nfrom flask import Flask\napp = Flask(__name__)\n\n@app.route(&quot;\/&quot;)\ndef hello():\n    return &quot;Hello World!&quot;\n\nif __name__ == &quot;__main__&quot;:\n    app.run()\n<\/pre>\n<p>He then showed a few other libraries that you could combine together to create a simple application. For example he showed <a href=\"http:\/\/www.sqlalchemy.org\/\">SQLAlchemy<\/a>, a simple Python ORM and <a href=\"jinja.pocoo.org\">Jinja2<\/a> to create templates. I learned there are a few microframeworks out there these days for JVM languages: <a href=\"http:\/\/www.sparkjava.com\">Spark Java<\/a> and <a href=\"http:\/\/www.scalatra.org\/\">Scalatra<\/a> inspired by <a href=\"http:\/\/www.sinatrarb.com\/\">Sinatra<\/a>, a popular Ruby microframework.<\/p>\n<h2>It&#8217;s a wrap<\/h2>\n<p>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&#8217;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.<\/p>\n<p>If you would like to download my presentation at NLUUG DevOps conference 2013 it is available here:\u00a0<a title=\"full presentation\" href=\"http:\/\/info.trifork.nl\/2013DevOpstalk.html\">full presentation<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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.<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[12,88],"tags":[14,48,9],"class_list":["post-10167","post","type-post","status-publish","format-standard","hentry","category-conference","category-devops","tag-conference","tag-linux","tag-open-source"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>NLUUG DevOps Conference 2013 - Reliability, clouds and the UNIX way - Trifork Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/trifork.nl\/blog\/nluug-devops-conference-2013-reliability-clouds-and-the-unix-way\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"NLUUG DevOps Conference 2013 - Reliability, clouds and the UNIX way - Trifork Blog\" \/>\n<meta property=\"og:description\" content=\"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.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/trifork.nl\/blog\/nluug-devops-conference-2013-reliability-clouds-and-the-unix-way\/\" \/>\n<meta property=\"og:site_name\" content=\"Trifork Blog\" \/>\n<meta property=\"article:published_time\" content=\"2013-11-26T11:41:44+00:00\" \/>\n<meta name=\"author\" content=\"frank\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"frank\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/trifork.nl\/blog\/nluug-devops-conference-2013-reliability-clouds-and-the-unix-way\/\",\"url\":\"https:\/\/trifork.nl\/blog\/nluug-devops-conference-2013-reliability-clouds-and-the-unix-way\/\",\"name\":\"NLUUG DevOps Conference 2013 - Reliability, clouds and the UNIX way - Trifork Blog\",\"isPartOf\":{\"@id\":\"https:\/\/trifork.nl\/blog\/#website\"},\"datePublished\":\"2013-11-26T11:41:44+00:00\",\"author\":{\"@id\":\"https:\/\/trifork.nl\/blog\/#\/schema\/person\/00fad6c5829f6770345f23ccace2e54f\"},\"breadcrumb\":{\"@id\":\"https:\/\/trifork.nl\/blog\/nluug-devops-conference-2013-reliability-clouds-and-the-unix-way\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/trifork.nl\/blog\/nluug-devops-conference-2013-reliability-clouds-and-the-unix-way\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/trifork.nl\/blog\/nluug-devops-conference-2013-reliability-clouds-and-the-unix-way\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/trifork.nl\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"NLUUG DevOps Conference 2013 &#8211; Reliability, clouds and the UNIX way\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/trifork.nl\/blog\/#website\",\"url\":\"https:\/\/trifork.nl\/blog\/\",\"name\":\"Trifork Blog\",\"description\":\"Keep updated on the technical solutions Trifork is working on!\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/trifork.nl\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/trifork.nl\/blog\/#\/schema\/person\/00fad6c5829f6770345f23ccace2e54f\",\"name\":\"frank\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/trifork.nl\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5c39a948f2b70fa900b25dc79cde8643?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5c39a948f2b70fa900b25dc79cde8643?s=96&d=mm&r=g\",\"caption\":\"frank\"},\"url\":\"https:\/\/trifork.nl\/blog\/author\/frank\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"NLUUG DevOps Conference 2013 - Reliability, clouds and the UNIX way - Trifork Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/trifork.nl\/blog\/nluug-devops-conference-2013-reliability-clouds-and-the-unix-way\/","og_locale":"en_US","og_type":"article","og_title":"NLUUG DevOps Conference 2013 - Reliability, clouds and the UNIX way - Trifork Blog","og_description":"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.","og_url":"https:\/\/trifork.nl\/blog\/nluug-devops-conference-2013-reliability-clouds-and-the-unix-way\/","og_site_name":"Trifork Blog","article_published_time":"2013-11-26T11:41:44+00:00","author":"frank","twitter_card":"summary_large_image","twitter_misc":{"Written by":"frank","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/trifork.nl\/blog\/nluug-devops-conference-2013-reliability-clouds-and-the-unix-way\/","url":"https:\/\/trifork.nl\/blog\/nluug-devops-conference-2013-reliability-clouds-and-the-unix-way\/","name":"NLUUG DevOps Conference 2013 - Reliability, clouds and the UNIX way - Trifork Blog","isPartOf":{"@id":"https:\/\/trifork.nl\/blog\/#website"},"datePublished":"2013-11-26T11:41:44+00:00","author":{"@id":"https:\/\/trifork.nl\/blog\/#\/schema\/person\/00fad6c5829f6770345f23ccace2e54f"},"breadcrumb":{"@id":"https:\/\/trifork.nl\/blog\/nluug-devops-conference-2013-reliability-clouds-and-the-unix-way\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/trifork.nl\/blog\/nluug-devops-conference-2013-reliability-clouds-and-the-unix-way\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/trifork.nl\/blog\/nluug-devops-conference-2013-reliability-clouds-and-the-unix-way\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/trifork.nl\/blog\/"},{"@type":"ListItem","position":2,"name":"NLUUG DevOps Conference 2013 &#8211; Reliability, clouds and the UNIX way"}]},{"@type":"WebSite","@id":"https:\/\/trifork.nl\/blog\/#website","url":"https:\/\/trifork.nl\/blog\/","name":"Trifork Blog","description":"Keep updated on the technical solutions Trifork is working on!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/trifork.nl\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/trifork.nl\/blog\/#\/schema\/person\/00fad6c5829f6770345f23ccace2e54f","name":"frank","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/trifork.nl\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5c39a948f2b70fa900b25dc79cde8643?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c39a948f2b70fa900b25dc79cde8643?s=96&d=mm&r=g","caption":"frank"},"url":"https:\/\/trifork.nl\/blog\/author\/frank\/"}]}},"_links":{"self":[{"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/posts\/10167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/comments?post=10167"}],"version-history":[{"count":0,"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/posts\/10167\/revisions"}],"wp:attachment":[{"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/media?parent=10167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/categories?post=10167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/tags?post=10167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}