Апрель 2020 года, ваша команда выиграла дорогостоящий тендер на разработку системы пропусков во время карантина. Предложите сервисы в облаке, которые могло бы использовать такое приложение. Можно на конкретных примерах провайдеров (AWS, Azure, Google, Yandex, VK).
Для начала надо определить основные элементы системы пропусков:
- Хранение данных о пропусках в защищенном хранилище
- Мобильное и веб приложение для пользователей
- Уведомление пользователей
- Идентификация, аутентификация пользователей
- Мониторинг облачных ресурсов
Для реализации системы мы бы использовали сервисы AWS, так как они предлагают обширный выбор ресурсов и крайне высокую отказоустойчивости.
Рассмотрим элементы системы по отдельности
Одним из основных требования будет производительность, так как количество запросов к базе данных будет очень большим. Под этот критерий подходит сервис Amazon DynamoDB, который предлагает NoSQL базу данных с высокой производительностью, а так же встроенной системой защитой и непрерывным резервным копированием
Для WEB и мобильного приложения нужно единое API, которое позволит взаимодействовать с базой данных и другими сервисами. Для этого есть сервис Amazon API Gateway, который берет на себя все задачи, связанные с приемом и обработкой сотен тысяч одновременных вызовов API.
Для увеличения производительности приложения, можно использовать кэширование данных с помощью Redis. Для этого можно использовать сервис Amazon ElastiCache for Redis.
Хранение статических файлов было бы реализовано с помощью Amazon S3.
Чтобы уведомлять пользователей, мы бы использовали сервис Amazon Simple Notification Service, который позволяет отправлять. Он обеспечивает высокую пропускную способность.
Для идентификации и аутентификации пользователей мы бы использовали сервис Amazon Cognito, который отлично решает поставленную задачу
С данной задачей отлично справляется сервис Amazon CloudWatch, который позволяет собирать, визуализировать и анализировать логи и метрики с других облачных сервисов.