everythingpossible - Fotolia
The public cloud may be synonymous with infrastructure as a service, but the major vendors continue to march up the stack with an expanding array of developer tools. And Google is no exception -- though it took a bit of a circuitous route to get there.
The search engine giant made its first notable entry into the public cloud market with App Engine, a PaaS sandbox environment that developers could use to build applications without worrying about server maintenance. Google then added its cloud infrastructure offering and solidified itself as the third so-called hyperscale provider, behind AWS and Microsoft Azure.
Still, most of the Google Cloud developer tools didn't hit the market until after the push into infrastructure. Google continues to add tools in a bid to improve the scaffolding developers desire in their environments and to keep pace with AWS and Azure in their bids to become all-encompassing cloud platforms.
Here is a brief synopsis of the major Google Cloud developer tools.
Artifact Registry. This registry service can be used to store and manage container images and language packages to support CI/CD pipelines. Artifact Registry is still in preview, but it supports Docker images, as well as Maven and npm packages. Code can be committed to Cloud Source Repositories, GitHub or Bitbucket. Developers can deploy that code through Cloud Build, Google Kubernetes Engine, App Engine and Cloud Functions.
Artifact Registry supports roles and permissions to enforce access controls. Google plans to add tooling for vulnerability scans and deployment policy rules.
Cloud Build. Google added this managed CI/CD platform in 2018 to capitalize on the growing popularity of DevOps. With Code Build, developers can build, test and deploy custom workflows in any programming language. Code commits work for container- or non-container-based artifacts, which can be pushed to GitHub, Google Cloud Source Repositories or Bitbucket.
Developers can build and debug software locally before sending it to the cloud, and pipelines can be created in the build phase for greater automation.
Cloud Code. Designed for Kubernetes workloads, this service includes a suite of tools to write, run and debug applications. The integrated development environment (IDE) provides error checking throughout the development lifecycle and features command-line tools such as Skaffold, Jib and Kubectl.
Cloud Code has extensions for Visual Studio Code and IntelliJ.
Cloud Deployment Manager. This service is designed for managing resources, but it can also be an important tool for developers. Using templates, developers specify their parameters, either in a declarative format with YAML, or through Python or Jinja2 templates. Developers take a declarative approach to create configuration files and streamline the allocation of resources for repeatable tasks.
Container Registry. The precursor to Artifact Registry, this tool is designed specifically for Docker images. Developers can store images regionally, assign and restrict access, define policies, check for vulnerabilities and integrate with CI/CD pipelines. It works with several Google Cloud services:
- Cloud Build
- App Engine
- Cloud Functions
Cloud Source Repositories. This is Google's take on a private Git repository. Developers can organize, search and collaborate on code across an unlimited number of repositories. They can deploy changes directly to App Engine or set up triggers in Cloud Build to automatically build and test images. It can also connect to other Google Cloud developer tools and services through Pub/Sub.
Cloud Scheduler. This managed service handles cron jobs, either through Google Cloud Console or the gcloud CLI. Users create and configure scheduled units of work, and Cloud Scheduler takes care of them one at a time. This tool is intended to reduce manual, repeated tasks for developers, such as batch jobs that need to be run regularly or shutting down infrastructure at the end of the workday.
Cloud SDK. Developers use this set of tools for command-line access to Google Cloud services, rather than through the browser-based Cloud Console. Developers can access APIs via client libraries for Java, Python, NodeJS, Ruby, Go, .NET and PHP. With Cloud SDK, users can emulate several Google Cloud services locally or install additional CLI features, including bq for BigQuery, gsutil for Cloud Storage, and kubectl for Kubernetes clusters.
Cloud Tasks. Use this queuing service to deliver and execute asynchronous, distributed tasks at scale. Cloud Tasks can increase application responsiveness by organizing requests, following execution policies and managing messaging load through rate limiting. It's particularly well suited for microservices-based architectures that rely on decoupled Google Cloud services.
Firebase Test Lab. Firebase is Google's cloud platform for mobile and web app development. With this service, developers can upload and test an application across Android and iOS and the physical devices that use those OSes. Tests can be handled through the Firebase console or Android Studio, as well the gcloud CLI for continuous integration builds.
Firebase Crashlytics. Another Firebase tool, developers use this service to identify and fix bugs in their applications. Specifically, it can identify crashes and slowdowns and prioritize specific issues that need to be addressed to get the app running better.
Google Cloud third-party integrations
In addition to its native cloud developer tools, Google has integrations with several notable third-party services and open source projects. App Engine has plugins for open source build tools Gradle and Apache Maven. Google Cloud Platform (GCP) also has IDEs for Eclipse and Visual Studio, and support for PowerShell.
Google also open sourced a tool called Tekton, a Kubernetes-based framework for CI/CD workloads. Though Tekton can be used on premises or in other clouds, it's specifically designed to integrate with the Kubernetes tooling available on GCP.