Почему мы создали среду тестирования с открытым исходным кодом
Создание программного обеспечения и участие в сообществе с открытым исходным кодом было и остается увлекательным, познавательным и полезным опытом.
Если вы когда-нибудь хотели присоединиться к сообществу открытого исходного кода и внести свой вклад или начать собственный проект с открытым исходным кодом, то читайте дальше, чтобы узнать о нашем забавном и потрясающем проекте с открытым исходным кодом, который мы создали с нуля в Red Hat. Я работаю менеджером по качеству программного обеспечения в группе OpenStack Networking, и вместе с командой инженеров из моей команды и из отдела исследований и разработок мы вместе создали среду тестирования с открытым исходным кодом Tobiko.
Иногда вам просто нужно начать новый проект с открытым исходным кодом.
<мета-кодировка="utf-8">
Наша отправная точка была хорошей. У нас уже была официальная платформа тестирования с открытым исходным кодом под названием Tempest , которая стремилась полностью охватить API OpenStack и распространенные сценарии, имитирующие рабочее облако.
Команды OpenStack, с которыми я работаю, часто создают новые тесты и выполняют их в различных облачных конфигурациях с помощью систем с открытым исходным кодом непрерывной интеграции — Jenkins для нисходящего потока и Zuul для восходящего.
Но облако OpenStack получает массовое распространение в телекоммуникационной и корпоративной отраслях. Мы переживали быстрый рост сложности, что означало увеличение количества сценариев тестирования, и мы обнаружили, что наши старые инструменты больше не подходят.
Определите задачу, определите потребности
Мы быстро поняли, что первым фундаментальным шагом было определение новых потребностей наших клиентов. Это потребовало от нас изучения проблем, о которых нам сообщили клиенты. Мы просмотрели базу ошибок с мест, разбили все проблемы на несколько разделов и проанализировали данные.
Следующим шагом стал анализ существующих проектов. Само собой разумеется, что внедрение существующего проекта должно происходить быстрее, чем изобретение нового проекта с нуля. И все же мы не нашли подходящего инструмента для наших нужд, а также не нашли инструментов с открытым исходным кодом, которые можно было бы легко адаптировать.
Как это произошло
Именно тогда мы это поняли.
Пришло время приступить к формированию и разработке нового проекта.
Мы не хотели делать этот шаг без серьезного размышления и разнообразного вклада. Поэтому мы решили использовать Open Decision Framework (ODF). Основное преимущество этой методологии – получение как можно большего количества отзывов на ранних этапах разработки проекта, что помогло нам сэкономить много времени. позже.
После нескольких встреч, в ходе которых мы провели продуктивные мозговые штурмы, мы сначала составили несколько положительных и отрицательных отзывов, к которым хотели серьезно отнестись.
Мы повторили. Мы серьезно отнеслись к нашим обсуждениям и отзывам и усердно работали, чтобы прийти к решению.
Наконец, мы почувствовали, что готовы перейти к этапу реализации.
Мы начали с того, что собрали группу людей, у которых было время, способности и, что, возможно, самое главное, страсть к управлению проектом в соответствии с решениями, которые мы приняли во время планирования. Как только проект начал обретать форму, все больше и больше участников обращались к команде с просьбой рассмотреть его для своей новой структуры.
Это кажется таким быстрым, когда записано всего в нескольких абзацах, но этот процесс был обдуманным, и мы отнеслись к нему с большим уважением. В течение последнего года или около того у нас было сильное ядро очень способных инженеров, которые совместно работали над различными задачами разработки для поддержки быстро меняющейся облачной инфраструктуры.
Ниже приведены их свидетельства о проделанной ими работе, собранные с разных точек зрения людей, участвовавших в проекте.
Славомир Каплонски, главный инженер-программист Red Hat
Что побуждает вас участвовать в проектах с открытым исходным кодом?
Я вношу свой вклад в проекты, которые использую. Если я вижу, что есть какая-то ошибка, которая меня раздражает, или отсутствует какая-то функция, которую я хотел бы там увидеть, я пытаюсь выяснить, почему это так, по крайней мере, сообщить об ошибке или запросить улучшение (RFE) для проекта. А в лучшем случае попробую еще и патч предложить.
Это может быть основной причиной, по которой люди вносят свой вклад в проект или, по крайней мере, почему они его начинают. Это потому, что позже, когда вы больше вовлечены в проект, вы больше заботитесь о нем, вы знаете других людей, участвующих в проекте, и все по-другому.
В чем преимущество Tobiko с открытым исходным кодом?
Если (когда) им будут пользоваться люди из разных команд, возможно, даже компаний, они смогут внести непосредственный вклад в проект, привнося туда свои идеи и варианты использования. И они могут и будут вносить свой код для исправления ошибок, с которыми они сталкиваются, и добавления новых функций, которые им нужны.
Открытие исходного кода проекта делает его доступным для широкой аудитории, что может способствовать развитию проекта.
Федерико Ресси, старший инженер по качеству программного обеспечения в Red Hat
Каковы основные уроки, которые вы извлекли, работая над Тобико, как ведущий участник этой работы с самого начала проекта?
Некоторые уроки, которые я получил от Тобико в произвольном порядке:
- Старайтесь не заставлять все работать как можно скорее, потому что будущий рефакторинг часто обходится гораздо дороже. Лучше вносить небольшие постепенные изменения с течением времени.
- Начинайте работу только после того, как у вас будут четко сформулированы требования.
- Используйте систему непрерывной интеграции для помощи в тестировании собственного кода. Это приводит к стабильности.
В чем преимущество Tobiko с открытым исходным кодом?
Самым большим преимуществом открытого исходного кода Tobiko является возможность повторного использования другого открытого исходного кода и инфраструктуры OpenDev. Это также повышает доверие конечных пользователей и понимание проекта пользователями.
Эдуардо Оливарес Толедо, старший инженер по качеству программного обеспечения в Red Hat
Вы присоединились к команде уже после того, как проект был в разработке. Каково было присоединиться к существующему проекту и сообществу?
Я начал посещать собрания Тобико и выполнять небольшие задания с их канбан-доски. Основные участники были основными техническими контактными лицами, и вскоре, когда я начал участвовать в проекте, я начал задавать им технические вопросы.
Я также присоединился к IRC-каналу Тобико и к списку рассылки, чтобы обновляться и участвовать в различных обсуждениях.
Какие ресурсы помогли вам изучить проект?
Некоторая исходная документация в основном помогла мне начать загрузку, установку и запуск тестов Tobiko.
Я также потратил некоторое время на просмотр существующих заданий CI, и это был отличный способ понять, как Tobiko использовался с Openstack, как работают тесты Tobiko, и я мог начать вносить свой вклад в исправление некоторых обнаруженных мной проблем.
Tobiko основан на стандартных библиотеках Python, таких как testtools и paramiko, что упрощает процесс развертывания (либо вы знакомы с ними, если у вас есть некоторый опыт работы с средами тестирования Python, либо имеется множество доступной документации).
Какая польза от открытого исходного кода?
Есть несколько хорошо известных преимуществ проектов с открытым исходным кодом. Я бы выделил следующие:
- Вклад и отзывы людей из разных организаций и компаний. Проект Tobiko еще не достиг этого, поскольку все участники являются сотрудниками Red Hat. Федерико представил Тобико во время последней конференции OpenStack PTG сообществу Neutron, и, надеюсь, в проекте примут участие еще несколько человек.
- Более короткие циклы обратной связи из-за выполнения заданий CI в восходящем направлении. Это уже реализовано, поскольку задания Tobiko CI выполняются с каждым новым патчем Tobiko в последней версии OpenStack. Из-за этого некоторые ошибки OpenStack были обнаружены на очень ранней стадии. Тобико работает в периодической очереди заданий для Neutron, что означает, что он ежедневно проверяет ворота главной ветки, что является выдающимся достижением для Тобико.
Создавайте программное обеспечение вместе
С моей точки зрения как менеджера организации и части команды и проекта, я определил несколько критических моментов, которые помогли проекту расти быстрее и реализовать ту ценность, которую мы искали:
- Опыт: В начале проекта я осознал необходимость в том, чтобы опытный член сообщества открытого исходного кода присоединился к команде и помогал по темам, связанным с сообществом.
- Разделение труда. Мы решили назначить больше людей на роль основных проверяющих, чтобы ускорить цикл разработки и разделить ответственность между членами команды.
- Образование. Нам нужно было привлечь больше внимания к проекту, чтобы заинтересовать больше людей присоединиться к нему. Мы организовывали лекции на профильных встречах внутри и за пределами компании, рассылали письма с примерами новых функций и достижений и в целом помогали продвигать проект.
Создание программного обеспечения и участие в сообществе с открытым исходным кодом было и остается увлекательным, познавательным и полезным опытом. Это научило меня больше, чем когда-либо, ценности открытого исходного кода, и я рад, что у меня была возможность работать над ним с очень талантливой и мотивированной группой людей.
Спасибо Федерико Ресси, Славеку Каплонски, Пини Комарову, Эдуардо Оливаресу Толедо, Алексу Кацу, Омеру Шварцу, Ассафу Мюллеру и Арье Бергману.
Если вас интересует тестирование OpenStack, присоединяйтесь к нашему проекту!