Мини-интервью: Олег Анастасьев

Продолжаем публикацию небольших интервью, которые мы брали в онлайн-трансляции JPoint 2017. Тогда ведущий разработчик Одноклассников Олег Анастасьев рассказывал нам о роли программного комитета, интересных докладах и новых разработках Одноклассников. А теперь то, что он упоминал в ответах, стало по-новому актуальным в преддверии Joker: там как раз будут доклады и про облако Одноклассников, и про их систему хранения данных, а Алексей Шипилёв выступит с продолжением доклада о Shenandoah.

— С нами в студии Олег Анастасьев, ведущий разработчик компании Одноклассники — одного из самых высоконагруженных сервисов в России. Олег, вы уже были на наших Java-конференциях в качестве докладчика, а теперь вы — участник Программного комитета. Если спикеров все видят на сцене, то Программный комитет остаётся в тени — расскажите, что эта роль собой представляет?

— Подготовка к конференции начинается значительно раньше, чем сама конференция. Это очень много работы, связанной с подбором интересных для аудитории докладов, а также работа над самими докладами. То есть члены ПК прослушивают абсолютно все доклады, которые потом представляются на конференции, и активно работают над тем, чтобы это были качественные доклады с точки зрения технической и презентационной составляющей. И здесь также важно то, что мы как ПК в некотором роде определяем тренды, чем будет жить следующий год индустрия Java-разработки.

— А бывает такое, что у участников ПК очень расходятся мнения и возникают бурные споры?

— Да, конечно. Здесь сам процесс очень похож на то, как у нас в Одноклассниках всё это работает. Есть много разных мнений, они высказываются, они обсуждаются, в итоге мы все не дерёмся друг с другом (может, потому что не собираемся в одной комнате), но каким-то образом приходим к консенсусу, все соглашаемся друг с другом, приходим к какому-то единому мнению.

— Конференция только недавно началась, и большинство докладов ещё впереди. Поскольку ПК отсматривает их заранее, у вас сейчас больше знаний, чем у всех остальных: есть ли у вас какие-то любимчики среди докладов? Сейчас люди послушают и, может, дальше на эти доклады обратят внимание.

— Хотел бы воспользоваться возможностью передать привет и прорекламировать доклад Андрея Паньгина и Вадима Цесько [из Одноклассников] — довольно интересный доклад о том, как запускать профайлер непосредственно на продакшн-серверах быстро и удобно для разработчиков. Сейчас мы эту систему внедрили, и про неё будет рассказ. Второй доклад, который меня лично очень сильно интересует, — это доклад Лёши Шипилёва о Shenandoah. Это новая штука, которую не делает Oracle, тут тоже добавляет интереса сама техничность темы. Третий доклад — Саши Гольдштейна. Он человек из мира .NET, но, тем не менее, успел сделать доклад на Java-конференцию о профилировании Java-приложений с помощью фич ядра Linux, тоже должно быть очень интересно, приходите.

— Приходилось ли Программному комитету помогать Саше с его .NET-бэкграундом в процессе подготовки доклада?

— Мы помогаем абсолютно всем. Когда вы делаете доклад, вы не знаете, как его воспримут другие люди. Очень важно, чтобы другие его прослушали до того, как вы будете выступать перед широкой аудиторией. Всегда надо что-то доделать, где-то переделать, что-то выкинуть. Так всегда. Это как code review, но только про доклад.

— А доклад о Shenandoah вам интересен отвлечённо, или смотрите его сразу с мыслью о его практической применимости этого GC в Одноклассниках?

— Да, он как раз нам интересен с точки зрения практической применимости. Мы уже, в принципе, почти созрели для того, чтобы взять его и попробовать. Сейчас с Лёшей Шипилёвым разговаривали о том, что Shenandoah уже достиг бета-качества, то есть его можно пробовать. С одной стороны, понять его практическую применимость, с другой стороны, порепортить баги и поучаствовать, насколько возможно, в развитии этой технологии.

— Вы часто тестите разные штуки на проде. Shenandoah тоже будете на продакшне тестировать? Как будет происходить этот процесс?

— Сначала мы, конечно, убедимся, что это заводится в маленькой песочнице. Я думаю, с вероятностью процентов 90 мы его поставим на продакшн и посмотрим, как он себя там ведёт. Здесь важно понимать, что работоспособность или неработоспособность одного сервера для нас не приводит к каким-то последствиям для пользователя, поэтому мы с этой позиции можем достаточно свободно тестировать что угодно. Мы так тестируем и железо, и операционки, и сетевое оборудование. Это самый правильный тест — когда вы даёте продакшн-нагрузку на испытываемую систему, анализируете результаты, но при этом пользователь ничего не замечает.

— Вы уже очень много рассказывали о вашей инфраструктуре. Последний раз в «Без слайдов» Вы говорили о том, что вы потихоньку переезжаете в облако. Я так понимаю, до конца года хотите закончить этот процесс. Как всё происходит вообще? Прошло не так много времени, но есть ли прогресс?

— Да, у нас сейчас есть пока небольшое облако, но оно уже в продакшне. Это облако мы сделали сами, это не какое-то готовое решение. Для нас оно подходит лучше. Подробнее, наверное, я расскажу на каком-нибудь докладе, сейчас не так много времени. Но, тем не менее, у нас сейчас продакшн, в одном из дата-центров портал работает целиком на облаке — собственно, та часть, которую пользователи видят. До конца года мы собираемся мигрировать полностью.

— Вы себя позиционируете прямо как ударно-технологическую компанию. Какие-то новые фишки после облака вы вводили?

— Да, конечно. За последние полгода мы сделали новое хранилище блобов. У нас есть требование: при отказе дата-центра всё должно работать, поэтому мы хранили по копии данных, в том числе и блобов (видео, музыку, фотографии) в каждом из дата-центров. В итоге получилось три копии. А видео сейчас у нас очень много, его количество постоянно растёт. Это стало дорого, поэтому мы сделали новую систему, которая называется One Cold Storage, и она уже хранит данные не в 3-х копиях, а в 2,1 копии. При этом, что самое интересное, её отказоустойчивость получилась лучше, чем у старой системы. У нас может целиком отказать дата-центр, в другом дата-центре может целиком отказать машина, а в третьем ещё и один диск отказать, и при этом мы всё равно не потеряем данные, и пользователь ничего не заметит.

— И при этом всё равно одна десятая картинки у юзера загрузится.

— Нет, у юзера загрузится полностью вся картинка. В данный момент мы активно мигрируем все данные на эту систему. Пока ещё не всё смигрировано целиком, но примерно половина уже там, около 13 петабайт.

— Спасибо! С вами был Олег Анастасьев, и мы прощаемся с вами до следующего перерыва!

  1. Олег Анастасьев
    Начал карьеру программиста в далеком 1995 году. Он разрабатывал ПО в банковской сфере, телекоме, транспорте. Олег работает ведущим разработчиком в Одноклассниках с 2007 года в команде платформы. В его обязанности входит разработка архитектур и решений для высоконагруженных систем, больших хранилищ данных, решение проблем производительности и надежности портала «Одноклассники.ру». Также занимается обучением разработчиков внутри компании. @m0nstermind