Оказание услуг аудита приложения для управляющей компании для бизнеса iConText Group
IT-аудит — это комплекс мероприятий по оценке эффективности и безопасности IT-инфраструктуры. Он позволяет не только выявлять ошибки или уязвимости, но и формировать стратегию роста продукта.
За более чем 20 лет работы мы провели более 50 аудитов программного обеспечения в различных областях, помогая нашим партнерам в решении их бизнес-задач. В этом кейсе рассказываем об аудите приложения для iConText Group.
Клиент
iConText Group — управляющая компания для бизнеса, которая создает новые стандарты операционного управления и помогает организациям работать эффективнее. В группу входят агентства icontext, Zen Mobile Agency, iSEO, CPAExchange, Registratura. Их цель — решать бизнес-задачи клиентов в интернет-маркетинге: от разработки мультиканальных digital-стратегий до проведения аналитики и предоставления кастомизированных отчетов.
Продукт заказчика — приложение, которое позволяет получать и обрабатывать данные из нескольких открытых источников по api, формировать хранилище данных и генерировать отчёты. Клиент обратился к нам за комплексной проверкой состояния своего сервиса.
Задача
Нам предстояло выполнить несколько задач:
- Провести аудит текущего состояния приложения и дать рекомендации по его улучшению.
- Выявить в коде узкие места, влияющие на производительность в случае нагрузки или роста объема обрабатываемых данных.
- Предложить варианты перехода от монолитной архитектуры к микросервисной.
- Выявить проблемы с безопасностью проекта.
- Провести функциональное и нефункциональное тестирование, составить список найденных дефектов.
Решение
Мы проанализировали объём предстоящей работы и обозначили сроки её завершения. После этого приступили к выполнению задач по разным направлениям.
Backend (2 недели):
- Выявили ошибки с помощью статического анализатора кода Flake8. Это помогло нам определить основную массу ошибок тайпинга, стиля, известных уязвимостей.
- Вручную проанализировали код с позиции его модульности и расширяемости.
- Проанализировали корректность использования библиотек.
- По итогу работы предложили асинхронный подход к использованию библиотеки Pyppeteer.
- Проанализировав код, мы выявили наличие антипаттернов и предложили идеи по оптимизации.
- Также выявили и указали избыточные обращения к базе данных со стороны ORM и некорректное использование индексов. Результатом стали рекомендации по улучшению работы с базой данных.
Frontend (1 неделя):
- Выявили ошибки в коде с помощью инструментов ESLint и Prettier.
- Вручную проанализировали кодовую базу всех модулей и компонентов системы, чтобы проверить бизнес-логику.
- Проанализировали корректность использования библиотек и вспомогательных инструментов.
- Составили отчёт о производительности приложения с помощью инструмента Google Lighthouse.
DevOps (2 недели):
- Провели аудит инфраструктуры приложения заказчика: используемые технологии, анализ систем виртуализации, возможность применения систем контейнеризации, наличие резервных копий, состояние систем мониторинга.
- Провели аудит баз данных: их текущее состояние, отказоустойчивость, наличие резервных копий, оптимальность конфигураций.
- Провели аудит безопасности: критические точки в конфигурации приложения, оптимальность структуры сети.
QA (2 недели):
- Провели функциональное, регрессионное и юзабилити-тестирование, а также протестировали API.
- Провалидировали и локализовали 31 дефект, 13 из которых — критической важности.
Результат
Мы провели комплексный аудит приложения и собрали для клиента список рекомендаций, которые позволят оптимизировать текущие конфигурации компонентов приложения и обеспечить безопасность проекта. Аудит выявил проблемы в инфраструктуре продукта, в том числе одну критическую, о чём заказчик был уведомлен сразу.
В результате работы мы предоставили клиенту:
- отчёт по аудиту приложения
- чек-лист по улучшению сервиса.
Технологии
Python, Django, Celery, PostgreSQL, RabbitMQ, Vue 2