د QCon کنفرانس. د ګډوډۍ ماسټر کول: د مایکرو خدماتو لپاره د Netflix لارښود. څلورمه برخه

جوش ایونز د Netflix مایکرو سرویسونو ګډوډ او رنګین نړۍ په اړه خبرې کوي ، د خورا اساساتو سره پیل کیږي - د مایکرو خدماتو اناتومي ، د توزیع شوي سیسټمونو سره تړلې ننګونې ، او د دوی ګټې. د دې بنسټ په جوړولو سره، هغه کلتوري، معماري، او عملیاتي کړنې لټوي چې د مایکرو سرویس ماسټرۍ المل کیږي.

د QCon کنفرانس. د ګډوډۍ ماسټر کول: د مایکرو خدماتو لپاره د Netflix لارښود. څلورمه برخه
د QCon کنفرانس. د ګډوډۍ ماسټر کول: د مایکرو خدماتو لپاره د Netflix لارښود. څلورمه برخه
د QCon کنفرانس. د ګډوډۍ ماسټر کول: د مایکرو خدماتو لپاره د Netflix لارښود. څلورمه برخه

د عملیاتي جریان برعکس، د خدماتو نړیوال کولو لپاره د نویو ژبو معرفي کول او نوي ټیکنالوژي لکه کانټینرونه په چاپیریال کې د نوي پیچلتیا اضافه کولو لپاره شعوري پریکړې دي. زما د عملیاتو ټیم د Netflix لپاره د غوره ټیکنالوژۍ سړک نقشه کې معیاري کړی ، کوم چې د جاوا او EC2 پراساس دمخه تعریف شوي غوره تمرینونو کې پخه شوی و ، مګر لکه څنګه چې سوداګرۍ وده وکړه ، پراختیا کونکو د نوي اجزاو اضافه کول پیل کړل لکه Python, Ruby, Node-JS، او Docker.

د QCon کنفرانس. د ګډوډۍ ماسټر کول: د مایکرو خدماتو لپاره د Netflix لارښود. څلورمه برخه

زه ډیر ویاړم چې موږ د پیرودونکو شکایتونو ته انتظار کولو پرته د عالي کار کولو لپاره زموږ د محصول لپاره مدافع وکیل و. دا ټول په ساده ډول پیل شوي - موږ په Python کې عملیاتي برنامې درلودې او په روبي کې یو څو بیک دفتر غوښتنلیکونه ، مګر شیان خورا ډیر په زړه پوري شول کله چې زموږ ویب پراختیا کونکو اعلان وکړ چې دوی JVM ماتوي او ویب ته ځي. د نوډ سافټویر پلیټ فارم ته غوښتنلیک. js. د ډاکر معرفي کولو وروسته ، شیان خورا پیچلي شول. موږ منطق تعقیب کړ او هغه ټیکنالوژي چې موږ ورسره مخ شوي یو حقیقت شو کله چې موږ دوی د پیرودونکو لپاره پلي کړل ځکه چې دوی ډیر احساس کړی. زه به تاسو ته ووایم چې ولې دا داسې ده.

د API ګیټ وے په حقیقت کې د عالي سکریپټونو مدغم کولو وړتیا لري چې کولی شي د UI پراختیا کونکو لپاره د پای ټکي په توګه عمل وکړي. دوی دا هر سکریپټ په داسې ډول بدل کړل چې د بدلونونو وروسته دوی کولی شي تولید او بیا د کارونکي وسیلو ته ځای په ځای کړي، او دا ټول بدلونونه د پای ټکي سره همغږي شوي چې د API ګیټ ویز کې روان دي.

په هرصورت، دا د نوي مونولیت رامینځته کولو ستونزه تکرار کړه چیرې چې د API خدمت د کوډ سره ډیر بار شوی و په داسې ډول چې مختلف ناکامي سناریوګانې رامینځته شوې. د مثال په توګه، ځینې پای ټکي لیرې شوي، یا سکریپټونه په تصادفي ډول د یو څه ډیری نسخې رامینځته کوي چې نسخې د API خدمت ټولې موجودې حافظې نیولې.

دا منطقي وه چې دا پای ټکي واخلئ او د API خدمت څخه یې وباسئ. د دې کولو لپاره، موږ د Node.js برخې جوړې کړې چې په ډاکر کانټینرونو کې د کوچنیو غوښتنلیکونو په توګه پرمخ ځي. دې موږ ته اجازه راکړه چې د دې نوډ غوښتنلیکونو له امله رامینځته شوي کومې ستونزې او حادثې جلا کړو.

د دې بدلونونو لګښت خورا لوی دی او لاندې عوامل لري:

  • د تولید وسیلې. د نوي ټیکنالوژیو اداره کول نوي وسایلو ته اړتیا لري ځکه چې د UI ټیم، د اغیزمن ماډل رامینځته کولو لپاره خورا ښه سکریپټونه کاروي، د زیربنا اداره کولو لپاره ډیر وخت نه لګوي، دوی یوازې د سکریپټونو لیکلو او د دوی فعالیت چک کولو ته اړتیا درلوده.
    د فرصت بصیرت او ترتیب کول - یو کلیدي مثال د فعالیت چلونکي معلوماتو څرګندولو لپاره نوي وسیلې دي. دا اړینه وه چې پوه شي چې پروسیسر څومره نیول شوی، حافظه څنګه کارول کیږي، او د دې معلوماتو راټولول مختلف وسایلو ته اړتیا لري.
  • د بیس عکسونو ټوټه کول - ساده بیس AMI ډیر ټوټه شوی او ځانګړی شوی.
  • د نوډ مدیریت. دلته د شیلف څخه بهر هیڅ جوړښت یا ټیکنالوژي شتون نلري چې تاسو ته اجازه درکوي په کلاوډ کې نوډونه اداره کړئ ، نو موږ ټایټس جوړ کړ ، د کانټینر مدیریت پلیټ فارم چې د توزیع وړ او د باور وړ کانټینر پلي کول او د ایمیزون AWS سره بادل ادغام چمتو کوي.
  • د کتابتون یا پلیټ فارم نقل کول. د پلیټ فارم د ورته اصلي فعالیت سره د نوي ټیکنالوژیو چمتو کول اړین دي چې دا په کلاوډ میشته Node.js پراختیا کونکي وسیلو کې نقل کړي.
  • د زده کړې وکر او صنعتي تجربه. د نویو ټیکنالوژیو معرفي کول په ناببره توګه نوي ننګونې رامینځته کوي چې باید بریالي شي او ترې زده کړي.

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

موږ په دوامداره توګه د ثابت ټیکنالوژیو کارولو فرصتونو په لټه کې یو چې خپل ځان په یو ځای او نورو ورته حالتونو کې ثابت کړی.

راځئ چې د وروستي عنصر په اړه خبرې وکړو - بدلونونه، یا تغیرات. وګورئ چې څنګه زموږ د محصول مصرف د اونۍ په ورځ او د ورځې په اوږدو کې د ساعت له مخې غیر مساوي توپیر لري. تاسو کولی شئ ووایاست چې د سهار 9 د Netflix لپاره ترټولو سخت وخت دی، کله چې په سیسټم کې بار خپل اعظمي حد ته ورسیږي.

د QCon کنفرانس. د ګډوډۍ ماسټر کول: د مایکرو خدماتو لپاره د Netflix لارښود. څلورمه برخه

موږ څنګه کولی شو د سافټویر نوښتونو پلي کولو کې لوړ سرعت ترلاسه کړو، دا چې په دوامداره توګه په سیسټم کې نوي بدلونونه رامینځته کوي، پرته له دې چې د خدماتو په وړاندې کولو کې خنډ رامنځته کړي او زموږ پیرودونکو ته د تکلیف رامنځته کولو پرته؟ Netflix دا د Spinnaker په کارولو سره ترلاسه کړ، یو نوی نړیوال کلاوډ میشته مدیریت او دوامداره تحویلي (CD) پلیټ فارم.

د QCon کنفرانس. د ګډوډۍ ماسټر کول: د مایکرو خدماتو لپاره د Netflix لارښود. څلورمه برخه

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

د QCon کنفرانس. د ګډوډۍ ماسټر کول: د مایکرو خدماتو لپاره د Netflix لارښود. څلورمه برخه

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

یو حیرانونکی رول آوټ پدې معنی دی چې که په یوه سیمه کې رول آوټ ستونزې ولري، موږ په بل سیمه کې رول آوټ ته ځو. په دې حالت کې، پورته ذکر شوی چک لیست باید د تولید پایپ لاین کې شامل شي. زه به تاسو یو څه وخت خوندي کړم او تاسو ته به وړاندیز وکړم چې زما پخوانۍ خبرې وګورئ، په کلاوډ کې د انجینرۍ ګلوبل Netflix عملیات، که تاسو د دې موضوع په اړه ژوره غوطه کولو سره علاقه لرئ. د وینا ویډیو ریکارډ په لاندې سلایډ کې د لینک په تعقیب لیدل کیدی شي.

د QCon کنفرانس. د ګډوډۍ ماسټر کول: د مایکرو خدماتو لپاره د Netflix لارښود. څلورمه برخه

د خبرو په پای کې، زه به د Netflix د سازمان او جوړښت په اړه لنډې خبرې وکړم. په پیل کې موږ د بریښنایی تحویل په نوم سکیم درلود ، کوم چې د NRDP 1.x میډیا سټریمینګ لومړۍ نسخه وه. د "بیک سټریم" اصطلاح دلته کارول کیدی شي ځکه چې په پیل کې کارونکي کولی شي یوازې په وسیله کې د وروسته پلے بیک لپاره مینځپانګه ډاونلوډ کړي. د Netflix خورا لومړی ډیجیټل تحویلي پلیټ فارم ، بیرته په 2009 کې ، داسې ښکاري.

د QCon کنفرانس. د ګډوډۍ ماسټر کول: د مایکرو خدماتو لپاره د Netflix لارښود. څلورمه برخه

د کارونکي وسیله د Netflix غوښتنلیک لري، کوم چې د UI انٹرفیس، امنیتي ماډلونه، د خدماتو فعالول او پلے بیک لري، د NRDP پلیټ فارم پراساس - د Netflix چمتو وسیله پلیټ فارم.

په هغه وخت کې د کارن انٹرفیس خورا ساده و. پدې کې هغه څه شامل وو چې د Queque Reader په نوم یادیږي، او کاروونکي به سایټ ته لاړ شي ترڅو په Queque کې یو څه اضافه کړي او بیا د دوی په وسیله اضافه شوي مینځپانګې وګوري. مثبت دا و چې د لومړي پای ټیم او شاته پای ټیم د ورته بریښنایی تحویلي سازمان پورې اړه درلوده او نږدې کاري اړیکې درلودې. تادیه د XML پر بنسټ رامینځته شوې. په ورته وخت کې، د DVD سوداګرۍ لپاره Netflix API رامینځته شوی، کوم چې د دریمې ډلې غوښتنلیکونه هڅولي چې زموږ خدمت ته مستقیم ټرافيک ورکړي.

په هرصورت، د Netflix API ښه چمتو شوی و چې موږ سره د نوي کاروونکي انٹرفیس سره مرسته وکړي، د ټولو منځپانګو میټاډاټا، د کوم فلمونو شتون په اړه معلومات، کوم چې د لید لیستونو رامینځته کولو وړتیا رامینځته کړې. دا د JSON سکیما پراساس عمومي REST API درلود ، د HTTP ځواب کوډ ، ورته ورته چې په عصري جوړښت کې کارول کیږي ، او د OAuth امنیت ماډل ، کوم چې هغه څه و چې په هغه وخت کې د مخکښې پای غوښتنلیک لپاره اړین و. دې کار دا ممکنه کړه چې د سټینګ مینځپانګې تحویلي عامه ماډل څخه شخصي ته حرکت وکړي.

د QCon کنفرانس. د ګډوډۍ ماسټر کول: د مایکرو خدماتو لپاره د Netflix لارښود. څلورمه برخه

د لیږد سره ستونزه ټوټه ټوټه وه، ځکه چې اوس زموږ سیسټم دوه خدمتونه د عملیاتو په بشپړ ډول مختلف اصولو پراساس پرمخ وړي - یو په آرام، JSON او OAuth کې، بل په RPC، XML او د NTBA ټوکن سیسټم پراساس د کاروونکي امنیت میکانیزم. دا لومړی هایبرډ معمار و.

زموږ د دوو ټیمونو ترمنځ په اصل کې د اور وژونکي شتون درلود ځکه چې په پیل کې API د NCCP سره خورا ښه اندازه نه وه کړې او دا د ټیمونو ترمنځ د ټکر لامل شوی. توپیرونه په خدماتو، پروتوکولونو، سرکټونو، امنیتي ماډلونو کې وو، او پراختیا کونکي اکثرا باید د بشپړ مختلف شرایطو ترمنځ تیریدل.

د QCon کنفرانس. د ګډوډۍ ماسټر کول: د مایکرو خدماتو لپاره د Netflix لارښود. څلورمه برخه

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

موږ کولی شو ووایو چې پدې حالت کې لکۍ د سپي ځړول دي. زموږ لومړی لومړیتوب حل نه دی، مګر سازمان؛ دا هغه سازمان دی چې هغه جوړښت پرمخ وړي چې موږ یې لرو. په تدریجي ډول، د خدماتو له یوې هوج پوج څخه، موږ یو جوړښت ته لاړ چې موږ ورته بلیډ رنر وایو، ځکه چې دلته موږ د څنډې خدماتو او د NCCP وړتیا په اړه خبرې کوو چې په مستقیم ډول د زوول پراکسي، API ګیټ وے، او اړونده فعالیت کې جلا او مدغم شي. "ټوکې" د لا پرمختللي امنیت، بیا پیلولو، د معلوماتو ترتیب کولو، او داسې نورو ځانګړتیاو سره نوي مایکرو خدماتو ته بدل شوي.

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

لږ اعلان

له موږ سره د پاتې کیدو لپاره مننه. ایا تاسو زموږ مقالې خوښوي؟ غواړئ نور په زړه پورې مینځپانګه وګورئ؟ د امر په ورکولو یا ملګرو ته وړاندیز کولو سره زموږ ملاتړ وکړئ ، کلاوډ VPS د پراختیا کونکو لپاره له $ 4.99 څخه, د ننوتلو کچې سرورونو یو ځانګړی انلاګ ، کوم چې زموږ لخوا ستاسو لپاره اختراع شوی و: د VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps په اړه بشپړ حقیقت له $ 19 څخه یا څنګه سرور شریک کړئ؟ (د RAID1 او RAID10 سره شتون لري، تر 24 کور پورې او تر 40GB DDR4 پورې).

ډیل R730xd په امستردام کې د Equinix Tier IV ډیټا مرکز کې 2 ځله ارزانه؟ یوازې دلته 2x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 تلویزیون له $199 څخه په هالنډ کې! ډیل R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - له $ 99 څخه! په اړه ولولئ د زیربنا شرکت جوړولو څرنګوالی د ډیل R730xd E5-2650 v4 سرورونو کارولو سره ټولګي د یوې پیسي لپاره د 9000 یورو ارزښت لري؟

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

Add a comment