Описание одного из основных практических вариантов использования разработки бессерверных приложений.
В последней статье мы узнали об определении бессерверных архитектур и о том, как они на самом деле работают.
Мы также узнали, чем они отличаются от традиционных архитектур баз данных клиент-сервер.
В этой статье давайте углубимся в практический вариант использования этой революционной технологии и посмотрим, как крупная компания использует ее в своей системе.
Но сначала давайте рассмотрим некоторые ключевые понятия 👇
Хранимые процедуры
Говоря о бессерверных функциях, мы часто говорим, что они могут представлять собой небольшие фрагменты функционального кода, которые можно тесно интегрировать с базой данных.
Эти функции могут быть вызваны рабочим процессом, созданным конкретной микрослужбой. Эта дополнительная сложность часто может потребовать некоторых дополнительных соображений для вашей системы:
- Это может заставить вас быть специфичным для поставщика. Например, с помощью платформы AWS Serverless Application Management у вас есть возможность выбрать определенный язык или платформу и разработать на них свою функцию. Затем вы можете использовать репозиторий бессерверных приложений (SAR) от AWS, чтобы легко управлять и распределять свои функции.
- Привязка к поставщику — сложная задача, поскольку ваши функции должны выполняться в контексте этого поставщика, и ваши модульные и интеграционные тесты также начнут это отражать.
- Если вы выберете поставщика, который не предлагает таких возможностей, вам придется найти эти решения самостоятельно.
Если ваше приложение достаточно простое, ему не нужны накладные расходы, как мы видели выше. Однако в сложных архитектурах, таких как видеоплатформа Netflix, это необходимо.
Требования
Некоторые требования к сервису видеоплатформы Netflix включают в себя:
- Конвейер обработки аудио/видео, достаточно надежный для обработки сложных рабочих процессов с высокой задержкой от секунд до нескольких минут.
- Рабочие процессы с низкой задержкой или чувствительные к задержкам, которые требуют от пользователя ожидания завершения задания.
- Кодовая база должна быть достаточно модульной, чтобы поддерживать…