Let's focus our attention on the middle layer of the Google Cloud infrastructure, compute, and storage. We'll begin with compute. Organizations with growing data needs often require lots of compute power to run big data jobs. As organizations designed for the future, the need for compute power only grows. Google offers a range of computing services. The first is Compute Engine. Compute Engine is an IS offering or infrastructure as a service which provides raw compute storage and network capabilities, organized virtually into resources that are similar to physical data centers. It provides maximum flexibility for those who prefer to manage server instances themselves. The second is Google Kubernetes Engine, or GKE. GKE runs containerized applications in a Cloud environment as opposed to on an individual virtual machine like Compute Engine. A container represents code packaged up with all its dependencies. The third computing service offered by Google is App Engine, a fully managed PaaS offering or platform as a service. PaaS offerings bind code to libraries that provide access to the infrastructure application needs. This allows more resources to be focused on application logic. Then there is Cloud Functions which executes code in response to events like when a new file is uploaded to Cloud storage. It's a completely serverless execution environment, often referred to as functions as a service. Let's look at an example of a technology that requires a lot of compute power. Google Photos offers a feature called automatic video stabilization. This takes an unstable video, like one captured while riding on the back of a motorbike, and stabilizes it to minimize movement. For this feature to work as intended, you need the proper data. This includes the video itself, which is really a large collection of individual images, along with time-series data on the camera's position and orientation from the onboard gyroscope and motion from the camera lens. A short video can require over a billion data points to feed the ML model to create a stabilized version. As of 2020, roughly 28 billion photos and videos were uploaded to Google Photos every week with more than four trillion photos in total stored in the service. To ensure that this feature works as intended and accurately, the Google Photos team needed to develop, train, and serve a high performing machine-learning model on millions of videos. That's a large training dataset. Just as the hardware on a standard personal computer might not be powerful enough to process a big data job for an organization, the hardware on a smartphone is not powerful enough to train sophisticated ML models. That's why Google trains production machine learning models and a vast network of data centers, only to then deploy smaller train versions of the models to smartphone in personal computer hardware. But where does all the processing power come from? According to Stanford University's 2019 AI Index Report , before 2012, artificial intelligence results tract closely with Moore's Law, with compute power doubling every two years. The report states that since 2012, computing power has been doubling approximately every 3.5 months. This means that hardware manufacturers have run up against limitations and CPUs, which are central processing units, and GPUs, which are graphics processing units, can no longer scale to adequately reach the rapid demand for machine learning. To help overcome this challenge, in 2016, Google introduced the Tensor Processing Unit, or TPU. TPUs are Google's custom-developed application-specific integrated circuits used to accelerate machine-learning workloads. TPUs act as domain-specific hardware as opposed to general-purpose hardware with CPUs and GPUs. This allows for higher efficiency by tailoring architecture to meet the computation needs in a domain such as the matrix multiplication and machine learning. With TPUs, the computing speed increases more than 200 times. This means that instead of waiting 26 hours for results with a single state-of-the-art GPU, you'll only need to wait 7.9 minutes for a full Cloud TPU v2 pad to deliver the same results. Cloud TPUs have been integrated across Google products in this state-of-the-art hardware and supercomputing technology is available with Google Cloud products and services.