Mô tả

The best way to learn software development is to write code. The best way to learn software architecture is to build and run a system. This is exactly what you are going to do as part of this course!

This course is the next in the series of Developer to Architect courses. The previous course 'Software Architecture & Technology of Large-Scale Systems' was focused on the concepts and principles of software architecture that govern modern large-scale systems.

This course 'Hands-On Implementation of Large-Scale Software Architecture', is focused on implementing those software and solution architecture principles in a mock large-scale system (mini system or simply minisys) by using open source technologies.

It starts with a downloadable code base of a mini system. We evolve this mini system into a full-fledged large-scale system implementation as we move along with the course. Our goal is to learn the typical architectural challenges that are faced by any large-scale system and solve these challenges using modern tools, technologies, and methods.

You can learn about these challenges and their solutions by actually working on a live system. For the same, you can download a mini system code-base provided by NewTechWays on Bitbucket or Github. You can follow the instructions to download, build and run this codebase. Although the instructions and code automation is platform-agnostic, this course will make use of Google Cloud Platform using a Linux machine as our test environment for building and running the system. Later we will put our system in a Production kind of environment using Kubernetes on Google Cloud Platform.   

As we move along with this course we will cover the following architectural challenges and use the following technologies as their solutions:

  • 3 Tier Application

    • Webapp – Python Django

    • RESTful Service – Java Spring Boot

    • Database – PostgreSQL & Cassandra

    • SPA - ReactJS

  • Containerization of System

    • Docker Containers

    • Docker Compose

  • Request Routing in Microservices

    • Discovery – Netflix Eureka

    • Gateway – Netflix Zuul

    • Client-Side Load Balancer – Ribbon

    • Server-Side Load Balancer - Nginx

  • System Observability

    • Logging – Elasticsearch, Fluent, Kibana

    • Tracing - Jaeger

    • Monitoring & Alerts – Prometheus

  • Large-scale Data Management

    • Caching - Redis

    • Asynchronous Processing - RabbitMQ

    • Horizontal Data Partitioning - Cassandra

  • Production Deployment

    • Cloud Deployment – Kubernetes on GCP

    • Auto-scaling – Kubernetes

    • High Availability - Kubernetes

    • Rolling Upgrades - Kubernetes

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

Understand through code, the architectural challenges of developing large-scale systems - Scalability, Reliability, Deployment, Observability

Code implementation of various tools and technologies used for making large-scale systems - Redis, RabbitMQ, Netflix, Fluentd, Elasticsearch, Kubernetes & more

Downloadable code along with configuration, scripts and instructions to run a mini system on your laptop and on a cloud environment

A practical demonstration of how systems are scaled and operated on both On-Premises environment and in Cloud environments

Yêu cầu

  • A little knowledge of Java will be helpful in understanding code. If you do not know Java, then a good experience with any other modern programming language will also do.
  • Familiarity with very basic Linux shell commands and scripting will be helpful. If you haven't worked on Linux, then a good scripting experience on any other platform will also do.

Nội dung khoá học

12 sections

Course Overview

3 lectures
Introduction
02:33
Course Overview
05:06
Course Content Pdf
00:03

Work Environment Setup

4 lectures
Work environment
00:39
Create Linux workstation VM on cloud
04:50
Build code
07:52
Workstation VM backup
04:43

System Components - Languages & Frameworks

11 lectures
System components overview
03:56
Running the system on cloud Linux VM
18:56
Web app architecture and technology selection
14:11
Python Django web app code overview
04:11
Services architecture
07:09
Services technology selection
04:56
Java SpringBoot services code overview
04:09
Database technology selection
08:19
Postgres RDBMS schema overview
07:16
Single page app technology selection
04:05
ReactJS SPA architecture
04:06

Docker Containers - Isolating component dependencies and environment

11 lectures
Why containerize application components?
03:42
System with docker containers
01:22
Dockerize django webapp
23:40
Docker compose for automation
11:28
Dockerize postgres database
06:01
Dockerize java springboot services
14:47
Dockerize reactjs single page app
03:12
Running all dockerized components
01:14
Running system with docker network
05:32
Docker network and volumes
18:18
System review with docker containers
03:12

Microservices - Gateway, Discovery & Load Balancing

9 lectures
Client routing challenge & Gateway services
04:53
Netfix Zuul gateway service code and configuration
05:24
Running system with Netfliz Zuul gateway service
09:47
Static routing challenge & Discovery services
07:54
Netflix Eureka discovery service code and configuration
13:26
Running system with Netflix Eureka discovery service
12:10
Client based & Server based Load balancing
08:29
Netflix Ribbon load balancer code and configuration
03:23
Running system with Nginx & Ribbon load balancers
23:44

Centralized Logging with Elasticsearch, Fluentd & Kibana (EFK stack)

6 lectures
System Observability - Logging, Tracing and Monitoring
05:14
Logging challenges in large-scale systems
04:29
Centralized logging architecture
06:12
Incrementing VM capacity
01:40
Configuration of Elasticsearch, Fluentd & Kibana (EFK stack)
11:39
Observing system with Elasticsearch, Fluentd, Kibana stack
14:52

Distributed Tracing with Uber Jaeger

6 lectures
Tracing challenges in large-scale systems
01:42
Distributed tracing architecture
03:05
Distributed tracing with Uber Jaeger
03:58
Distributed tracing core mechanism
05:30
Uber Jaeger instrumentation code and configuration
13:31
Observing API latency using Jaeger tracing
19:07

Metrics Monitoring with Prometheus

4 lectures
Metrics for large-scale systems
03:03
Exposing application component metrics for Prometheus
03:07
Prometheus configuration for metrics
07:12
Observing system metrics through Prometheus
11:21

Data Caching with Redis Cache

6 lectures
Challenges of high request and data volume
01:21
Caching for managing read only load
04:03
Caching technology selection
04:08
Service code changes for Redis cache
05:29
Redis cache configuration
02:24
Running system with Redis cache
05:20

Asynchronous Processing with RabbitMQ

5 lectures
Managing write only load for Async workflows
04:57
Messaging queue technology selection
03:19
Service code changes for RabbitMQ
12:52
RabbitMQ configuration
03:54
Running system with RabbitMQ
11:18

Horizontal Scalability with Cassandra

6 lectures
RDBMS Limitations and Data Partitioning
11:28
Distributed database technology selection
05:21
Cassandra schema vs Postgres schema
05:22
Service code changes for Cassandra
08:12
Cassandra configuration
10:38
Running system with highly available Cassandra database cluster
17:11

Deployment with Kubernetes on Google Cloud

12 lectures
Moving from test deployment to production deployment
01:36
Reasons for Kubernetes and Cloud deployment
05:13
Kubernetes cluster architecture
02:16
Setting up Cloud Container Registry
10:11
Creating Kubernetes Cluster on Google Cloud
07:31
Kubernetes configuration for the system
01:05:41
Deploying system on Kubernetes
32:32
Exposing system to Internet using External Load Balancers
10:37
High availability with Kubernetes
09:56
Auto-scaling with Kubernetes
10:13
Rolling upgrades with Kubernetes
13:38
Shutting down Kubernetes cluster
03:22

Đá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.