Александр Баранов работает в Veeam директором R&D и живет между двумя странами. Половину времени он проводит в Праге, другую половину — в Питере. В этих городах находятся самые большие офисы разработки Veeam.
В 2006 году это был стартап двух предпринимателей из России, связанный с ПО для резервного копирования виртуальных машин (оттуда же пошло и название — V[ee][a]M, виртуальная машина). Сегодня это гигантская корпорация, у которой больше четырех тысяч сотрудников по всему миру.
Александр рассказал нам, каково работать в такой компании и насколько трудно в нее попасть. Ниже — его монолог.
Традиционно расскажем об оценке компании на «Моём круге»: Veeam Software получил от своих сотрудников среднюю оценку 4,4. Его ценят за хороший социальный пакет, комфортную рабочую атмосферу в коллективе, за интересные задачи и за то, что компания делает мир лучше.
Какие продукты разрабатывает Veeam
Продукты, которые обеспечивают отказоустойчивость ИТ-инфраструктуры. К счастью, с течением времени железо стало достаточно надежным, а облака обеспечивают отказоустойчивость. Но ошибки людей сохранились до сих пор.
Например, классическая проблема несовместимости обновлений с инфраструктурой организации. Администратор выкатил непроверенный апдейт, либо он произошел автоматически, и из-за этого нарушилась работа серверов предприятия. Другой пример: кто-то внес изменения в общий проект или набор документов, считая это целесообразным. Позже обнаружилась проблема, и потребовалось вернуть состояние недельной давности. Иногда такие изменения даже не связаны с осознанными действиями человека: сравнительно недавно приобрели популярность вирусы-криптолокеры. Пользователь приносит на рабочий компьютер флешку с сомнительным контентом или заходит на сайт с котиками, а в результате заражаются компьютеры в сети.
В ситуации, когда недоброе уже случилось, мы даем возможность откатить изменения назад. Если же изменения только планируются, мы позволяем произвести проверку их влияния в изолированной инфраструктуре, воссозданной по резервной копии датацентра.
Зачастую резервные копии выполняют роль «немого свидетеля» при аудите в организации. Публичным компаниям нужно соответствовать требованиям внешних регуляторов (например, Sarbanes-Oxley Act), и это неспроста. В 2008 году состояние мировой экономики пошатнулось из-за того, что некоторые участники финансового рынка, грубо говоря, фальсифицировали результаты своей деятельности. Это запустило снежный ком, и экономика просела. С того момента регуляторы пристальнее контролируют процессы в публичных компаниях. Возможность восстановить состояние ИТ-инфраструктуры, почтовой системы, системы документооборота за отчетные периоды — это одно из требований аудиторов.
У Microsoft, Amazon, Google и других облачных провайдеров есть нативные решения, которые обеспечивают резервное копирование ресурсов внутри облака. Но их решения — это «вещи в себе». Проблема в том, что у крупных компаний в большинстве случаев гибридная ИТ-инфраструктура: часть её находится в облаке, часть — на земле. В облаке обычно живут веб-проекты и приложения, ориентированные на клиента. Приложения и сервера, которые хранят конфиденциальную информацию или персональные данные, чаще всего находятся на земле.
Помимо этого, организации используют несколько разных облаков для построения одного гибридного, чтобы минимизировать риски. Когда у транснациональной компании построено гибридное облако, ей нужна единая и общая для всей инфраструктуры система отказоустойчивости.
Насколько сложно разрабатывать такие продукты
Постоянно появляются новые технологии, которые требуют изучения, адаптации и опыта. Когда мы только появились и были стартапом, мало кто рассматривал виртуализацию всерьез. Были приложения для резервного копирования физических дата-центров. На виртуализированные дата-центры смотрели, как на игрушки.
Мы начали поддерживать бэкап с учетом виртуализации с самого начала, когда технология использовалась только энтузиастами. А потом случился ее взрывной рост и признание стандартом. Сейчас мы видим другие области, которые ждет такой же качественный скачок, и пытаемся быть на волне. Умение держать нос по ветру зашито где-то в ДНК компании.
Сейчас компания уже пережила времена стартапа. Теперь многим крупным клиентам важна стабильность и надежность, а принятие решения по отказоустойчивости может растянуться на несколько лет. Идет адаптация, проверка продуктов, соответствие многочисленным требованиям. Получается забавная ситуация — с одной стороны нужно обеспечить надежность и уверенность в продуктах, а с другой — оставаться современным.
Но новое всегда связано с определенным уровнем незнания технологий, рынка, либо того и другого.
Например, спустя несколько лет работы мы осознали, что нужно использовать встроенные возможности систем хранения данных для ускорения резервного копирования. Так родилось целое направление по интеграции с производителями железа. На сегодняшний день партнерами Veeam по данной программе являются все крупнейшие игроки этого рынка — HP, NetApp, Dell EMC, Fujitsu и др.
Также нам казалось, что виртуализация вытеснит классические сервера. Но жизнь показала, что остаются последние 10% физических серверов, виртуализировать которые либо не предоставляется возможным, либо не имеет смысла. И их тоже нужно бэкапить. Так появились Veeam Agent for Windows/Linux.
В свое время мы посчитали, что Unix пора занять свое место в музее, и отказались его поддерживать. Но как только мы вышли на клиентов с долгой историей, то поняли, что Unix живее всех живых. И все-таки написали под него решение.
Такая же история была с ленточными накопителями. Мы подумали: «кому они нужны в современном мире?» Тогда мы работали над такими фичами как гранулярное восстановление данных или инкрементальный бэкап с синтетической полной копией — а такое на ленте просто не сделать, нужен именно диск. Потом выяснилось, что ленточные накопители работают как одно из средств для обеспечения неизменных резервных копий, которые нужны для долговременного хранения — чтобы через 5 лет придти, взять с полки ленточку и сделать аудит. Ну и размер клиентов — мы начинали с малых — а там ленты никто не использует. А потом доросли до клиентов, которые нам сказали, что без лент продукт не купят.
Какие технологии используются в Veeam
Для задач, связанных с бизнес логикой, мы используем .NET. С него мы начинали, и продолжаем оптимизировать. Сейчас в ряде решенией используем .NET Core. Когда стартап только образовался, в команде было несколько сторонников этого стека. Он хорош в плане написания бизнес логики, скорости разработки и удобстве инструментов. Тогда это было не самое популярное решение, но сейчас видно, что те сторонники оказались правы.
Вместе с тем, мы пишем под Unix, Linux, работаем с железом, это требует использования иных решений. Системные части, связанные с информацией о данных, которые мы храним в резервной копии, алгоритмы поиска данных, алгоритмы, связанные с работой железа — все это написано на С++.
Как сотрудники распределены по миру
Сейчас в компании работает порядка четырех тысяч человек. Около тысячи из них — в России. В компании есть две большие группы. Первая занимается разработкой и технической поддержкой продуктов. Вторая делает продукты видимыми для внешнего мира: в ее компетенции продажи и маркетинг. Соотношение между группами примерно тридцать на семьдесят.
У нас около тридцати офисов по всему миру. Продажи распределены обширнее, но и разработка тоже не отстает. Над некоторыми продуктами работа идет одновременно в нескольких офисах — часть в Питере, часть в Праге. Некоторые разрабатываются только в одном, например, продукт, который обеспечивает физический бэкап Linux разрабатывается в Праге. Есть продукт, над которым работают только в Канаде.
Мы делаем распределенную разработку, чтобы соответствовать требованиям клиентов. Крупные заказчики чувствуют себя безопаснее, когда разработка находится в том же регионе, где работает продукт.
У нас уже очень большой офис в Чехии, и на будущий год мы планируем открыть в Праге еще один — на 500 разработчиков и тестировщиков. Те, кто переехал в столицу Чехии в «первой волне», на Хабре с удовольствием делятся опытом и лайфхаками со всеми, кто интересуется возможностью работать в Европе. В России офис находится в Санкт-Петербурге, часть внутренних проектов ведется в Ижевске, а поддержка частично сидит в Москве. А вообще техподдержкой занимается несколько сотен человек по всему миру. Там есть специалисты разных уровней технической подготовки и специализации. Самый высокий уровень — это люди, которые способны понимать продукт на уровне исходных кодов, и они работают в одном офисе с разработкой.
Как выстроены процессы
Примерно раз в год у нас выходят большие релизы с новой функциональностью, а раз в два-три месяца — апдейты с исправлением дефектов и доработками, которые отвечают срочным требованиям рынка или изменениям платформах. Требованиям назначают приоритеты — от минорных до критических, без которых невозможен релиз. Последние называются “эпиками”.
Есть классический треугольник — качество, количество ресурсов, сроки (в простонародье, «быстро, качественно, недорого, выберите два»). Плохо делать мы не можем, качество всегда должно быть высоким. Ресурсы тоже ограничены, хоть мы и пытаемся все время расширяться. Гораздо больше гибкости в управлении временем, но и оно часто бывает фиксированным. Поэтому единственное, что мы можем варьировать — количество функциональности в релизе.
Эпиков, как правило, пытаемся держать не больше 30-40% от прогнозируемых сроков релизного цикла. Оставшееся мы можем отрезать, переносить, дорабатывать, модифицировать. Это и является нашим пространством для маневра.
Под каждое требование в релизе создается временная команда. В ней может быть и три человека, и пятьдесят, в зависимости от сложности. Мы придерживаемся гибкой методологии разработки, раз в неделю устраиваем разборы и обсуждения выполненной и предстоящей работы по каждой функциональности.
Половина времени релизного цикла уходит на разработку, половина на доведение продукта. Но у нас закрепилась поговорка — «технический долг обанкротившегося проекта равен нулю». Поэтому важнее сделать продукт, который работает и пользуется спросом, чем бесконечно вылизывать код. Если продукт популярен, тогда уже стоит развивать его дальше и адаптировать под будущие изменения.
Как Veeam нанимает людей в разработку
Алгоритм подбора многоступенчатый. Первый уровень — это беседа кандидата с рекрутером о пожеланиях самого человека. На этой стадии мы пытаемся понять, подходим ли мы кандидату. Нам важно, чтобы мы были интересны как компания, потому что ввести человека в проект — дорогое удовольствие.
Если интерес есть, то на втором уровне мы предлагаем тестовое задание чтобы понять, насколько релевантен опыт кандидата, и что он может продемонстрировать как специалист. Например, просим сделать компрессор файла. Это стандартное задание, и оно показывает, как человек относится к коду, какой придерживается культуры и стиля, какие использует решения.
По тестовому заданию обычно все прекрасно видно. Человек, который только что познакомился с грамотой и впервые написал письмо, заметно отличается от человека, который пишет письма постоянно.
Дальше мы проводим собеседование. Обычно его проводят сразу три тимлидера, чтобы все было максимально объективно. К тому же, это помогает набирать технически совместимых людей, которые имеют примерно одинаковые методы и подходы к разработке, даже если в итоге они будут работать в разных командах.
За неделю мы проводим несколько собеседований на открытую вакансию и принимаем решение, с кем продолжим работать.
Часто ребята приходят к нам и говорят, что ищут работу, потому что на текущей им некуда двигаться — повышения можно ждать только вместе с уходом начальника на пенсию. У нас немного другая динамика. Двенадцать лет назад Veeam был стартапом с десятью сотрудниками. Сейчас это компания, где работает несколько тысяч человек.
Люди попадают сюда как в бурную реку. Постоянно появляются новые направления, тимлидами становятся вчерашние рядовые разработчики. Люди растут технически, растут административно. Если ты ведешь разработку небольшой фичи, но хочешь ее развить, то полдела уже сделано. Поддержка будет на всех уровнях, начиная от тимлидера и заканчивая владельцами компании. Не умеешь что-то делать административно — есть курсы, внутренние тренера, опытные коллеги. Не хватает опыта в разработке — есть проект Veeam Academy. Так что мы открыты для всех, и для профессионалов, и для новичков.
Проект Veeam Academy — вечерний бесплатный офлайн интенсив по С# для начинающих программистов с перспективой трудоустройства в Veeam Software для лучших учеников. Цель проекта — сократить разрыв между объемом знаний и практических навыков у среднего выпускника ВУЗа и объемом знаний, который требуется, чтобы заинтересовать хорошего работодателя. Три месяца ребята изучают принципы ООП на практике, погружаются в особенности C# и изучают подкапотное пространство .Net. Помимо лекций, тестов, лабораторных и личного проекта, ребята разрабатывают свой совместный проект по всем правилам настоящих компаний. Тема проекта неизвестна заранее — ее вместе со всеми выбирают в первые дни после старта курса. На последнем потоке ей стал Виртуальный банк.
Сейчас открыт набор на новый поток.
Комментариев нет:
Отправить комментарий