В интервью Хайтек+ Станислав делится секретами создания надежных и производительных систем, рассказывает о ключевых трендах в индустрии — искусственном интеллекте, концепции Lakehouse и облачных технологиях — и объясняет, почему будущее обработки данных уже наступило, а GridGain Systems находится в авангарде этих изменений. Узнайте, как сочетание SQL, in-memory computing и ACID-транзакций позволяет создавать критически важные приложения, способные обрабатывать огромные объемы данных с задержкой на уровне миллисекунд, и как GridGain 9 меняет правила игры для компаний, стремящихся к лидерству в эпоху цифровой трансформации.
— Станислав, вы внесли значительный вклад в развитие Java, работая над версиями платформы, ставшими ключевыми в ее развитии. Расскажите, пожалуйста, как вас пригласили стать частью команды Oracle? В частности, в Java Platform Group, где вы трудились в течение трёх лет в команде Java Compatibility Kit (JCK)?
— Я устроился в Oracle, уже имея некоторый опыт разработки на Java и интерес к внутреннему устройству платформы, который сформировался еще во время учебы в университете. Меня привлекли масштабы и значимость проектов, над которыми работала Java Platform Group, а также возможность внести свой вклад в развитие одной из самых распространенных технологий в мире. Предложение присоединиться к команде Java Compatibility Kit (JCK) стало возможностью работать с лучшими специалистами в индустрии, но и серьёзным профессиональным вызовом.
Работа в JCK подразумевала глубокое погружение в спецификацию виртуальной машины Java (JVM) и разработку инструментов для обеспечения соответствия реализации этой спецификации. Это была не просто разработка тестов, а исследовательская работа, требующая понимания тонкостей работы JVM на самом низком уровне, знаний, которые я, в том числе, получил, обучаясь в университете. Мне довелось работать над такими ключевыми версиями Java, как 8, 9 и 10, и участвовать в развитии таких важных нововведений, как модульная система Java (Project Jigsaw). Это был бесценный опыт, который позволил мне существенно вырасти как инженеру.
— Очень интересно! А если говорить о ваших конкретных задачах в компании, связанных, например, с обеспечением совместимости Java, с Java Compatibility Kit (JCK), — какие технические сложности возникали? Это же, наверное, совсем не то, чему учат в университете?
— Java Compatibility Kit (JCK) — это критически важная часть большой платформы Java. Она помогает удостовериться в том, что разные реализации Java от разных компаний и организаций (а их сегодня существует огромное количество) работают одинаково и соответствуют единым стандартам и спецификациям. Это, в свою очередь, обеспечивает предсказуемость и надежность работы приложений Java на различных платформах. Долголетие Java во многом обусловлено подходом к обратной совместимости платформы, и JCK играет ключевую роль в поддержании этого принципа.
Вы правы, это не то, чему учат в университете. Это не написание промышленных приложений, не создание веб-сервисов. Здесь ты работаешь со спецификациями, с архитекторами, вычитываешь эти спецификации, находишь в них проблемы и несоответствия. Большая часть работы заключалась в доскональном анализе спецификаций, поиске проблем в них и в конечном итоге, поиске ошибок и проблем в самом продукте. При этом, ты осознаешь, что пишешь код, который должен обеспечить совместимость на следующие 20 лет. Твоя работа прямо влияет на будущее языка, и это создает особую ответственность.
— Вы упомянули, что работа с JCK требовала досконального анализа спецификаций. Доводилось ли вам участвовать во внесении изменений в спецификации? Не могли бы вы рассказать подробнее о процессе?
— Да, конечно. Мой фокус был направлен на Java Virtual Machine Specification, я много работал с архитекторами, ответственными за эту спецификацию, и участвовал в нескольких её доработках, например, в уточнении правил работы функции Method Handles. Method Handles — это достаточно сложная и низкоуровневая часть Java, предоставляющая мощные возможности для динамической работы с методами. Работая над Java Compatibility Kit, мы, конечно, очень плотно тестировали и эту часть спецификации, и реализацию виртуальной машины, которая ее поддерживала.
В процессе этой работы мы, вместе с архитекторами спецификации, обнаружили ряд неточностей, двусмысленностей и других проблем в описании Method Handles. Спецификация — это же не просто техническая документация, это своего рода «закон» для всех, кто реализует Java. Поэтому важно, чтобы она была предельно точной и однозначной.
Мы с коллегами внесли целый ряд правок к этому разделу. Этот процесс занял месяцы — мы детально обсуждали каждый пункт, искали наилучшие формулировки, чтобы сделать спецификацию более понятной, логичной и исключить возможность неоднозначной интерпретации. В итоге, текст Java Virtual Machine Specification, касающийся Method Handles, был существенно переписан, став более точным, полным и соответствующим реализации виртуальной машины.
— Переход из Oracle, крупнейшей корпорации, в GridGain Systems — более динамичную компанию — интересный поворот вашей карьеры. Что мотивировало вас на этот шаг после значимой работы над Java? Какие возможности вы увидели в GridGain Systems, которых не было в Oracle?
— Решение о переходе из Oracle в GridGain Systems было продиктовано стремлением к новым возможностям и более динамичной рабочей среде. Хотя работа в крупной корпорации, безусловно, имеет свои преимущества и стабильность, со временем захотелось попробовать что-то иное. GridGain был известен как компания с высокой планкой требований к сотрудникам, место, куда сложно попасть. Тем не менее, рекрутеры GridGain вышли на меня, и мне предложили работу в более customer-facing роли, в команде Customer Solutions.
Это был шаг к расширению моего профессионального опыта, поскольку помимо инженерной работы добавилась работа непосредственно с клиентами. Мне стало необходимо понимать их проблемы и помогать в их решении. В GridGain я столкнулся с совершенно другой культурой, гораздо более динамичной, где сроки реализации проектов измерялись днями и неделями, а не годами и десятилетиями, как в Oracle. Это заставило меня быстро учиться решать проблемы, координировать ресурсы и управлять ожиданиями внешних и внутренних заинтересованных сторон.
— А как в целом изменился ваш подход к работе? Какие новые навыки вы приобрели в GridGain, учитывая вашу позицию Director of Product Management?
— В GridGain я приобрел навыки продуктового и проектного менеджмента, управления людьми и ожиданиями внешних и внутренних заинтересованных сторон. Работа в GridGain ощущалась как череда быстрых проектов, в которых нужно быстро добиваться результата. При этом, если раньше я мог сделать что-то один, то теперь приходилось координировать множество людей из разных команд внутри и снаружи компании.
Мне быстро удалось адаптироваться к новому ритму работы и достичь первых успехов. Уже в первый год работы я успешно вывел проект одного крупного заказчика в продакшн, что принесло мне большую видимость и способствовало дальнейшему карьерному росту. Впоследствии я сменил несколько ролей в компании, каждый раз приобретая новые навыки и демонстрируя свою компетентность.
— Станислав, учитывая ваш опыт в разработке Java и вашу текущую роль Director of Product Management в GridGain Systems, вы находитесь на передовой технологий обработки данных. Вашим последним крупным проектом стал GridGain 9, который, как я знаю, представляет собой значительный шаг вперед в области распределенных СУБД, сочетая поддержку SQL, in-memory вычисления и гарантии целостности данных. Не могли бы вы рассказать о планах по развитию GridGain 9? Какие новые функции и улучшения следует ожидать пользователям в будущих версиях, и как они помогут им решать современные задачи обработки данных?
— Безусловно, GridGain 9 — это знаковый релиз, и мы рассматриваем его как фундамент для дальнейшего развития платформы. В ближайших планах, в версии 9.1, ключевым элементом станет новый уровень поддержки аналитических приложений. Он обеспечен встроенным колоночным хранилищем, предоставляющим значительное ускорение при обработке больших объемов данных, что критически важно для современных Lakehouse архитектур. Мы ожидаем существенного повышения эффективности запросов и расширения спектра аналитических задач, которые пользователи смогут решать, используя GridGain.
В дальнейшем наша стратегия развития GridGain 9 нацелена на тесную интеграцию с ключевыми трендами в индустрии: Cloud, AI и Lakehouse. Мы видим будущее в создании высокоинтегрированных решений, которые легко встраиваются в существующие технологические ландшафты. Наша задача — предоставить максимально гибкую и адаптивную платформу, которая может эффективно решать задачи обработки данных в любых условиях, от on-premise решений до современных облачных инфраструктур, поддерживая при этом передовые AI-workload’ы.
— И в завершение, пожалуйста, поделитесь своим мнением о текущем состоянии индустрии. Какие технологии вы считаете наиболее перспективными, а какие, на ваш взгляд, уже устаревают? Как признанный эксперт в области распределенных систем, расскажите, какие ключевые вызовы и проблемы стоят перед разработчиками таких систем сегодня?
— Индустрия распределенных систем сейчас находится на очень важном этапе своего развития. С одной стороны, мы видим огромный прогресс в развитии технологий, делающих распределенные системы более доступными и простыми в использовании. С другой стороны, требования к таким системам постоянно растут, и разработчикам приходится сталкиваться с новыми вызовами. Пользователи ожидают от распределенных систем не только высокой производительности и масштабируемости, но и простоты использования, прозрачности и экономической эффективности. И если раньше компромиссы в пользовательском опыте были допустимы, то сегодня это уже неприемлемо.
Что касается перспективных технологий, то, безусловно, стоит выделить cloud-native подходы, позволяющие создавать системы, изначально ориентированные на работу в облачной среде. Также, огромный потенциал имеет интеграция распределенных систем с технологиями искусственного интеллекта. И, конечно, концепция Lakehouse, которая, на мой взгляд, станет доминирующей архитектурой для хранения и обработки данных в ближайшем будущем. Если говорить об устаревающих технологиях, то традиционные реляционные базы данных, ориентированные на монолитную архитектуру, постепенно теряют свою актуальность в мире больших данных и распределенных вычислений.
Ключевые вызовы для разработчиков распределенных систем сегодня — это обеспечение баланса между производительностью, масштабируемостью, надежностью, безопасностью и стоимостью решений. Также важной проблемой остается сложность разработки и управления распределенными системами.
Но, несмотря на все сложности и вызовы, я уверен, что будущее распределенных систем — это невероятные возможности для инноваций и прогресса, и я рад быть частью этой динамичной области.