Hello, guys. Welcome to Course 3. If all of you have completed Course 2, you did a lot with DragonBoard and this course is going to be not so much about DragonBoard but about the Cloud. First of all, I'm Ganz Chockalingam, you didn't see me in Course 2 and this is Ara [inaudible]. For those of you who did this previous version of the course, you probably saw Ara as a student but he's graduated and I'm going to let you say something about yourself. Yes. I went ahead and graduated last year as a Computer Engineering major and now, I'm working in the industry. But now, I'm back here to help teach the revision of this course in terms of Cloud computing. Okay. So as I said, this course is about the Cloud. What the hell is the Cloud, right? You probably, a lot of you know what the Cloud is already are. You've been using the Cloud without knowing what it is. So, like we're kind of go over some of the informal definitions of what is the Cloud, okay? Typically, a Cloud is a like software, which runs on the internet instead of running on your computer. A classic example is, you all used probably Microsoft Office one time or the other in your life. You get license from Microsoft Office. You install it on your computer. You run it. Then the files are stored locally and sometimes you lose them. And then, Microsoft comes with a newer version of Office. You update blah, blah, that's kind of running it locally. Now imagine a lot of you have used Google Docs. That's what's running on the Cloud. You don't get any license for it or install anything locally. All you need is a browser. You access the documents and the functionality online. Your documents are stored online. You do not have to worry about losing them because it's backed up for you. The only downside is you need to have connectivity whenever you're trying to access this. So, that's that classic example of things running on the Cloud. Mail is another example, Google Mail. Things are all done for you without you having to customize things in your computer. You just log in. Patches are made. Upgrades are made. What's the advantage of the Cloud is, y ou can create custom software without worrying about the hardware resources. Before the Cloud, you had an idea and you had to create liquid, not create but purchase the necessary hardware, the servers, the networking equipment to support your company. And then, you dial up the business logic, deploy your applications in the hardware. Run it and then you need to scale up as the company grows, and typically, 70 percent of the time you are putting your efforts towards managing the hardware and only 30 percent of the time, deploying the core business logic. But with the advances in the Cloud, this has been flipped around. You no longer have to worry about managing the infrastructure. You focus totally on deploying a business logic. So, we'll give you some examples of each of these Cloud. Embedded versus the Cloud. I know you all came to this course because of the internet of things. You have your DragonBoard or maybe the Raspberry Pi or any type of signal board computers. As powerful it is, compared to the Cloud, it's a little mouse. You can do a bunch of things in there. It's becoming faster, more memory, and all of that. But at some point it's going to break. There are certain computations you cannot run on there, you've got to rely on the Cloud. You've got to like offboard things. Okay. I'll do these things here. For example, a classic example could be image classifications. The DragonBoard already take a picture of something and you want to classify all the images, objects in there. You shoot off the image to the Cloud. Get back. Let it do the [inaudible] and you get back the results. So, it's kind of comparing a mouse to an elephant and all of course 2, you dealt with the mouse. Now, in this, we're going to focus on the elephants. There's not a single elephant you can expand infinitely on the servers in that perpendicular. And the way you communicate between that DragonBoard and the servers is going to be through http/json, what's called REST APIs. We'll dive more into it or you can even use binary using over http binary protocol. Let me switch to the next slide here. Before I be going to the Cloud basics, I want to kind of get one terminology out of the way. Virtual Machine. You all heard it. What is a Virtual Machine? You all have probably used the Java Virtual Machine which helps you run a Java program on any operating system without you having to re-write the code. You write the software in Java and there's a Java Virtual Machine installed on each operating system which kind of takes care of the translation regardless of that architecture. A Virtual Machine extends that concept further. Typically the way you use your computer is you have your PC or Mac or Linux box and you have an operating system enrolled, and you develop programs to that, it runs just on that operating system. You cannot port it across. What the Virtual Machine concept offer is emulate a computer inside a computer. For example I have a Mac, I want to run a windows program on there. I can install a Windows Virtual Machine and I can run Windows program on my Mac. So, it emulates the Windows OS on my Mac. Same thing, I'm going to run the next Virtual Machine on here. I can run multiple operating systems. It's an easy way to test and deploy. Say you'll repeatedly use the concept of Virtual Machine in the Cloud regardless of the service provider you use and VMware was of the original ones who did the Virtual Machine concept. So when you hear the term Virtual Machine is all it is an operating system running inside another computer emulation of an OS. Think of it that way. There are various flavors of Cloud Offerings. You'll hear these acronyms over and over. So, let's get that out of the way. First one is IAAS, as an infrastructure, as a service. Second one is Platform As A Service. Third one is Software As A Service. So, let's start with the easiest one first Software As A Service. What is a service right? You use services repeatedly in your life. For example, you may want a car but when when you go somewhere, you rent a car. Like, that's an example of a service. You go in there. You just use it when you need it. Return it. You don't want to deal with it. Eating out is example. You don't want to cook at home, you go to a restaurant. Eat, use food as a service. As the service is not owning it, but renting it when needed and just not having to deal with the ownership like that. So, let's go to Software As A Service. A classic example is the Microsoft Office. All these years, you install Office in your computer. You bought, paid license for it, used it. Consider now, a lot of us have switched to Google Docs or Office Online. That's an example of using the software as a service instead of buying it. None of us is paying anything to use Google Docs. It's free. Though if you have business accounts, you can be charged for it. The advantage of that is you don't have to upgrade the license every year. You don't worry about backing up your things, and it's there as a service for you. It's very convenient. The downside is that fact that you need connectivity when you want to edit your documents. You can be somewhere where you don't have connectivity, you can't access to Google Docs. However, if you had Office installed, you don't have to worry about connectivity, but you have to worry about a bunch of other things, necessarily backing up your documents, upgrading and keeping the software up to date, things like that. But, again, these days, connectivity is almost guaranteed depending on where you live. You may not, so that's the advantage of having a software as a service, not having doing it. Next, let's go to infrastructure as a service. What it is is you're renting the hardware required to run whatever software you dial up. Before infrastructure as a service, people usually deploy their own hardware. During those days, we had hosting providers, which provided Rackspace with earthquake-safe environment. You go and install your servers in there and they provide you power and all that. Those were the older days but, now, you can rent the Virtual Machine, the storage, and networking capacity. And, on demand, this can be changed and you can provision these hardware via web or a secure shell. In other words, you don't own the hardware. You cannot use them as needed and dynamically, go up and down now between hours of 10 and 11. I want three servers, three virtual machines between downtimes that won't last. Things like that. You can directly moving up and down. And, finally, it's platform as a service. It's like somewhere between software and infrastructure as a service. In this case, normally, you get the hardware. You also get the operating system middleware and certain database services. Let me clarify this some more by a real-world example. For example, infrastructure as a service. For example, in this case, imagine you want to cook something, but you don't have an oven, a fancy oven or like a convection oven and other things. What you say is, "Okay, I have a recipe in mind I want to build." It's equal often app idea or a company idea you have, and you have all the ingredients to do the recipe. In this case, it can be like tomatoes or spices. So, you go to this guy who rents all the kitchen equipment for you. You cook there, use your ingredients. You're just using the infrastructure and this guy has like maybe 20 ovens or 30 ovens. If you want to scale, he can say use five of mine or 10 of mine. So, that's an example of using infrastructure as a service. And when you're done, you don't own the equipment. You walkway. Next, platform as a service. You have your recipe, but you don't have the ingredients or the equipment. You go to this place, say, "Okay, I have this recipe. Give me the ingredients and the equipment." Same as kind of the guy producing not only the hardware but the operating system, database services and the middleware. That's kind of the equal of ingredients. You just cook, then you create your fancy company or whatever, and you make use of it. Finally, the software as a service. You just go out eat in a restaurant. You don't care about cooking. You just eat kind of the way you consume Google Docs, right? They take care of the software and everything. You just right some whatever you want to write. You just eat. You don't even bother washing dishes. You come out. So, that's like everything managed for you. So these are different layers. Usually, you don't think about it like, "Hey, what am I using? Platform or internet?" You go to the right provider. It's all different employees. Each one provides various layers of these services. So, just keep these acronyms in mind when you come across them. Okay. Makes sense I equate that to this eating out analogy like that, you will see what I'm talking about. So advantages of the cloud. Many many many advantages. First one is, you pay based on usage. Say you have a great idea for a start up and you put it out. Initially, no one's going to know about it. You probably going to need only one server. If you're going to just not use the cloud and you're going to start small, imagine let's say you suddenly feature on some talk show. Oprah or somebody features you. Everybody gets excited, "Oh, cool thing," like and then you've got only one server. It's going to melt down pretty quickly. It happens a lot actually, you get featured and you don't have the capacity to scale up dynamically because, you don't know what check your back, who's going to come to you. So you say, "Okay. I'm going to buy 100 servers in case I'm getting featured somewhere else." But, you know, you maybe not featured anywhere. It's not using the service to maximum capacity. So, you have to invest in these hardware which you're not using at all. So, with the cloud that goes away. So, with the cloud there's no capital costs. You don't have to buy these equipments. And if your company goes down, you're not stuck with a bunch of hardware that you have to auction out, which has happened in some of the companies I've worked with. In fact, they auctioned all the furniture in that company and they said, "Okay, you've got to buy the furniture, the hardware and some of our IP was sold with the furniture." So, you know, these things happen. In this, when you use the cloud, you don't own any hardware. You just walk away. That's good so there's no capital costs. Third, the elastic scaling I mentioned about. It's not like your service is going to have constant demand all along. Take for example, Wall Street, right? They trade Monday through Friday, daytime. Lot of demand. But once market closes around 4:30-ish, there's zero demand. So you don't need a thousand servers. You just need maybe one for post trading. So, the cloud offers you the capacity to scale dynamically. You can like within a minute say, "I want 100 nodes now." You can go up on it's on demand so you can scale. Almost every service has periods of ups and downs. I find this interesting example. eBay was looking at its network traffic and they saw on Wednesdays there was a ripple. It was kind of low and spreading across regions of US starting in the West Coast all the way to the East Coast, ripple across. They were able to tie it to the show called American Idol. It was a singing contest where people had started watching in the East Coast first and they were not on eBay that much because the show was so popular, everyone was watching the show. And slowly as a show in the Midwest and the demands were coming up so you can see network traffic. So, these guys can scale their loads of the regions in a cloud setting based on demand. Again, the biggest advantage is time to get to market, right? You got an idea, you want to get to market quick. And before you had to build the infrastructure for it, the hardware infrastructure. Now, you don't have to worry about that. You just go to the cloud to scale up and down as needed. Just focus on your core. What is your original idea? Just build a logic for that, not worry about. So, again, what I'm trying to say is you have this great idea for a recipe, which require us to cook in a certain way. Just don't go buy 10 ovens and like all these ingredients are there for you. Just try it out in the cloud setting. If it doesn't work. You don't have to worry about selling the ovens or 1,000 ovens but, if it takes off, it also gives you the advantage of scaling up very quickly. If your cupcakes are so popular, you can go up to 1,000 ovens for the weekend and scale down as needed. So there's no reason not to use the cloud unless your company requirements are security pattern where it can't be in a third party infrastructure. Where you got to host it locally, you would do that. But, if you're just testing out some ideas, these days it's very easy to get in the cloud. For example is, before you had to build a skyscraper took a lot of effort in terms of IT sense but now, you initially built a little house and eventually you think it's going to be a skyscraper. It's easy to scale up and down. Those are the advantages. We want to talk a little about the various cloud providers. Some of the leading providers are the usual suspects: Google, Microsoft and Amazon. Let's start mentioning a bit about each of what they offer. Google Cloud platform. There are a lot of features but lot of them lean towards big data and machine learning. I don't know how many of you in this course are inclined towards Big Data but, they're not data other ones don't support, but Google is really good at big data. They charge you based on per minute rather than per hour, which Amazon does. Of course, there's Microsoft Azure. As expected from Microsoft, their offer is kind of centered around Microsoft products so if you think your technology wants a lot of Microsoft, you may lean towards that. And finally, Amazon AWS. AWS stands for Amazon Web Services. Their APIs are very evolved and has the most services. I mean, there's a mind-numbing number of services Amazon offers. They don't typically cater to their software as a service model. For example, they don't do things like Google Docs, there's no Amazon docs. They are more focused on infrastructure as a service where you go do you own things. So, each one has their own strengths and weaknesses. And the documentation community is very mature, almost everyone is on AWS. But, in this specialization, we decided to go with Amazon AWS. Few reasons, there is a free tier available for most countries and unless you're just trying out ideas for this course, you can get away with your Free Tier. I think a lot of you are from maybe India, China, Brazil, US based on the stats from Coursera. You all have access to a free account, and unless you're doing something really crazy, you should fall below the threshold and which is good. It also offers an IoT SDK which we will cover in this course. So, we like that. And finally, I want to say, I know a course like this people are very passionate about things like IDE, but now with Java, C, C++ because it's the best, that's the best, Unix, Windows. So, you'll probably feel that way about this too. Feel free to choose your own platform we're not against it, but we cannot simply cover all three platforms, it's just too much time. We decided to choose AWS. But you're free to go with Google or any other platform you choose, as long as it's on the cloud. We just want you to leverage the power of the cloud. But this is going to be centered around AWS, all our topics here. Couple of examples of unique cloud services I want to talk about. First one is this Amazon snowmobile. At first, I thought it was a joke but it's so true. It's a truck which comes to your data center. Let's say you have huge amounts of data locally stored in your infrastructure whatever it is, for example it's like Netflix. They have so many millions of movies, so much data. I think that Netflix has three petabytes of data where all the movies are stored, that's huge amounts of data. And imagine Netflix says, "Okay. I want to move from our local premise-based infrastructure to the cloud." You may think, "Oh, boy. That's not a big deal to upload to the cloud." But big data takes a long time to upload to the cloud. Big data is typically terabyte where it's faster to mail the data or postal services than to upload the data over the internet. It's faster. It gets there faster just like ship it to them. So this truck can transfer an exabyte of data. An exabyte is 1,000 petabytes. That's like almost 300 or 500 Netflix companies combine all the data. When you have so much data, you say, "It's going to take me months to get my data to the cloud." Amazon says, "Don't worry about it. We're going to drive our truck up to your data center, suck all your data in, and drive it to our locus data center, transfer it, you're done." So, it's just days and you start saying, "I don't know how many months, it depends on the speed you have to upload to the cloud." So, they are leaving you with no excuse to be on the cloud even if you have like huge amounts of data. 500 Netflix companies or all the satellite imagery out there. You can drive it. As they say, it comes in circles. This IT technology I've seen before PCs came around, you had these dumb nosy log into mainframes, used things and PCs became cheap, so everyone had a PC. Now we have gotten back to the cloud where everything is in the cloud, you're logging and doing things. And here's an example, the snowmobile, where you're uploading information faster on the cloud. But now, you're saying, "No, it's faster to drive your data than upload your data within them." So, in circles. I don't know what the next cycle would be. Another example of cloud services which I think you can use in this course is Google Cloud Vision. Google has a bunch of APIs cloud platform. One interesting one is this Vision where you can identify images, do OCR. Imagine like you've got a picture of a license plate, you want to figure out automatically what that thing is. So I want to do a little demo here of Google Cloud machine because I just don't want to talk all about Amazon, I want to give you a little flavor here. So, if you go to this URL I've given you, there's a demo up here. I want to show you. I'm going to do an interactive thing. I'm going to drag and drop an image here. It's an image of a beach, and drop it to the Google Cloud services and it's analyzing the data and it shows me what it sees. Look at that. It thinks it's a beach. It's a body of water and it think it's a Caribbean. And I think it's a Caribbean. It's the tropics. It's a resort. It's a shore, vacation, coastal ocean land forms. And so, one of the things you can do on this course is imagine you have access to this cloud service, in your DragonBoard you can take a picture, upload it to the cloud. In fact, we're going to show you. Use this Google Cloud service. It's going to return you all the things it sees in your image whatever your picture is going to be of. Don't tell me. But an example could be, I'm trying to think, you can put your camera outside looking at cars driving by. I just came across this app. Actually, it's a product you can install this camera outside your house. Actually it's concealed as part of a lamp. And when someone comes in and rings the doorbell, this thing takes a snapshot and sends an alert to your phone, and you can tap on it. It doesn't matter where you are, you can tap and view the person who is ringing your doorbell. And you can talk to this person and it'll come over the microphone on the lamp, so they'll think you're inside the house, but you could be vacationing somewhere to pretend like some reason. This is an example of vision of things combining various technology. You can maybe combine that image from the lamp with Google API, map it against people you know. You can create a database of persons and Google Vision compares it with, "Okay, who's ringing the doorbell. Is it some solicitors, a person, your neighbor?" So it can connect all these services together, do things you want to do with the DragonBoard and when you run out of power, offload it to the cloud. There's a whole slew of services in the cloud which you can leverage, and it's pretty easy to leverage. We'll talk about that bit of APIs later. So, that will give you an example of cloud services. Let me summarize by going back to the slides here. Next slide I want to conclude is, no reason to run your own servers anymore. Don't be buying Teras, just go to the cloud and by the end of this course we guarantee you'll be familiar with all the services. It's not difficult to use these services, especially the AWS. It's pretty easy to come up to speed. So you learn to leverage the power of cloud services, and, in fact, I didn't talk about the IBM Watson cloud services you have. Just like Google, it's simple as KPIs. There are a lot of health-related, what's that? Is that deep blue? What's the-? The Bluemix I think. Bluemix? Yeah. They have that Bluemix available on the cloud, you can use it. You can do some cool projects within the DragonBoard. What's amazing is, all these are powerful services. I would find it mind boggling to include myself all these image analysis, but it's developed and mature and you can use it like that. With just a few APIs, you can draw an image up there. It's going to give you everything you want. We're going to do a bunch of hands-on projects in this course leveraging both DragonBoard and AWS, we just get you started with it and you can use your imagination, run wild come up with your really awesome projects. So, that concludes just my introduction here. We'll in the next step talk about some of the Amazon services available. But I think this is a good mix of things not to bore you all with embedded, just pull you onto the cloud, you'll be the master of both universes and you're going to go wild after that. Thank you for joining us.