In the increasingly competitive cloud IaaS market Google is attempting to distinguish its platform by arming its cloud with unique features and cutting-edge technology that customers can't quite find anywhere else in the market.
With competition among Amazon Web Services, Microsoft and Google being as intense as ever, Google is attempting to distinguish its cloud offering by appealing directly to developers. "We're not focusing on the way cloud has been done, but instead we're focusing on how Google thinks it will evolve over the next five to 10 years," said Dan Blecher, a product manager on the Google Cloud Platform at one of the company's 17-stop Google Cloud Platform Roadshow events being held around the country - last week's was in Boston.
Here are three features Google highlighted last week at the event that seems not only to be cool features of the company's cloud, but fairly unique in the industry:
There's been a lot of talk in the cloud computing market about the infrastructure and platform as a service markets converging. To be clear: Infrastructure (IaaS) is basically just raw compute and storage capacity, which users can customize with a variety of guest operating systems and applications running on top of it. A platform (PaaS) offering usually comes with an OS and other applications already built into it, making it an ideal environment for application development in the cloud.
Google says customers shouldn't have to decide between IaaS and PaaS though. Some use cases may require customization of the infrastructure, which is where the company's Google Compute Engine IaaS comes in. Other use cases may call for a development environment being ready, which is what Google Application Engine PaaS is for. But to bridge the gap between these services, Google has introduced the idea of Managed VMs.
Managed VMs are sort of an in-between IaaS and PaaS service. They can be programmed to boot up with a specific guest OS, with specific applications ready to go and they can be changed on the fly. The Managed VM service will check to ensure that all the virtual machines are configured to the correct specifications, and it will conduct any necessary upgrades during the life of the VM.
A tool like Managed VMs gives developers, and specifically someone who manages a team of developers the ability to create virtual machine types that are customized to their specific use case. Managed VMs are still in limited preview, but more information about them is here.
Another nifty trick Google uses is named Replica Pools. It's similar to the idea of Managed VMs, but Replica Pools take it a step further and allow a user to make copies of existing virtual machine automatically. It's basically a copy and paste button for VMs.
Google offers this through manual settings through a UI, or through an application programming interface (API), meaning that users can create templates and have VMs automatically spun up at the same time with specific qualities. For developers who may be working with lots of VMs and need many copies of them, this can be a great tool. Replica Pools are also in limited availability, but more information about them can be found here.
Google is embracing all types of technology beyond the VM though. Specifically, the company uses a lot of containers. According to Julia Ferraioli, a developer advocate at Google - almost all of the company's products, including search, Gmail and its cloud services, all heavily use containers. She says the company creates more than 2 billion containers every week.
For background, containers can be thought of as an operating-system level virtualization. Whereas a virtual machine slices up a server into multiple operating systems, containers take it one step further and slice up an OS into multiple parts, allowing many different "containerized" applications to run on top of a single OS. Multiple containers therefore can run on top of a virtual machine and because they are in a container, they can move from VM to VM. Containers have captured a lot of buzz in the market recently for their promise of portability and agility.
To manage all its containers, Google uses a platform named Kubernetes, which the company has open sourced. It's a management framework that helps schedule how containers are created and used. Already companies like Red Hat, Docker and IBM have signed on to support it. Using Kubernetes, many containers can be managed across multiple virtual machines, allowing applications to be spun up and down automatically and transferred across various VMs. Within Google's cloud the company has even designated a set of its virtual machines to be optimized for running containers that can be managed using Kubernetes.
Like the other projects mentioned here, Kubernetes is also in limited preview, but the fact that Google is open sourcing this project shows that it wants to be a big player in the Docker community of containers.
As the race between cloud providers like Amazon Web Services, Microsoft and Google continues to heat up, Google appears to be carving out a strategy to release unique features to its cloud that are born out of the company's own use of its infrastructure, and make those available to users. The goal is to appeal to savvy developers in a way that Amazon and Microsoft are not. Combined with other innovative features like pay-by-the-hour pricing, discounts being applied based on the volume of resources being used and a Cloud Debugger tool, Google is looking to use its technological-prowess to take on the giants of this industry.