Course 793A:
Deploying Applications on Amazon Web Services (AWS) and Google Cloud Platform (GCP)

(3 days)

 

Course Overview

Traditional developments combine the efforts of many developers, spread across multiple teams to deliver software in big releases. New versions of software are periodically purchased and upgrades can be disruptive and costly.

Because of their advanced capabilities, cloud environments offer a different approach. Large applications are divided into microservices that can be managed by small teams. Deployments are automated using a DevOps approach and installation risks are mitigated using the cloud services.

This course teaches cloud-based development and demonstrates how these principles can be applied in real-life scenarios. Students begin by learning how to think like cloud developers and are then given a hands-on introduction of cloud computing. Students are assigned a project and are expected to work in teams to program it using techniques outlined in the training.

Learning Objectives

  • Leverage Agile practices to take greatest advantage of cloud-based systems
  • Break monolithic applications into cloud-based microservices
  • Leverage cloud infrastructure for networking and virtualization
  • Scale infrastructure to meet demand using load balancers, monitoring, and autoscaling
  • Deploy applications to AWS Elastic Beanstalk and Google App Engine
  • Store binary data to AWS S3 and Google Cloud Storage
  • Leverage serverless NoSQL data storage solutions on AWS and GCP
  • Store relational data on AWS RDS and Google Cloud SQL

Who Should Attend

Developers, analysts, programmers, and architects working on cloud-based software projects or who are working on migrating existing applications to the cloud. Also, anyone who wants a hands-on course on cloud computing services.

Students can choose to do the exercises using either Amazon Web Services or Google Cloud Platform.

Prerequisites

Students in this course can do exercises using Amazon Web Services, Google Cloud Platform, or both. To do this, they will need:

  • AWS and/or GCP accounts with rights to create cloud resources. Students can use a personal account. If using a company-provided account, they need administrative rights.
  • Unrestricted internet access
  • A computer with the latest version of Google Chrome
  • Students need to install the AWS Command line interface and/or the Google Cloud Platform SDK on their workstation
  • Student workstations should include some development tools for their preferred language (Eclipse, IntelliJ, PyCharm, etc.)

A pre-course exercise will be provided for students to configure their machines.


 Course Outline

  • SaaS and Cloud Development
    • What Is SaaS?
    • Goals for SaaS
    • Activity: Defining SaaS Development Goals
    • Agile Best Practices
    • Activity: Prioritizing Agile Practices
    • Architecting for the Cloud
    • SaaS Architectural Goals
    • Microservice Architectures
    • Activity: Architecting SaaS Applications

  • Building a DevOps Culture
    • DevOps
    • Continuous Integration
    • Continuous Deployment
    • DevOps Tools
    • Building an Agile Development Culture
    • Activity: Defining a Continuous Integration Pipeline
    • Containers
    • Docker
    • Activity: Docker Tutorial

  • Microservice Architecture Overview
    • Microservices Overview
    • Advantages of Microservices
    • Design Considerations
    • How the Cloud Enables Microservice Architectures
    • Activity: Architecting a Microservice Application

  • Value-Driven Development
    • Case Study Introduction
    • User Stories
    • Activity: Writing User Stories
    • Estimating Effort
    • Estimating Value
    • Activity: Estimation
    • Prioritization
    • Activity: Building the Backlog

  • User-Centered Design
    • UX Design
    • Feature-Driven Development
    • Specifying Feature Requirements
    • YAGNI
    • Activity: Designing the Use Case User Interface

  •  Cloud Computing Infrastructure
    • Overview of Cloud Computing
    • Characteristics of Cloud Applications
    • IaaS vs. PaaS vs. SaaS
    • Infrastructure Services
    • Getting Started in the Cloud
    • Networking
    • Firewalls
    • Lab: Networking
    • Disks
    • Snapshots
    • Lab: Disks and Snapshots
    • Images
    • Lab: Images
    • Compute
    • Accessing Infrastructure
    • Security
    • Lab: Creating Virtual Machines
    • Monitoring
    • Load Balancing
    • Autoscaling
    • Lab: Load Balancing and Autoscaling

  • Cloud Computing Platform Services
    • Platform Services
    • PaaS
    • Containers
    • Serverless Applications
    • Lab: Leveraging PaaS
    • SaaS

  • Cloud Computing Data Services
    • Cloud Storage Solutions
    • Lab: Storing Data in the Cloud
    • NoSQL Data Solutions
    • Lab: Leveraging Cloud NoSQL Solutions
    • Caching and CDN
    • Managed SQL
    • Lab: Creating Managed Relational Database

  • Course Summary
    • Homework

Please Contact Your ROI Representative to Discuss Course Tailoring!