{"id":3593,"date":"2017-06-23T13:42:37","date_gmt":"2017-06-23T19:42:37","guid":{"rendered":"http:\/\/benincosa.com\/?p=3593"},"modified":"2017-06-23T13:42:37","modified_gmt":"2017-06-23T19:42:37","slug":"serverless-computing-how-did-we-get-to-now","status":"publish","type":"post","link":"https:\/\/benincosa.com\/?p=3593","title":{"rendered":"Serverless Computing:  How did we get to now?"},"content":{"rendered":"<p>This is a story of the state of where we are in the world of containers, serverless, and whatever else you want to call this mess.<\/p>\n<p>The story involves 3 groups of people with their own passions, opinions, and modes of getting stuff done. \u00a0We&#8217;re getting to a point where they are no starting to see things the same way (or getting closer). \u00a0That is the real exciting part about where we are today.<\/p>\n<p>The people in this story are:<\/p>\n<ul>\n<li>The Infrastructure people running apps.<\/li>\n<li>Developers writing backend enterprise and other cool things for the cloud. \u00a0SaaS developers?<\/li>\n<li>The Mobile Developers.<\/li>\n<\/ul>\n<p>This story talks about how all their paths collided and have created the jumbled mess of glory that we have today.<\/p>\n<h3>Infrastructure People<\/h3>\n<p>This group of people used to be called System Administrators back when I was a lad. \u00a0But that is so uncool. \u00a0They now call themselves Full Stack Engineers, or Site Reliability Engineers, which basically means they are system administrators that know how to write code. \u00a0Most of the good system administrators I used to work with assumed you did write gnarly bash scripts back in the day but apparently that practice was forgotten so now that is back in vogue again a job description needed to change. \u00a0We don&#8217;t want point and click administrators, we want hacker administrators that can work on our full stack. \u00a0Whatever.<\/p>\n<p>In the beginning there was your data center, or place where you hosted your machines.<\/p>\n<p>Then came the cloud. \u00a0And the cloud was vague. \u00a0Larry Ellison saw the cloud and <a href=\"https:\/\/www.youtube.com\/watch?v=0FacYAI6DY0\">said it was jibberish, made no sense, and made a chauvinistic comment about women&#8217;s fashion<\/a>. \u00a0Anyway.<\/p>\n<p>The analysts came, and said the cloud was actually 3 things: \u00a0IaaS, PaaS, and SaaS. \u00a0With IaaS, you did everything but the hardware and with SaaS you just consumed the software. \u00a0PaaS was a strange beast in the middle that was never really defined. \u00a0People would just say: \u00a0&#8220;You know, like Heroku, or Beanstalk&#8221;. \u00a0They were people with opinions telling you they could take your IaaS to the next level. \u00a0But it was still weird, and no matter what you can say, it was vague. \u00a0Sure, <a href=\"http:\/\/nvlpubs.nist.gov\/nistpubs\/Legacy\/SP\/nistspecialpublication800-145.pdf\">NIST got involved and cleared all these definitions up<\/a>, but there&#8217;s still a lot of wiggle room into what a PaaS was.<\/p>\n<p>Then came Docker in 2013. \u00a0Docker technology wasn&#8217;t new. \u00a0It was just nicely packaged. \u00a0With a cute friendly whale. \u00a0Docker actually started as a T-Shirt company, but then took Linux namespaces, cgroups, and a union filesystem and made it fun to work with.<\/p>\n<p>But people said: \u00a0It&#8217;s hard to manage all these containers. \u00a0Cause if I have on container on a VM, no problem. But what if I have 4? \u00a0And multiple servers running multiple containers. \u00a0Container sprawl! Port sprawl! \u00a0Agh!<\/p>\n<p>So other people said: \u00a0We will take care of this problem! \u00a0So they cobbled existing open source tools together to run it. You can use Mesos, Marathon, Consul, etc&#8230; Ugh..<\/p>\n<p>Meanwhile Docker said: \u00a0Hey, we&#8217;re still here! \u00a0We created swarm to run it on multiple nodes. \u00a0Hurray for Docker!<\/p>\n<p>Then in 2014 Google says: \u00a0You know, we&#8217;ve actually been running containers since forever and we know how to do it pretty well. \u00a0Anyway, we noticed that we&#8217;re having a hard time getting people to notice our superior cloud platform. \u00a0It is better than Amazon&#8217;s in every way except you&#8217;re not as smart enough to see why. \u00a0Typical you. \u00a0Anyway, here is something called Kubernetes that will hopefully get people to notice our cloud, it is our gift&#8230; sort of.<\/p>\n<p>And Kubernetes is awesome. \u00a0And people were like: \u00a0Wow, this is how we can all manage containers. \u00a0So people jumped on that. \u00a0A community was born! \u00a0People complained: \u00a0Docker is too restrictive! \u00a0It won&#8217;t accept my pull request! \u00a0It&#8217;s too monolithic. \u00a0Whatever. \u00a0Poor Docker.<\/p>\n<p>So then the old PaaS vendors with their opinions changed and produced another opinion: \u00a0You know, Kubernetes is a project, so if you want to run it the best way, run it on our project. \u00a0And so they started having opinions about Kubernetes. \u00a0And OpenShift, Cloud Foundry, Apprenda, Tectonic, Rancher, etc all offered this to you for a reasonable price and a chance to feel like you were one of the cool kids.<\/p>\n<p>Meanwhile Docker said: \u00a0We have our own product called Docker Datacenter. \u00a0And oh.. Kubernetes does that? \u00a0Ok, we&#8217;ll add that in. \u00a0And we are also very secure!<\/p>\n<p>So that&#8217;s where the infrastructure people are at right now. \u00a0PaaS is basically container stuff. \u00a0Nothing else really matters.<\/p>\n<h3>Developers<\/h3>\n<p>These cool companies that had been around for a while that were perhaps &#8220;Born in the Cloud&#8221; started saying: \u00a0You know, this IaaS stuff is working pretty cool for us, but we have jobs that do other things. \u00a0You know, solving the real problems that plague society like Silicon Valley is known to do today: \u00a0How can I spy on my old girlfriend from High School? \u00a0How can I tell people that I&#8217;m having a rough day? \u00a0How can I exploit Taxi drivers and then replace them with machines some day? \u00a0These are the issues people.<\/p>\n<p>So let&#8217;s imagine that someone uploads a photo to our super amazing site that let&#8217;s you share photos &#8220;with people that you care about&#8221;. \u00a0They don&#8217;t want to maintain VMs for this. \u00a0They want something like PaaS but they don&#8217;t want to manage containers. \u00a0So Amazon says in November 2014: \u00a0Hey: \u00a0We have this thing called Lambda and it just executes functions in responses to events. \u00a0So if you upload a photo, it will call this function. \u00a0We&#8217;ll package your function and run it on a container and we&#8217;ll manage it all for you. Magical!<\/p>\n<p>Pause here and let us all praise Amazon: \u00a0Oh AWS, you are so magical, so innovative, so insanely focused on your customers! \u00a0How shall we praise thee? \u00a0Selah!<\/p>\n<p>Developers love it cause now we can write entire applications without creating virtual machines! \u00a0Wahoo! \u00a0We&#8217;ve finally freed ourselves from the shackles of the operating system! \u00a0No more patching. \u00a0Its all the responsibility of the cloud providers.<\/p>\n<p>Cloud providers are happy to provide it to you because now you will use more of their services (we&#8217;ve got you trapped!) and free up our VMs that you customers were idling waisting away anyway.<\/p>\n<h4>Mobile Developers<\/h4>\n<p>But it turns out that AWS wasn&#8217;t really listening to their customers as fast as you would think. \u00a0It was only until some other threats started to emerge. \u00a0Kubdos to AWS for being aware of the threats. \u00a0Some companies I&#8217;ve worked for haven&#8217;t been as astute. \u00a0Back when we started mobile development a two-person shop would start working on the next killer mobile app. \u00a0This was about 2008 and the mobile developers would spend time working on the front end and making it all work awesome. \u00a0But then they started to realize: \u00a0Hey, we could do a lot more cool things (like track our customers and steal their privacy) if we could upload this app information to a cloud platform. \u00a0But back in those days they couldn&#8217;t afford a system administrator (oh sorry, full stack reliability engineer) so what were they to do?<\/p>\n<p>Two great companies were formed to solve this problem and others have emerged. \u00a0Parse.com and Firebase were created in 2011. \u00a0Parse was bought by Facebook and Firebase by Google. \u00a0These companies offered a dashboard to mobile app developers that basically offered SaaS to developers. \u00a0These services back then were called BackEnd as a Services. \u00a0And what more is serverless than creating an application that runs in the cloud? \u00a0Function as a service is just the glue that combines the other elements of the backend. \u00a0So in a way, the mobile app developers created serverless. \u00a0Right?<\/p>\n<p>&nbsp;<\/p>\n<h3>Today<\/h3>\n<p>Where AWS and now others have it right is that those serverless systems can go faster because they use containers underneath. \u00a0You see, Serverless is the combination of all the developments of these different players. \u00a0Their needs, passions, and desires, all being fulfilled and packaged in a grand thing called Serverless.<\/p>\n<p>Serverless today\u00a0has a couple of characteristics that make it great:<\/p>\n<ul>\n<li>You don&#8217;t have to manage operating systems (like IaaS, or Container as a Services (the new PaaS?))<\/li>\n<li>You pay by the transactions instead of by the hour like IaaS<\/li>\n<li>You buy into a bigger ecosystem of applications that are written for app developers: \u00a0A database, an identity service, a notification service, an object storage service&#8230; Function as a service is a way to tie those together.<\/li>\n<\/ul>\n<p>The cost is cheaper for everyone, the velocity is vigorous, and the enjoyment is beyond euphoria.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is a story of the state of where we are in the world of containers, serverless, and whatever else you want to call this mess. The story involves 3 groups of people with their own passions, opinions, and modes of getting stuff done. \u00a0We&#8217;re getting to a point where they are no starting to&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[463,638],"tags":[1011,798,851,850],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/benincosa.com\/index.php?rest_route=\/wp\/v2\/posts\/3593"}],"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=3593"}],"version-history":[{"count":2,"href":"https:\/\/benincosa.com\/index.php?rest_route=\/wp\/v2\/posts\/3593\/revisions"}],"predecessor-version":[{"id":3611,"href":"https:\/\/benincosa.com\/index.php?rest_route=\/wp\/v2\/posts\/3593\/revisions\/3611"}],"wp:attachment":[{"href":"https:\/\/benincosa.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/benincosa.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/benincosa.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}