په ریکونو کې بې سرور

په ریکونو کې بې سرور
بې سرور د سرورونو فزیکي نشتوالي په اړه ندي. دا د کانټینر وژونکی یا تیریدو رجحان ندی. دا په بادل کې د سیسټمونو جوړولو لپاره نوې تګلاره ده. په نننۍ مقاله کې به موږ د بې سرور غوښتنلیکونو جوړښت ته وګورو ، راځئ وګورو چې د بې سرور خدمت چمتو کونکي او خلاصې سرچینې پروژې څه رول لوبوي. په نهایت کې ، راځئ چې د بې سرور کارولو مسلو په اړه وغږیږو.

زه غواړم د غوښتنلیک سرور برخه ولیکئ (یا حتی آنلاین پلورنځي). دا کیدای شي چیټ، د مینځپانګې خپرولو خدمت، یا د بار بیلانسر وي. په هر حالت کې، ډیری سر دردونه به وي: تاسو باید زیربنا چمتو کړئ، د غوښتنلیک انحصار وټاکئ، او د کوربه عملیاتي سیسټم په اړه فکر وکړئ. بیا تاسو اړتیا لرئ کوچني اجزا تازه کړئ چې د پاتې مونولیت عملیات اغیزه نه کوي. ښه ، راځئ چې د بار لاندې اندازه کولو په اړه هیر نکړو.

څه که چیرې موږ لنډمهاله کانټینرونه واخلو ، په کوم کې چې اړین انحصارونه دمخه نصب شوي وي ، او کانټینرونه پخپله له یو بل او کوربه OS څخه جلا شوي وي؟ موږ به مونولیت په مایکرو سرویسونو وویشو، چې هر یو یې د نورو څخه په خپلواکه توګه تازه او اندازه کیدی شي. په داسې کانټینر کې د کوډ په ځای کولو سره، زه کولی شم دا په هر زیربنا کې پرمخ وړم. لا دمخه ښه.

څه که تاسو نه غواړئ کانټینرونه تنظیم کړئ؟ زه نه غواړم د غوښتنلیک اندازه کولو په اړه فکر وکړم. زه نه غواړم د بې کاره چلولو کانټینرونو لپاره پیسې ورکړم کله چې په خدمت کې بار لږ وي. زه غواړم کوډ ولیکم. د سوداګرۍ منطق باندې تمرکز وکړئ او د رڼا په سرعت سره بازار ته محصولات راوړئ.

دا ډول فکرونه ما د سرور بې کمپیوټر کولو ته لاره هواره کړه. پدې حالت کې بې سروره معنی لري د سرورونو فزیکي نشتوالی نه، مګر د زیربنا مدیریت نشتوالی سر درد.

نظر دا دی چې د غوښتنلیک منطق په خپلواکو دندو ویشل شوی. دوی د پیښې جوړښت لري. هر فعالیت یو "مایکروټاسک" ترسره کوي. ټول هغه څه چې د پراختیا کونکي څخه اړین دي د کلاوډ چمتو کونکي لخوا چمتو شوي کنسول کې دندې بار کړي او د پیښې سرچینو سره یې اړیکه ونیسي. کوډ به د غوښتنې سره سم په اتوماتيک ډول چمتو شوي کانټینر کې اجرا شي، او زه به یوازې د اعدام وخت لپاره پیسې ورکړم.

راځئ وګورو چې د غوښتنلیک پراختیا پروسه به اوس څنګه ښکاري.

د پراختیا کونکي اړخ څخه

مخکې مو د آنلاین پلورنځي لپاره د غوښتنلیک په اړه خبرې پیل کړې. په دودیز چلند کې، د سیسټم اصلي منطق د یو واحد غوښتنلیک لخوا ترسره کیږي. او د غوښتنلیک سره سرور په دوامداره توګه روان دی ، حتی که هیڅ بار شتون ونلري.

بې سرور ته د تګ لپاره، موږ غوښتنلیک په مایکرو ټاسکونو ماتوو. موږ د هر یو لپاره خپل فعالیت لیکو. دندې له یو بل څخه خپلواکې دي او د دولت معلومات نه ذخیره کوي (بې ریاسته). دوی حتی په مختلفو ژبو لیکل کیدی شي. که یو له دوی څخه "راوځي" ، نو ټول غوښتنلیک به ونه دریږي. د غوښتنلیک جوړښت به داسې ښکاري:

په ریکونو کې بې سرور
په سرورلیس کې د دندو ویش د مایکرو خدماتو سره کار کولو ته ورته دی. مګر یو مایکرو خدمت کولی شي ډیری دندې ترسره کړي، او یو فعالیت باید په مثالي توګه یو ترسره کړي. راځئ چې تصور وکړو چې دنده د احصایې راټولول او د کارونکي په غوښتنه ښودل دي. د مایکرو سرویس طریقه کې، یوه دنده د یو خدمت لخوا د دوه ننوتلو ټکو سره ترسره کیږي: لیکل او لوستل. په سرور پرته کمپیوټر کې، دا به دوه مختلف دندې وي چې یو له بل سره تړاو نلري. پراختیا کونکی د کمپیوټر سرچینې خوندي کوي که چیرې ، د مثال په توګه ، احصایې د ډاونلوډ شوي په پرتله ډیر ځله تازه کیږي.

بې سروره دندې باید په لنډ وخت کې اجرا شي (د وخت پای) چې د خدمت چمتو کونکي لخوا ټاکل کیږي. د مثال په توګه، د AWS لپاره وخت 15 دقیقې دی. د دې معنی دا ده چې اوږدمهاله دندې باید د اړتیاو سره سم بدل شي - دا هغه څه دي چې نن ورځ له نورو مشهور ټیکنالوژیو څخه بې سروره توپیر کوي (کانټینرونه او پلیټ فارم د خدمت په توګه).

موږ هر فعالیت ته یوه پیښه وړاندې کوو. پیښه د عمل لپاره محرک دی:

پیښه
هغه عمل چې فعالیت یې ترسره کوي

د محصول عکس ذخیره ته پورته شوی.
عکس کمپریس کړئ او لارښود ته اپلوډ کړئ

د فزیکي پلورنځي پته په ډیټابیس کې تازه شوې
په نقشه کې یو نوی ځای پورته کړئ

پیرودونکي د توکو لپاره پیسې ورکوي
د تادیاتو پروسس پیل کړئ

پیښې کیدای شي د HTTP غوښتنې، سټیمینګ ډاټا، د پیغام کتارونه، او داسې نور وي. د پیښو سرچینې د معلوماتو بدلون یا پیښې دي. برسېره پردې، فعالیتونه د ټیمر لخوا پیل کیدی شي.

جوړښت کار شوی و، او غوښتنلیک تقریبا بې سرور شو. بیا موږ د خدمت چمتو کونکي ته ځو.

د چمتو کونکي اړخ څخه

په عموم کې ، د سرور بې کمپیوټري د کلاوډ خدماتو چمتو کونکو لخوا وړاندیز کیږي. دوی په مختلف ډول ویل کیږي: Azure افعال، AWS Lambda، د ګوګل کلاوډ فنکشنونه، IBM کلاوډ افعال.

موږ به خدمت د چمتو کونکي کنسول یا شخصي حساب له لارې وکاروو. د فعالیت کوډ په لاندې لارو کې ډاونلوډ کیدی شي:

  • د ویب کنسول له لارې په جوړ شوي ایډیټرونو کې کوډ ولیکئ،
  • د کوډ سره آرشیف ډاونلوډ کړئ،
  • د عامه یا خصوصي git ذخیره کولو سره کار وکړئ.

دلته موږ هغه پیښې تنظیم کوو چې فنکشن ورته وایی. د پیښو سیټ ممکن د مختلف چمتو کونکو لپاره توپیر ولري.

په ریکونو کې بې سرور

چمتو کونکي په خپل زیربنا کې د خدمت (FaaS) سیسټم په توګه فعالیت رامینځته او اتومات کړ:

  1. د فعالیت کوډ د چمتو کونکي اړخ په ذخیره کې پای ته رسیږي.
  2. کله چې پیښه رامینځته شي ، د چمتو شوي چاپیریال سره کانټینرونه په اوتومات ډول په سرور کې ځای په ځای کیږي. د هر فعالیت مثال خپل جلا کانټینر لري.
  3. د ذخیره کولو څخه، فنکشن کانټینر ته لیږل کیږي، محاسبه کیږي، او پایله بیرته راولي.
  4. د موازي پیښو شمیر مخ په ډیریدو دی - د کانټینرونو شمیر مخ په ډیریدو دی. سیسټم په اتوماتيک ډول اندازه کیږي. که کاروونکي فعالیت ته لاسرسی ونلري، نو دا به غیر فعال وي.
  5. چمتو کونکی د کانټینرونو لپاره بې کاره وخت ټاکي - که د دې وخت په جریان کې فعالیتونه په کانټینر کې نه څرګندیږي ، نو ویجاړ شوی.

پدې توګه موږ له بکس څخه بې سرور ترلاسه کوو. موږ به د تادیې په توګه د تادیې ماډل په کارولو سره د خدماتو لپاره تادیه وکړو او یوازې د هغه کارونو لپاره چې کارول کیږي ، او یوازې د هغه وخت لپاره چې کارول شوي وي.

خدمت ته د پراختیا کونکو معرفي کولو لپاره ، چمتو کونکي تر 12 میاشتو پورې وړیا ازموینې وړاندیز کوي ، مګر د محاسبې ټول وخت محدودوي ، په میاشت کې د غوښتنو شمیر ، فنډونه یا د بریښنا مصرف محدودوي.

د چمتو کونکي سره د کار کولو اصلي ګټه د زیربنا (سرورونو ، مجازی ماشینونو ، کانټینرونو) په اړه اندیښنه نه کولو وړتیا ده. د دې برخې لپاره، چمتو کوونکی کولی شي FaaS دواړه د خپلو پرمختګونو په کارولو او د خلاصې سرچینې وسیلو په کارولو سره پلي کړي. راځئ چې د دوی په اړه نور خبرې وکړو.

د خلاصې سرچینې اړخ څخه

د خلاصې سرچینې ټولنه د تیرو څو کلونو راهیسې په فعاله توګه د سرور بې وسیلو باندې کار کوي. د بازار ترټولو لوی لوبغاړي هم د بې سرور پلیټ فارمونو پراختیا کې مرسته کوي:

  • د ګوګل پراختیا کونکو ته د خلاصې سرچینې وسیله وړاندیز کوي - ژړا. IBM، RedHat، Pivotal او SAP د دې پراختیا کې برخه اخیستې؛
  • IBM په بې سروره پلیټ فارم کې کار کړی OpenWhiskچې بیا د اپاچی بنسټ یوه پروژه شوه؛
  • د Microsoft په جزوي توګه د پلیټ فارم کوډ خلاص شو Azure افعال.

د بې سرور چوکاټونو په لور پرمختګونه هم روان دي. کوبیلیس и فيشن د مخکې چمتو شوي کبرنیټس کلسترونو کې ځای په ځای شوي، OpenFaaS د کوبرنیټس او ډاکر سوارم دواړو سره کار کوي. چوکاټ د یو ډول کنټرولر په توګه کار کوي - د غوښتنې سره سم، دا د کلستر دننه د چلولو چاپیریال چمتو کوي، بیا هلته یو فعالیت پیلوي.

چوکاټونه ستاسو د اړتیاو سره سم د وسیلې تنظیم کولو لپاره ځای پریږدي. نو ، په کوبیلیس کې ، یو پراختیا کونکی کولی شي د فعالیت اجرا کولو وخت تنظیم کړي (ډیفالټ ارزښت 180 ثانیې دی). فیشن، د سړې پیل ستونزې د حل کولو په هڅه کې، وړاندیز کوي چې ځینې کانټینرونه هر وخت روان وساتي (که څه هم دا د سرچینو کمولو لګښتونه شاملوي). او OpenFaaS د هر خوند او رنګ لپاره د محرکونو سیټ وړاندیز کوي: HTTP، Kafka، Redis، MQTT، Cron، AWS SQS، NATs او نور.

د پیل کولو لپاره لارښوونې د چوکاټونو په رسمي اسنادو کې موندل کیدی شي. د دوی سره کار کول د چمتو کونکي سره د کار کولو په پرتله یو څه ډیر مهارتونو ته اړتیا لري - دا لږترلږه د CLI له لارې د Kubernetes کلستر په لاره اچولو وړتیا ده. په ډیرو کې، د خلاصې سرچینې نور وسایل شامل کړئ (د مثال په توګه، د کافکا قطار مدیر).

پرته لدې چې موږ څنګه له سرور پرته کار کوو - د چمتو کونکي له لارې یا د خلاصې سرچینې په کارولو سره ، موږ به د سرور بې لارې یو شمیر ګټې او زیانونه ترلاسه کړو.

د ګټو او زیانونو له نظره

سرور لیس د کانټینر زیربنا او د مایکرو سرویس چلند نظرونه رامینځته کوي ، په کوم کې چې ټیمونه کولی شي په څو ژبو حالت کې کار وکړي پرته لدې چې یو پلیټ فارم سره وصل شي. د سیسټم جوړول ساده شوي او غلطۍ سمول اسانه دي. د مایکرو سرویس جوړښت تاسو ته اجازه درکوي سیسټم ته نوي فعالیت اضافه کړئ د یو واحد غوښتنلیک په پرتله خورا ګړندی.

بې سرور د پراختیا وخت نور هم کموي، پراختیا کونکي ته اجازه ورکوي چې یوازې د غوښتنلیک سوداګرۍ منطق او کوډ کولو باندې تمرکز وکړي. د پایلې په توګه، د پرمختګ لپاره بازار ته وخت کم شوی.

د بونس په توګه، موږ د بار لپاره اتوماتیک پیمانه ترلاسه کوو، او موږ یوازې د کارول شویو سرچینو لپاره پیسې ورکوو او یوازې په هغه وخت کې چې کارول کیږي.

د هرې ټیکنالوژۍ په څیر، بې سروره زیانونه لري.

د مثال په توګه، دا ډول نیمګړتیا ممکن د سړه پیل وخت وي (په اوسط ډول تر 1 ثانیو پورې د ژبو لپاره لکه JavaScript، Python، Go، Java، Ruby).

له یوې خوا، په واقعیت کې، د سړې پیل وخت په ډیری متغیرونو پورې اړه لري: هغه ژبه چې فعالیت پکې لیکل شوی، د کتابتونونو شمیر، د کوډ اندازه، د اضافي سرچینو سره اړیکه (د ورته ډیټابیس یا تصدیق سرورونه). څرنګه چې پراختیا کونکي دا متغیرات کنټرولوي، هغه کولی شي د پیل وخت کم کړي. مګر له بلې خوا ، پراختیا کونکی نشي کولی د کانټینر د پیل وخت کنټرول کړي - دا ټول په چمتو کونکي پورې اړه لري.

یو سړه پیل کولی شي په ګرم پیل بدل شي کله چې یو فنکشن د تیرې پیښې لخوا پیل شوی کانټینر بیا کاروي. دا حالت به په دریو حالتونو کې رامینځته شي:

  • که چیرې پیرودونکي په مکرر ډول خدمت کاروي او فعالیت ته د تلیفونونو شمیر ډیریږي؛
  • که چمتو کونکی، پلیټ فارم یا چوکاټ تاسو ته اجازه درکړي چې ځینې کانټینرونه هر وخت روان وساتي؛
  • که پراختیا کونکی په ټایمر کې دندې پرمخ وړي (هر 3 دقیقې ووایاست).

د ډیری غوښتنلیکونو لپاره، یو سړه پیل کومه ستونزه نده. دلته تاسو اړتیا لرئ د خدماتو ډول او دندو رامینځته کړئ. د یوې ثانیې پیل ځنډ تل د سوداګرۍ غوښتنلیک لپاره مهم ندي ، مګر دا د طبي خدماتو لپاره خورا مهم کیدی شي. په دې حالت کې، بې سروره طریقه به شاید نور مناسب نه وي.

د سرور لیس راتلونکی زیان د فنکشن لنډ ژوند دی (د وخت پای چې په جریان کې فنکشن باید اجرا شي).

مګر، که تاسو د اوږدمهاله کارونو سره کار کولو ته اړتیا لرئ، تاسو کولی شئ د هایبرډ جوړښت وکاروئ - د بل ټیکنالوژۍ سره سرورلیس یوځای کړئ.

ټول سیسټمونه به د دې وړتیا ونلري چې د بې سرور سکیم په کارولو سره کار وکړي.

ځینې ​​غوښتنلیکونه به لاهم د اجرا کولو پرمهال ډیټا او حالت ذخیره کړي. ځینې ​​​​معمارۍ به یو واحد پاتې شي او ځینې ځانګړتیاوې به د اوږدې مودې لپاره وي. په هرصورت (لکه د کلاوډ ټیکنالوژۍ او بیا کانټینرونه)، بې سرور یوه ټیکنالوژي ده چې د لوی راتلونکي سره.

پدې رګ کې ، زه غواړم په اسانۍ سره د سرور بې لارې کارولو مسلې ته لاړ شم.

د غوښتنلیک له اړخ څخه

د 2018 لپاره، د بې سروره کارونې سلنه یو نیم ځل وده وکړه. د هغو شرکتونو په مینځ کې چې دمخه یې په خپلو خدماتو کې ټیکنالوژي پلي کړې ده د بازار لوی لویان لکه ټویټر، پی پال، نیټ فلکس، T-Mobile، Coca-Cola. په ورته وخت کې، تاسو اړتیا لرئ پوه شئ چې بې سروره درملنه نه ده، مګر د یو لړ ستونزو د حل کولو وسیله ده:

  • د سرچینو وخت کم کړئ. د خدماتو لپاره چې لږ تلیفونونه لري په دوامداره توګه د مجازی ماشین ساتلو ته اړتیا نشته.
  • په الوتنه کې د معلوماتو پروسس کول. عکسونه کمپریس کړئ ، شالیدونه پرې کړئ ، د ویډیو کوډ کول بدل کړئ ، د IoT سینسرونو سره کار وکړئ ، ریاضيیک عملیات ترسره کړئ.
  • نور خدمتونه په ګډه "ګوښه کړئ". د داخلي برنامو سره د ګیټ ذخیره ، د جیرا او کیلنڈر سره په سلیک کې د چیټ بوټ.
  • بار توازن کړئ. راځئ چې دلته نږدې وګورو.

راځئ چې ووایو یو خدمت شتون لري چې 50 خلک راجلبوي. د دې لاندې د ضعیف هارډویر سره یو مجازی ماشین شتون لري. د وخت په تیریدو سره، د خدماتو بار د پام وړ زیاتیږي. بیا ضعیف هارډویر نشي کولی مقابله وکړي.

تاسو کولی شئ په سیسټم کې یو بیلانسر شامل کړئ چې بار به توزیع کړي ، ووایه ، له دریو مجازی ماشینونو څخه. په دې مرحله کې، موږ نشو کولی د بار دقیق اټکل وکړو، نو موږ یو ټاکلی مقدار سرچینې ساتو چې "په ذخیره کې" روان دي. او موږ د کم وخت لپاره ډیر تادیه کوو.

په داسې حالت کې، موږ کولی شو سیسټم د هایبرډ طریقې له لارې اصلاح کړو: موږ د بار بیلنسر شاته یو مجازی ماشین پریږدو او د افعالاتو سره د سرور بې پای ټکی ته لینک ورکوو. که بار د حد څخه ډیر وي، بیلانسر د فعالیت مثالونه پیلوي چې د غوښتنې پروسس کولو برخه اخلي.

په ریکونو کې بې سرور
پدې توګه ، بې سرور کارول کیدی شي چیرې چې دا اړینه وي چې د ډیری غوښتنو پروسس کولو لپاره ډیری وختونه نه ، مګر په شدت سره. پدې حالت کې ، د 15 دقیقو لپاره د ډیری افعالونو چلول د هر وخت د مجازی ماشین یا سرور ساتلو څخه ډیر ګټور دی.

د سرور پرته کمپیوټري ټولو ګټو سره ، د پلي کیدو دمخه ، تاسو باید لومړی د غوښتنلیک منطق و ارزوئ او پوه شئ چې سرور لیس کومې ستونزې په ځانګړي قضیه کې حل کولی شي.

بې سروره او سلیکٹیل

په سلیکٹیل کې موږ لا دمخه یو د Kubernetes سره ساده کار زموږ د کنټرول پینل له لارې. اوس موږ خپل د FaaS پلیټ فارم جوړوو. موږ غواړو پراختیا کونکي د دې وړ وي چې د اسانه ، انعطاف وړ انٹرفیس له لارې د سرور بې کاره په کارولو سره خپلې ستونزې حل کړي.

که تاسو په دې اړه نظرونه لرئ چې د مثالي FaaS پلیټ فارم باید څه وي او تاسو څنګه غواړئ په خپلو پروژو کې له سرور لیس څخه کار واخلئ ، په نظرونو کې یې شریک کړئ. موږ به ستاسو هیلې په پام کې ونیسو کله چې پلیټ فارم رامینځته کوو.
 
په مقاله کې کارول شوي توکي:

سرچینه: www.habr.com

Add a comment