ื’ื™ืฉื” ืœืœื ืฉืจืช ืœืคื™ืชื•ื— ืžื”ื™ืจ ืฉืœ ืฉื™ืจื•ืช ื•ื™ื“ืื• ืขื•ื‘ื“

ื’ื™ืฉื” ืœืœื ืฉืจืช ืœืคื™ืชื•ื— ืžื”ื™ืจ ืฉืœ ืฉื™ืจื•ืช ื•ื™ื“ืื• ืขื•ื‘ื“

ืื ื™ ืขื•ื‘ื“ ื‘ืžื™ืงื•ืจ ื—ื•ืฅ, ื›ืืฉืจ ื”ืขื™ืงืจื•ืŸ ื”ืขื™ืงืจื™ ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžืชื•ืืจ ื‘ืžืฉืคื˜ "ืœืžื›ื•ืจ ื”ืจื‘ื”, ืœืขืฉื•ืช ืืช ื–ื” ืžื”ืจ". ื›ื›ืœ ืฉื ืขืฉื” ื–ืืช ืžื”ืจ ื™ื•ืชืจ, ื›ืš ื ืจื•ื•ื™ื— ื™ื•ืชืจ. ื•ื›ืŸ, ืจืฆื•ื™ ืฉื”ื›ืœ ื™ืขื‘ื•ื“ ืœื ืขืœ ืงื‘ื™ื™ื ื•ื ื•ื–ืœื™ื, ืืœื ื‘ืจืžืช ืื™ื›ื•ืช ืžืงื•ื‘ืœืช. ืืกืคืจ ืœื›ื ืขืœ ื”ื ื™ืกื™ื•ืŸ ืฉืœื™ ื›ืืฉืจ ื”ื™ื” ืฆื•ืจืš ืœืคืชื— ืฉื™ืจื•ืช ืงื™ื“ื•ื ืžื›ื™ืจื•ืช ื‘ืคืจืง ื–ืžืŸ ืงืฆืจ.

ื‘ื”ืชื—ืฉื‘ you ื—ืฉื‘ื•ืŸ ืฉื•ืจืฉ ื‘-AWS, ืœืœื ื”ื’ื‘ืœื•ืช ืขืœ ื‘ื—ื™ืจืช ืขืจื™ืžืช ื˜ื›ื ื•ืœื•ื’ื™ื”, ืงืฆื” ืื—ื•ืจื™ ื•ื—ื•ื“ืฉ ืื—ื“ ืœืคื™ืชื•ื—.

ืžืฉื™ืžื”: ืœื™ื™ืฉื ืฉื™ืจื•ืช ืงื™ื“ื•ื ืžื›ื™ืจื•ืช ืฉื‘ื• ืžืฉืชืžืฉื™ื ืžืขืœื™ื ื‘ื™ืŸ ืกืจื˜ื•ืŸ ืื—ื“ ืœืืจื‘ืขื” ืกืจื˜ื•ื ื™ื ืฉื ืžืฉื›ื™ื ื‘ื™ืŸ ืฉื ื™ื™ื” ืœืืจื‘ืข ืฉื ื™ื•ืช, ืืฉืจ ืžื•ื˜ืžืขื™ื ืœืื—ืจ ืžื›ืŸ ื‘ืกื“ืจืช ื”ืกืจื˜ื•ื ื™ื ื”ืžืงื•ืจื™ืช.

ื”ื—ืœื˜ื”

ืœื›ืชื•ื‘ ืฉื™ืจื•ืช ืื•ืคื ื™ื™ื ืžืฉืœืš ื‘ื–ืžืŸ ื›ืœ ื›ืš ืงืฆืจ ื–ื” ืœื ืจืขื™ื•ืŸ ื˜ื•ื‘. ื‘ื ื•ืกืฃ, ืขืœ ืžื ืช ืฉื”ืฉื™ืจื•ืช ื™ืขืžื•ื“ ื‘ืขื•ืžืก ื•ืฉื›ื•ืœื ื™ืงื‘ืœื• ืืช ื”ืกืจื˜ื•ืŸ ื”ื ื›ืกืฃ, ืชื™ื“ืจืฉ ืชืฉืชื™ืช. ื•ืจืฆื•ื™ ืœื ืขื ืชื’ ื”ืžื—ื™ืจ ืžื”ืžื˜ื•ืก. ืœื›ืŸ, ืื ื• ืžืชืžืงื“ื™ื ืžื™ื“ ื‘ืคืชืจื•ื ื•ืช ืžื•ื›ื ื™ื ื‘ื”ืชืืžื” ืื™ืฉื™ืช ืžื™ื ื™ืžืœื™ืช.

ื”ืคืชืจื•ืŸ ื”ืกื˜ื ื“ืจื˜ื™ ืœืขื‘ื•ื“ื” ืขื ื•ื™ื“ืื• ื”ื•ื FFmpeg, ื›ืœื™ ืขื–ืจ ืœืงื•ื ืกื•ืœื•ืช ื—ื•ืฆื•ืช ืคืœื˜ืคื•ืจืžื•ืช, ืฉื‘ืืžืฆืขื•ืช ื˜ื™ืขื•ื ื™ื, ืžืืคืฉืจ ืœืš ืœื—ืชื•ืš ื•ืœื“ื•ื‘ื‘ ืื•ื“ื™ื•. ื›ืœ ืžื” ืฉื ื•ืชืจ ืœืขืฉื•ืช ื”ื•ื ืœื›ืชื•ื‘ ืขื˜ื™ืคื” ื•ืœืฉื—ืจืจ ืื•ืชื” ืœื—ื™ื™ื. ืื ื—ื ื• ื›ื•ืชื‘ื™ื ืื‘ ื˜ื™ืคื•ืก ืฉืžื—ื‘ืจ ืฉื ื™ ืกืจื˜ื•ื ื™ื ื‘ื™ื—ื“, ื•...ื”ื›ื™ืฃ ืžืชื—ื™ืœ. ื”ืกืคืจื™ื™ื” ืžื‘ื•ืกืกืช ืขืœ .NET Core 2, ื”ื™ื ืืžื•ืจื” ืœืคืขื•ืœ ืขืœ ื›ืœ ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช, ืื– ืื ื—ื ื• ืœื•ืงื—ื™ื ืžื•ืคืข ืฉืœ AWS EC2 ื•ื”ื›ืœ ื™ืขื‘ื•ื“

ื˜ืงืกื˜ ื ืกืชืจืœื, ื–ื” ืœื ื™ืขื‘ื•ื“
.
ืœืžืจื•ืช ืฉ-FFmpeg ืžืคืฉื˜ ืืช ื”ืžืฉื™ืžื”, ืœืคืชืจื•ืŸ ืขื•ื‘ื“ ื‘ืืžืช ืฆืจื™ืš ืœื™ืฆื•ืจ ืžื•ืคืข EC2 ื•ืœืชื›ื ืŸ ืขื‘ื•ืจื• ืชืฉืชื™ืช ืจืฉืช, ื›ื•ืœืœ Load Balancer. ื”ืžืฉื™ืžื” ื”ืคืฉื•ื˜ื” ืฉืœ โ€‹โ€‹ื”ืคืจื™ืกื” ืžืืคืก ื”ื•ืคื›ืช "ืงืฆืช" ื™ื•ืชืจ ืžืกื•ื‘ื›ืช, ื•ื”ืชืฉืชื™ืช ืžืชื—ื™ืœื” ืœื“ืจื•ืฉ ื›ืกืฃ ื‘ืื•ืคืŸ ืžื™ื™ื“ื™ - ื‘ื›ืœ ืฉืขื” ืขื’ื•ืœื” ื”ืกื›ื•ื ืขื‘ื•ืจ ื–ืžืŸ ื”ืจื™ืฆื” ื ืžืฉืš ืžื—ืฉื‘ื•ืŸ ื”ืœืงื•ื—.

ื”ืฉื™ืจื•ืช ืฉืœื ื• ืื™ื ื• ื›ืจื•ืš ื‘ืชื”ืœื™ื›ื™ื ืืจื•ื›ื™ ื˜ื•ื•ื—, ืื™ื ื• ื“ื•ืจืฉ ืžืกื“ ื ืชื•ื ื™ื ืจืœืฆื™ื•ื ื™ ื’ื“ื•ืœ ื•ืฉืžืŸ, ื•ืžืฉืชืœื‘ ื‘ืฆื•ืจื” ืžื•ืฉืœืžืช ื‘ืืจื›ื™ื˜ืงื˜ื•ืจื” ืžื‘ื•ืกืกืช ืื™ืจื•ืขื™ื ืขื ืฉืจืฉืจืช ืงืจื™ืื•ืช ืžื™ืงืจื•-ืฉื™ืจื•ืช. ื”ืคืชืจื•ืŸ ืžืฆื™ืข ืืช ืขืฆืžื• - ื ื•ื›ืœ ืœื ื˜ื•ืฉ ืืช EC2 ื•ืœื”ื˜ืžื™ืข ืืคืœื™ืงืฆื™ื” ืœืœื ืฉืจืช ืืžื™ืชื™, ื›ืžื• Image Resizer ื”ืกื˜ื ื“ืจื˜ื™ ื”ืžื‘ื•ืกืก ืขืœ AWS Lambda.

ืื’ื‘, ืœืžืจื•ืช ื”ืกืœื™ื“ื” ื”ื‘ืจื•ืจื” ืžืžืคืชื—ื™ AWS ืœ-.NET, ื”ื ืชื•ืžื›ื™ื ื‘-.NET Core 2.1 ื›ื–ืžืŸ ืจื™ืฆื”, ื”ืžืกืคืง ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ื”ื–ื“ืžื ื•ื™ื•ืช ืคื™ืชื•ื—.

ื•ื”ื“ื•ื‘ื“ื‘ืŸ ืขืœ ื”ืขื•ื’ื” - AWS ืžืกืคืงืช ืฉื™ืจื•ืช ื ืคืจื“ ืœืขื‘ื•ื“ื” ืขื ืงื‘ืฆื™ ื•ื™ื“ืื• - AWS Elemental MediaConvert.

ืžื”ื•ืช ื”ืขื‘ื•ื“ื” ืคืฉื•ื˜ื” ืœื”ืคืœื™ื: ืื ื—ื ื• ืœื•ืงื—ื™ื ืงื™ืฉื•ืจ S3 ืœืกืจื˜ื•ืŸ ื”ื™ื•ืฆื, ื›ื•ืชื‘ื™ื ื“ืจืš AWS Console, .NET SDK ืื• ืคืฉื•ื˜ JSON ืžื” ืื ื—ื ื• ืจื•ืฆื™ื ืœืขืฉื•ืช ืขื ื”ืกืจื˜ื•ืŸ ื•ืงื•ืจืื™ื ืœืฉื™ืจื•ืช. ื”ื™ื ืขืฆืžื” ืžื™ื™ืฉืžืช ืชื•ืจื™ื ืœืขื™ื‘ื•ื“ ื‘ืงืฉื•ืช ื ื›ื ืกื•ืช, ืžืขืœื” ืืช ื”ืชื•ืฆืื” ืœ-S3 ื‘ืขืฆืžื”, ื•ื”ื›ื™ ื—ืฉื•ื‘, ืžื™ื™ืฆืจืช CloudWatch Event ืขื‘ื•ืจ ื›ืœ ืฉื™ื ื•ื™ ืกื˜ื˜ื•ืก. ื–ื” ืžืืคืฉืจ ืœื ื• ืœื™ื™ืฉื ื˜ืจื™ื’ืจื™ื ืฉืœ ืœืžื‘ื“ื” ืœื”ืฉืœืžืช ืขื™ื‘ื•ื“ ื•ื™ื“ืื•.

ื’ื™ืฉื” ืœืœื ืฉืจืช ืœืคื™ืชื•ื— ืžื”ื™ืจ ืฉืœ ืฉื™ืจื•ืช ื•ื™ื“ืื• ืขื•ื‘ื“
ื›ืš ื ืจืื™ืช ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ื”ืกื•ืคื™ืช:

ื”ืงืฆื” ื”ืื—ื•ืจื™ ื›ื•ืœื• ืฉื•ื›ืŸ ื‘ืฉืชื™ ืœืžื‘ื“ื•ืช. ืื—ื“ ื ื•ืกืฃ ืžื™ื•ืขื“ ืœืกื™ื‘ื•ื‘ ืกืจื˜ื•ื ื™ื ืื ื›ื™ื™ื, ืžื›ื™ื•ื•ืŸ ืฉืœื ื ื™ืชืŸ ืœื‘ืฆืข ืขื‘ื•ื“ื” ื›ื–ื• ื‘ืžืขื‘ืจ ืื—ื“.

ืื ื• ื ืžืงื ืืช ื”ื—ื–ื™ืช ื‘ืฆื•ืจื” ืฉืœ ืืคืœื™ืงืฆื™ื™ืช SPA ื›ืชื•ื‘ื” ื‘-JS ื•ื”ื™ื“ื•ืจ ื‘ืืžืฆืขื•ืช ืคืื’ ื‘ื“ืœื™ S3 ืฆื™ื‘ื•ืจื™. ื›ื“ื™ ืœื”ื•ืจื™ื“ ืืช ื”ืกืจื˜ื•ื ื™ื ืขืฆืžื, ืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ืฉื•ื ืงื•ื“ ืฉืจืช - ืื ื—ื ื• ืจืง ืฆืจื™ื›ื™ื ืœืคืชื•ื— ืืช ื ืงื•ื“ื•ืช ื”ืงืฆื” ืฉืœ REST ืฉ-S3 ืžืกืคืง ืœื ื•. ื”ื“ื‘ืจ ื”ื™ื—ื™ื“ ื”ื•ื ืืœ ืชืฉื›ื— ืœื”ื’ื“ื™ืจ ืžื“ื™ื ื™ื•ืช ื•-CORS.

ื—ืกืจื•ื ื•ืช

  • AWS MediaConvert, ืžืกื™ื‘ื” ืœื ื™ื“ื•ืขื”, ืžื—ื™ืœ ืจืง ืกืื•ื ื“ ืขืœ ื›ืœ ืงื˜ืข ื•ื™ื“ืื• ื‘ื ืคืจื“, ืื‘ืœ ืื ื—ื ื• ืฆืจื™ื›ื™ื ืฉื™ืจ ืขืœื™ื– ืžื›ืœ ืฉื•ืžืจ ื”ืžืกืš.
  • ื™ืฉ ืœืขื‘ื“ ืกืจื˜ื•ื ื™ื ืื ื›ื™ื™ื ื‘ื ืคืจื“. AWS ืœื ืื•ื”ื‘ ืคืกื™ื ืฉื—ื•ืจื™ื ื•ืžืขืžื™ื“ ืืช ื”ื’ืœื™ืœื™ื ื‘-90ยฐ.

ืžืฉื˜ื— ื”ื—ืœืงื” ืงืœ

ืœืžืจื•ืช ื›ืœ ื”ื™ื•ืคื™ ืฉืœ Stateless, ืืชื” ืฆืจื™ืš ืœืขืงื•ื‘ ืื—ืจ ืžื” ืฉืฆืจื™ืš ืœืขืฉื•ืช ืขื ื”ืกืจื˜ื•ืŸ: ื”ื“ื‘ืง ืื• ื”ื•ืกืฃ ืื•ื“ื™ื• ืœืจืฆืฃ ื”ื•ื•ื™ื“ืื• ื”ืžื•ื’ืžืจ. ืœืžืจื‘ื” ื”ืžื–ืœ, MediaConvert ืชื•ืžื›ืช ื‘ื”ืขื‘ืจืช ืžื˜ื ื ืชื•ื ื™ื ื“ืจืš ื”ืขื‘ื•ื“ื•ืช ืฉืœื”, ื•ืื ื—ื ื• ืชืžื™ื“ ื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘ื“ื’ืœ ืคืฉื•ื˜ ื‘ืฆื•ืจืช "isMasterSoundJob", ื•ืœื ืชื— ืืช ื”ืžื˜ื ื ืชื•ื ื™ื ื”ืืœื” ื‘ื›ืœ ืฉืœื‘.

Serverless ืžืืคืฉืจ ื‘ืฆื•ืจื” ืžื•ืฉืœืžืช ืขื‘ื•ื“ื” ืขื NoOps - ื’ื™ืฉื” ื”ืžื ื™ื—ื” ืืช ื—ื•ืกืจ ื”ืฆื•ืจืš ืฉืœ ืฆื•ื•ืช ื ืคืจื“ ื”ืื—ืจืื™ ืขืœ ืชืฉืชื™ืช ื”ืคืจื•ื™ืงื˜. ืœื›ืŸ, ื–ื” ื”ื™ื” ืขื ื™ื™ืŸ ืงื˜ืŸ - ืื ื—ื ื• ืคื•ืจืกื™ื ืืช ื”ืคืชืจื•ืŸ ื‘-AWS ืœืœื ื”ืฉืชืชืคื•ืช ืฉืœ ืžื ื”ืœื™ ืžืขืจื›ืช, ืฉืžืžื™ืœื ืชืžื™ื“ ื™ืฉ ืœื”ื ืžื” ืœืขืฉื•ืช.
ื•ื›ื“ื™ ืœื”ืื™ืฅ ืืช ื›ืœ ื–ื”, ืื ื• ืžืžืฆื™ื ืืช ืกืงืจื™ืคื˜ ื”ืคืจื™ืกื” ืขื“ ื›ืžื” ืฉื ื™ืชืŸ ื‘-AWS CloudFormation, ื”ืžืืคืฉืจืช ืœืคืจื•ืก ื‘ืืžืฆืขื•ืช ื›ืคืชื•ืจ ืื—ื“ ื™ืฉื™ืจื•ืช ืž-VS. ื›ืชื•ืฆืื” ืžื›ืš, ืงื•ื‘ืฅ ืฉืœ 200 ืฉื•ืจื•ืช ืงื•ื“ ืžืืคืฉืจ ืœืš ืœื”ื•ืฆื™ื ืคืชืจื•ืŸ ืžื•ื›ืŸ, ืœืžืจื•ืช ืฉื”ืชื—ื‘ื™ืจ ืฉืœ CloudFormation ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžื–ืขื–ืข ืื ืืชื” ืœื ืจื’ื™ืœ ืืœื™ื•.

ื‘ืกืš ื”ื›ืœ

ืœืœื ืฉืจืช ื”ื•ื ืœื ืชืจื•ืคืช ืคืœื. ืื‘ืœ ื–ื” ื™ืขืฉื” ืืช ื”ื—ื™ื™ื ื”ืจื‘ื” ื™ื•ืชืจ ืงืœื™ื ื‘ืžืฆื‘ื™ื ืขื ืฉืœื•ืฉื” ื’ื‘ื•ืœื•ืช: "ืžืฉืื‘ื™ื ืžื•ื’ื‘ืœื™ื - ืœื˜ื•ื•ื— ืงืฆืจ - ื›ืกืฃ ืงื˜ืŸ."

ืžืืคื™ื™ื ื™ื ืฉืœ ื™ื™ืฉื•ืžื™ื ืžืชืื™ืžื™ื ืœืœื ืฉืจืชื™ื

  • ืœืœื ืชื”ืœื™ื›ื™ื ืืจื•ื›ื™ ื˜ื•ื•ื—. ืžื’ื‘ืœืช ื”-API Gateway ื”ื™ื 29 ืฉื ื™ื•ืช, ื”ืžื’ื‘ืœื” ื”ืงืฉื” ืฉืœ ืœืžื‘ื“ื” ื”ื™ื 5 ื“ืงื•ืช;
  • ืžืชื•ืืจ ืขืœ ื™ื“ื™ ืืจื›ื™ื˜ืงื˜ื•ืจื” ืžื•ื ื—ื” ืื™ืจื•ืขื™ื;
  • ืžืชืคืจืง ืœืจื›ื™ื‘ื™ื ืžื—ื•ื‘ืจื™ื ื‘ืื•ืคืŸ ืจื•ืคืฃ ื›ืžื• SOA;
  • ืื™ื ื• ื“ื•ืจืฉ ืขื‘ื•ื“ื” ืจื‘ื” ืขื ืžืฆื‘ืš;
  • ื›ืชื•ื‘ ื‘-.NET Core. ื›ื“ื™ ืœืขื‘ื•ื“ ืขื .NET Framework, ืขื“ื™ื™ืŸ ืชืฆื˜ืจืš ืœืคื—ื•ืช Docker ืขื ื–ืžืŸ ื”ืจื™ืฆื” ื”ืžืชืื™ื.

ื™ืชืจื•ื ื•ืช ื”ื’ื™ืฉื” ืœืœื ืฉืจืช

  • ืžืคื—ื™ืช ืืช ืขืœื•ื™ื•ืช ื”ืชืฉืชื™ืช;
  • ืžืคื—ื™ืช ืืช ืขืœื•ืช ืืกืคืงืช ื”ืคืชืจื•ืŸ;
  • ืžื“ืจื’ื™ื•ืช ืื•ื˜ื•ืžื˜ื™ืช;
  • ืคื™ืชื•ื— ื‘ื—ื•ื“ ื”ื—ื ื™ืช ืฉืœ ื”ืงื™ื“ืžื” ื”ื˜ื›ื ื•ืœื•ื’ื™ืช.

ื—ืกืจื•ื ื•ืช, ืขื ื“ื•ื’ืžื” ืกืคืฆื™ืคื™ืช

  • ืžืขืงื‘ ื•ืจื™ืฉื•ื ืžื‘ื•ื–ืจ - ื ืคืชืจื• ื—ืœืงื™ืช ื‘ืืžืฆืขื•ืช AWS X-Ray ื•-AWS CloudWatch;
  • ื ื™ืคื•ื™ ื‘ืื’ื™ื ืœื ื ื•ื—;
  • ื”ืชื—ืœื” ืงืจื” ื›ืืฉืจ ืื™ืŸ ืขื•ืžืก;
  • ืžืžืฉืง ืžืฉืชืžืฉ ืขื•ื™ืŸ ืฉืœ AWS ื”ื•ื ื‘ืขื™ื” ืื•ื ื™ื‘ืจืกืœื™ืช :)

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”