Advantages of Cloud Computing
A free video tutorial from Scott Duffy • 415.000+ Students
Bestselling Azure & TOGAF® Trainer, MCT
4.4 instructor rating • 22 courses • 419,137 students
Learn more from the full courseAZ-900: Microsoft Azure Fundamentals Exam Prep -Sept 2020
Learn the fundamentals of Azure, and get certified, with this complete beginner's AZ-900 course, includes practice test!
03:06:28 of on-demand video • Updated September 2020
- Pass the Microsoft AZ-900 Azure Fundamentals test
- Earn the Microsoft Certified Azure Fundamentals badge
- Learn the main concepts of cloud computing
- Understand what services and solutions Azure offers
English -: Welcome to part one of this course talking about cloud computing concepts. Now, these are general cloud concepts, not specific to Microsoft Azure. Azure is not the only cloud computing provider out there as you know and so some concepts are universal. So if you find yourself wondering if your next application development project should be running on your own server, hosted in your own environment or use some type of traditional data center or external web host, or if you should use a cloud computing provider, this section goes over what the big benefits that cloud computing has over those other types of hosting. This video talks about the benefits and considerations of using cloud services. Now remember that you can change the speed of this video if I talk too slow for you or too fast or maybe you already understand the concepts and you just want to quickly review them, there should be a speed adjustment option in the video player. In this section of the course, we're going to be talking about the first section of the exam which is understanding core cloud concepts. So if you look at the exam landing page, the AZ-900 exam has the following cloud concepts they want you to know and there's a lot of them. So this is going to be, we're going to go sort of go through definitions of these terms, we're going to compare and contrast them against each other. You can see terms like availability, scalability, elasticity, economies of scale, CapEx and OpEx, consumption based model, as well as terms like Platform-as-a-Service and Software-as-a-Service, and public cloud and private cloud. So these are sort of these foundational terms, concepts that are not just specific to Azure but are specific to all of the cloud vendors. These are the basic ideas. The first one we're going to talk about is the concept of high availability. Now, even in general, the concept of availability is what percentage of the time your system responds to user requests properly. So if you think about a website like Google, Google.com, the search engine, there's a pretty high expectation that when you enter that into your browser, as long as your own internet is working, that Google will serve you up a webpage with text box in it and you're able to enter in a term and get back a list of search results. That is a basic expectation and basically, the world would fall apart if that stopped working, right? So you would expect Google search has a very, very, very high percentage of availability. I don't know what, if Google publishes their own expectations for that and if they publish the back history of how that was, but they probably have a very, very high percentage of uptime. Your own WordPress website might have a lower percentage of uptime. For instance, if we go back in history for six months and we look at the log files and we see that your website needed to be rebooted this many times. WordPress was installing the monthly patches or you had a new plugin and it was going to break something while you were fiddling around with it, then you might have many, many minutes a month of downtime where that, your website's not properly serving but then it might not be that important. Okay, so importance of a Google.com versus the importance of your own WordPress site, there's going to be a discrepancy there too. So we look at this 99.99%, it sounds very high. It's basically 100 in most people's view but in the view of IT, in the view of computers that is four minutes a month of acceptable downtime. So certainly Google.com would not want four minutes a month of downtime. They would want their site to be much, much closer to 100, whereas your WordPress site, maybe four minutes would be great and you would love to only have four minutes a month of downtime. So that's the concept of availability. Now related to that is this idea of scalability. Now scalability is your website's ability to grow as your users and your number of concurrent users grow. So every system, even Google, Amazon, Facebook, your WordPress site, has a maximum capacity. There's going to be a number of users that are trying to access your site after which the next person's going to get an error message. Okay? This is inevitable. Even, like I said, even Facebook couldn't handle two billion people trying to access Facebook at a very given instant, okay? So your application has a failure point. What you want is for that failure point to be much higher than your current maximum number of users and let's say you publish a particularly popular article, you would want the ability to grow very easily. You want to be able to go to a higher level of server. You want to be able to add a second server very easily or to have caching kick in once you get to a certain popularity. So if you can grow your number of concurrent users easily then you have a scalable system. If you would need to then go and order a new computer, wait for that to arrive, install the software, set that up, back up the data, restore the data, if it's going to take you a week to grow your application in scale, then you do not have a scalable system. Within cloud computing, one of the great benefits of cloud computing, is this concept of elasticity. So we talked about how being able to easily add more capacity to your system makes it scalable, the ability for a system to automatically grow and automatically shrink makes it elastic, okay? The very much similar to the concept of an elastic band. It has the ability to grow and to shrink based on demand. So if we look at the user demand for your system, I drew this kind of crude graph here, but if you look at user demand for your system as going up and the subsequently going down, if your system can grow as the demand grows and shrink as demand shrinks, that is optimizing the system, that is improving the efficiency. Everything between the curve and the lines is a waste. That is a CPU that is not being used. That is a storage device that has got excess storage. Anything that is between capacity and demand can be looked at as a waste and so one of the goals of the elasticity of cloud computing is to minimize waste and to be as efficient as you possibly can in the usage of computing resources. The next topic we're going to talk about is agility. Now, because you have the ability within cloud computing to go and create a new server within five minutes of you having the idea, then you have the ability to respond quickly to changes in the market, to changes in your environment, to any sort of ideas, to test things out. The fact the cloud computing provides you hundreds and hundreds of services that you can choose from, pay-per-usage, fire them up, try something out and then close it down without any ongoing costs gives you the agility that you need to respond to a rapidly changing market. So if you worked in an environment where you had computing services provided, there was a contract involved and all you had was all you had, you could not request more, that would sort of tie your hands in some ways. So there's an agility element to cloud computing. Now we were talking at the beginning of this, talking about availability. One of the ways that you gain availability is your ability to tolerate any kind of failures. Listen, the fact that computers fail all the time. Power supplies go, hard drives die, right? Memory gets bad et cetera, et cetera. Within computing, basically hardware does fail from time to time. I once heard, and I don't know if this is just a story or not, but you think of a site like, you know, Google.com has a million servers serving those search results that at any one time those servers can die and the story that I heard is that there's something like a hundred thousand dead servers within the Google search network and they don't fix them, okay? That's commodity, that's servers are to Google, but it's basically their resiliency that they have to faults, okay? So you do not, if a fire supply dies, or your networking dies, can you handle that? And that's what's going to get you the availability. So if you had four copies of your web server and four copies of your files distributed over the globe and one of them was to die, one of them was go go down, the other three could take over and that's fault tolerance. But we're not all Google and if we had a hundred thousand servers that had died, we would probably want to try to restore from them. And so let's say a disaster does happen. A flood happens or a power outage happens and how do you recover from that? Okay, so the ability of a system to recover from failure, now, within the concept of recovery, there's both the period of time and how much data did you lose. So let's say you did backups of your server offsite every hour, then if that server was to die, let's say there was a flood and the computer just got totally destroyed, the most you could lose is an hour because you had a backup from less than an hour ago. The second part of that is how long does it take you to get that backup up into a new system and switch over the traffic so that the new system has taken over. So it's the amount of time it takes you plus the amount of data that you possibly lose. Obviously, to get a highly available and recoverable system, you would have much more frequent data backups and you would have systems running, maybe already running, or ready to be run in order to minimize the amount of time it takes you to get back. If you would have to go to Del and order a new server and wait for them 24 hours to deliver, then your system could be down for many days under the non-cloud model. The next concept is called economies of scale. Now, economies of scale is this concept within economics that says that the more that you purchase, the better your buying power essentially. So if you were going to go to buy a million servers or a million hard drives, you're going to get the best possible price that vendor can give to you and then you're going to be able to set that up in your environment in a super efficient way. You're going to develop, Microsoft has these server pods. They come, you know, you just get them get delivered, a truck drops them off, they can plug them in and you got a basically a little server farm going just by plugging in some cables, right? So Microsoft and Amazon and all these cloud vendors have developed ways for them to have a cheaper cost of running a server than you could possibly ever do yourself for a single server or for even a few dozen. So that's the concept of economies of scale. And so that's when you get to something like that, then Microsoft can turn around and offer you a gigabyte of storage for two cents a month and you think, "Wow, how can they offer that for two cents a month?" Or, "How can I get a server, a Windows server, "from Microsoft for less than $20 a month?" They do that because they have that economies of scale. So next up, we're going to talk about a couple of financial terms. These terms are capital expenditure and operational expenditure, and this is abbreviated as CapEx and OpEx. Now capital expenditure is basically looked at in business as an investment. If you were to talk to your CFO, or talk to the owner of the business, they would say that they're going to take a million dollars and they're going to buy a building or lease a building and they're going to buy some hardware, buy some computers, the networking, all the investment that goes into getting that installed and that's an upfront cost. Before they've even made a single dollar from that investment they have to spend that money. And so what they expect over time is that building and that hardware is going to return them money as a return on investment. So they say, "Well, we spend a million dollars, "but that's going to return back to us "a hundred thousand dollars a year," and that's a 10% ROI and that's the kind of investment that they're looking for. And so that's, a CapEx expenditure is basically upfront money that is treated like an investment and you can't even deduct that from your taxes, depending on your location, I guess, but typically, you're going to have to take that as a depreciation. You get a hundred thousand dollars here to deduct from your taxes in terms of the depreciated cost and you can't just take the whole million dollars in one shot, okay? That's opposed to operating expenditure or OpEx. So OpEx is basically your operating expenses. It is the cost of doing business and you've got, you're not, in the case of the cloud, you're not paying for Microsoft's building. You're not paying for those servers in a lump sum cost. You're paying by the hour and basically, you're going to get charged every month in terms of the bill coming to you. And so you're basically using the money that you're making to pay off the expenses as they come in and you can deduct those expenses from your gross revenues to make your net profits. And so operating expenditures are preferred by many businesses compared to capital expenditures because of the favorable tax treatment and the fact that your making the money that you spent. If you spent a hundred dollars today, then you're making $200 in revenue and so the money's basically being paid for day by day instead of taking years and decades to get back to you. The next core concept we're going to talk about is this consumption-based model. So, in the CapEx versus OpEx discussion we were saying, you know, some companies would go and spend a million dollars on a building and on some computer hardware and all of the investment required to set that up, but cloud often operates in a consumption-based model, which means, that not all services are like this, but most services or some services, can be paid for as you use them. So if you look at, like, Azure functions, we're not going to get into specific Azure services quite yet, but it's the kind of thing where the number of times the program is called, you get charged one fraction fraction fraction of a cent every time it executes and that's a consumption-based model. Now, within the cloud, you also do have hourly, which are time based models essentially, or monthly, okay? So if you want a virtual machine, it would charge you a dollar per hour or 10 cents an hour depending on which machine you get, and so if you use it for an hour, you pay only for an hour, if you use it for 24 hours, you only pay for 24 hours. It's a time based model but there are many services within the cloud that basically charge you per execution, storage. An unmanaged storage account will charge you per gigabyte, so basically for every service that you use, you pay as you consume it. So it can be pay per minute, pay per hour, pay per execution.