We've already covered many of these items. One thing to consider in the design is whether you can create an application that's tolerant of some amount of lost data or state and part of the system can simply drop some data or can store data externally and recover from drops. Then if that part is isolated, you can consider using Preemptible VMs for lower cost. By the way, do you remember what the maximum time is that you would have control of a Preemptible VM? It's 24 hours. If a VM hasn't been requested by then, it'll be pulled from service anyway. Development environments and disaster recovery are often good applications for creating infrastructure through automation technologies such as Deployment Manager or Terraform. In the development environment case, you can generate a clone of the production infrastructure solution or use by the development team. So the test team needs an environment, deploy another copy. Quality control needs and environment, another copy. Auditing and compliance test backup and recovery, create more deployments on demand. There's no perfect solution for all circumstances. But there are usually several options that can work and one that is optimal for a specific situation. In general, if your use case is application focused, App Engine is the fastest way to get something up and running with the least infrastructure overhead. Kubernetes is more complicated and places more responsibilities on the developer and the support staff. Fewer items in Kubernetes or automated when compared with App Engine. On the other hand, it offers controls over automation and Kubernetes can make the application platform independent which is easier for development and migration of support for different environments. Compute Engine is a VM. The software installation and maintenance gives far greater control and performance efficiency at the expense of IT overhead. Finally, Cloud functions provide a micro-services approach which means creating small stateless elements, very fast and scalable. But you have to be diligent about isolating state and there's additional programming overhead involved. You can also implement micro-services solutions on Kubernetes. This is another one of those tables that you should know backwards and forwards. For example, if a solution involves Node.js, which compute service should immediately become a candidate for part of the solution? App Engine Flex and Cloud Functions both support Node.js. First of all, there's no such thing as a load balancer in Google Cloud. Allow me to explain. In Google Cloud, there is no load balancer because the function of distributing traffic is handled by the software defined network. So there are several kinds of load balancing. But these are just features that are part of the network, not physical devices. Load balancing services are distinguished by the kind of traffic they direct. By whether they're intended to balance traffic from one server to another inside the Google Cloud or if they're intended to direct data arriving from the Internet. Also load balancing can be global or applied to a specific region. Make sure you understand the basics of how geo-distributed and load balancing works. How can everyone go to the homepage for google.com and get great response time as if from a local server? Unmanaged instance groups collect different kinds of instances. Usually, this is done for management of lift and shift existing designs and it's not recommended because it does not make the best use of the features available in cloud. Managed instance groups are all the same kinds of instances meaning that the type can be defined by an instance template and auto-scaling is available. Zonal managed instance groups keep all the instances in the same zone which is useful to provide consistent network location when the instances must communicate with similar latency and avoid zone to zone transfer. Regional managed instance groups distribute the instance and multiple zones within the region increasing reliability. Instance groups should be managed instance groups to make effective use of the cloud.