Если после релиза ваша система тормозит или ломается при наплыве пользователей, у вас есть несколько вариантов действий. 

Чтобы избежать таких проблем с самого начала, важно грамотно планировать архитектуру проекта.

Планировать нагрузку с самого начала

Мы это делаем на этапе планирования и аналитики. Сначала мы выясняем, какое максимальное число пользователей будет использовать систему, и проектируем архитектуру так, чтобы она выдерживала эти нагрузки с запасом.

Кроме того, команда проекта презентует готовую архитектуру другим разработчикам, которые не участвуют в проекте. Те дают обратную связь и предлагают улучшения. Мы обновляем архитектуру с учетом этих предложений и используем её для дальнейшей разработки. Так мы уверены, что после релиза система выдержит все необходимые нагрузки.

Если же на этапе планирования это было упущено, и к моменту запуска система не справляется с нагрузками, мы рекомендуем начать с поиска "узких мест" — ошибок в коде, которые вызывают проблемы с производительностью и стабильностью системы.

Выявить “узкие места” в системе

Чтобы решить проблему, нужно сначала выяснить, в чем она заключается и что ее вызывает.

Мы проводим стресс-тестирование: проверяем каждый компонент системы с помощью ботов, которые имитируют реальных пользователей. Эти "пользователи" нагружают систему до тех пор, пока она не перестанет работать. Тестировщики отмечают, в каких компонентах система ломается первой. Затем уже разработчики работают над улучшением этих слабых мест, чтобы система выдерживала реальные нагрузки.

Для большей эффективности мы можем автоматизировать стресс-тестирование. Тесты будут запускаться автоматически перед каждым релизом и обновлением.

Плюс такого подхода в том, что систему не придется переделывать с нуля. Можно исправить проблемы только в самых важных местах, и все будет работать. Однако, это решение подходит для быстрого устранения проблем. Для долгосрочного решения лучше провести подробный аудит системы.

Провести аудит системы

Параллельно со стресс-тестированием, мы предлагаем провести аудит системы. В рамках аудита наши разработчики изучают код и архитектуру, оценивают их качество. Мы проверяем систему по семи ключевым критериям:

  • Code Formatting — форматирование кода
  • Best Practices — современные стандарты
  • Maintainability — поддерживаемость
  • Architecture — качество архитектуры
  • Documentation — качество документации
  • Safety — безопасность
  • Efficiency — эффективность

Подробно о каждом критерии можно прочитать здесь

Самое важное в аудите то, что он помогает разработчикам понять, как можно исправить проблемы с нагрузкой и производительностью с минимальными затратами. Мы составляем подробный отчет, в котором по пунктам описано состояние каждого из семи критериев, с пояснениями и примерами.

Подводим итоги

Чтобы решить проблемы с нагрузкой, в краткосрочной перспективе нужно начать с поиска "узких мест" с помощью стресс-тестирования. В долгосрочной перспективе стоит провести подробный аудит системы. Только так можно убедиться, что все возможные варианты решения найдены и проверены, прежде чем тратить время и деньги на полное переписывание системы.

Мы предлагаем бесплатный аудит системы. Найдем слабые места проекта и подготовим отчет с рекомендациями по решению имеющихся проблем. 

Забронируйте звонок или напишите нам

  • Вопросы клиентов