Robot
			
			Складчик
		- #1
 
[robot dreams] Архитектура высоких нагрузок. 2021 [Михаил Михалев]
- Ссылка на картинку
 
Чтобы никогда больше не проектировать системы по принципу copy-paste и не разгребать последствия падения, подключитесь к обучению на курсе. Вы узнаете, как компании справляются с высокой нагрузкой, и научитесь выбирать подходящие архитектурные решения исходя из требований бизнеса.
О курсе:
Недостаточно выявлять и устранять проблемы, связанные с высокой нагрузкой, потому что в этом случае ваш бизнес все равно терпит репутационные и финансовые убытки. Важно научиться планировать и проектировать системы на старте так, чтобы они могли масштабироваться в любой момент и при этом корректно работать.
На курсе вы получите фундаментальные знания в области системного дизайна. Будете разбирать кейсы известных компаний, применять и адаптировать современные Highload-практики. В результате ― научитесь самостоятельно проектировать и разрабатывать системы, которые могут выдержать ≥ 1 млн пользователей ежедневно.
Курс подойдет:
1. Developers / Software Architect
Если вы уже > 2 лет занимаетесь разработкой и проектированием систем, сталкиваетесь с проблемами, которые возникают из-за высокого трафика, и вынуждены предотвращать их постфактум.
2. DevOps / Tech Lead / Team Lead
Если вы не первый год руководите командой разработчиков и сами имеете опыт в промышленной разработке, но устали «тушить пожары» и хотите строить системы, которые смогут выдержать даже 1 млн пользователей ежедневно.
3. CEO / CTO
Если вы периодически терпите репутационные и финансовые потери из-за того, что система не справляется с трафиком, но не знаете всех нюансов проектирования и хотите понять, что происходит с системой во время высокой нагрузки.
Модуль 1 - Введение в Highload-архитектуру
						О курсе:
Недостаточно выявлять и устранять проблемы, связанные с высокой нагрузкой, потому что в этом случае ваш бизнес все равно терпит репутационные и финансовые убытки. Важно научиться планировать и проектировать системы на старте так, чтобы они могли масштабироваться в любой момент и при этом корректно работать.
На курсе вы получите фундаментальные знания в области системного дизайна. Будете разбирать кейсы известных компаний, применять и адаптировать современные Highload-практики. В результате ― научитесь самостоятельно проектировать и разрабатывать системы, которые могут выдержать ≥ 1 млн пользователей ежедневно.
Курс подойдет:
1. Developers / Software Architect
Если вы уже > 2 лет занимаетесь разработкой и проектированием систем, сталкиваетесь с проблемами, которые возникают из-за высокого трафика, и вынуждены предотвращать их постфактум.
2. DevOps / Tech Lead / Team Lead
Если вы не первый год руководите командой разработчиков и сами имеете опыт в промышленной разработке, но устали «тушить пожары» и хотите строить системы, которые смогут выдержать даже 1 млн пользователей ежедневно.
3. CEO / CTO
Если вы периодически терпите репутационные и финансовые потери из-за того, что система не справляется с трафиком, но не знаете всех нюансов проектирования и хотите понять, что происходит с системой во время высокой нагрузки.
Модуль 1 - Введение в Highload-архитектуру
- Узнайте, что такое Highload и Data-Intensive Apps.
 - Разберитесь в задачах, которые стоят перед архитектором высоконагруженных систем.
 - Узнайте, с какими проблемами он сталкивается в своей работе.
 - Ознакомьтесь с основными принципами, которые помогают выстроить систему from 0 to millions users.
 - Научитесь делать грубые расчеты архитектуры приложений.
 - Сделайте первый черновик Highload-дизайна.
 
- Разберитесь в базовых терминах, которые применяют в Highload-архитектуре.
 - Узнайте trade-offs высоконагруженных систем: как выбрать компромисс между надежностью, возможностью масштабироваться и быстро восстанавливаться после падения.
 - Научитесь собирать и составлять требования к приложению.
 
- Изучите глубинную разницу между форматами хранения и передачи данных [JSON/XML/Binary].
 - Ознакомьтесь с преимуществами и недостатками каждого подхода и научитесь выбирать подход исходя из своих задач и требований бизнеса.
 
- Узнайте, как работает коммуникация приложения с внешним миром.
 - Разберитесь в отличиях Load balancer.
 - Ознакомьтесь с разными методами имплементации rate limiter.
 - Научитесь выбирать оптимальный вариант коммуникации исходя из требований бизнеса.
 - Напишите алгоритм rate limiter.
 
- Ознакомьтесь с моделями передачи данных [Database-through model, Service-through model (REST/RPC), Message-passing model].
 - Узнайте о преимуществах и недостатках каждой модели.
 - Научитесь выбирать модель исходя из конкретных требований.
 
- Ознакомьтесь с моделями хранения данных [Relational model и document-based model].
 - Разберите разницу между declarative query languages и imperative query languages.
 - Изучите жизненный цикл Database Management System [DBMS].
 - Ознакомьтесь с моделями графовых данных.
 - Научитесь выбирать лучший вариант хранения данных исходя из требований бизнеса.
 
- Узнайте, как устроены базы данных и в каком виде в них хранится информация.
 - Найдите необходимую информацию с помощью индексов.
 - Выберите оптимальный вариант DBMS исходя из требований бизнеса по хранению данных.
 
- Узнайте, как нужно хранить данные для аналитики.
 - Ознакомьтесь с алгоритмом построения Data Warehouse.
 - Разберитесь в особенностях и отличиях Data Warehouse и Data Lake.
 - Узнайте, какие факторы нужно учитывать при проектировании хранилища под big data и для чего нужны column-oriented storages.
 - Напишите key-value хранилище данных исходя из требований.
 
- Узнайте, для чего нужно распределять данные и какие проблемы решает такой подход.
 - Узнайте также, какие проблемы могут возникнуть при таком подходе и научитесь их решать.
 - Ознакомьтесь с САР-теоремой и научитесь выбирать наиболее подходящее решение по распределению исходя из требований.
 
- Изучите основы репликации данных.
 - Ознакомьтесь со стратегиями репликации [Multi-leader replication, Leaderless replication].
 - Изучите преимущества и недостатки каждой стратегии.
 - Ознакомьтесь с примерами и готовыми решениями рынка, которые используют ту или иную стратегию.
 
- Изучите основы секционирования и поймите, как оно связано с репликацией.
 - Ознакомьтесь со стратегиями ребалансировки и готовыми решениями, которые применяют компании на практике.
 - Продолжите работу с key-value data warehouse.
 
- Узнайте, что такое ACID и зачем нужны Isolation levels.
 - Разберитесь в особенностях каждого уровня и научитесь выбирать Isolation level исходя из требований бизнеса.
 
- Узнайте, что такое целостность данных в контексте распределенных систем.
 - Ознакомьтесь с типами целостности.
 - На реальных примерах узнайте о преимуществах и недостатках каждого типа.
 - Научитесь выбирать тип целостности данных исходя из требований бизнеса.
 
- Узнайте, что такое консенсус в распределенных системах.
 - Ознакомьтесь с популярными алгоритмами консенсуса [Paxos и Raft].
 - Поймите, как работают популярные распределенные хранилища данных с точки зрения консенсуса.
 - Реализуйте выбранный тип консенсуса.
 
- Изучите особенности работы пакетного режима и потокового режима.
 - Ознакомьтесь с моделью MapReduce и узнайте, для каких задач ее применять.
 - Получите информацию о различных Messaging systems, определите их преимущества и недостатки.
 
- Разберитесь в понятиях [state], [stream] и [immutability].
 - Узнайте, что такое [event stream] и [event sourcing] и когда необходимо их применять.
 - Добавьте event stream или event sourcing в ваш дизайн.
 
- Узнайте, зачем нужен мониторинг, и научитесь грамотно настраивать оповещения.
 - Разберитесь в метриках и узнайте, в чем отличие метрик от логов.
 - Опишите метрики для одного из компонентов системы.
 
- Создайте и защитите архитектуру выбранного [или своего] проекта, учитывая что дизайн обязательно должен предусматривать высокую нагрузку.
 
								Показать больше
					
			
			
											
												
													Зарегистрируйтесь
												
											, чтобы посмотреть скрытый контент.