Вопрос
Можем ли мы улучшить надежность системы, используя различные методы производительности для различных этапов процесса разработки?
Это взгляд на то, как твердый Производительность инженерия стратегия, которая использует Надежность Принципы и DevOps Идеализмы для дополнения и укрепления текущих или предлагаемых инициатив производительности
Эти подходы пытаются достичь лучшей сплоченности бизнеса, надежности и пособий по скорости. Для этого мы можем взглянуть на применение различных методологий из производительности, используя левую смену влево и перемещать правильные подходы, которые расширяют традиционные методы тестирования производительности
По своей сути, чтобы понять эффективность приложений нам нужно
- Механизм для запуска нагрузки против приложения или системы
- Способ измерить то, как они выполняли
- Способ сравнения результатов с тем, что, по нашему мнению, является идеальным состоянием
Каждая область производительности в модели DevOps может играть. То есть все они в некоторой форме связаны с принципами, связанными с строительством, определением и поддержанием надежной системы
В двух словах
Каждое выполнение и анализ производительности должно быть направлено на то, чтобы руководствоваться инженерной эффективностью, DevOps и надежностью принципы, которые применяются к разработке программного обеспечения
Инжиниринг надежности (Re) Попытки предсказать и предотвратить риск возникновения сбоя, будь то компонент или целая система услуг
Производительность инженерия (PE) Государства мы должны начать ранее в SDLC Чтобы получить более быструю обратную связь, но также распространяется на операции и поддержку для использования данных реального мира для создания/обновления моделей производительности (сценарии и анализ)
Тестирование производительности (pt ) — это определение какова производительности приложения ( baselining ) или сравнение с тем, как вы считаете, что это должно быть ( Дельта -анализ ) При различных условиях и ситуациях в ‘ тестовая среда
Взгляд на производительность инженерии
PE выглядит включает методологии ‘Agile’ и использовать их в сочетании с ‘DevOps’ Идеализма, чтобы обеспечить улучшенный подход, который добавляет стоимость, а не тот, который имеет тенденцию препятствовать скорости доставки
Мы можем сделать это, рассмотрев левый подход к переключению/перемещать вправо, который включает в себя подход к автоматизации Performation Cloud First. Затем это может привести к уменьшению цикла обратной связи ( увеличение скорости ), а узкие места/ошибки, пойманные на ранних этапах ( Повышение надежности ).
Модель инженерии производительности
PE Все ли о применении процесса и стратегии на каждом этапе SDLC, следующие примеры действий/параметров, которые могут быть применены в каждой вертикали
Идея состоит в том, что производительность является соображением на каждом этапе жизненного цикла программного обеспечения, захваченные метрики собираются из разработчиков, тестирования, развертывания и операций и используются для уточнения следующего цикла производительности
Традиционное тестирование производительности
Довольно часто делается в рамках Испытательный этап и влечет за собой подход большого взрыва, который состоит из многих стручков/виртуальных машин для создания нагрузки против приложения/системы
Часто интегрированная (общая) среда, которая может повлиять на результаты | Имитирует как можно ближе к реальным условиям |
Данные часто представляют собой данные «тестирование», которые могут повлиять на поведение/результаты | Интегрированные тесты выполняются против нескольких компонентов одновременно |
Репликация среды «продувки» может быть дорогой | Инструменты могут повторить тысячи (если не больше) пользователей |
Поиск случая маршрута при диагностике может быть сложным | Обширные метрики/отчеты из инструмента |
Коммерческий инструмент может быть дорогим для эксплуатации товара |
Варианты производительности/надежности для повышения эффективности, вовлеченности и наблюдаемости
-> Мы можем попытаться выяснить это, используя принципы и методологии комбинации PE, Re и DevOps
Сдвиг левый подход
Сокращение петли обратной связи SDLC, чтобы раскрыть и исправить потенциальные проблемы системы и среды
Сдвиньте левые льготы
Сплоченности команды | Фостер -разработчик вовлеченность и вклад. |
Меньше ошибок | Снижение затрат на разработку. |
Улучшенная производительность | Обнаружение и устранение узких мест вскоре рано. |
Снижение риска | Найдите ошибки и проблемы с производительностью раньше. |
Ускорить время на рынке | Больше доверия к вашим приложениям и инфраструктуре. |
Переместить правильный подход
Подход «Перемещать право» расширяет тестирование, чтобы включить отзывы пользователей и метрики из вашей производственной среды. Это можно использовать для обновления модели производительности, которая разработана как следствие
Переместите правильные преимущества
Увеличение пользовательского опыта | Тесты ближе соответствуют действиям, ожидаемым вашим пользователями |
Отвечает быстрее | Команды имеют больше участия и владение информацией о производительности предоставлены обратно |
Гипотеза дизайна оценена | Предположение отражается и адекватно действие могут быть приняты |
Различные варианты управления эффективностью | Много различных инструментов для возможности изменения потоков трафика, которые могут изменить производительность |
Измерения и наблюдение
Использование метрик производительности из каждой среды ( dev/test/prod ) используется для определения того, находятся ли они внутри SLO ограничения.
Идея мы можем понять и легко записывать локальные ( компонент ) и интегрированные ( конец 2 конец ), чтобы обеспечить лучшую прозрачность производительности. Они будут сравниваться с идеальным состоянием
Эти SLO могут быть соблюдены с помощью использования Sli’s (Спецификации SLI и реализации SLI) и по сравнению с нашим бюджетом ошибок для измерения толерантности
С целью получения текущего представления о показателях наших приложений в каждой среде и на каждом этапе SDLC они затем сравниваются с исключениями нашего бизнеса, определенных в SLO и применяются в SLI
Реализации производительности SLI могут включать в себя:
- Время ответа API/UI
- Время транзакции БД
- События масштабирования POD/VM
- Использование процессора/сетевая активность/использование памяти
Все можно было бы определить и сравнить с использованием SLI
Подмножество набора производительности можно использовать для тып Уничтоженная производительность может затем вызвать откат
Резюме
Сбалансированная стратегия производительности, которая применяется на каждом этапе SDLC, которая использует руководство по принципам RE, обеспечивает более хорошо закругленный процесс проверки и, в свою очередь, приводит к культуре эмпатии, поощрение сотрудничества, сокращение продолжительности цикла доставки и смягчение вероятности развертывания Программное обеспечение
Оригинал: «https://dev.to/sgriffiths/performance-engineering-the-reliability-edition-m9k»