Course 793:
SaaS Developer Qualification Program

 

Program 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.

SaaS (Software as a Service) environments use a different approach. Software is purchased using a self-service, subscription model. 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.

This program consists of three 3-day sessions spread across multiple weeks. It challenges developers’ current thinking and promotes a mindset change that is more Agile, customer-focused, and driven by quality and value. The program will produce developers capable of using the cloud to build SaaS applications using a microservice architecture.

Prerequisites

Students should be experience software developers. A basic understanding of programming, web development, and cloud computing is assumed.

Pre-Program Assessment

ROI will produce and administer a pre-course exam and survey to assess the skill levels and goals of students prior to attending the training.

Post-Program Assessment

Students will be given a case study to work on during the length of the program. There will also be a final project presentation and an exam to validate what they have learned.

Progress Monitoring

During the program, students are expected to work in teams to produce a real application. This is not limited to only class time. They are also given self-study assignments to advance their knowledge between sessions. Their ROI instructor will mentor them between sessions.

SaaS Developer Certification

ROI and you will work together to define certification requirements that demonstrate student’s successful participation in this program.

 


Course Contents

 

Module One – Deploying Applications on Amazon Web Services and Google Cloud Platform (3 Days)

This module teaches an overview of SaaS development and demonstrates how these principles can be applied in real-life scenarios. Students begin by learning how to think like SaaS developers and are then given an 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.

  • 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
    • Compute
    • Accessing Infrastructure
    • Security
    • Lab: Creating Virtual Machines
    • Disks
    • Snapshots
    • Lab: Disks and Snapshots
    • Images
    • Lab: Images
    • 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
Module Two – Programming Microservice and Big Data Applications in the Cloud (3 Days)

This week students continue working on their case study project, incorporating new features as requirements are introduced. They will use continuous integration to set up an Agile release train. We also cover microservices design and architecture and integrating cloud services into your projects.

In addition, we cover big data services that are provided in the cloud. These services include running Hadoop and Spark clusters in AWS and GCP, data warehousing, and real-time data analysis. Students are also introduced to machine learning and shown how to integrate machine learning APIs into their applications.

  • Continuous Integration
    • Source Control
    • Git
    • Exercise: Using Git in the Cloud
    • Package Managers
    • Build Server
    • Test Integration
    • Automated Deployment
    • Versioning
    • A/B Testing
    • Exercise: Continuous Integration
  • Test-Driven Development
    • Conditions of Satisfaction
    • Defining Acceptance Criteria
    • ..When…Then Format
    • Activity: Defining Conditions of Satisfaction and Acceptance Criteria
    • Testing Overview
    • Test Automation
    • Unit Testing
    • Mocking
    • Activity: Writing Unit Tests
    • Integration Testing
    • End-To-End Testing
    • Activity: End-To-End Testing
    • Code Quality Principles
    • Code Smells
    • Clean Code Principles
    • Activity: Review of Code Samples
  • Building Microservices
    • Service-Oriented Architecture
    • Microservice Architecture
    • Activity: Designing Microservices
    • REST
    • Microservice Boundaries
    • Domain-Driven Design
    • Versioning
    • Security
    • Organizing Microservices
    • Testing-Services
    • Mocking Services
    • Exercise: Programming Microservices in the Cloud
  • Cloud APIs
    • Enabling APIs
    • API Examples
    • Discovery
    • Machine Learning APIs
    • Exercise: Integrating Cloud APIs into your Applications
  • Cloud Computing Big Data Services
    • Hadoop and Spark
    • HDFS
    • MapReduce
    • Pig
    • Hive
    • PySpark
    • Exercise: Creating Hadoop and Spark Clusters
    • iPython Notebooks
    • Jupyter
    • Exercise: Programming iPython Notebooks
    • ETL
    • Pipelines
    • Inputs and Outputs
    • Transformations
    • Big Data Analysis
    • Exercise: Leveraging the Cloud for Big Data Analysis
  • Real-Time Data Analysis
    • Introduction to Publish/Subscribe Messaging
    • Topics
    • Publishers
    • Subscribers (Push and Pull)
    • AWS Kinesis
  • Machine Learning
    • Machine Learning Overview
    • Data Collection
    • Regression
    • Classification
    • Neural Networks
    • Machine Learning Frameworks
    • Exercise: Training Machine Learning Models
    • Leveraging Existing Machine Learning APIs
    • Vision
    • Speech
    • Translation
    • Exercise: Integrating Machine Learning APIs into Applications
  • Course Summary
    • Homework
Module Three – Architecting Applications in the Cloud (3 Days)

At this point, students have been exposed to the fundamental services provided by the cloud. They understand infrastructure and platform services. They know how to choose storage solutions and big data services. They have been introduced to advanced concepts like machine learning.

The focus of this week is putting that knowledge together to architect applications that are performant, secure, fault-tolerant, elastic, and cost-effective.

Students will also be expected to present the case study project they have been working on to demonstrate that they have mastered the material.

  • Overview of Cloud Architecture
    • Understanding Regions and Zones
    • Fault Tolerance
    • Disaster Recovery
    • Activity: Architecting for Fault Tolerance and Disaster Recovery
    • Distributed Computing
    • Elastic Scalability
    • Load Balancing
    • Health Monitoring
    • Activity: Monitoring, Scaling, and Load Balancing
    • Dealing with Latency
    • Performance
    • Activity: Dealing with Latency
  • Choosing Compute Service
    • Understanding Which Services to Use
    • Advantages of IaaS
    • Lift and Shift
    • Extending Data Centers into the Cloud
    • Advantages of PaaS
    • Containers
    • Advantages of Containers
    • Container Orchestration
    • Understanding Cost
    • Case Studies
    • Activity: Choosing Compute Services
  • Choosing Data Sources
    • Traditional vs. Cloud Data Considerations
    • Binary Storage
    • Data Archiving
    • Structured vs. Unstructured Data
    • Relational vs. NoSQL Storage
    • Managed Relational
    • NoSQL
    • Understanding Storage Costs
    • Activity: Comparing Data Storage Options
    • Big Data
    • Activity Choosing Data Storage Options
  • Architecting Web Applications
    • Load Balancing
    • Elastic Scalability
    • Activity: Scaling and Load Balancing
    • Message Queueing
    • Dealing with Failure
    • Server-Side Code
    • JavaScript Frameworks
    • Activity: Architecting Web Applications
  • Architecting Web Services
    • Service-Oriented Architecture
    • Microservice Architecture
    • Activity: Architecting Microservices
    • SOAP
    • REST
    • REST APIS
    • Discovery
    • XML
    • JSON
    • Activity: Programming REST Web Services
    • 12-Factor Apps
  • Understanding Cloud Security
    • IAM
    • User Accounts
    • Service Accounts
    • Roles and Permissions
    • OAuth2
    • Authorization
    • Activity: Understanding IAM
  • Course Summary
  • Final Project and Presentation

Please Contact Your ROI Representative to Discuss Course Tailoring!