DevOps کی ضرورت کیوں ہے اور DevOps کے ماہرین کون ہیں؟

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

DevOps کے تصور میں کون سے طرز عمل شامل ہیں اور ان کی ضرورت کیوں ہے؟ DevOps انجینئرز کیا کرتے ہیں اور انہیں کیا کرنے کے قابل ہونا چاہئے؟ EPAM کے ماہرین ان اور دیگر سوالات کا جواب دیتے ہیں: Kirill Sergeev، سسٹم انجینئر اور DevOps مبشر، اور Igor Boyko، معروف سسٹم انجینئر اور کمپنی کی DevOps ٹیموں میں سے ایک کے کوآرڈینیٹر۔

DevOps کی ضرورت کیوں ہے اور DevOps کے ماہرین کون ہیں؟

DevOps کی ضرورت کیوں ہے؟

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

DevOps کیا ہے؟

یہ ایک اچھا سوال ہے - اور ایک متنازعہ: دنیا ابھی تک اس پر متفق نہیں ہوئی ہے۔ EPAM کا خیال ہے کہ DevOps ایک ٹیم کے اندر ٹیکنالوجیز، عمل اور بات چیت کی ثقافت کو یکجا کرتا ہے۔ اس ایسوسی ایشن کا مقصد اختتامی صارفین تک مسلسل قدر فراہم کرنا ہے۔

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

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

DevOps کی ضرورت کیوں ہے اور DevOps کے ماہرین کون ہیں؟

DevOps ثقافت کا جوہر کیا ہے؟

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

DevOps ثقافت میں سب سے اہم چیز مسئلہ کو حل کرنا ہے، نہ کہ صرف DevOps طریقوں کو لاگو کرنا۔ مزید یہ کہ، ان طریقوں کو "کسی کی طرف" نہیں بلکہ پوری پروڈکٹ میں لاگو کیا جاتا ہے۔ کسی پروجیکٹ کے لیے ڈیو اوپس انجینئر کی ضرورت نہیں ہوتی ہے - اسے کسی مسئلے کے حل کی ضرورت ہوتی ہے، اور ڈی او اوپس انجینئر کا کردار مختلف مہارتوں کے ساتھ ٹیم کے کئی اراکین میں تقسیم کیا جا سکتا ہے۔

DevOps طریقوں کی اقسام کیا ہیں؟

DevOps پریکٹس سافٹ ویئر لائف سائیکل کے تمام مراحل کا احاطہ کرتی ہیں۔

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

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

CI/CD مراحل پر، کوڈ کوالٹی گیٹس سے گزرتا ہے۔ ان کی مدد سے، وہ چیک کرتے ہیں کہ ڈویلپر کے ورک سٹیشن سے نکلنے والا کوڈ معیار کے مخصوص معیار پر پورا اترتا ہے۔ یونٹ اور UI ٹیسٹنگ یہاں شامل کی گئی ہے۔ تیز، بے درد اور مرکوز مصنوعات کی تعیناتی کے لیے، آپ مناسب تعیناتی کی قسم کا انتخاب کر سکتے ہیں۔

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

DevOps طریقوں کے کیا فوائد ہیں؟

اگر ہم جدید DevOps طریقوں پر ایک درسی کتاب لکھ رہے ہیں، تو پہلے صفحہ پر تین نکات ہوں گے: آٹومیشن، ریلیز کو تیز کرنا، اور صارفین کی جانب سے تیز رفتار رائے۔

کیرل سرجیف: "پہلی چیز آٹومیشن ہے۔ ہم ٹیم میں تمام تعاملات کو خودکار کر سکتے ہیں: کوڈ لکھا - اسے رول آؤٹ کیا - اسے چیک کیا - اسے انسٹال کیا - تاثرات جمع کیے - شروع میں واپس آئے۔ یہ سب خودکار ہے۔

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

تیسرا صارف کے تاثرات میں تیزی ہے۔ اگر اس کے پاس تبصرے ہیں، تو ہم فوری طور پر ایڈجسٹمنٹ کر سکتے ہیں اور درخواست کو فوری طور پر اپ ڈیٹ کر سکتے ہیں۔

DevOps کی ضرورت کیوں ہے اور DevOps کے ماہرین کون ہیں؟

"سسٹم انجینئر"، "بلڈ انجینئر" اور "DevOps انجینئر" کے تصورات کا تعلق کیسے ہے؟

وہ اوورلیپ ہوتے ہیں، لیکن قدرے مختلف علاقوں سے تعلق رکھتے ہیں۔

EPAM میں سسٹم انجینئر ایک عہدہ ہے۔ وہ مختلف سطحوں میں آتے ہیں: جونیئر سے لے کر چیف اسپیشلسٹ تک۔

ایک بلڈ انجینئر ایک ایسا کردار ہے جو کسی پروجیکٹ پر انجام دیا جاسکتا ہے۔ اب یہ وہی ہے جسے CI/CD کے ذمہ دار لوگ کہتے ہیں۔

DevOps انجینئر ایک ماہر ہوتا ہے جو کسی پروجیکٹ پر DevOps طریقوں کو نافذ کرتا ہے۔

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

ڈی او اوپس انجینئر بالکل کیا کرتا ہے؟

DevOps انجینئرز ان تمام ٹکڑوں کو اکٹھا کرتے ہیں جو ایک پروجیکٹ بناتے ہیں۔ وہ پروگرامرز، ٹیسٹرز، سسٹم ایڈمنسٹریٹرز کے کام کی تفصیلات جانتے ہیں اور ان کے کام کو آسان بنانے میں مدد کرتے ہیں۔ وہ کاروبار کی ضروریات اور ضروریات کو سمجھتے ہیں، ترقی کے عمل میں اس کے کردار کو سمجھتے ہیں - اور گاہک کے مفادات کو مدنظر رکھتے ہوئے اس عمل کو تیار کرتے ہیں۔

ہم نے آٹومیشن کے بارے میں بہت بات کی ہے - یہی وہ چیز ہے جس سے DevOps انجینئر سب سے پہلے اور سب سے اہم معاملہ کرتے ہیں۔ یہ ایک بہت بڑی چیز ہے، جس میں دیگر چیزوں کے ساتھ ساتھ ماحول کی تیاری بھی شامل ہے۔

کیرل سرجیف: "مصنوعات میں اپ ڈیٹس کو نافذ کرنے سے پہلے، انہیں تیسرے فریق کے ماحول میں جانچنے کی ضرورت ہے۔ اسے DevOps انجینئرز نے تیار کیا ہے۔ وہ مجموعی طور پر پروجیکٹ پر ایک DevOps کلچر پیدا کرتے ہیں: وہ اپنے پروجیکٹس کی تمام پرتوں پر DevOps طریقوں کو متعارف کراتے ہیں۔ یہ تین اصول: آٹومیشن، سادگی، سرعت - وہ جہاں تک پہنچ سکتے ہیں وہاں لے آتے ہیں۔

DevOps انجینئر کو کیا معلوم ہونا چاہئے؟

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

1. پروگرامنگ زبانیں۔

DevOps انجینئرز آٹومیشن کے لیے کئی بنیادی زبانیں جانتے ہیں اور مثال کے طور پر، ایک پروگرامر کو بتا سکتے ہیں: "آپ کوڈ کو ہاتھ سے نہیں، بلکہ ہماری اسکرپٹ کا استعمال کرتے ہوئے کیسے انسٹال کریں گے، جو ہر چیز کو خودکار کرتا ہے؟ ہم اس کے لیے ایک کنفگ فائل تیار کریں گے، یہ آپ اور ہمارے دونوں کے لیے پڑھنے میں آسان ہو گی، اور ہم اسے کسی بھی وقت تبدیل کر سکیں گے۔ ہم یہ بھی دیکھیں گے کہ کون، کب اور کیوں اس میں تبدیلی کرتا ہے۔

ایک DevOps انجینئر ان میں سے ایک یا زیادہ زبانیں سیکھ سکتا ہے: Python, Groovy, Bash, Powershell, Ruby, Go۔ انہیں گہری سطح پر جاننا ضروری نہیں ہے - نحو کی بنیادی باتیں، OOP اصول، اور آٹومیشن کے لیے سادہ سکرپٹ لکھنے کی صلاحیت کافی ہے۔

2. آپریٹنگ سسٹمز

ایک DevOps انجینئر کو یہ سمجھنا چاہیے کہ پروڈکٹ کو کس سرور پر انسٹال کیا جائے گا، یہ کس ماحول میں چلے گا، اور یہ کن سروسز کے ساتھ تعامل کرے گا۔ آپ ونڈوز یا لینکس فیملی میں مہارت حاصل کرنے کا انتخاب کر سکتے ہیں۔

3. ورژن کنٹرول سسٹم

ورژن کنٹرول سسٹم کے علم کے بغیر، ایک DevOps انجینئر کہیں نہیں ہے۔ Git اس وقت سب سے زیادہ مقبول نظاموں میں سے ایک ہے۔

4. کلاؤڈ فراہم کرنے والے

AWS، Google، Azure - خاص طور پر اگر ہم ونڈوز کی سمت کے بارے میں بات کر رہے ہیں۔

کیرل سرجیف: "کلاؤڈ فراہم کرنے والے ہمیں ورچوئل سرور فراہم کرتے ہیں جو CI/CD میں بالکل فٹ ہوتے ہیں۔

دس فزیکل سرورز کو انسٹال کرنے کے لیے تقریباً سو دستی آپریشنز کی ضرورت ہوتی ہے۔ ہر سرور کو دستی طور پر لانچ کیا جانا چاہیے، مطلوبہ آپریٹنگ سسٹم کو انسٹال اور کنفیگر کرنا چاہیے، ان دس سرورز پر ہماری ایپلیکیشن انسٹال کرنی چاہیے، اور پھر ہر چیز کو دس بار دو بار چیک کرنا چاہیے۔ کلاؤڈ سروسز اس طریقہ کار کو کوڈ کی دس لائنوں سے بدل دیتی ہیں، اور ایک اچھا DevOps انجینئر ان کے ساتھ کام کرنے کے قابل ہونا چاہیے۔ اس سے وقت، محنت اور پیسے کی بچت ہوتی ہے – گاہک اور کمپنی دونوں کے لیے۔

5. آرکیسٹریشن سسٹم: ڈوکر اور کبرنیٹس

کیرل سرجیف: "ورچوئل سرورز کو کنٹینرز میں تقسیم کیا گیا ہے، جن میں سے ہر ایک میں ہم اپنی ایپلیکیشن انسٹال کر سکتے ہیں۔ جب بہت سارے کنٹینرز ہوتے ہیں، تو آپ کو ان کا انتظام کرنے کی ضرورت ہوتی ہے: ایک کو آن کریں، دوسرے کو آف کریں، کہیں بیک اپ بنائیں۔ یہ کافی پیچیدہ ہو جاتا ہے اور اس کے لیے آرکیسٹریشن سسٹم کی ضرورت ہوتی ہے۔

پہلے، ہر ایپلیکیشن کو ایک الگ سرور کے ذریعے ہینڈل کیا جاتا تھا - اس کے آپریشن میں کوئی بھی تبدیلی ایپلی کیشن کی خدمت کو متاثر کر سکتی ہے۔ کنٹینرز کی بدولت، ایپلی کیشنز الگ تھلگ ہو جاتی ہیں اور الگ الگ چلتی ہیں - ہر ایک اپنی اپنی ورچوئل مشین پر۔ اگر کوئی ناکامی ہوتی ہے، تو اس کی وجہ تلاش کرنے میں وقت ضائع کرنے کی ضرورت نہیں ہے۔ پرانے کنٹینر کو تباہ کرنا اور نیا شامل کرنا آسان ہے۔"

6. کنفیگریشن سسٹم: شیف، جواب دہ، کٹھ پتلی

جب آپ کو سرورز کے پورے بیڑے کو برقرار رکھنے کی ضرورت ہوتی ہے، تو آپ کو ایک ہی قسم کے بہت سارے آپریشن کرنے ہوتے ہیں۔ یہ طویل اور مشکل ہے، اور دستی کام بھی غلطی کا امکان بڑھاتا ہے۔ یہ وہ جگہ ہے جہاں کنفیگریشن سسٹم بچاؤ کے لیے آتے ہیں۔ ان کی مدد سے، وہ ایک اسکرپٹ بناتے ہیں جو پروگرامرز، DevOps انجینئرز، اور سسٹم ایڈمنسٹریٹرز کے لیے پڑھنا آسان ہے۔ یہ اسکرپٹ سرورز پر خود بخود وہی آپریشن کرنے میں مدد کرتا ہے۔ یہ دستی کارروائیوں کو کم کرتا ہے (اور اس وجہ سے غلطیاں)۔

DevOps انجینئر کس قسم کا کیریئر بنا سکتا ہے؟

آپ افقی اور عمودی طور پر ترقی کر سکتے ہیں۔

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

آپ سسٹم آرکیٹیکٹ بن سکتے ہیں اگر کوئی ملازم یہ سمجھنے میں دلچسپی رکھتا ہے کہ کوئی ایپلیکیشن اپنے لائف سائیکل کے تمام مراحل پر کیسے کام کرتی ہے - ترقی سے لے کر سپورٹ تک۔"

DevOps انجینئر کیسے بنیں؟

  1. فینکس پروجیکٹ اور ڈی او اوپس ہینڈ بک پڑھیں۔ یہ DevOps فلسفے کے اصل ستون ہیں، جس میں پہلا افسانہ ہے۔
  2. اوپر دی گئی فہرست سے ٹیکنالوجیز سیکھیں: خود یا آن لائن کورسز کے ذریعے۔
  3. ایک اوپن سورس پروجیکٹ کے لیے ڈی او اوپس انجینئر کے طور پر شامل ہوں۔
  4. اپنے ذاتی اور کام کے پروجیکٹس پر DevOps پریکٹس کی مشق کریں اور پیش کریں۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں