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