Амазон Prime Video сократил стоимость инфраструктуры на 90% перейдя с микросервисов на монолит.
Сразу оговорюсь, не весь Amazon Prime, а конкретное подразделение, следящие за качеством видеопотока на наших с вами ноутбуках, мобильниках, и где мы там еще смотрим видео.
Сейчас на пальцах объясню что произошло:
У них есть задача: нарезать стриминговое видео на кадры, а дальше скармливать эти кадры различным анализаторам дефектов:
- первый анализирует задержки видео потока,
- другой ищет рассинхронизацию видео и аудио
- третий ищет ошибки декодирования видео
- и т.д.
И они очень логично решили, что один сервис будет нарезать видео на кадры, складывать их в Amazon S3 (файлохранилище), а толпа других (анализаторы) будет из S3 читать скриншоты и искать дефекты.
Плюшки подхода:
- они могут масштабировать сервисы независимо друг от друга
- использовать amazon Lambda
- они легко могут добавлять новые анализаторы и старые ничего об этом не узнают.
И тут все очень логично. Я не могу их обвинить в злоупотреблении микросервисами. Ей богу, я бы сам так же сделал!
Но потом они уперлись в потолок бюджета и поняли, что у них уходит большая часть денег и времени
- на оркестрацию этой распределенной системы
- на обмен файлами между микросервисами через Amazon S3.
В итоге:
Они решили что обмен данными внутри процесса будет намного дешевле и слепили эти микросервисы в монолит, попутно выпилив S3, так как скриншот передается теперь просто в памяти.
А как же масштабирование? Они говорят что просто масштабируют один и тот же сервис, регулируя параметрами за что именно конкретный инстанс отвечает.
Вот так… 90% экономия на инфраструктуре. Впечатляет!
Расскажите в комментариях, что вы сами думаете о микросервисной архитектуре, приходилось ли вам видеть проект написанный на микросервсиах ради микросервисов?
Пруф: https://www.primevideotech.com/video-streaming/scaling-up-the-prime-video-audio-video-monitoring-service-and-reducing-costs-by-90
Post #141
2.9K