د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه

برخه 1: ویب/Android

تبصره: دا مقاله د اصلي مقالې روسي ته ژباړه ده "د DevOps وسیلې نه یوازې د DevOps لپاره دي. "له پیل څخه د ازموینې اتومات زیربنا جوړول." په هرصورت، ټول مثالونه، لینکونه، نرخونه او اصطلاحات په اصلي ژبه کې ساتل کیږي ترڅو د معنی د تحریف څخه مخنیوی وشي کله چې روسی ته ژباړل کیږي. زه غواړم تاسو خوشحاله زده کړه وکړئ!

د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه

اوس مهال، د DevOps ځانګړتیا د معلوماتي ټیکنالوژۍ صنعت کې یو له خورا تقاضا څخه دی. که تاسو د دندې لټون مشهور سایټونه خلاص کړئ او د معاش له مخې فلټر کړئ ، نو تاسو به وګورئ چې د DevOps پورې اړوند دندې د لیست په سر کې دي. په هرصورت، دا مهمه ده چې پوه شي چې دا په عمده توګه د 'لوړ' موقف ته اشاره کوي، کوم چې دا معنی لري چې کاندید د لوړې کچې مهارتونه، د ټیکنالوژۍ او وسایلو پوهه لري. دا د لوړې کچې مسؤلیت سره هم راځي چې د تولید بې بنسټه عملیاتو سره تړاو لري. په هرصورت، موږ هیر کړو چې DevOps څه شی دی. په پیل کې، دا کوم ځانګړی شخص یا څانګه نه وه. که موږ د دې اصطلاح تعریفونه وګورو، موږ به ډیری ښکلي او سم اسمونه ومومئ، لکه میتودولوژي، عمل، کلتوري فلسفه، د مفکورو ډله او داسې نور.

زما تخصص د ازموینې اتومات انجینر (QA اتومات انجینر) دی ، مګر زه باور لرم چې دا باید یوازې د اتومات ازموینې لیکلو یا د ازموینې چوکاټ جوړښت رامینځته کولو سره تړاو ونلري. په 2020 کې، د اتومات زیربنا پوهه هم اړینه ده. دا تاسو ته اجازه درکوي د اتومات کولو پروسه پخپله تنظیم کړئ ، د ازموینو له چلولو څخه د خپلو اهدافو سره سم ټولو شریکانو ته پایلې چمتو کولو پورې. د پایلې په توګه، د دندې ترسره کولو لپاره د DevOps مهارتونه اړین دي. او دا ټول ښه دي، مګر، له بده مرغه، یوه ستونزه شتون لري (سپیلر: دا مقاله هڅه کوي چې دا ستونزه ساده کړي). ټکی دا دی چې 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
کانټینر کول
ډاکر، سیلینیم گرډ، سیلینایډ (ویب، اندروید)

4
CI/CD
Gitlab CI

5
د بادل پلاتفورم
د ګوګل کلاډر پلیټ فارم

6
آرکسټریشن
کوبنیټس

7
د کوډ په توګه زیربنا (IaC)
Terraform، ځواب وړ

د هرې برخې جوړښت

د داستان د روښانه ساتلو لپاره، هره برخه د لاندې بڼې سره سم بیان شوې ده:

  • د ټکنالوجۍ لنډ معلومات،
  • د اتومات زیربنا لپاره ارزښت،
  • د زیربنا د اوسني حالت بیلګه،
  • د مطالعې لینکونه،
  • ورته وسیلې.

1. په سیمه ایزه توګه ازموینې ترسره کړئ

د ټیکنالوژۍ لنډه توضیحات

دا یوازې یو چمتوالی ګام دی چې په سیمه ایزه توګه د ډیمو ازموینې پرمخ بوځي او تصدیق کړي چې دوی بریالي شوي. په عملي برخه کې، Node.js کارول کیږي، مګر د پروګرام کولو ژبه او پلیټ فارم هم مهم ندي او تاسو کولی شئ هغه څه وکاروئ چې ستاسو په شرکت کې کارول کیږي. 

په هرصورت ، د اتوماتیک وسیلو په توګه ، زه په ترتیب سره د ویب پلیټ فارمونو لپاره د سیلینیم ویب ډرایور او د Android پلیټ فارم لپاره اپیم کارولو وړاندیز کوم ، ځکه چې په راتلونکو مرحلو کې به موږ د ډاکر عکسونه وکاروو چې په ځانګړي ډول د دې وسیلو سره کار کولو لپاره مناسب دي. سربیره پردې ، د دندې اړتیاو ته په اشارې سره ، دا وسیلې په بازار کې خورا ډیر تقاضا لري.

لکه څنګه چې تاسو شاید لیدلي وي، موږ یوازې د ویب او Android ازموینې په پام کې نیسو. له بده مرغه، iOS یو بشپړ مختلف کیسه ده (مننه ایپل). زه پلان لرم چې په راتلونکو برخو کې د IOS اړوند حلونه او تمرینونه وښیم.

د اتومات زیربنا لپاره ارزښت

د زیربنا له نظره، په محلي توګه چلول هیڅ ارزښت نه ورکوي. تاسو یوازې وګورئ چې ازموینې په محلي براوزرونو او سمیلیټرونو کې په محلي ماشین کې پرمخ ځي. مګر په هر حالت کې، دا یو اړین پیل ټکی دی.

د زیربنا د اوسني حالت انځور

د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه

د سپړلو لپاره لینکونه

ورته وسیلې

  • هر هغه پروګرامینګ ژبه چې تاسو یې د سیلینیم / اپیم ازموینو سره په ګډه خوښوئ؛
  • هر ډول ازموینې؛
  • هر ټیسټ رنر.

2. نسخه کنټرول سیسټمونه (Git)

د ټیکنالوژۍ لنډه توضیحات

دا به د هیچا لپاره لوی انکشاف نه وي که زه ووایم چې د نسخې کنټرول د پراختیا خورا مهم برخه ده ، دواړه په ټیم او انفرادي ډول. د مختلفو سرچینو پر بنسټ، دا خوندي دی چې ووایې چې ګیټ ترټولو مشهور استازی دی. د نسخې کنټرول سیسټم ډیری ګټې وړاندې کوي، لکه د کوډ شریکول، د نسخو ذخیره کول، پخوانیو څانګو ته بیا رغونه، د پروژې تاریخ څارنه، او بیک اپ. موږ به په هر ټکي په تفصیل سره بحث ونه کړو، ځکه چې زه ډاډه یم چې تاسو له هغې سره ډیر بلد یاست او په خپل ورځني کار کې یې وکاروئ. مګر که ناڅاپه نه وي، نو زه وړاندیز کوم چې د دې مقالې لوستل ودروي او ژر تر ژره دا تشه ډکه کړي.

د اتومات زیربنا لپاره ارزښت

او دلته تاسو یو معقول پوښتنه کولی شئ: "ولې هغه موږ ته د ګیټ په اړه وایی؟ هرڅوک په دې پوهیږي او دا دواړه د پراختیایي کوډ او د اتوماتیک ازموینې کوډ لپاره کاروي. تاسو به بالکل سم یاست، مګر پدې مقاله کې موږ د زیربنا په اړه خبرې کوو او دا برخه د 7 برخې لپاره د مخکتنې په توګه کار کوي: "د کوډ په توګه زیربنا (IaC)". زموږ لپاره، دا پدې مانا ده چې ټول زیربناوې، د ازموینې په شمول، د کوډ په بڼه بیان شوي، نو موږ کولی شو د نسخې سیسټمونه هم پلي کړو او د پراختیا او اتوماتیک کوډ په څیر ورته ګټې ترلاسه کړو.

موږ به په 7 مرحله کې IaC په ډیر تفصیل سره وګورو ، مګر حتی اوس تاسو کولی شئ د ځایی ذخیره کولو په رامینځته کولو سره په محلي توګه د Git کارول پیل کړئ. لوی انځور به پراخ شي کله چې موږ زیربنا ته د ریموټ ذخیره اضافه کړو.

د زیربنا د اوسني حالت انځور

د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه

د سپړلو لپاره لینکونه

ورته وسیلې

3. کانټینر کول (ډاکر)

د ټیکنالوژۍ لنډه توضیحات

د دې ښودلو لپاره چې څنګه کانټینر کولو د لوبې قواعد بدل کړي، راځئ چې په څو لسیزو کې بیرته لاړ شو. وروسته بیا، خلکو د غوښتنلیکونو چلولو لپاره د سرور ماشینونه اخیستي او کارولي. مګر په ډیری حاالتو کې، د پیل کولو اړین سرچینې مخکې نه پیژندل شوي. د پایلې په توګه، شرکتونو د ګران، ځواکمن سرورونو په اخیستلو پیسې لګولې، مګر د دې ظرفیت څخه ځینې په بشپړه توګه نه کارول شوي.

د تکامل بله مرحله د مجازی ماشینونو (VMs) وه، کوم چې په غیر استعمال شوي سرچینو کې د پیسو ضایع کولو ستونزه حل کړه. دې ټیکنالوژۍ دا امکان رامینځته کړی چې په ورته سرور کې د یو بل څخه په خپلواک ډول غوښتنلیکونه پرمخ بوځي ، په بشپړ ډول جلا ځای تخصیص کوي. مګر، له بده مرغه، هر ټیکنالوژي خپل نیمګړتیاوې لري. د VM چلول بشپړ عملیاتي سیسټم ته اړتیا لري، کوم چې CPU، RAM، ذخیره مصرفوي او د OS پورې اړه لري، د جواز لګښتونه باید په پام کې ونیول شي. دا فکتورونه د بارولو سرعت اغیزه کوي او د لیږد وړتیا ستونزمن کوي.

او اوس موږ کانټینر کولو ته راځو. یوځل بیا ، دا ټیکنالوژي پخوانۍ ستونزه حل کوي ، ځکه چې کانټینرونه بشپړ OS نه کاروي ، کوم چې لوی مقدار سرچینې خلاصوي او د لیږد وړتیا لپاره ګړندۍ او انعطاف وړ حل چمتو کوي.

البته، د کانټینر کولو ټیکنالوژي کومه نوې خبره نه ده او لومړی د 70 لسیزې په وروستیو کې معرفي شوه. په دې ورځو کې ډېرې څېړنې، پرمختګونه او هڅې وشوې. مګر دا ډاکر و چې دا ټیکنالوژي یې تطابق کړه او خلکو ته یې په اسانۍ لاسرسی پیدا کړ. نن ورځ، کله چې موږ د کانټینرونو په اړه خبرې کوو، په ډیری مواردو کې موږ د ډاکر معنی لرو. کله چې موږ د ډاکر کانټینرونو په اړه وغږیږو ، زموږ معنی د لینکس کانټینرونه. موږ کولی شو د کانټینرونو چلولو لپاره وینډوز او ماکوس سیسټمونه وکاروو، مګر دا مهمه ده چې پوه شو چې پدې حالت کې اضافي پرت څرګندیږي. د مثال په توګه ، په ماک کې ډاکر په خاموشۍ سره د سپک وزن لینکس VM دننه کانټینر چلوي. موږ به دې موضوع ته بیرته راستانه شو کله چې موږ په کانټینرونو کې د Android ایمولیټرونو چلولو په اړه بحث کوو ، نو دلته یو خورا مهم نزاکت شتون لري چې باید په ډیر تفصیل سره بحث وشي.

د اتومات زیربنا لپاره ارزښت

موږ وموندله چې کانټینر کول او ډاکر ښه دي. راځئ چې دا د اتوماتیک په شرایطو کې وګورو، ځکه چې هره وسیله یا ټیکنالوژي د یوې ستونزې حل کولو ته اړتیا لري. راځئ چې د UI ازموینې په شرایطو کې د ازموینې اتومات څرګندې ستونزې په ګوته کړو:

  • د سیلینیم او په ځانګړي توګه اپیم نصبولو پر مهال د انحصار لوی شمیر؛
  • د براوزرونو، سمیلیټرانو او ډرایورونو تر منځ د مطابقت ستونزې؛
  • د براوزرونو / سمیلیټرونو لپاره د جلا ځای نشتوالی، کوم چې په ځانګړې توګه د موازي چلولو لپاره مهم دی؛
  • اداره کول او ساتل ستونزمن دي که تاسو په ورته وخت کې 10، 50، 100 یا حتی 1000 براوزر چلولو ته اړتیا لرئ.

مګر له هغه ځایه چې سیلینیم ترټولو مشهور اتوماتیک وسیله ده او ډاکر د کانټینر کولو خورا مشهور وسیله ده ، نو دا باید د حیرانتیا وړ نه وي چې یو چا هڅه کړې چې دوی سره یوځای کړي ترڅو د پورته ذکر شوي ستونزو حل کولو لپاره قوي وسیله رامینځته کړي. راځئ چې دا ډول حلونه په ډیر تفصیل سره په پام کې ونیسو. 

په ډاکر کې د سیلینیم گرډ

دا وسیله په ډیری ماشینونو کې د ډیری براوزرونو چلولو او د مرکزي مرکز څخه اداره کولو لپاره په سیلینیم نړۍ کې خورا مشهور دی. د پیل کولو لپاره، تاسو اړتیا لرئ لږترلږه 2 برخې ثبت کړئ: مرکز او نوډونه. هب یو مرکزي نوډ دی چې له ازموینو څخه ټولې غوښتنې ترلاسه کوي او مناسب نوډونو ته یې توزیع کوي. د هر نوډ لپاره موږ کولی شو یو ځانګړی ترتیب تنظیم کړو، د بیلګې په توګه، د مطلوب براوزر او د هغې نسخه مشخص کولو سره. په هرصورت، موږ لاهم اړتیا لرو چې پخپله د مناسب براوزر ډرایورانو پاملرنه وکړو او په مطلوب نوډونو کې یې نصب کړو. د دې دلیل لپاره، د سیلینیم گرډ په خپل خالص شکل کې نه کارول کیږي، پرته له دې چې موږ د براوزرونو سره کار کولو ته اړتیا لرو چې په لینکس OS کې نشي نصب کیدی. د نورو ټولو قضیو لپاره ، د پام وړ انعطاف وړ او سم حل به د سیلینیم گرډ هب او نوډونو چلولو لپاره د ډاکر عکسونو کارول وي. دا طریقه د نوډ مدیریت خورا ساده کوي، ځکه چې موږ کولی شو هغه انځور وټاکو چې موږ ورته اړتیا لرو د براؤزرونو او ډرایورونو سره مطابقت لرونکي نسخې مخکې نصب شوي.

د ثبات په اړه د منفي بیاکتنو سره سره، په ځانګړې توګه کله چې په موازي ډول د ډیری نوډونو چلول، د سیلینیم گرډ لاهم په موازي ډول د سیلینیم ازموینې چلولو لپاره خورا مشهور وسیله ده. دا مهمه ده چې په یاد ولرئ چې د دې وسیلې مختلف پرمختګونه او بدلونونه په دوامداره توګه په خلاصې سرچینې کې څرګندیږي ، کوم چې د مختلف خنډونو سره مبارزه کوي.

د ویب لپاره Selenoid

دا وسیله د سیلینیم نړۍ کې یو پرمختګ دی ځکه چې دا د بکس څخه سم کار کوي او د ډیری اتومات انجینرانو ژوند یې خورا اسانه کړی. له هرڅه دمخه ، دا د سیلینیم گرډ بل ترمیم ندی. پرځای یې ، پراختیا کونکو په ګولنګ کې د سیلینیم هب بشپړ نوې نسخه رامینځته کړې ، کوم چې د مختلف براوزرونو لپاره د سپک وزن ډاکر عکسونو سره یوځای شوی ، د ازموینې اتومات پراختیا ته هڅونه ورکوي. سربیره پردې ، د سیلینیم گرډ په حالت کې ، موږ باید ټول اړین براوزرونه او د دوی نسخې دمخه وټاکو ، کوم چې یوازې د یو براوزر سره کار کولو پرمهال ستونزه نده. مګر کله چې دا د ډیری ملاتړ شوي براوزرونو ته راځي ، 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 وسیلې اضافه کړو. دا د ویب ټیسټونو لپاره سیلینیم گرډ او د Android ازموینو لپاره Selenoid دي. د GitHub په ټیوټوریل کې، زه به تاسو ته دا هم وښیم چې څنګه د ویب ازموینې چلولو لپاره Selenoid وکاروئ. 

د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه

د سپړلو لپاره لینکونه

ورته وسیلې

  • د کانټینر کولو نور وسیلې شتون لري ، مګر ډاکر خورا مشهور دی. که تاسو غواړئ بل څه هڅه وکړئ، په یاد ولرئ چې هغه وسیلې چې موږ یې په موازي ډول د سیلینیم ازموینو چلولو لپاره پوښلي دي د بکس څخه بهر کار نه کوي.  
  • لکه څنګه چې مخکې وویل شول، د سیلینیم گرډ ډیری بدلونونه شتون لري، د بیلګې په توګه، زیلینیم.

4.CI/CD

د ټیکنالوژۍ لنډه توضیحات

د دوامداره ادغام تمرین په پراختیا کې خورا مشهور دی او د نسخې کنټرول سیسټمونو سره مساوي دی. سره له دې، زه احساس کوم چې په اصطلاحاتو کې ګډوډي شتون لري. پدې پراګراف کې زه غواړم د دې ټیکنالوژۍ 3 تعدیلات زما له نظره بیان کړم. په انټرنیټ کې به تاسو د مختلف تفسیرونو سره ډیری مقالې ومومئ، او دا بالکل عادي خبره ده که ستاسو نظر توپیر ولري. ترټولو مهمه خبره دا ده چې تاسو د خپلو همکارانو سره په ورته پاڼه کې یاست.

نو، دلته 3 شرایط شتون لري: CI - پرله پسې ادغام، CD - دوامداره تحویل او بیا CD - دوامداره ګمارنه. ((لاندې به زه دا اصطلاحات په انګلیسي کې وکاروم). هر تعدیل ستاسو د پراختیا پایپ لاین ته څو اضافي مرحلې اضافه کوي. خو کلمه دوامداره (دوامداره) ترټولو مهم شی دی. پدې شرایطو کې ، موږ یو څه معنی لرو چې له پیل څخه تر پای پورې پیښیږي ، پرته له مداخلې یا لاسي مداخلې. راځئ چې په دې برخه کې CI & CD او CD وګورو.

  • دوامداره ادغام دا د تکامل لومړنی ګام دی. سرور ته د نوي کوډ سپارلو وروسته، موږ تمه لرو چې چټک فیډبیک ترلاسه کړو چې زموږ بدلونونه سم دي. په عموم ډول، CI کې د جامد کوډ تحلیل وسیلې او د واحد/داخلي API ازموینې چلول شامل دي. دا موږ ته اجازه راکوي چې زموږ د کوډ په اړه معلومات په څو ثانیو / دقیقو کې ترلاسه کړو.
  • دوامداره تحویلي یو ډیر پرمختللی ګام دی چیرې چې موږ د ادغام/UI ازموینې چلوو. په هرصورت، پدې مرحله کې موږ د CI په څیر ژر پایلې نه ترلاسه کوو. لومړی، دا ډول ازموینې بشپړولو لپاره ډیر وخت نیسي. دوهم، د پیل کولو دمخه، موږ باید خپل بدلونونه د ازموینې / سټینګ چاپیریال کې ځای پرځای کړو. سربیره پردې ، که موږ د ګرځنده پراختیا په اړه وغږیږو ، نو یو اضافي ګام ښکاري چې زموږ د غوښتنلیک جوړونه رامینځته کړي.
  • دوام لرونکی ګمارنه فرض کوي چې موږ په اوتومات ډول خپل بدلونونه تولید ته خوشې کوو که چیرې د منلو ټولې ازموینې په تیرو مرحلو کې تیر شوي وي. سربیره پردې ، د خوشې کیدو مرحلې وروسته ، تاسو کولی شئ مختلف مرحلې تنظیم کړئ ، لکه په تولید کې د سګرټ ازموینې چلول او د ګټو میټریک راټولول. دوامداره ګمارنه یوازې د اتوماتیک ازموینو لخوا د ښه پوښښ سره ممکنه ده. که کوم لاسي مداخلې ته اړتیا وي، په شمول د ازموینې، نو دا نور نه ده دوامدار (دوامداره). بیا موږ کولی شو ووایو چې زموږ پایپ لاین یوازې د دوامداره تحویلي عمل سره مطابقت لري.

د اتومات زیربنا لپاره ارزښت

پدې برخه کې ، زه باید روښانه کړم چې کله موږ د پای څخه تر پای UI ازموینې په اړه وغږیږو ، دا پدې معنی ده چې موږ باید خپل بدلونونه او اړوند خدمات د ازموینې چاپیریالونو لپاره ځای په ځای کړو. دوامداره ادغام - پروسه د دې کار لپاره د تطبیق وړ نه ده او موږ باید لږترلږه د دوامداره تحویلي کړنو پلي کولو ته پاملرنه وکړو. دوامداره ګمارل د UI ازموینو په شرایطو کې هم معنی لري که چیرې موږ دوی په تولید کې پرمخ یوسو.

او مخکې لدې چې موږ د معمارۍ بدلون بیلګه وګورو ، زه غواړم د GitLab CI په اړه یو څو ټکي ووایم. د نورو CI/CD وسیلو برخلاف ، GitLab یو ریموټ ذخیره او ډیری نور اضافي ب featuresې وړاندې کوي. په دې توګه، GitLab د CI څخه ډیر دی. پدې کې د سرچینې کوډ مدیریت، د چټک مدیریت، CI/CD پایپ لاینونه، د ننوتلو وسیلې او د بکس څخه بهر د میټریک راټولول شامل دي. د GitLab جوړښت د Gitlab CI/CD او GitLab رنر څخه جوړ دی. دلته د رسمي ویب پاڼې څخه لنډ تفصیل دی:

Gitlab CI/CD د API سره یو ویب اپلیکیشن دی چې خپل حالت په ډیټابیس کې ساتي، پروژې / جوړونه اداره کوي او د کاروونکي انٹرفیس چمتو کوي. GitLab Runner یو غوښتنلیک دی چې جوړونه پروسس کوي. دا په جلا توګه ځای په ځای کیدی شي او د API له لارې د GitLab CI/CD سره کار کوي. د ازموینو چلولو لپاره تاسو دواړه ګیټلاب مثال او رنر ته اړتیا لرئ.

د زیربنا د اوسني حالت انځور

د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه

د سپړلو لپاره لینکونه

ورته وسیلې

5. کلاوډ پلیټ فارمونه

د ټیکنالوژۍ لنډه توضیحات

پدې برخه کې به موږ د عامه بادل په نوم د یو مشهور رجحان په اړه وغږیږو. د ډیرو ګټو سره سره چې د مجازی کولو او کانټینر کولو ټیکنالوژۍ پورته تشریح شوي، موږ لاهم د کمپیوټري سرچینو ته اړتیا لرو. شرکتونه ګران سرورونه اخلي یا د معلوماتو مرکزونه کرایه کوي، مګر پدې حالت کې دا اړینه ده چې محاسبه کړئ (ځینې وختونه غیر واقعیت) چې موږ به څومره سرچینو ته اړتیا ولرو، ایا موږ به یې 24/7 وکاروو او د کومو موخو لپاره. د مثال په توګه، تولید یو سرور ته اړتیا لري چې XNUMX/XNUMX چلوي، مګر ایا موږ د کاري ساعتونو څخه بهر د ازموینې لپاره ورته سرچینو ته اړتیا لرو؟ دا د ازموینې ډول پورې اړه لري چې ترسره کیږي. یوه بیلګه به د بار / فشار ازموینې وي چې موږ پلان لرو چې د غیر کاري ساعتونو په جریان کې وګرځو ترڅو راتلونکې ورځ پایلې ترلاسه کړو. مګر یقینا د XNUMX/XNUMX سرور شتون د پای څخه تر پایه اتومات ازموینې لپاره اړین ندي او په ځانګړي توګه د لارښود ازموینې چاپیریال لپاره ندي. د داسې حالتونو لپاره، دا به ښه وي چې د غوښتنې سره سم څومره سرچینې ترلاسه کړئ، دوی وکاروئ، او کله چې نور اړتیا نه وي پیسې ورکول بند کړئ. سربیره پردې ، دا به خورا ښه وي چې دوی د یو څو موږک کلیکونو په جوړولو یا د څو سکریپټونو په چلولو سره سمدلاسه ترلاسه کړئ. دا هغه څه دي چې عامه بادل د دې لپاره کارول کیږي. راځئ چې تعریف وګورو:

"عامه کلاوډ د کمپیوټري خدماتو په توګه تعریف شوی چې د عامه انټرنیټ له لارې د دریمې ډلې چمتو کونکو لخوا وړاندیز کیږي ، دا د هرچا لپاره چمتو کوي څوک چې غواړي وکاروي یا یې واخلي. دوی ممکن وړیا وي یا د غوښتنې پراساس وپلورل شي ، پیرودونکو ته اجازه ورکوي چې یوازې د CPU سایکلونو ، ذخیره کولو یا بینډ ویت لپاره چې دوی یې مصرفوي د هرې کارونې تادیه وکړي.

داسې نظر شتون لري چې عامه بادل ګران دي. مګر د دوی کلیدي نظر د شرکت لګښتونه کمول دي. لکه څنګه چې مخکې یادونه وشوه، عامه بادل تاسو ته اجازه درکوي د غوښتنې سرچینې ترلاسه کړئ او یوازې د هغه وخت لپاره پیسې ورکړئ چې تاسو یې کاروئ. همچنان ، ځینې وختونه موږ هیر کوو چې کارمندان معاشونه ترلاسه کوي ، او متخصصین هم ګرانه سرچینه ده. دا باید په پام کې ونیول شي چې عامه بادل د زیربناوو ملاتړ خورا اسانه کوي، کوم چې انجنیرانو ته اجازه ورکوي چې په ډیرو مهمو کارونو تمرکز وکړي. 

د اتومات زیربنا لپاره ارزښت

موږ د پای څخه تر پای UI ازموینې لپاره کوم ځانګړي سرچینې ته اړتیا لرو؟ اساسا دا مجازی ماشینونه یا کلسترونه دي (موږ به په راتلونکي برخه کې د کوبرنیټس په اړه وغږیږو) د براوزرونو او ایمولیټرونو چلولو لپاره. هرڅومره ډیر براوزرونه او ایمولیټرونه چې موږ یې په یو وخت کې چلول غواړو ، هومره ډیر CPU او حافظې ته اړتیا ده او هغومره ډیرې پیسې چې موږ یې باید تادیه کړو. په دې توګه، د ازموینې اتوماتیک شرایطو کې عامه بادل موږ ته اجازه راکوي چې د غوښتنې سره سم د براوزرونو / ایمولیټرونو لوی شمیر (100, 200, 1000 ...) پرمخ بوځو، ژر تر ژره د ازموینې پایلې ترلاسه کړو او د داسې خورا ډیرې سرچینې لپاره تادیه بنده کړو. ځواک 

ترټولو مشهور کلاوډ چمتو کونکي د ایمیزون ویب خدمات (AWS) ، مایکروسافټ ازور ، د ګوګل کلاوډ پلیټ فارم (GCP) دي. د لارښود لارښود د GCP کارولو څرنګوالي مثالونه وړاندې کوي، مګر په عمومي توګه دا مهمه نده چې تاسو د اتوماتیک کارونو لپاره څه کاروئ. دوی ټول تقریبا ورته فعالیت چمتو کوي. عموما، د چمتو کونکي غوره کولو لپاره، مدیریت د شرکت ټول زیربنا او د سوداګرۍ اړتیاوو باندې تمرکز کوي، کوم چې د دې مقالې له دائرې څخه بهر دي. د اتومات انجینرانو لپاره ، دا به خورا په زړه پوري وي چې د کلاوډ چمتو کونکو کارول د کلاوډ پلیټ فارمونو کارولو سره په ځانګړي توګه د ازموینې موخو لپاره پرتله کړئ ، لکه ساس لابراتوارونه ، براوزر سټیک ، بټ بار او داسې نور. نو راځئ چې دا هم وکړو! زما په نظر، د ساس لابراتوار ترټولو مشهور د بادل ازموینې فارم دی، له همدې امله ما دا د پرتله کولو لپاره کارولی. 

د اتوماتیک موخو لپاره د GCP vs ساس لابراتوارونه:

راځئ چې تصور وکړو چې موږ اړتیا لرو په ورته وخت کې 8 ویب ازموینې او 8 Android ازموینې پرمخ بوځو. د دې لپاره به موږ GCP وکاروو او د Selenoid سره 2 مجازی ماشینونه چلوو. په لومړي کې به موږ د براوزرونو سره 8 کانټینرونه پورته کړو. په دوهم کې د ایمولیټرونو سره 8 کانټینرونه شتون لري. راځئ چې نرخونه وګورو:  

د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه
د کروم سره یو کانټینر چلولو لپاره، موږ اړتیا لرو n1-معیاري-1 موټر د Android په قضیه کې دا به وي n1-معیاري-4 د یو ایمولیټر لپاره. په حقیقت کې ، یو ډیر انعطاف منونکی او ارزانه لاره د CPU/میموري لپاره د ځانګړي کارونکي ارزښتونو تنظیم کول دي ، مګر دا مهال دا د ساس لابراتوارونو سره پرتله کولو لپاره مهم ندي.

او دلته د ساس لابراتوار کارولو لپاره تعرفې دي:

د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه
زه باور لرم چې تاسو دمخه توپیر لیدلی دی، مګر زه به بیا هم زموږ د دندې لپاره د محاسبې میز چمتو کړم:

اړین سرچینې
مونټیلی
د کار ساعتونه(د سهار له ۸ بجو څخه تر ۸ بجو پورې)
د کار ساعتونه+ د منلو وړ

د ویب لپاره GCP
n1-معياري-1 x 8 = n1-معياري-8
$194.18
23 ورځې * 12h * 0.38 = $104.88 
23 ورځې * 12h * 0.08 = $22.08

د ویب لپاره ساس لابراتوار
مجازی کلاوډ 8 موازي ازموینې
$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 یوه بیلګه ده چې تاسو کولی شئ د عادي مثالونو په پرتله په خورا ټیټ نرخ کې رامینځته کړئ او پرمخ بوځي. په هرصورت، د کمپیوټر انجن ممکن دا مثالونه ختم کړي (مخکې) که چیرې دا د نورو دندو لپاره دې سرچینو ته لاسرسي ته اړتیا ولري. د قبلیدو وړ مثالونه د کمپیوټر انجن ډیر ظرفیت دی، نو د دوی شتون د کارونې سره توپیر لري.

که ستاسو ایپسونه د غلطۍ زغمونکي وي او د احتمالي مثال وړاندیزونو سره مقاومت کولی شي ، نو د مخکینۍ مثالونه کولی شي ستاسو د کمپیوټر انجن لګښتونه د پام وړ کم کړي. د مثال په توګه، د بیچ پروسس کولو دندې کولی شي د پام وړ مثالونو کې پرمخ بوځي. که چیرې دا ځینې مثالونه د پروسس کولو په جریان کې پای ته ورسیږي، کار ورو کیږي مګر په بشپړه توګه نه ودریږي. د پام وړ مثالونه ستاسو د بیچ پروسس کولو دندې پرته له دې چې ستاسو په موجوده مثالونو کې اضافي کاري بار ځای په ځای کړي او پرته له دې چې تاسو د اضافي عادي مثالونو لپاره بشپړ قیمت تادیه کولو ته اړتیا ولرئ بشپړوي.

او دا لا تر اوسه نه دی ختم شوی! په حقیقت کې، زه ډاډه یم چې هیڅوک د 12 ساعتونو لپاره پرته له وقفې ازموینه نه کوي. او که داسې وي، نو تاسو کولی شئ په اتوماتيک ډول مجازی ماشینونه پیل او ودروئ کله چې دوی اړتیا نلري. د حقیقي کارونې وخت ممکن هره ورځ 6 ساعتونو ته راټیټ شي. بیا زموږ د دندې په شرایطو کې تادیه به د 11 براوزرونو لپاره هره میاشت $ 8 ته راټیټ شي. ایا دا په زړه پوری نه ده؟ مګر د مخکینۍ ماشینونو سره موږ باید محتاط واوسو او د مداخلو او بې ثباتۍ لپاره چمتو اوسو ، که څه هم دا شرایط په سافټویر کې چمتو کیدی شي او اداره کیدی شي. دا د ارزښت وړ ده!

مګر په هیڅ ډول زه نه وایم چې 'هیڅکله د بادل ازموینې فارمونه مه کاروئ'. دوی یو شمیر ګټې لري. له هرڅه دمخه ، دا یوازې یو مجازی ماشین ندی ، بلکه د بکس څخه بهر د فعالیت سیټ سره د بشپړ ازموینې اتومات حل دی: ریموټ لاسرسی ، لاګونه ، سکرین شاټونه ، ویډیو ثبت کول ، مختلف براوزرونه او فزیکي ګرځنده وسیلې. په ډیری حاالتو کې، دا یو اړین پیچلي بدیل کیدی شي. د ازموینې پلیټ فارمونه په ځانګړي توګه د IOS اتومات کولو لپاره ګټور دي ، کله چې عامه بادل یوازې د لینکس / وینډوز سیسټم وړاندیز کولی شي. خو موږ به په لاندې مقالو کې د iOS په اړه خبرې وکړي. زه وړاندیز کوم چې تل وضعیت ته ګورم او د دندو څخه پیل وکړئ: په ځینو مواردو کې د عامه بادلونو کارول ارزانه او خورا مؤثر دي ، او په نورو کې د ازموینې پلیټ فارمونه یقینا د مصرف شوي پیسو ارزښت لري.

د زیربنا د اوسني حالت انځور

د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه

د سپړلو لپاره لینکونه

ورته وسیلې:

6. آرکیسټریشن

د ټیکنالوژۍ لنډه توضیحات

زه ښه خبر لرم - موږ تقریبا د مقالې په پای کې یو! په اوس وخت کې، زموږ د اتومات زیربنا د ویب او Android ازموینو څخه جوړه ده، کوم چې موږ په موازي توګه د GitLab CI له لارې پرمخ وړو، د Docker-فعال شوي وسیلو په کارولو سره: Selenium grid او Selenoid. سربیره پردې ، موږ د GCP له لارې رامینځته شوي مجازی ماشینونه کاروو ترڅو د براوزرونو او ایمولیټرونو سره کانټینرونه کوربه کړو. د لګښتونو کمولو لپاره ، موږ دا مجازی ماشینونه یوازې د غوښتنې په اساس پیل کوو او کله چې ازموینه نه ترسره کیږي ودروو. ایا بل څه شته چې کولی شي زموږ زیربنا ته وده ورکړي؟ ځواب هو دی! د Kubernetes (K8s) سره لیدنه وکړئ!

لومړی، راځئ چې وګورو چې څنګه د آرکیسټریشن، کلستر، او کبرنیټس کلمې یو له بل سره تړاو لري. په لوړه کچه، آرکیسټریشن هغه سیسټم دی چې غوښتنلیکونه ځای په ځای کوي او اداره کوي. د ازموینې اتومات کولو لپاره ، دا ډول کانټینر شوي غوښتنلیکونه سیلینیم گرډ او سیلینایډ دي. ډاکر او K8s یو بل بشپړوي. لومړی د غوښتنلیک ځای پرځای کولو لپاره کارول کیږي ، دوهم د آرکیسټریشن لپاره. په بدل کې، K8s یو کلستر دی. د کلستر دنده د نوډونو په توګه د VMs کارول دي ، کوم چې تاسو ته اجازه درکوي په یو سرور (کلستر) کې مختلف فعالیت ، برنامې او خدمات نصب کړئ. که کوم نوډ ناکام شي، نور نوډونه به پورته شي، کوم چې زموږ د غوښتنلیک بې بنسټه عملیات تضمینوي. سربیره پردې ، K8s د پیمانه کولو پورې اړوند مهم فعالیت لري ، له دې امله موږ په اوتومات ډول د بار او ټاکل شوي حدونو پراساس د سرچینو مطلوب مقدار ترلاسه کوو.

په حقیقت کې ، په لاسي ډول له سکریچ څخه د کبرنیټس ځای په ځای کول هیڅ کوچني کار ندی. زه به د مشهور لارښود "Kubernetes The Hard Way" لپاره یو لینک پریږدم او که تاسو علاقه لرئ ، تاسو کولی شئ دا تمرین کړئ. مګر، خوشبختانه، بدیل میتودونه او وسایل شتون لري. ترټولو اسانه لار په GCP کې د ګوګل Kubernetes Engine (GKE) کارول دي، کوم چې تاسو ته اجازه درکوي په څو کلیکونو کې چمتو شوي کلستر ترلاسه کړئ. زه د زده کړې پیل کولو لپاره د دې طریقې کارولو وړاندیز کوم، ځکه چې دا به تاسو ته اجازه درکړي چې د خپلو دندو لپاره د K8s کارولو څرنګوالي په زده کړه تمرکز وکړئ د دې پرځای چې داخلي برخې باید یو بل سره یوځای شي. 

د اتومات زیربنا لپاره ارزښت

راځئ چې یو څو مهمې ځانګړتیاوې وګورو چې K8s وړاندې کوي:

  • د غوښتنلیک ګمارل: د VMs پرځای د څو نوډونو کلستر کارول؛
  • متحرک اندازه کول: د سرچینو لګښت کموي چې یوازې په غوښتنې کې کارول کیږي؛
  • د ځان درملنه: د پوډونو اتوماتیک بیا رغونه (د دې په پایله کې کانټینرونه هم بحال شوي)؛
  • د وخت له وخته پرته د تازه معلوماتو رول او د بدلونونو رول بیک: د وسیلو تازه کول ، براوزرونه او ایمولیټرونه د اوسني کاروونکو کار نه مداخله کوي

مګر K8s لاهم د سپینو زرو ګولۍ ندي. د وسیلو په شرایطو کې د ټولو ګټو او محدودیتونو د پوهیدو لپاره چې موږ یې په پام کې نیسو (سیلینیم گرډ، سیلینایډ)، موږ به په لنډه توګه د K8s جوړښت په اړه بحث وکړو. کلستر دوه ډوله نوډونه لري: ماسټر نوډونه او د کارګر نوډونه. ماسټر نوډونه د مدیریت، ګمارنې او مهالویش پریکړو مسولیت لري. د کارګر نوډونه هغه ځای دي چیرې چې غوښتنلیکونه پیل کیږي. نوډونه د کانټینر چلولو چاپیریال هم لري. زموږ په قضیه کې ، دا ډاکر دی ، کوم چې د کانټینر پورې اړوند عملیاتو مسؤل دی. مګر بدیل حلونه هم شتون لري، د بیلګې په توګه کانتینر شوی. دا مهمه ده چې پوه شئ چې پیمانه یا ځان درملنه په مستقیم ډول په کانتینرونو کې نه پلي کیږي. دا د پوډونو د شمیر په زیاتولو/کمولو سره پلي کیږي، کوم چې په پایله کې کانټینرونه لري (معمولا په هر پوډ کې یو کانټینر، مګر د دندې پورې اړه لري ممکن ډیر وي). د لوړې کچې درجه بندي د کارګر نوډونو څخه جوړه ده، چې دننه یې پوډونه شتون لري، چې دننه کانتینرونه پورته کیږي.

د اندازه کولو ځانګړتیا کلیدي ده او د کلستر نوډ پول په دواړو نوډونو او په نوډ کې پوډونو کې پلي کیدی شي. د اندازه کولو 2 ډولونه شتون لري چې په دواړو نوډونو او پوډونو کې پلي کیږي. لومړی ډول افقی دی - اندازه کول د نوډونو / پوډونو شمیر په زیاتولو سره پیښیږي. دا ډول ډیر غوره دی. دوهم ډول دی، په وینا، عمودی. اندازه کول د نوډونو/پوډونو د اندازې په زیاتولو سره ترسره کیږي، نه د دوی شمیر.

اوس راځئ چې د پورته شرایطو په شرایطو کې زموږ وسایل وګورو.

سیلینیم گرډ

لکه څنګه چې مخکې یادونه وشوه، د سیلینیم گرډ یو خورا مشهور وسیله ده، او دا د حیرانتیا خبره نه ده چې دا کانټینر شوی. له همدې امله، دا د حیرانتیا خبره نه ده چې د سیلینیم گرډ په K8s کې ځای پرځای کیدی شي. د دې کولو څرنګوالي یوه بیلګه د K8s رسمي ذخیره کې موندل کیدی شي. د معمول په څیر، زه د برخې په پای کې لینکونه ضمیمه کوم. برسېره پردې، د لارښوونې لارښود ښیي چې دا څنګه په Terraform کې ترسره کړئ. دلته د پوډونو شمیر اندازه کولو څرنګوالي په اړه لارښوونې هم شتون لري چې د براوزر کانټینرونه لري. مګر د K8s په شرایطو کې د اتوماتیک اندازه کولو فعالیت لاهم په بشپړ ډول څرګند کار ندی. کله چې ما زده کړه پیل کړه، ما هیڅ عملي لارښوونې یا سپارښتنې ونه موندلې. د DevOps ټیم په ملاتړ د ډیری مطالعاتو او تجربو وروسته، موږ د یو پوډ دننه د اړین براوزرونو سره د کانټینرونو پورته کولو طریقه غوره کړه، کوم چې د یو کارګر نوډ دننه موقعیت لري. دا طریقه موږ ته اجازه راکوي چې د نوډونو د شمیر په زیاتولو سره د افقی اندازه کولو ستراتیژي پلي کړو. زه امید لرم چې دا به په راتلونکي کې بدلون ومومي او موږ به د غوره لیدونو او چمتو شوي حلونو ډیر او ډیر توضیحات وګورو ، په ځانګړي توګه د بدل شوي داخلي جوړښت سره د سیلینیم گرډ 4 خوشې کیدو وروسته.

Selenoid:

په K8s کې د Selenoid ګمارل اوس مهال ترټولو لوی مایوسي ده. دوی مطابقت نلري. په تیوري کې ، موږ کولی شو د پوډ دننه د Selenoid کانټینر پورته کړو ، مګر کله چې Selenoid د براوزرونو سره کانټینرونه پیل کړي ، دوی به لاهم په ورته پوډ کې وي. دا اندازه کول ناممکن کوي ​​او د پایلې په توګه، په کلستر کې د Selenoid کار به د مجازی ماشین دننه کار څخه توپیر ونلري. د کیسې پای.

مون:

د دې خنډ په پوهیدو سره کله چې د Selenoid سره کار کوي، پراختیا کونکو د مون په نوم یو ډیر پیاوړی وسیله خپره کړه. دا وسیله په اصل کې د Kubernetes سره کار کولو لپاره ډیزاین شوې وه او د پایلې په توګه، د اتوماتیک کولو ځانګړتیا کولی شي او وکارول شي. سربیره پردې، زه به ووایم چې دا مهال دا دی یوازینی په سیلینیم نړۍ کې یوه وسیله چې د بکس څخه بهر اصلي K8s کلستر ملاتړ لري (نور شتون نلري، راتلونکی وسیله وګورئ ). د سپوږمۍ کلیدي ځانګړتیاوې چې دا ملاتړ چمتو کوي عبارت دي له: 

په بشپړ ډول بې وطنه. Selenoid په حافظه کې د اوسني براؤزر سیشنونو په اړه معلومات ذخیره کوي. که د کوم دلیل لپاره دا پروسه خرابه شي - نو ټولې روانې ناستې ورکې شوې. سپوږمۍ برعکس هیڅ داخلي حالت نلري او د معلوماتو په مرکزونو کې نقل کیدی شي. د براوزر ناستې ژوندي پاتې کیږي حتی که یو یا څو نقلونه ښکته شي.

نو، سپوږمۍ یو ښه حل دی، مګر یوه ستونزه شتون لري: دا وړیا نه ده. قیمت د غونډو په شمیر پورې اړه لري. تاسو کولی شئ یوازې 0-4 ناستې وړیا پرمخ وړئ ، کوم چې په ځانګړي توګه ګټور ندي. مګر، د پنځمې ناستې څخه پیل، تاسو باید د هر یو لپاره $ 5 تادیه کړئ. وضعیت ممکن د شرکت څخه شرکت ته توپیر ولري، مګر زموږ په قضیه کې، د سپوږمۍ کارول بې معنی دي. لکه څنګه چې ما پورته تشریح کړی، موږ کولی شو د غوښتنې سره سم د سیلینیم گرډ سره VMs چلوو یا په کلستر کې د نوډونو شمیر زیات کړو. د نږدې یوې پایپ لاین لپاره، موږ 500 براوزرونه پیل کوو او د ازموینې بشپړیدو وروسته ټولې سرچینې بندوو. که موږ سپوږمۍ وکاروو، نو موږ باید په میاشت کې اضافي 500 x 5 = $ 2500 تادیه کړو، مهمه نده چې موږ څومره ځله ازموینې ترسره کوو. بیا بیا، زه نه وایم چې سپوږمۍ مه کاروئ. ستاسو د دندو لپاره، دا یو لازمي حل کیدی شي، د بیلګې په توګه، که تاسو په خپل سازمان کې ډیری پروژې / ټیمونه لرئ او تاسو د هرچا لپاره لوی مشترک کلستر ته اړتیا لرئ. د تل په څیر، زه په پای کې یو لینک پریږدم او سپارښتنه کوم چې ستاسو د دندې په شرایطو کې ټول اړین محاسبې ترسره کړئ.

کالسټو: (پاملرنه! دا په اصلي مقاله کې نشته او یوازې په روسي ژباړه کې شتون لري)

لکه څنګه چې ما وویل، سیلینیم خورا مشهور وسیله ده، او د معلوماتي ټکنالوجۍ ساحه په چټکۍ سره وده کوي. پداسې حال کې چې زه په ژباړې کار کوم، د کالیسټو په نوم یوه نوې ژمنه وسیله په ویب کې راښکاره شوه (هیلو سائپریس او نور سیلینیم وژونکي). دا په اصلي توګه د K8s سره کار کوي او تاسو ته اجازه درکوي په پوډونو کې د Selenoid کانټینرونه پرمخ بوځي، په ټول نوډونو ویشل شوي. هرڅه د بکس څخه سم کار کوي ، پشمول د اتوماتیک کولو. په زړه پورې، مګر ازموینې ته اړتیا لري. ما دمخه د دې وسیلې ځای په ځای کولو اداره کړې او څو تجربې یې پرمخ وړي. مګر دا ډیر وخت دی چې پایلې راوباسئ ، د اوږدې فاصلې په اوږدو کې د پایلو ترلاسه کولو وروسته ، شاید زه به په راتلونکو مقالو کې بیاکتنه وکړم. د اوس لپاره زه یوازې د خپلواکې څیړنې لپاره لینک پریږدم.  

د زیربنا د اوسني حالت انځور

د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه

د سپړلو لپاره لینکونه

ورته وسیلې

7. د کوډ په توګه زیربنا (IaC)

د ټیکنالوژۍ لنډه توضیحات

او اوس موږ وروستۍ برخې ته راځو. عموما، دا ټیکنالوژي او اړونده دندې د اتومات انجنیرانو مسؤلیت نه دی. او د دې لپاره لاملونه شتون لري. لومړی، په ډیری سازمانونو کې، د زیربناوو مسلې د DevOps ډیپارټمنټ تر کنټرول لاندې دي او پراختیایی ټیمونه واقعیا پروا نه کوي چې د پایپ لاین څه کار کوي او څنګه چې هر څه ورسره تړلي ملاتړ ته اړتیا لري. دوهم، راځئ چې صادق واوسو، د کوډ (IaC) په توګه د زیربناوو تمرین لاهم په ډیری شرکتونو کې نه دی منل شوی. مګر دا په یقین سره یو مشهور رجحان ګرځیدلی او دا مهمه ده چې هڅه وکړئ چې د دې سره تړلو پروسو، طریقو او وسیلو کې دخیل شئ. یا لږترلږه تازه اوسئ.

راځئ چې د دې طریقې کارولو لپاره د هڅونې سره پیل وکړو. موږ دمخه بحث کړی چې په GitlabCI کې د ازموینو چلولو لپاره ، موږ به لږترلږه سرچینو ته اړتیا ولرو ترڅو د ګیټلاب رنر چلولو لپاره. او د براوزرونو / ایمولیټرونو سره کانټینرونو چلولو لپاره ، موږ اړتیا لرو VM یا کلستر خوندي کړو. د سرچینو ازموینې سربیره، موږ د پراختیا، سټینګ، تولید چاپیریال مالتړ لپاره د پام وړ ظرفیت ته اړتیا لرو، چې پدې کې ډیټابیسونه، اتوماتیک مهال ویشونه، د شبکې ترتیبونه، د بار بیلانس، د کاروونکي حقونه، او داسې نور شامل دي. کلیدي مسله د دې ټولو ملاتړ لپاره اړین هڅې دي. دلته ډیری لارې شتون لري چې موږ کولی شو بدلونونه رامینځته کړو او تازه معلومات راولو. د مثال په توګه، د GCP په شرایطو کې، موږ کولی شو په براوزر کې د UI کنسول وکاروو او د بټونو په کلیک کولو سره ټولې کړنې ترسره کړو. یو بدیل به د کلاوډ ادارو سره د تعامل لپاره د API کالونو کارول وي ، یا د مطلوب لاسوهنې ترسره کولو لپاره د gcloud کمانډ لاین افادیت وکاروئ. مګر د ډیری بیلابیلو ادارو او زیربناوو عناصرو سره، دا ستونزمن یا حتی ناممکن کیږي چې ټول عملیات په لاسي ډول ترسره کړي. سربیره پردې، دا ټول لاسي کړنې د کنټرول وړ ندي. موږ نشو کولی د اجرا کولو دمخه د بیاکتنې لپاره وسپارو، د نسخې کنټرول سیسټم وکاروو، او ژر تر ژره هغه بدلونونه بیرته راوباسئ چې د پیښې لامل شوي. د دې ډول ستونزو د حل لپاره، انجینرانو اتوماتیک باش/شیل سکریپټونه رامینځته کړي او رامینځته کړي، کوم چې د پخوانیو میتودونو څخه ډیر ښه ندي، ځکه چې دوی په طرزالعمل کې د چټک لوستل، پوهیدلو، ساتلو او ترمیم کولو لپاره خورا اسانه ندي.

په دې مقاله کې او څنګه لارښود، زه د IaC تمرین پورې اړوند 2 وسیلې کاروم. دا Terraform او ځواب وړ دي. ځینې ​​​​خلک پدې باور دي چې په ورته وخت کې د دوی کارول هیڅ معنی نلري، ځکه چې د دوی فعالیت ورته دی او د تبادلې وړ دي. مګر حقیقت دا دی چې په پیل کې دوی ته په بشپړ ډول مختلف دندې ورکړل شوي. او دا حقیقت چې دا وسیلې باید یو بل بشپړ کړي د پراختیا کونکو لخوا په ګډه پریزنټشن کې تایید شو چې د HashiCorp او RedHat استازیتوب کوي. مفهوم توپیر دا دی چې Terraform پخپله د سرورونو اداره کولو لپاره د چمتو کولو وسیله ده. پداسې حال کې چې ځواب ورکوونکي د تنظیم کولو مدیریت وسیله ده چې دنده یې په دې سرورونو کې د سافټویر نصب، ترتیب او اداره کول دي.

د دې وسیلو بله کلیدي ځانګړتیا د کوډ کولو سټایل دی. د bash او Ansible برعکس، Terraform د مطلوب پای حالت د توضیح پراساس یو بیاناتي سټایل کاروي ترڅو د اعدام په پایله کې ترلاسه شي. د مثال په توګه، که موږ 10 VMs جوړ کړو او د Terraform له لارې بدلونونه پلي کړو، نو موږ به 10 VM ترلاسه کړو. که موږ سکریپټ بیا پرمخ یوسو، هیڅ شی به نه وي ځکه چې موږ دمخه 10 VMs لرو، او Terraform پدې اړه پوهیږي ځکه چې دا د زیربنا اوسنی حالت په دولتي فایل کې ذخیره کوي. مګر ځواب ورکونکی کړنلاره کاروي او که تاسو له دې څخه د 10 VMs رامینځته کولو غوښتنه وکړئ ، نو په لومړي لانچ کې به موږ 10 VMs ترلاسه کړو ، د Terraform سره ورته. مګر د بیا پیل کولو وروسته به موږ دمخه 20 VMs ولرو. دا مهم توپیر دی. په طرزالعمل کې، موږ اوسنی حالت نه ذخیره کوو او په ساده ډول د ګامونو لړۍ تشریح کوو چې باید ترسره شي. البته، موږ کولی شو مختلف حالتونه سمبال کړو، د سرچینو شتون او اوسني حالت لپاره څو چکونه اضافه کړو، مګر د خپل وخت ضایع کول او د دې منطق کنټرول لپاره هڅه کول هیڅ معنی نلري. برسېره پر دې، دا د تېروتنې خطر زیاتوي. 

د پورتنیو ټولو لنډیز کولو سره، موږ کولی شو دې پایلې ته ورسیږو چې Terraform او اعلاناتي یادښت د سرورونو چمتو کولو لپاره خورا مناسب وسیله ده. مګر دا غوره ده چې د ترتیب کولو مدیریت کار ځواب ورکوونکي ته وسپارل شي. د دې لارې څخه بهر، راځئ چې د اتوماتیک په شرایطو کې د کارولو قضیې وګورو.

د اتومات زیربنا لپاره ارزښت

دلته د پوهیدو لپاره یوازینی مهم شی دا دی چې د ازموینې اتومات زیربنا باید د ټول شرکت زیربنا برخې په توګه وګڼل شي. دا پدې مانا ده چې د IaC ټولې کړنې باید په نړیواله کچه د ټولې ادارې سرچینو ته پلي شي. څوک د دې لپاره مسؤل دی ستاسو په پروسو پورې اړه لري. د DevOps ټیم پدې مسلو کې ډیر تجربه لري ، دوی د هغه څه بشپړ عکس ګوري چې پیښیږي. په هرصورت، د QA انجنیران د اتوماتیک جوړولو او د پایپ لاین جوړښت په پروسه کې ډیر ښکیل دي، کوم چې دوی ته اجازه ورکوي چې ټول اړین بدلونونه او د پرمختګ فرصتونه په ښه توګه وګوري. غوره انتخاب دا دی چې په ګډه کار وکړئ، د پوهې او نظرونو تبادله وکړئ ترڅو متوقع پایلې ترلاسه کړئ. 

دلته د ټیسټ اتومات کولو شرایطو کې د Terraform او Ansible کارولو څو مثالونه دي او هغه وسیلې چې موږ دمخه بحث کړی و:

1. د Terraform په کارولو سره د VMs او کلسترونو اړین ځانګړتیاوې او پیرامیټونه تشریح کړئ.

2. د ځواب ورکولو په کارولو سره، د ازموینې لپاره اړین وسایل نصب کړئ: ډاکر، سیلینایډ، سیلینیم گرډ او د براوزرونو/ایمولیټرونو اړین نسخې ډاونلوډ کړئ.

3. د Terraform په کارولو سره، د VM ځانګړتیاوې تشریح کړئ په کوم کې چې د GitLab رنر به پیل شي.

4. GitLab Runner نصب کړئ او د ځواب وړ، تنظیماتو او ترتیبونو په کارولو سره اړین اړین وسایل نصب کړئ.

د زیربنا د اوسني حالت انځور

د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه

د سپړلو لپاره لینکونه:

ورته وسیلې

راځئ چې دا خلاص کړو!

ګام
تکنالوژي
وسیلې
د اتومات زیربنا لپاره ارزښت

1
محلي چلول
Node.js، Selenium، Appium

  • د ویب او ګرځنده لپاره خورا مشهور وسیلې
  • د ډیری ژبو او پلیټ فارمونو ملاتړ کوي (په شمول د Node.js)

2
نسخه کنټرول سیسټمونه 
Git

  • د پراختیا کوډ سره ورته ګټې

3
کانټینر کول
ډاکر، سیلینیم گرډ، سیلینایډ (ویب، اندروید)

  • په موازي ډول ازموینې پرمخ وړل
  • جلا شوي چاپیریالونه
  • ساده، انعطاف وړ نسخه اپ گریڈ
  • په متحرک ډول د غیر استعمال شوي سرچینو مخه نیسي
  • د تنظیم کولو لپاره اسانه

4
CI/CD
Gitlab CI

  • د پایپ لاین برخه ازموینه
  • چټک فیډبیک
  • د ټول شرکت / ټیم لپاره لید

5
د بادل پلاتفورم
د ګوګل کلاډر پلیټ فارم

  • د غوښتنې سرچینې (موږ یوازې د اړتیا په وخت کې تادیه کوو)
  • د اداره کولو او تازه کولو لپاره اسانه
  • د ټولو سرچینو لید او کنټرول

6
آرکسټریشن
کوبنیټس
د پوډونو دننه د براوزرونو / ایمولیټرونو سره د کانټینرونو په شرایطو کې:

  • اندازه کول / اتومات اندازه کول
  • د ځان درملنه
  • تازه کول او رول بیکونه پرته له کوم خنډ څخه

7
د کوډ په توګه زیربنا (IaC)
Terraform، ځواب وړ

  • د پرمختیایي زیربناوو سره ورته ګټې
  • د کوډ نسخه کولو ټولې ګټې
  • د بدلون او ساتلو لپاره اسانه
  • په بشپړه توګه اتوماتیک

د ذهن نقشه ډیاګرامونه: د زیربنا تکامل

مرحله 1: ځایی
د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه

مرحله 2: VCS
د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه

دریم ګام: کانټینر کول 
د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه

څلورم ګام: CI/CD 
د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه

مرحله 5: کلاوډ پلیټ فارمونه
د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه

شپږم ګام: آرکیسټریشن
د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه

7 ګام: IaC
د DevOps اوزار یوازې د DevOps لپاره ندي. له سکریچ څخه د ازموینې اتومات زیربنا رامینځته کولو پروسه

څه راتلونکو؟

نو، دا د مقالې پای دی. مګر په پایله کې، زه غواړم له تاسو سره ځینې موافقتنامې رامینځته کړم.

ستاسو له خوا
لکه څنګه چې ما په پیل کې وویل، زه غواړم مقاله د عملي کار وړ وي او تاسو سره مرسته وکړئ چې په ریښتینې کار کې ترلاسه شوي پوهه پلي کړئ. زه بیا اضافه کوم د عملي لارښود سره اړیکه.

خو بیا هم له دې وروسته، مه ودریږئ، تمرین وکړئ، اړونده لینکونه او کتابونه مطالعه کړئ، ومومئ چې دا ستاسو په شرکت کې څنګه کار کوي، هغه ځایونه ومومئ چې ښه کیدی شي او برخه واخلئ. غوره چانس!

زما له خوا

د سرلیک څخه تاسو لیدلی شئ چې دا یوازې لومړۍ برخه وه. د دې حقیقت سره سره چې دا خورا لوی و ، مهم موضوعات لاهم دلته ندي پوښل شوي. په دویمه برخه کې، زه پالن لرم چې د IOS په شرایطو کې د اتوماتیک زیربنا وګورم. یوازې د MacOS سیسټمونو کې د iOS سمیلیټرونو چلولو باندې د ایپل محدودیتونو له امله، زموږ د حلونو لړۍ محدوده شوې. د مثال په توګه ، موږ نشو کولی د سمیلیټر چلولو لپاره ډاکر وکاروو یا د مجازی ماشینونو چلولو لپاره عامه بادل. مګر دا پدې معنی ندي چې نور بدیلونه شتون نلري. زه به هڅه وکړم چې تاسو د پرمختللي حلونو او عصري وسیلو سره تازه وساتم!

همچنان ، ما د څارنې پورې اړوند خورا لوی موضوعات ندي ذکر کړي. په دریمه برخه کې، زه به د زیربناوو د څارنې خورا مشهور وسیلو ته وګورم او کوم ډیټا او میټریکونه په پام کې ونیسئ.

او په پای کې. په راتلونکي کې، زه پلان لرم چې د ازموینې زیربنا او مشهور وسیلو جوړولو په اړه یو ویډیو کورس خپور کړم. اوس مهال په انټرنیټ کې د DevOps په اړه یو څو کورسونه او لیکچرونه شتون لري، مګر ټول توکي د پراختیا په شرایطو کې وړاندې شوي، نه د اتوماتیک ازموینې. پدې مسله کې ، زه واقعیا پدې اړه فیډبیک ته اړتیا لرم چې ایا دا ډول کورس به د ازموینې کونکو او اتومات انجینرانو ټولنې لپاره په زړه پوري او ارزښتناک وي. مخکې له مخکې مننه!

سرچینه: www.habr.com

Add a comment