めもめも

このブログに記載の内容は個人の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

Introduction to Google Cloud Platform for OpenStackers (Part I)

Disclaimer

This is not an official document of Google Cloud Platform. Please refer to the GCP web site for the official information.

cloud.google.com

GCP Basics

Google Cloud Platform provides various computing resources as a cloud service on top of Google's core infrastructure. It has several categories such as Compute, Storage and Bigdata. They offer the following core services in addition to other interesting services for Bigdata processing and analysis.

Compute
Service Description
App Engine Runtime environment for scale-out Web applications.
Compute Engine Runtime environment for virtual machines.
Container Engine Runtime environment for container application based on Kubernetes
Cloud Functions Runtime environment for asynchronous event driven functions.
Networking Common network infrastructure for all cloud services.
Storage
Service Description
Bigtable Distributed Key-Value store with HBase compatible API
Cloud SQL Managed service for MySQL database
Cloud Datastore NoSQL document database
Cloud Storage Object storage service

It also provides a common functionality for IAM (Identity & Access Management). You can use the following tools to interact with these services.

  • REST API
  • SDK (Command line interface tools such as the gcloud command.)
  • Google Cloud Console (Web portal)

The following shows a rough comparison with OpenStack's major components in terms of their functionalities.

OpenStack GCP
Keystone IAM
Horizon Cloud Console
Nova, Glance, Cinder Compute Engine
Neutron Networking
Swift Cloud Storage

Physical locations - Regions and Zones

OpenStack

When deploying OpenStack clusters in multiple locations, a single cluster managed with a dedicated controller is specified as "Region." You can define multiple "Availability Zones" inside a Region so that you can group together physical resources such as compute nodes and storage boxes. It depends on the infrastructure design how you split resources with Availability Zones. Typically, you would split them in the unit of racks or datacenter floors.

However, you need to ensure that you have a reasonable network bandwidth between Availability Zones. The best practice tells you that you'd better consolidate a single cluster (i.e. physical resources for a single Region) into a single data center to avoid problems caused by a lack of sufficient network bandwidth.

GCP

GCP also has a concept of "Regions" and "Zones" which allows users to manage geographical locations and failure zones of service resources.
. At the time of writing (July, 2016) there are four Regions around the globe, and each of them has multiple Zones. There is a more detailed description in the following official web site.

https://cloud.google.com/compute/images/zones_diagram.svg
Inside a Region, all Zones are connected with a dedicated internal network providing a bandwidth and latency comparable to one within a data center. It means you can safely deploy a (traditional tightly coupled) cluster application over multiple zones to achieve a high availability across multiple failure zones.

In addition, there has been an announcement about a plan for more Regions in coming years.

For some managed services like Bigtable and Cloud Storage, there are some patterns how you could specify the Regions and Zones to be used. Please refer to the following documents for details.

cloud.google.com

What's next?

In Part2, I'll give you a comparison between OpenStack Neutron and GCP's Networking service.

Here's Part2 now.!

enakai00.hatenablog.com