Архитектурное проектирование - это навык, который пользуется огромным спросом, но это не всегда доступный навык. Чтобы понять, почему он встречается редко, давайте рассмотрим несколько строк из блога Мартина Фаулера об архитектуре.
Он говорит: «Архитектура - это самое важное». Что бы это ни было. Это означает, что суть архитектурного мышления о программном обеспечении состоит в том, чтобы решить, что является важным (то есть, что является архитектурным), а затем потратить энергию на поддержание этих архитектурных элементов в хорошем состоянии. Чтобы разработчик стал архитектором, он должен уметь распознавать, какие элементы важны, а какие элементы могут привести к серьезным проблемам, если они не будут контролироваться.
Разработчику требуется несколько лет, чтобы выучить достаточно, для того чтобы стать архитектором. Это обучение во многом зависит от того, какие возможности вы получаете в своей карьере. Часто эти возможности ограничиваются только конкретными сферами работы. Однако, чтобы быть архитектором, вы должны обладать обширными техническими знаниями в максимально возможном количестве областей. Вы должны понимать все сложности и проблемы в различных частях системы. Вам нужна способность принимать предварительные решения, понимая различные компромиссы. Вы должны уметь предвидеть и критические проблемы, с которыми система может столкнуться в процессе своего развития.
Здесь вам может быть очень полезен курс «От разработчика к архитектору». Он широко охватывает архитектуру нефункциональных свойств системы, обработку крупномасштабных развертываний и внутреннюю работу популярных продуктов с открытым исходным кодом для создания программных решений.
Некоторые подробности о том, что конкретно рассматривается в курсе:
Проектирование нефункциональных свойств, таких как производительность, масштабируемость, надежность, безопасность;
Масштабное развертывание и операции с использованием контейнеров Docker и Kubernetes.
Внутренняя работа с популярными продуктами с открытым исходным кодом, такими как Node.js, Redis, Kafka, Cassandra, стек ELK, Hadoop и т. д., для уверенного проектирования программных решений;
Короче говоря, этот курс поможет вам научиться всему, что нужно, чтобы стать «тру» архитектором за очень короткий период времени.
Посмотреть больше
Это пробный урок. Оформите подписку, чтобы получить доступ ко всем материалам курса. Премиум
Ограничение времени просмотра
Вы можете просматривать пробный урок только 10 минут. Получите полный доступ, чтобы смотреть без ограничений.
A reference software system for discussing performance
Урок 4.
00:03:09
What is performance
Урок 5.
00:05:55
How do performance problems look like
Урок 6.
00:11:48
Performance principles
Урок 7.
00:04:45
System performance objectives
Урок 8.
00:11:05
Performance measurement metrics
Урок 9.
00:00:48
Serial request latency
Урок 10.
00:07:42
Network transfer latency
Урок 11.
00:13:14
Minimizing network transfer latency
Урок 12.
00:05:38
Memory access latency
Урок 13.
00:12:16
Minimizing memory access latency
Урок 14.
00:01:39
Disk access latency
Урок 15.
00:19:44
Minimizing disk access latency
Урок 16.
00:05:44
CPU processing latency
Урок 17.
00:10:11
Minimizing CPU processing latency
Урок 18.
00:07:28
Some common latency costs
Урок 19.
00:00:33
Concurrency related latency
Урок 20.
00:13:02
Amdahl's law for concurrent tasks
Урок 21.
00:07:39
Gunther's universal scalability law
Урок 22.
00:08:56
Shared resource contention
Урок 23.
00:19:15
Minimizing shared resource contention
Урок 24.
00:10:06
Minimizing locking related contention
Урок 25.
00:06:12
Pessimistic Locking
Урок 26.
00:11:12
Optimistic Locking
Урок 27.
00:10:04
Compare and swap mechanism
Урок 28.
00:11:12
Deadlocks
Урок 29.
00:10:09
Coherence related delays
Урок 30.
00:00:30
Caching
Урок 31.
00:04:19
System architecture for performance
Урок 32.
00:04:55
Caching for performance
Урок 33.
00:13:50
HTTP Caching of static data
Урок 34.
00:12:22
Caching of dynamic data
Урок 35.
00:15:23
Caching related challenges
Урок 36.
00:04:42
Summary
Урок 37.
00:02:15
Module contents overview
Урок 38.
00:05:19
Performance vs Scalability
Урок 39.
00:06:26
Vertical & Horizontal scalability
Урок 40.
00:04:48
Reverse proxy
Урок 41.
00:00:45
A reference software system for discussing scalability
Урок 42.
00:05:19
Scalability principles
Урок 43.
00:02:35
Modularity for scalability
Урок 44.
00:04:53
Replication
Урок 45.
00:13:13
Stateful replication in web applications
Урок 46.
00:06:37
Stateless replication in web applications
Урок 47.
00:03:18
Stateless replication of services
Урок 48.
00:04:52
Database replication
Урок 49.
00:20:09
Database replication types
Урок 50.
00:04:54
Need for specialized services
Урок 51.
00:08:40
Specialized services - SOAP/REST
Урок 52.
00:08:22
Asynchronous services
Урок 53.
00:07:58
Asynchronous processing & scalability
Урок 54.
00:04:26
Caching for scalability
Урок 55.
00:06:50
Vertical partitioning with micro-services
Урок 56.
00:15:38
Database partitioning
Урок 57.
00:08:05
Database partitioning selection
Урок 58.
00:03:37
Routing with database partitioning
Урок 59.
00:02:24
Methods for horizontal scalability
Урок 60.
00:00:24
Dealing with large scale systems
Урок 61.
00:04:12
Load balancing multiple instances
Урок 62.
00:08:37
Discovery service and load balancing
Урок 63.
00:02:32
Load balancer discovery
Урок 64.
00:04:30
HLB vs SLB
Урок 65.
00:03:52
Layer-7 load balancers
Урок 66.
00:05:29
DNS as load balancer
Урок 67.
00:13:46
Global server load balancing
Урок 68.
00:10:05
Global data replication
Урок 69.
00:06:28
Auto scaling instances
Урок 70.
00:00:20
Micro-Services Architecture
Урок 71.
00:05:55
Micro-Services Motivation
Урок 72.
00:11:49
Service Oriented Architecture
Урок 73.
00:12:26
Micro-Services Architecture Style
Урок 74.
00:11:06
Transactions in Micro-Services
Урок 75.
00:14:54
Compensating Transactions - SAGA Pattern
Урок 76.
00:03:38
Micro-services communication model
Урок 77.
00:11:15
Event driven transactions
Урок 78.
00:08:52
Extreme scalability with NoSQL and Kafka
Урок 79.
00:04:16
Summary
Урок 80.
00:01:59
Module contents overview
Урок 81.
00:06:41
Failures in large scale distributed systems
Урок 82.
00:04:39
Partial system failures
Урок 83.
00:00:47
Reliability engineering topics
Урок 84.
00:02:26
Reliability
Урок 85.
00:03:17
Availability
Урок 86.
00:03:19
High Availability
Урок 87.
00:02:12
Fault Tolerance
Урок 88.
00:00:13
Designing Fault Tolerance
Урок 89.
00:01:03
Fault tolerant design
Урок 90.
00:03:36
Redundancy
Урок 91.
00:05:33
Types of redundancy
Урок 92.
00:02:33
Single point of failures
Урок 93.
00:03:46
Stateless component redundancy
Урок 94.
00:15:22
Stateful component redundancy
Урок 95.
00:01:41
Load balancer redundancy
Урок 96.
00:02:12
Datacentre infrastructure as SPOF
Урок 97.
00:11:19
Creating datacenter redundancy
Урок 98.
00:00:47
Fault detection
Урок 99.
00:02:49
Fault models
Урок 100.
00:02:53
Health checks
Урок 101.
00:07:32
External monitoring service
Урок 102.
00:08:24
Internal cluster monitoring
Урок 103.
00:02:09
Fault detection in a system
Урок 104.
00:00:42
Recovering from failures
Урок 105.
00:03:07
Stateless component recovery
Урок 106.
00:08:57
Stateful Failovers
Урок 107.
00:01:13
Load Balancer high availability
Урок 108.
00:05:01
Database recovery with hot standby
Урок 109.
00:06:25
Database recovery with warm standby
Урок 110.
00:06:20
Database recovery with cold backups
Урок 111.
00:11:51
High Availability in large scale systems
Урок 112.
00:01:45
Failover best practices
Урок 113.
00:00:33
System stability
Урок 114.
00:05:16
Timeouts
Урок 115.
00:08:30
Retries
Урок 116.
00:04:05
Circuit Breaker
Урок 117.
00:07:57
Fail Fast and Shed Load
Урок 118.
00:03:47
Summary
Урок 119.
00:02:16
Module contents overview
Урок 120.
00:08:10
Security objectives
Урок 121.
00:00:15
Network security
Урок 122.
00:06:49
Symmetric key encryption
Урок 123.
00:09:08
Public key encryption
Урок 124.
00:07:16
Secure network protocol
Урок 125.
00:05:54
SSL and TLS
Урок 126.
00:06:11
Hashing
Урок 127.
00:09:44
Digital signatures
Урок 128.
00:10:38
Digital certificates
Урок 129.
00:08:48
Chain of trust
Урок 130.
00:04:30
TLS/SSL handshake
Урок 131.
00:03:22
Secure network channel
Урок 132.
00:04:08
Firewalls
Урок 133.
00:05:02
Network security
Урок 134.
00:00:15
Identity management
Урок 135.
00:01:54
Authentication and authorization
Урок 136.
00:01:20
Authentication
Урок 137.
00:11:24
Credentials transfer
Урок 138.
00:08:37
Credentials verification
Урок 139.
00:08:22
Stateful authentication
Урок 140.
00:07:42
Stateless authentication
Урок 141.
00:03:18
Single Sign-On
Урок 142.
00:00:18
Access management
Урок 143.
00:08:29
Role based access control model
Урок 144.
00:05:18
Role based access example
Урок 145.
00:07:02
Authorization
Урок 146.
00:05:58
OAuth2 token grant
Урок 147.
00:07:36
OAuth2 token grant - Code Flow
Урок 148.
00:01:46
OAuth2 token grant - Password Flow
Урок 149.
00:02:16
OAuth2 in a system
Урок 150.
00:10:40
OAuth2 token types
Урок 151.
00:06:30
Json Web Tokens
Урок 152.
00:05:38
Token storage
Урок 153.
00:12:27
Securing data at rest
Урок 154.
00:05:16
Securing a Software System
Урок 155.
00:00:14
Common vulnerabilities
Урок 156.
00:04:49
SQL Injection
Урок 157.
00:05:08
Cross Site Scripting
Урок 158.
00:07:27
Cross Site Resource Forgery
Урок 159.
00:02:08
Summary
Урок 160.
00:03:12
Module contents overview
Урок 161.
00:01:07
Large scale deployment challenges
Урок 162.
00:02:51
Application deployment
Урок 163.
00:03:54
Infrastructure deployment
Урок 164.
00:05:52
System operations
Урок 165.
00:01:08
Modern deployment solutions
Урок 166.
00:00:09
Application deployment
Урок 167.
00:03:05
Component deployment
Урок 168.
00:03:32
Component deployment automation
Урок 169.
00:08:46
Deployment with Virtual Machines
Урок 170.
00:04:08
Isolation through virtual machines
Урок 171.
00:05:55
Deployment with Containers
Урок 172.
00:06:14
Docker containers
Урок 173.
00:00:06
Infrastructure deployment
Урок 174.
00:01:31
Infrastructure requirements
Урок 175.
00:03:19
Provisioning and configuration
Урок 176.
00:02:29
Deployment with containers on Cloud
Урок 177.
00:08:11
Deployment with AWS cloud stack
Урок 178.
00:00:19
Deployment with Kubernetes
Урок 179.
00:01:43
Kubernetes lifecycle management
Урок 180.
00:02:21
Kubernetes naming and addressing
Урок 181.
00:02:05
Kubernetes scaling with multiple instances
Урок 182.
00:01:56
Kubernetes load balacing
Урок 183.
00:00:57
Kubernetes high availability
Урок 184.
00:02:31
Kubernetes rolling upgrades
Урок 185.
00:03:30
Kubernetes capabilities
Урок 186.
00:04:06
Kubernetes deployment
Урок 187.
00:04:00
Kubernetes services and workloads
Урок 188.
00:10:17
Kubernetes architecture
Урок 189.
00:00:16
System upgrades
Урок 190.
00:02:34
Rolling updates
Урок 191.
00:01:38
Canary deployment
Урок 192.
00:00:56
Recreate deployment
Урок 193.
00:02:02
Blue Green deployment
Урок 194.
00:03:16
A/B testing
Урок 195.
00:02:14
Summary
Урок 196.
00:03:43
Module contents overview
Урок 197.
00:01:21
Reference system for using tech platforms
Урок 198.
00:02:58
Web applications
Урок 199.
00:02:58
Solutions for web applications
Урок 200.
00:06:01
Apache web server
Урок 201.
00:05:33
Apache webServer architecture
Урок 202.
00:05:07
Apache webserver scalability
Урок 203.
00:01:16
Nginx webserver
Урок 204.
00:09:43
Nginx architecture
Урок 205.
00:04:47
Nginx as reverse proxy and cache
Урок 206.
00:05:35
Web containers & spring framework
Урок 207.
00:02:56
Jetty & Spring
Урок 208.
00:04:30
Node.JS
Урок 209.
00:12:07
Node.JS event loop
Урок 210.
00:13:45
Cloud Solutions for web
Урок 211.
00:05:33
Cloud storage
Урок 212.
00:06:50
Cloud CDN
Урок 213.
00:02:52
Services
Урок 214.
00:01:45
Services solutions
Урок 215.
00:04:50
Memcached
Урок 216.
00:13:54
Memcached Architecture
Урок 217.
00:08:19
Redis Cache & its architecture
Урок 218.
00:02:09
Cloud caching solutions
Урок 219.
00:15:09
RabbitMQ
Урок 220.
00:12:27
RabbitMQ architecture
Урок 221.
00:17:45
Kafaka architecture
Урок 222.
00:09:54
Redis Pub/Sub
Урок 223.
00:03:57
Cloud MQ solutions
Урок 224.
00:02:09
Datastores
Урок 225.
00:02:14
Datastore solutions
Урок 226.
00:10:23
RDBMS
Урок 227.
00:07:53
RDBMS scalability architecture
Урок 228.
00:10:55
NoSQL objectives & trade-offs
Урок 229.
00:09:25
Amazon DynamoDB
Урок 230.
00:11:09
DynamoDB architecture
Урок 231.
00:16:23
Google BigTable
Урок 232.
00:15:03
BigTable architecture
Урок 233.
00:03:26
HBase
Урок 234.
00:15:09
Cassandra
Урок 235.
00:04:37
Cassandra features
Урок 236.
00:06:15
MongoDB
Урок 237.
00:07:34
MongoDB architecture
Урок 238.
00:04:18
Analytics
Урок 239.
00:02:08
Analytics solutions
Урок 240.
00:13:35
Logstash architecture
Урок 241.
00:10:29
Logstash data streaming architecture
Урок 242.
00:08:00
Fluentd
Урок 243.
00:18:15
Elasticsearch
Урок 244.
00:17:13
Elasticsearch architecture
Урок 245.
00:10:51
Hadoop HDFS
Урок 246.
00:21:43
Map-Reduce
Урок 247.
00:09:33
Apache Spark
Урок 248.
00:12:18
Stream processing
Урок 249.
00:11:23
Summary
Автор - udemy
udemy
Udemy - одна из самых больших площадок в мире по доставке обучающего контента от разных авторов всего мира. Присутсвуют курсы практически на любую тему.
Команда внимательно читает ваши комментарии и оперативно на них реагирует. Вы можете спокойно оставлять запросы на обновления или задавать любые вопросы о курсе здесь.
Архитектуры Программного Обеспечения: Примеры Использования
Software Architecture Case Studies
Поздравляю! Вы станете отличным архитектором программного обеспечения! У архитекторов программного обеспечения одна из самых сложных и полезных должностей в отрасли. Высокая зарплата, работа с менеджментом, работа с современными технологиями и шаблонами, работа с различными проектами и командами - все это делает архитектора программного обеспечения одной из самых востребованных позиций в индустрии программного обеспечения.
Все, что вы должны знать о проектировании распределенных систем. Этот онлайн-курс по современным методам проектирования архитектуры для распределенных систем с сервис-ориентированной архитектурой изменит ваш взгляд на проектирование программных систем.
Основы архитектуры ПО и шаблонов проектирования в Java
Basics of Software Architecture & Design Patterns in Java
Этот курс посвящен архитектуре программного обеспечения и шаблонам проектирования. Мы поговорим о двух темах: принципы SOLID и шаблоны проектирования. Мы собираемся реализовать проблемы в Java, но теоретические основы не зависят от языка. Я настоятельно рекомендую печатать реализации несколько раз самостоятельно, чтобы получить хорошее представление обо всем.
Бэкэнд начинается с вашей базы данных. Когда у вас есть надежный дизайн базы данных, писать код легко. В этом курсе вы узнаете, как разрабатывать базы данных для ваших серверных приложений. Вы узнаете, как создать подмножество платформы YouTube, позволяющее создавать собственные базы данных.