1. App Engine Virtual Machines – PaaS
All right, welcome back. Let’s go ahead and talk about developing on the Google Cloud platform and specifically using App Engine. So App Engine is of course another form of virtual machines that you would use. Essentially, these are managed servers; it’s a managed service, essentially. And so, basically, it’s auto-scaled. And again, you could use this for web apps and the back end as well. Now, one of the things I wanted to point out with this is that you have the standard and flexible versions. It’s very important for the test that you know the difference between App Engine standard and App Engine flexible.
And so the scenarios are similar to this. You’ll get one of the case study questions, and it will ask you about the applications that are being used in the case study that are listed. And you’ll need to know if that application language is supported or not. So again, Standard supports Java 7, Python 27, only Go, and PHP. Now, if you see anything on specific versions of PHP or Python, then be very careful with the answer or custom run times. That’s just a sampling of the major distinctions. That’s about all you would need to know for the test. I did want to make sure that you got that. Both of these environments, like Google App Engine, are essentially platform as a service. It’s fully managed; it’s basically scaled to zero; it supports your common languages like Java, Python, PHP, et cetera. And it is a flexible environment; it supports Docker.
Again and again, you can run any language in your container as well. So again, if you want a custom runtime environment, this is a great solution. So again, just run anything you want. Excuse me. In terms of Google App Engine architecture, you have your front end, your load balancing, your App Engine front end, and then you can see that there is a task queue, it’s tied into cloud SQL, and there is also a cloud data store for storage. And in the App Engine back end, that’s just a high-level overview. Now, one of the things that we want to do again is compare the differences because, again, on the test, they seem to think this is important. So you can see that standard instance start uptime is a lot quicker than flexible as far as background processes are concerned; again, there are some differences there. What I had seen on the task was mainly focused on what languages are supported. So again, if you need NodeJS, you have to use the flexible version.
If you need a specific version of PHP, you may need to use Flexible. For example, another area that I want to point out is being able to write to a local disk. Again, you can see how flexibility allows you to customise your boot up, for example, by writing to a local disk. I mean, now with App Engine, again, the cloud libraries are as follows: installation, you want to go over here to the SDK. Installation of the libraries requires that you extract them again. That’s the script there. Once installed, SH can be activated using the G cloud utility. After that, do you want to create a key file? I’ll show you how that’s done.
2. App Engine Demo
Welcome back. Let’s go ahead and do a quick little show-and-tell demo on App Engine again for the test. You don’t need to know too much, but it is important to understand a few things about App Engine. Number one, it is a platform as a service.
Number two, it comes in two different environments. So do know that App Engine is standard and flexible. Remember that App Engine standards are typically good enough. But if you need more flexibility, like custom runtime environments, or you need some kind of ability to have attached discs like a thermal disc, then you need to go with flexible. And then another good reason to go with App Engine is just the fact that you have so much flexibility in your development processes. It’s got a robust SDK, and of course we talked about some of that already in the preceding slide deck. So all I wanted to do here was make sure that you could easily get to App Engine by going over to compute App Engine and Dashboard. I was saying I should have just clicked. So anyways, you can see that I have AppEngine running now before you set anything up; if you don’t, you’re not going to see anything here. You’ll have a little box here saying, “Go ahead and start with App Engine.” You’ll have to set up and download the APIs that you need as well as go through the process. Now, my recommendation is again:
if you need help with anything, just follow the documentation or the wizards that are available as well. So you can go over here and select Instant Summary. So basically, what I did was deploy an instance, but I don’t have an application running in it. And so again, this is just for show-and-tell purposes. So there’s really nothing going on really. But I come over here for services. You can see that this is the last version deployed. And then let’s say I want to diagnose what’s going on. Let’s say, for example, that I’m developing an app. I don’t know why it’s clocking out. Go ahead and go over to Logs or Debug. It can help facilitate some of those versions. This will basically tell you what version of the instance you’re running is.
It will let you know the traffic allocation that is running, tell you if you’re running, what the runtime environment is, when it’s deployed, et cetera. View the configuration over here so you can see it deployed. At this time, you could tell this was running beta, et cetera. Then I move on to instances. Now again, you can see that there’s nothing really running. There is one instance you can see, and that’s about all there are queues for. Anything else going on would show me. Now. daydaydaydaydaydaydaydaydaydaydaydaydaydaydaydaydaydaydaydaydaydaydayday Now you can see that I didn’t set anything up there. But again, if you want to create a Blob store, you can do that. But basically, it says you really should be using Google Cloud Storage. And again, that’s the recommended process: just use Google Cloud Storage. It’s just more flexible, et cetera. But if you click there, you’ll see that it explains the various environments. It tells you about quotas and limits and everything like that. So, once again, not much else to say. Now, me cache basically gives you the ability to run some of these processes in memory.
If you want, you could share the cache or you could dedicate the cache as well. Classiest effort there is. You can see that it’s shared or dedicated. So you could dedicate part of that, and then you could dedicate a specific size as well. But remember, too, that your billing will be affected. So again, only do that if it’s really necessary. You could also flush cash over here as well. If you had a fair number of instances running, you would go here. If you need to find a specific one, go ahead and search for it. Then you go over to settings, where you can see that these are the default settings. This is actually pretty cool. You could go ahead and set a custom domain. So you can set up a custom domain, for example, to route it essentially to your pass essentially. So again, you could do that. You could also register a new domain as well. So if you’re developing, let’s say, an online game application or something, and you want to have a custom domain name like, I don’t know, Smurfsattack Baltimore.com, and you go ahead and register that domain, you can literally send all the traffic to your App Engine instance.
So that’s pretty interesting. And then, as well, you could upload certificates as you choose. So again, now remember, for App Engine, I’m going to reiterate three things, okay? Remember, App Engine is a platform as a service. Remember that App Engine has two environments, right? Remember, it’s standard and flexible. Finally, keep in mind that the app engine supports Python, Java, and PHP. Nodes Nodes can now only be used in a flexible environment. And then there’s another difference; let’s return to the chart. I don’t know if I covered that very well. So I’m just going to go back here, right here. So one of the things too is that it doesn’t really show it, but the virtual machines are inflexible. Standard allows you to expose your virtual machines to the outside world, but this does not occur. So, once again, recognize that flexibility requires a little more effort. It’s not as managed in that sense. You need to be aware, for example, of the number of processes you’re running.
You may have to do some SSH, debugging, et cetera. But again, App Engine is a pretty cool tool for the right developers. Also, I didn’t mention micro services, which is a little outside the scope of what we’re discussing here. You could definitely run micro services with App Engine as well. Now, the services are essentially a way for you to take different parts of applications and be able to have little micro services as part of that application doing different things. So, for example, if you need to isolate services or split traffic, that’s a great way to use micro services. So, once again, that capability is defined by App Engine and whatever languages you’re using for development; you could also auto scale, write those services to load, balance, and have real-time specific identity management. So that’s about all that I had with the demo part of playing around with App Engine. But again, you’re looking at a question or two—no more on the test around App Engine directly.
3. Cloud PUB/SUB
Okay, so let’s go ahead and talk about Cloud Pub Sub: what it is, why we want to use it, and why it’s so important to know for this specific exam. So Cloud Pub Sub is a fully managed, real-time messaging service that allows you to send and receive messages between apps out.
Basically, if you’re a developer, you want to be able to send messages between apps. It could be everything from acknowledgments to sending data packets to payloads—whatever you want to call it. Messages could be sent in several different ways. But again, we’ll go through the flow here in a minute. But it’s asynchronous now for the test, and you want to know that it’s asynchronous communications. What it does is actually decouple the sender from the receiver, and it does have benefits over direct communications as well. So again, a lot of it is built into how you can send messages and how you can basically have applications decoupled from each other.
Again, many different things So what are some of the global benefits of these skills, globally? So again, you could set this up on a global level. This could be set up from one region to another. Very low. Latency also has dynamic rate-limiting availability. Again, it replicates the storage of messages. So whenever a message is sent, it is also replicated and stored. Reliability is also an excellent form of security. So how does this all work?
Looking at the picture, the graph here, I guess I should call it a picture, but basically you have a publisher and a subscriber. So if you think of it like an email list, how does this really work? So basically, one of the first things that happens is that the publisher has to push out a message. So basically, it’s called publishing a message. So basically, a message is going to be typical data that’s being sent through the system. The second thing that is going to have to happen is that the message should describe what it is. So, for example, a header and a footer should be in the message letting you know what it is.
Then, in example three, you have a more specific topic. So the topic will be similar to an email subject. Number four, the next thing that is going to happen, is that the topic should store the message, and then, as part of this process from here to there, it will also store a copy of that. And then, at number five, the message is of course transmitted to the subscribers, whoever they may be, and the subscribers are then going to either acknowledge the message or not.
So again, this is just a very simple process here.Now it integrates with a fair number of cloud platform capabilities. So just again, realize that it does integrate with compute, engine dataflow, etcetera, and cloud API cloud logging. So publish and subscribe. So basically, these services can both publish and subscribe use cases. So you’re going to want to use this basically to balance messaging workloads in a lot of cases, implement workflows, and distribute event notifications. Basically, you could also use it to refresh caches as well. So just one quick thing I meant to talk about with balancing workloads So, when it comes to balancing workloads, you could create a queue of tasks and distribute them across different compute engine instances, for example, by implementing asynchronous workflows. I’ll just explain that as well for those who are not developers.
Basically. Let’s say, for example, you have a processing application and someone places an order. Do you send it to one person or do you send it to several employees that are acknowledging the order? So again, having the right workflow is important for event notifications. So basically, again, if there’s a specific event, you could send out notifications. It’s basically subscribing to an email list that essentially distributes caches. So this one is interesting because, again, a lot of the applications basically use cash as a way to speed up the processes. However, that cash must be updated on a regular basis to ensure that it contains the most up-to-date information. And again, you want to do that routinely. Data streaming. Now that you can stream data, you can essentially—well, let’s take a look at an example. So, for example, this would be a similar instance. So, for example, let’s say you have an alarm system at home that has motion detection on it.
So how do you set that up? Let’s say you’re an alarm company. Do you not only stream those processes or notifications through Cloud Pub, or do you set up another process to do that? So basically, again, you could stream data to different servers as well as to other devices. So again, you could get a notification on your alarm and then log back in and watch what’s going on. For example, reliability improvements This is yet another way to stay informed about what’s going on in the environment. So for example, you might have a single compute engine instance, and what happens if you have additional zones and they go down? How do you improve that reliability, for example? So that’s about all that I had. Let’s go over to the quick little demo on it.
Again, I want to make sure you just again reiterate, you know, for this test, what cloud computing is and why you want to use it, and you’ll see a couple of questions on that, and you also want to go to this white paper or this document. I don’t know if I would call it white paper, but it’s close enough. It goes through the architecture. It shows you how it works. I would take a few minutes to just understand how this all works. Look at the architecture that Google has Again, just understand how data is sent. Remember, the publisher sends a message, the message is written to storage, acknowledgments happen, et cetera, at a high level. And again, here’s a more complex setup for monitoring. For example, you’d use it for monitoring. SLAs are a good way to use it as well. And again, take a look at that. And here are a few terms used in cloud pub sub. Again, you don’t need to know all this for the task, but again, if you want to get more information about it, this is a good link, and I’m going to leave it in the resources section for you to take a look at. Let’s move on to the show and tell and continue.
4. Cloud Endpoints
Okay, welcome back. Let’s talk about cloud endpoints. very short little discussion. I just want to make sure you understand what it is all about. Now, Cloud Endpoints is basically a nice little application that you could use for Google App Engine. The goal of this is to basically allow the API for front-end clients like mobile or web apps to directly use GCP App Engine. So basically, it saves the developers from having to basically write all these wrappers and captures, et cetera, to be able to use a resource on a mobile device. So this is again a big plus for a lot of developers. And just again, do know that Cloud Endpoint is a good capability.
Now, if you see here, you have your mobile and web clients, and then you have all these little endpoints. And the goal of this is to essentially establish a standardised API, which is basically what it’s doing, and basically allow the developer to enable those devices to connect to the cloud endpoint. And therefore, connecting to cloud endpoints allows them to directly use the back-end applications. Now again, if this capability wasn’t built into AppEngine, then basically the developers would have to write additional code and wrappers, as they’re called, to be able to make the front end talk to the back end. So this is a really cool service, and if you note, they have what’s called a “back end as a service,” and that’s exactly what Cloud Endpoints does. It enables the front end to talk to the back end. So again, that is called cloud endpoints. On the test, there isn’t much else you need to do or worry about.
5. Cloud Functions
Okay, welcome back. If you’re still confused about Cloud pub sub-cloud endpoints, let’s talk about cloud functions and what they are. So again, on the test, it’s important to differentiate between these different Google capabilities because, again, you’ll have answers that will be exactly what we’re talking about. You have to identify the right one. So let’s talk about cloud functions—what they are, what they are for, and why they’re important. Cloud Functions, on the other hand, is essentially a lightweight, event-driven asynchronous compute solution that allows you to create small, very small functions that will respond to cloud events. And so you don’t need to have, say, a running server to use this. This is a server less micro services architecture. So again, the goal is to respond to lightweight event actions. So basically, it’s triggered.
Now, with the cloud function, again, what is the difference, for example, because again, this is very similar to the Cloud Endpoint cloud function? Now for the main difference, and I put it here on purpose, because you might have to read this three times to totally understand what the real differences are, Again, the names are very similar: “cloud this” and “cloud that.” So it all gets muddled together until you start working with the services. Then it’s hard to totally remember what they all do. But on the architect course, they do expect you to know what a cloud function is and what other cloud services are, for example as well. So Cloud Endpoints exposes an array of endpoints or API functions. So basically, again, you’ve got your code running here, you have a trigger that kicks off something, and you have your mobile devices over here. The Cloud Endpoints back end is basically the app engine back end. So remember, we spoke about that earlier. So basically, you have a full programming environment here in cloud endpoints, whereas in cloud functions, you just have a single piece of code that is going to accept limited input.
So, basically, I’ll leave a link in the resources as well; it’s a Wikipedia link that covers anonymous functions. And let me see if I can pull it up and just show it to you because I think it’s important to look at just to understand how micro services work and everything if you don’t. So again, anonymous functions are used to contain functionality. Basically, it’s like a simple switch—I like to call it almost like a switch. It’s either on or off. There’s no in-between. Basically, you have a sorting code, the output can be one of these, and that’s really about it. So I’ll leave the link in the resource there in case you are interested in what an anonymous function is. But basically, again, it’s literal data, and again, the data has to be correct for that function to kick off. It will basically produce one result in most cases and really shouldn’t produce any other issues. It’s basically like I said—it’s like a switch; it’s on or off. It’s either all black or all white. There is no in-between with an anonymous function. Okay, that’s about all I had. Let’s continue on.
6. Dev Ops
Hey, folks, welcome back. I wanted to just cover DevOps.
Now on the exam, there was certainly a question or two around DevOps, specifically two that I do recall. And what I’d like you to do is just realize that these questions here were not covered in the Cloud Architect course itself. It is not entirely covered, but it is included in the Cloud Architect exam blueprint. So they do want you to know what DevOps is, and they do want you to know some specific terms around DevOps. And I’m going to point out two things that I’d like you to know. The first is continuous integration. So, what exactly is continuous? I’m going to leave the links for both of the references we’re going to give you. This is really all you need to understand what continuous integration is. And so again, it goes through DevOps best practices. And then, strangely enough, I’m going to leave up an Amazon Web Services web page that actually goes through DevOps and continuous integration remarkably well. So these are the terms I want you to know: continuous delivery and continuous integration. So take some time, check out the links, and make sure you understand that continuous integration is again more focused on making little changes more routinely, and then understand that continuous delivery is where developers are going to deliver this and make it automatically ready for production.
So, once again, make sure you understand that this is a good workflow for those who aren’t into development. It actually goes through and shows you how the process works, and then you can check out the continuous integration workflow as well. So again, you really just need to look at the Amazon Web Services pages, and this will help you greatly with those questions on DevOps. What I do want to point out is that the DevOps questions on the Cloud Architect exam do not cover DevOps with GCP or anything else because, as far as I know, nothing has been developed for that. Just keep in mind that there are DevOps best practices that aren’t unique to the Google Cloud platform. So again, it is easy enough to remember what continuous integration is, for example, what DevOps is, and what continuous delivery and deployment are as well. So take a few minutes. And then, too, they do have good resources here for you to look at. And again, I’m just making sure that you have what you need to pass a test. Only you don’t have to remember all the definitions for DevOps and all the processes and resources out there. You just need to know what DevOps is. “Continuous integration” and “continuous deployment” are really what I’d like you to remember for the test. And you’ll do just fine in the DevOps section. All right, let’s continue on to the next module.