Cloud Slice: Google Compute Engine
Google Compute Engine is a computing service in cloud where you can run large workloads at Google speed. You can spawn virtual machines, network them together and store and access data from variety of alternatives. The offering is ideal for high performance computing, processing large volumes of data and anything that needs raw computing power. In this edition of Cloud Slice we will check out what infrastructure is offered as of today and basic concepts of Google Compute Engine.
Google Compute Engine: What engines you get
Computing: Virtual Machines
Right now Google offers virtual machines of 1,2,4 and 8 cores on CentOS or Ubuntu platform. Each core has a maximum of 3.75GB memory. The OS and software on virtual machines can be customized as per your needs and you have root access on every virtual machine that you start.
Google Compute engine comes with some choices for storage which you can choose based on level of persistence you need. For data that is temporary in nature, you can store ephemerel disk on VM, this data will vanish with VM. If you would like to persist data for future use, your first choice is a persistent disk which is network connected to VM. The data is encrypted and replicated across multiple disks. The last option is to use Google Cloud Storage buckets to store your data. Overhead of maintaining keys on VM does not exist due to seamless authentication provided by Google.
A fully configurable network can be set up to connect multiple VMs to each other and static or dynamic IPs can be used to connect the VM or cluster to internet. Firewall is attached to network, which hosts all the rules with respect to access. Firewall can restrict or allow access based on rules that you set.
Google Compute Engine: Basic Concepts
Every virtual machine, network – firewall configuration and storage belongs to a project. Any of the resources from one project can not communicate with resources in other project. When you create any resource like a virtual machine or firewall, it is linked to a project that you specify while creating the resource. Within a project you can control access on resources by assigning roles to team members. Roles like viewer, editor and owner give various levels of access on resource.
Google Compute Engine provides a command line tool to access functionality as well a console. REST APIs is also exposed for programmatic access to various functions.
Google Compute Engine is a robust platform to create powerful virtual machines and get raw computing power to get things done. Although it is in beta, some of case studies have shown positive results. This would be an interesting space to watch and develop cool stuff around.