На прошлой неделе прошла конференция Highload++ 2015. Конференция большая: доклады шли в 5 потоков. Казалось бы, выбор большой, но если отбросить секцию менеджмента и секцию фронтенд‑разработки, то в каждом втором докладе будет PostgreSQL. Один из моих коллег так высказался о конференции: «Highload++ 2015 — 40 % PostgreSQL, 40 % очереди, 20 % приправы».
Не буду рассказывать о всех докладах, которые я посетил. Как и на всякой конференции, было много неудачных докладов. Я расскажу немного о трёх, на мой взгляд, самых достойных докладах конференции. Если будете покупать видео с этой конференции, то записи первых двух докладов стоят того, чтобы их посмотреть. Про третий доклад разговор отдельный.
Stack Overflow — It’s All About Performance!
Пожалуй, самый интересный доклад конференции был от Stack Overflow. Их 150 сайтов работают на 8 серверах. У них очень короткий цикл разработки фич: обычно они укладываются в несколько часов. Как они этого добились:
- Full‑stack‑разработчики. Все, кто разрабатывает Stack Overflow, умеют делать и фронтенд, и бэкенд.
- Отлаженная система развёртывания фич в прод плюс использование собственного комьюнити для тестирования.
Также у них очень интересный подход к кодированию. Поскольку они пишут на .NET, то не могут не думать о сборщике мусора. Паттерны проектирования — это круто, но скорость важнее. И если какой‑то паттерн, каким бы удобным он ни был для программиста, генерирует слишком много связных объектов, ему не место в коде.
Такой подход требует высококлассных специалистов, а они стоят дорого. Скорее всего, экономически выгоднее было бы не тратить огромные деньги на разработку, а «залить железом». Но, похоже, такой подход добавляет проекту некоторую изюминку, которая привлекает к сервису таких же гуру, как и те, что работают над ним.
Docker в работе: взгляд на его использование в Badoo через год
До сих пор думаете, что Docker — это панацея? Нет, это всего лишь полезный инструмент со своими багами, сложностями эксплуатации и граблями (куда же без них!). Огромное спасибо Антону за то, что он рассказал о своём опыте эксплуатации Docker в продакшене. А то статьи, которые можно найти, по большей части описывают лишь эксперименты на девелоперских машинках без нагрузки.
Я более чем уверен, что сложности, описанные Антоном и возникшие у них, возникнут в каждом втором проекте на Docker. Сеть, сторадж, мониторинг — есть во всех проектах.
Учебный план для highload‑гуру
Этого доклада не должно было быть на Highload++. Он никак не вписывался в формат конференции. Тем не менее этот доклад попал в тройку самых интересных. Несмотря на то что по большей части он состоит из ключевых слов — тем, о которых в той или иной степени должен знать любой программист, который хочет расти и развиваться. Слайды доклада доступны здесь.
Возможно, единственная причина, почему я добавил этот доклад в тройку, — то, что идеи и взгляды Андрея Аксёнова полностью совпадают с моими. Я так же, как он, считаю, что программисту нельзя закрываться в своей области: ему просто необходимо знание во многих областях CS — возможно, на уровне «прочитал статью, попробовал написать пару строк».
По сути, этот доклад — более жёсткая и объёмная версия моего поста «О слабых сторонах программистов‑самоучек».