3.0

انگریزی میں دیکھیں

3.0 حصہ 3 کا تعارف: نظام

فن تعمیر ان فیصلوں کا مجموعہ ہے جنہیں الٹنا مہنگا ہوتا ہے۔ آپ نظام کو حصوں میں کیسے تقسیم کرتے ہیں؟ وہ حصے آپس میں کیسے بات کرتے ہیں؟ ڈیٹا کا ماڈل کیسے بنتا ہے؟ اور پورا نظام بوجھ اور ناکامی کے تحت کیسا برتاؤ کرتا ہے؟ حصہ 3 ان فیصلوں کو جان بوجھ کر کرنے کے بارے میں ہے۔ چھوٹی ٹیم میں فن تعمیر چند ذہنوں میں رہ سکتا ہے اور آگے بڑھتے ہوئے ارتقا کر سکتا ہے۔ بڑے ادارے میں (سینکڑوں انجینئر، درجنوں ٹیمیں، ایسے نظام جو انہیں بنانے والوں کے کیریئر سے زیادہ جئیں گے) فن تعمیر وہ چیز بن جاتا ہے جو سب کو ہم آہنگ رکھتی ہے۔ جب وہ واضح ہو تو ٹیمیں ٹکرائے بغیر آزادانہ آگے بڑھتی ہیں۔ جب وہ مبہم ہو تو ہر ٹیموں کے پار انحصار مذاکرات بن جاتا ہے، اور ہر واقعہ آثار قدیمہ کا منصوبہ۔

داؤ انٹرپرائز اور حکومت میں سب سے اونچے ہیں۔ ٹیکس کا انجن، فوائد کا پلیٹ فارم، قومی صحت کا ریکارڈ، یا بینک کا بنیادی کھاتہ طویل العمر، بھاری ضابطے والا، محکموں کے پار مشترک، اور عوام کو جوابدہ ہوتا ہے۔ جوڑ، ڈیٹا کی ملکیت، اور معیاری خصوصیات کے بارے میں آج آپ کے فیصلے ایک دہائی یا اس سے زیادہ کے لیے ممکنات کو محدود کریں گے۔ ضابطہ ساز اور آڈیٹر تیزی سے دستاویزی، قابل دفاع فن تعمیر کی توقع کرتے ہیں، حقیقی شہادت کے ساتھ کہ اعتبار، سلامتی، رازداری، اور پائیداری کو ڈیزائن میں رکھا گیا، بعد میں چپکایا نہیں گیا۔ سرخیاں بننے والی ناکامیاں فن تعمیر کی ناکامیاں ہیں: پورٹل جو لانچ کے دن بیٹھ جاتے ہیں، فائلنگ کے نظام جو آخری تاریخ پر ٹائم آؤٹ ہو جاتے ہیں، منتقلیاں جو ریکارڈ کھو دیتی ہیں یا دو بار گنتی ہیں۔

یہ حصہ پائیدار بنیادوں سے شروع ہوتا ہے، ٹھوس ساختی انتخابات سے گزرتا ہے، پھر تقسیم، ڈیٹا، اور پیمانے کی حقیقتوں میں جاتا ہے، اور اس مشکل ترین مسئلے پر ختم ہوتا ہے جس کا زیادہ تر بڑے ادارے دراصل سامنا کرتے ہیں: ان نظاموں کو جدید کرنا جو وہ پہلے سے چلا رہے ہیں۔ جو دھاگا سب کو باندھتا ہے: اچھا فن تعمیر شعوری سمجھوتوں کا سلسلہ ہے، فیشن کا ڈیفالٹ نہیں۔

اس حصے کے ابواب

  • 3.1 فن تعمیر کی بنیادیں۔ پائیدار اوزار جو ٹیکنالوجی کے فیشن سے بچ نکلتے ہیں: معیاری خصوصیات (the “-ilities”)، فن تعمیر کے لیے اہم تقاضے، فٹنس فنکشنز (خودکار ٹیسٹ جو منتخب فن تعمیری معیار کی حفاظت کرتے ہیں) اور ارتقائی فن تعمیر، C4 ماڈل (چار زوم سطحوں پر تہہ دار فن تعمیر کے خاکے) اور arc42 (فن تعمیر کی دستاویزات کا سانچہ) کے ساتھ ہلکی دستاویزات، اور منظم سمجھوتوں کا تجزیہ۔

  • 3.2 فن تعمیر کے اسالیب اور نمونے۔ نظام کی بڑی شکلوں کا جائزہ، یک سنگی سے مائیکرو سروسز تک، ایونٹ پر مبنی فن تعمیر جس میں CQRS (Command Query Responsibility Segregation، جو پڑھنے کے ماڈلز کو لکھنے کے ماڈلز سے الگ کرتا ہے) اور ایونٹ سورسنگ (حالت کو ایونٹس کے صرف اضافہ ہونے والے لاگ کے طور پر محفوظ کرنا)، سروس میش (سروس سے سروس رابطے کے لیے مخصوص انفراسٹرکچر کی تہہ) اور گیٹ ویز، سرور لیس، اور ہیکساگونل اور صاف فن تعمیر، اس رہنمائی کے ساتھ کہ ہر ایک کب موزوں ہے، کونوے کے قانون (نظام اس ادارے کے رابطے کے ڈھانچے کی عکاسی کرتے ہیں جو انہیں بناتا ہے) کی روشنی میں۔

  • 3.3 تقسیم شدہ نظام۔ وہ سخت حقیقتیں جو نیٹ ورک کی حد پار کرتے ہی سامنے آتی ہیں (ناقابل اعتماد نیٹ ورک، جزوی ناکامی، کوئی مشترک گھڑی نہیں)، اور معیاری دفاع: مطابقت پر استدلال، یکسانیت (عمل کو دہرانے کے لیے محفوظ بنانا)، بیک آف کے ساتھ دوبارہ کوششیں، سرکٹ بریکرز (جو ناکام انحصار کو کال کرنا روک دیتے ہیں)، ساگاز (مقامی ٹرانزیکشنز کے سلسلے جن کے ساتھ تلافی کے واپسی کے قدم ہوں)، اور تقسیم شدہ مشاہدہ پذیری۔

  • 3.4 ڈیٹا کا فن تعمیر اور ذخیرہ۔ ڈیٹا کا ماڈل کیسے بنتا ہے، کیسے محفوظ ہوتا ہے، کیسے مطابقت میں رکھا جاتا ہے، اور بڑے پیمانے پر تیزی سے کیسے پیش ہوتا ہے: ذخیرے کے بڑے نمونے اور ہر ایک کب استعمال کرنا ہے، پولی گلوٹ پرسسٹنس (ایک نظام میں کئی مخصوص ڈیٹا اسٹورز استعمال کرنا)، اسکیما کا ارتقا اور منتقلی، کیشنگ اور CDNs (مواد کی ترسیل کے نیٹ ورک)، اور بوجھ تلے ٹرانزیکشنز اور ہم زمانیت۔

  • 3.5 وسعت پذیری، کارکردگی، اور لچک۔ تین الگ خصوصیات جو بعد میں چپکانے کے بجائے ڈیزائن میں رکھی جاتی ہیں: افقی اور عمودی پیمائش، بے حالتی اور شارڈنگ (ڈیٹا کو کلید کے مطابق مشینوں میں تقسیم کرنا)، لوڈ بیلنسنگ اور خودکار پیمائش، کارکردگی کے بجٹ، لچک کے نمونے اور افراتفری انجینئرنگ، اور RTO (recovery time objective) اور RPO (recovery point objective) کے ساتھ کثیر خطہ آفت سے بحالی۔

  • 3.6 پرانے نظاموں کی جدید کاری۔ بتدریج نمونے جو دراصل کام کرتے ہیں، اسٹرینگلر فِگ (نئے نظام کو پرانے کے گرد اگانا جب تک پرانا ریٹائر نہ ہو سکے) اور تجرید کے ذریعے شاخ (ترقی کی مرکزی لائن پر انٹرفیس کے پیچھے جزو بدلنا)، ساتھ پرانے نظام کے خطرے کا جائزہ، مین فریم اور COBOL (Common Business-Oriented Language) کی نگہبانی، ڈیٹا کی منتقلی اور دوہری چلت، اور بڑی دوبارہ تحریر کی ترغیب کی مزاحمت جو میدان کی مہنگی ترین ناکامیاں پیدا کرتی ہے۔

  • 3.7 سافٹ ویئر کی دیکھ بھال۔ سافٹ ویئر کی زندگی کا غالب مرحلہ: اصلاحی، موافقتی، تکمیلی، اور احتیاطی دیکھ بھال، پروگرام کی فہم اور دوبارہ انجینئرنگ، اور دیکھ بھال کی اہلیت کے لیے ڈیزائن تاکہ طویل العمر نظام بدلنے کے لیے سستے رہیں۔

  • 3.8 باہمی عملیت اور کھلے معیارات۔ ایسے نظام ڈیزائن کرنا جو حسب ضرورت انضمام کے بجائے کھلے معیارات کے ذریعے باہم کام کریں: تکنیکی، نحوی، اور معنوی باہمی عملیت، صحت میں FHIR جیسے ڈومین معیارات، اور ملکیتی قید کی لاگت۔

  • 3.9 سسٹمز انجینئرنگ۔ پیچیدہ نظاموں کی شروع سے آخر تک انجینئرنگ، اکثر سافٹ ویئر، ہارڈ ویئر، لوگوں، اور عمل کو ملا کر: زندگی کا چکر، تقاضوں کی تقسیم اور سراغ پذیری، انٹرفیسز، انضمام، اور توثیق و تصدیق۔

  • 3.10 ایمبیڈڈ اور ریئل ٹائم نظام۔ تنگ پابندیوں والے آلات کا سافٹ ویئر: ریئل ٹائم رویہ اور تعین پسندی، RTOS یا bare-metal فرم ویئر، محدود میموری اور بجلی، ہارڈ ویئر سے تعامل، اور حفاظت کے لیے نازک معیارات۔

  • 3.11 کلاؤڈ فن تعمیر۔ ڈیٹا سینٹر کو اٹھا کر منتقل کرنے کے بجائے کلاؤڈ کے لیے ڈیزائن: سروس ماڈلز اور سرور لیس، خطے اور دستیابی کے زونز بطور ناکامی کے دائرے، مشترک ذمہ داری کا ماڈل، منظم سروس اور قید کے سمجھوتے، کثیر کلاؤڈ اور ہائبرڈ جب وہ اپنی پیچیدگی کا جواز دیں، اور لاگت سے باخبر، اچھی طرح تعمیر شدہ ڈیزائن۔

  • 3.12 ایونٹ پر مبنی فن تعمیر اور پیغام رسانی۔ ایسے نظام بنانا جو ایونٹس پیدا کر کے اور ان پر ردعمل دے کر رابطہ کریں: قطاریں بمقابلہ پائیدار سٹریمز، کوریوگرافی بمقابلہ آرکسٹریشن، ایونٹ سورسنگ اور CQRS جہاں وہ اپنی جگہ کمائیں، تقسیم شدہ ٹرانزیکشنز کے لیے ساگاز، ترسیل کی ضمانتیں اور یکسانیت، اور وہ نمونے جو غیر ہم وقت بہاؤ کو قابل اعتماد رکھتے ہیں۔

  • 3.13 نیٹ ورکنگ اور رابطہ کاری۔ وہ نیٹ ورکنگ جس سے ایپلیکیشن انجینئر دراصل نمٹتا ہے: DNS، TCP اور HTTP کا ارتقا، TLS ٹرمینیشن، لوڈ بیلنسنگ اور ریورس پراکسیز، مواد کی ترسیل اور ایج، سروس کی دریافت اور سروس میش، اور ٹائم آؤٹ، دوبارہ کوششیں، اور سرکٹ بریکرز جو نیٹ ورک کی ناقابل اعتمادی کو قابل برداشت بناتے ہیں۔

  • 3.14 ملٹی ٹیننسی اور SaaS فن تعمیر۔ بہت سے گاہکوں کو ایک سافٹ ویئر انسٹینس سے پیش کرنا بغیر اس کے کہ وہ ایک دوسرے کو دیکھیں یا بھوکا ماریں: تنہائی بمقابلہ کارکردگی کا طیف، ڈیٹا کی تقسیم، شور مچانے والے ہمسایوں کے خلاف فی کرایہ دار کوٹے، کرایہ دار کی زندگی کا چکر، اور لاگت کی نسبت۔

  • 3.15 کیشنگ اور مواد کی ترسیل۔ کیش کے درجہ بندی (کلائنٹ، ایج اور CDN، ریورس پراکسی، ایپلیکیشن، اور ڈیٹا اسٹور) میں تھوڑی باسی پن کو لیٹنسی، بوجھ، اور لاگت میں بڑے فائدوں کے بدلے تجارت کرنا، جبکہ کیش کی منسوخی اور بھگدڑ سے تحفظ کو اولین ڈیزائن سمجھنا۔

  • 3.16 API گیٹ ویز اور سروس میش۔ API گیٹ وے پر شمال-جنوب ٹریفک (روٹنگ، تصدیق، شرح کی حد، ترکیب) اور سروس میش کے ذریعے مشرق-مغرب ٹریفک (باہمی TLS، ٹریفک کی منتقلی، دوبارہ کوششیں، مشاہدہ پذیری) سنبھالنا، اور یہ طے کرنا کہ میش اپنی پیچیدگی کب کماتا ہے۔

  • 3.17 تلاش اور معلومات کی بازیافت۔ تلاش کو اولین درجے کا نظام سمجھنا، الٹی انڈیکس اور مطابقت کی درجہ بندی سے لے کر سوال کی فہم، پہلوؤں، اور ویکٹر اور ہائبرڈ بازیافت تک، اندازے کے بجائے حقیقی مطابقت کی جانچ کے ساتھ۔

یہ ابواب باہم کیسے جڑتے ہیں

ابواب ایک دوسرے پر ترتیب سے بنتے ہیں۔ باب 3.1 آپ کو وہ لغت دیتا ہے (معیاری خصوصیات اور سمجھوتوں کا تجزیہ) جو ہر بعد کا باب استعمال کرتا ہے؛ جن “-ilities” کا یہ نام لیتا ہے وہی ہیں جنہیں ابواب 3.4 اور 3.5 ٹھوس بناتے ہیں۔ باب 3.2 ان بنیادوں کو ساختی انتخابات میں بدلتا ہے، اور جو زیادہ تقسیم شدہ اسالیب یہ تجویز کرتا ہے (مائیکرو سروسز، ایونٹ پر مبنی، سروس میش) وہ لاگتیں لاتے ہیں جنہیں سنبھالنا باب 3.3 سکھاتا ہے۔ ابواب 3.3، 3.4، اور 3.5 ایک دوسرے پر بھاری انحصار کرتے ہیں: تقسیم ڈیٹا کے فن تعمیر کے مطابقت اور پائیداری کے فیصلے مجبور کرتی ہے، اور تقسیم اور ڈیٹا مل کر طے کرتے ہیں کہ آپ دراصل کون سی وسعت پذیری اور لچک تک پہنچ سکتے ہیں۔ باب 3.6 دائرہ مکمل کرتا ہے، کیونکہ زیادہ تر بڑے ادارے خالی صفحے پر نہیں بنا رہے: وہ ریکارڈ کے نظاموں کو ارتقا دے رہے ہیں جو پہلے کے ابواب کے بیان کردہ ہر انتخاب کو محدود کرتے ہیں۔

حصہ 3 باہر کی طرف بھی پہنچتا ہے۔ باب 3.2 اچھی سروس کی حدیں ڈھونڈنے کے لیے باب 2.2 کے ڈیزائن کے اصولوں اور ڈومین ڈرائیون ڈیزائن پر کھینچتا ہے۔ ان نظاموں کو چلتا رکھنے والے آپریشنل نظم و ضبط حصہ 9 میں ہیں: سائٹ ریلائیبلٹی انجینئرنگ (باب 9.1) اور مشاہدہ پذیری (باب 9.2) وہ جگہیں ہیں جہاں فن تعمیری لچک پروڈکشن میں ثابت ہوتی ہے۔ سلامتی اور رازداری کی وہ خصوصیات جن کا ضابطہ ساز تقاضا کرتے ہیں یہاں ڈیزائن ہوتی ہیں مگر حصہ 4 میں تفصیل سے بیان ہوتی ہیں، اور حصہ 8 کے پلیٹ فارم اور ترسیل کے عمل طے کرتے ہیں کہ آیا فن تعمیر کو بہت سی ٹیمیں ایک ساتھ بھیج اور چلا سکتی ہیں۔