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

Для разработчиков важно адекватно оценить планы и сравнить их с продуктом, который получается в итоге. Но при этом нужно провести комплексное тестирование и обратить внимание даже на мелкие детали. Основатели компании Cruderra Алмаз и Ринат Хабибуллины рассказывают, как реализовать свою идею и не сделать так, чтобы сервис полностью отличался от оригинальной задумки.

Привычные решения и новшества 

Для проектирования и мониторинга API есть много уже знакомых разработчикам API Design-инструментов: Postman, SwaggerHub, Stoplight, Readme, MuleSoft и другие, в том числе тесно привязанные к облачным провайдерам.

Сейчас разрабатываются и другие инструменты проектирования API: Redocly, Insomnia, Archbee, Cruderra и другие. В них пока нет полноценных инструментов мониторинга API, но это дело времени.

На определенном этапе перед командой разработки появляется задача сравнения проекта API с тем, что происходит в бэкенде на самом деле. И тогда инструменты тестирования и мониторинга выходят на первый план. Благодаря им можно не только отследить явные ошибочные ситуации использования API, но и выявить проблемы производительности на стыке задач APIOps, TestOps и DevOps.

Но если слишком увлечься вопросами автоматического тестирования и мониторинга, можно легко забыть про основную цель разработки. Важно наладить связь между изначальными требованиями проекта и его реальным воплощением. Архитектору проекта нужно сохранять контроль между тем, что задумано, и тем, что действительно пошло в продакшн. Это помогает актуализировать проект, отследить реальное поведение пользователей, выявить повторения, сильные и слабые стороны, чтобы предложить улучшенную версию API.

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

«Инструменты тестирования и мониторинга выходят на первый план»

На что нужно обращать внимание при сравнении проекта и реальности

В первую очередь, проверяют работу нисходящей цепочки контроля и отвечают на пять вопросов:

  • Какие есть пользовательские истории и какие из них содержат ошибки?
  • Какие API Endpoints возвращают ошибочный статус? Сколько таких статусов?
  • Ошибочная реакция Response Status на запрос верна? Или вызвана внутренней ошибкой обработки?
  • Насколько валидны входящие и исходящие модели данных (DataModel) и заголовков (Headers)? Насколько они соответствуют изначальным требованиям?
  • Верное ли значение поля (Field) передается в модели данных? Не нарушаются ли ограничения? Выставленные ограничения необходимы и достаточны?

Если ответы на эти вопросы есть, — это базовая степень контроля работы API продукта.

Но API — лишь внешний интерфейс взаимодействия с его потребителями. При реализации серверной части нужно учитывать множество входных точек, запускающих вычисления:

  • API Endpoints (в том числе HTTP, gRPC, WebSockets, server-sent events, webhooks и др.);
  • брокеры сообщений (Kafka, Rabbit MQ и др.);
  • задачи по расписанию (jobs или workers).

Для учета этих точек недостаточно одних инструментов API Design. Обычно применяют дополнительные инструменты мониторинга — готовые или настроенные под себя (например, при помощи Grafana + Prometheus). Это помогает выявить скрытые накапливающиеся проблемы, уведомить команду разработки и принять своевременные меры.

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

Есть уверенность, что все работает. Какие тесты необходимо провести?

ИТ-отрасли известна классическая пирамида тестирования, описывающая комплексный подход в покрытии IT-продукта тестами (по ISTQB):

  • модульное;
  • интеграционное;
  • системное;
  • приемочное.

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

Также для уверенности в работоспособности продукта нужно обеспечить закрытие инфраструктурных вопросов:

  • включение автотестов в этапы сборки проекта в CI/CD;
  • подключение рассылки оповещений (alerts) о критических состояниях системы;
  • настройка мониторинга разрабатываемых сервисов, а также используемых внутренних и внешних продуктов;
  • фиксация исключений и логов в отдельных системах для дальнейшего отслеживания и восстановления событий.

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

«Выявлять проблему лучше еще до того, как пользователь сообщит о ней или уйдет»

Над чем еще стоит поработать: будущее в этой сфере

Для разового решения задачи сравнения проекта API с его реальным воплощением вполне достаточно существующих API Design инструментов.

Однако для более глубокого контроля API требуется нечто большее. Например, Continuous API Design с инструментами мониторинга и тестирования. А если смотреть еще на один уровень глубже, то также необходимо контролировать backend, выполняющий основную работу для обслуживания внешнего интерфейса API.  

С каждым годом инструменты контроля создания ИТ-продуктов совершенствуются. Появляются новые сервисы, которые делают жизнь разработчиков легче. Несмотря на внешние потрясения, ИТ-сфера сохраняет устойчивую динамику развития и потребность в удобных инструментах повышения эффективности будет только расти.


Читать далее:

«Джеймс Уэбб» прислал фото столкновения двух огромных галактик

«Бесполезная» бактерия на Земле обеспечит жизнь колонизаторам Марса

На пирамиде в Китае нашли портрет «царя предков». Он правил более 4 000 лет назад

Подписывайтесь
на наши каналы в Telegram

«Хайтек»новостионлайн

«Хайтек»Dailyновости 3 раза в день

Первая полоса
Ученые впервые наблюдали, как орангутанг занимается самолечением
Наука
SpaceX не смогла скрыть полет ракеты над Россией: в сети публикуют фото
Космос
Зонд «Эйнштейн» показал первую партию редких космических фото
Космос
Миссию по доставке образцов с загадочной стороны Луны запустили в Китае
Наука
Ученые подтвердили ключевые события из Библии
Наука
Недалеко от нас есть планета, где ветер дует быстрее пули
Космос
Найден необычный способ бороться с хроническим стрессом
Наука
Посмотрите на самый редкий торнадо, который пронесся над США
Наука
Над Землей пролетел астероид, который вращался быстрее всех остальных
Космос
Ученые показали лицо женщины, которая жила 75 000 лет назад
Наука
Анализ генов показал, как древние водоросли вышли на поверхность планеты
Наука
Древняя технология поможет вырастить растения на Марсе, считают ученые
Космос
Физики из MIT добились рекордной близости между атомами для квантовых исследований
Наука
В Германии на ветряную электростанцию впервые установили деревянные лопасти
Новости
Инженеры разработали искусственную пиявку для безболезненного забора крови у детей
Наука
Solar Orbiter запечатлел «пушистую» корону Солнца в завораживающих деталях
Космос
Китай отправляет миссию на обратную сторону Луны: как смотреть онлайн
Космос
ИИ нашел асимметрию материи и антиматерии на Большом адронном коллайдере
Наука
TikTok вернулся в Россию? Что известно прямо сейчас
Новости
В Японии разработали устройство 6G, которое передает данные со скоростью 100 Гбит/с
Новости