Rust в производстве: Qovery

Перевод | Автор оригинала: Gints Dreimanis

В этой статье из нашей серии статей о Rust in Production я беру интервью у Бенджамина Шастаньера, старшего инженера-программиста в Qovery.

Мы говорим о Qovery, плюсах и минусах Rust, а также о том, что разработчики должны помнить при работе над проектами на Rust.

Интервью с Бенджамином Частье

Не могли бы вы рассказать нам больше о Qovery и вашей роли там?

Облачные провайдеры появились в начале 2000-х, чтобы позволить любому создать технологическую компанию и управлять инфраструктурой. С годами управление этими поставщиками становится все более сложным и дорогостоящим. Например, AWS, который начинался с трех сервисов, теперь насчитывает более 200, каждый со своей спецификой. В результате в растущих технологических компаниях разработчики должны управлять не только своим техническим развитием, но и этими сложными инфраструктурами, которые тратят время, энергию и ресурсы.

Qovery стремится решить эту проблему, позволяя пользователям сосредоточиться на своих продуктах. Мы создаем новое поколение приложений для развертывания и управления. Что-то настолько простое, что могла бы использовать ваша бабушка !!!

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

Где вы используете Rust в своем стеке? Насколько большая часть кодовой базы Qovery написана на Rust?

Мы используем Rust в самых разных местах, от инструментов до ядра ядра (которое на 100% написано на Rust), отвечая за большую часть специального соуса Qovery.

Не весь стек написан на Rust, мы просто пытаемся уместить его там, где его использование имело бы смысл. Например, мы собираемся запустить новый прокси-сервер сообщений журнала низкого уровня, и Rust кажется идеальным инструментом для этого.

На сегодняшний день Qovery CLI (CLI, используемый разработчиками для взаимодействия с Qovery) и Pleco (инструмент, позволяющий очищать старые облачные ресурсы) написаны на Go, а бэкэнд Qovery в основном написан на Kotlin.

Как вы решили выбрать Rust? Есть ли какие-то особые требования, которые заставили вас выбрать его?

Вначале продукт Qovery был основан на стеке Python, который невероятно быстро разросся, поддерживая потребность в новых функциях продукта. Кодовую базу стало трудно должным образом поддерживать и тестировать из-за ее эмпирического дизайна. Трудно было продолжать его продлевать. В этот момент предлагалось переписать, и Rust выглядел очень привлекательно по многим причинам.

Вот основные из них:

Есть ли какие-нибудь библиотеки или фреймворки Rust, которые вы сочли полезными и хотели бы добавить?

Помог ли вам Rust добиться чего-то, что было бы сложно сделать с помощью любого другого языка программирования?

Как объяснялось ранее, одна из целей Qovery - оптимизировать использование облака клиентами за счет снижения затрат за счет распределения и масштабирования инфраструктуры в соответствии с их потребностями.

Поскольку Qovery развернут в инфраструктуре клиентов, очень важно, чтобы Qovery занимала как можно меньше места. Rust отлично справляется с этой задачей, позволяя ему работать с минимальными настройками (128 Mo RAM и> 1 vCPU).

Было бы не так просто добиться этого за такой короткий период времени с C или C++, которые позволяют это сделать, но не предоставляют такой высокоуровневый API, или с Go, Python или другим управляемым языком. для этого может потребоваться больше ресурсов.

Еще одно большое преимущество заключается в том, что система типов Rust предотвращает возникновение проблем во время выполнения, которые были бы очень раздражающими при работе в облачной инфраструктуре наших клиентов, поскольку ее может быть сложно отладить. Компилятор Rust гарантирует стабильность и отлично помогает избежать сбоев во время выполнения.

Есть ли места, где Rust терпит неудачу (поддержка экосистемы, продуктивность и т.д.)?

На сегодняшний день я думаю о двух:

Какие компании или проекты должны проверить Qovery для собственного использования?

По сути, Qovery идеально подходит для любой онлайн-компании, которой необходимо сосредоточиться на своем бизнесе. За 18 месяцев у нас есть 6500+ разработчиков из 120+ стран, которые используют Qovery. Обещание простое: получите опыт Heroku поверх своей учетной записи AWS.

Какие планы на будущее у Qovery?

Qovery - это построение будущего облака. Следите за обновлениями - в ближайшие недели будет объявлено о нашей инициативе под названием «meta.cloud».

Какие советы вы могли бы предложить тем, кто хочет запустить свой собственный проект на Rust с открытым исходным кодом (может быть как техническим, так и нетехническим)?

Хочу поблагодарить Бенджамина за интервью! Если вы хотите узнать больше о Qovery, перейдите прямо на их веб-сайт.

Для получения дополнительной информации о том, как Rust используется в промышленности, обязательно ознакомьтесь с нашей серией интервью, в которых мы говорим с такими компаниями, как 1Password и MeiliSearch.

А если вы хотите получать уведомления о новых статьях о Rust, которые мы публикуем, мы находимся в Twitter, на Medium и Dev.

Увидимся!