Developing Applications with Google Cloud

(3 days)

 

Learn how to design, develop, and deploy applications that seamlessly integrate components from the Google Cloud ecosystem. This course uses lectures, demos, and hands-on labs to show you how to use Google Cloud services and pre-trained machine learning APIs to build secure, scalable, and intelligent cloud-native applications

Objectives

  • 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 and later switch to a no-ops solution with Google App Engine flexible environment

Audience

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

Prerequisites

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

  • Completed Google Cloud Fundamentals: Core Infrastructure or have equivalent experience
  • Working knowledge of Node.js, Python, or Java
  • 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: Cloud Client Libraries, the Cloud SDK, and Firebase SDKs

  • How to set up and use Google Cloud Client Libraries, Google Cloud SDK, and Google Firebase SDK
  • Lab: Set up Google Client Libraries, 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, Cloud Firestore, Cloud Bigtable, Google Cloud SQL, and Cloud Spanner

Module 4: Best Practices for Using Datastore

  • Best practices related to using Cloud Firestore in Datastore mode for:
    • Queries

    • Built-in and composite indexes

    • Inserting and deleting data (batch operations)

    • Transactions

    • Error handling

  • Bulk-loading data into Cloud Firestore by using Google Cloud Dataflow

  • Lab: Store application data in Cloud Datastore

Module 5: Best Practices for Using Cloud Storage

  • Operations that can be performed on buckets and objects
  • Consistency model
  • Error handling
  • 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 6: 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 7: Using 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 8: Adding Intelligence to Your Application

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

Module 9: 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 10: Managing APIs with Cloud Endpoints

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

Module 11: Deploying Applications 

  • 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 12: 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
    • Cloud Run
  • Lab: Deploying your application on App Engine flexible environment

Module 13: Debugging, Monitoring, and Tuning Performance

  • Application Performance Management Tools
  • 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