Developing Applications with Google Cloud

(3 days)

 

In this course, application developers learn how to design, develop, and deploy applications that seamlessly integrate components from the Google Cloud ecosystem. Through a combination of presentations, demos, and hands-on labs, participants learn how to use GCP services and pre-trained machine learning APIs to build secure, scalable, and intelligent cloud-native applications.

Objectives

This course teaches participants the following skills:

  • Use best practices for application development
  • Choose the appropriate data storage option for application data
  • Implement federated identity management
  • Develop loosely coupled application components or microservices
  • Integrate application components and data sources
  • Debug, trace, and monitor applications
  • Perform repeatable deployments with containers and deployment services
  • Choose the appropriate application runtime environment; use Google Container Engine as a runtime environment and later switch to a no-ops solution with Google App Engine Flex

Audience

Application developers who want to build cloud-native applications or redesign existing applications that will run on Google Cloud Platform.

Prerequisites

To get the most of out of this course, participants should have:

  • Completed Google Cloud Platform Fundamentals or have equivalent experience
  • Working ​knowledge ​of Node.js
  • Basic proficiency with command-line tools and Linux operating system environments

Course Outline

Module 1: Best ​Practices ​for Application ​Development

  • Code and environment management
  • Design ​and ​development ​of ​secure, ​scalable, ​reliable, ​loosely ​coupled application ​components ​and ​microservices
  • Continuous ​integration ​and ​delivery
  • Re-architecting ​applications ​for ​the ​cloud

Module 2: Google ​Cloud ​Client Libraries, ​Google ​Cloud ​SDK, ​and Google ​Firebase ​SDK

  • How ​to ​set ​up ​and ​use ​Google ​Cloud ​Client ​Libraries, ​Google ​Cloud SDK, ​and ​Google ​Firebase ​SDK
  • Lab: ​Set ​up ​Google ​Client ​Libraries, ​Google ​Cloud ​SDK, ​and ​Firebase SDK ​on ​a ​Linux ​instance ​and ​set ​up ​application ​credentials

Module 3: Overview ​of ​Data Storage ​Options

  • Overview ​of ​options ​to ​store ​application ​data
  • Use ​cases ​for ​Google ​Cloud ​Storage, ​Google ​Cloud ​Datastore, ​Cloud Bigtable, ​Google ​Cloud ​SQL, ​and ​Cloud ​Spanner

Module 4: Best ​Practices ​for ​Using Cloud ​Datastore

  • Best ​practices ​related ​to ​the ​following:
    • Queries
    • Built-in ​and ​composite ​indexes
    • Inserting ​and ​deleting ​data ​(batch ​operations)
    • Transactions
    • Error ​handling
  • Bulk-loading ​data ​into ​Cloud ​Datastore ​by ​using ​Google ​Cloud Dataflow
  • Lab: ​Store ​application ​data ​in ​Cloud ​Datastore

Module 5: Performing ​Operations on ​Buckets ​and ​Objects

  • Operations ​that ​can ​be ​performed ​on ​buckets ​and ​objects
  • Consistency ​model
  • Error ​handling

Module 6: Best ​Practices ​for ​Using Cloud ​Storage

  • Naming ​buckets ​for ​static ​websites ​and ​other ​uses
  • Naming ​objects ​(from ​an ​access ​distribution ​perspective)
  • Performance ​considerations
  • Setting ​up ​and ​debugging ​a ​CORS ​configuration ​on ​a ​bucket
  • Lab: ​Store ​files ​in ​Cloud ​Storage

Module 7: Handling Authentication and Authorization

  • Cloud ​Identity ​and ​Access ​Management ​(IAM) ​roles ​and ​service accounts
  • User ​authentication ​by ​using ​Firebase ​Authentication
  • User ​authentication ​and ​authorization ​by ​using ​Cloud ​Identity-Aware Proxy
  • Lab: ​Authenticate ​users ​by ​using ​Firebase ​Authentication

Module 8: Using ​Google ​Cloud Pub/Sub ​to ​Integrate ​Components of ​Your ​Application

  • Topics, ​publishers, ​and ​subscribers
  • Pull ​and ​push ​subscriptions
  • Use ​cases ​for ​Cloud ​Pub/Sub
  • Lab: ​Develop ​a ​backend ​service ​to ​process ​messages ​in ​a ​message queue

Module 9: Adding ​Intelligence ​to Your ​Application

  • Overview ​of ​pre-trained ​machine ​learning ​APIs ​such ​as ​Cloud ​Vision API ​and ​Cloud ​Natural ​Language ​Processing ​API

Module 10: Using ​Cloud ​Functions for ​Event-Driven ​Processing

  • Key ​concepts ​such ​as ​triggers, ​background ​functions, ​HTTP ​functions
  • Use ​cases
  • Developing ​and ​deploying ​functions
  • Logging, ​error ​reporting, ​and ​monitoring

Module 11: ​Managing APIs with Google Cloud Endpoints

  • Open ​API ​deployment ​configuration
  • Lab: ​Deploy ​an ​API ​for ​your ​application

Module 12: Deploying ​an Application ​by ​Using ​Google ​Cloud ​Build, ​Google ​Cloud Container ​Registry, ​and ​Google Cloud ​Deployment ​Manager

  • Creating ​and ​storing ​container ​images
  • Repeatable ​deployments ​with ​deployment ​configuration ​and templates
  • Lab: ​Use ​Deployment ​Manager ​to ​deploy ​a ​web ​application ​into Google ​App ​Engine ​flexible environment test ​and ​production ​environments

Module 13: Execution Environments ​for ​Your ​Application

  • Considerations ​for ​choosing ​an ​execution ​environment ​for ​your application ​or ​service:
    • Google ​Compute ​Engine
    • Kubernetes ​Engine
    • App ​Engine ​flexible environment
    • Cloud ​Functions
    • Cloud ​Dataflow
  • Lab: ​Deploying ​your ​application ​on ​App ​Engine flexible environment

Module 14: Debugging, Monitoring, and Tuning Performance by Using ​Google Stackdriver

  • Stackdriver ​Debugger
  • Stackdriver ​Error ​Reporting
  • Lab: ​Debugging ​an ​application ​error ​by ​using ​Stackdriver ​Debugger and ​Error ​Reporting
  • Stackdriver Logging
  • Key concepts related to Stackdriver Trace and Stackdriver Monitoring.
  • Lab: Use Stackdriver Monitoring and Stackdriver Trace to trace a request across services, observe, and optimize performance