Description
In this course, you will :
- Design and construct massively Scalable Parallel Java Applications and Distributed Algorithms
- Create Cloud-based Software Systems with Low Latency, Fault Tolerance, High Availability, and Performance.
- The Master Software Architecture was created for the modern era of Cloud Computing.
- Deploy Distributed Programs on the Cloud globally to serve millions of users, billions of requests, and petabytes of data.
Syllabus :
1. Cluster Coordination Service and Distributed Algorithms
- Important: Apache Zookeeper - Installation and Troubleshooting Instructions
- Zookeeper Client Threading Model & Zookeeper Java API
- Important Tips for Debugging Applications with Zookeeper
- Leader Election Implementation
- Watchers, Triggers and Introduction to Failure Detection
- Leader Reelection Implementation
2. Cluster Management, Registration and Discovery
- Introduction to Service Registry & Service Discovery
- Service Registry & Discovery - Implementation
3. Network Communication
- HTTP for Communication in Distributed Systems
- HTTP Server - Implementation & Custom Headers
- HTTP Client - Implementation & Network Packet Analysis
- Message Delivery Semantics in Distributed Systems
- Complex Data Delivery - Serialization & Deserialization
4. Building Distributed Document Search
- Introduction to TF-IDF
- Implementation of TF-IDF
- Parallel TF-IDF & System Architecture
- Worker Node Implementation - Distributed Search
5. Load Balancing
- Load Balancing Strategies & Algorithms
- Load Balancing Networking Layers
- HAProxy - Load Balancing in Practice
- HAProxy with Docker - Running HAProxy on any Platform
6. Distributed Message Brokers
- Apache Kafka - Introduction
- Apache Kafka as a Distributed System
- Apache Kafka - Building a Kafka Cluster in Practice
- Apache Kafka - Kafka Producer with Java
- Apache Kafka - Building Kafka Consumers, Scalability and Pub/Sub
- Distributed Banking System - Practice
- Distributed Banking System - Solution
7. Distributed Storage & Databases
- Database Sharding
- Dynamic Sharding with Consistent Hashing
- Database Replication, Consistency Models & Quorum Consensus
8. Scaling a Real Database - Distributed MongoDB
- Scaling MongoDB using Data Replication - Introduction
- Launching a Replication Set in Distributed MongoDB
- Scaling MongoDB using Data Sharding - Introduction
- Launching a Sharded Distributed MongoDB
9. Cloud Computing and Deployment at Global Scale
- Cloud Deployment in Practice - Compute Instances and Templates
- Instance Groups, Autoscaling and Auto-healing
- Multi-Region Deployment and Global Load-balancing