OpenStack Meetup St.Petersburg 24.01.2018 (https://www.meetup.com/OpenStack-Russia-St-Petersburg/events/246061055/)
In this talk, I explained how to write OpenStack Neutron extension when (and if) you really need to. This talk contains Neutron architecture, libraries, and tricks that you have to use to write the correct extension or plugin. Neutron is a modular service and you can achieve one goal with different solutions and this talk will help you with it.
"API «Битрикс24» — разбор с пристрастием". Александр Сербул, 1С-БитриксYandex
Весной «Битрикс24» представил открытый API, который позволяет разработчикам самостоятельно расширять возможности сервиса. В докладе речь пойдёт о том, как обеспечить безопасность не в ущерб функционалу, как решать проблемы, возникающие в поддержке состояния объектов, какие подводные камни таятся в форматах данных. Идемпотентность — нужна ли она и когда именно. Будут рассмотрены примеры использования Маркетплейса. Также поговорим о том, как масштабировать проекты и куда расти.
презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014Artsofte IT company
Доклад о кейсах и подходах интерфейсной переработки облачных B2B услуг на базе вендорного ПО, в телеком и финансовых секторах с приведением примеров проектов на базе софтсфичей (Broadsoft и Светец) для Ростелекома и проектов переработки платформ ДБО.
"API «Битрикс24» — разбор с пристрастием". Александр Сербул, 1С-БитриксYandex
Весной «Битрикс24» представил открытый API, который позволяет разработчикам самостоятельно расширять возможности сервиса. В докладе речь пойдёт о том, как обеспечить безопасность не в ущерб функционалу, как решать проблемы, возникающие в поддержке состояния объектов, какие подводные камни таятся в форматах данных. Идемпотентность — нужна ли она и когда именно. Будут рассмотрены примеры использования Маркетплейса. Также поговорим о том, как масштабировать проекты и куда расти.
презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014Artsofte IT company
Доклад о кейсах и подходах интерфейсной переработки облачных B2B услуг на базе вендорного ПО, в телеком и финансовых секторах с приведением примеров проектов на базе софтсфичей (Broadsoft и Светец) для Ростелекома и проектов переработки платформ ДБО.
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...Yandex
Флеш-накопители используются в самых разных устройствах, от мобильных телефонов до компьютеров и серверов. Для каждой модели накопителя нужна прошивка с определённым набором параметров, которые могут отличаться в зависимости от ситуации. В докладе будет описан универсальный фреймфорк на С++, который предоставляет разработчикам симуляторов простой, прозрачный и быстрый доступ к любому параметру. Тестировщикам же он позволяет управлять конфигурациями при помощи стандартных инструментов редактирования и слияния.
Нещодавно відбувся Online TechTalk “Flutter Mobile Development”!
Під час заходу спікери розібрали, що таке Flutter, та навіщо використовувати саме його. Також поговорили про основні принципи та підходи до розробки на Flutter, його перспективи та найпопулярніші аплікації зроблені на ньому.
Деталі та відео заходу: https://bit.ly/3mKszBR
Сетевая безопасность в 2014: новые проблемы и их решение на базе CiscoSkillFactory
Эксперт SkillFactory Сергей Кучеренко о новых трендах в области сетевой безопасности: как ответить новым вызовам, используя уже существующее оборудование Cisco.
Смотрите запись вебинара: http://www.youtube.com/watch?v=JzO8bRguh74&hd=1
#ITsubbotnik Spring 2017: Sergey Mishanin "Report Portal. Руководство для аде...epamspb
Не секрет, что хорошие отчеты являются очень важной частью любой системы автоматизации тестирования. И просто прекрасно, если под рукой есть инструмент, который прямо из коробки предоставляет нам то, что бы мы хотели получить от системы репортинга. Причем в унифицированном виде вне зависимости от используемых технологий. Впрочем, всегда есть нюансы. Об этом и поговорим. В своем докладе я расскажу (а тем, кто в курсе, напомню) что такое EPAM Report Portal и почему его нужно использовать, также о том, как интегрировать его в тестовую систему на базе Cucumber, какие при этом есть подводные камни и как их можно обойти.
Процесс разработки и тестирования с Docker + gitlab ciАлександр Сигачев
Доклад - https://www.youtube.com/watch?v=lJsqRwULRVA
Какие проблемы решаем?
быстрый вход нового разработчика в проект
стандартизация настроек разработчиков
переключение между проектами - разные версии ПО и библиотек (mysql 5.6/5.7, node 0.12/7.2)
приучаем разработчиков к сетевому взаимодействию компонентов
Microservice - масштабирование/разделения разработки
Делим ресурсы staging среды между проектами
* Почему Angular 2 такой быстрый и как его ускорить еще сильнее?
* Как работает Change Detection механизм и как им управлять?
* Зачем нам Zone.js и Функциональное Реактивное Программирование?
* Как работать с Redux и Mobx в Angular 2 и что можно от этого выиграть?
Об этом и ряде других вещей вы узнаете из этого доклада.
Превышаем скоростные лимиты с Angular 2 / Алексей Охрименко (IPONWEB)Ontico
* Почему Angular 2 такой быстрый и как его ускорить еще сильнее?
* Как работает Change Detection механизм и как им управлять?
* Зачем нам Zone.js и Функциональное Реактивное Программирование?
* Как работать с Redux и Mobx в Angular 2 и что можно от этого выиграть?
Об этом и ряде других вещей вы узнаете из этого доклада.
Есть такая штука как инструментирование кода. Мало кто знает о ней, даже пользуясь результатами ее применения. Между тем, с инструментированием можно делать много всего интересного и, главное, полезного. Например, это может вам помочь лучше понять код или сделать процесс разработки более эффективным. Примеры инструментирования кода и принципы его работы.
More Related Content
Similar to How to write an extension for Neutron if you really need to
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...Yandex
Флеш-накопители используются в самых разных устройствах, от мобильных телефонов до компьютеров и серверов. Для каждой модели накопителя нужна прошивка с определённым набором параметров, которые могут отличаться в зависимости от ситуации. В докладе будет описан универсальный фреймфорк на С++, который предоставляет разработчикам симуляторов простой, прозрачный и быстрый доступ к любому параметру. Тестировщикам же он позволяет управлять конфигурациями при помощи стандартных инструментов редактирования и слияния.
Нещодавно відбувся Online TechTalk “Flutter Mobile Development”!
Під час заходу спікери розібрали, що таке Flutter, та навіщо використовувати саме його. Також поговорили про основні принципи та підходи до розробки на Flutter, його перспективи та найпопулярніші аплікації зроблені на ньому.
Деталі та відео заходу: https://bit.ly/3mKszBR
Сетевая безопасность в 2014: новые проблемы и их решение на базе CiscoSkillFactory
Эксперт SkillFactory Сергей Кучеренко о новых трендах в области сетевой безопасности: как ответить новым вызовам, используя уже существующее оборудование Cisco.
Смотрите запись вебинара: http://www.youtube.com/watch?v=JzO8bRguh74&hd=1
#ITsubbotnik Spring 2017: Sergey Mishanin "Report Portal. Руководство для аде...epamspb
Не секрет, что хорошие отчеты являются очень важной частью любой системы автоматизации тестирования. И просто прекрасно, если под рукой есть инструмент, который прямо из коробки предоставляет нам то, что бы мы хотели получить от системы репортинга. Причем в унифицированном виде вне зависимости от используемых технологий. Впрочем, всегда есть нюансы. Об этом и поговорим. В своем докладе я расскажу (а тем, кто в курсе, напомню) что такое EPAM Report Portal и почему его нужно использовать, также о том, как интегрировать его в тестовую систему на базе Cucumber, какие при этом есть подводные камни и как их можно обойти.
Процесс разработки и тестирования с Docker + gitlab ciАлександр Сигачев
Доклад - https://www.youtube.com/watch?v=lJsqRwULRVA
Какие проблемы решаем?
быстрый вход нового разработчика в проект
стандартизация настроек разработчиков
переключение между проектами - разные версии ПО и библиотек (mysql 5.6/5.7, node 0.12/7.2)
приучаем разработчиков к сетевому взаимодействию компонентов
Microservice - масштабирование/разделения разработки
Делим ресурсы staging среды между проектами
* Почему Angular 2 такой быстрый и как его ускорить еще сильнее?
* Как работает Change Detection механизм и как им управлять?
* Зачем нам Zone.js и Функциональное Реактивное Программирование?
* Как работать с Redux и Mobx в Angular 2 и что можно от этого выиграть?
Об этом и ряде других вещей вы узнаете из этого доклада.
Превышаем скоростные лимиты с Angular 2 / Алексей Охрименко (IPONWEB)Ontico
* Почему Angular 2 такой быстрый и как его ускорить еще сильнее?
* Как работает Change Detection механизм и как им управлять?
* Зачем нам Zone.js и Функциональное Реактивное Программирование?
* Как работать с Redux и Mobx в Angular 2 и что можно от этого выиграть?
Об этом и ряде других вещей вы узнаете из этого доклада.
Есть такая штука как инструментирование кода. Мало кто знает о ней, даже пользуясь результатами ее применения. Между тем, с инструментированием можно делать много всего интересного и, главное, полезного. Например, это может вам помочь лучше понять код или сделать процесс разработки более эффективным. Примеры инструментирования кода и принципы его работы.
Similar to How to write an extension for Neutron if you really need to (20)
6. Service plugin + agent
6
1. три функции для neutron API: get_plugin_type(),
get_plugin_name(), get_plugin_description()
2. список supported_extension_aliases
3. функции оповещения агентов
4. функции для предоставления информации агентам
https://github.com/openstack/neutron-lib/blob/master/neutron_lib/services/base.py#L52
8. Service plugin + agent
8
1. три функции для neutron API: get_state(), after_start(),
after_updated()
2. функции обработки событий от плагина
3. функции для запроса к плагину
17. API extension
17
1. модель для работы с базой
2. миграция (alembic)
3. Mixin с CRUD методами ресурса: get_chatbot(), get_chatbots(),
create_chatbot(), update_chatbot()
4. дополнительные методы: bind_port(), unbind_port()
5. плагин для работы с API extension
get/create/update/delete_chatbot()
get_chatbots()
18. API extension
18
1. GET, POST -> http://<neutron_url>/chatbots
2. GET, PUT -> http://<neutron_url>/chatbots/<uuid>
3. PUT - > http://<neutron_url>/chatbots/<uuid>/bind_port
4. PUT - > http://<neutron_url>/chatbots/<uuid>/unbind_port
19. scheduler API extension
19
1. список ботов на агенте: GET -> .../agents/<agent_id>/chatbots
2. добавление бота на агент: POST -> .../agents/<agent_id>/chatbots
3. удаление бота: DELETE -> .../agents/<agent_id>/chatbots/<chatbot_id>
4. список агентов с ботом: GET -> .../chatbots/<chatbot_id>/foobar-agents
22. scheduler API extension
22
1. модель для работы с биндингом agent_id <-> chatbot_id
2. миграция (alembic)
3. Mixin с CRUD методами ресурса: list_chatbot_on_agent(),
add_chatbot_to_agent(), remove_chatbot_from_agent(),
list_agent_hosting_chatbot()
4. плагин для работы с API extension
23. scheduler API extension
23
1. список ботов на агенте: GET -> .../agents/<agent_id>/chatbots
2. добавление бота на агент: POST -> .../agents/<agent_id>/chatbots
3. удаление бота: DELETE -> .../agents/<agent_id>/chatbots/<chatbot_id>
4. список агентов с ботом: GET -> .../chatbots/<chatbot_id>/foobar-agents
25. failover / auto scheduling
25
Failover
1. периодические проверки статуса агента
2. если агент стал недоступен -> запуск функции перемещения
3. получает список ресурсов на недоступном агенте
4. загружает scheduler driver
5. выбирает целевой агент(ы) -> вызов filter_agents()
6. запускает функцию переноса для каждой единицы ресурса -> вызов
bind()
Auto scheduling
1. периодические проверки списка ресурсов
2. получает список свободных ресурсов
3. загружает scheduler driver
4. выбирает целевой агент(ы) -> вызов filter_agents()
5. запускает функцию переноса для каждой единицы ресурса -> вызов
bind()
https://github.com/openstack/neutron/blob/master/neutron/scheduler/base_scheduler.py
29. failover / auto scheduling
29
Что умеет плагин:
1. управлять ресурсом chatbot
2. управлять портами
3. предоставляет API для настройки ресурса
4. предоставляет API для биндинга chatbotа к агентам
5. есть failover / auto scheduling
31. ML2 plugin extension
31
Процесс получения информации:
1. запрос к Neutron API
2. вызов функции get_port() плагина ML2
3. вызов extend_port_dict() у всех ML2 extension
4. возвращение результата
32. ML2 plugin extension
32
1. GET -> extend_port/network/subnet_dict()
2. POST -> process_create_port/network/subnet()
3. PUT -> process_update_port/network/subnet()
https://github.com/openstack/neutron-lib/blob/master/neutron_lib/plugins/ml2/api.py#L1008
36. Testing
36
1. Unit тесты <- local
2. Functional <- local
3. Fullstack <- devstack / live
4. Tempest <- devstack / live <- rally
a. Api
b. Scenario
https://docs.openstack.org/neutron/ocata/devref/development.environment.html