Приступ без сервера за брзи развој функционалног видео сервиса

Приступ без сервера за брзи развој функционалног видео сервиса

Радим у оутсоурцингу, где се главни принцип може описати фразом „продавај пуно, уради то брзо“. Што брже то урадимо, више ћемо зарадити. И, пожељно је да све ради не на штакама и шмркама, већ са прихватљивим нивоом квалитета. Рећи ћу вам о свом искуству када је било потребно развити промотивну услугу у кратком временском периоду.

Дато: роот налог на АВС-у, без ограничења у избору технолошког стека, један бацкенд и један месец за развој.

Задатак: имплементирати промотивну услугу где корисници постављају од једног до четири видео снимка у трајању од једне до четири секунде, који се затим уграђују у оригинални видео серију.

одлука

Писање сопственог сервиса за бицикле за тако кратко време није добра идеја. Поред тога, да би услуга могла да се носи са оптерећењем и да би сви добили жељени видео, биће потребна инфраструктура. И по могућности не са ценом из авиона. Стога се одмах фокусирамо на готова решења са минималним прилагођавањем.

Стандардно решење за рад са видеом је ФФмпег, услужни програм за конзолу на више платформи који вам, кроз аргументе, омогућава да сечете и преснимавате аудио. Све што је преостало је да напишете омот и пустите га у живот. Пишемо прототип који спаја два видеа и... забава почиње. Библиотека је заснована на .НЕТ Цоре 2, требало би да ради на било којој виртуелној машини, тако да узимамо АВС ЕЦ2 инстанцу и све ће функционисати

Скривени текстне, неће радити
.
Иако ФФмпег поједностављује задатак, за стварно функционално решење потребно је да креирате ЕЦ2 инстанцу и дизајнирате мрежну инфраструктуру за њу, укључујући и Лоад Баланцер. Једноставан задатак постављања од нуле постаје „мало“ компликованији, а инфраструктура одмах почиње да захтева новац - сваки сат се износ за време рада повлачи са клијентског рачуна.

Наша услуга не укључује дуготрајне процесе, не захтева велику и масну релациону базу података и савршено се уклапа у архитектуру засновану на догађајима са ланцем позива микросервиса. Решење се намеће само по себи – можемо напустити ЕЦ2 и применити апликацију без сервера, као што је стандардни Имаге Ресизер заснован на АВС Ламбда.

Успут, упркос очигледној несклоности АВС програмера према .НЕТ-у, они подржавају .НЕТ Цоре 2.1 као рунтиме, што пружа читав низ развојних могућности.

И трешња на торти – АВС пружа посебну услугу за рад са видео датотекама – АВС Елементал МедиаЦонверт.

Суштина посла је невероватно једноставна: узимамо С3 линк до одлазног видеа, пишемо преко АВС конзоле, .НЕТ СДК или једноставно ЈСОН шта желимо да урадимо са видеом и позивамо услугу. Он сам имплементира редове за обраду долазних захтева, учитава резултат у сам С3 и, што је најважније, генерише ЦлоудВатцх догађај за сваку промену статуса. Ово нам омогућава да применимо ламбда окидаче да завршимо обраду видео записа.

Приступ без сервера за брзи развој функционалног видео сервиса
Овако изгледа коначна архитектура:

Цео позадински део је смештен у две ламбда. Други је за ротирање вертикалних видео записа, јер се такав посао не може обавити у једном пролазу.

Предњи део ћемо поставити у облику СПА апликације написане на ЈС-у и компајлиране преко мопса у јавној С3 канти. Да бисмо преузели саме видео записе, не треба нам никакав серверски код - само треба да отворимо РЕСТ крајње тачке које нам С3 пружа. Једина ствар је да не заборавите да конфигуришете смернице и ЦОРС.

Замке

  • АВС МедиаЦонверт, из непознатог разлога, примењује само звук на сваки видео фрагмент посебно, али нам је потребна весела песма из целог сцреенсавер-а.
  • Вертикалне видео снимке треба обрадити одвојено. АВС не воли црне траке и поставља ваљке на 90°.

Лако клизалиште

Упркос свој лепоти без држављанства, морате да пратите шта треба да се уради са видео снимком: залепите или додајте аудио у готов видео секвенцу. Срећом, МедиаЦонверт подржава прослеђивање метаподатака кроз своје послове и увек можемо да користимо једноставну заставицу у облику „исМастерСоундЈоб“, анализирајући ове метаподатке у било којој фази.

Серверлесс савршено омогућава рад са НоОпс - приступом који претпоставља непотребност посебног тима одговорног за инфраструктуру пројекта. Дакле, то је била мала ствар - решење постављамо на АВС без учешћа системских администратора, који ионако увек имају шта да раде.
А да бисмо све ово убрзали, аутоматизујемо скрипту за примену што је више могуће на АВС ЦлоудФорматион, што вам омогућава да примените једним дугметом директно из ВС. Као резултат, датотека од 200 линија кода вам омогућава да избаците готово решење, иако ЦлоудФорматион синтакса може бити шокантна ако нисте навикли на њу.

Укупно

Без сервера није панацеја. Али то ће учинити живот много лакшим у ситуацијама са три ограничења: „ограничени ресурси — краткорочно — мало новца“.

Карактеристике апликација погодних за сервере без сервера

  • без дуготрајних процеса. Хард лимит АПИ Гатеваи-а је 29 секунди, ламбда хард лимит је 5 минута;
  • описано архитектуром вођеном догађајима;
  • разлаже се на лабаво повезане компоненте као што је СОА;
  • не захтева много рада са вашим стањем;
  • написано у .НЕТ Цоре. Да бисте радили са .НЕТ Фрамеворк-ом, и даље ће вам требати барем Доцкер са одговарајућим рунтиме-ом.

Предности приступа без сервера

  • смањује трошкове инфраструктуре;
  • смањује трошкове испоруке решења;
  • аутоматска скалабилност;
  • развој на врхунцу технолошког напретка.

Недостаци, са конкретним примером

  • Дистрибуирано праћење и евидентирање – делимично решено преко АВС Кс-Раи и АВС ЦлоудВатцх-а;
  • незгодно отклањање грешака;
  • Хладни старт када нема оптерећења;
  • АВС кориснички непријатељски интерфејс је универзални проблем :)

Извор: ввв.хабр.цом

Додај коментар