Architecting Distributed Cloud Applications
Welcome to the ‘Architecting Distributed Cloud Applications’ video series
Learn how to architect distributed cloud apps with the right developer mindset, the finest cloud technologies, and the best cloud patterns.
This technology-agnostic video 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.
Then, the course moves on to:
- Microservices and containers
- Networking communication
- Messaging communication
- Versioning, upgrading and configuration
- Data storage services
- Disaster recovery
This course is for anyone considering or actively working on a distributes 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.
You can download slides and reuse them from https://drive.google.com/file/d/0B9Oe…. If you use the slides, please point people to the original video series at http://aka.ms/RichterCloudApps.
Course Features
- Lectures 52
- Quizzes 0
- Duration 50 hours
- Skill level Level 300
- Language English
- Students 45
- Certificate No
- Assessments Yes
-
Introduction
-
Distributed Cloud Apps
- Why Cloud Apps?
- Fundamentals-Embracing Failure
- Fundamentals-Orchestrators (?aaS) and Clusters
- Fundamentals-Regions, availability zones, and fault domains
- Microservices-Applications consist of many (micro)services
- Microservices-Reasons to split a monolithic app into microservices
- Microservices-Composing SLAs for dependent services
- Microservices-Auto-Scaling a Service’s Instances
- Microservices-12-Factor Services (Apps)
- Containers-Container images & containers
- Containers-Isolation versus Density
- Containers-OS kernel & container images
- Containers-Orchestrator starts containers on cluster’s PCs/VMs
- Containers-Continuous Integration and Continuous Delivery/Deployment
-
Networking
- Fundamentals-Fallacies of distributed computing
- Fundamentals-Service endpoints, scalability & availability
- Fundamentals-Cluster DNS & service reverse proxy
- Fundamentals-Reverse proxy load balancer service probes
- Service APIs-Turning a monolith into a microservice
- Service APIs-API versioning
- Service APIs-Defining Network API Contracts
- Service APIs-Beware leaky RPC-like abstractions
- Fault Tolerance-Exactly once semantics via retries & idempotency
-
Messaging
-
Service upgrade & Config
-
Leader Election
-
Data Storage
- Fundamentals-Data storage service considerations
- Fundamentals-Data temperature
- Fundamentals-Using a cache to improve performance
- Object (blob) storage services-Object (blob) storage services & using a CDN
- Database storage services-Relational & Non-relational database storage services
- Database storage services-Data partitioning and replicas
- Data Consistency-Data Consistency
- Data Consistency-CQRS
- Data Consistency-Event sourcing
- Data Consistency-Implementing eventual consistency
- Data Consistency-The Saga Pattern
- Data Consistency-Concurrency control
- Data Consistency-Optimistic Concurrency
- Versioning Schemas-Versioning Data schemas
- Backup & Disaster Recovery-Backup & restore
- Backup & Disaster Recovery-Recovery point & time objectives (RPO & RTO)
- Backup & Disaster Recovery-Disaster recovery