ڪم ڪندڙ ويڊيو سروس جي تيز رفتار ترقي لاءِ بي سرور طريقو

ڪم ڪندڙ ويڊيو سروس جي تيز رفتار ترقي لاءِ بي سرور طريقو

آئون آئوٽ سورسنگ ۾ ڪم ڪريان ٿو، جتي بنيادي اصول بيان ڪري سگهجي ٿو جملي "گهڻو وڪڻو، جلدي ڪريو." جيترو جلدي اسين ڪنداسون، اوترو وڌيڪ ڪمائينداسين. ۽، اهو ضروري آهي ته هر شي ڪم ڪري نه ڪيچ ۽ سنوٽ تي، پر معيار جي قابل قبول سطح سان. مان توهان کي پنهنجي تجربي جي باري ۾ ٻڌايان ٿو جڏهن مختصر وقت ۾ هڪ پروموشنل سروس کي ترقي ڪرڻ ضروري هئي.

ڏنو ويو: AWS تي روٽ اڪائونٽ، ٽيڪنالاجي اسٽيڪ جي چونڊ تي ڪابه پابنديون، هڪ پس منظر، ۽ ترقي لاء هڪ مهينو.

ٽاسڪ هڪ پروموشنل سروس لاڳو ڪريو جتي صارفين هڪ کان چار وڊيوز اپلوڊ ڪندا آهن جيڪي هڪ کان چار سيڪنڊن تائين هونديون آهن، جيڪي پوءِ اصل وڊيو سيريز ۾ شامل ڪيون وينديون آهن.

فيصلو

اهڙي مختصر وقت ۾ پنهنجي سائيڪل جي سروس لکڻ سٺو خيال نه آهي. اضافي طور تي، خدمت لاء لوڊ کي منهن ڏيڻ ۽ هر ڪنهن لاء گهربل وڊيو حاصل ڪرڻ لاء، انفراسٹرڪچر جي ضرورت پوندي. ۽ ترجيحي طور تي جهاز جي قيمت جي ٽيگ سان نه. تنهن ڪري، اسان فوري طور تي گهٽ ۾ گهٽ ڪسٽمائيزيشن سان تيار ڪيل حل تي ڌيان ڏين ٿا.

ويڊيو سان ڪم ڪرڻ لاءِ معياري حل آهي FFmpeg، هڪ ڪراس پليٽ فارم ڪنسول يوٽيليٽي جيڪا، دليلن جي ذريعي، توهان کي آڊيو کي ڪٽڻ ۽ اوورڊب ڪرڻ جي اجازت ڏئي ٿي. اهو سڀ ڪجهه ڪرڻ لاءِ رهجي ويو آهي هڪ لفافي لکڻ ۽ ان کي زندگي ۾ ڇڏڻ. اسان هڪ پروٽوٽائپ لکون ٿا جيڪو ٻن وڊيوز کي گڏ ڪري ٿو، ۽... مزو شروع ٿئي ٿو. لائبريري .NET ڪور 2 تي ٻڌل آهي، ان کي ڪنهن به ورچوئل مشين تي هلڻ گهرجي، تنهنڪري اسان AWS EC2 مثال وٺون ٿا ۽ سڀ ڪجهه ڪم ڪندو.

لڪيل متننه، اهو ڪم نه ڪندو
.
جيتوڻيڪ FFmpeg ڪم کي آسان بڻائي ٿو، واقعي ڪم ڪندڙ حل لاءِ توهان کي هڪ EC2 مثال ٺاهڻ ۽ ان لاءِ هڪ نيٽ ورڪ انفراسٽرڪچر ڊزائين ڪرڻ جي ضرورت آهي، بشمول لوڊ بيلنسر. شروع کان ترتيب ڏيڻ جو سادو ڪم ”ٿورو“ وڌيڪ پيچيده ٿي وڃي ٿو، ۽ انفراسٽرڪچر فوري طور تي پئسن جي طلب ڪرڻ شروع ڪري ٿو - هر ڪلاڪ رن ٽائم لاءِ رقم ڪلائنٽ اڪائونٽ مان ڪڍيو وڃي ٿو.

اسان جي خدمت ۾ ڊگھي ھلندڙ عملن ۾ شامل نه آھي، وڏي ۽ ٿلهي لاڳاپي واري ڊيٽابيس جي ضرورت نه آھي، ۽ مائيڪرو سروس ڪالن جي زنجير سان ايونٽ بيسڊ آرڪيٽيڪچر ۾ مڪمل طور تي ٺھيل آھي. حل پاڻ کي پيش ڪري ٿو - اسان EC2 کي ڇڏي ڏيو ۽ هڪ سچي سرور واري ايپليڪيشن کي لاڳو ڪري سگهون ٿا، جهڙوڪ AWS Lambda جي بنياد تي معياري تصويري ريزيزر.

رستي ۾، .NET لاءِ AWS ڊولپرز جي واضح ناپسنديدگي جي باوجود، اهي .NET ڪور 2.1 کي رن ٽائم جي طور تي سپورٽ ڪن ٿا، جيڪو ترقي جي موقعن جي مڪمل رينج مهيا ڪري ٿو.

۽ ڪيڪ تي چيري - AWS وڊيو فائلن سان ڪم ڪرڻ لاءِ الڳ خدمت مهيا ڪري ٿي - AWS Elemental MediaConvert.

ڪم جو خلاصو ناقابل یقین حد تائين سادو آهي: اسان ٻاهر نڪرندڙ وڊيو لاءِ S3 لنڪ وٺون ٿا، AWS ڪنسول ذريعي لکون ٿا، .NET SDK يا صرف JSON جيڪو اسان وڊيو سان ڪرڻ چاهيون ٿا ۽ خدمت کي ڪال ڪريو. اهو پاڻ ايندڙ ايندڙ درخواستن جي پروسيسنگ لاءِ قطارن کي لاڳو ڪري ٿو، نتيجو اپلوڊ ڪري ٿو پاڻ S3 تي ۽، سڀ کان اهم، هر اسٽيٽس جي تبديلي لاءِ CloudWatch واقعو ٺاهي ٿو. هي اسان کي وڊيو پروسيسنگ مڪمل ڪرڻ لاءِ لامبڊا ٽرگرز کي لاڳو ڪرڻ جي اجازت ڏئي ٿو.

ڪم ڪندڙ ويڊيو سروس جي تيز رفتار ترقي لاءِ بي سرور طريقو
هي اهو آهي جيڪو آخري فن تعمير وانگر ڏسڻ ۾ اچي ٿو:

سڄو پس منظر ٻن لامڊاس ۾ رکيل آهي. ٻيو هڪ عمودي وڊيوز کي گھمائڻ لاءِ آهي، ڇاڪاڻ ته اهڙو ڪم هڪ پاس ۾ نٿو ٿي سگهي.

اسان اڳيان رکينداسين SPA ايپليڪيشن جي صورت ۾ JS ۾ لکيل ۽ گڏ ڪيل پگ ذريعي پبلڪ S3 بالٽ ۾. پاڻ وڊيوز ڊائون لوڊ ڪرڻ لاءِ، اسان کي ڪنهن به سرور ڪوڊ جي ضرورت ناهي - اسان کي صرف REST آخر پوائنٽ کولڻ جي ضرورت آهي جيڪا S3 اسان کي فراهم ڪري ٿي. صرف شيءِ آهي پاليسين ۽ CORS کي ترتيب ڏيڻ نه وساريو.

نقصان

  • AWS MediaConvert، ڪجهه اڻڄاتل سببن جي ڪري، صرف آواز هر وڊيو جي ٽڪري تي الڳ الڳ لاڳو ٿئي ٿو، پر اسان کي پوري اسڪرين سيور مان هڪ خوشگوار گيت جي ضرورت آهي.
  • عمودي وڊيوز کي الڳ الڳ پروسيس ڪرڻ جي ضرورت آهي. AWS ڪارا بار پسند نٿو ڪري ۽ رولرز کي 90 ° تي رکي ٿو.

آسان اسڪيٽنگ رينک

بي رياست جي تمام خوبصورتي جي باوجود، توهان کي ٽريڪ رکڻ جي ضرورت آهي ته وڊيو سان ڇا ڪرڻ جي ضرورت آهي: گلو يا آڊيو شامل ڪريو ختم ٿيل وڊيو ترتيب ۾. خوشقسمتيءَ سان، MediaConvert پنهنجي جاب ذريعي ميٽاڊيٽا کي پاس ڪرڻ جي حمايت ڪري ٿو، ۽ اسان هميشه استعمال ڪري سگهون ٿا هڪ سادي پرچم جو فارم “isMasterSoundJob”، ڪنهن به اسٽيج تي هن ميٽا ڊيٽا کي پارس ڪندي.

سرور بي ترتيب مڪمل طور تي NoOps سان ڪم ڪرڻ جي اجازت ڏئي ٿو - هڪ اهڙو طريقو جيڪو فرض ڪري ٿو هڪ الڳ ٽيم جي غير ضرورييت کي پروجيڪٽ جي انفراسٽرڪچر لاءِ ذميوار. تنهن ڪري، اهو هڪ ننڍڙو معاملو هو - اسان سسٽم منتظمين جي شموليت کان سواء AWS تي حل کي ترتيب ڏيو ٿا، جن کي هميشه ڪجهه ڪرڻو آهي.
۽ ان سڀني کي تيز ڪرڻ لاءِ، اسان ڊيپلائيمينٽ اسڪرپٽ کي خودڪار ڪريون ٿا جيترو ٿي سگهي AWS CloudFormation تي، جيڪو توهان کي VS کان سڌو هڪ بٽڻ سان لڳائڻ جي اجازت ڏئي ٿو. نتيجي طور، ڪوڊ جي 200 لائنن جو هڪ فائل توهان کي تيار ڪيل حل ڪڍڻ جي اجازت ڏئي ٿو، جيتوڻيڪ CloudFormation نحو حيران ٿي سگهي ٿو جيڪڏهن توهان ان جي عادي نه آهيو.

ڪل

بي سرور ڪو به علاج نه آهي. پر اهو زندگي کي وڌيڪ آسان بڻائي ڇڏيندو حالتن ۾ ٽن حدن سان: ”محدود وسيلا- مختصر مدت- ٿورو پئسو.

ايپليڪيشنن جون خاصيتون جيڪي بي سرور لاءِ مناسب آهن

  • بغير ڊگھي هلندڙ عملن جي. API گيٽ وي جي سخت حد 29 سيڪنڊ آهي، ليمبڊا سخت حد 5 منٽ آهي؛
  • ايونٽ-ڊرائيو آرڪيٽيڪچر پاران بيان ڪيل؛
  • SOA وانگر لوز سان ملندڙ اجزاء ۾ ورهايو وڃي ٿو؛
  • توهان جي حالت سان گهڻو ڪم جي ضرورت ناهي؛
  • .NET ڪور ۾ لکيل آهي. .NET فريم ورڪ سان ڪم ڪرڻ لاءِ، توھان کي اڃا تائين گھٽ ۾ گھٽ Docker جي ضرورت پوندي مناسب رن ٽائم سان.

سرور جي بغير طريقي جا فائدا

  • انفراسٹرڪچر جي قيمت گھٽائي ٿي؛
  • حل پهچائڻ جي قيمت گھٽائي ٿي؛
  • خودڪار scalability؛
  • ٽيڪنالاجي ترقي جي ڪٽڻ جي ڪناري تي ترقي.

نقصان، هڪ خاص مثال سان

  • ورهايل ٽريڪنگ ۽ لاگنگ - جزوي طور AWS X-Ray ۽ AWS CloudWatch ذريعي حل ڪيو ويو؛
  • تڪليف واري ڊيبگنگ؛
  • ٿڌي شروعات جڏهن ڪو لوڊ نه آهي؛
  • AWS صارف دشمن انٽرفيس هڪ عالمگير مسئلو آهي :)

جو ذريعو: www.habr.com

تبصرو شامل ڪريو