Руслан Синицкий: «Не бойтесь разрушать стандарты»

в 5:10, , рубрики: jelastic, Блог компании Caspowa.com, интервью, ит-инфраструктура, подкаст, хостинг, метки: , ,

Представляем нулевой выпуск подкаста о технологиях, процессах, инфраструктуре и людях в IT-компаниях. Сегодня в гостях у “CTOcast” — Руслан Синицкий, CTO и сооснователь компании Jelastic.

Слушать подкаст

1-ая часть текстовой версии подкаста

Руслан Синицкий: «Не бойтесь разрушать стандарты»

Текстовая версия подкаста (2-ая часть)

Александр Астапенко: Хочу вернуть нас к вопросу о людях. Сколько сейчас человек работает в Jelastic? Где они находятся? Работают ли из офиса? Удалённо?

Руслан Синицкий: У нас распределённая команда. Есть люди, которые находятся в Житомире, Москве, Америке. Кто-то работает удалённо. Мы всё-таки стараемся держать людей в офисе, потому что общение и коммуникация очень дороги. Удалённо возможно работать, но в нашем случае, когда продукт очень сложный, требуется большое число коммуникаций. 30% времени в нашей команде уходит на митинги, постоянно обсуждаются те или иные технические решения. На текущий момент в Jelastic около 50 человек.

Александр Астапенко: А что это за люди? Какой из них процент разработчиков? Где сидят разработчики и кто находится, например, в Калифорнии?

Руслан Синицкий: Наша команда делится приблизительно следующим образом. У нас есть системные администраторы — те, которые программируют на Bash, Perl, скажем, те, которые пишут скрипты, автоматизируют рутинные административные процессы, есть Java-разработчики, которые пишут бэкенд, есть JavaScript-разработчики, которые пишут фронтенд. Бэкенд и фронтенд отделены друг от друга. У нас полностью одностраничное веб-приложение, которое общается на основе JSON-протокола, то есть клиентский код не генерируется серверной частью.

Есть тестировщики, сейчас их порядка 7 человек и мы ещё больше расширяем эту команду. Есть системы автоматизации тестирования, которые автоматически тестируют установку Jelastic, осуществляют функциональное тестирование, regression-тестирование. Есть команда operations, производящая установку Jelastic на хостеров или enterprise-клиентов. В Америке в основном сидят маркетинг и sales, то есть люди, которые занимаются бизнесом.

Павел Павлов: Говоря о процессах разработки, у вас сейчас довольно большая команда тестирования. Я так понимаю, что в самом начале никого не было и наверняка хватало проблем. И как вообще организовывался процесс тестирования продукта, тем более учитывая его специфику?

Руслан Синицкий: Тестирование изначально базировалось на основе самотестирования, то есть пишешь, тестируешь сам и проверяешь всё ли работает. Потом мы поняли, что нужно расширяться, добавлять тестировщиков, писать систему автоматизированных тестов. У нас есть два вида тестировщиков: мануальные, которые руками тестируют, и автотестеры, которые пишут скрипты автотестирования. Мы разработали свою внутреннюю систему, которая прогоняет API, сложные сценарии вызовов комбинаций API. Когда какой-то баг вылазит на продакшене, ты понимаешь, что качество кода нужно увеличивать, качество продукта нужно улучшать, и начинаешь предпринимать усилия в этом направлении. Опять же итерационно, все итерационно.

Павел Павлов: Не было желания сделать открытой систему, которую вы создали внутри себя и используете для тестирования, то есть поделиться с другими людьми, чтобы они на своих проектах смогли её использовать?

Руслан Синицкий: Я ребятам, которые пишут эту систему, говорю, что они создают стартап внутри стартапа. Потому что там действительно сделана уникальная вещь, которую на рынке я не встречал — тестирование непосредственно API. Наверное, потом мы сделаем её открытой.

Вообще мы думаем про Open Source. Вопрос в том, что сейчас это никак не изменит наш бизнес, а только наложит определённые тягости. Просто открыть исходный код — ничего не значит, нужно поддерживать сообщество, общаться с людьми, сделать так, чтобы удобно было работать с этим исходным кодом. Вопрос всего лишь времени, когда Jelastic станет открытым продуктом. Java изначально была закрытой, потом она стала открытой. Пока ещё время не пришло. Потому что мы концентрируемся на наиболее важных вещах для нашей команды. Сейчас это создание успешного бизнеса. Если будет успешный бизнес, то тогда и другие вопросы можно решать. На текущий момент Jelastic не является прибыльным, мы тратим больше, чем зарабатываем. При этом, конечно, растём. Рост хороший, доход растёт порядка 30% в месяц. Но всё ещё есть наиболее критичные вещи, которые требуют решения.

Павел Павлов: С появлением такой большой команды тестировщиков практика юнит-тестирования осталась? Или отпала в ней необходимость и ответственность за качество продукта несёт QA/QE?

Руслан Синицкий: Юнит-тестирование есть, но минимальное, потому что у нас очень комплексный продукт, который состоит из разный модулей. Это гибрид, смесь клиентского, серверного кода, админских скриптов. Поэтому мы используем комплексные системы тестирования, которые позволяют вызвать целую цепочку для сценариев и определить проблему в том или ином модуле. Мы не избегаем юнит-тестирования, просто на текущий момент уделяем ему недостаточно внимания из-за недостатка ресурсов. В дальнейшем мы будет больше покрывать юнит-тестами модули.

Павел Павлов: Есть ли в компании практика код-ревью и кто, в конечном итоге, несёт ответственность за качество кода?

Руслан Синицкий: Да, код-ревью у нас имеется в команде. Мы знаем какие модули требуют ревью, а какие, в принципе, нет, какие критичны и какие менее критичны. Я сам делаю код-ревью определённых модулей. Есть люди, которые друг друга страхуют. Стараемся периодически делать код-ревью в критических частях. Особенно, если мы видим появление регрессии, то есть тест определяет, что что-то ломается после добавления нового функционала. Соответственно, больше специалистов начинают вникать в код, в этот модуль и делать ревью.

Павел Павлов: А какой инструментарий использовали? Что-то своё создавали или применяли существующие решения?

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

Павел Павлов: И, по сути, нет необходимости в таком супер-формальном процессе?

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

Павел Павлов: А как вообще происходят деплоймент и обновления с точки зрения конечных заказчиков, пользователей? Как вы доставляете новые версии софта, новые билды? Насколько бесшовно проходит весь этот процесс?

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

Руслан Синицкий: Действительно, апгрейд на следующую версию — это один из сложнейших процессов внутри продукта. Потому что есть люди, которые уже платят за продукт и необходимо не допустить какого-либо даун-тайма их приложений, минимизировать даун-тайм нашего дэшборда. Представьте себе сколько партнёров есть, у каждого из них своя кастомная какая-то фишечка. У кого-то одна биллинг-система, у кого-то другая, у кого-то одни настройки, у кого-то немножко другие, разные типы серверов. И это приносит довольно много хлопот. Что мы делаем? Мы создали такой инструмент, который называется “труба” и в эту трубу как бы говорим: “ У нас есть версия 1.9.2. Мы хотим обновить её на 1.9.3”. Труба очищает железо, устанавливает 1.9.2, проводит тесты, потом поверх делает апгрейд, опять тесты и присылает отчёт. И мы видим какие проблемы, на каком этапе и пытаемся предотвратить их ещё на стадии тестирования апгрейда. Под апгрейд пишем патчи: патчи инфраструктурных элементов и патчи пользовательских контейнеров (иногда тоже требуются). Все эти патчи, дополнительные модули тестируются во время апгрейда. Дальше, когда происходит апгрейд, с новыми релизами мы вводим такое правило (чтобы больше обезопасить конечных пользователей, которые есть у нашего партнёра): партнёр должен предоставить отдельную площадку, куда мы клонируем продакшен и делаем пре-продакшен апгрейд. Делаем пре-продакшен апгрейд, смотрим, что какие-то кастомные вещи, которые есть у этого партнёра, например, несовместимы с текущим апдейтом. Если всё окей, то тогда производим апгрейд продакшена.

Процесс, честно говорю, очень сложный. Зачастую первые апгрейды занимали по два дня. Ребята молодцы конечно, команда очень мотивирована, но в конце — выжатые лимоны. Сегодня мы поделили процесс на два этапа. Первое — это подготовка к апгрейду, когда производятся определённые действия, они могут осуществляться в спокойной обстановке, не торопясь, подготовить инфраструктуру, где-то бэкапы сделать предварительно. И второе — непосредственно время апдейта. То есть мы пытаемся минимизировать интервал апдейта, вынести максимум действий на подготовительный этап. Последние апдейты занимали порядка 4--5 часов. Были больше, были меньше, в зависимости от сложности того или иного продакшена. Стремимся к тому, чтобы апдейты производились нашими партнёрами, то есть мы зарелизим новую версию и скажем: вот, в репозитории новая версия, следуя такой-то инструкции, вы сможете обновить свой продакшен.

Павел Павлов: А каково на сегодняшний день распределение ролей между вами и партнёрами, хостинг-провайдерами в контексте поддержки пользователей и инфраструктуры?

Руслан Синицкий: На сегодняшний момент процедура следующая. Мы устанавливаем Jelastic и предоставляем серию тренингов. Тренинги по суппорту, по мониторингу платформы и параллельно подключается маркетинг, который начинает обучать партнёров, к примеру, хостеров как маркетировать данный продукт, что можно рекламировать, как нужно сайт поменять, то есть целый комплекс мер и процедур. Есть три этапа запуска нашей платформы — POC (Proof of concept), когда просто ставим Jelastic на железку, смотрим, что всё работает хорошо; потом бета-запуск, когда мы уже проводим кастомизацию, серию тренингов и хостер начинает самостоятельно управлять платформой; и коммерческий запуск, когда заканчивается биллинг-интеграция и проводятся пресс-релизы, полноценная маркетинговая компания. После этого хостер отвечает за поддержание работоспособности кластера и за поддержку конечных пользователей. Все сообщения, в первую очередь, приходят хостеру и все проблемы приходят к хостеру. Мы предоставляем вторую линию поддержки и фиксим какие-то сложные вещи, в которых, к примеру, хостер по той или иной причине не может разобраться: сложность продукта, недоработки продукта (такое тоже есть, естественно), либо недопонимание хостером той или иной функциональности. Но мы после коммерческого запуска больше не отвечаем за платформу. Поэтому на текущий момент есть различные провайдеры, которые предоставляют разный уровень качества. Я вот знаю, что в одной стране есть хостеры, предоставляющие разный уровень качества Jelastic. И на одном хостере люди счастливы, а на другом — не очень.

Александр Астапенко: Это не в России случайно?

Руслан Синицкий: Я удержусь от комментариев)

Александр Астапенко: А хостеры от вас не требуют каких-то юридических гарантий? Особенно относительно моментов даун-тайма, которые возможны при переходе из препродакшена в продакшен.

Руслан Синицкий: Я бы не сказал, что они требуют. Они ожидают, что всё будет хорошо, что даун-таймов не будет и что мы будем качественно выполнять свою работу. Откровенно скажу, возникают иногда серьёзные трудности, потому что это действительно очень комплексный продукт, очень много модулей и некоторые моменты иногда тяжело предусмотреть. Естественно, мы стараемся избежать таких ситуаций, но если они случаются, то делаем всё возможное для минимизации ущерба. Все же люди, хостеры понимают, что проблемы могут возникать, важно как ты относишься к решению этих проблем. Если разворачиваешься спиной и медленно реагируешь, тогда и отношения складываются не очень хорошо. Есть хостеры, с которыми у нас вообще золотые отношения. Я приглашаю их к нам внутрь команды, сажусь с ними, шарю и обсуждаю roadmap, пытаюсь понять их фидбэк. Есть партнёры, с которыми просто формальные отношения поддерживаем. Есть партнёры, с которыми мало общаемся, потому что они делают хорошо свою работу и мы делаем хорошо свою работу. Очень разные ситуации бывают.

Павел Павлов: А какой регион был самый трудный, куда сложнее всего было выходить и работать? И были ли вообще такие регионы, страны?

Руслан Синицкий: На текущий момент Азия для нас наиболее трудный регион по коммерческому запуску, пока нет азиатского партнёра. Надеюсь, что в скором будущем появится. Я имею ввиду Сингапур, Малайзия. У нас есть Австралия уже, Япония, хотелось бы ещё Сингапур и Китай. Китай, конечно, очень тяжело. Там по бизнесу тяжело. Непосредственно по кооперации, я не знаю, всё специфически на самом деле. Я бы не сказал, что зависит от региона, зависит от мотивации того или иного хостера. Хостеры есть разные: есть большие, есть маленькие. Где-то директор был в восторге, подключили Jelastic и вся команда в восторге. Они делают большой промоушен, их клиенты в восторге, всё идёт хорошо, всё хорошо растёт. А бывает кому-то спустили сверху: “запускайте продукт” и человек, который ответственен не мотивирован, поэтому и развитие идёт медленно. Зависит всё, в первую очередь, от людей, с которыми работаешь.

Александр Астапенко: Краткий вопрос в эту же тему. Происходит интеграция, потом поддержка. Последняя происходит удалённо или есть какой-то специалист онсайт? Ты говорил об аккаунт-менеджере, техническом специалисте. Кто-то из них онсайт выезжает или это какие-то командировки? Или кто-то постоянно находится там?

Руслан Синицкий: В этом нет необходимости на текущий момент. Продукт автоматизирован. Иногда выезжают бизнес-люди для налаживания отношений. Я несколько раз выезжал к партнёрам для того, чтобы поговорить внутри, посидеть, понять как ускорить процессы и устранить те или иные неполадки либо просто выслушать их бизнес-идеи. Есть партнёры, с которыми необходимо держать очень тёплые отношения, они критически важны. С ними периодически мы встречаемся.

Александр Астапенко: Ну, как минумум выпить пива.

Руслан Синицкий: Как минумум выпить пива. Совершенно верно. То есть нужно понять, что ты работаешь, в первую очередь, с людьми. Это обычные люди, они такие же: и пиво пьют, и матом ругаются иногда.

Александр Астапенко: Или саке.

Руслан Синицкий: Ну, или саке, да)

Александр Астапенко: Мы потихоньку подходим к концу. Я думаю, Руслан, ты уже устал разговаривать. Очень хорошо получается у нас пока. Хотел про людей в Jelastic спросить. Как ты думаешь, почему они хотят работать в вашей компании и какие ценности вы несёте в мир, что мотивирует людей трудиться именно в Jelastic?

Руслан Синицкий: Я думаю, что лучше всего ответит команда. Но моё мнение в том, что, в первую очередь, у нас хорошие отношения внутри коллектива. У нас нормальные отношения, дружеские. Мы как семья. Изначально, когда нас было мало и хватало одного дома, мы жили в частном доме как в Фейсбуке, ели за одним столом, то есть это семейные командные отношения, семейный продукт. Сейчас мы выросли, стало не хватать места — переехали в другое, более формальный офис теперь. Тем не менее отношения остались тёплыми внутри команды. Второе, очень важное — люди понимают, что они создают серьёзный продукт мирового уровня, что мы конкурируем с большими игроками, что они создают историю. Это сильно мотивирует. И многие вещи не спускаются к ним сверху, а они сами могут принимать участие в развитии продукта.

Александр Астапенко: И во главе этого семейства долгое время стоял ты, Константин, а потом в сентябре этого года пришёл новый CEO. Можешь рассказать пару слов о причинах? Может о неофициальных причинах. Официальные причины я уже читал в интервью. Как вообще назрела идея взять снаружи CEO и доволен ли ты по итогу двух месяцев?

Руслан Синицкий: Мысль назрела следующим образом. Человек-оркестр — это хорошо на определённом этапе, но когда компания начинает расти, то это замедляет рост. В какой-то степени я был таким человеком. И технологии, и бизнес, и маркетинг. Это невозможно долго тянуть. Мы решили, что для масштабирования нашего бизнеса, необходимо привлекать более профессиональных людей. И это на самом деле хорошая практика. Это очень важный момент, который нужно осознать. Многие люди могут опасаться, что вот придёт человек, который умнее, возьмёт тебя и вышвырнет или обманет, обхитрит. Но это глупые опасения. Нужно привлекать людей, которые умнее тебя, чтобы они могли сделать лучше чем ты. Джон как раз тот человек, у него гораздо больше опыта во многих вещах, чем есть у меня. Мы открываем новое enterprise-направление — сфера, где я никогда не был. Для меня хостинг был новой сферой и это было непросто. Enterprise — ещё сложнее. Там играют роль отношения, знакомства, опыт, доверие. Правильный человек, правильный английский. Есть много факторов, которые важны. Поэтому мы решили нанять профессионального директора. Это освободило большую часть моего мозга, я теперь могу фокусироваться на тех вещах, которые лучше всего у меня получаются — технология, архитектура, планирование развития продукта.

Александр Астапенко: Ты говоришь, что решение приняли “мы”. Прошло пять лет с момента появления идеи и три года со времени зарождения компании, у вас множество партнёров, как-то тебе удавалось с ними договариваться, ты ездил и разговаривал с хостерами, но почему-то именно сейчас вы приняли такое решение. Скажи, чья была инициатива? Твоя, команды, ведущих специалистов команд, про которых ты говорил, или это была, например, инициатива инвесторов? Просто смена директора совпала с приходом Maxfield Capital. Можешь пояснить этот момент?

Руслан Синицкий: В первую очередь, менеджмент компании, кофаундеры и инвесторы. Такие решения не принимаются за месяц. Мы начали думать об этом, когда команда стала расти, мы столкнулись с определёнными проблемами и осознали потенциал другого рынка. Раунд с Maxfield Capital был сделан для того, чтобы можно было нанять более профессиональных, более дорогих людей.

Александр Астапенко: Расскажи немного о своих личных планах. В каком-то из твоих интервью я читал, что ты бы хотел заниматься робототехникой. Не устал ли ещё от пяти лет работы над продуктом, когда вы уже приходите к enterprise, когда процесс выстроен, интеграция выстроена? Какие дальнейшие планы после Jelastic?

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

Естественно, я слежу за происходящими параллельно технологиями, новостями, но не могу сказать, что у меня хватает времени сконцентрироваться на каком-то дополнительном направлении. В принципе, я пока не горю особым желанием. Я хочу сделать Jelastic действительно большой успешной компанией, которая была бы известна во всем мире и стабильно стояла на ногах.

Что будет дальше — посмотрим. Что меня огорчает, я вот честно скажу, малое количество людей в Украине, которые хотели бы создать свой продукт. В принципе, я бы мог помочь многим людям добиться своей цели. Либо контактами, либо подсказать какой-то совет. Опыт накопился, я точно знаю, что могу помочь людям добиться тех или иных результатов в определённых областях. Поговорив с окружающими, увидел очень малое количество людей, у которых есть внутри энергия, которые хотят что-то создавать самостоятельно.

Александр Астапенко: Руслан, на этом я предлагаю завершать запись нашего нулевого “CTOcast”. Благодарим тебя за то, что согласился поучаствовать. Может ты хочешь сказать напоследок какие-то слова?

Руслан Синицкий: Не бойтесь создавать что-то новое, не бойтесь разрушать стандарты, не бойтесь того государства, где вы живёте. Боритесь за свою идею, за свою мечту, не опускайте руки, старайтесь создавать что-то интересное, новое. Старайтесь делать так, чтобы работа была частью вашей жизни, тогда вы будете получать удовольствие. Потому что 30% нашего времени мы тратим на работу. Радуйтесь тому, что у вас есть и стремитесь к большему. На такой нотке хотелось бы завершить наш подкаст.

Автор: ViktoryiaFedzkovich

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js