Telegram Web
📗 Книгу "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
📖 Нужно больше шардирования!

⚡️Ребята с #faangtalk пригласили выступить со своей темой.
Поскольку последний контекст был про шардирование, решил про него глубже и шире рассказать.

📍Рассмотрим исторический контекст, алгоритмы шардирования, проблемы миграций данных.
Также посмотрим, как AliExpress внедрил свой велосипед для шардирования PostgreSQL баз данных для управления 8 ТБ данных.

🎦 Встретимся у них 20 февраля.


#Sharding
🔥7👍1
Mock Interview. URL shortener.

💡Важный аспект подготовки к интервью - практика.
В случае System Design интервью её можно получить как на самом интервью, так и заранее - сходив на мок интервью.

Нашёл руководителя одного из подразделения BigTech компании для проведения мока со мной.
Задача выпала такая:
"Разработать сервис по сокращению url"

▶️ Держа в голове схему прохождения принялся за дизайн.
Получалось бодро проходить по шагам интервью. Неожиданно для себя шустро делал вычисления🙂
Порой интервьювер замолкал. Воспринимал это за сигнал для проявления инициативы.
Спрашивал - "Подойдёт ли такое решение? Переходим к следующему этапу?".
Ведь собеседование - это обоюдный процесс. Монолог здесь не проходит.

Уложились в 53 минуты.
После была дана ценная обратная связь.

Сделал обзор этого мока. Сократил до 8 минут выделяя основные этапы:
Обзор mock интервью по System Design. Url shortener.

#Interview
🔥71👍1
🌠 Mock Interview. URL shortener. II.

📝 В этот раз интервьюировал уже я.
Делал краткие заметки по ходу интервью.

⚙️ Этапы интервью
Немного изменил условия. Собеседник бодро шёл по пунктам проектирования.
1. Начал с уточнений функциональных, нефункциональных требований. Очертил скоп задачи.
2. Рассчитал нагрузку.
3. Создал подробное REST API.
4. Нарисовал небольшой дизайн.
5. Расписал 2 версии генерации короткого url.
6. Ответил на дополнительные вопросы.
7. Обратная связь.

При этом, добротно комментировал. В инициативном порядке переходил к следующим пунктам.

Редкие вопросы
Видя его бодрый настрой старался не сбивать. Из самых больших вопросов спросил:
1) "Что будет, если короткой ссылки не окажется?" До этого был расписан лишь "happy path" в api.
2) "Давай вернёмся к требованиям и проверим, всё ли реализовали?". Чтобы натолкнуть на мысль по поводу самого сервиса генерации. До этого был описан лишь алгоритм, без подробностей кто его будет исполнять. И как с этим кем-то будут взаимодействовать его бэкэнд stateless сервисы.
=> Дорисовал оранжевый ромб. Объяснил взаимодействие.

💤 Медленная SHA
Я хотел сказать, что SHA может оказаться медленной.
Потом вспомнил, что условие "Получать url как можно быстрее" было в ранее решаемой мною задачи. А здесь я его не указал.
Можно взять на заметку, что криптографические функции медленные. Если есть требование по скорости и есть другой вариант(здесь 2ой - последовательное деление по модулю числа) - лучше выбрать его.

Тайминг.
ts - завершенная активность

5 - чтение задачи, уточнение ф/нф требований, цифр
11 - подсчёт места для хранения данных
19 - создание API
22 - верхнеуровневый дизайн системы
33 - описание алгоритмов
43 - размышление о storage - SQL, NoSQL, sharding
46 - финал, ответ на вопрос по требованиям
50 - доп вопрос(*) - "Как будем мониторить систему? Как понимать, что она работает?"
55 - доп вопрос(**) - "Стартап пользуется популярностью. Решили ввести платный функционал. Пользователь сам можем задать свой короткий желаемый url."

#Interview
👍8
🔱 Не боги горшки обжигают

▶️ Доступность, отказоустойчивость, избыточность - популярные термины из мира System Design.
⛔️ Почему же сверхнагруженная и быстрая биржа "не сумела в System Design"? Почему лишь один сервер? И не совсем горячий failover.
Там нет таких собеседований на входе? Или дело в другом?

#Question #RealLifeExample
👍5🤔2😢1
📹 Mock Interview. URL shortener. III. English version.

✍️ Закрепим тему 3им решением.
Сегодня в онлайн проведём интервью с англоговорящим коллегой.
Если есть пожелания по дополнению требований, условий задачи - you are welcome :)

Кандидат поддержал идею наблюдателей.

🕗 8 p.m. GMT+3 / 20:00 по Москве.

https://meet.google.com/wky-yehd-saw

#Interview
👍8
©️ URL shortener. Community edition.

▶️ Закончил монтаж состоявшегося коллективного мок интервью.

👥 Вместе размышляли. Не подгоняли. Кажется, что это хорошо.
Когда нет deadline, до которого дрожащими руками нужно успеть пройти все шаги.

🆙 В один момент инициативу взял один из участников, которому помогали советами и дополнительными вопросами для движения вперёд.

https://youtu.be/1g7JBd-pS5s

#Interview
7👍1
⭐️Анонс проектирования youtube

Состоялась серия System Design Mock Interview с зарубежными коллегами, посвященная проектированию сервисов-аналогов youtube.
2 из них на английском.

Такой массовый заход на одну задачу позволит лучше погрузиться в её тематику.
Благодаря просмотру становится понятней, что:
1️⃣ Идеального решения не существует;
2️⃣ Каждый интервьюер расставляет свои акценты;
3️⃣ Интервьюер не обязательно знает больше твоего и других интервьюеров :)

Важно понять, что именно он хочет и дать ему это.
Просмотр 4ёх реализаций также:
1) Расширит кругозор проведения интервью;
2) Снабдит дополнительными техническими приёмами;
3) Поможет отвечать интервьюеру по теме.

Всё это увеличивает шансы на успешное прохождение реального собеседования.
▶️ Интервью в процессе монтажа. Скоро будет опубликовано 1ое.

#Interview #Pack
👍20
⚡️ Youtube design. "1ый пошёл!"

☁️ Я не помню, чтобы инструктор кричал или хлопал меня по плечу в знак поддержки. Я был первый в колоне на выход в неизвестную 600 метровую бездну.

🗯 Мною двигало желание попробовать что-то новое. Как и в этот раз.

👥 Предлагаю окунуться в атмосферу 1ого мок интервью по проектированию Youtube.

📍 Можно бесконечно готовиться к таким интервью. Думать, что проектировать можно лишь когда готов идеально на все 100% по какой-то неведомой шкале.

📌 А можно в какой-то момент решиться и применить принцип "Глаза боятся, руки делают". И сделать так хорошо, как ты можешь сделать сейчас. Умея так, как умеешь сейчас.

▶️ Итак, первое мок интервью по Youtube. Поехали!

#Interview
👍15🔥2
⚡️ Youtube design. English version.

🤷 Где можно найти англоязычного собеседника для мок интервью?
Могу привести несколько ресурсов:
1) pramp.com
2) system_design_interview tm channel

❗️ Дерзайте смело! Но не спешите начинать без моего предостережения... И совета.

🇮🇳 Все разы в собеседниках у меня были представители Индии.

👂 На интервью я превращался в слух чтобы не пропустить ни одного слова, вопроса. Я даже и представить не мог, что можно так концентрироваться на обычной речи.

🗣 Английская речь для меня не была проблемой. До этого дня.
Учился по учебникам с совершенным оксфордским акцентом. Смотрел тех же "Друзей" с уже менее разборчивым языком. Встречался с natives из различных штатов.

🐚 Превращаться в слух мне пришлось поскольку именно такого индийского акцента я ещё не встречал.

💥 Совет
На самом деле всё оказалось не так страшно. Слух привыкает. Организм из стрессового состояния переходит в режим нормального восприятия.
Достаточно помнить одно - если что-то не понятно, всегда можно спросить:
"Could you write it down, please?", - коллеги воспринимали всегда спокойно.

В представленном мок интервью мне повезло. По сравнению с другим будущим здесь я чувствовал себя "pretty comfortable" как в плане восприятия языка, так и в целом касательно атмосферы интервью.

▶️ Итак, второе мок интервью по Youtube. Поехали!

#Interview

https://www.youtube.com/watch?v=cB9Ph8xHA0A
🔥3👍2
👍Нас 700! 🏆Давайте отметим! 🎉

🍰 Приглашаю отпраздновать текущее достижение в кафе.
Пообщаться на тему System Design Interview, архитектуры, суровой жизни в IT.

Есть подходы - стиснуть зубы и идти постоянно ставя перед собой новые цели.
А ещё можно радоваться процессу 😊 Давайте порадуемся вместе)

Меньше, чем за год с момента создания канала были освящены такие стороны System Design как:
1️⃣ Нефункциональные требования. В формате видео и #cheat_sheets
2️⃣ Алгоритм успешного прохождения интервью
3️⃣ Книжные материалы для подготовки:
а) от Александра Поломодова. Спасибо Андрею за запрос!
б) от Михаила. Спасибо Михаилу!
4️⃣ Освящены крупные IT конференции HighLoad++, yatalks.
На yatalks взял интервью у Александра Поломодова, в котором поговорили о System Design в Тинькове.
Текстовая версия. Можно почитать, понять, в том числе чем дышит компания сейчас. #conference
5️⃣ Сделан доклад на тему Шардирования, на подготовку которого ушёл примерно месяц активного изучения текущих докладов с конференций, разрозненной информации, личному общению с разработчиками БД(tarantool, GaussDB) . Всё основное сведено в единый рассказ от простого к сложному. С реальным примером в конце.
6️⃣ Начата серия проведения, прохождения и анализа mock interview с популярными задачами. #Interview

💪 Дальше-больше!
Предложение по освящению дальнейшим тем приветствуются!

На нашей офлайн встречи будет гвоздь номера - задача с конференции HighLoad++, которую я встретил на стенде yandex.cloud. А затем на yatalks :)
Полагаю, что её дают и на реальном интервью.
Порешаем, обсудим, найдём лучшее решение.

📝 Можно списаться в личных сообщениях или ниже в комментариях.
Ориентировочно - Москва, центр, начало июня.

You are welcome!🖐
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81🔥1👀1
1️⃣му игроку приготовиться!

🫵 Это твой шанс потренировать навыки прохождения System Design Интервью!
Не упусти его!

⚡️Поступило интересное предложение по стримингу тренировочного собеседования.
Осталось найти собеседника)

🥇 У нас на канале каждый уже победитель. Мы интересуемся темой, читаем материал, смотрим интервью.
Пора действовать!

🫶 Гарантируем уютную поддерживающую атмосферу. Пройдемся вместе по этапам прохождения. Обсудим в конце саму задачу. Пиши скорей "+" в комментариях, что готов дерзать!

...а между тем, голосуем за сложность задачи для 1ого смельчака :)
💯 - легкий уровень сложности
⚡️ - легкий уровень сложности + дополнительный вопрос
🏆 - средний уровень сложности
Please open Telegram to view this post
VIEW IN TELEGRAM
🏆18👍32💯2🤡1
🚩 минут обзорного концентрата проектирования youtube.

😎 В этот раз я оказался в роли собеседующего. Хочу отметить, что концентрироваться надо не меньше, чем при собственном прохождение.
Кандидат инициативно проходится по этапам интервью. Задаёт уточняющие вопросы. Ему важно, что его слышат, отвечают. И что он делает именно то и в том объёме, что предполагается для данной сессии интервьюером.

⭐️ Осветил основные точки дизайна и переходы между этапами сжав интервью 1 час -> 7 минут.

⚙️ Ближе к концу была задета тема масштабирования NoSQL БД с комментариями к видео. Говорили о выборе shard_key, consistent hashing(помним доклад?).
От выбора этого ключа зависит хорошее распределение нагрузки.

💪 Обзор будет полезен для улучшения понимания строительства данной системы и прохождения интервью в целом.

🙂 Приятного просмотра!

🔽 P.S. А какой бы ключ шардирования выбрали вы и почему?...

https://www.youtube.com/watch?v=rJHu-3ZFwBg

#Interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🔠онны свободы и минимум вопросов

Финальное 4ое интервью по теме youtube завершено!
Опубликованный набор позволяет понять специфику данной задачи, популярные вопросы.

✈️ Особенностью данного собеседования было то, что интервьюер(спасибо Alex!) дал максимум свободы.
Перешёл в режим слушателя. Спрашивал редко, но метко. Чувствовалось, как от корректности и полноты ответов зависит успех прохождения.

Интервью можно смотреть фокусируясь на вопросах интервьюера. Попытаться понять, что именно он хотел узнать. И насколько ответ был дан в полном объёме.

🎟 Из фишек самого видео - вставлены визуальные памятки наступления очередных этапов и их особенности.

😊 Приятного и полезного просмотра!

🔽 Как считаете, остались ли неосвещенные вопросы по теме проектирования youtube?

https://www.youtube.com/watch?v=WDEiIz3WtgA

#Interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
😕 Дизайнить станет ещё сложней

🌩 "Google Cloud" в результате цепочки событий уничтожил инфраструктуру пенсионного фонда.
Фонду повезло(спасибо инженерам?), что сделали бекап у другого облачного провайдера.

🤔 Возможно теперь на собеседованиях в добавок к распределениям по зонам доступности(Availability Zone) будут оценивать предложит ли кандидат дубликацию у другого провайдера.

Не участились ли подобные аварии?

#RealLifeExample

https://habr.com/ru/news/813439/
👍9
2025/07/08 18:25:11
Back to Top
HTML Embed Code: