کی میز کے مندرجات[چھپائیں][دکھائیں]
Snapchat tweens اور نوجوانوں میں مشہور ہے۔ آپ شاید 25 سال سے اوپر ہیں اگر آپ یہ نہیں جان سکتے کہ یہ کیسے کام کرتا ہے۔ Snapchat، جو سوشل میڈیا کی مقبول ترین ایپلی کیشنز میں سے ایک ہے، بچوں اور نوعمروں کو بالکل وہی فراہم کرتا ہے جو وہ چاہتے ہیں: عام واقعات کو شیئر کرنے کا ایک آسان طریقہ اور انہیں ٹھنڈا ظاہر کرنے کا بھی۔
فیس بک اور ٹویٹر کے برعکس، جو آپ کی ہر چیز کو ریکارڈ اور شائع کرتے ہیں، اسنیپ چیٹ ایسے پیغامات کو استعمال کرتا ہے جو غائب ہونے والے ہیں (دیکھیں کہ وہ کیسے نہیں ہوتے)۔
Snapchat کے بارے میں بہت کچھ ہے، اور اگر آپ ایک ڈویلپر ہیں تو یہ اور بھی زیادہ ہے۔ لہذا، یہ پوسٹ آپ کو اسنیپ چیٹ کا اعلیٰ سطحی نظارہ دے گی۔ نظام ڈیزائن اور بہت زیادہ بصیرت.
تعارف
Snapchat امریکہ میں مقیم ہے۔ سماجی روابط ایپ جو صارفین کو فوری طور پر جڑنے، تصاویر کا اشتراک کرنے اور مزید بہت کچھ کرنے دیتی ہے۔
- پیغامات اور تصاویر (یا سنیپ) کے لیے 24 گھنٹے کی وقت کی حد ہوتی ہے۔ لوگوں کو گروپوں میں اپنی کہانیاں شیئر کرنے کی ترغیب دیتا ہے۔
- Snap Map صارفین کو نقشے پر دیکھنے کی اجازت دیتا ہے کہ ان کے دوست کہاں ہیں۔
- یادیں صارفین کو ان تصاویر کی یاد دلاتی ہیں جو انہوں نے ایک سال بعد محفوظ کی تھیں یا شیئر کی تھیں۔
- Snapchat نوجوان نسلوں، خاص طور پر نوعمروں میں بے حد مقبول ہے۔ ایپ پر 319 ملین فعال صارفین ہیں، اور ہر روز 5.4 بلین اسنیپ بھیجے جاتے ہیں۔
اہم ڈیزائن کی شرائط
یک سنگی فن تعمیر - ایک واحد ٹائرڈ ایپلی کیشن جو دوسرے ایپلی کیشنز سے آزادانہ طور پر کام کرتی ہے اسے یک سنگی (یک سنگل فن تعمیر) کے نام سے جانا جاتا ہے۔ ایک monolith کسی کام کو مکمل کرنے کے لیے درکار تمام سرگرمیوں کو انجام دینے اور ہینڈل کرنے کے لیے ڈیزائن کیا گیا ہے۔ ایپلی کیشن شروع سے آخر تک تمام افعال انجام دیتی ہے۔
مائیکروسافٹ - یہ یک سنگی کے مخالف قطبی ہے۔ مائیکروسافٹ ایک آرکیٹیکچرل نقطہ نظر ہے جو خدمات کے مجموعے کے طور پر ایک درخواست کو منظم کرتا ہے۔ یہ خدمات کسی درخواست کے بہت سے پہلوؤں کو کنٹرول کرنے کے لیے استعمال ہوتی ہیں۔ ایک گاہک آرڈر دیتا ہے، ایک ویٹر اسے لے کر ڈیلیور کرتا ہے، اور ایک شیف اسے تیار کرتا ہے۔ اس مثال میں، ہر جزو آزادانہ اور دوسروں سے الگ کام کرتا ہے۔ کوئی بھی نہیں جانتا کہ دوسرے کیا کر رہے ہیں، اور کسی کو بھی اسی معلومات تک رسائی نہیں ہے۔
JSON: یہ ایک ٹیکسٹ پر مبنی فارمیٹ ہے جو JavaScript اشیاء، لٹریلز، arrays اور ڈیٹا کو ظاہر کرنے کے لیے استعمال کیا جا سکتا ہے۔ متن پر مبنی یہ فارمیٹ پڑھنے اور لکھنے میں آسان ہونے کے ساتھ ساتھ سافٹ ویئر کے ذریعے ہضم ہونے کا ارادہ رکھتا ہے۔ JSON عام طور پر سرورز اور آن لائن ایپلیکیشنز کے درمیان ڈیٹا اور معلومات کی منتقلی کے لیے استعمال ہوتا ہے۔
آرکیسٹریشن: بہت سے کاموں کو خودکار کرنے کی تکنیک کو آرکیسٹریشن کہا جاتا ہے۔ ان ملازمتوں میں کمپیوٹر سسٹم اور سافٹ ویئر کنفیگریشن، کوآرڈینیشن اور ایڈمنسٹریشن شامل ہیں۔
پراکسی: ایک پراکسی وسیلہ تلاش کرنے والے کلائنٹ اور اسے فراہم کرنے والے سرور کے درمیان جانے کا کام کرتی ہے۔
میش: سروس میش ایک سافٹ ویئر آرکیٹیکچر پیٹرن ہے جو پراکسی کے ذریعے خدمات کے درمیان ریگولیٹڈ، قابل مشاہدہ، اور محفوظ مواصلت کی اجازت دینے کے لیے انفراسٹرکچر کی پرت میں ایک تہہ شامل کرتا ہے۔
ہائی لیول ڈیزائن
یک سنگی مسائل
اسنیپ چیٹ کی ابتدا گوگل ایپ انجن کی بنیاد پر کلاؤڈ بیسڈ مونولیتھ کے طور پر ہوئی۔ تاہم، جیسے جیسے پروگرام کی مقبولیت میں اضافہ ہوا اور اس نے زیادہ سے زیادہ صارفین اور ڈیٹا حاصل کیا، اسکیل ایبلٹی ایک مسئلہ بن گیا۔
مزید برآں، یک سنگی کے اندر ایک بڑے دھماکے کے رداس کے ساتھ، نظام بھر میں خلل زیادہ ممکن تھا۔ اسنیپ چیٹ کے مسائل میں سے ایک کی تعریف "عوام کا المیہ" کے طور پر کی گئی تھی، جس میں خصوصیات وسائل تک رسائی کے لیے مقابلہ کرتی تھیں۔ فیچرز ایپ کے لانچ کے وقت لوڈ ہو رہے تھے، جس سے کچھ فیچرز کو تیزی سے لوڈ ہونے کی اجازت دی گئی تھی لیکن دیگر کو سست لوڈ کرنے کی اجازت تھی۔
انجینئرز نے ترقیاتی نقطہ نظر سے اپنے اجزاء کی واضح مرئیت، علیحدگی اور ملکیت کی بھی کوشش کی، تاکہ سروس لچکدار اور موثر ہو سکے۔
تبدیلی
جیسے جیسے Snapchat میں توسیع ہوئی، فرم نے محسوس کیا کہ اسے اپنے یک سنگی بنیادی ڈھانچے کو چھوٹے، زیادہ موثر ٹکڑوں میں تقسیم کرنے کی ضرورت ہے۔ تاخیر کو کم کرنے کے لیے، تنظیم نے مائیکرو سروسز پر مبنی ڈیزائن تیار کرنے کا فیصلہ کیا۔
ان اہداف کو پورا کرنے کے لیے، Snapchat نے اپنے سافٹ ویئر کو Amazon DynamoDB کا استعمال کرتے ہوئے اپ ڈیٹ کرنے کا انتخاب کیا، ایک قابل توسیع NoSQL ڈیٹا بیس سروس۔ فرم اپنی کوششوں کے نتیجے میں درمیانی تاخیر کو 20% تک کم کرنے میں کامیاب رہی۔
کارپوریشن کے ذریعہ ایپ کو متعدد چھوٹی ایپلی کیشنز میں دوبارہ لکھا گیا تھا۔ اسنیپ چیٹ کا آغاز متعدد ایپلیکیشنز کے ساتھ ہوا، جس میں کیمرہ، چیٹ، یادیں، تصویر میں ترمیم، مواد کی کھپت، اور نقشہ شامل ہیں۔ اگرچہ ان پروگراموں کو ایک سنگل monolith میں ضم کرنا صارفین کے لیے آسان تھا، لیکن اس نے اچھی کارکردگی کو برقرار رکھنے کے معاملے میں ایک شدید تکنیکی مسئلہ کھڑا کر دیا۔
دوبارہ لکھنے کے لیے، کارپوریشن نے بہت سے بنیادی اصول بنائے۔ پہلے سے لوڈ نہ کریں؛ ہر خصوصیت اس کی اپنی ایپ ہونی چاہیے، اور یہ تیز ہونی چاہیے۔ اسنیپ چیٹ نے دوبارہ لکھنے کو فعال کرنے کے لیے کئی جگہوں پر ترمیم کو روک دیا، جس سے یہ سختی سے ایک تکنیکی کام بن گیا۔
اضافی خصوصیات کا انضمام
اسنیپ چیٹ کی کیمرہ ایپ میں دیگر چیزوں کے علاوہ لینز، فلٹرز، بٹ موجیز، اور اگمینٹڈ ریئلٹی اینیمیشنز شامل کرنے کی صلاحیت موجود ہے۔ اسنیپ چیٹ کی چیٹ ایپ صارفین کو تصاویر کو ذخیرہ کرنے، گفتگو کو محفوظ کرنے، جذباتی نشانات شامل کرنے اور مزید بہت کچھ کرنے کی بھی اجازت دیتی ہے۔
اسنیپ چیٹ کا نقشہ، دوسری چیزوں کے علاوہ، آپ کو دوست کی نگرانی کرنے کی اجازت دیتا ہے اگر وہ آپ کو چاہیں۔ یادیں، تصویر میں ترمیم، اور مواد کی کھپت سبھی اپنی منفرد صلاحیتوں کے ساتھ الگ الگ Snapchat ایپس ہیں۔
یادیں آپ کو بعد میں استعمال کے لیے تصاویر یا ویڈیوز کو ذخیرہ کرنے یا ان میں ترمیم کرنے کے ساتھ ساتھ انہیں اپ لوڈ یا بھیجنے کی اجازت دیتی ہیں۔ صارفین فلموں کو کاٹنے، ٹیکسٹ شامل کرنے، اسٹیکرز شامل کرنے اور بہت کچھ کرنے کے لیے تصویری ترمیم کا بھی استعمال کر سکتے ہیں۔
Snapchat کے بیرونی مواد کی کھپت سے مراد وہ ہے جو یہ صارفین کو مختلف پیرامیٹرز کی بنیاد پر دکھاتا ہے۔
مائیکروسافٹ
پروگرام اس وقت نیٹ ورک کے سوالات کرنے کے لیے JSON پر بڑے پیمانے پر انحصار کرتا تھا۔ تاہم، JSON کو پارس کرنا وقت طلب اور غیر موثر تھا۔ Snapchat نے اس مسئلے سے نمٹنے کے لیے JSON کے استعمال کو لاگو کرنے کی تفصیل کے طور پر ماسک کرنے کے لیے ایک مرکزی نیٹ ورک مینجمنٹ API کا استعمال کیا۔
مائیکرو سروسز ایپلی کیشن اسٹیٹ مینجمنٹ، سروس کمیونیکیشن، اور ناکامی کے انتظام کے چیلنجوں کو متعارف کراتی ہیں۔ Snapchat نے ایک مضبوط اور قابل بھروسہ نظام بنانے کے لیے آرکیسٹریشن کی مشکلات پر قابو پانے کے لیے Temporal جیسی اوپن سورس ٹیکنالوجیز کا استعمال کیا۔
نتیجے کے طور پر، تنظیم نے سروس میش ڈیزائن پیٹرن کو استعمال کرنے کا فیصلہ کیا. اس پیٹرن کو حاصل کرنے کے لیے Snapchat نے Envoy، ایک اور اوپن سورس ٹول کا استعمال کیا جو پراکسی کے طور پر کام کرتا ہے۔ ایلچی نے بنیادی ڈھانچے کے ذریعے سروس ٹریفک کے بہاؤ کا انتظام کیا، جس سے ڈویلپرز کو ممکنہ مشکلات کا سامنا کرنا پڑا۔
اسنیپ چیٹ نے سروس میش کے اندر سوئچ بورڈ نامی ایک اندرونی ایپ بنائی۔ سوئچ بورڈ نے Snap کی خدمات کے لیے ایک کنٹرول پینل کے طور پر کام کیا، جس سے صارفین کو ٹریفک کو منتقل کرنے، سروس کے انحصار کا انتظام کرنے کی اجازت ملتی ہے (ایک خصوصیت جو ایک سروس کو دوسروں کی حالت پر منحصر کرنے کی اجازت دیتی ہے) اور ڈرین ریجنز۔
خدمات کے اندر ممکنہ کنفیگریشنز کی پیچیدگی کو آسان بنانے کے لیے، پورے Envoy API کو سامنے لانے کے بجائے سوئچ بورڈ کا استعمال کیا گیا۔ سروس میش کی بدولت اسنیپ کے پاس اپنی مائیکرو سروسز کے لیے ایک مشترکہ اندرونی اور علاقائی نیٹ ورک ہے۔
ایک ہی علاقے کے اندر خدمات عوامی انٹرنیٹ استعمال کیے بغیر ایک دوسرے سے منسلک ہو سکتی ہیں، اور کوئی بھی بیرونی نیٹ ورک ٹریفک اندرونی نیٹ ورک کے حصوں سے رابطہ نہیں کر سکتا۔
سیکیورٹی وجوہات کی بنا پر صرف گیٹ ویز ہی خود کو انٹرنیٹ کے سامنے لانے کے مجاز ہوں گے۔ API گیٹ وے، مثال کے طور پر، آسانی سے سامنے کے دروازوں کے طور پر کام کر سکتے ہیں، کلائنٹس/صارفین کی درخواستوں پر کارروائی کرتے ہیں اور نیٹ ورک کے ساتھ ساتھ روٹ کرتے ہیں۔
نیٹ ورک اور API گیٹ وے
اسنیپ چیٹ کلائنٹ کے تمام سوالات API گیٹ وے کے ذریعے آتے ہیں۔ یہ وہی ایلچی امیج استعمال کرتا ہے اور اسی کنٹرول پلین سے جڑتا ہے جیسے ہماری اندرونی مائیکرو سروسز۔ ہمارا کنٹرول پلین ہمیں حسب ضرورت ایلچی فلٹرز کو فعال کرنے کی اجازت دیتا ہے۔
اسنیپ چیٹ کے تصدیقی نظام کے ساتھ ساتھ ہماری شرح کو محدود کرنے اور لوڈ شیڈنگ کی ٹیکنالوجیز کو ان فلٹرز کے ذریعے ہینڈل کیا جاتا ہے۔ فلٹر کا سلسلہ مکمل ہونے کے بعد ایلچی متعلقہ مائیکرو سروس کو درخواستیں بھیجنے کے لیے سروس میش کا استعمال کرتا ہے۔
نتیجہ
اسنیپ چیٹ کا API گیٹ وے بیرونی ٹریفک کو ایپ کی بہت سی خصوصیات کی طرف لے جاتا ہے۔ کنفیگریشن سٹیٹس میں ترمیم کرنے کے لیے صارفین کی درخواستوں کا انتظام سرورز کے ذریعے کیا جاتا ہے، جس کے بعد ڈیٹا فراہم کریں اور ایپ کی متعدد خدمات پر واپس معلومات۔
مجموعی طور پر، اسنیپ چیٹ کے موجودہ ڈیزائن کا موازنہ ایک ہی آپریٹنگ سسٹم پر چلنے والے کئی پروگراموں سے کیا جا سکتا ہے، جو اس صورت میں اسنیپ چیٹ ایپ ہے۔ میں نے آپ کو اسنیپ چیٹ سسٹم کے ڈیزائن کا اعلیٰ سطحی جائزہ فراہم کرنے کی بہت کوشش کی۔ مجھے امید ہے کہ آپ نے یہ مفید پایا۔
جواب دیجئے