የሚሰራ የቪዲዮ አገልግሎት ፈጣን ልማት አገልጋይ አልባ አቀራረብ

የሚሰራ የቪዲዮ አገልግሎት ፈጣን ልማት አገልጋይ አልባ አቀራረብ

በውጪ ንግድ ውስጥ እሰራለሁ, ዋናው መርህ "ብዙ ይሽጡ, በፍጥነት ያድርጉት" በሚለው ሐረግ ሊገለጽ ይችላል. በፈጠነን መጠን ብዙ ገቢ እናገኛለን። እና ሁሉም ነገር በክራንች እና snot ላይ ሳይሆን ተቀባይነት ባለው የጥራት ደረጃ እንዲሠራ ይመከራል። በአጭር ጊዜ ውስጥ የማስተዋወቂያ አገልግሎትን ማዳበር ሲያስፈልግ ስለነበረኝ ልምድ እነግርዎታለሁ።

የተሰጠው፡- root መለያ በAWS ላይ፣ በቴክኖሎጂ ቁልል ምርጫ ላይ ምንም ገደብ የለም፣ አንድ ጀርባ እና አንድ ወር ለልማት።

ተግባር ተጠቃሚዎች ከአንድ እስከ አራት የሚሰቅሉበት ከአንድ እስከ አራት ሰከንድ የሚቆይ ቪዲዮዎችን የሚሰቅሉበትን የማስተዋወቂያ አገልግሎትን ይተግብሩ፣ እነዚህም በዋናው የቪዲዮ ተከታታይ ውስጥ የተካተቱት።

ዉሳኔ

የእራስዎን የብስክሌት አገልግሎት በአጭር ጊዜ ውስጥ መጻፍ ጥሩ ሀሳብ አይደለም. በተጨማሪም አገልግሎቱ ሸክሙን ለመቋቋም እና ሁሉም የተፈለገውን ቪዲዮ እንዲቀበል, መሠረተ ልማት ያስፈልጋል. እና በአውሮፕላኑ ላይ ካለው የዋጋ መለያ ጋር ሳይሆን ይመረጣል. ስለዚህ, ወዲያውኑ በትንሽ ማበጀት ዝግጁ በሆኑ መፍትሄዎች ላይ እናተኩራለን.

ከቪዲዮ ጋር ለመስራት መደበኛው መፍትሄ FFmpeg ፣የፕላትፎርም ኮንሶል መገልገያ ሲሆን ፣በክርክር ፣ኦዲዮን ለመቁረጥ እና ለመደበቅ ያስችላል። የሚቀረው ነገር መጠቅለያ መፃፍ እና ወደ ህይወት መልቀቅ ብቻ ነው። ሁለት ቪዲዮዎችን አንድ ላይ የሚያጣብቅ ፕሮቶታይፕ እንጽፋለን, እና ... ደስታው ይጀምራል. ቤተ መፃህፍቱ በ NET Core 2 ላይ የተመሰረተ ነው, በማንኛውም ቨርቹዋል ማሽን ላይ መስራት አለበት, ስለዚህ የ AWS EC2 ምሳሌን እንወስዳለን እና ሁሉም ነገር ይሰራል.

የተደበቀ ጽሑፍአይ, አይሰራም
.
ምንም እንኳን FFmpeg ተግባሩን ቀላል ቢያደርገውም፣ ለትክክለኛው መፍትሔ የ EC2 ምሳሌ መፍጠር እና ለእሱ የአውታረ መረብ መሠረተ ልማት መንደፍ ፣ የጭነት ሚዛንን ጨምሮ። ከባዶ የማሰማራት ቀላል ተግባር “ትንሽ” የበለጠ የተወሳሰበ ይሆናል ፣ እና መሠረተ ልማቱ ወዲያውኑ ገንዘብ መፈለግ ይጀምራል - በየሰዓቱ የሩጫ ጊዜ መጠን ከደንበኛው መለያ ይወጣል።

አገልግሎታችን የረዥም ጊዜ ሂደቶችን አያካትትም፣ ትልቅ እና ወፍራም ተዛማጅ የውሂብ ጎታ አይፈልግም፣ እና በማይክሮ አገልግሎት ጥሪዎች ሰንሰለት ካለው ክስተት-ተኮር አርክቴክቸር ጋር በትክክል ይጣጣማል። መፍትሄው እራሱን ይጠቁማል - EC2 ን ትተን እውነተኛ አገልጋይ አልባ መተግበሪያን መተግበር እንችላለን፣ ልክ እንደ በAWS Lambda ላይ የተመሰረተ መደበኛ ምስል ማስተካከያ።

በነገራችን ላይ የAWS ገንቢዎች ለ NET ግልጽ ባይሆኑም .NET Core 2.1 እንደ runtime ይደግፋሉ ይህም የተሟላ የልማት እድሎችን ይሰጣል።

እና በኬክ ላይ ያለው ቼሪ - AWS ከቪዲዮ ፋይሎች ጋር ለመስራት የተለየ አገልግሎት ይሰጣል - AWS Elemental MediaConvert.

የስራው ይዘት በሚያስደንቅ ሁኔታ ቀላል ነው፡ ወደሚወጣው ቪዲዮ የS3 ሊንክ እንይዛለን፣ በAWS Console፣ .NET SDK ወይም በቀላሉ በቪዲዮው ምን ማድረግ እንደምንፈልግ እና አገልግሎቱን እንጥራለን። እሱ ራሱ ገቢ ጥያቄዎችን ለማስኬድ ወረፋዎችን ተግባራዊ ያደርጋል፣ ውጤቱን በራሱ ወደ S3 ይሰቀላል እና ከሁሉም በላይ ደግሞ ለእያንዳንዱ የሁኔታ ለውጥ CloudWatch Event ይፈጥራል። ይህ የቪዲዮ ሂደትን ለማጠናቀቅ ላምዳ ቀስቅሴዎችን እንድንተገብር ያስችለናል.

የሚሰራ የቪዲዮ አገልግሎት ፈጣን ልማት አገልጋይ አልባ አቀራረብ
የመጨረሻው ሥነ ሕንፃ ይህንን ይመስላል።

የጀርባው ክፍል በሙሉ በሁለት ላምዳዎች ውስጥ ተቀምጧል። ሌላው ደግሞ ቀጥ ያሉ ቪዲዮዎችን ለማዞር ነው, ምክንያቱም እንዲህ ዓይነቱ ሥራ በአንድ ማለፊያ ውስጥ ሊሠራ አይችልም.

ፊት ለፊት በJS የተጻፈ እና በፑግ የተጠናቀረ በ SPA ማመልከቻ መልክ በህዝብ S3 ባልዲ ውስጥ እናስቀምጣለን። ቪዲዮዎቹን እራሳቸው ለማውረድ ምንም የአገልጋይ ኮድ አያስፈልገንም - S3 የሚሰጠንን የ REST የመጨረሻ ነጥቦችን መክፈት ብቻ ያስፈልገናል። ብቸኛው ነገር ፖሊሲዎችን እና CORS ማዋቀርን አይርሱ.

ልንርቃቸው

  • AWS MediaConvert፣ ባልታወቀ ምክንያት፣ ድምጽን ለእያንዳንዱ ቪዲዮ ቁርሾ ብቻ ነው የሚተገበረው፣ ነገር ግን ከመላው ስክሪን ቆጣቢ ደስ የሚል ዘፈን እንፈልጋለን።
  • አቀባዊ ቪዲዮዎችን በተናጠል ማካሄድ ያስፈልጋል። AWS ጥቁር አሞሌዎችን አይወድም እና ሮለቶቹን በ90° ላይ ያስቀምጣል።

ቀላል የበረዶ መንሸራተቻ ሜዳ

ምንም እንኳን ሀገር አልባ ውበት ቢኖረውም ፣ በቪዲዮው ምን መደረግ እንዳለበት መከታተል ያስፈልግዎታል: ሙጫ ወይም ድምጽ በተጠናቀቀው የቪዲዮ ቅደም ተከተል ላይ ይጨምሩ። እንደ እድል ሆኖ፣ MediaConvert ሜታዳታን በስራዎቹ ውስጥ ማለፍን ይደግፋል፣ እና ሁልጊዜም “isMasterSoundJob” የሚል ቅጽ ቀላል ባንዲራ ልንጠቀም እንችላለን፣ ይህንን ሜታዳታ በማንኛውም ደረጃ እንመረምራለን።

አገልጋይ አልባ ከኖኦፕስ ጋር አብሮ መስራትን ይፈቅዳል - ይህ አካሄድ ለፕሮጀክት መሠረተ ልማት ኃላፊነት ያለው የተለየ ቡድን አላስፈላጊ መሆኑን የሚወስድ ነው። ስለዚህ, ትንሽ ጉዳይ ነበር - እኛ ሁልጊዜ ለማንኛውም ማድረግ የሆነ ነገር ያላቸው የስርዓት አስተዳዳሪዎች ተሳትፎ ያለ AWS ላይ መፍትሄ, እናሰማራለን.
እና ይህን ሁሉ ለማፋጠን በተቻለ መጠን በAWS CloudFormation ላይ የማሰማራቱን ስክሪፕት በራስ ሰር እናሰራዋለን፣ይህም በአንድ ቁልፍ በቀጥታ ከቪኤስ ጋር ለማሰማራት ያስችላል። በውጤቱም, የ 200 ኮድ መስመሮች ፋይል ዝግጁ የሆነ መፍትሄ ለማውጣት ያስችልዎታል, ምንም እንኳን የ CloudFormation አገባብ እርስዎ ካልተለማመዱት አስደንጋጭ ሊሆን ይችላል.

ԸՆԴՀԱՆՈՒՐ ԳԻՆ

አገልጋይ አልባ መድኃኒት አይደለም። ነገር ግን በሦስት ገደቦች ውስጥ ሕይወትን በጣም ቀላል ያደርገዋል-“የተገደበ ሀብቶች—የአጭር ጊዜ - ትንሽ ገንዘብ”።

ለአገልጋይ አልባ ተስማሚ የሆኑ የመተግበሪያዎች ባህሪያት

  • ያለ ረጅም አሂድ ሂደቶች. API Gateway የሃርድ ወሰን 29 ሰከንድ ነው፣ lambda hard limit is 5 minutes;
  • በክስተት-ተኮር አርክቴክቸር የተገለፀው;
  • እንደ SOA ባሉ ያልተጣመሩ ክፍሎች ይከፋፈላል;
  • ከእርስዎ ሁኔታ ጋር ብዙ ስራ አይፈልግም;
  • በ NET Core ተፃፈ። ከ NET Framework ጋር ለመስራት አሁንም ቢሆን ከተገቢው የሩጫ ጊዜ ጋር ቢያንስ Docker ያስፈልግዎታል።

የአገልጋይ አልባ አቀራረብ ጥቅሞች

  • የመሠረተ ልማት ወጪዎችን ይቀንሳል;
  • መፍትሄውን የማቅረብ ወጪን ይቀንሳል;
  • አውቶማቲክ ማመጣጠን;
  • በቴክኖሎጂ እድገት ጫፍ ላይ እድገት.

ጉዳቶች ፣ ከተወሰነ ምሳሌ ጋር

  • የተከፋፈለ ፍለጋ እና ምዝግብ ማስታወሻ - በከፊል በ AWS X-Ray እና AWS CloudWatch ተፈትቷል;
  • የማይመች ማረም;
  • ምንም ጭነት በማይኖርበት ጊዜ ቀዝቃዛ ጅምር;
  • AWS ተጠቃሚ-ጠላት በይነገጽ ሁለንተናዊ ችግር ነው :)

ምንጭ: hab.com

አስተያየት ያክሉ