System Design World – Telegram
System Design World
5.03K subscribers
228 photos
22 videos
175 links
Улучшаем навыки проектирования систем вместе! Готовимся к System Design Interview.

Автор - Старший бэкэнд разработчик HighLoad систем, специалист кибербезопасности Невзоров Владимир - @vova_dev
Download Telegram
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
💫 Сходил на крупнейшую конференцию Яндекса "yatalks". Взял интервью у 3ёх собеседников😊
Включая Александра Поломодова. Да-да, того самого, кто двигает тему System Design интервью в IT 😊

Получилось расшарить контекст на тему - "зачем вообще это нужно?". И узнать за счёт каких технологических и управленческих решений компания так хорошо себя чувствует в данный момент.

Видео в завершающей стадии монтажа. Думаю, что успею положить его под ёлочку в этом году🎁🎄

#conference
👍4🔥2
Успел закончить монтаж интервью до Нового Года😊

Создал новый канал "Владимир в IT" 🎉
Посвящён интервью, конференциям, новостям из мира IT.
🎓 Также буду выкладывать наработки по программированию - посты, видео.

😊 Приятного просмотра!
🎄 С Наступающим!

https://news.1rj.ru/str/vladimir_v_it/28
👍5
Блокировки в Базах Данных в нагруженных системах.

❗️При большом количестве конкурентных запросов возрастает риск обращения к одним и тем же данным.
😔 Поэтому обычную выборку данных, их изменение и последующее обновление уже не получится сделать также просто как на локально поднятой БД, к которой доступ имеете только Вы.

Как же изменить данные и оставить их в согласованном состояние?

На этот вопрос ответит переведенная мною на днях и выложенная на хабр статья:
https://habr.com/ru/articles/784750/
👍6
📖 Alex Xu. Куда ж без тебя.

💡 Если мы хотим продвинуться в теме System Design, то с книгой "System Design Interview" от Alex Xu никак не разминуться.
Её ценность каждый читатель оцениваем сам. Кто-то считает, что представленные шаблоны не правильные. Другому материал книги оказывается полезным ☝️

📝 В своё время при прочтение книги написал рецензию в комментариях на хабре.
Это не размышление об очередном паттерне или лайфхаке как шустро пройти интервью. Скорее оценка годности материала.

🎓 На мой взгляд, если хочется продвинуться в теме дизайна систем, книгу почитать стоит. И также самому сделать вывод, насколько материал оказался полезен.

https://habr.com/ru/companies/piter/articles/598791/#comment_24626358

#Books
👍5
Клеппман Мартин. "Высоконагруженные приложения". Переоценённая находка

📕На заре увлечения дизайном систем я, как и многие, увидел данную книгу в списке рекомендованных.
На любом тематическом ресурсе, в любом обсуждение всегда кто-нибудь да упомянет эту книгу как хорошую и понятную для старта.

🥺 Легкого старта с ней у меня не случилось. Лишь позже я понял, что первое данное мне впечатление "лёгкой для понимания книги" сбило с толку.
Когда происходил затык с пониманием, сразу же приходила эта фраза. Которая далее порождала неуверенность в себе: "Ведь для людей она лёгкая! А ты тут разобраться не можешь".

3️⃣ Не так давно описал как прочитал её почти 3 раза, чтобы лучше разобраться в понятиях.
💡 Сделал вывод, что не Клеппманом едины. Что нужно много разных источников информации, чтобы лучше разобраться даже в одном небольшом разделе.

#Books
👍8
Шардирование. Разносим данные по серверам.

#cheat_sheets
👍4
📗 Книгу "Web scalability for startup engineers" советуют как более лёгкую, в сравнение с Клеппманом.
Встретил её совсем недавно.

Давайте по ней изучим Шардирование. Сделал перевод начала раздела стараясь выразить суть и уложится в формат поста телеграмма.

Сценарий
📈 Возрастают нагрузки на 1 сервер с Базой Данных. Необходимо разделить данные по серверам.

Проблема
➡️ Для получения данных, нужно не опрашивать все сервера, а пойти на целевой - где эти данные находятся.

Решение
🔑 Использовать ключ шардирования - сущность, которая позволит определить целевой сервер.

Пример
📦 Онлайн магазин. Сервис изначально имел одну Базу Данных. Для горизонтального масштабирования необходимо распределить данные по серверам.
Необходимо понять, по какому признаку произвести распределение. Поскольку пользователи в магазине не взаимодействуют друг с другом, можно распределить по пользователям.
Тогда при необходимости обновления или получения данных о пользователе запрос пойдёт в определенный инстанс БД.
Пользователя можно идентифицировать по полю user_id - уникальному идентификатору пользователя. Такой id и будет называться ключом шардирования.

Алгоритм шардирования
⚙️ Осталось понять какой user_id к какому серверу будет отнесен. Для этого выбирается алгоритм маппинга/роутинга/маршрутизации/распределения.
Для простоты, у нас есть 2 сервера БД == 2 шарда. В качестве алгоритма будет определение чётности.
Его можно реализовать с помощью операции взятия остатка от деления: user_id % 2 => 1, 0
Получаем распределение данных по признаку "чётности".
Шардировать можно средствами самой БД. Или же создать дополнительный слой/сервис для маршрутизации.

#Books #Sharding
👍3👏1
Forwarded from Владимир в IT
Почему взлетел "Тинькофф"?

Расписал начало нашего интервью с техническим директором Тинькоффа Александр Поломодовым в текстовую статью.

Затронутые темы:
1️⃣ Развитие компании, переход на свою технологическую платформу;
2️⃣ Вклад в сотрудников, возможности роста за достижения;
3️⃣ Рождение System Design Interview. Мотивация введения этого этапа интервью.

https://habr.com/ru/articles/784860/
👍4💩1