[Высокая производительность, Тестирование IT-систем, Анализ и проектирование систем, Разработка на Raspberry Pi] История про Гену, Чебурашку и тестирование производительности реактивного приложения, работающего на Raspberry Pi
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
(Проект и персонажи вымышлены, любые совпадения случайны)- Чебуршка, нам нужно начать поставки нашей новой системы по мониторингу и управлению апельсиновыми плантациями через три месяца, а данных, какую максимальную нагрузку сможет поддерживать наша система - нет! Да и в стабильности работы нашей системы продолжительное время мы не уверены...- Геннадий, давай я тебе напомню, что у нас не простой веб сервис, который можно нагрузить запросами при помощи JMeter и получить показатель в секунду. У нас реактивная система по обработке потока данных и принятию решений в реальном времени, работающая на Raspberry Pi, которая должна решать задачи по мониторингу, управлению и увеличению эффективности апельсиновой плантации с минимальным энергопотреблением. Давай я тебе напомню архитектуру нашего приложения:(Чебурашка быстро нарисовал на доске следующую диаграмму для Гены)
Архитектура системы управления апельсиновой плантацией- Ты смеешься надо мной, Чебурашка?! Я же на английском ничего не понимаю!- Управляете интернациональной корпорацией, Геннадий... Пора бы уже... Давай ближе к теме. У нас имеется система по контролю и мониторингу апельсиновой плантации, которая должна располагаться на территории данной плантации, работать без подключения к электрической сети, на электроэнергии, получаемой от солнечных панелей. Система в режиме реального времени должна обрабатывать сигналы с датчиков (например влажность почвы конкретного дерева), и автоматически отправлять команды контроллерам (к примеру, системы полива этого апельсинового дерева). Также система позволяет подключаться к ней с внешнего устройства (ноутбук, планшет, смартфон), с возможностью проверки общего состояния, изменения конфигурации и анализа данных.- Чебурашка, я тебе вопрос о производительности задал! Я не просил пересказывать отрывок из презентации для инвесторов... Давай ближе к теме!- К этому я и подвожу. Исходя из специфики и отсутствия четких требований по производительности со стороны заказчика, производительность нашей системы можно будет охарактеризовать ответами на следующие вопросы:
- Какой максимальный размер апельсиновой плантации, управление которой наша система поддерживает?
- Как продолжительно система может работать на плантации данного размера?
- Как система ведет себя в критичных условиях (пиковая нагрузка, нехватка места в хранилище, отключение от источника питания) и как успешно восстанавливается?
Прежде чем перейти к решению данных вопросов, давайте разберем виды тестов производительности:Throughput
Тесты скорости системыLoad
Нагрузочные тестыPeak/Stress/Endurance
Стресс тестыGoal
ЦельHow much data per second can the system handle?
(Пропускная способность системы)How the system behaves under real-life load during the time?
(Как система ведет себя при продолжительной нормальной нагрузке?)What is the limit for the system?
(Как ведет себя система на пределе и где этот предел?)Issues to find
Помогает найти проблемыBottlenecks
(Узкие места)Memory leaks
(Утечки памяти)Concurrency issues
(Проблемы конкурентной работы с данными)High CPU / RAM / Disk / Network of individual component
(Избыточное потребление ресурсов)Hardware issues, for example overheating
(Технические проблемы, например перегрев)Data corruption
(Повреждение данных)Hardware corruption
(Физические повреждения системы)Recovery issues
(Проблемы восстановления после сбоев)- Вот, Чебурашка, можешь ведь изъясняться и на русском, когда захочешь!- Наша главная сложность, что мы не знаем в каких условиях будет находиться наша система у заказчика, также мы не знаем количественные и качественные показатели данных, которые будет потреблять система. И у нас нет реальной апельсиновой плантации рядом с офисом, чтобы проверить это. Мы можем эмулировать данные, но это может оказаться далеко от правды.- Ты же умный парень, Чебурашка! Я помню, что когда ты задаешь мне вопрос, у тебя, как правило, уже есть варианты ответа. - Верно, я предлагаю установить прототип нашей системы на плантацию к заказчику и оставить ее работать в режиме записи данных с сенсоров и использования системных ресурсов на неделю. На основе этих данных мы сможем сконфигурировать эмуляторы и запустить тесты.- Отлично, так и сделаем! Я согласую это с заказчиками прямо сегодня!- Геннадий, давай я тебе расскажу об отдельном приложении, которое я разработал специально для проведения всех названных выше типов тестов производительности. Это приложение отвечает за запуск сценариев тестов, управление эмуляторами, сбор данных потребления ресурсов (CPU, Memory, Disk I/O, DIsk space usage, Network I/O) всей системой, так и отдельными компонентами, количество ошибок в логах, пропускную способность системы и целостность данных.- Почему ты не использовал какое-либо готовое решение? Я слышал про такие инструменты для нагрузочного тестирования, как Gatling или Tank от Яндекса?- Хороший вопрос. Я изучил возможности данных инструментов и нашел их недостаточно гибкими для наших задач. Было принято решение разработать систему с нуля. Коротко опишу данную систему:
Архитектура системы тестов производительностиПриложение тестов производительности поддерживает как тестирование всего приложения, включая UI (который, в нашем случае является толстым клиентом и выполняет определенное количество интенсивных операций с данными), так и отдельных частей и компонентов.Через пару месяцев...- Добрый день, Чебурашка! Какие результаты нагрузочных тестов?- Добрый день, Геннадий! При помощи нашей системы тестов производительности мы смогли обнаружить и исправить множество дефектов и узких мест, также мы внедрили нагрузочные тесты в CI/CD Pipeline и мы запускаем их регулярно.Мы можем сказать, что:
- Один экземпляр системы способен работать на плантации площадью до 5 гектаров с количеством деревьев до 1250 штук (Далее: "стандартные условия").
- Система с хранилищем в 128 Гб в стандартных условиях способна непрерывно работать более 1 месяца.
- При экстренном отключении, данные остаются на энергонезависимом хранилище. Система автоматически запуститься и продолжит работу при восстановлении питания.
- Приятно слышать, Чебурашка! Будем планировать поставку. Надеюсь, ты не собрался в отпуск после проделанной работы. Ты ведь и так там был не давно, в позапрошлом году. А нам теперь нужно будет срочно спроектировать следующую версию системы, которая сможет контролировать работу сборщиков урожая...- Обсудим. Но это уже другая история...
===========
Источник:
habr.com
===========
Похожие новости:
- [Тестирование IT-систем, Go, Тестирование веб-сервисов] Подсказки по написанию тестов в приложениях на Go
- [Анализ и проектирование систем, Управление разработкой, Управление продуктом] Курсы PowerPoint за 2 года
- [Разработка веб-сайтов, JavaScript, Анализ и проектирование систем, Проектирование и рефакторинг, Лайфхаки для гиков] Трёхпроходный алгоритм рефакторинга Front End
- [Тестирование IT-систем, Конференции] Где логика?! История тестирования одного микросервиса
- [Высокая производительность, PostgreSQL, Администрирование баз данных, Конференции] Что нового полезно знать про базы данных?
- [Анализ и проектирование систем, Работа с 3D-графикой, CAD/CAM, Управление продуктом] Управление данными из нескольких CAD-систем в единой среде разработки
- [Анализ и проектирование систем, Управление персоналом, Карьера в IT-индустрии, Лайфхаки для гиков] Должен ли системный аналитик вторгаться на чужую территорию?
- [Тестирование IT-систем, Тестирование веб-сервисов, Конференции] Приглашаем на DINS QA EVENING: работа с логами и функциональные возможности инструментов на базе CDP
- [Разработка на Raspberry Pi, Производство и разработка электроники, Гаджеты, Компьютерное железо] MirkoPC — «док-станция» для Raspberry Pi 4, превращающая «малинку» в полноценный ПК
- [Анализ и проектирование систем, Управление продуктом] 4 вида аналитики, в которых нужно разбираться продуктовой команде
Теги для поиска: #_vysokaja_proizvoditelnost (Высокая производительность), #_testirovanie_itsistem (Тестирование IT-систем), #_analiz_i_proektirovanie_sistem (Анализ и проектирование систем), #_razrabotka_na_raspberry_pi (Разработка на Raspberry Pi), #_performance_testing, #_performance_tests, #_reactive_systems, #_vysokaja_proizvoditelnost (
Высокая производительность
), #_testirovanie_itsistem (
Тестирование IT-систем
), #_analiz_i_proektirovanie_sistem (
Анализ и проектирование систем
), #_razrabotka_na_raspberry_pi (
Разработка на Raspberry Pi
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 12:47
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
(Проект и персонажи вымышлены, любые совпадения случайны)- Чебуршка, нам нужно начать поставки нашей новой системы по мониторингу и управлению апельсиновыми плантациями через три месяца, а данных, какую максимальную нагрузку сможет поддерживать наша система - нет! Да и в стабильности работы нашей системы продолжительное время мы не уверены...- Геннадий, давай я тебе напомню, что у нас не простой веб сервис, который можно нагрузить запросами при помощи JMeter и получить показатель в секунду. У нас реактивная система по обработке потока данных и принятию решений в реальном времени, работающая на Raspberry Pi, которая должна решать задачи по мониторингу, управлению и увеличению эффективности апельсиновой плантации с минимальным энергопотреблением. Давай я тебе напомню архитектуру нашего приложения:(Чебурашка быстро нарисовал на доске следующую диаграмму для Гены) Архитектура системы управления апельсиновой плантацией- Ты смеешься надо мной, Чебурашка?! Я же на английском ничего не понимаю!- Управляете интернациональной корпорацией, Геннадий... Пора бы уже... Давай ближе к теме. У нас имеется система по контролю и мониторингу апельсиновой плантации, которая должна располагаться на территории данной плантации, работать без подключения к электрической сети, на электроэнергии, получаемой от солнечных панелей. Система в режиме реального времени должна обрабатывать сигналы с датчиков (например влажность почвы конкретного дерева), и автоматически отправлять команды контроллерам (к примеру, системы полива этого апельсинового дерева). Также система позволяет подключаться к ней с внешнего устройства (ноутбук, планшет, смартфон), с возможностью проверки общего состояния, изменения конфигурации и анализа данных.- Чебурашка, я тебе вопрос о производительности задал! Я не просил пересказывать отрывок из презентации для инвесторов... Давай ближе к теме!- К этому я и подвожу. Исходя из специфики и отсутствия четких требований по производительности со стороны заказчика, производительность нашей системы можно будет охарактеризовать ответами на следующие вопросы:
Тесты скорости системыLoad Нагрузочные тестыPeak/Stress/Endurance Стресс тестыGoal ЦельHow much data per second can the system handle? (Пропускная способность системы)How the system behaves under real-life load during the time? (Как система ведет себя при продолжительной нормальной нагрузке?)What is the limit for the system? (Как ведет себя система на пределе и где этот предел?)Issues to find Помогает найти проблемыBottlenecks (Узкие места)Memory leaks (Утечки памяти)Concurrency issues (Проблемы конкурентной работы с данными)High CPU / RAM / Disk / Network of individual component (Избыточное потребление ресурсов)Hardware issues, for example overheating (Технические проблемы, например перегрев)Data corruption (Повреждение данных)Hardware corruption (Физические повреждения системы)Recovery issues (Проблемы восстановления после сбоев)- Вот, Чебурашка, можешь ведь изъясняться и на русском, когда захочешь!- Наша главная сложность, что мы не знаем в каких условиях будет находиться наша система у заказчика, также мы не знаем количественные и качественные показатели данных, которые будет потреблять система. И у нас нет реальной апельсиновой плантации рядом с офисом, чтобы проверить это. Мы можем эмулировать данные, но это может оказаться далеко от правды.- Ты же умный парень, Чебурашка! Я помню, что когда ты задаешь мне вопрос, у тебя, как правило, уже есть варианты ответа. - Верно, я предлагаю установить прототип нашей системы на плантацию к заказчику и оставить ее работать в режиме записи данных с сенсоров и использования системных ресурсов на неделю. На основе этих данных мы сможем сконфигурировать эмуляторы и запустить тесты.- Отлично, так и сделаем! Я согласую это с заказчиками прямо сегодня!- Геннадий, давай я тебе расскажу об отдельном приложении, которое я разработал специально для проведения всех названных выше типов тестов производительности. Это приложение отвечает за запуск сценариев тестов, управление эмуляторами, сбор данных потребления ресурсов (CPU, Memory, Disk I/O, DIsk space usage, Network I/O) всей системой, так и отдельными компонентами, количество ошибок в логах, пропускную способность системы и целостность данных.- Почему ты не использовал какое-либо готовое решение? Я слышал про такие инструменты для нагрузочного тестирования, как Gatling или Tank от Яндекса?- Хороший вопрос. Я изучил возможности данных инструментов и нашел их недостаточно гибкими для наших задач. Было принято решение разработать систему с нуля. Коротко опишу данную систему: Архитектура системы тестов производительностиПриложение тестов производительности поддерживает как тестирование всего приложения, включая UI (который, в нашем случае является толстым клиентом и выполняет определенное количество интенсивных операций с данными), так и отдельных частей и компонентов.Через пару месяцев...- Добрый день, Чебурашка! Какие результаты нагрузочных тестов?- Добрый день, Геннадий! При помощи нашей системы тестов производительности мы смогли обнаружить и исправить множество дефектов и узких мест, также мы внедрили нагрузочные тесты в CI/CD Pipeline и мы запускаем их регулярно.Мы можем сказать, что:
=========== Источник: habr.com =========== Похожие новости:
Высокая производительность ), #_testirovanie_itsistem ( Тестирование IT-систем ), #_analiz_i_proektirovanie_sistem ( Анализ и проектирование систем ), #_razrabotka_na_raspberry_pi ( Разработка на Raspberry Pi ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 12:47
Часовой пояс: UTC + 5