Serverless-ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π²ΠΈΠ΄Π΅ΠΎ-сСрвиса

Serverless-ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π²ΠΈΠ΄Π΅ΠΎ-сСрвиса

Π― Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π² аутсорсС, Π³Π΄Π΅ Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Ρ€Π°Π·ΠΎΠΉ Β«ΠΏΡ€ΠΎΠ΄Π°Π²Π°ΠΉ ΠΌΠ½ΠΎΠ³ΠΎ, Π΄Π΅Π»Π°ΠΉ быстро». Π§Π΅ΠΌ быстрСС сдСлаСм, Ρ‚Π΅ΠΌ большС Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ. И, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всё Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ Π½Π΅ Π½Π° костылях ΠΈ соплях, Π° с ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ качСства. Π― расскаТу ΠΎ своём ΠΎΠΏΡ‹Ρ‚Π΅, ΠΊΠΎΠ³Π΄Π° Π·Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ срок Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΌΠΎ-сСрвис.

Π”Π°Π½ΠΎ: root-Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Π½Π° AWS, отсутствиС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ Π²Ρ‹Π±ΠΎΡ€Ρƒ стСка Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΎΠ΄ΠΈΠ½ бэкСндСр, ΠΈ ΠΎΠ΄ΠΈΠ½ мСсяц Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.

Π—Π°Π΄Π°Ρ‡Π°: Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΌΠΎ-сСрвис, Π³Π΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ люди Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… Π²ΠΈΠ΄Π΅ΠΎ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… сСкунд, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΌ Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ видСоряд.

РСшСниС

ΠŸΠΈΡΠ°Ρ‚ΡŒ свой вСлосипСдный сСрвис Π² Ρ‚Π°ΠΊΠΈΠ΅ сТатыС сроки β€” Ρ‚Π°ΠΊ сСбС затСя. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сСрвис справлялся с Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°ΠΌΠΈ ΠΈ всС ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π·Π°Π²Π΅Ρ‚Π½ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ, потрСбуСтся инфраструктура. И ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ с Ρ†Π΅Π½Π½ΠΈΠΊΠΎΠΌ ΠΎΡ‚ самолёта. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сразу ориСнтируСмся Π½Π° Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ с минимальной кастомизациСй.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²ΠΈΠ΄Π΅ΠΎ β€” FFmpeg, кроссплатформСнная консольная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, которая Ρ‡Π΅Ρ€Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ позволяСт ΠΈ Π½Π°Ρ€Π΅Π·Π°Ρ‚ΡŒ, ΠΈ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Π·Π²ΡƒΠΊ. Π”Π΅Π»ΠΎ Π·Π° ΠΌΠ°Π»Ρ‹ΠΌ β€” Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΡƒ ΠΈ Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Ρ‘ Π² Тизнь. ПишСм ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ склСиваСт Π΄Π²Π° Π²ΠΈΠ΄Π΅ΠΎ, и… начинаСтся самоС интСрСсноС. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° .NET Core 2, Π΄ΠΎΠ»ΠΆΠ½Π° ΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒΡΡ Π½Π° любой Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ΅, поэтому Π±Π΅Ρ€Ρ‘ΠΌ инстанс AWS EC2 ΠΈ всё Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ тСкстнСт, Π½Π΅ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚
.
FFmpeg Ρ…ΠΎΡ‚ΡŒ ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ, Π½ΠΎ для Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π•Π‘2 инстанс, ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для Π½Π΅Π³ΠΎ ΡΠ΅Ρ‚Π΅Π²ΡƒΡŽ инфраструктуру, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Load Balancer. ΠŸΡ€ΠΎΡΡ‚Π°Ρ Π·Π°Π΄Π°Ρ‡Π° ΠΏΠΎ дСплою с нуля Β«Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎΒ» услоТняСтся, Π° инфраструктура Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ дСньги Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ β€” ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ час с клиСнтского счёта снимаСтся сумма Π·Π° Ρ€Π°Π½Ρ‚Π°ΠΉΠΌ.

Наш сСрвис Π½Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Long-Running процСссов, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большой ΠΈ ΠΆΠΈΡ€Π½ΠΎΠΉ рСляционной Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ прСкрасно укладываСтся Π² ΡΠΎΠ±Ρ‹Ρ‚ΠΈΠΉΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ с Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² микросСрвисов. РСшСниС Π½Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ само собой β€” ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π•Π‘2 ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ true-serverless ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ стандартных Image Resizer Π½Π° Π±Π°Π·Π΅ AWS Lambda.

ΠšΡΡ‚Π°Ρ‚ΠΈ, нСсмотря Π½Π° ΡΠ²Π½ΡƒΡŽ нСлюбовь Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² AWS ΠΊ .NET, ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ .NET Core 2.1 Π² качСствС Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ°, Ρ‡Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ спСктр возмоТностСй для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

И вишСнка Π½Π° Ρ‚ΠΎΡ€Ρ‚Π΅ β€” AWS прСдоставляСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ сСрвис для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²ΠΈΠ΄Π΅ΠΎΡ„Π°ΠΉΠ»Π°ΠΌΠΈ β€” AWS Elemental MediaConvert.

Π‘ΡƒΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ нСвСроятно проста: Π±Π΅Ρ€Ρ‘ΠΌ S3-ссылку Π½Π° исходящСС Π²ΠΈΠ΄Π΅ΠΎ, Ρ‡Π΅Ρ€Π΅Π· AWS Console, .NET SDK ΠΈΠ»ΠΈ просто JSON пишСм, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ сСрвис. Он сам Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ входящих запросов, сам Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² S3 ΠΈ, самоС Π³Π»Π°Π²Π½ΠΎΠ΅, Π³Π΅Π½Π΅Ρ€ΠΈΡ‚ CloudWatch Event Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ смСну статуса. Π­Ρ‚ΠΎ позволяСт Π½Π°ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ лямбда-Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ Π½Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ процСссинга Π²ΠΈΠ΄Π΅ΠΎ.

Serverless-ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π²ΠΈΠ΄Π΅ΠΎ-сСрвиса
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ выглядит Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹

Π’Π΅ΡΡŒ бэкСнд размСщаСтся Π² Π΄Π²ΡƒΡ… лямбдах. Π•Ρ‰Ρ‘ ΠΎΠ΄Π½Π° β€” для Ρ€ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²ΠΈΠ΄Π΅ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ такая Ρ€Π°Π±ΠΎΡ‚Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄.

Π€Ρ€ΠΎΠ½Ρ‚ Π² Π²ΠΈΠ΄Π΅ SPA-прилоТСния, написанного Π½Π° JS ΠΈ скомпилСнного Ρ‡Π΅Ρ€Π΅Π· pug, размСстим Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΉ S3 ΠΊΠΎΡ€Π·ΠΈΠ½Π΅. Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ самих Π²ΠΈΠ΄Π΅ΠΎ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ сСрвСрный ΠΊΠΎΠ΄ β€” достаточно ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ REST-эндпоинты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ S3. ЕдинствСнный ΠΌΠΎΠΌΠ΅Π½Ρ‚ β€” Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΈ CORS.

ΠŸΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ

  • AWS MediaConvert ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π½Π΅Π²Π΅Π΄ΠΎΠΌΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ Π·Π²ΡƒΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²ΠΈΠ΄Π΅ΠΎΡ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° задорная пСсня ΠΈΠ· заставки Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ.
  • Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π²ΠΈΠ΄Π΅ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. AWS Π½Π΅ Π»ΡŽΠ±ΠΈΡ‚ Ρ‡Ρ‘Ρ€Π½Ρ‹Π΅ полосы ΠΈ ΠΊΠ»Π°Π΄Ρ‘Ρ‚ Ρ€ΠΎΠ»ΠΈΠΊΠΈ Π½Π° 90Β°.

Изи ΠΊΠ°Ρ‚ΠΊΠ°

НСсмотря Π½Π° всю красоту Stateless, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ трСбуСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с Π²ΠΈΠ΄Π΅ΠΎ: ΡΠΊΠ»Π΅ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π½Π°Π»ΠΎΠΆΠΈΡ‚ΡŒ Π·Π²ΡƒΠΊ Π½Π° ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ видСоряд. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, MediaConvert ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· свои Job, ΠΈ ΠΌΡ‹ всСгда ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ простой Ρ„Π»Π°Π³ ΠΏΠΎ Π²ΠΈΠ΄Ρƒ β€œisMasterSoundJob”, распарсив эти ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° любом этапС.

Serverless ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ NoOps β€” ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅ΠΉ Π·Π° инфраструктуру ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π΅Π»ΠΎ Π±Ρ‹Π»ΠΎ Π·Π° ΠΌΠ°Π»Ρ‹ΠΌ β€” Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° AWS Π±Π΅Π· участия сисадминов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ всСгда ΠΈ Ρ‚Π°ΠΊ Π΅ΡΡ‚ΡŒ Ρ‡Π΅ΠΌ Π·Π°Π½ΡΡ‚ΡŒΡΡ.
А Ρ‡Ρ‚ΠΎΠ±Ρ‹ всё это ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ, максимально Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Π΄Π΅ΠΏΠ»ΠΎΠΉ скриптом Π½Π° AWS CloudFormation, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌ Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ прямо ΠΈΠ· VS. Π’ ΠΈΡ‚ΠΎΠ³Π΅, Ρ„Π°ΠΉΠ» Π½Π° 200 строк ΠΊΠΎΠ΄Π° позволяСт Π²Ρ‹ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, хотя ΠΈ синтаксис CloudFormation с Π½Π΅ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡˆΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Π˜Ρ‚ΠΎΠ³ΠΎ

Serverless β€” Π½Π΅ панацСя. Но сильно ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ Тизнь Π² ситуациях с трСмя Π»ΠΈΠΌΠΈΡ‚Π°ΠΌΠΈ: Β«ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ рСсурсы—короткий срок—мало Π΄Π΅Π½Π΅Π³Β».

Π₯арактСристики ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Serverless

  • Π±Π΅Π· Long-Running процСссов. Π₯Π°Ρ€Π΄ Π»ΠΈΠΌΠΈΡ‚ API Gateway β€” 29 сСкунд, Ρ…Π°Ρ€Π΄ Π»ΠΈΠΌΠΈΡ‚ лямбды β€” 5 ΠΌΠΈΠ½ΡƒΡ‚;
  • описываСтся Event-Driven Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ;
  • разбиваСтся Π½Π° слабосвязанныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ SOA;
  • Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большой Ρ€Π°Π±ΠΎΡ‚Ρ‹ со своим состояниСм;
  • написано Π½Π° .NET Core. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с .NET Framework ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ потрСбуСтся ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Docker с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠΎΠΌ.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° Serverless-ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°

  • сниТаСт Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° инфраструктуру;
  • сниТаСт Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° доставку Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ;
  • автоматичСская ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ;
  • Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° остриС тСхничСского прогрСсса.

НСдостатки, Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅

  • РаспрСдСлённый трСйсинг ΠΈ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” частично Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· AWS X-Ray ΠΈ AWS CloudWatch;
  • нСудобная ΠΎΡ‚Π»Π°Π΄ΠΊΠ°;
  • Cold Start ΠΏΡ€ΠΈ отсутствии Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ;
  • User-hostile интСрфСйс AWS β€” ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° πŸ™‚

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com