Udemy

Implementing Software Architecture of a Large-Scale System

Enroll Now
  • 10,239 Students
  • Updated 11/2023
4.4
(878 Ratings)
CTgoodjobs selects quality courses to enhance professionals' competitiveness. By purchasing courses through links on our site, we may receive an affiliate commission.

Course Information

Registration period
Year-round Recruitment
Course Level
Study Mode
Duration
11 Hour(s) 34 Minute(s)
Language
English
Taught by
NewTechWays - Anurag Yadav
Rating
4.4
(878 Ratings)
5 views

Course Overview

Implementing Software Architecture of a Large-Scale System

A hands-on approach to Software Solution Architecture of large-scale systems using modern methods & open source products

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

Course Content

  • 12 section(s)
  • 83 lecture(s)
  • Section 1 Course Overview
  • Section 2 Work Environment Setup
  • Section 3 System Components - Languages & Frameworks
  • Section 4 Docker Containers - Isolating component dependencies and environment
  • Section 5 Microservices - Gateway, Discovery & Load Balancing
  • Section 6 Centralized Logging with Elasticsearch, Fluentd & Kibana (EFK stack)
  • Section 7 Distributed Tracing with Uber Jaeger
  • Section 8 Metrics Monitoring with Prometheus
  • Section 9 Data Caching with Redis Cache
  • Section 10 Asynchronous Processing with RabbitMQ
  • Section 11 Horizontal Scalability with Cassandra
  • Section 12 Deployment with Kubernetes on Google Cloud

What You’ll Learn

  • 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


Reviews

  • P
    Pruthvin S
    5.0

    good

  • P
    Parshuram Goud
    4.5

    it's very good

  • A
    Addu Adnan
    4.5

    superb

  • G
    Gunda Sai Abhishek
    5.0

    Quite informative and cognisance

Start FollowingSee all

We use cookies to enhance your experience on our website. Please read and confirm your agreement to our Privacy Policy and Terms and Conditions before continue to browse our website.

Read and Agreed