Implementing Software Architecture of a Large-Scale System
- Descrição
- Currículo
- FAQ
- Revisões
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
-
-
8System components overviewVídeo Aula
-
9Running the system on cloud Linux VMVídeo Aula
-
10Web app architecture and technology selectionVídeo Aula
-
11Python Django web app code overviewVídeo Aula
-
12Services architectureVídeo Aula
-
13Services technology selectionVídeo Aula
-
14Java SpringBoot services code overviewVídeo Aula
-
15Database technology selectionVídeo Aula
-
16Postgres RDBMS schema overviewVídeo Aula
-
17Single page app technology selectionVídeo Aula
-
18ReactJS SPA architectureVídeo Aula
-
19Why containerize application components?Vídeo Aula
-
20System with docker containersVídeo Aula
-
21Dockerize django webappVídeo Aula
-
22Docker compose for automationVídeo Aula
-
23Dockerize postgres databaseVídeo Aula
-
24Dockerize java springboot servicesVídeo Aula
-
25Dockerize reactjs single page appVídeo Aula
-
26Running all dockerized componentsVídeo Aula
-
27Running system with docker networkVídeo Aula
-
28Docker network and volumesVídeo Aula
-
29System review with docker containersVídeo Aula
-
30Client routing challenge & Gateway servicesVídeo Aula
-
31Netfix Zuul gateway service code and configurationVídeo Aula
-
32Running system with Netfliz Zuul gateway serviceVídeo Aula
-
33Static routing challenge & Discovery servicesVídeo Aula
-
34Netflix Eureka discovery service code and configurationVídeo Aula
-
35Running system with Netflix Eureka discovery serviceVídeo Aula
-
36Client based & Server based Load balancingVídeo Aula
-
37Netflix Ribbon load balancer code and configurationVídeo Aula
-
38Running system with Nginx & Ribbon load balancersVídeo Aula
-
39System Observability - Logging, Tracing and MonitoringVídeo Aula
-
40Logging challenges in large-scale systemsVídeo Aula
-
41Centralized logging architectureVídeo Aula
-
42Incrementing VM capacityVídeo Aula
-
43Configuration of Elasticsearch, Fluentd & Kibana (EFK stack)Vídeo Aula
-
44Observing system with Elasticsearch, Fluentd, Kibana stackVídeo Aula
-
45Tracing challenges in large-scale systemsVídeo Aula
-
46Distributed tracing architectureVídeo Aula
-
47Distributed tracing with Uber JaegerVídeo Aula
-
48Distributed tracing core mechanismVídeo Aula
-
49Uber Jaeger instrumentation code and configurationVídeo Aula
-
50Observing API latency using Jaeger tracingVídeo Aula
-
66RDBMS Limitations and Data PartitioningVídeo Aula
-
67Distributed database technology selectionVídeo Aula
-
68Cassandra schema vs Postgres schemaVídeo Aula
-
69Service code changes for CassandraVídeo Aula
-
70Cassandra configurationVídeo Aula
-
71Running system with highly available Cassandra database clusterVídeo Aula
