DevOps تمام سست، منقطع ۽ ٻي صورت ۾ مشڪلاتي ترقي جي عملن لاء هڪ علاج بڻجي چڪو آهي. پر توهان کي DevOps ۾ گهٽ ۾ گهٽ ڄاڻ جي ضرورت آهي. اهو تصورن کي ڍڪيندو جهڙوڪ DevOps زنجير ۽ ڪيئن ٺاهيو هڪ پنجن مرحلن ۾. هي هڪ مڪمل گائيڊ ناهي، پر صرف هڪ "مڇي" جنهن کي وڌايو وڃي. اچو ته تاريخ سان شروع ڪريون.
منهنجو تعارف DevOps سان
مان Citi گروپ ۾ ڪلائوڊز سان گڏ ڪم ڪندو هوس ۽ Citi جي ڪلائوڊ انفراسٽرڪچر کي منظم ڪرڻ لاءِ IaaS ويب ايپليڪيشن ٺاهيندو هوس، پر مون کي هميشه ان ڳالهه ۾ دلچسپي رهي آهي ته ڊولپمينٽ چين کي ڪيئن بهتر بڻايو وڃي ۽ ڊولپرز جي وچ ۾ ڪلچر کي بهتر بڻايو وڃي. گريگ ليوندر، اسان جي سي ٽي او لاءِ ڪلائوڊ آرڪيٽيڪچر ۽ انفراسٽرڪچر، مون کي هي ڪتاب تجويز ڪيو. پروجيڪٽ "فينڪس". اهو وضاحت ڪري ٿو DevOps اصولن کي سهڻي ۽ پڙهي ٿو ناول وانگر.
شيون اسان لاءِ Citi ۾ تمام مختلف هيون جيستائين اسان DevOps ڏانهن تبديل نه ڪيو. پوءِ منهنجي ٽيم ۾ مختلف ماحول هئا، پر اسان ڊولپمينٽ سرور کي دستي طور تي پهچايو. IBM WebSphere Application Server Community Edition جي بنياد تي سڀني ڊولپرز کي صرف ھڪڙي ڊولپمينٽ سرور تائين رسائي ھئي. هڪ ئي وقت پهچائڻ جي ڪوشش سان، سرور "گر" ويو، ۽ هر ڀيري اسان کي پاڻ ۾ "درد سان" ڳالهين ڪرڻو پوندو. اسان وٽ ٽيسٽن سان گڏ ڪافي ڪوڊ ڪوريج به نه ھئي، ھڪ وقت گذرڻ وارو دستي ترسيل وارو عمل، ۽ ڪنھن ڪم يا ڪلائنٽ جي ضرورت جي مدد سان ڪوڊ جي ترسيل کي ٽريڪ ڪرڻ جو ڪو طريقو نه ھو.
اها ڳالهه واضح هئي ته ڪجهه فوري طور تي ڪرڻ جي ضرورت آهي، ۽ مون کي هڪ هم خيال ساٿي مليو. اسان گڏجي پهريون DevOps زنجير ٺاهڻ جو فيصلو ڪيو - هن هڪ ورچوئل مشين ۽ هڪ ٽامڪيٽ ايپليڪيشن سرور قائم ڪيو، ۽ مون جينڪنز جو خيال رکيو، ائٽلاسين جيرا ۽ بٽ بڪٽ سان انضمام، ۽ گڏوگڏ ٽيسٽن سان ڪوڊ ڪوريج. پروجيڪٽ ڪامياب ٿي ويو: اسان ڊولپمينٽ چين کي مڪمل طور تي خودڪار ڪيو، ڊولپمينٽ سرور تي تقريباً 100٪ اپ ٽائم حاصل ڪيو، ٽيسٽن سان ڪوڊ ڪوريج مانيٽر ڪرڻ ۽ بهتر ڪرڻ جي قابل هئا، ۽ گيٽ برانچ کي جيرا جي ترسيل ۽ مسئلي سان ڳنڍجي سگهجي ٿو. ۽ تقريبن سڀئي اوزار جيڪي اسان استعمال ڪندا هئا DevOps زنجير ٺاهڻ لاءِ کليل ذريعو هئا.
حقيقت ۾، زنجير کي آسان ڪيو ويو، ڇاڪاڻ ته اسان جينڪنز يا جوابي استعمال ڪندي ترقي يافته ترتيبن کي لاڳو نه ڪيو. پر اسان ڪامياب ٿياسين. شايد اهو اصول جو نتيجو آهي پارتو (اڪا 80/20 قاعدو).
DevOps ۽ CI/CD زنجير جو مختصر بيان
DevOps مختلف معنائون آهن. DevOps، Agile وانگر، مختلف مضمونن ۾ شامل آهن. پر گھڻا ھيٺ ڏنل تعريف سان متفق ٿيندا: DevOps سافٽ ويئر ڊولپمينٽ جو ھڪڙو طريقو، يا زندگي جي چڪر آھي، جنھن جو بنيادي اصول ھڪڙو ڪلچر ٺاھڻ آھي جتي ڊولپرز ۽ ٻيا ملازم ”ساڳي موج تي“ ھجن، دستي مزدوري پاڻمرادو آھي، هرڪو اهو ڪري ٿو جيڪو اهي بهترين آهن، ترسيل جي تعدد وڌائي ٿي، ڪم جي پيداوار وڌائي ٿي، لچڪ وڌائي ٿي.
جڏهن ته اڪيلو اوزار DevOps ماحول ٺاهڻ لاءِ ڪافي نه آهن، اهي ناگزير آهن. انهن مان سڀ کان اهم آهي مسلسل انضمام ۽ مسلسل پهچائڻ (CI/CD). ھر ماحول لاءِ زنجير ۾ مختلف مرحلا آھن (مثال طور DEV (ترقي)، INT (انضمام)، TST (ٽيسٽنگ)، QA (معيار جي ضمانت)، UAT (صارف جي قبوليت جي جاچ)، STG (تيار ڪرڻ)، PROD (استعمال)) ، دستي ڪم خودڪار آهن، ڊولپرز معيار ڪوڊ پيدا ڪري سگھن ٿا، ان کي پهچائي، ۽ آساني سان ٻيهر تعمير ڪري سگھن ٿا.
هي نوٽ بيان ڪري ٿو ته ڪيئن ٺاهيو هڪ DevOps زنجير پنجن مرحلن ۾، جيئن هيٺ ڏنل تصوير ۾ ڏيکاريل آهي، اوپن سورس اوزار استعمال ڪندي.
CI/CD ٽول جي جادوءَ کي جانچڻ لاءِ بهترين (۽ معقول طور تي آسان) طريقو اهو آهي ته ان کي سورس ڪنٽرول مئنيجمينٽ (SCM) ٽول سان ضم ڪيو وڃي. توهان کي ورجن ڪنٽرول جي ضرورت ڇو آهي؟ اچو ته چئو ته توهان هڪ درخواست ڪري رهيا آهيو. توھان ان کي Java, Python, C++, Go, Ruby, JavaScript يا ڪنھن ٻي ٻوليءَ ۾ لکو جيڪو ويگن ۽ ٿوري ڪارٽ آھي. جيڪو توهان لکندا آهيو ان کي سورس ڪوڊ چئبو آهي. پهرين ۾، خاص طور تي جيڪڏهن توهان اڪيلو ڪم ڪري رهيا آهيو، توهان هر شيء کي مقامي ڊاريڪٽري ۾ محفوظ ڪري سگهو ٿا. پر جيئن ته پروجيڪٽ وڌندو آهي ۽ وڌيڪ ماڻهو شامل ٿيندا آهن، توهان کي ڪوڊ تبديلين کي شيئر ڪرڻ لاءِ هڪ طريقي جي ضرورت هوندي آهي پر تبديلين کي ضم ڪرڻ وقت تڪرار کان پاسو ڪيو. ۽ توهان کي پڻ ضرورت آهي ڪنهن به طريقي سان اڳئين ورزن کي بحال ڪرڻ جي بغير بيڪ اپ استعمال ڪرڻ ۽ ڪوڊ فائلن لاءِ ڪاپي پيسٽ جو طريقو استعمال ڪندي.
۽ هتي SCM کان سواء ڪٿي به. SCM ذخيرو ۾ ڪوڊ رکي ٿو، ان جي نسخن کي منظم ڪري ٿو، ۽ ان کي ڊولپرز جي وچ ۾ همراه ڪري ٿو.
اتي ڪيترائي SCM اوزار آھن، پر Git مستحق طور تي حقيقي معيار بڻجي چڪو آھي. مان توهان کي ان کي استعمال ڪرڻ جي صلاح ڏيان ٿو، پر ٻيا اختيار آهن.
سڀ ڪجهه ائين ٿي رهيو آهي جيئن ان کي گهرجي. توھان ڪوڊ اپلوڊ ڪري سگھوٿا ۽ ماخذ ڪنٽرول ۾ تبديليون ڪري سگھو ٿا، ۽ دوستن کي توھان سان ڪم ڪرڻ جي دعوت ڏئي سگھو ٿا. پر توهان وٽ اڃا تائين ايپ ناهي. ان لاءِ ويب ايپليڪيشن ٿيڻ لاءِ، ان کي لازمي طور تي مرتب ڪيو وڃي ۽ ورهائڻ لاءِ پيڪيج ڪيو وڃي يا ايگزيڪيوٽيبل جي طور تي هلايو وڃي. (هڪ تشريح ڪيل پروگرامنگ ٻولي جهڙوڪ JavaScript يا PHP کي مرتب ڪرڻ جي ضرورت ناهي.)
استعمال ڪريو تعمير خودڪار اوزار. جيڪو به اوزار توهان چونڊيو، اهو ڪوڊ کي صحيح شڪل ۾ گڏ ڪندو ۽ خودڪار صفائي، تاليف، جانچ، ۽ پهچائڻ. تعمير جا اوزار ٻولي جي لحاظ کان مختلف آھن، پر ھيٺيون اوپن سورس جا اختيار عام طور استعمال ڪيا ويندا آھن.
ڪامل! ھاڻي اچو ته بلڊ آٽوميشن ٽول ڪنفيگريشن فائلن کي سورس ڪنٽرول ۾ داخل ڪريون ته جيئن CI/CD ٽول انھن کي ٺاھي.
اهو سٺو لڳندو آهي. پر هاڻي اهو سڀ ڪجهه ڪٿي آهي؟
قدم 4: ويب ايپليڪيشن سرور
تنهن ڪري، توهان وٽ هڪ پيڪيج ٿيل فائل آهي جيڪا عمل ڪري سگهجي ٿي يا رول آئوٽ ٿي سگهي ٿي. ايپليڪيشن لاءِ واقعي ڪارآمد ٿيڻ لاءِ، ان ۾ ڪنهن نه ڪنهن قسم جي خدمت يا انٽرفيس هجڻ لازمي آهي، پر توهان کي اهو سڀ ڪجهه ڪٿي رکڻو پوندو.
اصول ۾، توهان هتي روڪي سگهو ٿا، پوء توهان ان کي سنڀالي سگهو ٿا، پر اهو ڪوڊ جي معيار بابت ڳالهائڻ جي قابل آهي.
قدم 5: ٽيسٽ ڪوريج
جاچ ۾ تمام گهڻو وقت ۽ ڪوشش لڳندي آهي، پر اهو بهتر آهي ته فوري طور تي بگ ڳولڻ ۽ ڪوڊ کي بهتر بنائڻ لاءِ آخري استعمال ڪندڙن کي خوش ڪرڻ لاءِ. هن مقصد لاءِ، اهڙا ڪيترائي کليل اوزار آهن جيڪي نه رڳو ڪوڊ کي جانچيندا، پر ان کي بهتر ڪرڻ جي صلاح به ڏيندا. گھڻا CI / CD اوزار انھن اوزارن ۾ پلگ ان ڪري سگھن ٿا ۽ عمل کي خودڪار ڪري سگھن ٿا.
ٽيسٽ کي ٻن حصن ۾ ورهايو ويو آهي: ٽيسٽ لکڻ ۽ عمل ڪرڻ لاءِ جاچ فريم ورڪ، ۽ ٽولز اشارن سان ڪوڊ جي معيار کي بهتر ڪرڻ لاءِ.