May 14, 2021 by
Category:

This tutorial is adapted from the Web Age course Google Cloud Primer.

1.1 What is Google Cloud?

Google Cloud offers its clients services, infrastructure, and on-demand virtualized resources using the pay-as-you-go business model. All Google Cloud’s resources are hosted in multiple data centers. Data centers are physical facilities located in multiple regions across the globe: in Asia, Australia, Europe, North America, and South America. Each region contains one or more zones isolated from each other within the region. Google Cloud computing and storage provide a number of tangible and cost-efficient benefits, including redundancy in case of failure, reduced response latency (which is ensured by the ability to move resources closer to clients, and many more.

1.2 Google Cloud circa 2021

Google Cloud is expanding into the following new regions: Warsaw (Poland), Doha (Qatar), Toronto (Canada), Melbourne (Australia), Delhi (India), Paris (France), Milan (Italy), Santiago (Chile), and Madrid (Spain)

Notes:

2021 Stats:

24 cloud regions

73 zones

144 network edge locations

Available in 200+ countries & territories

Keys (legends) to the slide’s graphs

1.3 What is Google Cloud Platform (GCP)?

GCP is an IaaS platform that also provides serverless computing environments. Google Cloud Platform (GCP) is part of Google Cloud. Also part of Google Cloud is App Engine, which is a PaaS platform. App Engine is also viewed as an integral part of GCP. GCP provides a suite of cloud computing services, data storage, data analytics, machine learning, as well as a set of management tools. GCP runs in Google Cloud data centers on the same infrastructure that Google uses for its own services, including Gmail, Google Search, object storage, and YouTube.

Notes

For more information about GCP, visit https://cloud.google.com/docs/overview/

1.4 Google Cloud Products (Services)

Google Cloud started with the announcement in April 2008 of their App Engine public offering, a platform for developing and hosting web applications in Google-managed data centers. As of 2021, Google offers over 90 products under the Google Cloud brand discussed in the subsequent slides. In cloud computing, software and hardware products are referred to as services that users combine together to build their cloud-based applications and solutions

For a list of the most current and exhaustive list of Google Cloud services, visit https://cloud.google.com/products

1.5 GCP at a Glance

1.6 What is a GCP Project?

Google Cloud resources allocated to users must be grouped into projects that act as logical organizing units — your work is performed in the context of a project (or multiple projects). A project, among other things, serves as a namespace for project resources making them globally (within Google Cloud) unique. In addition to resources, a project includes permissions, application-specific settings, and various metadata items. Resources within a single project can communicate freely; resources belonging to different projects can’t unless you use Shared VPC or PVC Network Peering. When you delete a project, all the resources associated with it will be deleted as well

1.7 Identifying a Project

When creating a project, the following information must be provided

  • A project name
    • Provided by you
  • A project ID
    • Provided either by your or Google Cloud
  • A project number
    • Provide by Google Cloud

Notes:

Project IDs are unique across the entire Google Cloud. The Project ID cannot be reused once the project has been deleted.

Google recommendations:” A project name must be between 4 and 30 characters. When you type the name, the form suggests a project ID, which you can edit. The project ID must be between 6 and 30 characters, with a lowercase letter as the first character. The last character cannot be a hyphen. Project identifiers might be retained beyond the life of your project, so do not use sensitive information for the project name or ID.”

1.8 Billing and Projects

When cloud billing is enabled, each project gets associated with one billing account. Resource utilization within multiple projects can be billed to the same account.

1.9 Creating a Project in Cloud Console

1.10 Ways to Interact with Google Cloud

Google Cloud offers the following three main ways to access its resources:

  • Google Cloud Console (Web UI)
    • You start by either creating a new project or using an existing project
  • Command-line interface (CLI)
    • Backed by the gcloud command-line tool available either through the Google Cloud SDK (that you can install and run locally) or browser-based Cloud Shell (available through Google Cloud Console)
  • Client libraries
    • Come with the Cloud SDK
    • Google API client libraries
      • Allow you to access such products as Maps, Drive, and YouTube

1.11 Cloud Shell

The browser-based Cloud Shell comes with:

  • A temporary Compute Engine virtual machine instance
  • A built-in code editor
  • 5 GB of persistent disk storage
  • Pre-installed Cloud SDK and other tools
  • Language support for Java, Go, Python, Node.js, PHP, Ruby and .NET
  • Web preview functionality
  • Built-in authorization for access to Cloud Console projects and resources

Notes:

The top command’s output in Cloud Shell reveals the pre-installed software components:

top - 20:21:19 up 4 min,  4 users,  load average: 0.96, 0.49, 0.21
Tasks:  28 total,   1 running,  27 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4.0 us,  2.9 sy,  0.0 ni, 93.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7965.5 total,   6416.6 free,    574.9 used,    974.1 buff/cache
MiB Swap:    768.0 total,    752.7 free,     15.2 used.   7151.3 avail Mem
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                                                      
    218 root      20   0  948712  89616  49868 S   1.7   1.1   0:00.30 dockerd                                                                                                                                                                      
    253 root      20   0  898648  46928  26204 S   0.3   0.6   0:00.30 containerd                                                                                                                                                                   
      1 root      20   0    3736   2808   2540 S   0.0   0.0   0:00.01 bash    
      8 root      20   0  225824   2296   1824 S   0.0   0.0   0:00.67 rsyslogd
     25 root      20   0   26384  20372   7376 S   0.0   0.2   0:00.39 python
     26 root      20   0    4708   1040    876 S   0.0   0.0   0:00.00 logger 
     74 root      10 -10   15852   4308   3448 S   0.0   0.1   0:00.00 sshd      
    351 root      20   0 1078088   6420   5564 S   0.0   0.1   0:00.00 theia-proxy
    353 root      20   0    7288   3296   2936 S   0.0   0.0   0:00.00 sudo       
    368 root      20   0  703524   2324   1736 S   0.0   0.0   0:00.00 tmux-agent
    430 root      10 -10   16440   7784   6736 S   0.0   0.1   0:00.01 sshd      
    463 root      20   0    2296    740    676 S   0.0   0.0   0:00.00 sleep
    464 root      10 -10   16440   7884   6836 S   0.0   0.1   0:00.01 sshd 

1.12 Location of the Cloud Shell Icon in the Cloud Console

1.13 The gcloud CLI Tool

The gcloud tool comes with a default configuration that is suitable for most practical situations. The tool’s default configuration parameters can be changed by running either gcloud init or gcloud config set …. commands. Good candidates for practical default settings (that you do not need to set explicitly when running your gcloud commands, making your command simpler) are the project ID and compute zone in which you want to work. 

You can override the default commands with the matching –<property_name> <property_value> setting in your gcloud commands, e.g. project <your_project> —zone <your_zone> —cluster <your_cluster>

1.14 Google Cloud Service Categories

There are seven categories of Google Cloud services that you can access from Cloud Console (Web UI):

  • Compute: A variety of virtual machine types that support various kinds of workload. A wide range of computing options offer you a choice of how much control you want over the operational aspects
  • Storage: Data storage and database options for structured or unstructured, relational or non-relational data
  • Networking: A full stack of software-defined virtualized networking services
  • Cloud Operations: A suite of logging, monitoring, trace, and other service reliability tools
  • Tools: A variety of DevOps services
  • Big Data: Services for processing and analyzing “Big Data”
  • Artificial Intelligence: A suite of AI and ML APIs

1.15 Google Cloud Console Navigation Menu Options (1 of 3)

1.16 Google Cloud Console Navigation Menu Options (2 of 3)

1.17Google Cloud Console Navigation Menu Options (3 of 3)

1.18 Computing Options

GCP offers you the following computing options:

    • Work in a serverless environment
    • Use a managed application platform
    • Go with container technologies
    • Build your own cloud-based infrastructure 
      • This option gives you the most control and flexibility

The above options allow you to chose whether you want to get the most control of your computing environment (and assume most of the responsibilities for resource management) or let Google do most of the resource management work for you allowing you to focus on the problems at hand

1.19 Compute Capabilities

      • PaaS capability:
        • App Engine that supports deployment of Java, PHP, Node.js, Python, C#, .Net, Ruby and Go applications
      • IaaS capability:
        • Microsoft Windows ® and Linux VMs
      • Kubernetes-based Containers-as-a-Service:
        • Kubernetes Engine (GKE) or GKE on-prem offered as part of Anthos platform
      • Functions-as-a-Service:
        • Event-driven programming paradigm (currently supporting Node.js, Python, and Go) using the serverless processing fabric
      • Cloud Run:
        • Compute execution environment based on Knative
        • Offered either as a fully-managed service or as Cloud Run for Anthos (currently supports GCP, AWS, and VMware)

Notes:

Cloud Run is a managed compute platform that enables developers to run HTTP-aware applications in stateless containers. Cloud Run, essentially, abstracts away all infrastructure management hassle, which is made possible due to Knative, a Kubernetes-based platform that offers such features as scale-to-zero, autoscaling, in-cluster builds, and eventing for cloud-native applications on Kubernetes (GKE).

1.20 Storage and Databases 

      • Cloud Storage
        • Object/unstructured data storage
          • Integrated with Google’s edge points caching
      • Cloud SQL (Database-as-a-Service)
        • Supports MySQL, PostgreSQL and Microsoft® SQL Server
      • Cloud Bigtable
        • Google’s flagship NoSQL database
      • Cloud Spanner
        • Horizontally scalable, strongly consistent relational database service
      • Cloud Datastore
        • NoSQL database for web and mobile applications
      • Persistent Disk
        • Block storage for Compute Engine VMs
      • Local SSD
        • High-performance, transient, local block storage
      • Cloud Memorystore
        • In-memory data store based on Redis and Memcached
      • Filestore
        • High-performance file storage

1.21 Networking

      • VPC (Virtual Private Cloud)
        • Used for managing software-defined networks
      • Cloud Load Balancing
        • Managed software-defined service for traffic load balancing
      • Cloud Armor
        • Web application firewall to protect workloads from DDoS attacks
      • Cloud CDN (Content Delivery Network)
        • Leverages Google’s globally distributed edge points of presence
      • Cloud Interconnect
        • Service to link on-premise resources with GCP
      • Cloud DNS
        • Managed service that is also used by Google itself
      • Network Service Tiers
        • Offers a choice between the Premium (for higher-performing networks) or Standard network tier

1.22 Points of Presence (POPs)

      • Google Cloud’s POPs are part of the Cloud Content Delivery Network (CDN)
      • POPs are used as caches at CDN’s edge locations to help bring contents closer to their clients
      • POP locations are distributed around the world
      • In some ways, Google Cloud POPs are similar to the AWS CloudFront service integrated with Amazon S3 Transfer Acceleration and Lambda@Edge

1.23 The Google Cloud POPs Locations

Source: https://peering.google.com/#/infrastructure

1.24 Big Data 

      • BigQuery
        • Managed enterprise data warehouse
      • Cloud Dataflow
        • Managed service based on Apache Beam for data streaming and batch processing
      • Cloud Dataproc
        • Platform for running Apache Hadoop and Apache Spark jobs
      • Cloud Composer
        • Workflow orchestration service based on Apache Airflow
      • Cloud Datalab
        • Jupyter Notebook-based service for EDA, visualization, and machine learning
      • Cloud Dataprep
        • Data preparation tool based on Trifacta
      • Cloud Pub/Sub
        • Data ingestion service based on message queues
      • Cloud Data Studio
        • BI tool for building dashboards and reports

1.25 Cloud AI

      • Some of the services in this group are:
      • Cloud AutoML
        • Service for training/testing and deploying user ML models
      • Cloud Machine Learning Engine
        • Managed ML service based on mainstream frameworks
      • Cloud Natural Language
        • Text analysis service based on Google Deep Learning models
      • Cloud Speech-to-Text
        • Speech-to-text conversion
      • Cloud Text-to-Speech
        • Text-to-speech conversion service
      • Cloud Translation API
      • Cloud Vision API
        • Image analysis service based on machine learning
      • Cloud Video Intelligence
        • Video analysis service based on machine learning

1.26 Management Tools

      • Operations suite (formerly Stackdriver)
        • Monitoring, logging, and diagnostics for applications on Google Cloud Platform and AWS
      • Cloud Deployment Manager
        • GCP resource provisioning tool
          • Uses templates created in YAML, Python or Jinja2
      • Cloud APIs
        • Programmatic access to GCP resources
      • Cloud Console
        • Web UI to manage GCP resources
      • Cloud Shell
        • The browser-based shell that offers CLI to access and manage GCP resources
      • Cloud Console Mobile App
        • Android and iOS app for managing GCP resources

1.27 Identity & Security 

      • Cloud Identity
        • Single sign-on (SSO) service based on SAML 2.0 and OpenID
      • Cloud IAM
        • Identity & Access Management (IAM) service for defining policies based on role-based access control
      • Cloud Identity-Aware Proxy
        • Service to control access to cloud applications running on GCP without using a VPN
      • Cloud Data Loss Prevention API
        • Service to automatically discover, classify, and redact sensitive data
      • Security Key Enforcement
        • Two-step verification service based on a security key
      • Cloud Key Management Service
        • Cloud-hosted key management service integrated with IAM and audit logging
      • Cloud Resource Manager
        • Service to manage resources organized hierarchically by project, folder, and organization
      • Cloud Security Command Center
        • Security and data risk platform for data and services running in GCP
      • Cloud Security Scanner
        • Automated vulnerability scanning service for applications deployed in App Engine
      • Access Transparency
        • Near real-time log auditing capability
      • VPC Service Controls
        • Security perimeter protection service

1.28 IoT (the Internet of Things)

      • Cloud IoT Core
        • Secure device connection and management service
      • Edge TPU
        • Hardware-based ASIC (Application-Specific Integrated Circuit) designed to run inference at the edge
      • Cloud IoT Edge
        • Brings AI to the edge computing layer

1.29 The API Platform

      • Maps Platform
        • APIs for geographical maps, routes, and places
          • Based on Google Maps
      • Apigee API Platform
        • API management solution
      • API Monetization
        • Tool for API providers
          • Handles revenue models, reports, payment gateways, and developer portal integrations
      • Developer Portal
        • Self-service platform for developers to publish and manage APIs
      • API Analytics
        • Service to analyze API-driven programs
      • Apigee Sense
        • Identifies and alerts administrators to suspicious API activities
      • Cloud Endpoints
        • A proxy for deploying and managing APIs
      • Service Infrastructure
        • A set of services for building Google Cloud products

1.30 Other Cloud Provider Services Comparison Chart

Source: Wikipedia.org

1.31 Regions and Zones

      • As of 2021, GCP is available in 24 regions and 73 zones
      • A region is a Google’s data center in a specific geographical location where users can deploy cloud resources
        • Regions are available in Asia, Australia, Europe, North America, and South America
      • Each region consists of two or more zones that are physically isolated from each other
      • Zones are GCP deployment locations
      • Zone names are made up of two parts: the region name and a lower-case letter (a,b,c, etc.) suffixed to the region name via a dash, e.g.
        • A zone in the East Asia region is named asia-east1-a
      • Region and zones help with resource redundancy in case of a single data center failure

1.32 Setting the Default Compute Zone Using gcloud

gcloud config set compute/zone us-central1-a

1.33 Global, Regional, and Zonal Resources

      • Global resources are available across regions and zones
        • Examples: Pre-configured disk images, disk snapshots, and networks
      • Regional resources can be accessed only by resources located in the same region
        • Examples: Static external IP addresses
      • Zonal resources can be accessed only by resources located in the same zone

        • Examples: VM instances, their types(flavors), and disks

Notes:

GCP would not allow certain cross-regional operations such as attaching a disk located in one region to a VM in a different region even if you think this is possible. This restriction is put in place because such a topology would create a poor performance situation due to high cross-region traffic latency. GCP would only allow disks to be attached to computers in the same zone.

1.34 Global, Regional, and Zonal Resources Relationship Diagram

Source: Google documentation

1.35 Summary

    • In this tutorial, we discussed the following topics:
      • Google Cloud
      • Google Cloud Platform (GCP)
      • Components of Google’s network infrastructure, including:
        • points of presence,
        • data centers,
        • regions, and zones
    • Interacting with Google Cloud

Leave a Reply

Your email address will not be published. Required fields are marked *