Skip to main content

Architecting Distributed Cloud Applications

About this course

This course is part of the Microsoft Professional Program in DevOps.

This technology-agnostic course begins by explaining the benefits of distributed cloud applications with an emphasis on maintaining high-availability and scalability in a cost-effective way while also dealing with inevitable hardware and software failures.

The course also cover, Microservices and containers, Networking communication, Messaging communication, Versioning, upgrading and configuration, Data storage services and Disaster recovery.

This course is for anyone considering or actively working on a distributed cloud application. It is designed to provide you with a thorough understanding of these concepts, the various pros and cons of specific technologies, and the resilient patterns that are heavily used by distributed cloud applications. This knowledge will help you to easily build cost-efficient and fault-tolerant systems.

The course contains labs to practice your learning, review questions for self-assessment, and a final exam to validate learning. A score of 70% is required to pass the final exam and receive a certificate for the course.

What you'll learn

  • Distributed cloud application fundamentals, including Why Cloud Apps? embracing failure, orchestrators, when to split a monolith into microservices, 12-factor services, and when and how to use Containers.
  • Networking communication, including service scalability and availability, how to define/manage/version service endpoint APIs, and how to perform fault-tolerant network communication.
  • Messaging communication, including the benefits of messaging with queues and fault-tolerant message processing.
  • Versioning, Upgrading, and Configuration, including various ways to version your service’s code, how to shut down a service instance gracefully, and how to configure and share secrets with a running service.
  • Data storage services, including storage service considerations, object/file storage services, relational and non-relational databases, partitioning, replicas, eventual consistency patterns (CQRS, Event sourcing, Saga), concurrency patterns, and data schema versioning.
  • Disaster recovery, including backup/restore, recovery point and time objectives, as well as Active/Passive and Active/Active architectures.

Course Syllabus

  • Welcome to Architecting Distributed Cloud Applications
    • Before You Start current section
    • Course Overview
    • Pre-Course Survey
  • Module 1 | Distributed Cloud Applications
    • Distributed Cloud Application Fundamentals
    • Microservices
    • Containers
    • Module 1 Review Questions
  • Module 2 | Networking Communication
    • Networking Communication
    • Service APIs
    • Fault-Tolerant Network Communication
    • Module 2 Review Questions
  • Module 3 | Messaging Communication
    • Messaging Communication
    • Module 3 Review Questions
  • Module 4 | Upgrading, and Configuration
    • Versioning Service Code
    • Shutting Down and Reconfiguring Services
    • Module 4 Review Questions
  • Module 5 | Leader Election
    • Leader Election
    • Module 5 Review Questions
  • Module 6 | Storage Services
    • Introduction to Data Storage Services
    • Object Storage Services
    • Database Storage Services
    • Data Consistency
    • Versioning Data Schemas
    • Backup, Restore and Disaster recovery
    • Module 6 Review Questions
  • Module 7 | Final Exam
    • Final Exam
    • Post-Course Survey

Prerequisites

Students should be familiar with:

  • loud Computing
  • System architecture and design
  • A language, such as C# or C++

Meet the instructors

Jeffrey Richter

Jeffrey Richter

Partner Software Architect Microsoft

Jeffrey Richter is a Partner Software Architect at Microsoft, co-founder of Wintellect, and a prodigious author.

  1. Course Number

    DEVOPS200.9x
  2. Classes Start

  3. Classes End

  4. Estimated Effort

    Total 8 to 16 hours
Enroll