So it was a little bit of a windy path as I was researching this pillar. As I looked around life, the thing I’m most excited about is stuff like Amazon with their new(ish) Amazon NOW service that gets me stuff delivered to my door same day. So as I started looking into that, it became clear that Amazon is taking over the world. There is SO much going on with Amazon that this might even be a series of pillars for me, but I thought it might be most interesting for listeners if I dove into one part of their business that might not be at the top of everyone’s mind. We all know about Amazon Prime, and their foray into streaming content, and their cool drone stuff, and Alexa, etc. But have you guys heard of AWS?
Stands for Amazon Web Services, and if we really simplify it, it’s “The Cloud.” that you may have heard of. So I still know embarrassingly little about what ‘the cloud’ actually is, especially because I’m in IT for a living, but with just the little research I’ve done, I think it is an important and cool phenomenon that’s happening, with Amazon leading the way. So I’m going to do the best I can at explaining what Cloud computing is, what the three flavors of it are, and then end with how Amazon is kicking ass in this space.
At its highest level, it just means “internet-based computing.” Whenever you hear “the cloud” it’s pretty much half the battle to just replace “the cloud” with “the internet.” We get what the internet is, that’s easy to understand, but what does ‘computing’ mean in this definition? Let’s try and replace the word “computing” with something we understand.
We’ll start with an easy example of how I’m computing right now as an individual consumer user. I’m currently typing this pillar in Microsoft Word. This is called an “Application.” There’s a bunch of stuff that the application allows me to do – when I hit the letters on the keyboard, those same letters appear on my screen, I can highlight them and make them bold, change the font, send the page to a printer etc. That’s all “Code” that someone had to write to tell the application what to do when the user does certain things. (C++). I’m using this application that Microsoft created, to generate a bunch of data. All applications have data associated with them. At some point, I’m going to want to save this data, so I go File>>Save – choose a location, and when I want to look at this tomorrow while we’re recording, I go back to that location and retrieve my data.
So that’s a long example of a bunch of aspects of “Computing,” but the way I traditionally use Microsoft Word, isn’t very cloud based. I installed Microsoft word on the hard drive of the computer that I’m also typing on right now, so it’s taking up space on my computer. When I save my data, a little icon appears on my desktop and it’s also saved on my computer. If I want to work on this on another device, (without the internet) I’m going to physically copy it onto something else like a thumb drive and bring it to another computer.
So what would this look like in “the cloud?” Well instead of installing Microsoft word on my computer, I’d just go to something like ‘microsoftword.com’ in my internet browser. I would probably login with a username and password and the entire ‘application’ would be right there in the browser, I could make stuff bold, type letters, etc, but would be doing it all over the internet. That “Code” is still somewhere – maybe at some big Microsoft server, or maybe somewhere else (hopefully we’ll get to that later), but it doesn’t have to be on my computer anymore. Similarly, when I’m done for the day and want to save my work, in true cloud fashion, I wouldn’t save this document to my computer, I’d save it to my online storage locker. So there are a couple layers there that are in the cloud. The application itself is in the cloud, and my data is also saved and stored in the cloud.
So what I’ve just described there is very end-user and consumer centric, but where this starts to get a little more exciting is when you scale this up to big organizations, and that is where you’re going to start hearing about things a little more in the news. So cloud computing for business falls into 3 categories:
SaaS – Stands for Software as a Service, and is probably the easiest to get our heads around. It’s basically the Microsoft Word example I gave above. A cloud provider installs and operates the application in the cloud, and the users access it from the internet. An example of this might be something like salesforce.com. Security is a big deal for businesses here.
PaaS – Stands for Platform as a Service. This is a little weirder – this is giving the people who write the code access to tools to create them over the internet. So in the word example, that coder who wrote the C++ code, did so with some really heavy duty tools. In the PaaS model, they would have done that online. An example here is the google app engine that allows developers to write and host web apps. The cool part about these, is that they are free until you hit a certain level of ‘consumed resources.’ Memory/space/etc. So if Perek wrote a GG2K app using the google toolkit and hosted it for free, since we are using Google’s ‘platform’ it would automatically scale. So if it blew up all of a sudden because we hit the Itunes top 10 list or something, we wouldn’t fall over because it was running on a crappy server in Perek’s basement, Google would just automatically allocate more resources to our app, and charge us for it later.
IaaS – Stands for Infrastructure as a service. This one is the ‘cool’ one. This is where providers offer Computers, servers, storage, networking services etc. This is all the stuff you think of when you think about IT nerds. You think about them plugging things in, and making sure that things don’t overheat. Running fiber optic cables, etc. All of this is stuff that small and big companies had to do themselves until the last few years. I know at the company I work at right now, we have multiple huge data centers across the country and we do all of that work ourselves.
So those three things combine to create “Cloud Computing” at a really high level. Amazon is a player in all of those spaces, but the stuff you’re going to hear about is that last one. Their cloud-based infrastructure stuff is far and away the leader. They have 31% of the market in 2015. The closest to them is Microsoft with 9%. Companies like Spotify, AirBnB, and even the CIA rely on them for infrastructure stuff. But where it’s MOST interesting is with the case study of Netflix. Check out this article from early in February where Netflix completed moving to Amazon’s cloud! https://media.netflix.com/en/company-blog/completing-the-netflix-cloud-migration
The Netflix product itself has continued to evolve rapidly, incorporating many new resource-hungry features and relying on ever-growing volumes of data. Supporting such rapid growth would have been extremely difficult out of our own data centers; we simply could not have racked the servers fast enough. Elasticity of the cloud allows us to add thousands of virtual servers and petabytes of storage within minutes, making such an expansion possible.
So I’d really recommend if people are interested in this, to read this article – here’s another quote if we have time:
The cloud also allowed us to significantly increase our service availability. There were a number of outages in our data centers, and while we have hit some inevitable rough patches in the cloud, especially in the earlier days of cloud migration, we saw a steady increase in our overall availability, nearing our desired goal of four nines of service uptime. Failures are unavoidable in any large scale distributed system, including a cloud-based one. However, the cloud allows one to build highly reliable services out of fundamentally unreliable but redundant components. By incorporating the principles of redundancy and graceful degradation in our architecture, and being disciplined about regular production drills using Simian Army, it is possible to survive failures in the cloud infrastructure and within our own systems without impacting the member experience.
So Netflix and these tech companies that deliver content online to users are the clear early adopters and users of cloud infrastructure. But the cost/efficiency/reliability benefits to these models are something that even staunch companies like the bank I work for are starting to seriously think about. Google is trying to get into this space and announced a little less than a year ago that companies like General Mills, Coca Cola, and Best Buy are customers of their infrastructure cloud products.
There’s a ton more to get into that I just don’t have the time or technical expertise to give a good treatment to, like Public cloud versus private cloud, versus hybrid etc. but hopefully this gives you guys a little understanding about how this is really changing the way the technology of businesses are being run.