Mô tả

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

  • 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


So what are you waiting for?

Join us today on this incredible journey!


FAQ

- What do I need to know to join the course?

Basic knowledge of Java will suffice. Knowing the fundamentals of Multithreading and Concurrency may help but is not required.

- Will this course help me in System Design Interviews?

Yes. Distributed Systems questions are frequently asked during System Design Interviews, especially by large companies that operate on a massive scale. The skills you will learn in this course will help you in your career both while interviewing and working on real projects

- Do I need to pay for any software or Cloud account?

No. All the technologies covered in the course are free and open-source. The lectures on the cloud don't require you to pay for anything. If you want to follow along, all cloud vendors provide free-tier accounts to play around with and practice for free. Please follow the specific cloud vendor's documentation for guidance.

- Can I run and develop a Distributed System locally on my personal computer?

Yes. You can develop and run a distributed system on your computer and you don't need to buy any additional hardware. Generally, most distributed computing development is done on a single computer before it goes to QA and production.

- Is this the right course for me if I want to become a Software Architect or Technical Lead?

Yes. This is the right place for you to gain practical Software Architecture and Distributed Computing skills to become a Software Architect and Technical Lead. Thanks to the advancement of Cloud Computing, most companies today run distributed systems and deploy them on the cloud. So the skills taught in this course are critical to being a successful Software Architect in the modern era.

Bạn sẽ học được gì

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

Yêu cầu

  • Proficiency in the Java
  • Passion for Software Engineering and Computer Science
  • Multithreading and Concurrency: Recommended

Nội dung khoá học

11 sections

Introduction to Distributed Systems

1 lectures
Introduction and Motivation
08:19

Cluster Coordination Service and Distributed Algorithms

11 lectures
Introduction to Cluster Coordination & Theory of Leader Election
08:23
Introduction to Cluster Coordination & Theory of Leader Election
3 questions
Zookeeper Server and Client (Download and Setup)
08:16
Important: Apache Zookeeper - Installation and Troubleshooting Instructions
01:59
Zookeeper Client Threading Model & Zookeeper Java API
11:23
Important Tips for Debugging Applications with Zookeeper
01:00
Apache Zookeeper Fundamentals
3 questions
Leader Election Implementation
05:03
Watchers, Triggers and Introduction to Failure Detection
09:50
Leader Reelection Implementation
10:19
Practice - Cluster Auto-healer using Zookeeper
00:58

Cluster Management, Registration and Discovery

2 lectures
Introduction to Service Registry & Service Discovery
05:02
Service Registry & Discovery - Implementation
15:06

Network Communication

8 lectures
Introduction to Network Communication - Optional
13:22
HTTP for Communication in Distributed Systems
12:08
HTTP
3 questions
HTTP Server - Implementation & Custom Headers
12:15
HTTP Client - Implementation & Network Packet Analysis
14:13
Message Delivery Semantics in Distributed Systems
08:26
Message Delivery Semantics in Distributed Systems
2 questions
Complex Data Delivery - Serialization & Deserialization
17:11

Building Distributed Document Search

6 lectures
Introduction to TF-IDF
10:31
Implementation of TF-IDF
14:08
Parallel TF-IDF & System Architecture
06:24
Worker Node Implementation - Distributed Search Part 1
10:27
Search Cluster Coordinator - Distributed Search Part 2
14:23
Search Web Application - Distributed Search Part 3
17:52

Load Balancing

7 lectures
Introduction To Load Balancers
08:17
Load Balancing Strategies & Algorithms
07:18
Load Balancing in Distributed Systems
3 questions
Load Balancing Networking Layers
04:20
Load Balancing Networking Layers
2 questions
HAProxy - Load Balancing in Practice
15:47
HAProxy with Docker - Running HAProxy on any Platform
06:18

Distributed Message Brokers

10 lectures
Introduction to Message Brokers
07:18
Introduction to Message Brokers
2 questions
Apache Kafka - Introduction
06:27
Apache Kafka as a Distributed System
06:58
Apache Kafka
2 questions
Apache Kafka - Building a Kafka Cluster in Practice
12:35
Apache Kafka - Kafka Producer with Java
07:46
Apache Kafka - Building Kafka Consumers, Scalability and Pub/Sub
09:57
Distributed Banking System - Practice
01:46
Distributed Banking System - Solution
01:19

Distributed Storage & Databases

6 lectures
Introduction to Distributed Storage
05:58
Database Sharding
07:03
Data Sharding
2 questions
Dynamic Sharding with Consistent Hashing
08:05
Dynamic Sharding with Consistent Hashing
1 question
Database Replication, Consistency Models & Quorum Consensus
11:38

Scaling a Real Database - Distributed MongoDB

5 lectures
Introduction to MongoDB
09:09
Scaling MongoDB using Data Replication - Introduction
04:12
Launching a Replication Set in Distributed MongoDB
10:31
Scaling MongoDB using Data Sharding - Introduction
05:11
Launching a Sharded Distributed MongoDB
17:43

Cloud Computing and Deployment at Global Scale

4 lectures
Introduction to Cloud Computing
09:32
Cloud Deployment in Practice - Compute Instances and Templates
08:32
Instance Groups, Autoscaling and Auto-healing
09:25
Multi-Region Deployment and Global Load-balancing
14:18

Bonus Material

1 lectures
Bonus Material - Let's Keep Learning
00:24

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.