Distributed Systems & Cloud Computing with Java

Distributed Systems & Cloud Computing with Java

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 51 lectures (7h 37m) | 2.67 GB

Learn Distributed Java Applications at Scale, Parallel Programming, Distributed Computing & Cloud Software Architecture

Have you always wanted to build software that reaches millions of users and impact people’s lives?

  • Have you been wondering how modern companies
  • Handle massive amount of internet traffic and transactions?
  • Securely store billions of our photos, videos and other data?
  • Provide impeccable user experience and high performance 24/7 all around the globe?

Then you are in the perfect place!

In this course you will:

  • Master the theory of Distributed Systems, Distributed Computing and modern Software Architecture
  • Gain the practical skills necessary to build Distributed Applications and Parallel Algorithms, focusing on Java based technologies
  • Deploy groups of distributed Java applications on the Cloud
  • Scale Distributed Databases to store petabytes of data
  • Build Highly Scalable and Fault Tolerant Distributed Systems

Along the way you will learn modern technologies like:

  • Apache Kafka
  • Apache Zookeeper
  • MongoDB
  • HAProxy
  • Google Cloud Platform
  • JSON
  • Java HTTP Server and Client
  • Protocol Buffers
  • Google Cloud Platform
  • And many others

By the end of the course you will:

  • Apply best practices for building and architecting real-life Distributed Systems
  • Scale your Distributed System to handle billions of transactions per day
  • Deploy your distributed application on the Cloud
  • Choose the right technologies for your use case and Software Architecture
  • Use modern Java based techniques to store and handle large amounts of data

What you’ll learn

  • Design and build massively Parallel Java Applications and Distributed Algorithms at Scale
  • Create efficient Cloud-based Software Systems for Low Latency, Fault Tolerance, High Availability and Performance
  • Master Software Architecture designed for the modern era of Cloud Computing
  • Globally deploy Distributed Programs on the Cloud serving millions of users, billions of requests, & petabytes of data
Table of Contents

Introduction to Distributed Systems
1 Introduction and Motivation

Cluster Coordination Service and Distributed Algorithms
2 Introduction to Cluster Coordination & Theory of Leader Election
3 Zookeeper Server and Client Download and Setup
4 Important Apache Zookeeper Installation and Troubleshooting Instructions
5 Zookeeper Client Threading Model & Zookeeper Java API
6 Important Tips for Debugging Applications with Zookeeper
7 Leader Election Implementation
8 Watchers Triggers and Introduction to Failure Detection
9 Leader Reelection Implementation
10 Practice Cluster Autohealer using Zookeeper

Cluster Management Registration and Discovery
11 Introduction to Service Registry & Service Discovery
12 Service Registry & Discovery Implementation

Network Communication
13 Introduction to Network Communication Optional
14 HTTP for Communication in Distributed Systems
15 HTTP Server Implementation & Custom Headers
16 HTTP Client Implementation & Network Packet Analysis
17 Message Delivery Semantics in Distributed Systems
18 Complex Data Delivery Serialization & Deserialization

Building Distributed Document Search
19 Introduction to TFIDF
20 Implementation of TFIDF
21 Parallel TFIDF & System Architecture
22 Worker Node Implementation Distributed Search Part 1
23 Search Cluster Coordinator Distributed Search Part 2
24 Search Web Application Distributed Search Part 3

Load Balancing
25 Introduction To Load Balancers
26 Load Balancing Strategies & Algorithms
27 Load Balancing Networking Layers
28 HAProxy Load Balancing in Practice
29 HAProxy with Docker Running HAProxy on any Platform

Distributed Message Brokers
30 Introduction to Message Brokers
31 Apache Kafka Introduction
32 Apache Kafka as a Distributed System
33 Apache Kafka Building a Kafka Cluster in Practice
34 Apache Kafka Kafka Producer with Java
35 Apache Kafka Building Kafka Consumers Scalability and PubSub
36 Distributed Banking System Practice
37 Distributed Banking System Solution

Distributed Storage & Databases
38 Introduction to Distributed Storage
39 Database Sharding
40 Dynamic Sharding with Consistent Hashing
41 Database Replication Consistency Models & Quorum Consensus

Scaling a Real Database Distributed MongoDB
42 Introduction to MongoDB
43 Scaling MongoDB using Data Replication Introduction
44 Launching a Replication Set in Distributed MongoDB
45 Scaling MongoDB using Data Sharding Introduction
46 Launching a Sharded Distributed MongoDB

Cloud Computing and Deployment at Global Scale
47 Introduction to Cloud Computing
48 Cloud Deployment in Practice Compute Instances and Templates
49 Instance Groups Autoscaling and Autohealing
50 MultiRegion Deployment and Global Loadbalancing

Bonus Material
51 Bonus Material

Homepage