{"id":3517,"date":"2015-09-03T17:49:23","date_gmt":"2015-09-03T23:49:23","guid":{"rendered":"http:\/\/benincosa.com\/?p=3517"},"modified":"2015-09-03T22:51:31","modified_gmt":"2015-09-04T04:51:31","slug":"its-time-to-get-rid-of-the-operating-system","status":"publish","type":"post","link":"https:\/\/benincosa.com\/?p=3517","title":{"rendered":"It&#8217;s time to get rid of the operating system"},"content":{"rendered":"<p>We&#8217;ve abstracted many things you and I. \u00a0But its time to crack the next nut. \u00a0Let me explain why.<\/p>\n<h3><b>Bare Metal<\/b><\/h3>\n<p>I started out managing applications on bare metal x86 and AIX servers. \u00a0In those days we were updating the operating systems to the latest releases, patching with security updates, and ensuring our dependencies were set up in such a way that the whole system would run. \u00a0In a way, its pretty amazing that the whole complex stack operated as well as it did. \u00a0So many dependencies, abstracted away so that we didn&#8217;t have to worry about the application opening up the token ring port and we could just use a trusted stack to send things on its way. \u00a0Life was good, but it sucked at the same time: \u00a0It was slow to provision servers, boot times were atrocious especially when UEFI made boot times even longer, and it was monolithic and scary to touch.<\/p>\n<p>I remember one company I visited had their entire business records (not backed up) on one server that was choking under the load. \u00a0I came in there and pxebooted that server, ran some partimage magic and migrated the server to another big beefier server. \u00a0It was the first cold migration I had ever performed. \u00a0I felt like an all powerful sorcerer. \u00a0I had intergalactic cosmic powers. \u00a0High Fives all around.<\/p>\n<h3><strong>Virtualization<\/strong><\/h3>\n<p>I started virtualization with Xen, then KVM. \u00a0VMware was something the windows guys were doing, so I wasn&#8217;t interested. \u00a0Then I realized it was based on Red Hat Linux (it has since changed) so my powers were summoned again. I started helping get application running on Virtual Machines. \u00a0I did the same thing: \u00a0I installed the operating system to the latest release. \u00a0I applied security patches, and then I made sure the latest dependencies were set up in such a way that the application would run.<\/p>\n<p>But here my magical powers were obsolete. \u00a0People were desensitized to vMotion demos. \u00a0Oh, you had to shut off that machine to migrate it to another server? \u00a0We can migrate it while its still running. \u00a0Watch this, you won&#8217;t even drop a ping. \u00a0People started making the case that hardware was old news. \u00a0Why do you care which brand it is?<\/p>\n<p>We could make new VMs quickly, more efficiently use our servers, (remember how much people said your power bill would drop?), and maintenance of hardware was easier.<\/p>\n<p>All our problems were solved, as long as we paid VMware our dues.<\/p>\n<h3><strong>Cloud IaaS<\/strong><\/h3>\n<p>But VMware was for infrastructure guys. \u00a0The new breed of hipsters and brogrammers were like: \u00a0I don&#8217;t care what my virtualization is, nor my hardware, as long as its got an API, I can spin it up. \u00a0So we would start getting our applications working on AWS. \u00a0But here we as systems dudes started\u00a0abusing Ruby to create\u00a0super cool tools like Puppet or Chef and started preaching the gospel of automation. \u00a0And so when I would get applications running on the cloud, I would install the latest operating system, apply security patches, make sure my latest application dependencies were there and then run the operating system.<\/p>\n<p>My magical powers of scripting came back in force. \u00a0I was a scripting machine. \u00a0Now I didn&#8217;t care about the hardware, nor the virtualization platform. \u00a0I just got things working. \u00a0All the problems were solved as long as I paid my monthly AWS bill.<\/p>\n<p>Adrian Cockcroft told me and thousands of my closest friends at conferences that I didn&#8217;t have to worry about the cost, because I needed to optimize for speed. \u00a0If I optimized for speed projects would get done ahead of time so I would save money and because my projects were iterating quickly I would make more money. \u00a0We took our scripts and fed them to robots like Jenkins so we could try all our experiments. \u00a0We would take the brightest minds of our days and instead of having them work out ways to get people to Mars or find alternate power sources we would have them figure out how to get people to click on ads to make us money. \u00a0God bless us, everyone.<\/p>\n<p>But we still had to worry about the operating system.<\/p>\n<h3><strong>Cloud PaaS<\/strong><\/h3>\n<p>We took a side look at PaaS for a second. \u00a0Because they said we wouldn&#8217;t have to care about the OS, nor the dependencies because they would manage it for us. \u00a0The problem was<\/p>\n<p>1. \u00a0Our applications were artistic snowflakes. \u00a0We needed our own special libraries and kernel versions. \u00a0You think our applications are generic? \u00a0Yeah, it was great if we were setting up a wordpress blog, but we&#8217;re doing real science here: \u00a0We&#8217;re getting people to click on ads for A\/B testing. \u00a0&#8216;Murica. \u00a0So your PaaS wasn&#8217;t good enough for us. \u00a0And our guys know how to do it better.<\/p>\n<p>2. \u00a0We heard that it wouldn&#8217;t scale. \u00a0Let alone that we were using Python and Ruby that was never really meant to scale into the atrocious applications that became Twitter and others. \u00a0Typed languages are so easy, so we used them.<\/p>\n<p>So for our one-offs, we still use PaaS but for the most part, we still install operating systems to the latest versions, install security policies and patches, and ensure our dependencies are up so we can run the applications.<\/p>\n<p>We weren&#8217;t supposed to worry about the operating system, but we did.<\/p>\n<h3><b>Containers and Microservices<\/b><\/h3>\n<p>A cute little whale, handcrafted with love in San Francisco, then stole our hearts by making it easy to do things that we were able to do years ago. \u00a0The immutable architecture with loads of services in separate pieces would come our way and save us from the monolith. \u00a0A container a day keeps the monolith away is what it says on the T-shirt they were handing out. \u00a0I got tons of cool stickers that made me feel like a kid again and I plastered them all over my computer.<\/p>\n<p>I started breaking up monoliths. \u00a0At Cisco, our giant ordering tool based on legacy Oracle databases and big iron servers was broken up and each piece was more agile than the next. \u00a0We saw benefits. \u00a0Mesos and Kubernetes are the answers to managing them and Cisco&#8217;s <a href=\"http:\/\/mantl.io\">Mantl project<\/a> will even orchestrate that. \u00a0Its really cool actually!<\/p>\n<p>So how do I get a modern micro services application running today? \u00a0I create a Dockerfile that has the OS. \u00a0Then I do apt-get update to make sure all the dependencies are in place. \u00a0I use Mesos or Kubernetes to expose ports for security. \u00a0Then I make sure the dependencies are installed in the Operating system in the container. \u00a0And we&#8217;re off.<\/p>\n<p>Mesos even has something called the Data Center Operating System (DCOS). \u00a0It runs containers. \u00a0But containers still run Operating Systems. \u00a0We&#8217;re still worrying about the operating system for our applications!<\/p>\n<h3><strong>What&#8217;s Next?\u00a0<\/strong><\/h3>\n<p>We&#8217;re still crafting operating systems. \u00a0We&#8217;re still managing them. \u00a0We&#8217;ve started down a journey of abstraction to deliver applications, but we haven&#8217;t cracked the final nut: \u00a0We need to make the operating system irrelevant, just as we&#8217;ve made the hardware and virtualization platform irrelevant. \u00a0The things we&#8217;re doing with scheduling across other containers used to be something the OS would deliver on a single box, but that&#8217;s not happening anymore due to the distributed nature of applications.<\/p>\n<p>AWS has shown us lambda which is a great start in this direction. \u00a0Its a system that just executes code. \u00a0There&#8217;s no operating system, just a configuration of services. \u00a0It&#8217;s a glimpse into the future of what the new modern day art of the possible will be. \u00a0As we start to break down these micro services deeper in to nano services or just function calls, we need to get away from having to worry about an operating system and just a platform that runs the various components of our micro service-ized application.<\/p>\n<p>We&#8217;ve gotten leaner and leaner and the people that figure this out first, and give applications the best experience to run without requiring maintenance of operating systems will win the next battle of delivering applications.<\/p>\n<p>We abstracted hardware, the virtualization platform, and our services. \u00a0Now its time to go to eleven: \u00a0Get rid of the operating system.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;ve abstracted many things you and I. \u00a0But its time to crack the next nut. \u00a0Let me explain why. Bare Metal I started out managing applications on bare metal x86 and AIX servers. \u00a0In those days we were updating the operating systems to the latest releases, patching with security updates, and ensuring our dependencies were&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[990],"tags":[46,813,814],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/benincosa.com\/index.php?rest_route=\/wp\/v2\/posts\/3517"}],"collection":[{"href":"https:\/\/benincosa.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/benincosa.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/benincosa.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/benincosa.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3517"}],"version-history":[{"count":4,"href":"https:\/\/benincosa.com\/index.php?rest_route=\/wp\/v2\/posts\/3517\/revisions"}],"predecessor-version":[{"id":3522,"href":"https:\/\/benincosa.com\/index.php?rest_route=\/wp\/v2\/posts\/3517\/revisions\/3522"}],"wp:attachment":[{"href":"https:\/\/benincosa.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/benincosa.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/benincosa.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}