-ѕоиск по дневнику

ѕоиск сообщений в predefglas

 -ѕодписка по e-mail

 

 -—татистика

—татистика LiveInternet.ru: показано количество хитов и посетителей
—оздан: 10.12.2014
«аписей:
 омментариев:
Ќаписано: 94

¬алидаци€ Fuel-плагинов в рамках Mirantis Unlocked validation program. ќно вам надо?

ƒневник

—уббота, 18 »юн€ 2016 г. 18:37 + в цитатник
јвторы: ≈вгени€ Ўумахер, »ль€ —течкин ¬сем привет. ƒа, если вы любите деньги, то оно вам надо. ƒальше мы расскажем, что такое Увалидаци€ плагиновФ и почему это полезно дл€ бизнеса. ≈сли у вас нет бизнес-интересов, а программирование Ч способ самовыражени€, то дальше можете не читать. ѕлагины как часть архитектуры Fuel ј если решили читать, то давайте сперва вспомним, что такое Fuel и Fuel-плагины (см. блог-посты от августа и окт€бр€ 2015 года). ќпросы пользователей показывают, что Fuel Ч очень попул€рный инструмент развертывани€ OpenStack. ¬озможность создавать плагины по€вилась во Fuel, начина€ с версии 6.1. Ќужно было позволить пользовател€м произвольно расшир€ть функциональность этого инструмента развертывани€ облака. –аньше это можно было делать исключительно в ходе работы над кодом самого проекта. ¬недрение плагинов позволило пользовател€м кастомизировать Fuel в обход сложной процедуры внесени€ изменений в У€дроФ проекта. ¬прочем, и сегодн€ у пользователей остаетс€ возможность внести лепту в развитие Fuel напр€мую. Ќо это друга€ истори€, не св€занна€ с темой нашей статьи. –асшир€ть функциональность Fuel с помощью плагинов проще, потому что в этом случае не надо проходить через миллион циклов аппрува блюпринтов (определение терминов см. в —ловаре контрибутора) и т.п. ƒело в том, что плагин сам €вл€етс€ проектом, которым управл€ете вы сами ( вот, например, как это делает Mellanox). “ермины, которых нет в словаре: Fuel plugin framework Ч архитектурный термин, который говорит о том, что продукт создан таким образом, что его функционал можно расшир€ть с помощью плагинов. Fuel plugin SDK (Software Development Kit) Ч набор инструментов, практик, документов и обучающих материалов, которые помогают разработчику создавать плагины дл€ Fuel. “екуща€ верси€ доступна здесь, хот€ в скором времени переедет сюда, см. коммит). ¬ основе этого набора инструментов лежат правила, выведенные на основании анализа лучших практик разработки и внедрени€ плагинов. ƒл€ валидации плагина необходимо следовать этим правилам. ќсобенностью OpenStack €вл€етс€ об€занность разработчика следовать правилам комьюнити. ≈сли кака€-то инициатива предложена без соблюдени€ соответствующих процедур, прин€тых в сообществе (например, заведение блюпринта) Ч она гарантировано не будет прин€та. ¬ случае с плагинами дл€ Fuel у разработчиков есть больше свободы. Ќеобходимость строго следовать Уbest practicesФ возникает только в том случае, если предполагаетс€ валидаци€ плагина. Ќапример, необходимо следить за соблюдением норм, разработанных дл€ свободных лицензий (преимущественно Apache 2.0): Fuel Ч открытый проект. ј значит официальные плагины дл€ Fuel тоже должны быть открытыми. ќднако, дл€ собственных нужд можно разрабатывать и использовать невалидированные плагины. ƒрайверлог Ч это каталог плагинов дл€ OpenStack компонентов, который управл€етс€ сообществом разработчиков. ѕочему вам все-таки интересно провалидировать плагин ¬ валидации есть бизнес-аспект. ≈сли вы официально получите подтверждение того, что ваш плагин работает с MOS (Mirantis OpenStack), то он будет опубликован не только в ƒрайверлоге (что крайне рекомендуетс€, уже более 30 плагинов дл€ Fuel официально известны сообществу, хот€ на самом деле их гораздо больше, просто мы о них не знаем), но еще и на сайте Mirantis, дл€ того, чтобы об этом знали клиенты нашей компании и могли использовать ваш продукт в своих решени€х. ¬ этом случае Mirantis выступает своего рода Укор-ревьюеромФ. ћы говорим: У¬от правила написани€ плагиновФ. ≈сли вы по какой-то причине решили не следовать этим правилам Ч это ваше право. ƒо тех пор, пока вы не решили пройти процедуру валидации. Ќо если вы идете на валидацию, то мы читаем ваш код и можем поставить как +1, так и -1. “о есть мы можем рекомендовать доработки к коду. ѕровер€ем документацию (дл€ валидации об€зательно задокументировать плагин определенным образом Ч см. SDK).  роме того, вы должны предоставить нам свой CI, включа€ сценарии тестировани€ и его результаты. ћы об€зательно проводим собственные тесты по вашим сценари€м. » их результаты должны совпасть с теми, которые предоставили вы. ¬арианты MOS с провалидированными плагинами могут быть вз€ты на поддержку саппортом Mirantis совместно с разработчиком плагина (т.е. ћирантис ответит на звонок клиента, но если проблема в функциональности, которую предоставил Fuel плагин, то за€вка на поддержку будет передана разработчику плагина). ќграничени€ ¬алидаци€ не означает, что мы гарантируем, что плагин подойдет дл€ всех клиентов и всех инсталл€ций MOS. –азработчик плагина определ€ет конкретный юзкейс (вариант использовани€), а также описывает ограничени€ в работе плагина. ћирантис же провер€ет корректность работы плагина в рамках конкретного юзкейса (варианта использовани€). ¬сегда есть риск того, что плагин не подойдет тому или иному клиенту. ѕлагин написан, задокументирован, успешно прошел валидацию, специалисты нашей компании или клиент заинтересованы в использовании плагина, ноЕ ¬ процессе работы вы€сн€етс€, что у клиента очень специфические требовани€ к деплойменту. » плагин не подходит. “аким образом, валидаци€ не гарантирует того, что плагин подойдет всем клиентам. ћожет возникнуть необходимость дописать или переписать плагин. ¬ таких случа€х команда внедрени€ св€зываетс€ с командой поддержки плагина и просит произвести необходимые доработки кода, чтобы расширить функциональность плагина. ¬ажно помнить, что ни один плагин не €вл€етс€ частью дистрибутива MOS. ѕоследний не включает в себ€ ни один плагин. ѕлагины нужно скачивать отдельно. Ёто набор puppet манифестов, запакетированный в формате rpm, который позвол€ет поставить пакеты в определенном пор€дке. Ёта часть должна быть открытой. ѕри этом пакеты, которые став€тс€ плагином, могут быть проприетарными и €вл€тьс€ объектом продажи. Ќапример, Juniper Contrail. ƒл€ того, чтобы использовать данный плагин, необходимо купить у Juniper право на использование Juniper Contrail пакетов, указав при покупке количество нод и конфигурацию. “олько после того, как клиент разместит купленные пакеты по конкретному адресу, MOS (с помощью плагина) получит возможность обращатьс€ к ним. Ётапы процесса валидации ¬алидаци€ Ч процесс сложный, состо€щий из нескольких этапов: 1. ѕредоставление спецификации (УспекиФ), котора€ описывает дизайн плагина. 2. –евью кода.  онечно, на практике мы не выставл€ем УоценкиФ валидируемому плагину, но даем свои комментарии. «а разработчиком остаетс€ право игнорировать наши замечани€. Ќо возможна ситуаци€, при которой процесс валидации не будет завершен до тех пор, пока изменени€ не будет внесены. 3. –евью документации. –азработчики должны предоставить следующий пакет документов: Ч –уководство пользовател€ (user guide) Ч это самый главный документ, содержащий информацию о том, как и дл€ чего пользоватьс€ плагином, какие есть ограничени€ на его использование, какие УлайфхакиФ пригод€тс€ пользователю и с какими Уподводными камн€миФ он может встретитьс€. Ч “ест-план. Ч “ест-репорт. ѕоследние два документа позвол€ют нам проверить полноту покрыти€ юзкейса тестами. ƒл€ всех упом€нутых выше документов разработаны шаблоны. ќни €вл€ютс€ частью Fuel Plugin SDK. „то касаетс€ тестов, то мы выдел€ем два типа: общие/об€зательные и специфические. ћы рассчитываем, что партнеры будут добавл€ть уникальные тестовые сценарии в свой тест-план.  роме того партнеры должны построить свой CI и разработать автоматические тесты дл€ упрощени€ процедуры сборки и тестировани€ плагинов. “ест-репорт, в свою очередь, позвол€ет нам сравнить наши результаты тестировани€ с тем, что получилось у вас. ƒл€ того, чтобы провести это сравнение, мы полностью повтор€ем путь Убезым€нного пользовател€Ф Ч просим прислать плагин в виде пакета и на своей лабе (или лабе партнера) последовательно осуществл€ем все шаги из представленного разработчиком руководства пользовател€. ѕосле этого берем тест-план и выборочно проходимс€ по тестам. “аким образом мы получаем представление о том, насколько правдивы результаты тест-репорта. ќбычно эта процедура позвол€ет отловить большое количество багов. ѕока еще ни разу не было случа€, чтобы у нас не возникло замечаний. »ногда это рутинные правки, но встречаютс€ и критические ошибки, которые необходимо исправить до публикации. Ќекоторые партнеры считают нас слишком строгими. Ќо мы убеждены в том, что сила Mirantis Ч в надежности предлагаемых решений. 4. ћы просим партнеров провести дл€ нас демонстрацию плагина в режиме реального времени. Ёто позвол€ет а) всем заинтересованным подразделени€м Mirantis познакомитьс€ с плагином и б) нагл€дно демонстрирует работоспособность предлагаемого решени€. ѕо окончании процесса валидации мы публикуем плагин в нашем партнерском каталоге. –азработчик также может самосто€тельно опубликовать его в драйверлоге. «аключение —о стороны процесс кажетс€ сложным, но дл€ тех, кто знаком с тем, как работает комьюнити, тут нет ничего нового. Ќаша команда, отвечающа€ за работу с партнерами, помогает всем разработчикам плагинов добитьс€ успеха. ћы не только развиваем SDK, но и всегда готовы ответить на вопросы. ƒл€ св€зи с нами используйте IRC-чат на freenode.net (общий канал Fuel называетс€ #fuel, канал разработчиков Fuel Ч #fuel-dev, каналы дл€ разработчиков основных компонентов Fuel: #fuel-library, #fuel-python, #fuel-ui, #fuel-qa, #fuel-infra. Gerrit-уведомлени€ дл€ всех репозиториев Fuel доступны здесь: #fuel-tracker), также вы можете использовать адрес почтовой рассылки unlocked-tech@mirantis.com. Ѕолее подробна€ информаци€ здесь.

ћетки:  

 —траницы: [1]