Сфера деятельности: Разработка ПО
Используемые продукты JetBrains: PyCharm
Число сотрудников: 500+
Страна: Международные реселлеры
OpenStack — один из самых широко используемых комплексов программного обеспечения с открытым исходным кодом для создания облачных сервисов. Он разрабатывается сообществом и для сообщества: экосистема охватывает 187 стран и насчитывает более 200 проектов, находящихся в активной разработке. OpenStack был признан «Проектом десятилетия, разработанным при помощи PyCharm».
«С точки зрения функционала у PyCharm множество преимуществ перед текстовыми редакторами. В том, что касается разработки на Python, PyCharm явно выделяется благодаря таким возможностям, как удаленная отладка, проверки качества кода и интеграция со сторонним ПО, например, Docker и Kubernetes».
— Свапнил Кулькарни, активный участник сообщества OpenStack
Мой опыт разработки программного обеспечения насчитывает более 12 лет. Уже больше четырех лет я вхожу в команду сообщества OpenStack, которая занимается контейнерами. Я участвовал в работе над многими сценариями применения контейнерных технологий в OpenStack. Это, например, проект Kolla — полностью контейнеризированное развертывание OpenStack. Кроме того, я ведущий рецензент в команде, которая утверждает изменения в требованиях OpenStack.
OpenStack начинался с облачной операционной системы с открытым исходным кодом, создателями которой были NASA и Rackspace. Он стал долгожданной альтернативной платформой для крупных компаний, которым требовалось частное облако с открытым исходным кодом. Сначала OpenStack включал в себя только два компонента: Compute (Nova) и Object Storage (Swift). С тех пор к сообществу присоединилось более 250 активных технологических партнеров, и участники активно работают над различными возможностями, чтобы проект обеспечивал удобное развертывание частного облака.
OpenStack охватывает почти 200 стран, участники сообщества разработчиков и операторы работают на всех континентах. У нас широкая база пользователей: от небольших стартапов, использующих всего несколько узлов, до крупных организаций, которым требуются тысячи узлов, как, например, в одной из крупнейших лабораторий ЦЕРН.
В экосистему OpenStack входят разные проекты, программы и мероприятия, которыми руководит некоммерческая организация OpenStack Foundation. Исходный код помещается в репозиторий OpenDev, а его зеркало создано на Github. Для ревью всего кода используется Gerrit. Технические решения, касающиеся отдельных проектов и сообщества в целом, принимает Технический комитет. Он формируется в ходе открытых выборов, в которых принимают участие все активные участники сообщества.
Всего в экосистеме более 200 проектов, над которыми идет активная работа. Проекты можно разделить на много потоков, например, вычисления, хранилища, сети, контроль качества, развертывание, безопасность, искусственный интеллект и машинное обучение и т. п. Каждую неделю приходится выполнять тысячи ревью, поэтому сообщество использует инфраструктуру, предоставленную такими компаниями, как Vexhost, чтобы обеспечить постоянную интеграцию и своевременное выполнение задач.
Над каждым проектом OpenStack работает своя основная команда. Ее размер зависит от числа контрибьюторов и входящих запросов на ревью по проекту. На некоторых проектах команды небольшие, человек 5, на других — 50 и больше. Каждая проектная команда — это часть потока, который решает задачи, стоящие перед сообществом. Помимо команд разработчиков, есть еще группы по отдельным вопросам, например, группа операторов, которая совместно работает над требованиями к развертыванию OpenStack и связанными с этим проблемами. У нас есть комитет пользователей, который собирает отзывы об OpenStack, Технический комитет, который обеспечивает взаимодействие между пользователями, разработчиками, операторами и руководителями OpenStack Foundation.
Больше 95% всей кодовой базы OpenStack написано на Python. Везде, где дело касается веб-разработки, мы используем фреймворк Django.
Во-первых, Python отлично подходит для быстрой разработки: создать на этом языке новую функцию можно гораздо быстрее, чем на любом другом из доступных сейчас… Точнее, скажем так: чем на многих других языках. Его главное преимущество — это скорость. OpenStack использует модель очень быстрой разработки, и часто приходится работать с подсистемами, которые требуют языка с богатым техническим функционалом и надежными библиотеками. Язык должен быть объектно-ориентированным и динамически типизированным. Python полностью соответствует этим требованиям. Кроме того, он лаконичный, его легко читать и понимать, и мы от него в абсолютном восторге.
Команды OpenStack используют Python для разработки по самым разным направлениям. У нас есть API для каждого модуля, алгоритмы планирования, компоненты вызова различных аппаратных компонентов, таких как гипервизоры и подсистемы хранения. Кроме того, Python используется при разработке веб-панелей мониторинга на фреймворке Django.
Работа на таком огромном проекте, как OpenStack, требует интеграции со множеством внутренних проектов и внешних вспомогательных компонентов. Необходимо организовать отладку как внутри проекта, так и между ними, обеспечить интеграцию с Git/Gerrit, управление требованиями, отладку в реальном времени и интеграцию с Vagrant, Docker, Ansible и Kubernetes — и это лишь основные сложности. Такой инструмент как PyCharm предлагает разработчикам необходимые возможности интеграции и плагины, упрощая решение многих этих проблем.
С точки зрения функционала у PyCharm множество преимуществ перед текстовыми редакторами. В том, что касается разработки на Python, PyCharm явно выделяется благодаря таким возможностям, как удаленная отладка, проверки качества кода и интеграция со сторонним ПО, например, Docker и Kubernetes. Моя команда при работе с PyCharm чаще всего использует как раз удаленную отладку и интеграцию с Docker.
PyCharm отлично подходит большинству пользователей. Он помогает обеспечить единообразный стиль кода в масштабах проекта, а также контроль версий. Многие разработчики широко используют быстрые исправления — это позволяет экономить время на исправлении мелких ошибок и переформатировании кода. Кроме того, поддержка отладки упрощает командам проверку разрабатываемых возможностей. А для управления код-ревью прямо из IDE можно использовать плагины Gerrit.
Я участвую во множестве проектов по контейнеризации в рамках OpenStack, поэтому мне, например, очень помогает в работе IDE с поддержкой интеграции Docker. Еще очень полезны разные дополнительные проверки контейнеров на проектах, которые еще не контейнеризированы.
Да, я всегда рекомендую друзьям и коллегам использовать PyCharm и весь комплекс продуктов JetBrains, которые им подходят. Как я уже говорил, интеллектуальный редактор кода, удобная навигация по коду, поддержка интеграции с такими вспомогательными инструментами, как Git и Docker, и другие возможности будут полезны и начинающим, и опытным разработчикам. Они получают надежный рабочий инструмент, который позволяет им полностью сосредоточиться на решении стоящих перед ними задач.
Свапнил Кулькарни, активный участник сообщества OpenStack
Мэтт Лукас, руководитель продукта, RoadBotics
Одной из причин, побудивших нас перейти на WebStorm, было наличие в его стандартной комплектации множества премиальных возможностей, которые позволили быстро приступать к работе и снизить зависимость от стороннего ПО. Кроме того, централизация всех лицензий на программное обеспечение позволила нам проще управлять доступом к инструментам разработки.
Гарт Гилмор, руководитель образовательного отдела в Instil
Когда из-за введенных ограничений в марте 2020 года мы перешли на удаленку и нам понадобился инструмент для дистанционной работы со студентами, Space был очевидным выбором.
Бен Эшер, разработчик iOS-приложений, Autodesk
С помощью Kotlin Multiplatform разработчик может создать новую функцию и протестировать ее на одной платформе, а затем другие разработчики могут просто подключить модели данных и бизнес-логику к интерфейсу своей платформы и использовать большую часть наработок. Теперь, когда у нас есть общая кодовая база, разработчики, пишущие код под разные платформы, больше сотрудничают друг с другом.