အလုပ်လုပ်နေသော ဗီဒီယိုဝန်ဆောင်မှု၏ လျင်မြန်စွာ ဖွံ့ဖြိုးတိုးတက်မှုအတွက် ဆာဗာမဲ့ချဉ်းကပ်မှု

အလုပ်လုပ်နေသော ဗီဒီယိုဝန်ဆောင်မှု၏ လျင်မြန်စွာ ဖွံ့ဖြိုးတိုးတက်မှုအတွက် ဆာဗာမဲ့ချဉ်းကပ်မှု

"အများကြီးရောင်းပါ၊ မြန်မြန်လုပ်ပါ" ဟူသောစကားစုဖြင့် အဓိကနိယာမကို ဖော်ပြနိုင်သည့် ပြင်ပအရင်းအမြစ်လုပ်ငန်းတွင် ကျွန်ုပ်လုပ်ဆောင်ပါသည်။ မြန်မြန်လုပ်လေ၊ များများရလေပါပဲ။ ပြီးတော့ အရာအားလုံးဟာ ချိုင်းထောက်နဲ့ နှပ်ချေးတွေပေါ်မှာမဟုတ်ဘဲ လက်ခံနိုင်လောက်တဲ့ အရည်အသွေးနဲ့ လုပ်ဆောင်ရတာ နှစ်လိုဖွယ်ကောင်းတယ်။ အချိန်တိုအတွင်း ပရိုမိုးရှင်းဝန်ဆောင်မှုတစ်ခု ဖော်ဆောင်ရန် လိုအပ်သည့်အခါတွင် ကျွန်ုပ်၏အတွေ့အကြုံကို ပြောပြပါမည်။

ပေးထားသော: AWS ရှိ root အကောင့်၊ နည်းပညာ stack ရွေးချယ်မှုအပေါ်ကန့်သတ်ချက်များမရှိပါ၊ နောက်ခံတစ်ခုနှင့်ဖွံ့ဖြိုးတိုးတက်မှုအတွက်တစ်လ။

အလုပ်တစ်ခု အသုံးပြုသူများသည် တစ်စက္ကန့်မှ လေးစက္ကန့်အထိ ကြာရှည်သော ဗီဒီယိုတစ်ကားမှ လေးပုံအထိ အပ်လုဒ်လုပ်သည့် ပရိုမိုးရှင်းဝန်ဆောင်မှုကို အကောင်အထည်ဖော်ပါ၊ ထို့နောက် မူရင်းဗီဒီယိုစီးရီးတွင် ထည့်သွင်းထားသည်။

ဆုံးဖြတ်ချက်

သင့်ကိုယ်ပိုင်စက်ဘီးဝန်ဆောင်မှုကို အချိန်တိုအတွင်း ရေးသားခြင်းသည် ကောင်းသောအကြံမဟုတ်ပါ။ ထို့အပြင်၊ ဝန်ဆောင်ခကိုထိန်းကျောင်းရန်နှင့် လိုချင်သောဗီဒီယိုကို လူတိုင်းလက်ခံရရှိရန်အတွက်၊ အခြေခံအဆောက်အအုံ လိုအပ်မည်ဖြစ်သည်။ ဖြစ်နိုင်ရင် လေယာဉ်ပေါ်ကနေ စျေးနှုန်းမတင်ပါနဲ့။ ထို့ကြောင့် ကျွန်ုပ်တို့သည် အနည်းငယ်မျှသာ စိတ်ကြိုက်ပြင်ဆင်ခြင်းဖြင့် အဆင်သင့်လုပ်ထားသော ဖြေရှင်းချက်များကို ချက်ချင်းအာရုံစိုက်ပါသည်။

ဗီဒီယိုနှင့်အလုပ်လုပ်ခြင်းအတွက် စံဖြေရှင်းချက်မှာ FFmpeg သည် အငြင်းအခုံများမှတဆင့် အသံကို ဖြတ်တောက်ပြီး လွန်လွန်ကဲကဲလုပ်ရန် ခွင့်ပြုပေးသော cross-platform console utility တစ်ခုဖြစ်သည်။ ကျန်တာက ထုပ်ပိုးရေးပြီး အသက်ပြန်သွင်းဖို့ပဲကျန်တော့တယ်။ ကျွန်ုပ်တို့သည် ဗီဒီယိုနှစ်ခုကို တွဲစပ်ထားသည့် ရှေ့ပြေးပုံစံကို ရေးကြပြီး... ပျော်စရာက စတင်ပါသည်။ ဒစ်ဂျစ်တိုက်သည် .NET Core 2 ကိုအခြေခံထားပြီး မည်သည့် virtual machine တွင်မဆိုလည်ပတ်သင့်သည်၊ ထို့ကြောင့်ကျွန်ုပ်တို့သည် AWS EC2 instance တစ်ခုကိုယူ၍ အရာအားလုံးအလုပ်လုပ်လိမ့်မည်

ဝှက်ထားသောစာသားမဟုတ်ဘူး၊ အလုပ်မဖြစ်ဘူး။
.
FFmpeg သည် လုပ်ငန်းကို ရိုးရှင်းစေသော်လည်း၊ အမှန်တကယ် အလုပ်ဖြစ်မည့် ဖြေရှင်းချက်အတွက် သင်သည် Load Balancer အပါအဝင် ၎င်းအတွက် EC2 instance တစ်ခုကို ဖန်တီးပြီး ၎င်းအတွက် ကွန်ရက်အခြေခံအဆောက်အအုံကို ဒီဇိုင်းဆွဲရန် လိုအပ်သည်။ အစမှနေ၍ ဖြန့်ကျက်ခြင်း၏ရိုးရှင်းသောအလုပ်သည် "အနည်းငယ်" ပိုရှုပ်ထွေးလာပြီး အခြေခံအဆောက်အအုံသည် ချက်ချင်းငွေတောင်းခံလာသည် - runtime အတွက်နာရီတိုင်းပမာဏကို client အကောင့်မှထုတ်ယူပါသည်။

ကျွန်ုပ်တို့၏ဝန်ဆောင်မှုသည် ရှည်လျားသောလုပ်ဆောင်ခြင်းလုပ်ငန်းစဉ်များမပါဝင်ပါ၊ ကြီးမားပြီး အဆီများသောဆက်စပ်ဒေတာဘေ့စ်တစ်ခုမလိုအပ်ပါ၊ မိုက်ခရိုဝန်ဆောင်မှုဖုန်းခေါ်ဆိုမှုကွင်းဆက်တစ်ခုပါရှိသော ပွဲအခြေပြုဗိသုကာတစ်ခုနှင့် ပြီးပြည့်စုံစွာကိုက်ညီပါသည်။ ဖြေရှင်းချက်က သူ့ဘာသာသူ အကြံပြုသည် - ကျွန်ုပ်တို့သည် EC2 ကို စွန့်လွှတ်နိုင်ပြီး AWS Lambda ကို အခြေခံထားသော စံ Image Resizer ကဲ့သို့ စစ်မှန်သော ဆာဗာမဲ့ အပလီကေးရှင်းကို အကောင်အထည်ဖော်နိုင်ပါသည်။

စကားမစပ်၊ .NET အတွက် AWS developer များကို သိသာထင်ရှားစွာ မကြိုက်သော်လည်း၊ ဖွံ့ဖြိုးတိုးတက်မှု အခွင့်အလမ်းများစွာကို ပံ့ပိုးပေးသည့် .NET Core 2.1 ကို runtime အဖြစ် ပံ့ပိုးပေးပါသည်။

နှင့် ကိတ်မုန့်ပေါ်ရှိ ချယ်ရီသီး - AWS သည် ဗီဒီယိုဖိုင်များနှင့် အလုပ်လုပ်ရန်အတွက် သီးခြားဝန်ဆောင်မှုတစ်ခု ပေးသည် - AWS Elemental MediaConvert။

အလုပ်၏အနှစ်သာရသည် မယုံနိုင်လောက်အောင်ရိုးရှင်းပါသည်- ကျွန်ုပ်တို့သည် ထွက်နေသောဗီဒီယိုဆီသို့ S3 လင့်ခ်တစ်ခုကိုယူကာ AWS Console၊ .NET SDK သို့မဟုတ် JSON မှတစ်ဆင့် ဗီဒီယိုနှင့်ကျွန်ုပ်တို့ပြုလုပ်လိုသည်များကို ရေးပြီး ဝန်ဆောင်မှုကိုခေါ်ဆိုပါ။ ၎င်းသည် အဝင်တောင်းဆိုမှုများကို လုပ်ဆောင်ရန်အတွက် စီတန်းများကို လုပ်ဆောင်ပေးကာ ရလဒ်ကို S3 ကိုယ်တိုင်သို့ အပ်လုဒ်လုပ်ကာ၊ အရေးကြီးဆုံးမှာ၊ အခြေအနေပြောင်းလဲမှုတစ်ခုစီအတွက် CloudWatch Event ကို ထုတ်ပေးပါသည်။ ၎င်းသည် ဗီဒီယိုလုပ်ဆောင်ခြင်းကို အပြီးသတ်ရန် lambda အစပျိုးမှုများကို အကောင်အထည်ဖော်နိုင်စေပါသည်။

အလုပ်လုပ်နေသော ဗီဒီယိုဝန်ဆောင်မှု၏ လျင်မြန်စွာ ဖွံ့ဖြိုးတိုးတက်မှုအတွက် ဆာဗာမဲ့ချဉ်းကပ်မှု
ဤသည်မှာ နောက်ဆုံးဗိသုကာပုံသဏ္ဌာန်ဖြစ်သည်။

နောက်ခံတစ်ခုလုံးကို lambda နှစ်ကောင်ဖြင့် တည်ဆောက်ထားသည်။ အခြားတစ်ခုသည် ဒေါင်လိုက်ဗီဒီယိုများကို လှည့်ခြင်းအတွက်ဖြစ်ပြီး၊ ထိုသို့သောအလုပ်သည် လက်မှတ်တစ်ခုတည်းတွင် မလုပ်ဆောင်နိုင်သောကြောင့်ဖြစ်သည်။

ကျွန်ုပ်တို့သည် JS တွင်ရေးသားထားသော SPA လျှောက်လွှာပုံစံဖြင့် အရှေ့ဘက်ကို အများသူငှာ S3 ပုံးတွင် pug မှတစ်ဆင့် စုစည်းထားပါမည်။ ဗီဒီယိုများကို ကိုယ်တိုင်ဒေါင်းလုဒ်လုပ်ရန်၊ ကျွန်ုပ်တို့သည် မည်သည့်ဆာဗာကုဒ်ကိုမျှ မလိုအပ်ပါ - ကျွန်ုပ်တို့ကို S3 ပေးထားသည့် REST endpoints ကိုဖွင့်ရန် လိုအပ်ပါသည်။ တစ်ခုတည်းသောအချက်မှာ မူဝါဒများနှင့် CORS ကို configure လုပ်ရန် မမေ့ပါနှင့်။

ထောငျခြော

  • AWS MediaConvert၊ အမည်မသိအကြောင်းအရင်းတစ်ခုခုကြောင့်၊ ဗီဒီယိုအပိုင်းတစ်ခုစီအတွက် အသံကိုသာ သီးခြားစီအသုံးပြုသော်လည်း၊ ကျွန်ုပ်တို့သည် စခရင်စခရင်တစ်ခုလုံးမှ ပျော်ရွှင်ဖွယ်သီချင်းတစ်ပုဒ် လိုအပ်ပါသည်။
  • ဒေါင်လိုက်ဗီဒီယိုများကို သီးခြားစီလုပ်ဆောင်ရန် လိုအပ်သည်။ AWS သည် အနက်ရောင်ဘားများကို မကြိုက်ဘဲ ရိုလာကို 90° တွင်ထားထားသည်။

လွယ်ကူသောစကိတ်ကွင်း

Stateless ၏ အလှတရားများ ရှိသော်လည်း၊ ဗီဒီယိုဖြင့် လုပ်ဆောင်ရမည့်အရာများကို ခြေရာခံရန် လိုအပ်သည်- ကော် သို့မဟုတ် ပြီးသွားသော ဗီဒီယိုအပိုင်းတွင် အသံထည့်ပါ။ ကံကောင်းထောက်မစွာ၊ MediaConvert သည် ၎င်း၏ Jobs မှတဆင့် မက်တာဒေတာကို ဖြတ်သန်းခြင်းကို ပံ့ပိုးပေးထားပြီး ဤမက်တာဒေတာကို မည်သည့်အဆင့်တွင်မဆို ခွဲခြမ်းစိတ်ဖြာသည့် "isMasterSoundJob" ပုံစံ၏ ရိုးရှင်းသောအလံကို ကျွန်ုပ်တို့ အမြဲတမ်းအသုံးပြုနိုင်ပါသည်။

Serverless သည် NoOps နှင့် အလုပ်လုပ်ဆောင်နိုင်သည် - ပရောဂျက်အခြေခံအဆောက်အအုံအတွက် တာဝန်ရှိသော သီးခြားအဖွဲ့တစ်ခု၏ မလိုအပ်ဟု ယူဆသည့် ချဉ်းကပ်မှုတစ်ခုဖြစ်သည်။ ထို့ကြောင့်၊ ၎င်းမှာ ကိစ္စသေးသေးလေးဖြစ်သည် - မည်သို့ပင်ဖြစ်စေ အမြဲတမ်းလုပ်ဆောင်ရမည့်အရာများရှိသည့် စနစ်စီမံခန့်ခွဲသူများ၏မပါဝင်ဘဲ AWS တွင် ဖြေရှင်းချက်ကို ကျွန်ုပ်တို့ ဖြန့်ကျက်ထားသည်။
ဤအရာအားလုံးကို အရှိန်မြှင့်ရန်၊ ကျွန်ုပ်တို့သည် VS မှ ခလုတ်တစ်ခုတည်းဖြင့် တိုက်ရိုက်အသုံးချနိုင်စေမည့် AWS CloudFormation တွင် အတတ်နိုင်ဆုံး အသုံးချမှု script ကို အလိုအလျောက်လုပ်ဆောင်ပေးပါသည်။ ရလဒ်အနေဖြင့်၊ CloudFormation syntax သည် သင်အလေ့အကျင့်မရှိပါက တုန်လှုပ်ချောက်ချားဖွယ်ကောင်းသော်လည်း ကုဒ်လိုင်း 200 ရှိသော ဖိုင်တစ်ခုသည် အသင့်လုပ်ထားသော ဖြေရှင်းချက်ကို ထုတ်နိုင်စေမည်ဖြစ်သည်။

စုစုပေါင်း

Serverless သည် panacea မဟုတ်ပါ။ သို့သော် ကန့်သတ်ချက်သုံးခုပါရှိသော အခြေအနေများတွင် ၎င်းသည် ဘဝကိုပိုမိုလွယ်ကူစေလိမ့်မည်- “အကန့်အသတ်ရှိသောအရင်းအမြစ်များ—ရေတို—ငွေအနည်းငယ်”။

Serverless အတွက် သင့်လျော်သော Application များ၏ လက္ခဏာများ

  • ရေရှည်လုပ်ငန်းစဉ်များမပါဘဲ။ API Gateway hard limit သည် 29 စက္ကန့်ဖြစ်ပြီး lambda hard limit သည် 5 မိနစ်ဖြစ်သည်။
  • Event-Driven ဗိသုကာလက်ရာဖြင့် ဖော်ပြထားပါသည်။
  • SOA ကဲ့သို့ လျော့ရဲရဲတွဲနေသော အစိတ်အပိုင်းများအဖြစ်သို့ ကွဲထွက်သွားသည်။
  • သင့်အခြေအနေနှင့် အလုပ်များစွာ မလိုအပ်ပါ။
  • .NET Core ဖြင့် ရေးသားထားသည်။ .NET Framework နှင့်အလုပ်လုပ်ရန်၊ သင့်လျော်သော runtime နှင့်အတူ အနည်းဆုံး Docker လိုအပ်နေသေးသည်။

Serverless ချဉ်းကပ်မှု၏အကျိုးကျေးဇူးများ

  • အခြေခံအဆောက်အအုံကုန်ကျစရိတ်ကို လျှော့ချပေးသည်။
  • ဖြေရှင်းချက်ပေးပို့ခြင်း၏ကုန်ကျစရိတ်ကိုလျှော့ချ;
  • အလိုအလျောက် ချဲ့ထွင်နိုင်မှု၊
  • နည်းပညာတိုးတက်မှု၏ အဆုံးစွန်သော ဖွံ့ဖြိုးတိုးတက်မှု။

အားနည်းချက်များ၊ တိကျသောဥပမာတစ်ခုနှင့်

  • ဖြန့်ဝေထားသော ခြေရာခံခြင်းနှင့် မှတ်တမ်းရယူခြင်း - AWS X-Ray နှင့် AWS CloudWatch မှတဆင့် တစ်စိတ်တစ်ပိုင်းဖြေရှင်းပေးသည်။
  • အဆင်မပြေ အမှားရှာပြင်ခြင်း၊
  • ဝန်မရှိသောအခါတွင် အအေးခံပါ။
  • AWS အသုံးပြုသူ-ရန်လိုသောအင်တာဖေ့စ်သည် အလုံးစုံပြဿနာတစ်ရပ်ဖြစ်သည်။

source: www.habr.com

မှတ်ချက် Add