字幕表 動画を再生する 英語字幕をプリント TONY VOELLM: I head up the Google Cloud Security Performance and Test Team. I've been working on Cloud for over two years now up in Seattle. And don't let my title fool you. It says "Engineering Manager," but managers at Google are different. I really do get my hands down in the code. In fact, I checked something in last week, and about five minutes later, somebody on my team fixed it and checked it in again, so. [LAUGHTER] TONY VOELLM: I've done a bunch for Cloud. Some of the things that are externally visible for Cloud is I created the Google Compute Engine Units-- GCEUs. And we'll talk more about what Google Compute Engine is later. Being the engineer I am, I thought, wow, GCEU, it's really cool. We should call that GQs, because who doesn't want GQs-- or, which engineer doesn't want to be GQ. And now you know why I'm an engineer. OK, great. So here's what we're going to do. We're going to talk about cloud computing. So I'm going to take a quick step back, talk a little bit about what cloud computing is. I'll take you through some history about how we got to where we are today in 2013. This is a history of cloud computing. Then I will definitely take you through the Google Cloud. I'll give you pivots of what the Google Cloud looks like, how we think about it, how the industry thinks about it. I'll run through a series of demos. And then, to prove I'm an engineer, I'm going to take you through the pitfalls. And this is how you know I'm not a marketing person, because a, my slides are not pretty; and b, I'm going to tell you why things may not work for you from time to time. And in the end, I'll just wrap it up with the Team and questions. So with that, let's dive in. So what is cloud computing? It's a good question. I had this question two years ago. And in fact, I probably still have this question today. But one of things that I did to try to figure out what this industry is, is I started looking different places. I go do web research, Google search. I looked up at How Stuff Works, and they had a really interesting definition. They talk about remote machines owned by another company, and like maybe your email and word processing would be out there. And this seems like a really dated definition, but it's actually still fairly accurate. I did things like go out to conferences, because there are several conferences that happen throughout the year around cloud computing. And in there, you'll see interesting terms, like Hadoop elastic environments, grid software-- there's all these terms that start to pop up. I even went out and started to survey my peers at Google, like, what do you think cloud computing is? And you can see down here, they start talking about, oh, it's this computation that you can do in the cloud. You don't have to worry about stuff. So what I did is I said, OK, well, with any definition, let's pull together the properties of cloud computing, because there's certain things we're hearing often in these definitions. You know, one was nothing-- nobody cares where it is. Everything's accessed over a network. So cloud computing is something that happens in the network. That's sort of like the beginning of what cloud computing is. The second part is a really important part, which is utility. You can turn it on or off. You pay for what you use. And when it's not on, you turn it off. It's like a light switch. So if I want a database now, I have a database. And if I don't want a database in five minutes from now, I turn it off, and I'm not paying for it. There's an elastic component where resources grow and shrink on demand. And you've seen this many times across like YouTube scalability. We broadcast the Olympics. And whether one user is watching, or 8 million users are watching, it all seems to work. And so there's this elastic component on the cloud that. grows and shrinks on demand. For sure, it's programmable. Programability is an important aspect of Cloud. And then access control models. So here's where there's some pieces we'll talk about later, where like software as a service, versus you developing your own code. And platform and infrastructure as a service layers, where access models are different. There's some models where the end user owns the control, and there's some where the person providing the service owns the control. But there's some method of controlling access to data and resources. And while not required, there's this thing that often comes up, which is multi-tenant. Your workloads run side-by-side with somebody else's. Some companies, this can be concerning-- why is Company A and Company B running on the same server? We're competitors. We don't want our data anywhere near each other. And it's really the cloud providers that create this partition or this barrier between those workloads. So there's no flow of data from one to the other. And this is called multi-tenancy. So I tried to be really smart. I'm like, OK, that sounds really good. So let me give a definition of cloud computing that tries to roll in all these sources of information. And my definition is it's a set of programmable resources that's pay-per-use. It happens over a network. It's elastic. And it removes the developer from having to worry about the hardware resources, the operating system, or all these minutias that she doesn't want to worry about. And she can just focus on delivering the application that she wants. And it's there, and it grows and shrinks on demand. So that's my definition. So that's cloud computing in a nutshell. So here's a little mini-quiz. So I'll just take a quick show hands. I'm only going to go through a couple of questions to see if things are already resonating with everybody here. So is Gmail cloud computing? Yes. It could depend on perspective. One perspective is Gmail is a hosted software service that companies can buy. You can buy Gmail. And for some nominal fee per month, you can host your mailbox there. So on the upper end of software as a service-- this is where Google started-- yes, Gmail, I would say, is cloud computing. Now what about hosting Python applications. Is that-- show of hands-- is that cloud computing? Yes. Yeah, it has the programmable aspect we talked about. It's elastic. This is where Google App Engine enters the picture. Here, let's try one more. Are physical servers hosted by a hoster-- is that cloud computing? Yeah, it depends. Yeah, this is the one that gets sort of tricky is-- if you can on demand request these servers, and have them go away on demand, then you sort of enter into the cloud computing, versus just pure hosting. We tried this whole thing in the '90s called application hosting and server hosting. And so, what's different today is this whole elastic component. And you might be thinking already, like, why is all this important? Why is this definition of cloud computing important? And so I asked that question, too, actually. Like, why is this important? And so, I went out, and I found this "Forbes" article. And I realized that not only can Google help you find dating sites, we can also help you on your dates. Where it says, "some fake it to make it," where there's 17% of us, apparently, that on our first dates lie and tell people we know what cloud computing is. So I'm here to help you with your dating. That's really what this is all about. So cloud computing. OK, so let's go back. So let's go back and let's talk a little bit about history. So computers-- they've been there for a while. Almost 60 plus years now. Hard to believe we've lived with technology that long. But in 1961, John McCarthy, also sort of dubbed as The Father of AI, was living in a world where there were very few computers relative to today. There were 6,000 computers. And he had this thought. He said, computation one day will be a utility. For him, this was really important, because there were so few of them, and it was a constrained resource. But it kind of made sense. He was predicting the future, that one day we will get to a utility. Now the way we got there is very different than perhaps he expected. But nonetheless, some credit goes to him in terms of thinking about, yes, computers could be a utility one day. But before we could get there, something had to happen. We had to have the internet happen. We didn't have an internet in 1961. We had some sort of point-to-point stuff. People were trying things out. But it wasn't until 1969 that ARPANET, the predecessor to the internet, happened. And at the time, transfer speed between computers was 50 kilobits a second. And to give you an idea of what that actually means, because it's hard to sometimes think about all these bits-- your cell phone's about 2000 times faster than computers could talk to each other back in 1969. Some other things had to happen. We had to have the microprocessor revolution. That started roughly in 1971. And so after the microprocessor revolution, the internet's kind of there. We have these acoustic couplers and modems. In the '80s, we have the BBS era. This is where you have laptops. They were called luggables. You'd carry them around like this. They were like 67 pounds, or something like that. This is an example, it's the Kaypro. But something interesting happened where services started to show up, like CompuServe and GENie. And you would dial up, and for $0.10 a minute, you could access this super awesome service. And all you wanted to do was find out where the free BBS was. So you could go connect to this free thing, and start to share files or data. And so you'd go connect up to something, like Koala Country, which was free. And so there was this whole sort of culture around the internet starting to happen-- connectivity, sharing. Data should be universally accessible. So roll time forward a little bit. So from the '80s, if that was our BBS era, we really needed the '90s to happen, because these are pretty important to where we are today. So in '93, if you can believe it, this is the Mosaic browser. It was first to enter in the scene, and make the internet a lot more accessible. Prior to that, we all ran LAN line tools, like Archie and all these things he hope to forget one day.