DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل

حصو 1: ويب/Android

ويچاري: هي مضمون اصل مضمون جو روسي ۾ ترجمو آهي “DevOps اوزار نه رڳو DevOps لاءِ آهن. "بلڊنگ ٽيسٽ آٽوميشن انفراسٽرڪچر شروع کان." بهرحال، سڀئي تمثيلون، لنڪس، اقتباس ۽ اصطلاح اصل ٻوليءَ ۾ محفوظ ڪيا ويا آهن ته جيئن روسي ۾ ترجمو ڪيو وڃي ته معنيٰ جي تحريف کان بچڻ لاءِ. مان توهان کي پڙهائي خوش ڪرڻ چاهيان ٿو!

DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل

في الحال، DevOps خاصيت آئي ٽي انڊسٽري ۾ سڀ کان وڌيڪ طلب آهي. جيڪڏهن توهان کوليو مشهور نوڪري ڳولها سائيٽون ۽ تنخواه طرفان فلٽر، توهان ڏسندا ته DevOps سان لاڳاپيل نوڪريون فهرست جي چوٽي تي آهن. بهرحال، اهو سمجهڻ ضروري آهي ته اهو بنيادي طور تي 'سينئر' پوزيشن ڏانهن اشارو ڪري ٿو، جنهن جو مطلب آهي ته اميدوار کي اعلي سطحي صلاحيتن، ٽيڪنالاجي ۽ اوزار جي ڄاڻ آهي. اهو پڻ اچي ٿو هڪ اعلي درجي جي ذميواري سان لاڳاپيل پيداوار جي بي ترتيب آپريشن سان. بهرحال، اسان اهو وسارڻ شروع ڪيو ته DevOps ڇا آهي. شروعات ۾، اهو ڪو خاص شخص يا ڊپارٽمينٽ نه هو. جيڪڏهن اسان هن اصطلاح جي وصفن جي ڳولا ڪنداسين ته اسان کي ڪيترائي خوبصورت ۽ صحيح اسم ملندا، جهڙوڪ طريقا، عمل، ثقافتي فلسفو، تصورات جو گروپ، وغيره.

منهنجي اسپيشلائيزيشن هڪ ٽيسٽ آٽوميشن انجنيئر (QA آٽوميشن انجنيئر) آهي، پر مان سمجهان ٿو ته اهو صرف لکڻ سان لاڳاپيل نه هجڻ گهرجي آٽو ٽيسٽ يا ترقي يافته فريم ورڪ آرڪيٽيڪچر. 2020 ۾، آٽوميشن انفراسٽرڪچر جي ڄاڻ پڻ ضروري آهي. اهو توهان کي اجازت ڏئي ٿو خودڪار طريقي جي عمل کي پاڻ کي منظم ڪرڻ، هلندڙ ٽيسٽن کان وٺي سڀني اسٽيڪ هولڊرز کي توهان جي مقصدن جي مطابق نتيجا مهيا ڪرڻ تائين. نتيجي طور، DevOps صلاحيتن کي نوڪري حاصل ڪرڻ لاء ضروري آهي. ۽ اهو سڀ ڪجهه سٺو آهي، پر، بدقسمتي سان، اتي هڪ مسئلو آهي (spoiler: هي مضمون هن مسئلي کي آسان ڪرڻ جي ڪوشش ڪري ٿو). نقطي اهو آهي ته DevOps سخت آهي. ۽ اهو واضح آهي، ڇاڪاڻ ته ڪمپنيون گهڻو ڪجهه ادا نه ڪنديون آهن انهي لاءِ جيڪو ڪرڻ آسان آهي... DevOps دنيا ۾، اتي وڏي تعداد ۾ اوزار، شرطون ۽ عمل آهن جن کي مهارت حاصل ڪرڻ جي ضرورت آهي. اهو خاص طور تي ڏکيو آهي ڪيريئر جي شروعات ۾ ۽ ان تي منحصر آهي جمع ٿيل ٽيڪنيڪل تجربو.

DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل
جو ذريعو: http://maximelanciauxbi.blogspot.com/2017/04/devops-tools.html

هتي اسان شايد تعارفي حصي سان ختم ڪنداسين ۽ هن مضمون جي مقصد تي ڌيان ڏينداسين. 

هي مضمون ڇا جي باري ۾ آهي؟

هن آرٽيڪل ۾، مان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو منهنجو تجربو شيئر ڪرڻ وارو آهيان. انٽرنيٽ تي معلومات جا ڪيترائي ذريعا موجود آهن مختلف اوزارن ۽ انهن کي ڪيئن استعمال ڪجي، پر مان انهن کي خالص آٽوميشن جي حوالي سان ڏسڻ چاهيندس. مان سمجهان ٿو ته ڪيترائي آٽوميشن انجنيئر ان صورتحال کان واقف آهن جڏهن توهان کان سواءِ ڪو به ترقي يافته ٽيسٽ نه هلائيندو آهي يا انهن کي برقرار رکڻ جي پرواهه ناهي ڪندو. نتيجي طور، ٽيسٽ پراڻو ٿي ويا ۽ توھان کي انھن کي اپڊيٽ ڪرڻ ۾ وقت گذارڻو پوندو. ٻيهر، ڪيريئر جي شروعات ۾، اهو ڪافي ڏکيو ڪم ٿي سگهي ٿو: عقلمنديءَ سان فيصلو ڪرڻ ته ڪهڙن اوزارن کي ڏنل مسئلي کي ختم ڪرڻ ۾ مدد ڏيڻ گهرجي، انهن کي ڪيئن چونڊيو، ترتيب ڏيڻ ۽ برقرار رکڻ گهرجي. ڪجهه جاچ ڪندڙ مدد لاءِ DevOps (انسانن) ڏانهن رخ ڪن ٿا ۽ ، اچو ته ايماندار رهون ، اهو طريقو ڪم ڪري ٿو. ڪيترين ئي صورتن ۾ اهو واحد اختيار ٿي سگهي ٿو ڇاڪاڻ ته اسان وٽ سڀني انحصارن ۾ ڏيک نه آهي. پر جيئن اسان ڄاڻون ٿا، DevOps ڏاڍا مصروف ماڻهو آهن، ڇاڪاڻ ته انهن کي سڄي ڪمپني جي انفراسٽرڪچر، ڊيپلائيمينٽ، مانيٽرنگ، مائڪرو سروسز ۽ ٻين ساڳين ڪمن بابت سوچڻو پوندو تنظيم/ٽيم جي لحاظ کان. جيئن عام طور تي معاملو آهي، خودڪار هڪ ترجيح نه آهي. اهڙي صورت ۾، اسان کي پنهنجي طرف کان شروع کان آخر تائين هر ممڪن ڪوشش ڪرڻ گهرجي. اهو انحصار کي گهٽائيندو، ڪم جي فلو کي تيز ڪندو، اسان جي صلاحيتن کي بهتر بڻائيندو ۽ اسان کي ڇا ٿي رهيو آهي ان جي وڏي تصوير ڏسڻ جي اجازت ڏيندو.

آرٽيڪل پيش ڪري ٿو سڀ کان وڌيڪ مشهور ۽ مشهور اوزار ۽ ڏيکاري ٿو ته انهن کي ڪيئن استعمال ڪجي هڪ آٽوميشن انفراسٽرڪچر ٺاهڻ لاءِ قدم قدم سان. هر گروپ جي نمائندگي ڪئي وئي آهي اوزار جي ذريعي جيڪي آزمايا ويا آهن ذاتي تجربو ذريعي. پر انهي جو مطلب اهو ناهي ته توهان کي ساڳيو شيء استعمال ڪرڻو پوندو. اوزار پاڻ اهم نه هوندا آهن، اهي ظاهر ٿيندا آهن ۽ ختم ٿي ويندا آهن. اسان جو انجنيئرنگ جو ڪم بنيادي اصولن کي سمجهڻ آهي: اسان کي اوزارن جي هن گروپ جي ضرورت ڇو آهي ۽ اسان انهن جي مدد سان ڪم جا ڪهڙا مسئلا حل ڪري سگهون ٿا. انهي ڪري هر سيڪشن جي آخر ۾ آئون هڪجهڙا اوزارن جا لنڪ ڇڏيان ٿو جيڪي توهان جي تنظيم ۾ استعمال ٿي سگهن ٿيون.

هن مضمون ۾ ڇا نه آهي

مان هڪ ڀيرو ٻيهر ورجائي ٿو ته آرٽيڪل مخصوص اوزارن بابت نه آهي، تنهنڪري دستاويزن ۽ مخصوص حڪمن جي وضاحتن مان ڪوڊ جو ڪو داخل نه ٿيندو. پر هر حصي جي آخر ۾ آئون تفصيلي مطالعي لاءِ لنڪس ڇڏي ڏيان ٿو.

اهو ڪيو ويو آهي ڇاڪاڻ ته: 

  • هي مواد مختلف ذريعن ۾ ڳولڻ تمام آسان آهي (دستاويزن، ڪتاب، وڊيو ڪورس)؛
  • جيڪڏهن اسان اونهائي ۾ وڃڻ شروع ڪيو ته اسان کي هن مضمون جا 10، 20، 30 حصا لکڻا پوندا (جڏهن ته منصوبا 2-3 آهن)؛
  • مان صرف توهان جو وقت ضايع ڪرڻ نه ٿو چاهيان ڇاڪاڻ ته توهان شايد ساڳيو مقصد حاصل ڪرڻ لاءِ ٻيا اوزار استعمال ڪرڻ چاهيندا.

مشق

مان واقعي چاهيندس ته هي مواد هر پڙهندڙ لاءِ ڪارآمد هجي، ۽ نه رڳو پڙهي ۽ وساريو وڃي. ڪنهن به مطالعي ۾، مشق هڪ تمام اهم حصو آهي. ان لاءِ مون تياري ڪئي آهي GitHub مخزن قدم قدم جي هدايتن سان گڏ سڀ ڪجهه شروع کان ڪيئن ڪجي. اتي پڻ ھوم ورڪ آھي توھان جي انتظار ۾ اھو پڪ ڪرڻ لاءِ ته توھان بي پرواھيءَ سان انھن حڪمن جي لائنن کي نقل نه ڪريو جيڪي توھان عمل ڪري رھيا آھيو.

منصوبو

قدم
ٽيڪنالاجي
اوزار

1
مقامي هلائيندڙ (ويب / اينڊرائيڊ ڊيمو ٽيسٽ تيار ڪريو ۽ ان کي مقامي طور تي هلائڻ) 
Node.js، Selenium، Appium

2
نسخه ڪنٽرول نظام 
Git

3
ڪنٽينرائزيشن
Docker، Selenium گرڊ، Selenoid (ويب، Android)

4
CI/CD
Gitlab CI

5
Cloud Platform
Google Cloud Platform

6
آرڪٽريشن
ڪوبنيٿس

7
بنيادي ڍانچي جي طور تي ڪوڊ (IaC)
ترافارم ، جوابي

هر حصي جي جوڙجڪ

بيان کي صاف رکڻ لاء، هر حصي کي هيٺ ڏنل خاڪو مطابق بيان ڪيو ويو آهي:

  • ٽيڪنالاجي جي مختصر وضاحت،
  • آٽوميشن انفراسٽرڪچر لاءِ قدر،
  • بنيادي ڍانچي جي موجوده حالت جو مثال،
  • مطالعي سان ڳنڍيل،
  • ملندڙ اوزار.

1. مقامي طور تي ٽيسٽ هلائڻ

ٽيڪنالاجي جي مختصر وضاحت

اهو صرف هڪ تياري وارو قدم آهي مقامي طور تي ڊيمو ٽيسٽ هلائڻ ۽ تصديق ڪرڻ ته اهي پاس ٿيا. عملي حصي ۾، Node.js استعمال ڪيو ويندو آهي، پر پروگرامنگ ٻولي ۽ پليٽ فارم پڻ اهم نه آهن ۽ توهان انهن کي استعمال ڪري سگهو ٿا جيڪي توهان جي ڪمپني ۾ استعمال ڪيا ويا آهن. 

جڏهن ته، خودڪار اوزار جي طور تي، آئون استعمال ڪرڻ جي صلاح ڪريان ٿو Selenium WebDriver ويب پليٽ فارمن لاءِ ۽ ايپيم لاءِ Android پليٽ فارم، ترتيب سان، جيئن ته ايندڙ مرحلن ۾ اسين ڊاڪر تصويرون استعمال ڪنداسين جيڪي خاص طور تي انهن اوزارن سان ڪم ڪرڻ لاءِ تيار ڪيون ويون آهن. ان کان علاوه، نوڪري جي گهرج جي حوالي سان، اهي اوزار مارڪيٽ ۾ سڀ کان وڌيڪ گهربل آهن.

جيئن توهان محسوس ڪيو هوندو، اسان صرف ويب ۽ Android ٽيسٽ تي غور ڪندا آهيون. بدقسمتي سان، iOS هڪ مڪمل طور تي مختلف ڪهاڻي آهي (مهرباني ايپل). مان ايندڙ حصن ۾ IOS سان لاڳاپيل حل ۽ طريقا ڏيکارڻ جو منصوبو ڪريان ٿو.

آٽوميشن انفراسٽرڪچر لاءِ قدر

بنيادي ڍانچي جي نقطي نظر کان، مقامي طور تي هلائڻ جي ڪا به قيمت نه آهي. توهان صرف چيڪ ڪريو ته ٽيسٽ مقامي مشين تي هلن ٿا مقامي برائوزرن ۽ سموليٽرن ۾. پر ڪنهن به صورت ۾، اهو هڪ ضروري شروعاتي نقطو آهي.

انفراسٹرڪچر جي موجوده حالت جو مثال

DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل

ڳولڻ لاءِ لنڪس

ملندڙ اوزار

  • ڪنهن به پروگرامنگ ٻولي جيڪا توهان پسند ڪريو سيلينيم / ايپيميم ٽيسٽ سان گڏ؛
  • ڪنهن به ٽيسٽ؛
  • ڪنهن به ٽيسٽ رنر.

2. ورجن ڪنٽرول سسٽم (Git)

ٽيڪنالاجي جي مختصر وضاحت

اهو ڪنهن لاءِ وڏو وحي نه ٿيندو جيڪڏهن مان چوان ته ورجن ڪنٽرول ترقي جو هڪ انتهائي اهم حصو آهي، ٻئي ٽيم ۾ ۽ انفرادي طور تي. مختلف ذريعن جي بنياد تي، اهو چوڻ لاء محفوظ آهي ته Git تمام مشهور نمائندو آهي. هڪ ورزن ڪنٽرول سسٽم ڪيترائي فائدا مهيا ڪري ٿو، جهڙوڪ ڪوڊ شيئرنگ، اسٽوريج ورزن، پوئين شاخن کي بحال ڪرڻ، پروجيڪٽ جي تاريخ جي نگراني، ۽ بيڪ اپ. اسان هر نقطي تي تفصيل سان بحث نه ڪنداسين، ڇو ته مون کي پڪ آهي ته توهان ان سان تمام گهڻو واقف آهيو ۽ ان کي پنهنجي روزاني ڪم ۾ استعمال ڪريو. پر جيڪڏهن اوچتو نه، ته پوء آئون سفارش ڪريان ٿو ته هن مضمون پڙهڻ کي روڪيو ۽ هن خال کي جيترو جلدي ممڪن ٿي سگهي ڀريو.

آٽوميشن انفراسٽرڪچر لاءِ قدر

۽ هتي توهان هڪ معقول سوال پڇي سگهو ٿا: "هو اسان کي گٽ بابت ڇو ٻڌائي رهيو آهي؟ هرڪو اهو ڄاڻي ٿو ۽ اهو استعمال ڪري ٿو ٻنهي لاءِ ڊولپمينٽ ڪوڊ ۽ آٽو ٽيسٽ ڪوڊ لاءِ. توھان بلڪل صحيح ھوندؤ، پر ھن آرٽيڪل ۾ اسين انفراسٽرڪچر بابت ڳالھائي رھيا آھيون ۽ ھي سيڪشن سيڪشن 7 لاءِ پريويو طور ڪم ڪري ٿو: ”انفراسٽرڪچر ايز ڪوڊ (IaC)“. اسان لاءِ، ان جو مطلب اهو آهي ته مڪمل انفراسٽرڪچر، بشمول ٽيسٽنگ، ڪوڊ جي صورت ۾ بيان ڪيل آهي، تنهنڪري اسان ان تي ورجننگ سسٽم پڻ لاڳو ڪري سگهون ٿا ۽ ساڳيا فائدا حاصل ڪري سگهون ٿا جيئن ڊولپمينٽ ۽ آٽوميشن ڪوڊ لاءِ.

اسان IaC تي وڌيڪ تفصيل سان ڏسندا سين 7 ۾، پر ھاڻي توھان استعمال ڪري سگھوٿا Git مقامي طور تي مقامي مخزن ٺاهڻ سان. وڏي تصوير کي وڌايو ويندو جڏهن اسان انفراسٽرڪچر ۾ ريموٽ مخزن شامل ڪندا آهيون.

انفراسٹرڪچر جي موجوده حالت جو مثال

DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل

ڳولڻ لاءِ لنڪس

ملندڙ اوزار

3. ڪنٽينرائزيشن (ڊاڪر)

ٽيڪنالاجي جي مختصر وضاحت

اهو ظاهر ڪرڻ لاءِ ته ڪيئن ڪنٽينرائزيشن راند جي ضابطن کي تبديل ڪري ڇڏيو آهي، اچو ته ڪجهه ڏهاڪن ۾ وقت ۾ واپس وڃون. ان کان پوء، ماڻهن خريد ڪيو ۽ ايپليڪيشنون هلائڻ لاء سرور مشينون استعمال ڪيون. پر اڪثر ڪيسن ۾، گهربل شروعاتي وسيلا اڳ ۾ نه ڄاڻندا هئا. نتيجي طور، ڪمپنيون قيمتي، طاقتور سرور جي خريداري تي پئسا خرچ ڪيا، پر ڪجھه صلاحيت مڪمل طور تي استعمال نه ڪيو ويو.

ارتقاء جو ايندڙ مرحلو مجازي مشينن (VMs) هو، جنهن غير استعمال ٿيل وسيلن تي پئسا ضايع ڪرڻ جو مسئلو حل ڪيو. هن ٽيڪنالاجي اهو ممڪن ڪيو ته ايپليڪيشنن کي هڪ ٻئي کان آزاد طور تي هڪ ئي سرور اندر، مڪمل طور تي الڳ ٿيل جاء مختص ڪري. پر، بدقسمتي سان، ڪنهن به ٽيڪنالاجي کي ان جي نقصانات آهي. هڪ VM هلائڻ لاءِ هڪ مڪمل آپريٽنگ سسٽم جي ضرورت آهي، جيڪو استعمال ڪري ٿو CPU، RAM، اسٽوريج ۽، OS تي منحصر ڪري، لائسنس جي قيمتن کي حساب ۾ رکڻو پوندو. اهي عنصر لوڊشيڊنگ جي رفتار تي اثرانداز ٿين ٿا ۽ پورٽبلٽي کي ڏکيو بڻائين ٿا.

۽ ھاڻي اچون ٿا ڪنٽينرائزيشن ڏانھن. هڪ ڀيرو ٻيهر، هي ٽيڪنالاجي اڳئين مسئلي کي حل ڪري ٿو، جيئن ڪنٽينرز هڪ مڪمل OS استعمال نه ڪندا آهن، جيڪي وسيلن جي وڏي مقدار کي آزاد ڪري ٿو ۽ پورٽبلٽي لاء تيز ۽ لچڪدار حل فراهم ڪري ٿو.

يقينن، ڪنٽينرائيزيشن ٽيڪنالاجي ڪا نئين شيء ناهي ۽ پهريون ڀيرو 70s جي آخر ۾ متعارف ڪرايو ويو. انهن ڏينهن ۾ ڪافي تحقيق، ترقي ۽ ڪوششون ڪيون ويون. پر اهو ڊاڪر هو جنهن هن ٽيڪنالاجي کي ترتيب ڏنو ۽ ان کي عوام تائين آسان بڻائي ڇڏيو. اڄڪلهه، جڏهن اسان ڪنٽينرز بابت ڳالهايون ٿا، اڪثر ڪيسن ۾ اسان جو مطلب آهي Docker. جڏهن اسان ڊڪر ڪنٽينرز بابت ڳالهايون ٿا، اسان جو مطلب آهي لينڪس ڪنٽينرز. اسان ڪنٽينرز کي هلائڻ لاءِ Windows ۽ macOS سسٽم استعمال ڪري سگهون ٿا، پر اهو سمجهڻ ضروري آهي ته ان صورت ۾ هڪ اضافي پرت ظاهر ٿئي ٿي. مثال طور، Docker on Mac خاموشيءَ سان ڪنٽينرز کي هلڪو وزن لينڪس VM اندر هلائي ٿو. اسان هن موضوع تي واپس ڪنداسين جڏهن اسان ڪنٽينرز اندر Android ايموليٽرز کي هلائڻ تي بحث ڪنداسين، تنهنڪري هتي هڪ تمام اهم nuance آهي جنهن کي وڌيڪ تفصيل سان بحث ڪرڻ جي ضرورت آهي.

آٽوميشن انفراسٽرڪچر لاءِ قدر

اسان کي معلوم ٿيو ته ڪنٽينرائزيشن ۽ ڊاڪر سٺا آهن. اچو ته ان کي آٽوميشن جي حوالي سان ڏسو، ڇاڪاڻ ته هر اوزار يا ٽيڪنالاجي کي هڪ مسئلو حل ڪرڻ جي ضرورت آهي. اچو ته UI ٽيسٽ جي حوالي سان ٽيسٽ آٽوميشن جي واضح مسئلن کي بيان ڪريون:

  • Selenium ۽ خاص طور تي Appium انسٽال ڪرڻ وقت انحصار جو هڪ وڏو تعداد؛
  • برائوزرن جي نسخن جي وچ ۾ مطابقت مسئلا، سموليٽر ۽ ڊرائيور؛
  • برائوزرن/سموليٽرز لاءِ الڳ جاءِ جي کوٽ، جيڪا خاص طور تي متوازي هلائڻ لاءِ نازڪ آهي؛
  • جيڪڏهن توهان کي هڪ ئي وقت 10، 50، 100 يا ان کان به وڌيڪ 1000 برائوزر هلائڻ جي ضرورت آهي ته انتظام ڪرڻ ۽ برقرار رکڻ ڏکيو آهي.

پر جيئن ته سيلينيم سڀ کان وڌيڪ مشهور آٽوميشن ٽول آهي ۽ ڊڪر تمام مشهور ڪنٽينرائيزيشن ٽول آهي، ان کي ڪو به تعجب نه ٿيڻ گهرجي ته ڪنهن انهن کي گڏ ڪرڻ جي ڪوشش ڪئي آهي هڪ طاقتور اوزار ٺاهڻ لاءِ مٿي ذڪر ڪيل مسئلن کي حل ڪرڻ لاءِ. اچو ته وڌيڪ تفصيل سان اهڙن حلن تي غور ڪريو. 

Docker ۾ Selenium گرڊ

هي اوزار ڪيترن ئي مشينن تي ڪيترن ئي برائوزرن کي هلائڻ ۽ انهن کي مرڪزي مرڪز مان منظم ڪرڻ لاءِ سيلينيم دنيا ۾ تمام گهڻو مشهور آهي. شروع ڪرڻ لاء، توهان کي گهٽ ۾ گهٽ 2 حصن کي رجسٽر ڪرڻ جي ضرورت آهي: حب ۽ نوڊ (ن). حب هڪ مرڪزي نوڊ آهي جيڪو سڀني درخواستن کي ٽيسٽن مان وصول ڪري ٿو ۽ انهن کي مناسب نوڊس ۾ ورهائي ٿو. هر نوڊ لاءِ اسان هڪ مخصوص ترتيب ترتيب ڏئي سگهون ٿا، مثال طور، گهربل برائوزر ۽ ان جي ورزن جي وضاحت ڪندي. تنهن هوندي، اسان کي اڃا تائين پاڻ کي مطابقت رکندڙ برائوزر ڊرائيورن جو خيال رکڻو پوندو ۽ انهن کي گهربل نوڊس تي انسٽال ڪرڻ جي ضرورت آهي. انهي سبب لاء، Selenium گرڊ ان جي خالص روپ ۾ استعمال نه ڪيو ويو آهي، سواء جڏهن اسان کي برائوزرن سان ڪم ڪرڻ جي ضرورت آهي جيڪا لينڪس OS تي نصب نه ٿي سگهي. ٻين سڀني ڪيسن لاءِ، هڪ خاص لچڪدار ۽ صحيح حل هوندو ڊاڪر تصويرون استعمال ڪرڻ لاءِ سيلينيم گرڊ هب ۽ نوڊس. اهو طريقو نوڊ مئنيجمينٽ کي تمام گهڻو آسان بڻائي ٿو، ڇو ته اسان تصوير کي چونڊي سگھون ٿا جيڪو اسان کي گهربل نسخن سان گڏ برائوزرن ۽ ڊرائيورز اڳ ۾ ئي نصب ٿيل آهي.

استحڪام جي باري ۾ منفي جائزي جي باوجود، خاص طور تي جڏهن متوازي ۾ نوڊس جي وڏي تعداد کي هلائڻ دوران، Selenium گرڊ اڃا تائين سڀ کان وڌيڪ مشهور اوزار آهي سيلينيم ٽيسٽ کي متوازي ۾ هلائڻ لاء. اهو نوٽ ڪرڻ ضروري آهي ته هن اوزار ۾ مختلف سڌارا ۽ ترميمون مسلسل اوپن سورس ۾ ظاهر ٿي رهيون آهن، جيڪي مختلف رڪاوٽن کي منهن ڏين ٿيون.

ويب لاء Selenoid

هي اوزار سيلينيم جي دنيا ۾ هڪ پيش رفت آهي جيئن اهو دٻي کان ٻاهر ڪم ڪري ٿو ۽ ڪيترن ئي آٽوميشن انجنيئرن جي زندگي کي تمام آسان بڻائي ڇڏيو آهي. سڀ کان پهريان، هي Selenium گرڊ جي هڪ ٻي ترميم نه آهي. ان جي بدران، ڊولپرز گولانگ ۾ Selenium Hub جو هڪ مڪمل طور تي نئون نسخو ٺاهيو، جيڪو، مختلف برائوزرن لاء ٿلهي ڊاکر تصويرن سان گڏ، ٽيسٽ آٽوميشن جي ترقي کي وڌايو. ان کان علاوه، Selenium گرڊ جي صورت ۾، اسان کي لازمي طور تي سڀني گهربل برائوزرن ۽ انهن جي نسخن کي اڳ ۾ طئي ڪرڻ گهرجي، جيڪو صرف هڪ برائوزر سان ڪم ڪرڻ ۾ ڪو مسئلو ناهي. پر جڏهن اهو ڪيترن ئي سپورٽ ٿيل برائوزرن تي اچي ٿو، Selenoid نمبر هڪ حل آهي ان جي 'براؤزر تي طلب' خصوصيت جي مهرباني. اسان سڀني لاءِ گهربل تصويرون برائوزرن سان اڳ ۾ ئي ڊائون لوڊ ڪرڻ ۽ ترتيب ڏيڻ واري فائل کي اپڊيٽ ڪرڻ آهي جنهن سان Selenoid رابطو ڪري ٿو. Selenoid کان پوء ٽيسٽن مان هڪ درخواست ملي ٿي، اهو خودڪار طريقي سان مطلوب ڪنٽينر کي گهربل برائوزر سان لانچ ڪندو. جڏهن ٽيسٽ مڪمل ٿئي ٿي، Selenoid ڪنٽينر کي رٽائر ڪندو، انهي ڪري مستقبل جي درخواستن لاء وسيلن کي آزاد ڪري ڇڏيندو. اهو طريقو مڪمل طور تي 'نوڊ ڊيگريڊيشن' جي معروف مسئلي کي ختم ڪري ٿو جيڪو اسان اڪثر ڪري سيلينيم گرڊ ۾ منهن ڪندا آهيون.

پر، افسوس، Selenoid اڃا تائين چانديء جي گولي نه آهي. اسان کي ’براؤزر آن ڊيمانڊ‘ فيچر ملي ٿو، پر ’مطالبو تي وسيلن‘ فيچر اڃا تائين موجود ناهي. Selenoid استعمال ڪرڻ لاءِ، اسان کي ان کي فزيڪل هارڊويئر يا VM تي لڳائڻو پوندو، جنهن جو مطلب آهي ته اسان کي اڳ ۾ ئي ڄاڻڻ گهرجي ته ڪيترا وسيلا مختص ڪرڻ گهرجن. منهنجو اندازو آهي ته اهو مسئلو ناهي ننڍن منصوبن لاءِ جيڪي 10، 20 يا 30 برائوزرن کي متوازي طور هلائيندا آهن. پر ڇا جيڪڏهن اسان کي 100، 500، 1000 ۽ وڌيڪ جي ضرورت آهي؟ اهو هر وقت ڪيترن ئي وسيلن کي برقرار رکڻ ۽ ادا ڪرڻ جو ڪو احساس ناهي. هن آرٽيڪل جي سيڪشن 5 ۽ 6 ۾، اسان انهن حلن تي بحث ڪنداسين جيڪي توهان کي ماپڻ جي اجازت ڏين ٿا، انهي سان ڪمپني جي قيمتن کي خاص طور تي گهٽائي.

Android لاء Selenoid

Selenoid جي ڪاميابيءَ کان پوءِ ويب آٽوميشن ٽول جي طور تي، ماڻهو ڪجهه چاهيندا هئا Android لاءِ. ۽ اهو ٿيو - Selenoid Android سپورٽ سان جاري ڪيو ويو. هڪ اعلي سطحي صارف جي نقطي نظر کان، آپريشن جو اصول ويب آٽوميشن وانگر آهي. فرق صرف اهو آهي ته برائوزر ڪنٽينرز جي بدران، Selenoid هلائي ٿو Android ايموليٽر ڪنٽينرز. منهنجي خيال ۾، هي في الحال آهي سڀ کان وڌيڪ طاقتور مفت اوزار جيڪو هلائڻ لاءِ Android ٽيسٽ متوازي ۾.

مان واقعي هن اوزار جي منفي پهلوئن بابت ڳالهائڻ نه چاهيندس، ڇاڪاڻ ته مان واقعي واقعي پسند ڪريان ٿو. پر اڃا تائين، اهڙا ئي نقصان آهن جيڪي ويب آٽوميشن تي لاڳو ٿين ٿا ۽ اسڪيلنگ سان لاڳاپيل آهن. ان کان علاوه، اسان کي هڪ وڌيڪ حد جي باري ۾ ڳالهائڻ جي ضرورت آهي جيڪا شايد تعجب جي طور تي اچي ٿي جيڪڏهن اسان پهريون ڀيرو اوزار قائم ڪري رهيا آهيون. Android تصويرن کي هلائڻ لاءِ، اسان کي هڪ فزيڪل مشين يا VM جي ضرورت آهي نسٽڊ ورچوئلائيزيشن سپورٽ سان. ھدايت ڪرڻ واري طريقي ۾، مان ڏيکاريان ٿو ته ھن کي ڪيئن چالو ڪجي لينڪس VM تي. تنهن هوندي، جيڪڏهن توهان هڪ macOS صارف آهيو ۽ Selenoid کي مقامي طور تي ترتيب ڏيڻ چاهيو ٿا، پوء اهو ممڪن نه ٿيندو Android ٽيسٽ هلائڻ لاء. پر توهان هميشه هلائي سگهو ٿا لينڪس VM مقامي طور تي 'نسٽڊ ورچوئلائيزيشن' سان ترتيب ڏنل ۽ اندر Selenoid ترتيب ڏيو.

انفراسٹرڪچر جي موجوده حالت جو مثال

هن آرٽيڪل جي حوالي سان، اسان انفراسٹرڪچر کي بيان ڪرڻ لاء 2 اوزار شامل ڪنداسين. اهي آهن Selenium گرڊ ويب ٽيسٽ لاءِ ۽ Selenoid for Android ٽيسٽ. GitHub سبق ۾، مان پڻ توهان کي ڏيکاريندس ته ڪيئن استعمال ڪجي Selenoid ويب ٽيسٽ هلائڻ لاءِ. 

DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل

ڳولڻ لاءِ لنڪس

ملندڙ اوزار

  • اتي ٻيا ڪنٽينرائيزيشن جا اوزار آھن، پر ڊاڪر تمام مقبول آھي. جيڪڏهن توهان ڪجهه ٻيو ڪوشش ڪرڻ چاهيو ٿا، ذهن ۾ رکون ٿا ته اسان جيڪي اوزار گڏ ڪيا آهن سيلينيم ٽيسٽ کي متوازي ۾ هلائڻ لاءِ اهي دٻي کان ٻاهر ڪم نه ڪندا.  
  • جيئن اڳ ۾ ئي چيو ويو آهي ته، سيلينيم گرڊ جون ڪيتريون ئي تبديليون آهن، مثال طور، زيلينيم.

4.CI/CD

ٽيڪنالاجي جي مختصر وضاحت

مسلسل انضمام جو رواج ترقي ۾ ڪافي مشهور آهي ۽ ورزن ڪنٽرول سسٽم سان برابر آهي. ان جي باوجود، مون محسوس ڪيو ته اصطلاحات ۾ مونجهارو آهي. هن پيراگراف ۾ آئون هن ٽيڪنالاجي جي 3 تبديلين کي بيان ڪرڻ چاهيندس منهنجي نقطي نظر کان. انٽرنيٽ تي توهان کي مختلف تفسيرن سان ڪيترائي آرٽيڪل ملندا، ۽ اهو بلڪل عام آهي جيڪڏهن توهان جي راءِ ۾ اختلاف هجي. سڀ کان اهم شيء اها آهي ته توهان پنهنجي ساٿين سان گڏ ساڳئي صفحي تي آهيو.

تنهن ڪري، اتي 3 اصطلاح آهن: CI - مسلسل انضمام، سي ڊي - مسلسل پهچائڻ ۽ ٻيهر سي ڊي - مسلسل تعینات. (هيٺ آئون اهي اصطلاح انگريزيءَ ۾ استعمال ڪندس). هر تبديلي توهان جي ڊولپمينٽ پائپ لائن ۾ ڪيترائي اضافي مرحلا شامل ڪري ٿي. پر لفظ لڳاتار (مسلسل) سڀ کان اهم شيء آهي. ان سلسلي ۾، اسان جو مطلب اهو آهي ته ڪجهه ٿئي ٿو جيڪو شروع کان آخر تائين، بغير ڪنهن مداخلت يا دستي مداخلت جي. اچو ته ان حوالي سان CI & CD ۽ CD کي ڏسو.

  • مسلسل انضمام هي ارتقاء جو ابتدائي قدم آهي. سرور تي نئون ڪوڊ جمع ڪرڻ کان پوء، اسان کي تڪڙو موٽ حاصل ڪرڻ جي اميد آهي ته اسان جون تبديليون ٺيڪ آهن. عام طور تي، CI ۾ شامل آهي جامد ڪوڊ تجزيي جا اوزار ۽ يونٽ/اندروني API ٽيسٽون. هي اسان کي اجازت ڏئي ٿو اسان جي ڪوڊ بابت معلومات چند سيڪنڊن/منٽ اندر.
  • مسلسل پهچائڻ هڪ وڌيڪ ترقي وارو قدم آهي جتي اسان انٽيگريشن/UI ٽيسٽ هلائيندا آهيون. بهرحال، هن مرحلي تي اسان نتيجا حاصل نٿا ڪريون جيترو جلدي CI سان. پهرين، انهن قسمن جا امتحان مڪمل ٿيڻ ۾ گهڻي وقت وٺن ٿا. ٻيو، شروع ڪرڻ کان پهريان، اسان کي لازمي طور تي اسان جي تبديلين کي ٽيسٽ / اسٽيجنگ ماحول ۾ ترتيب ڏيڻ گهرجي. ان کان علاوه، جيڪڏهن اسان موبائل ڊولپمينٽ بابت ڳالهائي رهيا آهيون، ته پوء هڪ اضافي قدم ظاهر ٿئي ٿو اسان جي ايپليڪيشن جي تعمير ٺاهي.
  • لڳاتار ڊولپمينٽ فرض ڪري ٿو ته اسان خود بخود اسان جي تبديلين کي پيداوار ۾ جاري ڪريون ٿا جيڪڏهن سڀ قبوليت جا امتحان پوئين مرحلن ۾ گذري ويا آهن. ان کان علاوه، ڇڏڻ واري اسٽيج کان پوء، توهان مختلف مرحلن کي ترتيب ڏئي سگهو ٿا، جهڙوڪ پيداوار تي دونھون ٽيسٽ هلائڻ ۽ دلچسپي جي ميٽرڪ گڏ ڪرڻ. مسلسل تعیناتي صرف خودڪار ٽيسٽ ذريعي سٺي ڪوريج سان ممڪن آهي. جيڪڏهن ڪنهن به دستي مداخلت جي ضرورت آهي، بشمول جاچ، پوء اهو هاڻي نه آهي مسلسل (مسلسل). پوء اسان اهو چئي سگهون ٿا ته اسان جي پائپ لائن صرف مسلسل پهچائڻ جي مشق سان عمل ڪري ٿي.

آٽوميشن انفراسٽرڪچر لاءِ قدر

ھن حصي ۾، مون کي واضع ڪرڻ گھرجي ته جڏھن اسين ڳالھيون ٿا پڇاڙيءَ کان آخر تائين UI ٽيسٽن جي، ان جو مطلب آھي ته اسان کي پنھنجين تبديلين ۽ لاڳاپيل خدمتن کي ماحول جي جانچ ڪرڻ لاءِ مقرر ڪرڻ گھرجي. مسلسل انضمام - عمل هن ڪم لاءِ قابل اطلاق نه آهي ۽ اسان کي گهٽ ۾ گهٽ مسلسل پهچائڻ واري عمل کي لاڳو ڪرڻ جو خيال رکڻ گهرجي. مسلسل تعیناتي پڻ احساس ڪري ٿي UI ٽيسٽ جي حوالي سان جيڪڏهن اسان انهن کي پيداوار ۾ هلائڻ وارا آهيون.

۽ ان کان اڳ اسان ڏسون ٿا آرڪيٽيڪچر جي تبديلي جي مثال تي، مان ڪجهه چوڻ چاهيان ٿو GitLab CI بابت. ٻين CI/CD اوزارن جي برعڪس، GitLab هڪ ريموٽ مخزن ۽ ٻيون ڪيتريون ئي اضافي خاصيتون مهيا ڪري ٿي. اهڙيء طرح، GitLab CI کان وڌيڪ آهي. ان ۾ شامل آهي سورس ڪوڊ مينيجمينٽ، ايجائل مئنيجمينٽ، سي آءِ/سي ڊي پائپ لائنون، لاگنگ جا اوزار ۽ ميٽرڪ ڪليڪشن آئوٽ آف دي باڪس. GitLab آرڪيٽيڪچر Gitlab CI/CD ۽ GitLab رنر تي مشتمل آهي. هتي سرڪاري ويب سائيٽ مان هڪ مختصر وضاحت آهي:

Gitlab CI/CD هڪ API سان گڏ هڪ ويب ايپليڪيشن آهي جيڪا پنهنجي رياست کي ڊيٽابيس ۾ محفوظ ڪري ٿي، پروجيڪٽس/بلڊس کي منظم ڪري ٿي ۽ يوزر انٽرفيس مهيا ڪري ٿي. GitLab Runner ھڪڙو ايپليڪيشن آھي جيڪو پروسيس ڪري ٿو بلڊنگ. اهو الڳ الڳ ترتيب ڏئي سگهجي ٿو ۽ هڪ API ذريعي GitLab CI/CD سان ڪم ڪري ٿو. هلندڙ ٽيسٽن لاءِ توهان کي Gitlab مثال ۽ رنر ٻنهي جي ضرورت آهي.

انفراسٹرڪچر جي موجوده حالت جو مثال

DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل

ڳولڻ لاءِ لنڪس

ملندڙ اوزار

5. ڪلائوڊ پليٽ فارم

ٽيڪنالاجي جي مختصر وضاحت

هن حصي ۾ اسان هڪ مشهور رجحان بابت ڳالهائينداسين جنهن کي 'عوامي بادل' سڏيو ويندو آهي. وڏن فائدن جي باوجود جيڪي مٿي بيان ڪيل ورچوئلائيزيشن ۽ ڪنٽينرائيزيشن ٽيڪنالاجيون مهيا ڪن ٿيون، اسان کي اڃا تائين ڪمپيوٽنگ وسيلن جي ضرورت آهي. ڪمپنيون خريد ڪري قيمتي سرور يا ڪرائي تي ڊيٽا سينٽر، پر ان صورت ۾ اهو ضروري آهي ته حساب ڪتاب ڪرڻ (ڪڏهن ڪڏهن غير حقيقي) اسان کي ڪيترا وسيلن جي ضرورت پوندي، ڇا اسان انهن کي 24/7 ۽ ڪهڙن مقصدن لاء استعمال ڪنداسين. مثال طور، پيداوار کي XNUMX/XNUMX هلائيندڙ سرور جي ضرورت آهي، پر ڇا اسان کي ڪم جي ڪلاڪن کان ٻاهر جاچڻ لاءِ ساڳيا وسيلن جي ضرورت آهي؟ اهو پڻ دارومدار رکي ٿو ٽيسٽ جي قسم تي. ھڪڙو مثال ھوندو لوڊ / دٻاءُ جا امتحان جيڪي اسان غير ڪم ڪندڙ ڪلاڪن دوران هلائڻ جو ارادو ڪريون ٿا ته جيئن ايندڙ ڏينھن نتيجا حاصل ڪن. پر يقيني طور تي XNUMX/XNUMX سرور جي دستيابي گهربل نه آهي آخر کان آخر تائين خودڪار ٽيسٽن لاءِ ۽ خاص طور تي دستي ٽيسٽنگ ماحول لاءِ نه. اهڙين حالتن لاءِ، اهو سٺو ٿيندو جيترو گهربل گهربل وسيلا حاصل ڪرڻ، انهن کي استعمال ڪريو، ۽ ادائگي بند ڪريو جڏهن انهن جي وڌيڪ ضرورت نه رهي. ان کان علاوه، اھو بھترين ھوندو ته انھن کي فوري طور تي حاصل ڪرڻ لاءِ ڪجھ ماؤس ڪلڪ ڪري يا ڪجھ اسڪرپٽ ھلائي. اھو اھو آھي جيڪو عوامي بادل استعمال ڪيو ويندو آھي. اچو ته تعريف کي ڏسو:

"عوامي ڪلائوڊ جي تعريف ڪئي وئي آهي ڪمپيوٽر جي خدمتن جي طور تي پيش ڪيل ٽئين پارٽي جي مهيا ڪندڙن پاران عوامي انٽرنيٽ تي، انهن کي هر ڪنهن لاء دستياب بڻائي ٿو جيڪو انهن کي استعمال ڪرڻ يا خريد ڪرڻ چاهي ٿو. اهي ٿي سگهن ٿا مفت يا وڪرو ٿيل آن ڊيمانڊ، گراهڪن کي اجازت ڏئي ٿو ته اهي صرف سي پي يو سائيڪل، اسٽوريج، يا بينڊوڊٿ لاءِ في استعمال ادا ڪن.

اتي هڪ راء آهي ته عوامي بادل قيمتي آهن. پر انهن جو اهم خيال ڪمپني جي قيمتن کي گهٽائڻ آهي. جيئن اڳ ذڪر ڪيو ويو آهي، عوامي بادل توهان کي گهربل وسيلن کي حاصل ڪرڻ جي اجازت ڏين ٿا ۽ صرف ان وقت لاء ادا ڪريو جيڪي توهان انهن کي استعمال ڪندا آهيو. انهي سان گڏ، ڪڏهن ڪڏهن اسان وساريندا آهيون ته ملازمن کي تنخواه ملي ٿي، ۽ ماهر پڻ هڪ قيمتي وسيلو آهن. اهو ضرور ذهن ۾ رکڻ گهرجي ته عوامي بادل انفراسٽرڪچر سپورٽ کي تمام آسان بڻائي ٿو، جيڪو انجنيئرن کي وڌيڪ اهم ڪمن تي ڌيان ڏيڻ جي اجازت ڏئي ٿو. 

آٽوميشن انفراسٽرڪچر لاءِ قدر

آخر کان آخر تائين UI ٽيسٽ لاءِ اسان کي ڪهڙن مخصوص وسيلن جي ضرورت آهي؟ بنيادي طور تي هي آهن ورچوئل مشينون يا ڪلسٽرز (اسان ايندڙ حصي ۾ ڪبرنيٽس بابت ڳالهائينداسين) برائوزرن ۽ ايموليٽرن لاءِ. جيترا وڌيڪ برائوزر ۽ ايموليٽر اسان هڪ ئي وقت هلائڻ چاهيون ٿا، اوترو وڌيڪ سي پي يو ۽ ميموري گهربل آهي ۽ ان لاءِ اسان کي اوترو وڌيڪ پئسا ادا ڪرڻا پوندا. ان ڪري، عوامي بادل ٽيسٽ آٽوميشن جي حوالي سان اسان کي وڏي تعداد ۾ (100, 200, 1000...) برائوزرز/ايموليٽرز جي مطالبي تي هلائڻ جي اجازت ڏين ٿا، جيترو جلدي ممڪن ٿي سگهي ٽيسٽ جا نتيجا حاصل ڪن ۽ ادائگي بند ڪن اهڙن بيحد وسيلن جي. طاقت. 

سڀ کان وڌيڪ مشهور ڪلائوڊ فراهم ڪندڙ آهن Amazon Web Services (AWS)، Microsoft Azure، Google Cloud Platform (GCP). گائيڊ ڪيئن ڪجي مثال مهيا ڪري ٿي GCP کي ڪيئن استعمال ڪجي، پر عام طور تي اهو فرق نٿو پوي ته توهان آٽوميشن جي ڪمن لاءِ ڇا استعمال ڪندا آهيو. اهي سڀئي تقريبن ساڳي ڪارڪردگي مهيا ڪن ٿا. عام طور تي، هڪ مهيا ڪندڙ کي چونڊڻ لاء، انتظام ڪمپني جي پوري زيربنا ۽ ڪاروباري گهرجن تي ڌيان ڏئي ٿو، جيڪو هن مضمون جي دائري کان ٻاهر آهي. آٽوميشن انجنيئرن لاءِ، ڪلائوڊ پليٽ فارمز جي استعمال سان ڪلائوڊ مهيا ڪندڙن جي استعمال جو مقابلو ڪرڻ وڌيڪ دلچسپ ٿيندو خاص طور تي ٽيسٽنگ جي مقصدن لاءِ، جهڙوڪ سوس ليبز، برائوزر اسٽيڪ، بِٽ بار وغيره. سو اچو ته اهو به ڪريون! منهنجي خيال ۾، سوس ليبز سڀ کان مشهور ڪلائوڊ ٽيسٽنگ فارم آهي، جنهن ڪري مون ان کي مقابلي لاءِ استعمال ڪيو. 

خودڪار مقصدن لاءِ GCP بمقابله سوس ليبز:

اچو ته تصور ڪريون ته اسان کي هڪ ئي وقت 8 ويب ٽيسٽ ۽ 8 اينڊرائيڊ ٽيسٽ هلائڻ گهرجن. ان لاءِ اسان استعمال ڪنداسين GCP ۽ هلائينداسين 2 ورچوئل مشينون Selenoid سان. پهرين تي اسان 8 ڪنٽينرز کي برائوزر سان گڏ ڪنداسين. ٻئي پاسي ايموليٽرز سان گڏ 8 ڪنٽينر آھن. اچو ته قيمتن تي هڪ نظر رکون:  

DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل
ڪروم سان ھڪڙي ڪنٽينر کي هلائڻ لاءِ، اسان کي ضرورت آھي n1-معياري-1 ڪار Android جي صورت ۾ اهو ٿيندو n1-معياري-4 هڪ ايموليٽر لاءِ. حقيقت ۾، هڪ وڌيڪ لچڪدار ۽ سستو طريقو اهو آهي ته سي پي يو/ميموري لاءِ مخصوص يوزر ويلز مقرر ڪيو وڃي، پر هن وقت ساس ليبز سان مقابلي لاءِ اهو اهم ناهي.

۽ هتي ساس ليبز استعمال ڪرڻ لاءِ قيمتون آهن:

DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل
مان سمجهان ٿو ته توهان اڳ ۾ ئي فرق محسوس ڪيو آهي، پر مان اڃا تائين اسان جي ڪم جي حساب سان ٽيبل فراهم ڪندس.

گهربل وسيلا
مونٽلي
ڪم جا ڪلاڪ(8am - 8pm)
ڪم جا ڪلاڪ+اڳتي

ويب لاءِ GCP
n1-معياري-1 x 8 = n1-معياري-8
$194.18
23 ڏينهن * 12h * 0.38 = $104.88 
23 ڏينهن * 12h * 0.08 = $22.08

ويب لاء ساس ليبز
ورچوئل Cloud8 متوازي ٽيسٽ
$1.559
-
-

Android لاءِ GCP
n1-معياري-4 x 8: n1-معياري-16
$776.72
23 ڏينهن * 12h * 1.52 = $419.52 
23 ڏينهن * 12h * 0.32 = $88.32

Android لاءِ سوس ليبز
ريئل ڊيوائس ڪلائوڊ 8 متوازي ٽيسٽ
$1.999
-
-

جئين توهان ڏسي سگهو ٿا، قيمت ۾ فرق تمام وڏو آهي، خاص طور تي جيڪڏهن توهان صرف ٻارهن ڪلاڪن جي ڪم واري عرصي دوران ٽيسٽ هلائيندا آهيو. پر جيڪڏهن توهان اڳڀرائي واري مشين استعمال ڪندا آهيو ته توهان اڃا به وڌيڪ خرچ گهٽائي سگهو ٿا. اهو ڇا آهي؟

هڪ اڳوڻو VM هڪ مثال آهي جنهن کي توهان ٺاهي ۽ هلائي سگهو ٿا عام مثالن جي ڀيٽ ۾ تمام گهڻي قيمت تي. بهرحال، Compute Engine انهن مثالن کي ختم ڪري سگھي ٿو (preempt) جيڪڏھن ان کي ٻين ڪمن لاءِ انھن وسيلن تائين رسائي جي ضرورت آھي. اڳڀرائي جا مثال وڌيڪ Compute Engine ظرفيت آهن، تنهنڪري انهن جي دستيابي استعمال سان مختلف ٿي سگهي ٿي.

جيڪڏهن توهان جون ائپس نقص برداشت ڪندڙ آهن ۽ ممڪن مثالن جي اڳڪٿين کي برداشت ڪري سگهن ٿيون، ته پوءِ اڳڀرائي وارا مثال توهان جي Compute Engine جي قيمتن کي گهٽائي سگهن ٿا. مثال طور، بيچ پروسيسنگ نوڪريون هلائي سگھن ٿيون اڳئين مثالن تي. جيڪڏهن انهن مان ڪجهه مثال پروسيسنگ دوران ختم ٿي وڃن ٿا، نوڪري سست ٿي ويندي آهي پر مڪمل طور تي بند نه ٿيندي آهي. اڳڀرائي وارا مثال توهان جي بيچ پروسيسنگ جا ڪم مڪمل ڪن ٿا بغير توهان جي موجوده مثالن تي اضافي ڪم لوڊ رکڻ جي ۽ بغير توهان کي اضافي عام مثالن لاءِ مڪمل قيمت ادا ڪرڻ جي.

۽ اهو اڃا ختم نه ٿيو آهي! حقيقت ۾، مون کي پڪ آهي ته ڪو به 12 ڪلاڪن تائين بغير ڪنهن وقفي جي ٽيسٽ نه هلندو آهي. ۽ جيڪڏهن ائين آهي، ته پوء توهان خودڪار طريقي سان شروع ڪري سگهو ٿا ۽ مجازي مشين کي بند ڪري سگهو ٿا جڏهن انهن جي ضرورت ناهي. حقيقي استعمال جو وقت گھٽجي سگھي ٿو 6 ڪلاڪ في ڏينھن تائين. پوءِ اسان جي ٽاسڪ جي حوالي سان ادائيگي گھٽجي ويندي $11 في مهيني 8 برائوزرن لاءِ. ڇا هي شاندار ناهي؟ پر اڳڀرائي واري مشينن سان اسان کي محتاط رهڻ گهرجي ۽ رڪاوٽن ۽ عدم استحڪام لاءِ تيار رهڻ گهرجي، جيتوڻيڪ اهي حالتون مهيا ڪري سگهجن ٿيون ۽ سافٽ ويئر ۾ سنڀالي سگهجن ٿيون. اهو ان جي قابل آهي!

پر مان هرگز نه چئي رهيو آهيان 'ڪڏهن به ڪلائوڊ ٽيسٽ فارم استعمال نه ڪريو'. انهن وٽ ڪيترائي فائدا آهن. سڀ کان پهريان، هي صرف هڪ مجازي مشين ناهي، پر هڪ مڪمل آزمائشي آٽوميشن حل آهي جيڪو دٻي کان ٻاهر ڪارڪردگي جي سيٽ سان گڏ آهي: ريموٽ رسائي، لاگز، اسڪرين شاٽ، وڊيو رڪارڊنگ، مختلف برائوزر ۽ جسماني موبائل ڊوائيس. ڪيترين ئي حالتن ۾، هي هڪ ضروري شيڪ متبادل ٿي سگهي ٿو. ٽيسٽنگ پليٽ فارم خاص طور تي IOS آٽوميشن لاءِ ڪارآمد آهن، جڏهن عوامي بادل صرف لينڪس/ونڊوز سسٽم پيش ڪري سگھن ٿا. پر اسان کي هيٺين مضمونن ۾ به iOS جي باري ۾ ڳالهائي ويندي. آئون هميشه صورتحال کي ڏسڻ ۽ ڪمن کان شروع ڪرڻ جي صلاح ڏيان ٿو: ڪجهه حالتن ۾ اهو سستو ۽ وڌيڪ ڪارائتو آهي عوامي بادل استعمال ڪرڻ، ۽ ٻين ۾ ٽيسٽ پليٽ فارم ضرور خرچ ڪيل رقم جي قيمت آهي.

انفراسٹرڪچر جي موجوده حالت جو مثال

DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل

ڳولڻ لاءِ لنڪس

ملندڙ اوزار:

6. آرڪيسٽريشن

ٽيڪنالاجي جي مختصر وضاحت

مون کي سٺي خبر آهي - اسان تقريبن مضمون جي آخر ۾ آهيون! هن وقت، اسان جو آٽوميشن انفراسٽرڪچر ويب ۽ اينڊرائيڊ ٽيسٽن تي مشتمل آهي، جنهن کي اسين گيٽ ليب CI ذريعي متوازي طور تي هلائيندا آهيون، Docker-enabled Tools استعمال ڪندي: Selenium grid ۽ Selenoid. ان کان علاوه، اسان استعمال ڪندا آهيون مجازي مشينون GCP ذريعي ٺاهيل ڪنٽينرز کي ميزباني ڪرڻ لاءِ برائوزرن ۽ ايموليٽرن سان. خرچن کي گھٽائڻ لاءِ، اسان انھن ورچوئل مشينن کي صرف طلب تي شروع ڪندا آھيون ۽ انھن کي روڪيندا آھيون جڏھن جاچ نه ٿي رھي آھي. ڇا ڪا ٻي شيءِ آهي جيڪا اسان جي انفراسٽرڪچر کي بهتر بڻائي سگهي؟ جواب آهي ها! ملو Kubernetes (K8s)!

پهرين، اچو ته ڏسون ته ڪيئن لفظ آرڪيسٽريشن، ڪلستر ۽ ڪبرنيٽس هڪ ٻئي سان لاڳاپيل آهن. هڪ اعلي سطح تي، آرڪٽسٽريشن اهو نظام آهي جيڪو ايپليڪيشنن کي ترتيب ۽ منظم ڪري ٿو. ٽيسٽ آٽوميشن لاءِ، اهڙيون ڪنٽينر ٿيل ايپليڪيشنون Selenium گرڊ ۽ Selenoid آهن. Docker ۽ K8s هڪ ٻئي کي پورو ڪن ٿا. پهريون استعمال ڪيو ويندو آهي ايپليڪيشن جي ترتيب لاءِ، ٻيو آرڪيسٽريشن لاءِ. موڙ ۾، K8s هڪ ڪلستر آهي. ڪلستر جو ڪم VMs کي نوڊس طور استعمال ڪرڻ آھي، جيڪو توھان کي ھڪڙي سرور (ڪلسٽر) اندر مختلف ڪارڪردگي، پروگرام ۽ خدمتون انسٽال ڪرڻ جي اجازت ڏئي ٿو. جيڪڏهن ڪو به نوڊس ناڪام ٿئي ٿو، ٻيا نوڊس چونڊيندا، جيڪو اسان جي ايپليڪيشن جي بي ترتيب آپريشن کي يقيني بڻائي ٿو. ان کان علاوه، K8s ۾ اسڪيلنگ سان لاڳاپيل اهم ڪارڪردگي آهي، جنهن جي مهرباني، اسان خودڪار طريقي سان لوڊ ۽ مقرر ڪيل حدن جي بنياد تي وسيلن جي وڌ کان وڌ مقدار حاصل ڪندا آهيون.

سچ ۾، دستي طور تي ڪبرنيٽس کي شروع کان ترتيب ڏيڻ ڪو معمولي ڪم ناهي. مان هڪ لنڪ ڇڏيندس مشهور ڪيئن رهنمائي ڪرڻ لاءِ "Kubernetes The Hard Way" ۽ جيڪڏهن توهان دلچسپي رکو ٿا ته توهان ان تي عمل ڪري سگهو ٿا. پر، خوش قسمت، اتي متبادل طريقا ۽ اوزار آهن. GCP ۾ گوگل ڪبرنيٽس انجڻ (GKE) استعمال ڪرڻ جو آسان طريقو آھي، جيڪو توھان کي ڪجھ ڪلڪن ۾ تيار ڪيل ڪلستر حاصل ڪرڻ جي اجازت ڏيندو. مان سکڻ شروع ڪرڻ لاءِ هن طريقي کي استعمال ڪرڻ جي صلاح ڏيان ٿو، جيئن اهو توهان کي سکڻ تي ڌيان ڏيڻ جي اجازت ڏيندو ته توهان جي ڪمن لاءِ K8s ڪيئن استعمال ڪجي اهو سکڻ جي بجاءِ ته اندروني حصن کي هڪ ٻئي سان ڪيئن ضم ٿيڻ گهرجي. 

آٽوميشن انفراسٽرڪچر لاءِ قدر

اچو ته ڪجهه اهم خصوصيتن تي هڪ نظر رکون جيڪي K8s مهيا ڪري ٿي:

  • ايپليڪيشن جي جوڙجڪ: VMs جي بدران ملٽي نوڊس ڪلستر استعمال ڪندي؛
  • متحرڪ اسڪيلنگ: وسيلن جي قيمت گھٽائي ٿو جيڪي صرف مطالبن تي استعمال ڪيا وڃن ٿا؛
  • خود شفا: پوڊ جي خودڪار وصولي (جنهن جي نتيجي ۾ ڪنٽينر پڻ بحال ڪيا ويا آهن)؛
  • اپ ڊيٽ جو رول آئوٽ ۽ تبديلين جي رولبڪ بغير دير جي وقت: تازه ڪاري ڪرڻ وارا اوزار، برائوزر ۽ ايموليٽر موجوده استعمال ڪندڙن جي ڪم ۾ مداخلت نٿا ڪن

پر K8s اڃا تائين چانديء جي گولي نه آهي. اوزارن جي حوالي سان سڀني فائدن ۽ حدن کي سمجھڻ لاءِ جن تي اسان غور ڪري رھيا آھيون (سيلينيم گرڊ، سيلينوئڊ)، اسان مختصر طور تي K8s جي جوڙجڪ تي بحث ڪنداسين. ڪلستر ٻن قسمن جي نوڊس تي مشتمل آهي: ماسٽر نوڊس ۽ ورڪرز نوڊس. ماسٽر نوڊس انتظام، مقرري ۽ شيڊول جي فيصلن جا ذميوار آهن. ڪم ڪندڙ نوڊس آهن جتي ايپليڪيشنون شروع ڪيون ويون آهن. نوڊس پڻ ڪنٽينر رن ٽائم ماحول تي مشتمل آھي. اسان جي صورت ۾، هي Docker آهي، جيڪو ڪنٽينر سان لاڳاپيل عملن جو ذميوار آهي. پر هتي پڻ متبادل حل آهن، مثال طور ڪنٽينر ڊي. اهو سمجهڻ ضروري آهي ته اسڪيلنگ يا خود شفا ڏيڻ سڌو سنئون ڪنٽينرز تي لاڳو نٿو ٿئي. اهو پوڊن جي تعداد کي شامل ڪرڻ/گهٽائڻ سان لاڳو ڪيو ويندو آهي، جنهن جي نتيجي ۾ ڪنٽينر هوندا آهن (عام طور تي هڪ ڪنٽينر في پوڊ، پر ڪم جي لحاظ کان وڌيڪ ٿي سگهي ٿو). اعليٰ سطحي حُر ڪم ڪندڙ نوڊس تي مشتمل هوندو آهي، جن جي اندر ٻوٽا هوندا آهن، جن جي اندر ڪنٽينر بلند ٿيل هوندا آهن.

اسڪيلنگ جي خاصيت اهم آهي ۽ ٻنهي نوڊس تي لاڳو ٿي سگهي ٿو ڪلستر نوڊ پول ۽ نوڊ اندر پوڊس. اسڪيلنگ جا 2 قسم آھن جيڪي ٻئي نوڊس ۽ پوڊس تي لاڳو ٿين ٿا. پهريون قسم افقي آهي - اسڪيلنگ نوڊس / پوڊز جو تعداد وڌائڻ سان ٿئي ٿو. هي قسم وڌيڪ ترجيح آهي. ٻيو قسم، مطابق، عمودي. اسڪيلنگ نوڊس/پڊس جي سائيز کي وڌائڻ سان ڪيو ويندو آهي، ۽ انهن جو تعداد نه.

هاڻي اچو ته مٿي ڏنل اصطلاحن جي حوالي سان اسان جي اوزارن کي ڏسو.

سلينيم گرڊ

جيئن اڳ ذڪر ڪيو ويو آهي، سيلينيم گرڊ هڪ تمام مشهور اوزار آهي، ۽ اها ڪا به تعجب ناهي ته اهو ڪنٽرول ڪيو ويو آهي. تنهن ڪري، اهو ڪو به تعجب ناهي ته سيلينيم گرڊ K8s ۾ ترتيب ڏئي سگهجي ٿو. اهو ڪيئن ڪجي جو هڪ مثال سرڪاري K8s مخزن ۾ ملي سگهي ٿو. هميشه وانگر، مان سيڪشن جي آخر ۾ لنڪس ڳنڍيندو آهيان. ان کان علاوه، ھدايت ڪرڻ جو طريقو ڏيکاري ٿو ته اھو ڪيئن ڪجي Terraform ۾. هتي پڻ هدايتون آهن ته ڪيئن پوڊ جي تعداد کي ماپڻ لاءِ جيڪي برائوزر ڪنٽينر تي مشتمل آهن. پر K8s جي حوالي سان خودڪار اسڪيلنگ فنڪشن اڃا تائين مڪمل طور تي واضح ڪم نه آهي. جڏهن مون پڙهڻ شروع ڪيو، مون کي ڪا به عملي هدايت يا سفارش نه ملي. DevOps ٽيم جي مدد سان ڪيترن ئي مطالعي ۽ تجربن کان پوء، اسان هڪ پوڊ اندر ضروري برائوزرن سان ڪنٽينرز کي وڌائڻ جو طريقو چونڊيو، جيڪو هڪ ڪم ڪندڙ نوڊ جي اندر واقع آهي. اهو طريقو اسان کي انهن جي تعداد کي وڌائڻ سان نوڊس جي افقي اسڪيلنگ جي حڪمت عملي کي لاڳو ڪرڻ جي اجازت ڏئي ٿو. مون کي اميد آهي ته اهو مستقبل ۾ تبديل ٿي ويندو ۽ اسان بهتر طريقن ۽ تيار ڪيل حلن جا وڌيڪ ۽ وڌيڪ تفصيل ڏسندا، خاص طور تي تبديل ٿيل اندروني فن تعمير سان سلينيم گرڊ 4 جي ڇڏڻ کان پوء.

سيلنائڊ:

K8s ۾ Selenoid جي تعیناتي هن وقت سڀ کان وڏي مايوسي آهي. اهي مطابقت نه آهن. نظريي ۾، اسان هڪ پوڊ اندر هڪ Selenoid ڪنٽينر بلند ڪري سگهون ٿا، پر جڏهن Selenoid برائوزرن سان ڪنٽينر لانچ ڪرڻ شروع ڪري ٿو، اهي اڃا تائين ساڳئي پوڊ اندر هوندا. اهو اسڪيلنگ کي ناممڪن بڻائي ٿو ۽ نتيجي طور، هڪ ڪلستر اندر Selenoid جو ڪم هڪ مجازي مشين اندر ڪم کان مختلف ناهي. ڪهاڻي جي پڄاڻي.

چنڊ:

Selenoid سان ڪم ڪرڻ دوران هن رڪاوٽ کي ڄاڻڻ، ڊولپرز مون کي وڌيڪ طاقتور اوزار جاري ڪيو. ھي اوزار اصل ۾ ڪبرنيٽس سان ڪم ڪرڻ لاءِ ٺاھيو ويو ھو ۽ نتيجي طور، آٽو اسڪيلنگ فيچر استعمال ڪري سگھجي ٿو ۽ ھئڻ گھرجي. ان کان سواء، مان چوان ٿو ته هن وقت اهو آهي صرف سيلينيم دنيا ۾ هڪ اوزار، جنهن کي دٻي کان ٻاهر اصلي K8s ڪلستر سپورٽ آهي (هاڻي دستياب ناهي، ايندڙ اوزار ڏسو ). چنڊ جون اھم خاصيتون جيڪي ھي مدد مهيا ڪن ٿيون: 

مڪمل طور تي بي وطن. Selenoid اسٽورن ۾ ميموري معلومات هن وقت هلندڙ برائوزر سيشن بابت. جيڪڏهن ڪنهن سبب جي ڪري ان جو عمل حادثو ٿئي ٿو - پوءِ سڀ هلندڙ سيشن گم ٿي ويا آهن. چنڊ ان جي ابتڙ ڪا اندروني حالت ناهي ۽ ڊيٽا سينٽرن تي نقل ڪري سگهجي ٿو. برائوزر سيشن زنده رھندا آھن جيتوڻيڪ ھڪڙو يا وڌيڪ نقل ھيٺ ھجن.

تنهن ڪري، چنڊ هڪ بهترين حل آهي، پر هڪ مسئلو آهي: اهو مفت ناهي. قيمت سيشن جي تعداد تي منحصر آهي. توهان صرف 0-4 سيشن مفت ۾ هلائي سگهو ٿا، جيڪو خاص طور تي ڪارائتو ناهي. پر، پنجين سيشن کان شروع ڪندي، توهان کي هر هڪ لاء $ 5 ادا ڪرڻو پوندو. صورتحال ڪمپني کان ڪمپني تائين مختلف ٿي سگهي ٿي، پر اسان جي صورت ۾، چنڊ استعمال ڪرڻ بي معني آهي. جيئن مون مٿي بيان ڪيو آهي، اسان سيلينيم گرڊ سان VMs کي طلب ڪري سگھون ٿا يا ڪلستر ۾ نوڊس جو تعداد وڌائي سگھون ٿا. لڳ ڀڳ هڪ پائيپ لائين لاءِ، اسان 500 برائوزر شروع ڪريون ٿا ۽ ٽيسٽ مڪمل ٿيڻ کان پوءِ سڀ وسيلا بند ڪريون ٿا. جيڪڏهن اسان چنڊ ​​استعمال ڪيو، اسان کي اضافي ادا ڪرڻو پوندو 500 x 5 = $2500 هر مهيني، ڪابه ڳالهه ناهي ته اسين ڪيترا ڀيرا ٽيسٽ هلون. ٻيهر، مان نه چئي رهيو آهيان چنڊ ​​استعمال نه ڪريو. توهان جي ڪمن لاءِ، اهو هڪ لازمي حل ٿي سگهي ٿو، مثال طور، جيڪڏهن توهان وٽ توهان جي تنظيم ۾ ڪيترائي منصوبا/ٽيم آهن ۽ توهان کي هر ڪنهن لاءِ وڏي عام ڪلستر جي ضرورت آهي. هميشه وانگر، مان آخر ۾ هڪ لنڪ ڇڏيان ٿو ۽ توهان جي ڪم جي حوالي سان تمام ضروري حساب ڪتاب ڪرڻ جي صلاح ڏيان ٿو.

ڪليسٽو: (ڌيان! هي اصل مضمون ۾ نه آهي ۽ صرف روسي ترجمي ۾ موجود آهي)

جيئن مون چيو، سيلينيم هڪ تمام مشهور اوزار آهي، ۽ آئي ٽي فيلڊ تمام جلدي ترقي ڪري رهيو آهي. جڏھن مان ترجمي تي ڪم ڪري رھيو ھوس، تڏھن ھڪ نئون واعدو ڪندڙ اوزار جنھن جو نالو Callisto ويب تي ظاهر ٿيو (هيلو سائپريس ۽ ٻيا سيلينيم قاتل). اهو مقامي طور تي K8s سان ڪم ڪري ٿو ۽ توهان کي اجازت ڏئي ٿو Selenoid ڪنٽينرز کي هلائڻ جي پوڊ ۾، ورهايل نوڊس ۾. هر شي دٻي کان ٻاهر ڪم ڪري ٿي، بشمول آٽو اسڪيلنگ. شاندار، پر آزمائشي ٿيڻ جي ضرورت آهي. مون اڳ ۾ ئي هن اوزار کي ترتيب ڏيڻ ۽ ڪيترن ئي تجربن کي هلائڻ جو انتظام ڪيو آهي. پر اهو نتيجو ڪڍڻ تمام جلدي آهي، ڊگهي فاصلي تي نتيجا حاصل ڪرڻ کان پوء، شايد آئون مستقبل جي مضمونن ۾ جائزو وٺندس. هينئر تائين مان صرف آزاد تحقيق لاءِ لنڪس ڇڏي رهيو آهيان.  

انفراسٹرڪچر جي موجوده حالت جو مثال

DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل

ڳولڻ لاءِ لنڪس

ملندڙ اوزار

7. بنيادي ڍانچي جيئن ڪوڊ (IaC)

ٽيڪنالاجي جي مختصر وضاحت

۽ ھاڻي اچون ٿا آخري سيڪشن ڏانھن. عام طور تي، هي ٽيڪنالاجي ۽ لاڳاپيل ڪم خودڪار انجنيئرن جي ذميواري نه آهن. ۽ هن جا سبب آهن. پهرين، ڪيترن ئي تنظيمن ۾، انفراسٽرڪچر جا مسئلا DevOps ڊپارٽمينٽ جي ڪنٽرول هيٺ آهن ۽ ترقياتي ٽيمن کي حقيقت ۾ پرواه ناهي ته ڇا پائپ لائن ڪم ڪري ٿي ۽ ان سان ڳنڍيل هر شيء کي سپورٽ ڪرڻ جي ضرورت آهي. ٻيو، اچو ته ايماندار ٿي، بنيادي طور تي ڪوڊ (IaC) جو رواج اڃا تائين ڪيترن ئي ڪمپنين ۾ اختيار نه ڪيو ويو آهي. پر اهو ضرور هڪ مشهور رجحان بڻجي چڪو آهي ۽ اهو ضروري آهي ته ان سان لاڳاپيل عملن، طريقن ۽ اوزارن ۾ شامل ٿيڻ جي ڪوشش ڪئي وڃي. يا گهٽ ۾ گهٽ تاريخ تائين رهو.

اچو ته هن طريقي کي استعمال ڪرڻ جي حوصلا افزائي سان شروع ڪريون. اسان اڳ ۾ ئي بحث ڪيو آهي ته GitlabCI ۾ ٽيسٽ هلائڻ لاء، اسان کي گهٽ ۾ گهٽ وسيلن جي ضرورت پوندي Gitlab رنر کي هلائڻ لاء. ۽ ڪنٽينرز کي هلائڻ لاءِ برائوزرز/ايموليٽرن سان، اسان کي وي ايم يا ڪلستر محفوظ ڪرڻ جي ضرورت آهي. وسيلن جي جانچ ڪرڻ کان علاوه، اسان کي ترقي، اسٽيجنگ، پيداوار جي ماحول کي سپورٽ ڪرڻ جي صلاحيت جي وڏي مقدار جي ضرورت آهي، جنهن ۾ پڻ شامل آهي ڊيٽابيس، خودڪار شيڊول، نيٽ ورڪ ترتيب، لوڊ بيلنس، صارف جا حق، وغيره. اهم مسئلو اهو آهي ته ان جي مدد لاءِ گهربل ڪوششون. اتي ڪيترائي طريقا آھن جيڪي اسان تبديليون ڪري سگھون ٿا ۽ تازه ڪاريون آڻي سگھون ٿا. مثال طور، GCP جي حوالي سان، اسان برائوزر ۾ UI ڪنسول استعمال ڪري سگھون ٿا ۽ بٽڻ دٻائڻ سان سڀ عمل انجام ڏئي سگھون ٿا. هڪ متبادل هوندو API ڪالون استعمال ڪرڻ لاءِ ڪلائوڊ ادارن سان لهه وچڙ ڪرڻ لاءِ، يا استعمال ڪيو gcloud ڪمانڊ لائن يوٽيلٽي کي گهربل هٿرادو انجام ڏيڻ لاءِ. پر مختلف ادارن ۽ بنيادي ڍانچي جي عناصرن جي هڪ وڏي تعداد سان، اهو مشڪل يا ناممڪن ٿي وڃي ٿو سڀني عملن کي دستي طور تي انجام ڏيڻ. ان کان علاوه، اهي سڀئي دستي ڪارناما غير ڪنٽرول آهن. اسان ان کي عمل ڪرڻ کان اڳ جائزو وٺڻ لاءِ جمع نه ٿا ڪري سگھون، ورجن ڪنٽرول سسٽم استعمال ڪريو، ۽ جلدي تبديلين کي واپس آڻي سگھون ٿا جيڪي واقعا پيش آيا. اهڙن مسئلن کي حل ڪرڻ لاءِ، انجنيئرن پاڻمرادو بش/شيل اسڪرپٽ ٺاهي ۽ ٺاهيا، جيڪي اڳئين طريقن کان وڌيڪ بهتر نه آهن، ڇاڪاڻ ته اهي تڪڙو پڙهڻ، سمجهڻ، برقرار رکڻ ۽ طريقيڪار واري انداز ۾ تبديل ڪرڻ آسان نه آهن.

ھن آرٽيڪل ۾ ۽ ھدايت ڪيئن ڪجي، مان استعمال ڪريان ٿو 2 اوزار لاڳاپيل IaC مشق سان. اهي Terraform ۽ جوابي آهن. ڪجهه ماڻهو يقين ڪن ٿا ته انهن کي هڪ ئي وقت ۾ استعمال ڪرڻ جو ڪو احساس ناهي، ڇاڪاڻ ته انهن جي ڪارڪردگي هڪجهڙائي آهي ۽ اهي مٽائي سگهجن ٿيون. پر حقيقت اها آهي ته شروعات ۾ انهن کي مڪمل طور تي مختلف ڪم ڏنو ويو آهي. ۽ حقيقت اها آهي ته انهن اوزارن کي هڪ ٻئي کي پورو ڪرڻ گهرجي هاشي ڪورپ ۽ ريڊ هٽ جي نمائندگي ڪندڙ ڊولپرز پاران گڏيل پيشڪش ۾ تصديق ڪئي وئي. تصوراتي فرق اهو آهي ته Terraform خود سرورز کي منظم ڪرڻ لاء هڪ روزي وارو اوزار آهي. جڏهن ته جوابي هڪ ترتيب واري انتظام جو اوزار آهي جنهن جو ڪم انهن سرورن تي سافٽ ويئر کي انسٽال ڪرڻ، ترتيب ڏيڻ ۽ منظم ڪرڻ آهي.

انهن اوزارن جي هڪ ٻي اهم خصوصيت آهي ڪوڊنگ جو انداز. بيش ۽ جوابي جي برعڪس، Terraform هڪ بياني انداز کي استعمال ڪري ٿو، جنهن تي عمل جي نتيجي ۾ حاصل ٿيڻ جي مطلوب آخري رياست جي وضاحت تي ٻڌل آهي. مثال طور، جيڪڏهن اسان 10 VMs ٺاهڻ وارا آهيون ۽ تبديلين کي Terraform ذريعي لاڳو ڪرڻ وارا آهيون، ته اسان کي 10 VMs ملندا. جيڪڏهن اسان اسڪرپٽ کي ٻيهر هلون ٿا، ڪجھ به نه ٿيندو ڇو ته اسان وٽ اڳ ۾ ئي 10 VMs آهن، ۽ Terraform ان بابت ڄاڻي ٿو ڇو ته اهو زيربنا جي موجوده حالت کي اسٽيٽ فائل ۾ محفوظ ڪري ٿو. پر جوابي طريقي وارو طريقو استعمال ڪري ٿو ۽، جيڪڏهن توهان ان کي 10 VMs ٺاهڻ لاءِ پڇو، ته پوءِ پهرين لانچ تي اسان 10 VMs حاصل ڪنداسين، جهڙوڪ Terraform. پر ٻيهر شروع ڪرڻ کان پوء اسان وٽ اڳ ۾ ئي 20 VMs هوندا. هي اهم فرق آهي. طريقيڪار واري انداز ۾، اسان موجوده حالت کي ذخيرو نٿا ڪريون ۽ صرف قدمن جي هڪ ترتيب کي بيان ڪريون ٿا جيڪي انجام ڏيڻ گهرجن. يقينن، اسان مختلف حالتن کي سنڀالي سگهون ٿا، وسيلن جي وجود ۽ موجوده حالت لاء ڪيترائي چيڪ شامل ڪري سگهون ٿا، پر اسان جو وقت ضايع ڪرڻ ۽ هن منطق کي ڪنٽرول ڪرڻ ۾ ڪوشش ڪرڻ جو ڪو به فائدو ناهي. ان کان علاوه، هي غلطي ڪرڻ جو خطرو وڌائي ٿو. 

مٿين سڀني کي اختصار ڪندي، اسان اهو نتيجو ڪري سگهون ٿا ته Terraform ۽ اعلاناتي نوٽيشن سرورز جي فراهمي لاءِ وڌيڪ مناسب اوزار آهن. پر اهو بهتر آهي ته ترتيب ڏيڻ جي انتظام جو ڪم جواب ڏيڻ لاء. انهي طريقي سان، اچو ته ڏسو استعمال ڪيسن کي آٽوميشن جي حوالي سان.

آٽوميشن انفراسٽرڪچر لاءِ قدر

هتي سمجهڻ لاءِ صرف اهم شيءِ اها آهي ته ٽيسٽ آٽوميشن انفراسٽرڪچر کي پوري ڪمپني انفراسٽرڪچر جو حصو سمجهيو وڃي. هن جو مطلب آهي ته سڀني IaC عملن کي لاڳو ڪيو وڃي عالمي سطح تي پوري تنظيم جي وسيلن تي. هن جو ذميوار ڪير آهي توهان جي عملن تي منحصر آهي. DevOps ٽيم انهن مسئلن ۾ وڌيڪ تجربا آهن، اهي ڏسندا آهن سڄي تصوير ڇا ٿي رهيو آهي. بهرحال، QA انجنيئرن کي خودڪار ڪرڻ ۽ پائپ لائن جي ڍانچي جي تعمير جي عمل ۾ وڌيڪ ملوث آهن، جيڪي انهن کي بهتر طور تي سڀني گهربل تبديلين ۽ موقعن کي بهتر ڏسڻ جي اجازت ڏئي ٿو. بهترين اختيار اهو آهي ته گڏجي ڪم ڪرڻ، علم ۽ خيالن جي تبادلي کي متوقع نتيجو حاصل ڪرڻ لاء. 

ھتي ڪجھ مثال آھن Terraform ۽ Ansible استعمال ڪرڻ جا امتحان آٽوميشن جي حوالي سان ۽ اوزار جن تي اسان اڳ ۾ بحث ڪيو آھي:

1. Terraform استعمال ڪندي VMs ۽ ڪلسٽرز جون ضروري خاصيتون ۽ پيرا ميٽر بيان ڪريو.

2. جوابي استعمال ڪندي، ٽيسٽ لاءِ ضروري اوزارن کي انسٽال ڪريو: ڊاڪر، Selenoid، Selenium Grid ۽ برائوزرز/ايموليٽرز جا گهربل ورجن ڊائون لوڊ ڪريو.

3. Terraform استعمال ڪندي، VM جون خاصيتون بيان ڪريو جن ۾ GitLab رنر شروع ڪيو ويندو.

4. انسٽال ڪريو GitLab رنر ۽ ضروري اوزارن کي استعمال ڪندي جوابي، سيٽنگون ۽ ترتيبون.

انفراسٹرڪچر جي موجوده حالت جو مثال

DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل

ڳولهڻ لاءِ لنڪس:

ملندڙ اوزار

اچو ته ان جو خلاصو!

قدم
ٽيڪنالاجي
اوزار
آٽوميشن انفراسٽرڪچر لاءِ قدر

1
مقامي هلندڙ
Node.js، Selenium، Appium

  • ويب ۽ موبائل لاء سڀ کان وڌيڪ مشهور اوزار
  • ڪيترن ئي ٻولين ۽ پليٽ فارمن کي سپورٽ ڪري ٿو (بشمول Node.js)

2
نسخه ڪنٽرول نظام 
Git

  • ڊولپمينٽ ڪوڊ سان ملندڙ فائدا

3
ڪنٽينرائزيشن
Docker، Selenium گرڊ، Selenoid (ويب، Android)

  • متوازي ۾ هلندڙ ٽيسٽ
  • الڳ الڳ ماحول
  • سادي، لچڪدار ورجن اپ گريڊ
  • متحرڪ طور تي غير استعمال ٿيل وسيلن کي روڪڻ
  • ترتيب ڏيڻ آسان

4
CI/CD
Gitlab CI

  • آزمائشي پائپ لائن جو حصو
  • ыстрая обратная
  • پوري ڪمپني/ٽيم لاءِ نمائش

5
Cloud Platform
Google Cloud Platform

  • گهرج تي وسيلا (اسان صرف ان وقت ادا ڪندا آهيون جڏهن ضرورت هجي)
  • منظم ڪرڻ ۽ تازه ڪاري ڪرڻ آسان
  • سڀني وسيلن جي نمائش ۽ ڪنٽرول

6
آرڪٽريشن
ڪوبنيٿس
ڪنٽينرز جي حوالي سان برائوزرز/ايموليٽرن سان گڏ پوڊ اندر:

  • اسڪيلنگ / خودڪار اسڪيلنگ
  • خود علاج
  • اپڊيٽ ۽ رول بيڪ بغير ڪنهن رڪاوٽ جي

7
بنيادي ڍانچي جي طور تي ڪوڊ (IaC)
ترافارم ، جوابي

  • ترقي جي بنيادي ڍانچي سان ملندڙ فائدا
  • ڪوڊ ورزننگ جا سڀ فائدا
  • تبديل ڪرڻ ۽ برقرار رکڻ لاء آسان
  • مڪمل طور تي خودڪار

دماغ نقشو ڊراگرام: انفراسٹرڪچر جي ارتقاء

قدم 1: مقامي
DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل

قدم 2: VCS
DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل

قدم 3: ڪنٽينرائزيشن 
DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل

قدم 4: CI/CD 
DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل

قدم 5: Cloud پليٽ فارم
DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل

قدم 6: آرڪيسٽريشن
DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل

قدم 7: آئي سي
DevOps اوزار صرف DevOps لاءِ نه آهن. شروع کان هڪ ٽيسٽ آٽوميشن انفراسٽرڪچر تعمير ڪرڻ جو عمل

ايندڙ ڇا آهي؟

تنهن ڪري، هي مضمون جي پڄاڻي آهي. پر آخر ۾، مان توهان سان ڪجهه معاهدو قائم ڪرڻ چاهيندس.

تنهنجي پاسي کان
جيئن مون شروع ۾ چيو، مان چاهيان ٿو ته مضمون عملي طور استعمال ٿئي ۽ حاصل ڪيل علم کي حقيقي ڪم ۾ لاڳو ڪرڻ ۾ توهان جي مدد ڪري. مان ٻيهر شامل ڪيان ٿو عملي گائيڊ سان ڳنڍيو.

پر ان کان پوءِ به، نه روڪيو، مشق ڪريو، لاڳاپيل لنڪس ۽ ڪتابن جو مطالعو ڪريو، معلوم ڪريو ته اهو توهان جي ڪمپني ۾ ڪيئن ڪم ڪري ٿو، جڳهون ڳوليو جيڪي بهتر ٿي سگهن ۽ ان ۾ حصو وٺو. سدا خوشقسمت رهو!

منهنجي پاسي کان

عنوان مان توهان ڏسي سگهو ٿا ته اهو صرف پهريون حصو هو. ان حقيقت جي باوجود ته اهو ڪافي وڏو ثابت ٿيو، اهم موضوع اڃا تائين هتي ڍڪيل نه آهن. ٻئي حصي ۾، مان IOS جي حوالي سان آٽوميشن انفراسٽرڪچر کي ڏسڻ جو منصوبو ڪريان ٿو. صرف MacOS سسٽم تي iOS سموليٽر هلائڻ تي ايپل جي پابندين جي ڪري، اسان جي حل جو سلسلو تنگ ڪيو ويو آهي. مثال طور، اسان ڊڪر استعمال ڪرڻ کان قاصر آهيون سميوليٽر کي هلائڻ لاءِ يا عوامي بادل کي ورچوئل مشينون هلائڻ لاءِ. پر هن جو مطلب اهو ناهي ته ڪو ٻيو متبادل ناهي. مان توهان کي جديد حل ۽ جديد اوزارن سان تازه ڪاري ڪرڻ جي ڪوشش ڪندس!

انهي سان گڏ، مون مانيٽرنگ سان لاڳاپيل ڪافي وڏن عنوانن جو ذڪر نه ڪيو آهي. حصو 3 ۾، مان ڏسڻ وارو آھيان سڀ کان وڌيڪ مقبول انفراسٽرڪچر مانيٽرنگ ٽولز ۽ ڪھڙي ڊيٽا ۽ ميٽرڪ تي غور ڪرڻ گھرجي.

۽ آخر ۾. مستقبل ۾، مان هڪ وڊيو ڪورس جاري ڪرڻ جو ارادو ڪريان ٿو ٽيسٽ انفراسٽرڪچر ۽ مشهور اوزارن تي. في الحال، انٽرنيٽ تي DevOps تي ڪافي ڪجھ ڪورسز ۽ ليڪچر آھن، پر سڀ مواد ترقي جي حوالي سان پيش ڪيا ويا آھن، آٽوميشن جي آزمائش نه. هن مسئلي تي، مون کي واقعي تي راء جي ضرورت آهي ته ڇا اهڙو ڪورس دلچسپ ۽ قيمتي هوندو ٽيسٽرز ۽ آٽوميشن انجنيئرز جي ڪميونٽي لاءِ. اڳ ۾ توهان جي مهرباني!

جو ذريعو: www.habr.com

تبصرو شامل ڪريو