As per various analyst reports, the third most significant public cloud provider is Google with their Google Cloud Platform (GCP). The origins of GCP can be tracked back to 2008 when Google launched the Google App engine to focus on the developer community with its foray into platform as a service (PaaS) types of offerings. Slowly and gradually, Google has expanded the set of services that it offers and it was really around 2012 that Google started to step up the focus around the pace of releases and geo expansion, which gradually made it one of the dominant players in this space. Since then, GCP has expanded into multiple different spaces ranging from core services like compute, storage, networking, and databases to many higher-level application services in the space of big data, IoT, artificial intelligence (AI), and API platforms and ecosystems.
You're reading from Cloud Native Architectures
As discussed in earlier chapters, let's first understand what type of cloud-native services Google Cloud offers that can help the end users and benefit businesses from the true power of various services and platforms.
Google was a little bit of a late entrant to the public cloud space, but in the last few years it has really picked up pace in terms of its services coverage as well as customer adoption. As per various analyst reports, it ranks third as a cloud provider (after AWS and MS Azure) based on overall vision and its ability to execute, making it a promising candidate for any kind of cloud-native application's development and deployment. So, let's look at some of the services that it offers in that space and how it can potentially help you adopt them effectively.
Now that we have explored a few interesting cloud-native services from Google Cloud, let's dive into the next topic of actually building some cloud-native application architectures and the best practices around those.
Similar to the approach we took in our previous chapters around AWS and MS Azure, we will look at creating a serverless microservice using a few Google Cloud services. In fact, before we even dive in there, it's interesting to note the way Google defines its serverless services portfolio, which can be seen in the following diagram, wherein even some early services including App Engine are included, apart from the latest ones that include Cloud Functions and the Cloud Machine Learning Engine. For more details, please refer to the whitepapers and content on the Google Cloud portal:
Image source – https://cloud.google.com/serverless/whitepaper/
As for the actual application, we will again use the same sample of building...
As discussed in previous chapters as well, automation is one of the key aspects when looking at optimally deploying and managing your applications in cloud. So in line with this, Google Cloud apart from offering many services which help automate processes and workflows, also has a rich set of APIs and SDKs. In fact, based on developer's individual preferences there are multiple options for SDK client libraries, including Java, Python, NodeJS, Ruby, Go, .Net and PHP, that provide flexibility and ease of automation and integration. So in the upcoming section, let's explore this further and look at various options for automation and DevOps implementations.
As discussed in earlier sections, originally, our focus was mainly on greenfield applications and how to leverage cloud-native capabilities like serverless, containers, microservices architectures, CI/CD patterns, and so on. However, in typical enterprise environments, most customers already have significant investment in their existing on-premise or colocation environments, so those workloads also need to be moved to the cloud to benefit holistically. To enable the same, Google Cloud offers some native services as well as partner offerings which can be leveraged across various stages of migration. Broadly speaking, Google suggests four different phases in any migration project, which includes assessment, planning, network configuration, and replication.
For most the part, during the assessment and network configuration phases, the onus is on the customer to look at the appropriate tooling...
In this chapter, we dove deep into the third significant cloud provider, Google Cloud Platform, and after understanding its origins and evolution, we focused on differentiating services like Cloud AI, Kubernetes Engine, and G Suite. Post that, we understood the concepts around serverless microservices and actually created a sample weather service application, leveraging Google Cloud functions. That led us to the next section, which focused on automation and how Google Cloud Deployment Manager can be used to create repeatable templates for treating infrastructure as code. We also looked at options for implementing CI/CD patterns in serverless environments as well as Kubernetes-based containerized deployments. Finally, we explored various options to migrate existing on-premise applications and workloads using various Google Cloud Native services as well as partner offerings. With all of the aforementioned concepts, we have completed exploring the top three public cloud providers and...