Рубрика:
Разработка /
DevOps
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Николай Добровольский: «Настоящий DevOps-инженер должен быть отличным программистом и хорошим системным администратором»
|
Николай Добровольский – сооснователь/вице-президент Parallels. Родился 13 июля 1975 года в Москве. В 1997-м окончил Московский институт радиотехники, электроники и автоматики (Технический университет) по специальности «Автоматизированные системы обработки информации и управления». В 2010 году прошел обучение в Гарвардской бизнес-школе. В 2012-м закончил образовательную программу Foundation and Leadership в Йельском университете.
Лауреат Национальной премии им. Владимира Зворыкина как «Лучший инновационный менеджер» (2008).
В 2012 году в рамках Всемирного экономического форума отмечен в числе 200 лучших мировых молодых лидеров в номинации Young Global Leader.
В 13 лет стал победителем всероссийского конкурса программирования.
|
В гостях у «Системного администратора» Николай Добровольский, сооснователь/вице-президент Parallels
– Расскажите, чем вы занимаетесь в Parallels?
– Отвечаю за весь процесс разработки нашими инженерами программного обеспечения Parallels. Я руковожу R&D-центрами в России, Эстонии и на Мальте.
Вообще, учитывая, что мы с моей командой вместе более 20 лет, параллельно приходилось заниматься различными вещами начиная от поиска инвесторов, привлечения и удержания ключевых сотрудников до административных вопросов, связанных с офисной жизнью. Скучать не приходится.
– Как организован ваш рабочий день?
– Все довольно стандартно: ранний подъем, зарядка, завтрак, рабочие будни. Поскольку у Parallels 10 офисов по всему миру, приходится довольно активно перемещаться. Совещания, личные встречи с сотрудниками, ничего из ряда вон выходящего.
Единственное – стараюсь максимально оптимизировать рабочий график. Иногда провожу деловые переговоры или встречи с сотрудниками за обедом. Вообще мне здорово помогает персональный ассистент.
Она знает все о моем графике, владеет информацией о моих встречах, перелетах, визах и паспортах. Думаю, что без ее помощи мне было бы сложно со всем управляться. Она также планирует все официальные мероприятия и обеспечивает мою явку.
– Какое программное обеспечение используете (почтовые клиенты, браузеры, ОС, редакторы, среды разработки и т.п.)?
– Мне кажется, я пользуюсь всем. У меня iOS и Android-смартфоны и планшеты. На iOS использую встроенного почтового клиента и браузер. На Android – Exchange-клиента TouchDown и Google Chrome. Достаточно активно пользуюсь TripAdvisor, Flight Radar, Telegram, Skype, WhatsApp, Uber, Google Maps и т.д. Часто помогает Microsoft Office Lens – бесплатный удобный мобильный сканер документов, white boards и экранов презентаций. На компьютере использую Safari, Chrome, Parallels Desktop, Microsoft Office, для почты – MS Outlook.
– А облачные сервисы?
– У нас в офисе развита инфраструктура Office 365. Помимо этого, есть Dropbox. Для бэкапа лично я использую решения от наших коллег из Acronis. Вообще видно, что все больше мы уходим в облака. Parallels не исключение. Например, наш Parallels RAS дает возможность использовать VDI и SaaS-решения для малого и среднего бизнеса. В целом динамика позитивная.
– Как организован процесс разработки – от создания кода до релиза и поддержки решения?
– В создании любой программы, приложения или сервиса принимают участие различные ИТ-специалисты: разработчики, пишущие код, инженеры QA, проверяющие результаты разработки, системные администраторы, отвечающие заработу серверной инфраструктуры, и DevOps-инженеры, обеспечивающие корректное развертывание и функциональность созданного продукта на базе специальных хранилищ/депозитариев.
На мой взгляд, настоящий DevOps-инженер должен быть отличным программистом и хорошим системным администратором.
Их задача не столько администрировать работу «железа», сколько стараться автоматизировать процессы, чтобы упростить и ускорить множество ежедневных действий. При этом знания в области системного администрирования также важны. Именно поэтому, как правило, хорошие DevOps-инженеры в прошлом системные администраторы. Наряду с алгоритмами и программированием для них важно понимать внутренние системные процессы. Если мы говорим про веб-сервисы, то им важно знать, как работают высоконагруженные системы.Очень важную роль в разработке наших решений играют тестировщики и менеджеры продукта. Мы внимательно относимся ко всем замечаниям и стараемся оперативно исправлять все критические моменты.
– Какие инструменты (среды, ОС и т.п.) и сервисы используете для разработки?
– Поскольку у нас не один программный продукт, мы используем разнообразный инструментарий: JavaScript, C#, C, C++, Assembler, Python, Perl. Для организации процесса используем продукты компании Atlassian – Jira, Confluence, Bitbucket, HipChat. Если говорить про DevOps, то здесь Chef, Ansible и Jenkins.
Без знания хотя бы двух из этих трех слов мы вообще не рассматриваем человека, как DevOps. Возможно, он хороший человек, но это гигиенический минимум. Без него никак. Плюс, поскольку скрипты у нас пишутся в основном на Python, его знание просто необходимо.
Открытое ПО может сыграть важную роль в развитии ИТ-отрасли, упрощая исследовательские разработки (делая их доступными) и снижая стоимость законченных промышленных решений |
– В целом что такое Parallels для Linux?
– Приложение Parallels Client позволяет организовать удаленный доступ к рабочим столам персональных компьютеров, виртуальных машин или сеансам терминального сервера – как через Parallels Remote Application Server (RAS), так инапрямую через обычное RDP-соединение.
– Расскажите о вкладе вашей компании в разработку ядра Linux?
– Поскольку Parallels начинает свою историю с конца девяностых годов, в этом отношении нашей командой было сделано немало. Причем я говорю обо всех инженерах, работавших когда-либо и работающих по сей день в группе компаний Parallels. Отмечу, что большой вклад был внесен нашими коллегами из Virtuozzo.
В разные годы по отчетам Linux Foundation мы входили в список разработчиков, внесших наибольших вклад в код ядра Linux.
Например, когда-то только по проекту OpenVZ у нас было сделано примерно 1700 патчей в основном ядре. Наши инженеры были отмечены Red Hat за обнаружение серьезных уязвимостей CVE-2014-0203 и CVE-2014-4483 и удостоены благодарности за обнаружение ошибок CVE-2014-5045 и CVE-2012-4508.
– А что можно сказать в целом об Open Source-решениях?
– Сегодня Open Source представляет собой самодостаточную программную экосистему, способную на высоком качественном уровне решать практически весь спектр ИТ-задач в масштабах любого предприятия. На мой взгляд, открытое ПОможет сыграть важную роль в развитии ИТ-отрасли, упрощая исследовательские разработки (в том числе делая их доступными даже силами специалистов-индивидуалов) и снижая стоимость законченных промышленных решений.
– Какие дистрибутивы Linux поддерживаются Parallels?
– В новой версии Parallels Desktop 13 вы можете бесплатно создать виртуальную машину (ВМ) с одной из перечисленных ниже операционных систем: Windows 10 – Development Environment, Modern.IE – Test Environment, Ubuntu, Fedora, CentOS, Debian, Linux Mint, Android, MacOS. Кроме того, для Linux была добавлена поддержка дистрибутивов: Elementary, Kali Linux, Manjaro и Zorin. Список поддерживаемых дистрибутивов сейчас насчитывает 50 различных вариантов Linux (http://kb.parallels.com/en/124223).
Мы не можем протестировать все существующие дистрибутивы, но это не значит, что они не будут работать. Рекомендую попробовать запустить ваш любимый дистрибутив, даже если его нет в списке поддерживаемых. Скорее всего заработает, ведь Parallels Desktop создает полноценный виртуальный компьютер.
– Несколько вопросов о DevOps. Что для Parallels «работа по принципам DevOps»?
– От команды DevOps зависит продуктивность большого числа людей. Плохой DevOps-инженер способен свести на нет усилия группы разработчиков из пятидесяти и более человек. Некорректно работающая билдовая система может существенно затормозить производственный процесс.
В этой связи для нас крайне важны способность и умение людей работать в команде. Мы стремимся к тому, чтобы наши инженеры всегда находили кратчайший путь друг к другу и решали возникающие ситуации максимально результативно.
– Какую программную платформу для DevOps вы сделали базовой?
– Данный вопрос в определенном смысле можно считать абсурдным, поскольку DevOps – это культура и практики взаимодействия разработчиков (Development) и инженеров, занимающихся инфраструктурой (Operations).
От команды DevOps зависит продуктивность большого числа людей. Плохой DevOps-инженер способен свести на нет усилия группы разработчиков из пятидесяти и более человек. Поэтому для нас крайне важны способность и умение людей работать в команде |
Если вы имеете в виду какие-то программные решения, то мы пользуемся довольно широким спектром возможностей. Контейнерная виртуализация – Virtuozzo, менеджмент окружений – Chef, оркестрация – Terraform. Для упрощения иавтоматизации билдов и разворачиваний используем Jenkins.
– Какое решение используется для работы с исходными кодами? На ваш взгляд, есть ли преимущество Open Source при использовании методологии DevOps?
– Git, в частности Atlassian bitbucket. Git можно назвать своего рода стандартом отрасли, который используется многими лидерами индустрии во всем мире.
Преимуществом Open Source можно считать то, что при достаточной востребованности инструментов члены Open Source-сообщества занимаются их развитием, в то же время получая собственную выгоду от их использования.
– Программное обеспечение для автоматизации непрерывной интеграции? Почему остановили выбор на нем?
– Jenkins. Огромный выбор плагинов, с которым возможно реализовать любую смелую фантазию команды разработки, большое активное сообщество.
– Не могли бы привести пример того, как выстраиваете и сопровождаете на практике CI/CD?
– Используем Jenkins pipeline для версионирования конфигураций сборок продуктов.
Для больших продуктов сборки из мастера и релизных бранчей идут по расписанию несколько раз в день. Также для них есть урезанные короткие сборки, которые запускаются покоммитно по факту обновления репозитория.
Для маленьких продуктов сборки покоммитные. Предоставляем возможность любую сборку запустить из девелоперского бранча.
На успешных сборках запускаются юнит-тесты. Оповещения о результатах сборок и тестирования по email и в Hipchat. Сборочные окружения описаны в Chef-кукбуках и terraform-скриптах, которые мы поддерживаем.
– Какие сервисы используете для реализации DevOps-решений?
- оркестрация Terraform;
- контейнерная виртуализация Virtuozzo;
- для управления конфигурации контейнеров и других платформ используем Chef;
- в качестве системы непрерывной интеграции – Jenkins;
- для повышения отказоустойчивости инфраструктуры – мониторинг от Icinga;
- различные продукты от Elastic для хранения и обработки логов и визуализации событий.
– В каких мероприятиях/конференциях принимаете участие?
– Традиционно мы представлены на международных форумах и конференциях. В этом году в очередной раз были на IFA, WMC, WWDC. В России мы стараемся делиться опытом на базе крупнейших отраслевых форумов, таких как RIW, РИФ, HighLoad++, MobilDev и других.
Подготовил Игорь Штомпель
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|