Application Development

Redesigning the Cloud SDK + CLI for easier development

#appdev

At Google Cloud we are constantly iterating on our tools to improve the developer experience and make it easier for you to interact with our technologies. To this end, we are pleased to announce the rebranded Google Cloud SDK. Here’s how the SDK now looks:

cloud sdk.jpg
Click to enlarge

Easing discovery by renaming our command line tools

We have renamed our set of command line developer tools to Google Cloud CLI to make clear that this is the command line interface for working with any of our products and services. It continues to contain the same gcloud, gsutil, bq, kubectl, and various data emulators and other tools for local development. All existing scripts will continue to work since there are no command prompt related changes. While we have changed the installation package names, the former package names also work. For example, on Debian you can run apt-get install google-cloud-sdk or you can use the new apt-get install google-cloud-cli. The old package name will continue to be supported for as long as needed for customers to adjust to this change, but, for new scripts, we prefer you use the new package name. 

Reducing coding effort with language-oriented SDKs containing our best client libraries

Google Cloud has long offered client libraries for all its services but over time we’ve also iteratively released a better style of client library called Cloud Client Libraries. Today, we are pleased to announce that Cloud Client Libraries are generally available for the vast majority of Google Cloud services. These now become part of the Google Cloud SDK for each supported language. (Java, Go, NodeJS, Python, C#, Ruby, and PHP).

Cloud Client Libraries simplify integration with our APIs and provide several significant benefits over alternative libraries or raw service API calls: 

  • Lower learning curve:
    By following the idiomatic style of your chosen programming language the client libraries feel more familiar and approachable so you can start coding effectively, faster.

  • Faster integrations with pagination, long running operations, and other helper methods:
    Reduce repetitive boilerplate code by leveraging helper functions for common use cases like working with large datasets or dealing with asynchronous processes.

  • Easier integrations across multiple products:
    By exposing consistent high-level patterns for authentication, setup, and configuration, you can work faster across multiple Google Cloud products.

  • More centralized and up-to-date documentation:
    Automated documentation generation (available on cloud.google.com) gives you more consistent and accurate technical reference documentation, and a single go-to place to find them.

  • Code snippets:
    View sample code snippets for every method* to help your development process.
    *additional language support in the coming months 

    To simplify discovery, use, and your documentation experience, we’re de-emphasizing our historical libraries (Google API client libraries) and recommending Cloud Client Libraries for all new projects. For your legacy projects, we will continue to support and update all previous-style Google API Client Libraries and their documentation as they remain widely used. 

Bundling language-oriented frameworks, guides, and tools as available

By structuring our SDKs by programming language, we will also now include in each SDK all language-specific frameworks and tools, as available, along with essential language agnostic tools. 

For example,

Google Cloud SDK for Java

|
|--Cloud SDK Libraries (Cloud Client Libraries for Java)
|--Spring Cloud GCP (Spring Framework for Java on Google Cloud)
|--Google Cloud CLI
|--Use cases and guides (more coming)
|--Optional tooling (Cloud Code IDE extensions)

What’s next for the Google Cloud SDK?

We’ll continue listening to your feedback (just click ‘feedback’ on any technical docs page) to help us define what an SDK should look like and contain in a cloud-first world. As always, our goal for the Google Cloud SDK is to help you do your best work on Google Cloud by accelerating your productivity, reducing your learning curve, and giving you easier access to the tools you need to do your best work on Google Cloud.