Mô tả

Architecting software systems is a skill that is in huge demand, but it is not a readily available skill. To understand why this skill is rare to find, let's go through a few lines from Martin Fowler's blog on architecture.

He says: Architecture is about the important stuff. Whatever that is. It means that the heart of thinking architecturally about software is to decide what is important, (i.e. what is architectural), and then expend energy on keeping those architectural elements in good condition. For a developer to become an architect, they need to be able to recognize what elements are important, recognizing what elements are likely to result in serious problems should they not be controlled.

It takes a number of years for a developer to learn enough to become an architect. This learning largely depends on the kind of opportunities that you get in your career. Often these opportunities are limited to specific areas of work only.  However, to be an architect, you must possess extensive technical knowledge of as many areas as possible. You must understand all the complexities and challenges in different parts of a system. You need the ability to make upfront decisions by understanding various trade-offs. You should be able to foresee or anticipate critical problems that a system can face during its evolution.

This is where the 'Developer To Architect' course can be very useful for you. It assumes that you already have great development skills, and it builds from there. It extensively covers architecting non-functional properties of a system, handling of large-scale deployments, and internal working of popular open-source products for building software solutions.

To give you some details of what is specifically covered:

  • Architecting non-functional properties like Performance, Scalability, Reliability, Security. 

  • Large-scale deployment and operations using Docker containers and Kubernetes.

  • Internal working of popular open-source products like Node.js, Redis, Kafka, Cassandra, ELK stack, Hadoop, etc for confidently architecting software solutions.

In short, this course will help you learn everything you need to become a 'true' architect in a very short period of time.

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

Architecting Software Systems and Solutions: We will start with a basic three tier application architecture which we will enhance as we move along.

How to build a technical stack by getting architectural insights into products like Nodejs, Redis, Cassandra, Kafka, Hadoop, Elastic Search, .. and many more

Non-Functional Requirements: How to design architecture considering Performance, Scalability, Reliability, and Security

Deployment of large scale production systems using tools like Docker & Kubernetes

Yêu cầu

  • You are, or have been a good programmer, you can do code design, and write code in at least one programming language
  • You understand three tier architecture, and you broadly understand what web apps, services, and databases means

Nội dung khoá học

7 sections

Introduction

2 lectures
Developer To Architect
01:01
Introduction to Developer To Architect
05:05

Performance

36 lectures
Module contents overview
02:09
A reference software system for discussing performance
01:29
What is performance
02:48
How do performance problems look like
05:30
Performance principles
11:06
System performance objectives
04:30
Performance measurement metrics
10:20
Serial request latency
00:47
Network transfer latency
07:08
Minimizing network transfer latency
12:14
Memory access latency
05:08
Minimizing memory access latency
11:06
Disk access latency
01:31
Minimizing disk access latency
18:05
CPU processing latency
05:43
Minimizing CPU processing latency
10:10
Some common latency costs
07:27
Concurrency related latency
00:32
Amdahl's law for concurrent tasks
11:58
Gunther's universal scalability law
06:58
Shared resource contention
08:55
Minimizing shared resource contention
19:14
Minimizing locking related contention
10:05
Pessimistic Locking
06:11
Optimistic Locking
11:11
Compare and swap mechanism
10:03
Deadlocks
11:11
Coherence related delays
10:08
Caching
00:29
System architecture for performance
04:18
Caching for performance
04:54
HTTP Caching of static data
13:49
Caching of dynamic data
12:21
Caching related challenges
15:22
Summary
04:41
Performance presentation slides
00:03

Scalability

44 lectures
Module contents overview
01:43
Performance vs Scalability
04:43
Vertical & Horizontal scalability
05:44
Reverse proxy
04:20
A reference software system for discussing scalability
00:33
Scalability principles
05:18
Modularity for scalability
02:21
Replication
04:27
Stateful replication in web applications
13:12
Stateless replication in web applications
05:51
Stateless replication of services
03:11
Database replication
04:51
Database replication types
20:08
Need for specialized services
04:53
Specialized services - SOAP/REST
08:39
Asynchronous services
08:21
Asynchronous processing & scalability
07:57
Caching for scalability
04:25
Vertical partitioning with micro-services
06:49
Database partitioning
15:37
Database partitioning selection
08:04
Routing with database partitioning
03:36
Methods for horizontal scalability
02:23
Dealing with large scale systems
00:23
Load balancing multiple instances
03:49
Discovery service and load balancing
07:15
Load balancer discovery
02:22
HLB vs SLB
04:29
Layer-7 load balancers
03:44
DNS as load balancer
05:10
Global server load balancing
13:45
Global data replication
10:04
Auto scaling instances
06:27
Micro-Services Architecture
00:19
Micro-Services Motivation
05:54
Service Oriented Architecture
11:48
Micro-Services Architecture Style
12:25
Transactions in Micro-Services
11:05
Compensating Transactions - SAGA Pattern
14:53
Micro-services communication model
03:37
Event driven transactions
11:14
Extreme scalability with NoSQL and Kafka
08:51
Summary
04:15
Scalability presentation slides
00:02

Reliability

40 lectures
Module contents overview
01:44
Failures in large scale distributed systems
06:31
Partial system failures
04:55
Reliability engineering topics
00:46
Reliability
02:25
Availability
03:14
High Availability
03:05
Fault Tolerance
02:06
Designing Fault Tolerance
00:12
Fault tolerant design
01:02
Redundancy
03:35
Types of redundancy
05:32
Single point of failures
02:32
Stateless component redundancy
03:45
Stateful component redundancy
15:21
Load balancer redundancy
01:40
Datacentre infrastructure as SPOF
02:11
Creating datacenter redundancy
11:18
Fault detection
00:46
Fault models
02:48
Health checks
02:52
External monitoring service
07:31
Internal cluster monitoring
08:23
Fault detection in a system
02:08
Recovering from failures
00:41
Stateless component recovery
03:06
Stateful Failovers
08:56
Load Balancer high availability
01:12
Database recovery with hot standby
05:00
Database recovery with warm standby
06:24
Database recovery with cold backups
06:19
High Availability in large scale systems
11:50
Failover best practices
01:44
System stability
00:32
Timeouts
05:15
Retries
08:29
Circuit Breaker
04:04
Fail Fast and Shed Load
07:56
Summary
03:45
Reliability presentation slides
00:03

Security

42 lectures
Module contents overview
01:52
Security objectives
07:36
Network security
00:14
Symmetric key encryption
06:25
Public key encryption
09:07
Secure network protocol
07:15
SSL and TLS
05:53
Hashing
06:10
Digital signatures
09:43
Digital certificates
10:37
Chain of trust
08:47
TLS/SSL handshake
04:29
Secure network channel
03:21
Firewalls
04:07
Network security
05:01
Identity management
00:14
Authentication and authorization
01:53
Authentication
01:19
Credentials transfer
11:23
Credentials verification
08:36
Stateful authentication
08:22
Stateless authentication
07:41
Single Sign-On
03:17
Access management
00:17
Role based access control model
08:28
Role based access example
05:17
Authorization
07:01
OAuth2 token grant
05:57
OAuth2 token grant - Code Flow
07:35
OAuth2 token grant - Password Flow
01:45
OAuth2 in a system
02:15
OAuth2 token types
10:39
Json Web Tokens
06:29
Token storage
05:37
Securing data at rest
12:26
Securing a Software System
05:15
Common vulnerabilities
00:13
SQL Injection
04:48
Cross Site Scripting
05:07
Cross Site Resource Forgery
07:26
Summary
02:07
Security presentation slides
00:03

Deployment

37 lectures
Module contents overview
02:51
Large scale deployment challenges
01:06
Application deployment
02:50
Infrastructure deployment
03:53
System operations
05:51
Modern deployment solutions
01:07
Application deployment
00:08
Component deployment
03:04
Component deployment automation
03:31
Deployment with Virtual Machines
08:45
Isolation through virtual machines
04:07
Deployment with Containers
05:54
Docker containers
06:13
Infrastructure deployment
00:05
Infrastructure requirements
01:30
Provisioning and configuration
03:18
Deployment with containers on Cloud
02:28
Deployment with AWS cloud stack
08:09
Deployment with Kubernetes
00:18
Kubernetes lifecycle management
01:42
Kubernetes naming and addressing
02:20
Kubernetes scaling with multiple instances
02:04
Kubernetes load balacing
01:55
Kubernetes high availability
00:56
Kubernetes rolling upgrades
02:30
Kubernetes capabilities
03:29
Kubernetes deployment
04:05
Kubernetes services and workloads
04:00
Kubernetes architecture
10:16
System upgrades
00:15
Rolling updates
02:33
Canary deployment
01:37
Recreate deployment
00:55
Blue Green deployment
02:01
A/B testing
03:15
Summary
02:13
Deployment presentation slides
00:03

Technology Stack

55 lectures
Module contents overview
02:44
Reference system for using tech platforms
01:13
Web applications
02:38
Solutions for web applications
02:45
Apache web server
05:32
Apache webServer architecture
05:20
Apache webserver scalability
05:06
Nginx webserver
01:15
Nginx architecture
09:42
Nginx as reverse proxy and cache
04:46
Web containers & spring framework
05:34
Jetty & Spring
02:55
Node.JS
04:29
Node.JS event loop
12:06
Cloud Solutions for web
13:44
Cloud storage
05:32
Cloud CDN
06:49
Services
02:51
Services solutions
01:44
Memcached
04:49
Memcached Architecture
13:53
Redis Cache & its architecture
08:18
Cloud caching solutions
02:08
RabbitMQ
15:08
RabbitMQ architecture
12:26
Kafka architecture
17:44
Redis Pub/Sub
09:53
Cloud MQ solutions
03:56
Datastores
02:08
Datastore solutions
02:13
RDBMS
10:22
RDBMS scalability architecture
07:52
NoSQL objectives & trade-offs
10:54
Amazon DynamoDB
09:24
DynamoDB architecture
11:08
Google BigTable
16:22
BigTable architecture
15:02
HBase
03:25
Cassandra
15:08
Cassandra features
04:36
MongoDB
06:14
MongoDB architecture
07:33
Analytics
04:17
Analytics solutions
02:07
Logstash architecture
13:34
Logstash data streaming architecture
10:28
Fluentd
07:59
Elasticsearch
18:14
Elasticsearch architecture
17:12
Hadoop HDFS
10:50
Map-Reduce
21:42
Apache Spark
09:32
Stream processing
12:17
Summary
11:22
Technology Stack presentation slides
00:03

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