In this module we introduce the Architecting with Google Compute Engine specialization.
This specialization is defined for cloud solution architects, DevOps engineers, and anyone who's interested in using GCP, to create new solutions or to integrate existing systems, application environments, and infrastructure with a focus on Compute Engine.
- Module 1: Introduction to GCP
- Module 2: Virtual Networks
- Projects, networks, and subnetworks
- IP addresses
- Routes and Firewall Rules
- Network Billing
- Lab 1: Virtual Networking
- Common network designs
- Need of increased Availability
- Globalization: Need of increased isolation against software/hardware failures
- Resources in differents regions/networks/projects & VPC Network Peering
- Management Separation (different projects, within same zone)
- Bastion host isolation
- NAT Gateway host isolation
- Lab 2: Bastion Host
- Module 3: Virtual Machines
- Resources/Articles
In this module, we will provide you with an introduction to GCP by building on what you learned about the GCP infrastructure from the course introduction.
Analogy of infrastructure and applications:
4 parts covering the Cloud infrastructure:
- Foundation of essential infrastructure: the basic technologies.
- The Core Services: the building blocks of the essential infrastructure.'
- The Augmented infrastruture: the systems built on top of the essential infrastructure, for scaling and automation.
- The application infrastructure: consisted of containers and services specifically provided to make application development easy.
Ways to interact with GCP
- The GCloud console (http:://console.cloud.google.com)
- The Google Cloud SDK to use
gcloud
in a terminal window - CloudShell: a browser-based terminal environment for GCP, accessible from the GCP console.
Working with other client libraries:
- video lab
- notes lab
In this module, we start by introducing Virtual Private Cloud (VPC) which is Google’s managed networking functionality for your Cloud Platform resources. Then we dissect networking into its fundamental components, which are:
-
projects,
-
networks,
-
subnetworks,
-
IP addresses,
-
routes and firewall rules,
-
along with network pricing.
In case of restart, the internal IP address may change, but the DNS system points to instances which keep the external IP address unchanged.
A route is a mapping of an IP range to a destination.
Compare and explore a complex GCP network structure.
- you build a complex network topology
- you will launch VMs in varius network/sub-networks
- you will ping VMs accross the networks
How these elements work together:
- projects
- networks
- subnetworks
- regions
- zones
In short, they provide a rich set of:
- alternatives for managing groups of resources with varying availability
- and access control requirements.
So you can work globally or work at a very granular level if you want/need to.
- Region/Network/Proect isolated services >>> preventing compromised of one part from spreading to other parts.
- VPC Network Peering >>> Allows these services can still communicate over a private address space.
VMs isolated into separate projects, but within the same zone, useful for Identity and Access Management.
You can assign different people to different roles (for management separation) for each project, limiting the access to the network they need access to.
This allows granular access management per sub-project for a better access control,
But remember than a network can NOT span Projects... so the projects NEED to communicate via the internet!
Let's one network/project/"VM instance" to not access internet. Therefore this allows Instance 1 to communicate with another instance on a separate network via the gateway.
The two networks do not have to be in the same project for this design to work.
Removing the connection to the internet of a webserver meant to deliver services only to a corporate audience.
There are other security alternatives to provide routine administration access to web server like using Cloud VPN, which is covered in a later course of this specialization.
In this module, we cover virtual machine instances, or VMs.
First we'll start with:
- the basics of Compute Engine, followed by a quick little lab to get you more familiar with creating virtual machines.
- Then, we’ll look at the different CPU and memory options that enable you to create different configurations.
- Next, we will look at images and the different disk options available with Compute Engine.
- After that, we will discuss very common Compute Engine actions that you might encounter in your day-to-day job.
This will be followed by an in-depth lab that explores many of the features and services covered in this module.
Example of cumulated usage for calculating "sustained-use" discounts:
VM lifecycle:
Changing VM's state from "running":
Stopped VM (No charge):
Compute engine 3 options to create VMs:
Compute engine 4 classes of VMs:
Compute engine 80% on preemptible VMs (24hours max):
There exists ways to monitr and restart preemptible VMs even though this doesn't come as a default option.
- bounded to their zone
- dynamically resizable, even when running!
- data will survive a RESET
- data will NOT survive a STOP or TERMINATE (because these disks can't be re-attached to a different VM)
fastest, for low needs in memory.
Build the infrastructure needed for production activities:
- Backups
- graceful shutdown/restart services
- IP Addresses: https://cloud.google.com/compute/docs/ip-addresses/
- Subnets and CIDR ranges: https://cloud.google.com/compute/docs/alias-ip/#subnets_and_cidr_ranges