Сфера деятельности: Разработка ПО

Используемые продукты JetBrains: PyCharm

Число сотрудников: 500+

Страна: Международные реселлеры

OpenStack

OpenStack — один из самых широко используемых комплексов программного обеспечения с открытым исходным кодом для создания облачных сервисов. Он разрабатывается сообществом и для сообщества: экосистема охватывает 187 стран и насчитывает более 200 проектов, находящихся в активной разработке. OpenStack был признан «Проектом десятилетия, разработанным при помощи PyCharm».

«С точки зрения функционала у PyCharm множество преимуществ перед текстовыми редакторами. В том, что касается разработки на Python, PyCharm явно выделяется благодаря таким возможностям, как удаленная отладка, проверки качества кода и интеграция со сторонним ПО, например, Docker и Kubernetes».

— Свапнил Кулькарни, активный участник сообщества OpenStack

Расскажите немного о себе и о том, как вы стали участником глобального сообщества OpenStack.

Мой опыт разработки программного обеспечения насчитывает более 12 лет. Уже больше четырех лет я вхожу в команду сообщества OpenStack, которая занимается контейнерами. Я участвовал в работе над многими сценариями применения контейнерных технологий в OpenStack. Это, например, проект Kolla — полностью контейнеризированное развертывание OpenStack. Кроме того, я ведущий рецензент в команде, которая утверждает изменения в требованиях OpenStack.

Как вы объясните, что такое OpenStack, тем, кто с ним еще не знаком?

OpenStack начинался с облачной операционной системы с открытым исходным кодом, создателями которой были NASA и Rackspace. Он стал долгожданной альтернативной платформой для крупных компаний, которым требовалось частное облако с открытым исходным кодом. Сначала OpenStack включал в себя только два компонента: Compute (Nova) и Object Storage (Swift). С тех пор к сообществу присоединилось более 250 активных технологических партнеров, и участники активно работают над различными возможностями, чтобы проект обеспечивал удобное развертывание частного облака.

Каков масштаб проекта OpenStack?

OpenStack охватывает почти 200 стран, участники сообщества разработчиков и операторы работают на всех континентах. У нас широкая база пользователей: от небольших стартапов, использующих всего несколько узлов, до крупных организаций, которым требуются тысячи узлов, как, например, в одной из крупнейших лабораторий ЦЕРН.

Расскажите, как устроен проект OpenStack с открытым исходным кодом.

В экосистему OpenStack входят разные проекты, программы и мероприятия, которыми руководит некоммерческая организация OpenStack Foundation. Исходный код помещается в репозиторий OpenDev, а его зеркало создано на Github. Для ревью всего кода используется Gerrit. Технические решения, касающиеся отдельных проектов и сообщества в целом, принимает Технический комитет. Он формируется в ходе открытых выборов, в которых принимают участие все активные участники сообщества.

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

Команда OpenStack

Как организованы команды OpenStack?

Над каждым проектом OpenStack работает своя основная команда. Ее размер зависит от числа контрибьюторов и входящих запросов на ревью по проекту. На некоторых проектах команды небольшие, человек 5, на других — 50 и больше. Каждая проектная команда — это часть потока, который решает задачи, стоящие перед сообществом. Помимо команд разработчиков, есть еще группы по отдельным вопросам, например, группа операторов, которая совместно работает над требованиями к развертыванию OpenStack и связанными с этим проблемами. У нас есть комитет пользователей, который собирает отзывы об OpenStack, Технический комитет, который обеспечивает взаимодействие между пользователями, разработчиками, операторами и руководителями OpenStack Foundation.

Какие основные языки и технологии использует сообщество OpenStack?

Больше 95% всей кодовой базы OpenStack написано на Python. Везде, где дело касается веб-разработки, мы используем фреймворк Django.

Чем вам нравится Python и почему вы выбрали его в качестве основного языка?

Во-первых, Python отлично подходит для быстрой разработки: создать на этом языке новую функцию можно гораздо быстрее, чем на любом другом из доступных сейчас… Точнее, скажем так: чем на многих других языках. Его главное преимущество — это скорость. OpenStack использует модель очень быстрой разработки, и часто приходится работать с подсистемами, которые требуют языка с богатым техническим функционалом и надежными библиотеками. Язык должен быть объектно-ориентированным и динамически типизированным. Python полностью соответствует этим требованиям. Кроме того, он лаконичный, его легко читать и понимать, и мы от него в абсолютном восторге.

Что вы и ваша команда разрабатываете на Python?

Команды OpenStack используют Python для разработки по самым разным направлениям. У нас есть API для каждого модуля, алгоритмы планирования, компоненты вызова различных аппаратных компонентов, таких как гипервизоры и подсистемы хранения. Кроме того, Python используется при разработке веб-панелей мониторинга на фреймворке Django.

С какими главными сложностями сталкиваются, по вашему мнению, разработчики OpenStack?

Работа на таком огромном проекте, как OpenStack, требует интеграции со множеством внутренних проектов и внешних вспомогательных компонентов. Необходимо организовать отладку как внутри проекта, так и между ними, обеспечить интеграцию с Git/Gerrit, управление требованиями, отладку в реальном времени и интеграцию с Vagrant, Docker, Ansible и Kubernetes — и это лишь основные сложности. Такой инструмент как PyCharm предлагает разработчикам необходимые возможности интеграции и плагины, упрощая решение многих этих проблем.

200 ведущих разработчиков OpenStack используют PyCharm. Как это повышает их производительность?

С точки зрения функционала у PyCharm множество преимуществ перед текстовыми редакторами. В том, что касается разработки на Python, PyCharm явно выделяется благодаря таким возможностям, как удаленная отладка, проверки качества кода и интеграция со сторонним ПО, например, Docker и Kubernetes. Моя команда при работе с PyCharm чаще всего использует как раз удаленную отладку и интеграцию с Docker.

PyCharm отлично подходит большинству пользователей. Он помогает обеспечить единообразный стиль кода в масштабах проекта, а также контроль версий. Многие разработчики широко используют быстрые исправления — это позволяет экономить время на исправлении мелких ошибок и переформатировании кода. Кроме того, поддержка отладки упрощает командам проверку разрабатываемых возможностей. А для управления код-ревью прямо из IDE можно использовать плагины Gerrit.

А какие возможности PyCharm больше всего повышают лично вашу производительность?

Я участвую во множестве проектов по контейнеризации в рамках OpenStack, поэтому мне, например, очень помогает в работе IDE с поддержкой интеграции Docker. Еще очень полезны разные дополнительные проверки контейнеров на проектах, которые еще не контейнеризированы.

Вы когда-нибудь рекомендовали друзьям или коллегам использовать PyCharm? Какие три главных функции вы при этом называете?

Да, я всегда рекомендую друзьям и коллегам использовать PyCharm и весь комплекс продуктов JetBrains, которые им подходят. Как я уже говорил, интеллектуальный редактор кода, удобная навигация по коду, поддержка интеграции с такими вспомогательными инструментами, как Git и Docker, и другие возможности будут полезны и начинающим, и опытным разработчикам. Они получают надежный рабочий инструмент, который позволяет им полностью сосредоточиться на решении стоящих перед ними задач.

Контакты

Свапнил Кулькарни, активный участник сообщества OpenStack

twitter.com/coolsvap
www.openstack.org

Похожие истории клиентов

RoadBotics

Мэтт Лукас, руководитель продукта, RoadBotics

Одной из причин, побудивших нас перейти на WebStorm, было наличие в его стандартной комплектации множества премиальных возможностей, которые позволили быстро приступать к работе и снизить зависимость от стороннего ПО. Кроме того, централизация всех лицензий на программное обеспечение позволила нам проще управлять доступом к инструментам разработки.

Instil

Гарт Гилмор, руководитель образовательного отдела в Instil

Когда из-за введенных ограничений в марте 2020 года мы перешли на удаленку и нам понадобился инструмент для дистанционной работы со студентами, Space был очевидным выбором.

Autodesk

Бен Эшер, разработчик iOS-приложений, Autodesk

С помощью Kotlin Multiplatform разработчик может создать новую функцию и протестировать ее на одной платформе, а затем другие разработчики могут просто подключить модели данных и бизнес-логику к интерфейсу своей платформы и использовать большую часть наработок. Теперь, когда у нас есть общая кодовая база, разработчики, пишущие код под разные платформы, больше сотрудничают друг с другом.

Другие истории клиентов