Google's Cloud Code development tool aims to take advantage of the popularity of Kubernetes and give developers another option to build cloud-native apps that use their preferred integrated development environments.
Google Cloud Code is a set of plugins for the JetBrains IntelliJ Java IDE and for Microsoft's Visual Studio Code lightweight code editor. These are two of the most popular development platforms that help developers build and manage apps for the cloud, particularly in Kubernetes environments.
The tool automates the process to build, deploy and manage applications. It provides error checking assistance through all phases of the app dev lifecycle, from editing to compiling and debugging code. It was unveiled at the Google Cloud Next 2019 conference this week.
"Google Cloud Code's integration of Kubernetes with common IDEs is great for easing developer edit-compile-debug iteration," said Rhett Dillingham, an analyst at Moor Insights & Strategy in Austin, Texas.
Meeting developers where they live
With Cloud Code, Google wants to lure more developers to Google Cloud Platform (GCP). AWS did the same in 2017 with its Cloud9 browser-based IDE to attract cloud app developers to the AWS cloud. More recently, Red Hat released its Quarkus project in March 2019 to make enterprise Java more attractive to develop cloud-native apps, and in February added CodeReady Workspaces, a Kubernetes-native, browser-based IDE for building cloud-native applications.
Google has woken up to the idea that a platform of APIs and services isn't enough; you need to enable developers via tools and scaffolding, said Thomas Murphy, an analyst at Gartner.
"This is a concerted effort to put together a solution to deliver code that takes advantage of GCP," he said.
Sticking to its Google roots, the initial release of Cloud Code simplifies the development of applications that run on Kubernetes, including Google Kubernetes Engine. Cloud Code features Google's command-line container tools Skaffold, Jib and Kubectl. Skaffold enables continuous development for Kubernetes apps. Jib enables Java developers to build containers using tools they know, such as Maven and Gradle. And Kubectl is a command-line interface to run commands against Kubernetes clusters.
One engineer, who has used Skaffold in the past to automate deployments for software, called it a great start. "The missing link was the integration with editors and other tools," said Bryan Liles, a VMware senior staff engineer based in Annapolis, Md.
Developers are most comfortable in their development environments -- code editors and IDEs -- and providing tools that integrate with their deployment targets means there is a potential for them to be more productive, Liles said.
In addition, Cloud Code adds the required API dependencies to an application, which simplifies the integration of Google APIs. Google Cloud Code also provides Kubernetes samples -- preconfigured for debugging, building and deploying apps -- to help uninitiated developers get started with the technology.
It's good that Google recognizes the significant complexity of working with Kubernetes and makes it easier to get started, but the approach may be too IDE-centric, said Rod Johnson, CEO of Atomist and creator of the Spring Framework.
"While it's handy to have good IDE support, ways of working that are too IDE-centric aren't always ideal, as they don't tend to be scriptable and rely on a particular development setup," he said.
Cloud Code also integrates with DevOps tools and services, such as Google's own Cloud Build and Stackdriver, so that when code is ready to deploy, a developer need only create a pull request and Cloud Build will automatically build, test and deploy the application.
Torsten VolkAnalyst, EMA
Moreover, Cloud Code and Cloud Build simplify the process to edit, review, test and apply changes to a Kubernetes configuration, which supports the "infrastructure as code" DevOps mantra, said Sean McBreen, the product manager for Google Cloud, in a blog post.
"Google Cloud Code is a big deal as it directly connects developers to their Kubernetes clusters, allowing them to directly follow user transactions and test and validate changes on the fly," said Torsten Volk, an analyst at Enterprise Management Associates in Boulder, Colo.
Google Cloud Code also addresses the "DSL Hell" syndrome where coders must use YAML and other domain-specific languages built in a human-readable format so that non-developers can define deployment, configuration, monitoring and upgrade requirements as code.
Learning all of the different YAML standards and managing parameters within the different YAML files that are not part of their code is a major headache for developers, Volk said. Pulumi, and now Google, lets developers use trusted general-purpose languages such as Python or Java to define these requirements within their code base.
However, "to make sure DevOps engineers still have access, Google and Pulumi's products need to offer an operations dashboard that translates between developer and administrator speak," he said.