System Design: Scaling Instagram Infrastructure
Хороший доклад про масшабирования Instagram. От инфраструктуры до масштабирования команды разработки.
В Инстаграм достаточно стандартный стек технологий:
🔸 Бекэнд на Django
🔸 Postgres для пользователей, медиа, списков друзей
🔸 Cassandra с пользовательскими лентами и списками активностей
🔸 RabbitMQ для асинронных задач
🔸 Memcached для кеширования
Ежедневная нагрузка (2017-й год):
🔸400 млн. пользовалей
🔸4 млрд. лайков
🔸100 миллионов фото/видео загрузок
Изначально все это было в одном регионе и возникла необходимость мульти региональной инфраструктуры.
Решение:
✅ RabbitMQ: Django+RabbitMQ+Workers деплоится вместе, как одна сущность. Все асинхронные задачи выполняются в рамках одного региона.
✅ Postgres: просто read реплики переехали в другие датацентры и осталась синхронная репликация.
✅ Cassandra: просто настраивается нужное количество реплик
✅ Memcached: это самое интересное, но тут лучше смотреть видео 🙂
ССЫЛКА НА ВИДЕО: https://www.youtube.com/watch?v=hnpzNAPiC0E
Post #114
4.3K