BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
Most organizations expect cloud adoption to improve both their overall IT operations and their provisioning time. However, just moving existing workloads to a public cloud service, like Google Cloud Platform, isn't enough. Successful cloud adoption requires many attributes -- and automation is one of the most important.
Here's a closer look at options and best practices for Google automation tools.
Google automation tools evolve
Google continues to add cloud services and enhancements that target users in large enterprises. While many of these additions have recently been related to big data and other emerging technologies, Google has also evolved its set of cloud management and automation tools. Some of these new or evolving features to streamline cloud operations include the following:
- Managed instance group: A managed instance group allows admins to consolidate control over groups of workloads. Admins can use instance templates to clone instances and apply updates or patches to the entire group. They can also configure managed instance groups to automatically restart VMs that crash or fail a health check.
- Image management resources: Google has published best practices to create image families from a base image, as well as to create an automated image build pipeline using popular third-party tools like Git, for image repository; Jenkins, for automation scripts and execution; and Packer, for custom image creation. The incorporation of these features and processes helps admins create more repeatable, reliable image deployments.
- Google Cloud Resource Manager: Cloud Resource Manager is a central console that uses a hierarchical structure to organize all Google Cloud Platform (GCP) resources. It links those resources to access controls defined in GCP's identity management service. In addition, to prevent orphaned resources, Cloud Resource Manager ties GCP project ownership to the organization, not an individual.
- Google Container Engine (GKE): GKE might not immediately come to mind when thinking of Google automation tools, but the use of containers alongside a management service like GKE can automate image deployment, scaling, updates, as well as image discovery. Google recently released Container Builder, a service that further automates the image deployment process through executable configuration scripts.
List of Google automation tools includes Infrastructure as Code
Infrastructure as Code gives admins the ability to programmatically configure, deploy and control a virtual infrastructure. Amazon Web Services (AWS) popularized the concept via AWS CloudFormation, and Google offers a similar service called Google Cloud Deployment Manager.
Like other infrastructure automation tools, Google Cloud Deployment Manager uses resource description files, written in a declarative language, like YAML, that describe the type and properties of resources used in a particular GCP deployment. IT teams can use these configuration templates to describe an application or workload to be instantiated by Deployment Manager.
Third-party alternatives and integrations
Third-party automation tools, such as Ansible, Chef, Puppet and Salt, can also help admins manage GCP. These cross-platform automation tools are able to control cloud infrastructures, like virtual instances, or storage and software configuration, installation and updates. A typical deployment uses a master server that runs the automation software of choice, with agents on each Compute Engine or storage service.
Google Cloud has also improved support for Windows Server and its associated applications to ease the management transition for Windows-centric shops. GCP, for example, provides integrations for both Visual Studio and PowerShell.
Cloud Tools for PowerShell is a collection of cmdlets that provide access to various GCP services. For example, admins can create, start and stop a compute instance; create storage buckets or disk snapshots; or add firewall rules.
Windows .NET developers can also script and automate Compute Engine, Cloud Storage, Cloud SQL and Cloud DNS resources using PowerShell.
Admins can describe simple deployments with the gcloud command-line tool or the REST API, but should create complex configurations with templates created in Jinja2 or Python.
IT teams can string together multiple templates to deploy arbitrarily complex systems, but the easiest option is to use predefined Cloud Launcher templates. These templates cover dozens of popular applications and platforms, including LAMP stack, WordPress, NGINX, Redis, Cassandra, Jenkins and SAP HANA Express. Deployment templates include metadata, such as target zone, instance size, number of VMs or deployment state, and they also retrieve variables like IP address assignments or subnet name.
Google Cloud Deployment Manager allows admins to more easily test new resource stacks and perform updates to existing infrastructures. For example, IT teams can preview deployments and test configurations without actually committing them to resources. If everything looks good, admins can commit the configuration for deployment or cancel the preview to make changes.
Consider Google App Engine for new, cloud-native web and mobile apps or internet of things back ends, rather than low-level cloud infrastructure services for compute and storage. Google App Engine platform as a service automatically handles many administrative tasks, and doesn't require users to provision or maintain any servers.
For those migrating legacy applications to GCP, consider the new VM migration service Google introduced in partnership with CloudEndure. The free, self-service tool imports VMs from on-premises or from another cloud with a replication agent that copies images into Compute Engine, and it supports Windows Server 2008, 2012 and 2016, along with 7 popular Linux distributions.
Google continues its enterprise push around cloud computing
Google rolls out new higher level cloud services
Seven cloud computing tools for admins