Хабрахабр

Резервное копирование процветает в эпоху облаков, но ленточные катушки не забыты. Разговор с Veeam

Половину времени он проводит в Праге, другую половину — в Питере. Александр Баранов работает в 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 для лучших учеников. Net. Три месяца ребята изучают принципы ООП на практике, погружаются в особенности C# и изучают подкапотное пространство . Тема проекта неизвестна заранее — ее вместе со всеми выбирают в первые дни после старта курса. Помимо лекций, тестов, лабораторных и личного проекта, ребята разрабатывают свой совместный проект по всем правилам настоящих компаний. На последнем потоке ей стал Виртуальный банк.
Сейчас открыт набор на новый поток.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть