Архитектура Pinterest – 18 миллионов посетителей, 10-кратный прирост, 12 сотрудников, 410 ТБ данных
Действительно, ни Pinterest ни Instagram не сделали больших научных или технологических открытий, но это скорее является следствием простоты использования облачных технологий, нежели признаком заката эры инноваций в Кремниевой Долине (Золотой век Кремниевой долины окончен, и мы танцуем на её могиле – прим. переводчика). Цифры в заголовке и оценки стоимости этих компании настолько велики, что нам кажется, будто бы за ними стоит некий вид технологической революции, обеспечивающей их бурный рост. Однако, эта революция гораздо более искусна – она показывает, насколько легко добиться столь быстрого роста, если вы способны реализовать хорошую идею. Привыкайте. Теперь это норма.
Вот что сегодня представляет собой Pinterest:
- 410 Терабайт пользовательских данных или 80 миллионов объектов хранится в Amazon S3. Это в 10 раз больше, чем в августе 2011. Количество Amazon EC2 instances за то же время выросло в 3 раза. Ежемесячно затраты составляют около $39K за S3 и $30K за EC2.
- Всего 12 сотрудников, как и в декабре 2011. Благодаря использованию облачных технологий, проект может продолжать расти, а команда, поддерживающая его, способна оставаться очень маленькой. UPD: Похоже, что уже 31 сотрудник.
- Оплата только используемых ресурсов значительно экономит средства. Пик трафика приходится на вторую половину дня и вечер, так что ночью количество EC2 instances уменьшают на 40%. Во время максимального уровня трафика в среднем уходит около $52 в час на EC2, а ночью, когда нагрузка спадает, затраты составляют всего $15 в час.
- 150 EC2 instances в качестве web-серверов.
- 90 instances используются для кэширования данных в памяти для разгрузки БД.
- 35 instances для внутреннего использования.
- 70 master-серверов баз данных и параллельно существующих бэкап-серверов баз данных в нескольких регионах по всему миру для обеспечения избыточности хранения данных.
- Написан на Python и Django.
- Используется шардинг, БД разбивается при достижении 50% от вместимости. Это позволяет просто масштабировать БД при сохранении достаточной скорости операций IO.
- Amazon ELB используется для балансировки нагрузки между EC2 instances. ELB API позволяет просто вводить и выводить из использования instances.
- Один из самых быстрорастущих сайтов в истории. Использование Amazon Web Service позволило с минимальным уровнем IT инфраструктуры обработать запросы 18 миллионов посетителей в марте, что в 1.5 раза больше, чем месяцем ранее.
- Облако позволяет легко и дешево экспериментировать с сервисом, при этом, не приобретая новых дорогостоящих серверов.
- Основанный на Apache Hadoop, Elastic Map Reduce используется для анализа данных и стоит всего несколько сотен долларов в месяц.