400 миллионов просмотров и 50 сотрудников: как рос Facebook в 2005 году

CS50 9,1 млн 1 ч 5 мин 4 мин 04.04.2014
Главное

В декабре 2005 года Марк Цукерберг, основатель Facebook, выступил перед студентами курса CS50 в Гарвардском университете . На тот момент проект объединял более 2000 учебных заведений, а штат компании едва превысил 50 человек .

🛠️ Технический старт и выбор инструментов 2:10

Марк Цукерберг запустил Facebook в Гарвардском университете в феврале 2004 года . Первую версию сайта он написал на языке PHP. Выбор языка был продиктован простотой: для тех, кто знает C, синтаксис PHP становится понятным за пару дней .

Когда через две недели после запуска тысячи людей начали регистрироваться, к проекту присоединился Дастин Московиц . Хотя Московиц по ошибке сначала купил учебник «Perl для чайников», он освоил нужный PHP за выходные и помог с экспансией в другие школы .

На старте создатели арендовали один сервер за 100 долларов в месяц вне кампуса . Марк Цукерберг решил не повторять прошлых ошибок, когда из-за запуска предыдущего проекта в стенах общежития администрация Гарварда пыталась исключить его из университета .

📐 Архитектура распределенных данных 3:57

Главной технической сложностью Facebook стал расчет социальных связей. Цукерберг объяснил, что вычисление «друзей друзей» требует огромных ресурсов . Если искать связи на глубине третьего или четвертого круга, сложность вычислений растет экспоненциально (Big O notation) .

Чтобы избежать краха системы, который погубил соцсеть Friendster, разработчики Facebook приняли следующие решения:

📈 Проблемы роста и производительности 7:45

После подключения 30–50 школ стандартные настройки Apache и MySQL перестали справляться . Если база данных и веб-сервер работали на одной машине, сбой приводил к полной недоступности страниц .

Для решения проблем масштабирования команда внедрила новые подходы:

В 2005 году Facebook генерировал 400 миллионов просмотров страниц в день . Для сравнения, Google в тот же период обслуживал около 250 миллионов просмотров, имея тысячи сотрудников и огромные серверные мощности .

👥 Философия найма и управления 18:56

Основным ресурсом компании Марк Цукерберг назвал интеллект, а не узкоспециализированные навыки . Он предпочитает нанимать людей сразу после колледжа, считая, что умный человек способен быстро освоить любую технологию через интернет .

Его подход к управлению включает несколько принципов:

  1. Меритократия: инженеры, предлагающие лучшие решения с минимумом багов, получают право работать над самыми интересными задачами .
  2. Итеративность: продукт не обязан быть идеальным с первого раза. Цукерберг привел в пример Microsoft, чьи продукты становятся по-настоящему хорошими только к четвертой версии .
  3. Отсутствие бюрократии: в компании на тот момент было всего 50 сотрудников, что позволяло сохранять гибкость и скорость разработки .

На вопрос о юристах Марк Цукерберг ответил, что в начале пути они только мешают . По его мнению, лучше сначала сделать что-то крутое и извиняться позже, чем тратить время на юридическое оформление и не запустить ничего .

🛡️ Приватность и социальные алгоритмы 39:13

Facebook строился на принципе ограниченного доступа: профиль пользователя могли видеть только люди из того же университета . Это создало доверительную среду, где люди не боятся оставлять свои номера телефонов .

Для защиты данных от автоматического сбора (скрейпинга) команда внедрила:

📸 Эволюция функций и будущее 27:32

Запуск функции фотографий показал важность понимания контекста. Facebook обошел сервис Flickr по количеству загрузок за три недели благодаря функции тегов . Теги работают только при условии, что в системе зарегистрированы почти все знакомые пользователя (97% студентов Гарварда на тот момент) .

При разработке фото-сервиса возникли сетевые ограничения. Чтобы не перегружать роутеры файлами по 3 Мб, команда создала Java-апплет для сжатия снимков на стороне клиента . Позже пришлось внедрить кэширование на границе сети (Akamai), так как собственные серверы не справлялись с нагрузкой в 100 загрузок в секунду .

В планах компании на конец 2005 года стояло уточнение типов отношений . Вместо рейтинга дружбы от 1 до 10 Цукерберг предложил использовать факты: совместное проживание в общежитии или посещение одного учебного курса .

💬 Цитаты

«Более полезно заставить вещи происходить и извиниться позже, чем убедиться, что все точки над i расставлены, и ничего не добиться.»

Марк Цукерберг 22:40

«Мы не нанимаем людей за навыки. Если вы нанимаете кого-то за чистый интеллект, они смогут выучить что угодно очень быстро.»

Марк Цукерберг 35:13
👥 Спикеры
🔗 Упомянутые сайты и проекты
📖 Термины
Big O notation
Математическая нотация для описания сложности алгоритма и того, как время его выполнения растет с увеличением данных.
PHP
Скриптовый язык программирования, на котором была написана первая версия Facebook.
MySQL
Система управления базами данных, использовавшаяся для хранения информации о пользователях.
Apache
Популярный веб-сервер, который Facebook использовал для обработки запросов.
Memcached
Программное обеспечение для кэширования данных в оперативной памяти с целью ускорения работы приложений.
📊 Цифры
🗓 Хронология
  1. Февраль 2004 Запуск Facebook в Гарвардском университете.
  2. Лето 2004 Переезд команды в Пало-Альто и работа над масштабированием системы.
  3. Декабрь 2005 Выступление Марка Цукерберга на курсе CS50.
⚖️ Другая сторона
Стартапы и бизнес Facebook Mark Zuckerberg MySQL PHP масштабирование