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

د ریښتیني Plyushkins په څیر، موږ د خپلو پیزیریا د کار په اړه هر ډول معلومات راټولوو:
- د کارونکي ټول امرونه په یاد ولرئ؛
- موږ پوهیږو چې په سیکټیوکر کې د لومړي پیزا جوړولو څومره وخت نیولی و.
- موږ ګورو چې اوس مهال په ورونژ کې د تودوخې شیلف کې د پیزا یخ کول څومره وخت نیسي.
- موږ د محصول د لیکلو په اړه معلومات ذخیره کوو؛
- او ډیری نور.
ډیری ټیمونه اوس په ډوډو پیزا کې د معلوماتو سره کار کولو مسؤلیت لري، یو یې د ډیټا انجینرۍ ټیم دی. اوس دوی (یعنی موږ) د دې دندې سره مخ یو چې د شرکت کوم کارمند ته د معلوماتو دې لړۍ ته اسانه لاسرسی ورکړئ.
کله چې موږ د دې کولو څرنګوالي په اړه فکر پیل کړ او د ستونزې په اړه یې بحث پیل کړ، موږ د ډیټا مدیریت لپاره خورا په زړه پورې طریقه وموندله - (د لینک تعقیب کړئ تاسو به یو لوی، په زړه پوری مقاله ومومئ). د هغې نظریات زموږ په نظر کې خورا ښه فټ کوي چې موږ څنګه غواړو خپل سیسټم جوړ کړو. نور په مقاله کې به زموږ د چلند په اړه بیا غور وشي او موږ څنګه د ډوډو پیزا انجینرۍ کې د هغې پلي کول وګورو.
موږ د "ډاټا" څخه څه معنی لرو
لومړی، راځئ چې تعریف کړو چې موږ د ډوډو پیزا انجینرۍ کې د معلوماتو څخه څه معنی لرو:
- د خدماتو لخوا لیږل شوي پیښې (موږ یو عام بس لرو چې د RabbitMQ په کارولو سره جوړ شوی)؛
- د ډیټابیس دننه ریکارډونه (زموږ لپاره دا MySQL او CosmosDB دي)؛
- د ګرځنده غوښتنلیک او ویب پاڼې څخه کلیک وکړئ.
د دې ډیټا کارولو او تکیه کولو لپاره د ډوډو پیزا سوداګرۍ لپاره ، دا مهمه ده چې لاندې شرایط پوره شي:
- دوی باید بشپړ وي. موږ باید ډاډه اوسو چې موږ ډیټا نه بدلوو پداسې حال کې چې دا پروسس کیږي ، زیرمه کیږي او ښودل کیږي. که سوداګر زموږ په معلوماتو باور ونکړي، دا به هیڅ ګټه ونلري.
- دوی باید د وخت ټاپه ولري او نه لیکل کیږي. دا پدې مانا ده چې په هر وخت کې موږ غواړو د دې وړتیا ولرو چې بیرته راوګرځو او د دې مودې څخه ډاټا وګورو. د مثال په توګه، ومومئ چې د جولای په 8، 2018 کې څومره پیزا پلورل شوي.
- دوی باید د باور وړ وي. د معلوماتو راټولولو او ذخیره کولو په پروسه کې، موږ باید نه یوازې بشپړتیا، بلکې اعتبار هم له لاسه ورکړو. موږ نشو کولی ډیټا، د وخت سلائسونه له لاسه ورکړو، ځکه چې د دوی سره موږ د خپلو پیرودونکو باور له لاسه ورکوو (دواړه بهرني او داخلي).
- دوی باید د مستحکم سرکټ سره وي - موږ د دې معلوماتو لپاره غوښتنې لیکو. موږ به واقعیا دا نه خوښوو چې د غوښتنلیک کوډ کې د بدلونونو سره ، د ریفیکٹرینګونو سره دومره بدلون وکړو چې زموږ پوښتنې کار ودروي. هغه څوک چې پوښتنې لیکي هیڅکله به پدې پوه نشي چې تاسو ریفاکتور کړی تر هغه چې هرڅه مات شي. زه نه غواړم پدې اړه د پیرودونکو څخه واورم.
د دې ټولو اړتیاو په پام کې نیولو سره، موږ دې پایلې ته ورسیدو چې په ډوډو کې ډاټا یو محصول دی. د خدمت عامه API په څیر. په دې اساس، هغه ټیم چې د خدماتو مالکیت لري باید د معلوماتو ملکیت ولري. همچنان ، د ډیټا سکیما کې بدلونونه باید تل شاته مطابقت ولري.
دودیز چلند - د ډیټا لیک
د باور وړ ذخیره کولو او لوی ډیټا پروسس کولو ستونزو حل کولو لپاره ، په ډیری شرکتونو کې دودیز چلند اختیار شوی چې د معلوماتو د داسې حوض سره کار کوي - ډیټا لیک. د دې کړنلارې د یوې برخې په توګه، د ډیټا انجنیران د سیسټم له ټولو برخو څخه معلومات راټولوي او په یوه لوی ذخیره کې یې اچوي (دا کیدای شي، د بیلګې په توګه، هاډوپ، ازور کوستو، اپاچي کاسندرا، یا حتی د MySQL نقل، که چیرې معلومات د معلوماتو سره سمون ولري. دا).
بیا ورته انجینران ورته ذخیره کولو لپاره غوښتنې لیکي. په ډوډو پیزا انجینرۍ کې د دې تګلارې پلي کول پدې معنی دي چې د ډیټا انجینرۍ ټیم به د تحلیلي ګدام کې د ډیټا سکیما ملکیت ولري.
پدې سناریو کې ، ټیم ډیر غمجن پیشوګانې کیږي او دلته یې دی:
- هغه باید د بدلونونو څارنه وکړي ټول د شرکت دننه خدمتونه. او د دوی ډیری او ډیری بدلونونه شتون لري (په اوسط ډول موږ په هره اونۍ کې ~ 100 پل غوښتنې غوښتنې سره یوځای کوو، پداسې حال کې چې ډیری خدمتونه په بشپړ ډول د پلولو غوښتنې نه کوي).
- کله چې د ډیټا سکیما بدلول ، د محصول مالک او ټیم د ډیټا سکیما بدلولو لپاره باید د ډیټا انجینرۍ ته انتظار وکړي ترڅو د بدلونونو ملاتړ لپاره اړین کوډ اضافه کړي. په ورته وخت کې، موږ د اوږدې مودې لپاره بډایه یو او وضعیت کله چې یو ټیم بل ته انتظار کوي خورا نادر دی. او موږ نه غواړو چې دا د پراختیایي پروسې "عادي" برخه شي.
- دا باید ډوب شي ټول د شرکت سوداګرۍ. د پیزیریا سلسله د ساده سوداګرۍ په څیر ښکاري، مګر دا یوازې داسې ښکاري. دا خورا ستونزمن کار دی چې په یوه ټیم کې کافي وړتیاوې راټول کړي ترڅو د ټول شرکت لپاره د کافي ډیټا ماډل رامینځته کړي.
- دا د ناکامۍ یو واحد ټکی دی. هرکله چې تاسو اړتیا لرئ د خدماتو لخوا بیرته راستانه شوي ډاټا بدل کړئ یا غوښتنه ولیکئ، دا ټولې دندې د ډیټا انجینرۍ ټیم ته راځي. د پایلې په توګه، ټیم ډیر بار بار لري.
دا معلومه شوه چې ټیم د ډیری اړتیاو په تقاطع کې دی او امکان نلري چې دوی یې پوره کړي. په ورته وخت کې، تاسو به د دوامداره فشار او فشار لاندې یاست. موږ واقعیا دا نه غواړو. له همدې امله، موږ باید د دې ستونزو د حل کولو په اړه فکر وکړو او په ورته وخت کې د معلوماتو تحلیل کولو توان ولرو.
د ډیټا لیک څخه ډیټا میش ته حرکت کول
خوشبختانه ، موږ یوازینی هغه نه وو چې دا پوښتنه یې له ځانه وکړه. په حقیقت کې، ورته ستونزه لا دمخه په صنعت کې حل شوې ده (هللوجه!). یوازې په مختلف ساحه کې: د غوښتنلیک ځای په ځای کول. هو، زه د DevOps تګلارې په اړه خبرې کوم، چیرې چې ټیم ټاکي چې څنګه هغه محصول ځای پرځای کړي چې دوی یې جوړوي.
د ډیټا لیک د ستونزو د حل لپاره ورته طریقه د ThoughtWorks مشاور زامک دهغني لخوا وړاندیز شوې وه. د دې لیدل چې څنګه Netflix او Spotify ورته ستونزې حل کوي، هغې یوه په زړه پورې مقاله لیکلې (د دې لینک د مقالې په پیل کې و). اصلي نظرونه چې موږ یې له دې څخه لرې کړل:
- د ډیټا ډومینونو کې لوی ډیټا لیک ویشئ، کوم چې د ډومین لخوا پرمخ وړل شوي ډیزاین ډومینونو سره ورته دي. هر ډومین یو کوچنی محدود شرایط دی.
- د فیچر ټیمونه، چې د DDD ډومینونو لپاره مسؤل دي، د اړونده ډیټا ډومینونو لپاره هم مسؤل دي. دوی سکیما ذخیره کوي، په هغې کې بدلون راولي، او په هغې کې ډاټا باروي. په ورته وخت کې ، دوی پخپله هرڅه پوهیږي: د ډیټا بارولو څرنګوالی بدل کړئ او هیڅ شی مات نه کړئ کله چې غوښتنلیک بدل شي. پوهه له منځه نه ځي. دوی اړتیا نلري د معلوماتو خلاصولو لپاره چیرې لاړ شي. ټیم پخپله دریم اړخ ته د تحلیلي معلوماتو چمتو کولو لپاره د عملیاتي ډیټا بدلولو څخه د بشپړ پراختیا دورې رهبري کوي. یو ټیم د ډومین سره تړلی هرڅه لري (دواړه د سوداګرۍ ډومین او ډیټا ډومین).
- د معلوماتو انجینر - د فیچر ټیم کې رول. دا باید یو فرد نه وي، مګر دا اړینه ده چې ټیم دا وړتیا ولري.
په ورته وخت کې، د ډیټا انجینرۍ ټیم ...
که تاسو تصور وکړئ چې دا ټول ستاسو د ګوتو په عکس سره احساس شوي، نو تاسو باید یوازې دوه پوښتنو ته ځواب ووایاست:
د ډیټا انجینرۍ ټیم به اوس څه وکړي؟ د دوډو پیزا انجینرۍ دمخه یو پلیټ فارم/SRE ټیم لري. د دې هدف دا دی چې پراختیا کونکو ته وسیلې ورکړي چې په اسانۍ سره خدمات ځای په ځای کړي. د ډیټا انجینرۍ ټیم به یوازې د معلوماتو لپاره ورته رول ترسره کړي.
عملیاتي ډیټا په تحلیلي معلوماتو بدلول یوه پیچلې پروسه ده. ټول شرکت ته د تحلیلي معلوماتو چمتو کول خورا ستونزمن دي. دا هغه ستونزې دي چې د ډیټا انجینرۍ ټیم به ورسره معامله وکړي.
موږ به د فیچر ټیم ته د وسیلو او تمرینونو اسانه سیټ چمتو کړو ترڅو دوی وکولی شي د دوی خدماتو څخه پاتې شرکت ته معلومات خپاره کړي. موږ به د ډیټا پایپ لاین عمومي زیربنایی برخو (قطارونه ، د باور وړ ذخیره ، په ډیټا کې د بدلونونو ترسره کولو لپاره کلسترونه) مسؤلیت هم ولرو.
د ډیټا انجینر مهارتونه به څنګه د فیچر ټیم کې څرګند شي؟ د فیچر ټیم سره دا ډیر پیچلی دی. البته، موږ کولی شو هڅه وکړو چې زموږ د هر ټیم لپاره د ډیټا انجنیر وګمارو. مګر دا خورا سخت دی. د ښه ډیټا ساینس شالید سره د یو چا موندل او د محصول ټیم کې کار کولو ته قانع کول ستونزمن دي.
د ډوډو لوی پلس دا دی چې موږ داخلي روزنې سره مینه لرو. نو اوس زموږ پلان دا دی: د ډیټا انجینرۍ ټیم د ځینې خدماتو څخه ډیټا خپرول پیل کوي ، ژاړي ، پخپله انجیکشن کوي ، مګر د کیکټس خوړلو ته دوام ورکوي. یوځل چې موږ پوه شو چې موږ د خپرولو پروسه په خپل ځای کې لرو، موږ یې د فیچر ټیم سره اړیکه پیل کوو.
موږ د دې کولو لپاره څو لارې لرو:
- ، چیرې چې موږ به تاسو ته د هغه پروسې په اړه وغږیږو چې موږ رامینځته کړي څه ډول ښکاري ، کوم وسیلې شتون لري ، او څنګه یې خورا مؤثره کارول کیږي.
- په DevForum کې خبرې کول به موږ سره د محصول پراختیا کونکو څخه فیډبیک راټولولو کې مرسته وکړي. له دې وروسته، موږ به وکولی شو د محصول ټیمونو سره یوځای شو او د دوی سره د معلوماتو خپرولو کې ستونزې حل کولو کې مرسته وکړو، او د ټیمونو لپاره روزنې تنظیم کړو.
د معلوماتو مصرف
اوس ما د معلوماتو خپرولو په اړه ډیرې خبرې کړې دي. مګر مصرف هم شتون لري. د دې مسلې په اړه څه؟
موږ یو په زړه پوری BI ټیم لرو چې د مدیریت شرکت لپاره خورا پیچلي راپورونه لیکي. د Dodo IS دننه زموږ د شریکانو لپاره ډیری راپورونه شتون لري چې دوی سره د دوی د پیزیریا اداره کولو کې مرسته کوي. زموږ په نوي ماډل کې، موږ د دوی په اړه د ډیټا مصرف کونکو په توګه فکر کوو چې د دوی خپل ډیټا ډومینونه لري. او دا هغه پیرودونکي دي چې د خپلو ډومینونو لپاره به مسؤل وي. ځینې وختونه د پیرودونکي ډومین د تحلیلي ګودام ته په یوه پوښتنه کې تشریح کیدی شي - او دا ښه دی. مګر موږ پوهیږو چې دا به تل کار ونکړي. له همدې امله موږ هغه پلیټ فارم غواړو چې موږ به یې د محصول ټیمونو لپاره رامینځته کړو ترڅو د دې وړ وي چې د ډیټا مصرف کونکو لخوا هم وکارول شي (په هرصورت ، د Dodo IS دننه راپورونو په صورت کې ، دا به ورته ټیمونه وي).
دا څنګه موږ ګورو چې په ډوډو پیزا انجینرۍ کې د ډیټا سره کار کول. موږ به خوښ یو چې پدې مسله ستاسو نظرونه په نظرونو کې ولولئ.
سرچینه: www.habr.com
