DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት

ክፍል 1፡ ድር/አንድሮይድ

አመለከተ: ይህ ጽሑፍ ወደ ሩሲያኛ የተተረጎመ የመጀመሪያው መጣጥፍ ነው። "የዴቭኦፕ መሳሪያዎች ለዴቭኦፕስ ብቻ አይደሉም። "የግንባታ ሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ።" ነገር ግን፣ ወደ ሩሲያኛ ሲተረጎም ትርጉሙን እንዳይዛባ ለማድረግ ሁሉም ምሳሌዎች፣ አገናኞች፣ ጥቅሶች እና ቃላት በዋናው ቋንቋ ተጠብቀዋል። በማጥናት ደስተኛ እንድትሆኑ እመኛለሁ!

DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት

በአሁኑ ጊዜ የዴቭኦፕስ ልዩ በ IT ኢንዱስትሪ ውስጥ በጣም ከሚፈለጉት ውስጥ አንዱ ነው። ታዋቂ የስራ ፍለጋ ጣቢያዎችን ከከፈቱ እና በደመወዝ ካጣራህ ከDevOps ጋር የተያያዙ ስራዎች በዝርዝሩ አናት ላይ መሆናቸውን ያያሉ። ነገር ግን ይህ በዋነኝነት የሚያመለክተው 'ሲኒየር' ቦታ መሆኑን ነው, ይህም እጩው ከፍተኛ ክህሎቶች, የቴክኖሎጂ እና መሳሪያዎች እውቀት እንዳለው ያመለክታል. ይህ ደግሞ ያልተቋረጠ የምርት አሠራር ጋር የተያያዘ ከፍተኛ ኃላፊነት ጋር አብሮ ይመጣል. ሆኖም፣ DevOps ምን እንደሆነ መርሳት ጀመርን። መጀመሪያ ላይ የትኛውም የተለየ ሰው ወይም ክፍል አልነበረም። የዚህን ቃል ፍቺዎች ከፈለግን, እንደ ዘዴ, ልምዶች, ባህላዊ ፍልስፍና, የፅንሰ-ሐሳቦች ቡድን, ወዘተ የመሳሰሉ ብዙ ቆንጆ እና ትክክለኛ ስሞችን እናገኛለን.

የእኔ ስፔሻላይዜሽን የፈተና አውቶሜሽን መሐንዲስ (QA አውቶሜሽን መሐንዲስ) ነው፣ ነገር ግን በራስ-ሙከራዎችን ከመጻፍ ወይም የሙከራ ማዕቀፍ አርክቴክቸርን ከማዳበር ጋር ብቻ መያያዝ እንደሌለበት አምናለሁ። በ2020፣ ስለ አውቶሜሽን መሠረተ ልማት እውቀትም አስፈላጊ ነው። ይህ አውቶማቲክ ሂደቱን እራስዎ እንዲያደራጁ ይፈቅድልዎታል ፣ ሙከራዎችን ከማካሄድ እስከ ግቦችዎ መሠረት ለሁሉም ባለድርሻ አካላት ውጤትን መስጠት። በውጤቱም፣ ስራውን ለማከናወን የዴቭኦፕስ ችሎታዎች የግድ ናቸው። እና ይሄ ሁሉ ጥሩ ነው, ግን በሚያሳዝን ሁኔታ, ችግር አለ (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
መያዣ
ዶከር፣ ሴሊኒየም ፍርግርግ፣ ሴሌኖይድ (ድር፣ አንድሮይድ)

4
CI/ሲዲ
Gitlab CI

5
የደመና የመሳሪያ ሥርዓቶች
Google ደመና የመሳሪያ ሥርዓት

6
ኦርኬሽን
ኩባንያቶች

7
መሠረተ ልማት እንደ ኮድ (IaC)
ቴራፎርም ፣ ሊቻል የሚችል

የእያንዳንዱ ክፍል መዋቅር

ትረካውን ግልጽ ለማድረግ እያንዳንዱ ክፍል በሚከተለው ንድፍ መሰረት ይገለጻል፡

  • የቴክኖሎጂው አጭር መግለጫ ፣
  • ለአውቶሜሽን መሠረተ ልማት ዋጋ ፣
  • የመሠረተ ልማት አውታሮች ወቅታዊ ሁኔታን የሚያሳይ መግለጫ ፣
  • ለማጥናት አገናኞች ፣
  • ተመሳሳይ መሳሪያዎች.

1. ሙከራዎችን በአገር ውስጥ ያካሂዱ

የቴክኖሎጂው አጭር መግለጫ

ይህ የማሳያ ሙከራዎችን በአገር ውስጥ ለማስኬድ እና ማለፋቸውን ለማረጋገጥ የዝግጅት ደረጃ ነው። በተግባራዊው ክፍል, Node.js ጥቅም ላይ ይውላል, ነገር ግን የፕሮግራም አወጣጥ ቋንቋ እና መድረክ አስፈላጊ አይደሉም እና በኩባንያዎ ውስጥ ጥቅም ላይ የሚውሉትን መጠቀም ይችላሉ. 

ነገር ግን፣ እንደ አውቶሜሽን መሳሪያዎች፣ በሚቀጥሉት ደረጃዎች ከእነዚህ መሳሪያዎች ጋር ለመስራት የተበጁ የዶከር ምስሎችን ስለምንጠቀም፣ ሴሊኒየም ዌብDriverን ለድር መድረኮች እና አፒየምን ለአንድሮይድ መድረክ እንድትጠቀም እመክራለሁ። ከዚህም በላይ የሥራ መስፈርቶችን በመጥቀስ እነዚህ መሳሪያዎች በገበያ ውስጥ በጣም የሚፈለጉ ናቸው.

እርስዎ እንዳስተዋሉት፣ የምንመለከተው የድር እና የአንድሮይድ ሙከራዎችን ብቻ ነው። እንደ አለመታደል ሆኖ iOS ፍጹም የተለየ ታሪክ ነው (አፕል እናመሰግናለን)። IOS ተዛማጅ መፍትሄዎችን እና ልምዶችን በሚቀጥሉት ክፍሎች ለማሳየት እቅድ አለኝ.

ለአውቶሜሽን መሠረተ ልማት ዋጋ

ከመሠረተ ልማት አንፃር በአገር ውስጥ መሮጥ ምንም ዋጋ አይሰጥም። ፈተናዎቹ በአካባቢያዊው ማሽን ላይ በአካባቢያዊ አሳሾች እና ሲሙሌተሮች ውስጥ እንደሚሰሩ ብቻ ነው የሚያረጋግጡት። ግን በማንኛውም ሁኔታ ይህ አስፈላጊ መነሻ ነው.

አሁን ያለው የመሠረተ ልማት ሁኔታ ምሳሌ

DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት

ለማሰስ አገናኞች

ተመሳሳይ መሳሪያዎች

  • ከሴሊኒየም/Appium ፈተናዎች ጋር በመተባበር የሚወዱትን የፕሮግራም አወጣጥ ቋንቋ;
  • ማንኛውም ፈተናዎች;
  • ማንኛውም የሙከራ ሯጭ።

2. የስሪት ቁጥጥር ስርዓቶች (ጂት)

የቴክኖሎጂው አጭር መግለጫ

የስሪት ቁጥጥር በቡድንም ሆነ በግል እጅግ በጣም አስፈላጊ የሆነ የእድገት አካል ነው ብዬ ብናገር ለማንም ትልቅ መገለጥ አይሆንም። በተለያዩ ምንጮች ላይ በመመስረት, Git በጣም ተወዳጅ ተወካይ ነው ብሎ በእርግጠኝነት መናገር ይቻላል. የስሪት ቁጥጥር ስርዓት እንደ ኮድ መጋራት፣ ስሪቶችን ማከማቸት፣ ወደ ቀድሞ ቅርንጫፎች መመለስ፣ የፕሮጀክት ታሪክን መከታተል እና ምትኬዎችን የመሳሰሉ ብዙ ጥቅሞችን ይሰጣል። ስለእያንዳንዱ ነጥብ በዝርዝር አንወያይም ምክንያቱም እሱን በደንብ እንደምታውቁት እና በዕለት ተዕለት ሥራዎ ውስጥ እንደሚጠቀሙበት እርግጠኛ ነኝ። ግን በድንገት ካልሆነ ፣ ይህንን ጽሑፍ ለማንበብ ቆም ብዬ እና በተቻለ ፍጥነት ይህንን ክፍተት ለመሙላት እመክራለሁ ።

ለአውቶሜሽን መሠረተ ልማት ዋጋ

እና እዚህ ምክንያታዊ ጥያቄ መጠየቅ ይችላሉ: "ለምን ስለ Git ይነግረናል? ይህንን ሁሉም ሰው ያውቃል እና ሁለቱንም ለልማት ኮድ እና ለራስ-ሙከራ ኮድ ይጠቀማል። ሙሉ በሙሉ ትክክል ትሆናለህ, ነገር ግን በዚህ ጽሑፍ ውስጥ ስለ መሠረተ ልማት እየተነጋገርን ነው እና ይህ ክፍል ለክፍል 7 እንደ ቅድመ-እይታ ሆኖ ያገለግላል: "መሰረተ ልማት እንደ ኮድ (IaC)". ለእኛ ይህ ማለት ሙከራን ጨምሮ አጠቃላይ መሠረተ ልማቱ በኮድ መልክ ይገለጻል፣ ስለዚህ የስርዓተ ክወናዎችን በእሱ ላይ ተግባራዊ ማድረግ እና እንደ ልማት እና አውቶሜሽን ኮድ ተመሳሳይ ጥቅሞችን ማግኘት እንችላለን።

በደረጃ 7 ላይ IaCን በበለጠ ዝርዝር እንመለከታለን ነገርግን አሁን እንኳን የአካባቢ ማከማቻ በመፍጠር Gitን መጠቀም መጀመር ትችላለህ። የርቀት ማከማቻ ወደ መሠረተ ልማት ስንጨምር ትልቁ ሥዕል ይስፋፋል።

አሁን ያለው የመሠረተ ልማት ሁኔታ ምሳሌ

DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት

ለማሰስ አገናኞች

ተመሳሳይ መሳሪያዎች

3. መያዣ (ዶከር)

የቴክኖሎጂው አጭር መግለጫ

ኮንቴይነሬሽን የጨዋታውን ህግጋት እንዴት እንደለወጠው ለማሳየት፣ ወደ ጥቂት አስርት አመታት ወደ ኋላ እንመለስ። ያኔ ሰዎች መተግበሪያዎችን ለማሄድ የአገልጋይ ማሽኖችን ገዝተው ይጠቀሙ ነበር። ነገር ግን በአብዛኛዎቹ ሁኔታዎች አስፈላጊዎቹ የጅምር ምንጮች አስቀድመው አይታወቁም ነበር. በዚህ ምክንያት ኩባንያዎች ውድ እና ኃይለኛ አገልጋዮችን በመግዛት ገንዘብ አውጥተዋል, ነገር ግን አንዳንድ የዚህ አቅም ሙሉ በሙሉ ጥቅም ላይ አልዋሉም.

የሚቀጥለው የዝግመተ ለውጥ ደረጃ ቨርቹዋል ማሽኖች (VMs) ሲሆን ይህም ጥቅም ላይ ላልዋለ ሀብቶች ገንዘብ የማባከን ችግርን ፈታ። ይህ ቴክኖሎጂ ሙሉ ለሙሉ የተገለለ ቦታ በመመደብ በተመሳሳዩ አገልጋይ ውስጥ አፕሊኬሽኖችን ለብቻው ለማሄድ አስችሏል። ግን በሚያሳዝን ሁኔታ, ማንኛውም ቴክኖሎጂ የራሱ ድክመቶች አሉት. VMን ማስኬድ ሙሉ ኦፕሬቲንግ ሲስተሙን ይፈልጋል፣ እሱም ሲፒዩ፣ RAM፣ ማከማቻ የሚፈጅ እና እንደ OSው ላይ በመመስረት የፍቃድ ወጪዎችን ግምት ውስጥ ማስገባት ያስፈልጋል። እነዚህ ምክንያቶች የመጫኛ ፍጥነት ላይ ተጽእኖ ያሳድራሉ እና ተንቀሳቃሽነት አስቸጋሪ ያደርጉታል.

እና አሁን ወደ መያዣ (ኮንቴይነር) መጥተናል. አሁንም ይህ ቴክኖሎጂ ያለፈውን ችግር ይፈታል, ምክንያቱም ኮንቴይነሮች ሙሉ ስርዓተ ክወና ስለማይጠቀሙ, ይህም ከፍተኛ መጠን ያለው ሀብትን ነጻ በማድረግ እና ለተንቀሳቃሽነት ፈጣን እና ተለዋዋጭ መፍትሄ ይሰጣል.

እርግጥ ኮንቴይነላይዜሽን ቴክኖሎጂ አዲስ ነገር አይደለም እና ለመጀመሪያ ጊዜ የተጀመረው በ 70 ዎቹ መገባደጃ ላይ ነው። በእነዚያ ጊዜያት ብዙ ጥናቶች, እድገቶች እና ሙከራዎች ተካሂደዋል. ነገር ግን ይህንን ቴክኖሎጂ አስተካክሎ ለብዙሃኑ ተደራሽ እንዲሆን ያደረገው ዶከር ነው። በአሁኑ ጊዜ, ስለ ኮንቴይነሮች ስንናገር, በአብዛኛዎቹ ጉዳዮች ዶከር ማለት ነው. ስለ ዶከር ኮንቴይነሮች ስንናገር የሊኑክስ ኮንቴይነሮች ማለታችን ነው። መያዣዎችን ለማስኬድ የዊንዶውስ እና ማክኦኤስ ስርዓቶችን መጠቀም እንችላለን, ነገር ግን በዚህ ጉዳይ ላይ ተጨማሪ ንብርብር እንደሚታይ መረዳት አስፈላጊ ነው. ለምሳሌ፣ Docker on Mac በቀላል ክብደት በሊኑክስ ቪኤም ውስጥ መያዣዎችን በፀጥታ ያስኬዳል። አንድሮይድ ኢሚላተሮችን በኮንቴይነሮች ውስጥ ማስኬድ ስንወያይ ወደዚህ ርዕስ እንመለሳለን ስለዚህ እዚህ ላይ የበለጠ በዝርዝር መነጋገር ያለበት በጣም አስፈላጊ የሆነ ልዩነት አለ።

ለአውቶሜሽን መሠረተ ልማት ዋጋ

ኮንቴይነሬሽን እና ዶከር አሪፍ መሆናቸውን ደርሰንበታል። እያንዳንዱ መሳሪያ ወይም ቴክኖሎጂ አንድን ችግር መፍታት ስላለበት ይህንን ከአውቶሜሽን አንፃር እንየው። በዩአይ ሙከራዎች አውድ ውስጥ የፈተና አውቶማቲክ ግልጽ ችግሮችን እንዘርዝር፡-

  • ሴሊኒየም እና በተለይም አፒየም ሲጭኑ እጅግ በጣም ብዙ ጥገኛዎች;
  • በአሳሾች, በሲሙሌተሮች እና በአሽከርካሪዎች ስሪቶች መካከል የተኳሃኝነት ችግሮች;
  • ለአሳሾች / አስመሳይዎች ገለልተኛ ቦታ አለመኖር, በተለይም ለትይዩ ሩጫ በጣም አስፈላጊ ነው;
  • በተመሳሳይ ጊዜ 10 ፣ 50 ፣ 100 ወይም 1000 አሳሾችን ማስኬድ ከፈለጉ ለማስተዳደር እና ለመጠገን አስቸጋሪ ነው።

ነገር ግን ሴሊኒየም በጣም ታዋቂው አውቶሜሽን መሳሪያ ስለሆነ እና ዶከር በጣም ታዋቂው የመያዣ መሳሪያ ነው, አንድ ሰው ከላይ የተጠቀሱትን ችግሮች ለመፍታት ኃይለኛ መሳሪያ ለመፍጠር እነሱን ለማጣመር መሞከሩ ምንም አያስደንቅም. እንደነዚህ ያሉትን መፍትሄዎች በበለጠ ዝርዝር እንመልከት. 

የሲሊኒየም ፍርግርግ በዶክተር ውስጥ

ይህ መሳሪያ በበርካታ ማሽኖች ላይ ብዙ አሳሾችን ለማሄድ እና ከማዕከላዊ ማእከል ለማስተዳደር በሴሊኒየም አለም ውስጥ በጣም ታዋቂው ነው። ለመጀመር፣ ቢያንስ 2 ክፍሎችን መመዝገብ አለብህ፡ Hub እና Node(ዎች)። Hub ሁሉንም ጥያቄዎች ከሙከራዎች የሚቀበል እና ወደ ተገቢ መስቀለኛ መንገድ የሚያሰራጭ ማዕከላዊ ኖድ ነው። ለእያንዳንዱ መስቀለኛ መንገድ አንድ የተወሰነ ውቅር ማዋቀር እንችላለን፣ ለምሳሌ የሚፈለገውን አሳሽ እና ስሪቱን በመግለጽ። ሆኖም ግን, እኛ እራሳችንን ተኳሃኝ የአሳሽ ሾፌሮችን መንከባከብ እና በተፈለገው ኖዶች ላይ መጫን አለብን. በዚህ ምክንያት, የሴሊኒየም ፍርግርግ በንጹህ መልክ ጥቅም ላይ አይውልም, በሊኑክስ ኦኤስ ላይ መጫን ከማይችሉ አሳሾች ጋር መስራት ካለብን በስተቀር. ለሌሎች ጉዳዮች ሁሉ፣ ጉልህ የሆነ ተለዋዋጭ እና ትክክለኛ መፍትሄ የ Selenium grid Hub እና Nodes ለማስኬድ Docker ምስሎችን መጠቀም ነው። የምንፈልገውን ምስል ከተጫኑ አሳሾች እና ሾፌሮች ጋር ተኳሃኝ በሆኑ ስሪቶች መምረጥ ስለምንችል ይህ አካሄድ የመስቀለኛ መንገድ አስተዳደርን በእጅጉ ያቃልላል።

ስለ መረጋጋት አሉታዊ ግምገማዎች ቢኖሩም፣ በተለይም ብዙ ቁጥር ያላቸውን ኖዶች በትይዩ ሲያሄዱ፣ የሴሊኒየም ፍርግርግ አሁንም የሴሊኒየም ሙከራዎችን በትይዩ ለማስኬድ በጣም ታዋቂው መሳሪያ ነው። የዚህ መሳሪያ የተለያዩ ማሻሻያዎች እና ማሻሻያዎች በየጊዜው በተለያዩ ማነቆዎች የሚዋጉ በክፍት ምንጭ ውስጥ እየታዩ መሆናቸውን ልብ ማለት ያስፈልጋል።

ሴሌኖይድ ለድር

ይህ መሳሪያ በቀጥታ ከሳጥኑ ውስጥ ስለሚሰራ እና የብዙ አውቶሜሽን መሐንዲሶችን ህይወት በጣም ቀላል አድርጎታል በሴሊኒየም አለም ውስጥ ትልቅ ግኝት ነው። በመጀመሪያ ደረጃ, ይህ የሴሊኒየም ፍርግርግ ሌላ ማሻሻያ አይደለም. በምትኩ፣ ገንቢዎቹ በጎላንግ ውስጥ ሙሉ ለሙሉ አዲስ የሆነ የሴሊኒየም ሃብ እትም ፈጠሩ፣ ይህም ለተለያዩ አሳሾች ከቀላል ክብደት Docker ምስሎች ጋር ተዳምሮ ለሙከራ አውቶማቲክ እድገት አበረታች ነበር። ከዚህም በላይ በሴሊኒየም ግሪድ ውስጥ ሁሉንም አስፈላጊ የሆኑትን አሳሾች እና ስሪቶቻቸውን አስቀድመን መወሰን አለብን, ይህም ከአንድ አሳሽ ጋር ብቻ ሲሰራ ችግር አይደለም. ነገር ግን ወደ ብዙ የሚደገፉ አሳሾች ሲመጣ ሴሌኖይድ 'በፍላጎት ላይ ያለ አሳሽ' ባህሪው ምስጋና ይግባው ቁጥር አንድ መፍትሄ ነው። ከእኛ የሚጠበቀው አስፈላጊ የሆኑትን ምስሎች ከአሳሾች ጋር አስቀድመው ማውረድ እና Selenoid የሚገናኝበትን የውቅር ፋይል ማዘመን ነው። ሴሌኖይድ ከፈተናዎች ጥያቄ ከተቀበለ በኋላ የሚፈለገውን መያዣ በተፈለገው አሳሽ በራስ-ሰር ይጀምራል። ፈተናው ሲጠናቀቅ, Selenoid መያዣውን ጡረታ ያወጣል, በዚህም ለወደፊት ጥያቄዎች መገልገያዎችን ያስለቅቃል. ይህ አካሄድ በሴሊኒየም ፍርግርግ ውስጥ ብዙ ጊዜ የሚያጋጥመንን የ'መስቀለኛ መበላሸት' ችግርን ሙሉ በሙሉ ያስወግዳል።

ግን ፣ ወዮ ፣ ሴሌኖይድ አሁንም የብር ጥይት አይደለም። 'በፍላጎት ላይ ያለ አሳሽ' ባህሪ አግኝተናል፣ ነገር ግን 'በፍላጎት ላይ ያሉ ሀብቶች' ባህሪ አሁንም አይገኝም። ሴሌኖይድን ለመጠቀም በአካላዊ ሃርድዌር ወይም በVM ላይ ማሰማራት አለብን፣ ይህ ማለት ምን ያህል ሀብቶች መመደብ እንዳለባቸው አስቀድመን ማወቅ አለብን። በትይዩ 10፣ 20 ወይም 30 አሳሾችን ለሚያስኬዱ ትናንሽ ፕሮጀክቶች ይህ ችግር እንዳልሆነ እገምታለሁ። ግን 100, 500, 1000 ወይም ከዚያ በላይ ብንፈልግስ? ብዙ ሀብቶችን ሁል ጊዜ ማቆየት እና መክፈል ምንም ትርጉም የለውም። በዚህ ጽሑፍ ክፍል 5 እና 6 ላይ እርስዎን ለመለካት የሚያስችሉዎትን መፍትሄዎች እንነጋገራለን, በዚህም የኩባንያውን ወጪዎች በእጅጉ ይቀንሳል.

ሴሌኖይድ ለአንድሮይድ

የ Selenoid እንደ የድር አውቶሜሽን መሳሪያ ከተሳካ በኋላ ሰዎች ለ Android ተመሳሳይ የሆነ ነገር ይፈልጋሉ። እና ተከሰተ - ሴሌኖይድ በአንድሮይድ ድጋፍ ተለቀቀ። ከከፍተኛ ደረጃ የተጠቃሚ እይታ አንጻር የአሠራሩ መርህ ከድር አውቶማቲክ ጋር ተመሳሳይ ነው. ልዩነቱ ከአሳሽ ኮንቴይነሮች ይልቅ ሴሌኖይድ የአንድሮይድ ኢምዩሌተር ኮንቴይነሮችን ይሰራል። በእኔ አስተያየት ይህ በአሁኑ ጊዜ የአንድሮይድ ሙከራዎችን በትይዩ ለማስኬድ በጣም ኃይለኛው ነፃ መሳሪያ ነው።

በጣም ስለወደድኩት የዚህን መሳሪያ አሉታዊ ገጽታዎች በትክክል መናገር አልፈልግም. ግን አሁንም ፣ በድር አውቶማቲክ ላይ የሚተገበሩ እና ከማስኬድ ጋር የተቆራኙ ተመሳሳይ ጉዳቶች አሉ። ከዚህ በተጨማሪ መሳሪያውን ለመጀመሪያ ጊዜ ካዘጋጀን ሊያስደንቅ ስለሚችል አንድ ተጨማሪ ገደብ መነጋገር አለብን. የአንድሮይድ ምስሎችን ለማስኬድ፣ የጎጆ ምናባዊ ድጋፍ ያለው አካላዊ ማሽን ወይም ቪኤም እንፈልጋለን። በመመሪያው ውስጥ፣ ይህንን በሊኑክስ ቪኤም ላይ እንዴት ማንቃት እንደሚቻል አሳይቻለሁ። ነገር ግን፣ እርስዎ የማክሮስ ተጠቃሚ ከሆኑ እና Selenoidን በአካባቢው ማሰማራት ከፈለጉ፣ ይሄ የአንድሮይድ ሙከራዎችን ማካሄድ አይቻልም። ነገር ግን ሁል ጊዜ ሊኑክስ ቪኤምን በአገር ውስጥ 'nsted virtualization' ውቅር እና ሴሌኖይድን ወደ ውስጥ ማሰማራት ይችላሉ።

አሁን ያለው የመሠረተ ልማት ሁኔታ ምሳሌ

በዚህ ጽሑፍ አውድ ውስጥ መሠረተ ልማትን ለማሳየት 2 መሳሪያዎችን እንጨምራለን. እነዚህ ለድር ሙከራዎች የሴሊኒየም ፍርግርግ እና Selenoid ለአንድሮይድ ሙከራዎች ናቸው። በ GitHub አጋዥ ስልጠና ውስጥ፣ የዌብ ሙከራዎችን ለማካሄድ Selenoidን እንዴት መጠቀም እንደሚችሉም አሳይሻለሁ። 

DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት

ለማሰስ አገናኞች

ተመሳሳይ መሳሪያዎች

  • ሌሎች የመያዣ መሳሪያዎች አሉ, ነገር ግን ዶከር በጣም ተወዳጅ ነው. ሌላ ነገር መሞከር ከፈለጉ፣ የሴሊኒየም ሙከራዎችን በትይዩ ለማስኬድ የሸፈናቸው መሳሪያዎች ከሳጥኑ ውጭ እንደማይሰሩ ያስታውሱ።  
  • ቀደም ሲል እንደተናገረው ፣ የሴሊኒየም ፍርግርግ ብዙ ማሻሻያዎች አሉ ፣ ለምሳሌ ፣ ዛሌኒየም.

4.CI/ሲዲ

የቴክኖሎጂው አጭር መግለጫ

ቀጣይነት ያለው ውህደት ልምምድ በልማት ውስጥ በጣም ታዋቂ እና ከስሪት ቁጥጥር ስርዓቶች ጋር እኩል ነው። ይህ ሆኖ ግን በቃላት አነጋገር ግራ መጋባት እንዳለ ይሰማኛል። በዚህ አንቀፅ ውስጥ የዚህ ቴክኖሎጂ 3 ማሻሻያዎችን ከኔ እይታ መግለጽ እፈልጋለሁ። በበይነመረቡ ላይ የተለያዩ ትርጓሜዎች ያላቸው ብዙ መጣጥፎችን ያገኛሉ, እና የእርስዎ አስተያየት የተለየ ከሆነ ፍጹም የተለመደ ነው. በጣም አስፈላጊው ነገር እርስዎ ከስራ ባልደረቦችዎ ጋር በተመሳሳይ ገጽ ላይ መሆናቸው ነው።

ስለዚህ, 3 ቃላት አሉ: CI - ቀጣይነት ያለው ውህደት, ሲዲ - ቀጣይነት ያለው አቅርቦት እና እንደገና ሲዲ - ቀጣይነት ያለው ማሰማራት. (ከዚህ በታች እነዚህን ቃላት በእንግሊዝኛ እጠቀማለሁ።). እያንዳንዱ ማሻሻያ በእድገት ቧንቧዎ ላይ በርካታ ተጨማሪ ደረጃዎችን ይጨምራል። ቃሉ ግን ቀጣይ (ቀጣይ) በጣም አስፈላጊው ነገር ነው. በዚህ ዐውደ-ጽሑፍ፣ ያለማቋረጥ ወይም በእጅ ጣልቃ ገብነት ከመጀመሪያው እስከ መጨረሻ የሆነ ነገር ማለታችን ነው። በዚህ አውድ CI & ሲዲ እና ሲዲ እንይ።

  • ቀጣይነት ያለው ውህደት ይህ የዝግመተ ለውጥ የመጀመሪያ ደረጃ ነው። አዲስ ኮድ ወደ አገልጋዩ ካስገባን በኋላ ለውጦቻችን ደህና እንደሆኑ ፈጣን ግብረ መልስ እንጠብቃለን። በተለምዶ፣ CI የስታቲክ ኮድ መመርመሪያ መሳሪያዎችን እና የዩኒት/ውስጣዊ ኤፒአይ ሙከራዎችን ያካትታል።ይህ በጥቂት ሴኮንዶች/ደቂቃ ውስጥ ሾለ ኮድ መረጃ እንድናገኝ ያስችለናል።
  • ተከታታይ ማድረስ ውህደት/UI ሙከራዎችን የምናካሂድበት የላቀ ደረጃ ነው። ይሁን እንጂ በዚህ ደረጃ ላይ እንደ CI በፍጥነት ውጤቶችን አናገኝም. በመጀመሪያ እነዚህ አይነት ፈተናዎች ለማጠናቀቅ ረጅም ጊዜ ይወስዳሉ. በሁለተኛ ደረጃ፣ ከመጀመርዎ በፊት፣ ለውጦቻችንን ለሙከራ/ማዘጋጃ አካባቢ ማሰማራት አለብን። ከዚህም በላይ ሾለ ሞባይል ልማት እየተነጋገርን ከሆነ ተጨማሪ እርምጃ የእኛን መተግበሪያ ግንባታ ለመፍጠር ይታያል.
  • ቀጣይነት ያለው ማሰማራት ሁሉም ተቀባይነት ፈተናዎች በቀደሙት ደረጃዎች ካለፉ ለውጦቻችንን በራስ-ሰር ወደ ምርት እንደምንለቅ ያስባል። ከዚህ በተጨማሪ, ከተለቀቀው ደረጃ በኋላ, የተለያዩ ደረጃዎችን ማዋቀር ይችላሉ, ለምሳሌ በማምረት ላይ የጭስ ሙከራዎችን ማካሄድ እና የፍላጎት መለኪያዎችን መሰብሰብ. ቀጣይነት ያለው ማሰማራት የሚቻለው በጥሩ ሽፋን በራስ ሰር ሙከራዎች ብቻ ነው። ሙከራን ጨምሮ ማንኛቸውም የእጅ ጣልቃገብነቶች አስፈላጊ ከሆኑ ይህ ከአሁን በኋላ አይደለም። ቀጣይ (የቀጠለ)። ከዚያም የእኛ የቧንቧ መሾመር ቀጣይነት ያለው አቅርቦትን ብቻ የሚያከብር ነው ማለት እንችላለን.

ለአውቶሜሽን መሠረተ ልማት ዋጋ

በዚህ ክፍል ውስጥ፣ ስለ ከጫፍ እስከ ጫፍ የዩአይ ፈተናዎች ስንነጋገር፣ አካባቢዎችን ለመፈተሽ ለውጦቻችንን እና ተያያዥ አገልግሎቶቻችንን ማሰማራት አለብን ማለት እንደሆነ ግልጽ ማድረግ አለብኝ። ቀጣይነት ያለው ውህደት - ሂደቱ ለዚህ ተግባር ተፈፃሚ አይሆንም እና ቢያንስ ተከታታይ የማድረስ ልምዶችን ተግባራዊ ለማድረግ ጥንቃቄ ማድረግ አለብን. ቀጣይነት ያለው ማሰማራት እንዲሁ በUI ሙከራዎች አውድ ውስጥ በምርት ውስጥ ልናካሂድ ከፈለግን ትርጉም ይሰጣል።

እና የአርክቴክቸር ለውጥን ምሳሌ ከመመልከታችን በፊት፣ ስለ GitLab CI ጥቂት ቃላት ማለት እፈልጋለሁ። እንደሌሎች CI/CD መሳሪያዎች፣ GitLab የርቀት ማከማቻ እና ሌሎች ብዙ ተጨማሪ ባህሪያትን ይሰጣል። ስለዚህም GitLab ከCI በላይ ነው። በውስጡም የምንጭ ኮድ አስተዳደርን፣ Agile management፣ CI/CD pipelines፣ የሎግ ማድረጊያ መሳሪያዎችን እና ከሳጥኑ ውስጥ የመለኪያዎችን መሰብሰብን ያካትታል። የጊትላብ አርክቴክቸር Gitlab CI/CD እና GitLab Runnerን ያካትታል። ከኦፊሴላዊው ድር ጣቢያ አጭር መግለጫ ይኸውና፡-

Gitlab CI/CD ግዛቱን በመረጃ ቋት ውስጥ የሚያከማች፣ ፕሮጀክቶችን የሚያስተዳድር/የሚገነባ እና የተጠቃሚ በይነገጽ የሚያቀርብ ኤፒአይ ያለው የድር መተግበሪያ ነው። GitLab Runner በሂደት የሚገነባ መተግበሪያ ነው። ለብቻው ሊሰማራ ይችላል እና ከ GitLab CI/CD ጋር በኤፒአይ በኩል ይሰራል። ለሙከራዎች ሁለቱም የጊትላብ ምሳሌ እና ሯጭ ያስፈልግዎታል።

አሁን ያለው የመሠረተ ልማት ሁኔታ ምሳሌ

DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት

ለማሰስ አገናኞች

ተመሳሳይ መሳሪያዎች

5. የደመና መድረኮች

የቴክኖሎጂው አጭር መግለጫ

በዚህ ክፍል 'የሕዝብ ደመና' ስለተባለው ታዋቂ አዝማሚያ እንነጋገራለን. ከላይ የተገለጹት ቨርቹዋልላይዜሽን እና ኮንቴይነላይዜሽን ቴክኖሎጂዎች የሚያበረክቱት ትልቅ ጥቅም ቢኖርም የኮምፒውተር ግብዓቶችን አሁንም እንፈልጋለን። ኩባንያዎች ውድ አገልጋዮችን ይገዛሉ ወይም የውሂብ ማዕከሎችን ይከራያሉ, ነገር ግን በዚህ ሁኔታ ምን ያህል ሀብቶች እንደሚያስፈልጉን, በ 24/7 እና ለምን ዓላማዎች እንደምንጠቀምበት ስሌት (አንዳንድ ጊዜ ከእውነታው የራቀ) ማድረግ አስፈላጊ ነው. ለምሳሌ፣ ምርት XNUMX/XNUMX የሚሰራ አገልጋይ ያስፈልገዋል፣ ነገር ግን ከስራ ሰአታት ውጪ ለሙከራ ተመሳሳይ ግብዓቶች እንፈልጋለን? እንዲሁም በምርመራው ዓይነት ላይ የተመሰረተ ነው. ለምሳሌ በማግስቱ ውጤት ለማግኘት በስራ ሰአታት ውስጥ ልንሰራው ያቀድናቸው የጭነት/የጭንቀት ፈተናዎች ናቸው። ነገር ግን በእርግጠኝነት XNUMX/XNUMX አገልጋይ መገኘት ከጫፍ እስከ ጫፍ አውቶማቲክ ሙከራዎች አያስፈልግም እና በተለይም በእጅ ለሚፈተኑ አካባቢዎች አያስፈልግም። ለእንደዚህ አይነት ሁኔታዎች በፍላጎት የሚፈለገውን ያህል ሃብት ማግኘት፣ መጠቀም እና በማይፈልጉበት ጊዜ መክፈል ማቆም ጥሩ ነው። ከዚህም በላይ ጥቂት የመዳፊት ጠቅታዎችን በማድረግ ወይም ሁለት ስክሪፕቶችን በማሄድ በቅጽበት መቀበል በጣም ጥሩ ነው። የህዝብ ደመና ጥቅም ላይ የሚውለው ለዚህ ነው። ትርጉሙን እንመልከተው፡-

"የህዝብ ደመና ማለት በሶስተኛ ወገን አቅራቢዎች በይፋዊ በይነመረብ የሚሰጡ የኮምፒዩተር አገልግሎቶች ነው ፣ ይህም እነሱን ለመጠቀም ወይም ለመግዛት ለሚፈልግ ለማንኛውም ሰው ተደራሽ ያደርገዋል። ነጻ ሊሆኑ ወይም በትዕዛዝ ሊሸጡ ይችላሉ፣ ይህም ደንበኞች ለሚጠቀሙት የሲፒዩ ዑደቶች፣ ማከማቻ ወይም የመተላለፊያ ይዘት በአጠቃቀም ብቻ እንዲከፍሉ ያስችላቸዋል።

የህዝብ ደመና ውድ ነው የሚል አስተያየት አለ። ነገር ግን ዋናው ሀሳባቸው የኩባንያውን ወጪ መቀነስ ነው. ቀደም ሲል እንደተገለፀው, የህዝብ ደመናዎች በፍላጎት ሀብቶችን እንዲያገኙ እና ለተጠቀሙበት ጊዜ ብቻ እንዲከፍሉ ያስችሉዎታል. እንዲሁም አንዳንድ ጊዜ ሰራተኞች ደመወዝ እንደሚቀበሉ እንረሳዋለን, እና ስፔሻሊስቶችም ውድ ሀብት ናቸው. የህዝብ ደመና የመሠረተ ልማት ድጋፍን በጣም ቀላል ማድረጉ ግምት ውስጥ መግባት አለበት, ይህም መሐንዲሶች ይበልጥ አስፈላጊ በሆኑ ተግባራት ላይ እንዲያተኩሩ ያስችላቸዋል. 

ለአውቶሜሽን መሠረተ ልማት ዋጋ

ከጫፍ እስከ ጫፍ ለ UI ሙከራዎች ምን አይነት ልዩ መርጃዎች ያስፈልጉናል? በመሠረቱ እነዚህ ቨርቹዋል ማሽኖች ወይም ክላስተር (በቀጣዩ ክፍል ሾለ Kubernetes እንነጋገራለን) አሳሾችን እና ኢምዩሌተሮችን ለማሄድ ነው። ብዙ አሳሾች እና ኢሙሌተሮች በአንድ ጊዜ እንዲሰሩ በፈለግን ቁጥር ሲፒዩ እና ሚሞሪ የሚፈለጉት እና ብዙ ገንዘብ መክፈል አለብን። ስለዚህ በሙከራ አውቶማቲክ አውድ ውስጥ ያሉ የህዝብ ደመናዎች ብዙ ቁጥር (100, 200, 1000 ...) አሳሾችን / ኢሙሌተሮችን በፍላጎት እንድናስኬድ ያስችሉናል, የፈተና ውጤቶችን በተቻለ ፍጥነት ለማግኘት እና ለእንደዚህ ዓይነቱ እብድ ሃብት-ተኮር ክፍያ መክፈል ያቆማሉ. ኃይል. 

በጣም ታዋቂው የደመና አቅራቢዎች Amazon Web Services (AWS)፣ Microsoft Azure፣ Google Cloud Platform (GCP) ናቸው። መመሪያው ጂሲፒን እንዴት መጠቀም እንደሚቻል ምሳሌዎችን ይሰጣል ነገር ግን በአጠቃላይ ለልሾ-ሰር ስራዎች የሚጠቀሙት ምንም ችግር የለውም። ሁሉም በግምት ተመሳሳይ ተግባር ይሰጣሉ. በተለምዶ አቅራቢን ለመምረጥ ማኔጅመንቱ የሚያተኩረው በኩባንያው አጠቃላይ መሠረተ ልማት እና የንግድ ሼል መስፈርቶች ላይ ሲሆን ይህም ከጽሑፉ ወሰን በላይ ነው። ለአውቶሜሽን መሐንዲሶች፣ የደመና አቅራቢዎችን አጠቃቀም በተለይ ለሙከራ ዓላማ ለምሳሌ እንደ ሳውስ ላብስ፣ BrowserStack፣ BitBar እና የመሳሰሉትን የደመና መድረኮችን አጠቃቀም ጋር ማወዳደር የበለጠ አስደሳች ይሆናል። ስለዚህ እኛም እናድርገው! በእኔ አስተያየት, Sauce Labs በጣም ታዋቂው የደመና መሞከሪያ እርሻ ነው, ለዚህም ነው ለማነፃፀር የተጠቀምኩት. 

GCP vs Sauce Labs ለራስ-ሰር ዓላማዎች፡-

8 የድር ሙከራዎችን እና 8 የአንድሮይድ ሙከራዎችን በአንድ ጊዜ ማካሄድ እንዳለብን እናስብ። ለዚህም ጂሲፒን እንጠቀማለን እና 2 ምናባዊ ማሽኖችን በ Selenoid እንሰራለን። በመጀመሪያው ላይ 8 መያዣዎችን ከአሳሾች ጋር እናነሳለን. በሁለተኛው ላይ ኢምዩተሮች ያሉት 8 መያዣዎች አሉ. ዋጋዎቹን እንመልከት፡-  

DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት
አንድ መያዣ በChrome ለማስኬድ ያስፈልገናል n1-መደበኛ-1 መኪና. በ Android ሁኔታ ውስጥ ይሆናል n1-መደበኛ-4 ለአንድ emulator. በእውነቱ ፣ የበለጠ ተለዋዋጭ እና ርካሽ መንገድ የተወሰኑ የተጠቃሚ እሴቶችን ለሲፒዩ / ማህደረ ትውስታ ማዋቀር ነው ፣ ግን በአሁኑ ጊዜ ይህ ከ Sauce Labs ጋር ለማነፃፀር አስፈላጊ አይደለም።

እና የ Sauce Labs ለመጠቀም ታሪፎች እዚህ አሉ።

DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት
አስቀድመው ልዩነቱን እንዳስተዋሉ አምናለሁ ፣ ግን አሁንም ለተግባራችን ስሌቶችን የያዘ ሠንጠረዥ አቀርባለሁ-

አስፈላጊ ሀብቶች
በወርሃዊ
የስራ ሰዓት(ከቀኑ 8 ሰዓት - 8 ሰዓት)
የስራ ሰዓት+ ሊገመት የሚችል

GCP ለድር
n1-standard-1 x 8 = n1-standard-8
$194.18
23 ቀናት * 12 ሰ * 0.38 = 104.88 ዶላር 
23 ቀናት * 12 ሰ * 0.08 = 22.08 ዶላር

Sauce Labs ለድር
ምናባዊ Cloud8 ትይዩ ሙከራዎች
$1.559
-
-

GCP ለአንድሮይድ
n1-መደበኛ-4 x 8: n1-መደበኛ-16
$776.72
23 ቀናት * 12 ሰ * 1.52 = 419.52 ዶላር 
23 ቀናት * 12 ሰ * 0.32 = 88.32 ዶላር

Sauce Labs ለ አንድሮይድ
እውነተኛ መሣሪያ ክላውድ 8 ትይዩ ሙከራዎች
$1.999
-
-

እንደሚመለከቱት, የዋጋው ልዩነት በጣም ትልቅ ነው, በተለይም ፈተናዎችን በአስራ ሁለት ሰዓት የስራ ጊዜ ውስጥ ብቻ ቢያካሂዱ. ነገር ግን አስቀድሞ ሊታከሙ የሚችሉ ማሽኖችን ከተጠቀሙ የበለጠ ወጪን መቀነስ ይችላሉ። ምንድነው ይሄ?

ቀድሞ ሊወጣ የሚችል ቪኤም ከመደበኛ ሁኔታዎች በበለጠ ዋጋ መፍጠር እና ማስኬድ የሚችሉበት ምሳሌ ነው። ነገር ግን፣ Compute Engine እነዚያን ሀብቶች ለሌሎች ተግባራት መድረስን የሚፈልግ ከሆነ እነዚህን አጋጣሚዎች ሊያቋርጥ (ቅድመ-ዝግጅት) ሊያደርግ ይችላል። ሊገመቱ የሚችሉ አጋጣሚዎች ከመጠን በላይ የኮምፒዩተር ሞተር አቅም ናቸው፣ ስለዚህ የእነሱ ተገኝነት እንደ አጠቃቀሙ ይለያያል።

የእርስዎ መተግበሪያዎች ስህተትን የሚቋቋሙ ከሆኑ እና ሊሆኑ የሚችሉ የአብነት ቅድመ-ግምቶችን የሚቋቋሙ ከሆኑ አስቀድሞ ሊወሰዱ የሚችሉ አጋጣሚዎች የኮምፒዩት ሞተር ወጪዎን በእጅጉ ሊቀንሱ ይችላሉ። ለምሳሌ፣ ባች ማቀነባበሪያ ስራዎች ሊገመቱ በሚችሉ ሁኔታዎች ላይ ሊሰሩ ይችላሉ። ከእነዚህ አጋጣሚዎች መካከል አንዳንዶቹ በሂደት ላይ እያሉ ካቋረጡ፣ ስራው ይቀንሳል ነገር ግን ሙሉ በሙሉ አይቆምም። ሊገመቱ የሚችሉ አጋጣሚዎች አሁን ባሉዎት ጉዳዮች ላይ ተጨማሪ የስራ ጫና ሳያስቀምጡ እና ለተጨማሪ መደበኛ ሁኔታዎች ሙሉ ዋጋ እንዲከፍሉ ሳያስፈልጋቸው የቡድን ማቀነባበሪያ ስራዎችዎን ያጠናቅቃሉ።

እና አሁንም አላለቀም! እንደ እውነቱ ከሆነ ማንም ሰው ያለ እረፍት ለ12 ሰአታት ፈተናን እንደማይሰራ እርግጠኛ ነኝ። እና እንደዚያ ከሆነ፣ ቨርቹዋል ማሽኖችን በማይፈልጉበት ጊዜ በራስ ሰር መጀመር እና ማቆም ይችላሉ። ትክክለኛው የአጠቃቀም ጊዜ በቀን ወደ 6 ሰአታት ሊቀንስ ይችላል። ከዚያም በተግባራችን አውድ ውስጥ ያለው ክፍያ ለ 11 አሳሾች በወር ወደ $ 8 ይቀንሳል. ይህ ድንቅ አይደለም? ነገር ግን በቅድመ-ምት በሚችሉ ማሽኖች ጥንቃቄ እና ለመቆራረጥ እና አለመረጋጋት መዘጋጀት አለብን, ምንም እንኳን እነዚህ ሁኔታዎች በሶፍትዌር ውስጥ ሊቀርቡ እና ሊያዙ ይችላሉ. ዋጋ አለው!

ግን በምንም መልኩ 'የCloud ሙከራ እርሻዎችን በጭራሽ አትጠቀሙ' እያልኩ አይደለም። በርካታ ጥቅሞች አሏቸው. በመጀመሪያ ደረጃ, ይህ ምናባዊ ማሽን ብቻ አይደለም, ነገር ግን የተሟላ የሙከራ አውቶማቲክ መፍትሄ ከሳጥኑ ውስጥ ከተግባራዊነት ስብስብ ጋር: የርቀት መዳረሻ, ምዝግብ ማስታወሻዎች, ቅጽበታዊ ገጽ እይታዎች, የቪዲዮ ቀረጻ, የተለያዩ አሳሾች እና አካላዊ ተንቀሳቃሽ መሳሪያዎች. በብዙ ሁኔታዎች ይህ በጣም አስፈላጊ አማራጭ ሊሆን ይችላል. የመሞከሪያ መድረኮች በተለይ ለአይኦኤስ አውቶሜሽን ጠቃሚ ናቸው፣ የህዝብ ደመናዎች ሊኑክስ/ዊንዶውስ ሲስተሞችን ብቻ ሊያቀርቡ ይችላሉ። ግን በሚቀጥሉት ጽሁፎች ውስጥ ስለ iOS እንነጋገራለን. ሁኔታውን ሁልጊዜ እንዲመለከቱ እና ከተግባሮቹ እንዲጀምሩ እመክራለሁ: በአንዳንድ ሁኔታዎች የህዝብ ደመናዎችን መጠቀም ርካሽ እና የበለጠ ቀልጣፋ ነው, እና በሌሎች ውስጥ የሙከራ መድረኮች በእርግጠኝነት የሚወጣው ገንዘብ ዋጋ አላቸው.

አሁን ያለው የመሠረተ ልማት ሁኔታ ምሳሌ

DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት

ለማሰስ አገናኞች

ተመሳሳይ መሳሪያዎች፡-

6. ኦርኬስትራ

የቴክኖሎጂው አጭር መግለጫ

ጥሩ ዜና አለኝ - ወደ መጣጥፉ መጨረሻ ላይ ነን! በአሁኑ ጊዜ፣ የእኛ አውቶሜሽን መሠረተ ልማት የድር እና አንድሮይድ ሙከራዎችን ያቀፈ ነው፣ እነዚህም በ GitLab CI በትይዩ በ Docker-enabled tools: Selenium grid እና Selenoid እንጠቀማለን። ከዚህም በላይ በጂሲፒ በኩል የተፈጠሩ ቨርቹዋል ማሽኖችን እንጠቀማለን ኮንቴይነሮችን ከአሳሾች እና ኢሙሌተሮች ጋር። ወጪን ለመቀነስ እነዚህን ምናባዊ ማሽኖች በፍላጎት ብቻ እንጀምራለን እና ሙከራ በማይደረግበት ጊዜ እናቆማቸዋለን። መሠረተ ልማታችንን ሊያሻሽል የሚችል ሌላ ነገር አለ? መልሱ አዎ ነው! ከኩበርኔትስ (K8s) ጋር ይተዋወቁ!

በመጀመሪያ፣ ኦርኬስትራ፣ ክላስተር እና ኩበርኔትስ የሚሉት ቃላት እንዴት እርስ በርስ እንደሚዛመዱ እንመልከት። በከፍተኛ ደረጃ, ኦርኬስትራ አፕሊኬሽኖችን የሚያሰማራ እና የሚያስተዳድር ስርዓት ነው. ለሙከራ አውቶማቲክ እንደዚህ ያሉ በኮንቴይነር የተያዙ አፕሊኬሽኖች ሴሊኒየም ግሪድ እና ሴሌኖይድ ናቸው። Docker እና K8s እርስ በርስ ይደጋገማሉ። የመጀመሪያው ለትግበራ መዘርጋት, ሁለተኛው ለኦርኬስትራ ስራ ይውላል. በተራው፣ K8s ዘለላ ነው። የክላስተር ተግባር ቪኤምዎችን እንደ መስቀለኛ መንገድ መጠቀም ሲሆን ይህም በአንድ አገልጋይ (ክላስተር) ውስጥ የተለያዩ ተግባራትን ፣ ፕሮግራሞችን እና አገልግሎቶችን እንዲጭኑ ያስችልዎታል። አንዳቸውም ኖዶች ካልተሳካ፣ ሌሎች ኖዶች ይነሳሉ፣ ይህም ያልተቋረጠ የመተግበሪያችንን አሠራር ያረጋግጣል። ከዚህ በተጨማሪ K8s ከማስኬድ ጋር የተያያዘ ጠቃሚ ተግባር አለው፣ ለዚህም ምስጋና ይግባውና በጭነቱ ላይ ተመስርተን ከፍተኛውን የሀብት መጠን እናስቀምጠዋለን።

እንደ እውነቱ ከሆነ ኩበርኔትስን ከባዶ ማሰማራት ቀላል ሾል አይደለም። "Kubernetes The Hard Way" እንዴት እንደሚመራ ለታዋቂው አገናኝን እተወዋለሁ እና ፍላጎት ካሎት, ሊለማመዱት ይችላሉ. ግን እንደ እድል ሆኖ, አማራጭ ዘዴዎች እና መሳሪያዎች አሉ. በጣም ቀላሉ መንገድ Google Kubernetes Engine (GKE) በጂሲፒ ውስጥ መጠቀም ነው፣ ይህም በጥቂት ጠቅታዎች ውስጥ ዝግጁ የሆነ ክላስተር እንድታገኝ ያስችልሃል። መማር ለመጀመር ይህን አካሄድ እንድትጠቀም እመክራለሁ ምክንያቱም ውስጣዊ ክፍሎቹ እርስ በርስ እንዴት እንደሚዋሃዱ ከመማር ይልቅ K8 ን እንዴት ለስራዎ እንደሚጠቀሙ በመማር ላይ እንዲያተኩሩ ይፈቅድልዎታል. 

ለአውቶሜሽን መሠረተ ልማት ዋጋ

K8s የሚያቀርባቸውን ጥቂት ጠቃሚ ባህሪያትን እንመልከት፡-

  • የመተግበሪያ ዝርጋታ: ከቪኤምኤስ ይልቅ ባለብዙ-ኖዶች ክላስተር በመጠቀም;
  • ተለዋዋጭ ልኬት: በፍላጎት ብቻ ጥቅም ላይ የሚውሉትን ሀብቶች ዋጋ ይቀንሳል;
  • ራስን መፈወስ: የፖዳዎች አውቶማቲክ መልሶ ማግኛ (በዚህ ምክንያት ኮንቴይነሮች ወደነበሩበት ይመለሳሉ);
  • ማሻሻያዎችን መልቀቅ እና የለውጦች መልሶ ማገገሚያዎች ያለማቋረጥ፡ መሣሪያዎችን፣ አሳሾችን እና ኢምፔላተሮችን ማዘመን የአሁን ተጠቃሚዎችን ሾል አያቋርጥም።

ግን K8s አሁንም የብር ጥይት አይደሉም። እኛ እያሰብናቸው ባሉት መሳሪያዎች አውድ ውስጥ ያሉትን ሁሉንም ጥቅሞች እና ገደቦች ለመረዳት (ሴሊኒየም ግሪድ, ሴሌኖይድ) ስለ K8s አወቃቀር በአጭሩ እንነጋገራለን. ክላስተር ሁለት አይነት ኖዶችን ይይዛል፡ ማስተር ኖዶች እና የሰራተኞች አንጓዎች። ማስተር ኖዶች የአስተዳደር፣ የማሰማራት እና የመርሐግብር ውሳኔዎችን የማድረግ ሃላፊነት አለባቸው። የሰራተኞች አንጓዎች አፕሊኬሽኖች የሚካሄዱበት ነው። አንጓዎች የኮንቴይነር አሂድ ጊዜ አካባቢን ይይዛሉ። በእኛ ሁኔታ, ይህ ዶከር ነው, እሱም ከኮንቴይነር ጋር ለተያያዙ ስራዎች ኃላፊነት ያለው. ግን እንደ አማራጭ መፍትሄዎችም አሉ ኮንቴይነር. ማቃለል ወይም ራስን መፈወስ በቀጥታ በእቃ መያዣዎች ላይ እንደማይተገበር መረዳት አስፈላጊ ነው. ይህ የሚተገበረው በፖዳዎች ቁጥር በመጨመር / በመቀነስ ነው, ይህም በተራው ደግሞ ኮንቴይነሮችን ይይዛል (ብዙውን ጊዜ በአንድ ፖድ አንድ ኮንቴይነር, ነገር ግን እንደ ሥራው ተጨማሪ ሊሆን ይችላል). የከፍተኛ ደረጃ ተዋረድ የሰራተኛ ኖዶችን ያቀፈ ነው, በውስጣቸው ፖድሎች አሉ, በውስጣቸው ኮንቴይነሮች ይነሳሉ.

የመለኪያ ባህሪው ቁልፍ ነው እና በሁለቱም አንጓዎች በክላስተር መስቀለኛ ገንዳ እና በመስቀለኛ ክፍል ውስጥ ባሉ ፖድዎች ላይ ሊተገበር ይችላል። ለሁለቱም አንጓዎች እና ፖድዎች የሚተገበሩ 2 ዓይነት ቅርፊቶች አሉ። የመጀመሪያው ዓይነት አግድም ነው - ቅርፊት የሚከሰተው በመስቀለኛ መንገድ / በፖዳዎች ቁጥር በመጨመር ነው. ይህ አይነት የበለጠ ተመራጭ ነው. ሁለተኛው ዓይነት, በዚህ መሠረት, ቀጥ ያለ ነው. ስኬል የሚደረገው የኖዶች/ፖዶች መጠን በመጨመር እንጂ ቁጥራቸው አይደለም።

አሁን መሳሪያዎቻችንን ከላይ ባሉት ቃላት አውድ ውስጥ እንይ።

የሴሊኒየም ፍርግርግ

ቀደም ሲል እንደተጠቀሰው, የሴሊኒየም ፍርግርግ በጣም ተወዳጅ መሳሪያ ነው, እና መያዣው መያዙ ምንም አያስደንቅም. ስለዚህ, የሴሊኒየም ፍርግርግ በ K8s ውስጥ መዘርጋት መቻሉ ምንም አያስደንቅም. ይህንን እንዴት ማድረግ እንደሚቻል ምሳሌ በ K8s ኦፊሴላዊ ማከማቻ ውስጥ ይገኛል። እንደተለመደው በክፍሉ መጨረሻ ላይ አገናኞችን አያይዛለሁ. በተጨማሪም, እንዴት-መመሪያው ይህንን በ Terraform ውስጥ እንዴት እንደሚሰራ ያሳያል. እንዲሁም የአሳሽ ኮንቴይነሮችን የያዙ የፖዳዎች ብዛት እንዴት እንደሚመዘን መመሪያዎች አሉ። ነገር ግን በ K8s አውድ ውስጥ ያለው የራስ-ሰር ልኬት ተግባር አሁንም ሙሉ በሙሉ ግልጽ የሆነ ስራ አይደለም. ማጥናት ስጀምር ምንም ተግባራዊ መመሪያ ወይም ምክሮች አላገኘሁም። ከበርካታ ጥናቶች እና ሙከራዎች በኋላ በዴቭኦፕስ ቡድን ድጋፍ ፣ በአንድ የሰራተኛ መስቀለኛ መንገድ ውስጥ የሚገኝ በአንድ ፖድ ውስጥ አስፈላጊ የሆኑ አሳሾች ያላቸው ኮንቴይነሮችን የማሳደግ ዘዴን መረጥን። ይህ ዘዴ ቁጥራቸውን በመጨመር የአንጓዎችን አግድም አግድም አቀማመጥን ተግባራዊ ለማድረግ ያስችለናል. ይህ ለወደፊቱ እንደሚለወጥ ተስፋ አደርጋለሁ እና የተሻሉ አቀራረቦችን እና ዝግጁ መፍትሄዎችን በተለይም የሴሊኒየም ፍርግርግ 4 ከተለወጠ ውስጣዊ አርክቴክቸር ጋር ተጨማሪ መግለጫዎችን እናያለን.

ሴሌኖይድ:

ሴሌኖይድ በK8s ውስጥ መሰማራት በአሁኑ ጊዜ ትልቁ ተስፋ አስቆራጭ ነው። የሚጣጣሙ አይደሉም። በንድፈ ሀሳብ፣ የ Selenoid መያዣን በፖድ ውስጥ ማሳደግ እንችላለን፣ ነገር ግን ሴሌኖይድ ኮንቴይነሮችን በአሳሾች ማስጀመር ሲጀምር አሁንም በተመሳሳይ ፖድ ውስጥ ይኖራሉ። ይህ ልኬቱን የማይቻል ያደርገዋል እና በውጤቱም ፣ የ Selenoid በክላስተር ውስጥ ያለው ሥራ በምናባዊ ማሽን ውስጥ ካለው ሥራ አይለይም። የታሪኩ መጨረሻ።

ጨረቃ:

ከሴሌኖይድ ጋር በሚሰሩበት ጊዜ ይህንን ማነቆ ስለሚያውቁ ገንቢዎቹ ሙን የተባለ የበለጠ ኃይለኛ መሳሪያ ለቀዋል። ይህ መሳሪያ በመጀመሪያ የተነደፈው ከኩበርኔትስ ጋር ለመስራት ነው፣ በውጤቱም፣ የራስ-ስኬል ባህሪው ጥቅም ላይ ሊውል ይችላል እና ጥቅም ላይ መዋል አለበት። ከዚህም በላይ በአሁኑ ጊዜ እንደዚያ ነው እላለሁ ብቸኛው በሴሊኒየም አለም ውስጥ ያለ መሳሪያ፣ ከሳጥኑ ውጭ የ K8s ክላስተር ድጋፍ ያለው (ከአሁን በኋላ አይገኝም፣ የሚቀጥለውን መሳሪያ ይመልከቱ ). ይህንን ድጋፍ የሚሰጡት የጨረቃ ቁልፍ ባህሪያት፡- 

ሙሉ በሙሉ አገር አልባ። ሴሌኖይድ በአሁኑ ጊዜ ስለሚሄዱ የአሳሽ ክፍለ-ጊዜዎች የማህደረ ትውስታ መረጃን ያከማቻል። በሆነ ምክንያት ሂደቱ ከተበላሸ - ሁሉም አሂድ ክፍለ ጊዜዎች ጠፍተዋል. ጨረቃ በተቃራኒው ውስጣዊ ሁኔታ የላትም እና በመረጃ ማእከሎች ውስጥ ሊባዛ ይችላል. አንድ ወይም ከዚያ በላይ ቅጂዎች ቢወርዱም የአሳሽ ክፍለ-ጊዜዎች በሕይወት ይቆያሉ።

ስለዚህ, ጨረቃ በጣም ጥሩ መፍትሄ ነው, ግን አንድ ችግር አለ: ነፃ አይደለም. ዋጋው በክፍለ-ጊዜዎች ብዛት ይወሰናል. ከ0-4 ክፍለ ጊዜዎችን ብቻ በነጻ ማሄድ ይችላሉ፣ ይህም በተለይ ጠቃሚ አይደለም። ነገር ግን፣ ከአምስተኛው ክፍለ ጊዜ ጀምሮ፣ ለእያንዳንዱ $5 መክፈል አለቦት። ሁኔታው ከኩባንያ ወደ ኩባንያ ሊለያይ ይችላል, ነገር ግን በእኛ ሁኔታ, ሙን መጠቀም ምንም ፋይዳ የለውም. ከላይ እንደገለጽኩት ቪኤምዎችን በ Selenium Grid በፍላጎት ማስኬድ ወይም በክላስተር ውስጥ ያሉትን የኖዶች ብዛት መጨመር እንችላለን። ለአንድ የቧንቧ መስመር በግምት 500 አሳሾችን እናስጀምራለን እና ፈተናዎቹ ከተጠናቀቁ በኋላ ሁሉንም ሀብቶች እናቆማለን። ሙን ከተጠቀምን ምንም ያህል ጊዜ ፈተናዎችን ብናካሂድ በወር ተጨማሪ 500 x 5 = 2500 ዶላር መክፈል አለብን። አሁንም ሙን አትጠቀሙ እያልኩ አይደለም። ለእርስዎ ተግባራት፣ ይህ በጣም አስፈላጊ መፍትሄ ሊሆን ይችላል፣ ለምሳሌ፣ በድርጅትዎ ውስጥ ብዙ ፕሮጀክቶች/ቡድኖች ካሉዎት እና ለሁሉም ሰው የሚሆን ትልቅ የጋራ ስብስብ ከፈለጉ። እንደ ሁልጊዜው, መጨረሻ ላይ አንድ አገናኝ ትቻለሁ እና ሁሉንም አስፈላጊ ስሌቶች በስራዎ አውድ ውስጥ እንዲያደርጉ እመክራለሁ.

Callisto: (ትኩረት! ይህ በዋናው ጽሑፍ ውስጥ አይደለም እና በሩሲያኛ ትርጉም ውስጥ ብቻ ተይዟል)

እንዳልኩት ሴሊኒየም በጣም ተወዳጅ መሳሪያ ነው, እና የአይቲ መስክ በጣም በፍጥነት እያደገ ነው. በትርጉሙ ላይ እየሰራሁ እያለ ካሊስቶ የሚባል አዲስ ተስፋ ሰጪ መሳሪያ በድሩ ላይ ታየ (ሰላም ሳይፕረስ እና ሌሎች ሴሊኒየም ገዳይ)። ከK8s ጋር የሚሰራው እና የ Selenoid ኮንቴይነሮችን በፖድ ውስጥ እንዲያሄዱ ይፈቅድልዎታል፣ በመስቀለኛ መንገድ ይሰራጫሉ። አውቶማቲክን ጨምሮ ሁሉም ነገር ከሳጥኑ ውስጥ በትክክል ይሰራል። ድንቅ ነገር ግን መሞከር አለበት። ይህን መሳሪያ አስቀድሜ ለማሰማራት እና ብዙ ሙከራዎችን ለማካሄድ ችያለሁ። ነገር ግን መደምደሚያ ላይ ለመድረስ በጣም ገና ነው, ከረዥም ርቀት ላይ ውጤቶችን ከተቀበልኩ በኋላ, ምናልባት በሚቀጥሉት ጽሁፎች ላይ ግምገማ አደርጋለሁ. ለአሁን ለገለልተኛ ምርምር አገናኞችን ብቻ እተወዋለሁ።  

አሁን ያለው የመሠረተ ልማት ሁኔታ ምሳሌ

DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት

ለማሰስ አገናኞች

ተመሳሳይ መሳሪያዎች

7. መሠረተ ልማት እንደ ኮድ (IaC)

የቴክኖሎጂው አጭር መግለጫ

እና አሁን ወደ የመጨረሻው ክፍል ደርሰናል. በተለምዶ ይህ ቴክኖሎጂ እና ተዛማጅ ተግባራት የአውቶሜሽን መሐንዲሶች ኃላፊነት አይደሉም። ለዚህም ምክንያቶች አሉ. በመጀመሪያ ፣ በብዙ ድርጅቶች ውስጥ ፣ የመሠረተ ልማት ጉዳዮች በዴቭኦፕስ ዲፓርትመንት ቁጥጥር ስር ናቸው እና የልማት ቡድኖቹ የቧንቧ መስመር ምን እንደሚሰራ እና ከእሱ ጋር የተገናኘውን ሁሉ እንዴት መደገፍ እንዳለበት በትክክል አይጨነቁም። በሁለተኛ ደረጃ፣ እውነቱን እንነጋገር ከተባለ፣ የመሠረተ ልማት እንደ ኮድ (IaC) አሠራር በብዙ ኩባንያዎች ውስጥ አሁንም ተቀባይነት የለውም። ነገር ግን በእርግጠኝነት ታዋቂ አዝማሚያ ሆኗል እናም ከእሱ ጋር በተያያዙ ሂደቶች, አቀራረቦች እና መሳሪያዎች ውስጥ ለመሳተፍ መሞከር አስፈላጊ ነው. ወይም ቢያንስ እንደተዘመኑ ይቆዩ።

ይህንን አካሄድ ለመጠቀም ባለው ተነሳሽነት እንጀምር። በ GitlabCI ውስጥ ሙከራዎችን ለማካሄድ፣ Gitlab Runnerን ለማስኬድ ቢያንስ ሃብቶችን እንደሚያስፈልገን አስቀድመን ተወያይተናል። እና ኮንቴይነሮችን ከአሳሾች/ኢሙሌተሮች ጋር ለማስኬድ ቪኤም ወይም ክላስተር ማስያዝ አለብን። ከሙከራ ግብዓቶች በተጨማሪ ልማትን፣ ዝግጅትን፣ የምርት አካባቢዎችን ለመደገፍ ከፍተኛ መጠን ያለው አቅም ያስፈልገናል፣ ይህም የውሂብ ጎታዎችን፣ አውቶማቲክ መርሃ ግብሮችን፣ የኔትወርክ አወቃቀሮችን፣ የሎድ ሚዛኖችን፣ የተጠቃሚ መብቶችን እና የመሳሰሉትን ያካትታል። ዋናው ጉዳይ ሁሉንም ለመደገፍ የሚያስፈልገው ጥረት ነው። ለውጦችን ለማድረግ እና ማሻሻያዎችን የምንለቅበት ብዙ መንገዶች አሉ። ለምሳሌ በጂሲፒ አውድ ውስጥ የUI ኮንሶሉን በአሳሹ ውስጥ ልንጠቀም እና አዝራሮችን ጠቅ በማድረግ ሁሉንም ድርጊቶች መፈጸም እንችላለን። ከደመና አካላት ጋር ለመገናኘት የኤፒአይ ጥሪዎችን መጠቀም ወይም የ gcloud ትዕዛዝ መስመር መገልገያን በመጠቀም የተፈለገውን ማጭበርበር መጠቀም አማራጭ ነው። ነገር ግን በእውነቱ ብዙ ቁጥር ያላቸው የተለያዩ አካላት እና የመሠረተ ልማት አካላት ፣ ሁሉንም ስራዎች በእጅ ለማከናወን አስቸጋሪ ወይም እንኳን የማይቻል ይሆናል። ከዚህም በላይ እነዚህ ሁሉ የእጅ ሥራዎች ከቁጥጥር ውጪ ናቸው. ከመፈጸሙ በፊት ለግምገማ ልናስገባቸው፣ የስሪት ቁጥጥር ስርዓትን መጠቀም እና ወደ ክስተቱ ምክንያት የሆኑትን ለውጦች በፍጥነት መመለስ አንችልም። እንደነዚህ ያሉትን ችግሮች ለመፍታት መሐንዲሶች በፍጥነት ለማንበብ ፣ ለመረዳት ፣ ለመጠገን እና በሥርዓት ዘይቤ ለማሻሻል ቀላል ስላልሆኑ አውቶማቲክ ባሽ / ሼል ስክሪፕቶችን ፈጥረው ፈጠሩ ፣ ከቀደምት ዘዴዎች በጣም የተሻሉ አይደሉም ።

በዚህ ጽሑፍ ውስጥ እና እንዴት እንደሚመራ, ከ IaC ልምምድ ጋር የተያያዙ 2 መሳሪያዎችን እጠቀማለሁ. እነዚህ ቴራፎርም እና ሊሆኑ የሚችሉ ናቸው። አንዳንድ ሰዎች ተግባራቸው ተመሳሳይ እና ተለዋዋጭ ስለሆኑ እነሱን በተመሳሳይ ጊዜ መጠቀም ምንም ትርጉም የለውም ብለው ያምናሉ። እውነታው ግን መጀመሪያ ላይ ሙሉ ለሙሉ የተለያዩ ስራዎች ተሰጥቷቸዋል. እና እነዚህ መሳሪያዎች እርስ በርስ መደጋገፍ አለባቸው የሚለው እውነታ HashiCorp እና RedHat የሚወክሉ ገንቢዎች በጋራ ባደረጉት አቀራረብ ተረጋግጧል። የሃሳብ ልዩነት ቴራፎርም አገልጋዮቹን እራሳቸው ለማስተዳደር የሚያገለግል መሳሪያ ነው። Ansible በነዚህ አገልጋዮች ላይ ሶፍትዌሮችን መጫን፣ ማዋቀር እና ማስተዳደር የሆነ የውቅረት ማኔጅመንት መሳሪያ ነው።

የእነዚህ መሳሪያዎች ሌላው ቁልፍ መለያ ባህሪ የኮዲንግ ዘይቤ ነው. እንደ bash እና Ansible በተለየ፣ ቴራፎርም በአፈፃፀም ምክንያት የሚፈለገውን የመጨረሻ ሁኔታ መግለጫ ላይ በመመስረት ገላጭ ዘይቤን ይጠቀማል። ለምሳሌ 10 ቪኤም ልንፈጥር እና ለውጦቹን በ Terraform ከተጠቀምን 10 ቪኤም እናገኛለን። ስክሪፕቱን እንደገና ካስኬድነው 10 ቪኤምኤስ ስላለን ምንም ነገር አይከሰትም እና ቴራፎርም ስለዚህ ጉዳይ ያውቃል ምክንያቱም አሁን ያለውን የመሠረተ ልማት ሁኔታ በግዛት ፋይል ውስጥ ያከማቻል። ግን Ansible የሥርዓት አካሄድን ይጠቀማል እና 10 ቪኤም እንዲፈጥር ከጠየቁ በመጀመሪያ ጅምር ላይ እንደ ቴራፎርም 10 ቪኤም እናገኛለን። ግን እንደገና ከጀመርን በኋላ 20 ቪኤምኤስ ይኖረናል። ይህ አስፈላጊው ልዩነት ነው. በሥርዓት ዘይቤ ፣ አሁን ያለውን ሁኔታ አናከማችም እና በቀላሉ መከናወን ያለባቸውን የእርምጃዎች ቅደም ተከተል እንገልፃለን። እርግጥ ነው, የተለያዩ ሁኔታዎችን ማስተናገድ እንችላለን, ለሀብቶች መኖር እና አሁን ስላለው ሁኔታ በርካታ ፍተሻዎችን ማከል እንችላለን, ነገር ግን ጊዜያችንን ማባከን እና ይህንን አመክንዮ ለመቆጣጠር ጥረት ማድረግ ምንም ፋይዳ የለውም. በተጨማሪም, ይህ ስህተት የመሥራት አደጋን ይጨምራል. 

ከላይ የተጠቀሱትን ሁሉ ጠቅለል አድርገን ስንገልጽ ቴራፎርም እና ገላጭ ኖት አገልጋይ አገልጋዮችን ለማቅረብ ይበልጥ ተስማሚ መሣሪያ ናቸው ብለን መደምደም እንችላለን። ነገር ግን የማዋቀሪያ አስተዳደር ስራን ለአንሲል ውክልና መስጠት የተሻለ ነው. ያ ከመንገዱ ውጪ፣ የአጠቃቀም ጉዳዮችን ከአውቶሜሽን አውድ ውስጥ እንይ።

ለአውቶሜሽን መሠረተ ልማት ዋጋ

እዚህ ሊረዱት የሚገባው ብቸኛው አስፈላጊ ነገር የሙከራ አውቶሜሽን መሠረተ ልማት እንደ አጠቃላይ የኩባንያው መሠረተ ልማት አካል ተደርጎ መወሰድ አለበት። ይህ ማለት ሁሉም የ IaC ልምምዶች በአለም አቀፍ ደረጃ ለድርጅቱ ሀብቶች በሙሉ መተግበር አለባቸው ማለት ነው። ለዚህ ተጠያቂው ማን ነው በእርስዎ ሂደቶች ላይ የተመሰረተ ነው. በእነዚህ ጉዳዮች ላይ የዴቭኦፕስ ቡድን የበለጠ ልምድ ያለው ነው፣ እየተከሰተ ያለውን አጠቃላይ ምስል ይመለከታሉ። ይሁን እንጂ የ QA መሐንዲሶች አውቶማቲክን በመገንባት ሂደት እና የቧንቧ መሾመር መዋቅር ውስጥ የበለጠ ይሳተፋሉ, ይህም ሁሉንም አስፈላጊ ለውጦችን እና የመሻሻል እድሎችን በተሻለ ሁኔታ ለማየት ያስችላቸዋል. የሚጠበቀው ውጤት ለማግኘት በጋራ መስራት፣ እውቀትና ሃሳብ መለዋወጥ የተሻለው አማራጭ ነው። 

በሙከራ አውቶማቲክ አውድ ውስጥ Terraform እና Ansible የመጠቀም ጥቂት ምሳሌዎች እና ከዚህ በፊት የተነጋገርናቸው መሳሪያዎች፡-

1. ቴራፎርምን በመጠቀም የቪኤም እና ክላስተር አስፈላጊ ባህሪያትን እና መለኪያዎችን ይግለጹ።

2. Ansibleን በመጠቀም ለሙከራ አስፈላጊ የሆኑትን መሳሪያዎች፡- docker፣ Selenoid፣ Selenium Grid ይጫኑ እና የሚፈለጉትን የአሳሾች/emulators ስሪቶች ያውርዱ።

3. ቴራፎርምን በመጠቀም GitLab Runner የሚጀመርበትን የVM ባህሪያት ይግለጹ።

4. GitLab Runner ን እና አስፈላጊዎቹን ተጓዳኝ መሳሪያዎች ሊቻል የሚችል፣ ቅንብሮችን እና አወቃቀሮችን በመጠቀም ይጫኑ።

አሁን ያለው የመሠረተ ልማት ሁኔታ ምሳሌ

DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት

ለማሰስ አገናኞች፡-

ተመሳሳይ መሳሪያዎች

እናጠቃልለው!

ደረጃ
ቴክኖሎጂ
መሣሪያዎች
ለአውቶሜሽን መሠረተ ልማት ዋጋ

1
የአካባቢ ሩጫ
Node.js፣ Selenium፣ Appium

  • ለድር እና ሞባይል በጣም ታዋቂ መሳሪያዎች
  • ብዙ ቋንቋዎችን እና መድረኮችን ይደግፋል (Node.jsን ጨምሮ)

2
የስሪት ቁጥጥር ስርዓቶች 
Git

  • ከልማት ኮድ ጋር ተመሳሳይ ጥቅሞች

3
መያዣ
ዶከር፣ ሴሊኒየም ፍርግርግ፣ ሴሌኖይድ (ድር፣ አንድሮይድ)

  • በትይዩ ሙከራዎችን ማካሄድ
  • ገለልተኛ አካባቢዎች
  • ቀላል፣ ተለዋዋጭ ስሪት ማሻሻያዎች
  • ጥቅም ላይ ያልዋሉ ሀብቶችን በተለዋዋጭ ማቆም
  • ለማቀናበር ቀላል

4
CI/ሲዲ
Gitlab CI

  • የቧንቧ መሾመር ክፍልን ይፈትሻል
  • ፈጣን ምላሽ
  • ለመላው ኩባንያ/ቡድን ታይነት

5
የደመና የመሳሪያ ሥርዓቶች
Google ደመና የመሳሪያ ሥርዓት

  • በፍላጎት ላይ ያሉ ሀብቶች (አስፈላጊ በሚሆንበት ጊዜ ብቻ እንከፍላለን)
  • ለማስተዳደር እና ለማዘመን ቀላል
  • የሁሉም ሀብቶች ታይነት እና ቁጥጥር

6
ኦርኬሽን
ኩባንያቶች
በፖድ ውስጥ ከአሳሾች/emulators ጋር በመያዣዎች አውድ ውስጥ፡-

  • ማቃለል/ልሾ-ሰር ልኬት
  • ራስን መፈወስ
  • ያለማቋረጥ ዝማኔዎች እና መልሶ ማሰራጫዎች

7
መሠረተ ልማት እንደ ኮድ (IaC)
ቴራፎርም ፣ ሊቻል የሚችል

  • ከልማት መሠረተ ልማት ጋር ተመሳሳይ ጥቅሞች
  • የኮድ እትም ሁሉም ጥቅሞች
  • ለውጦችን ለማድረግ እና ለመጠገን ቀላል
  • ሙሉ በሙሉ በራስ-ሰር

የአእምሮ ካርታ ንድፎች: የመሠረተ ልማት ዝግመተ ለውጥ

ደረጃ 1: አካባቢያዊ
DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት

ደረጃ 2: VCS
DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት

ደረጃ 3: መያዣ 
DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት

ደረጃ 4: CI/CD 
DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት

ደረጃ 5: የክላውድ መድረኮች
DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት

ደረጃ 6: ኦርኬስትራ
DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት

ደረጃ 7: IaC
DevOps መሣሪያዎች ለDevOps ብቻ አይደሉም። የሙከራ አውቶሜሽን መሠረተ ልማት ከባዶ የመገንባት ሂደት

ቀጥሎ ምንድነው?

ስለዚህ የጽሁፉ መጨረሻ ይህ ነው። ግን በማጠቃለያው ከእርስዎ ጋር አንዳንድ ስምምነቶችን መመስረት እፈልጋለሁ.

ከጎንህ
መጀመሪያ ላይ እንደገለጽኩት ጽሑፉ በተግባራዊ ጥቅም ላይ እንዲውል እና ያገኙትን እውቀት በእውነተኛ ስራ ላይ እንዲተገብሩ እንዲረዳዎት እፈልጋለሁ. እንደገና እጨምራለሁ ወደ ተግባራዊ መመሪያ አገናኝ.

ነገር ግን ከዚያ በኋላ እንኳን አያቁሙ, አይለማመዱ, ተዛማጅ አገናኞችን እና መጽሃፎችን ያጠኑ, በኩባንያዎ ውስጥ እንዴት እንደሚሰራ ይወቁ, ሊሻሻሉ የሚችሉ ቦታዎችን ይፈልጉ እና በእሱ ውስጥ ይሳተፉ. መልካም ምኞት!

ከጎኔ

ከርዕሱ ይህ የመጀመሪያው ክፍል ብቻ መሆኑን ማየት ይችላሉ. ምንም እንኳን እሱ በጣም ትልቅ ቢሆንም ፣ አስፈላጊ ርዕሰ ጉዳዮች አሁንም እዚህ አልተካተቱም። በሁለተኛው ክፍል, በ IOS አውድ ውስጥ አውቶሜሽን መሠረተ ልማትን ለመመልከት እቅድ አለኝ. አፕል የአይኦኤስ ሲሙሌተሮችን በማክሮ ሲስተም ላይ ብቻ ለማስኬድ በሰጠው ገደብ ምክንያት የመፍትሄ ክልላችን እየጠበበ ነው። ለምሳሌ፣ ምናባዊ ማሽኖችን ለማስኬድ Docker ን ለመጠቀም አስመሳይ ወይም የህዝብ ደመናን መጠቀም አልቻልንም። ይህ ማለት ግን ሌሎች አማራጮች የሉም ማለት አይደለም። የላቁ መፍትሄዎችን እና ዘመናዊ መሳሪያዎችን ወቅታዊ ለማድረግ እሞክራለሁ!

በተጨማሪም፣ ከክትትል ጋር የተያያዙ በጣም ትልቅ ርዕሶችን አልገለጽኩም። በክፍል 3 ውስጥ፣ በጣም ታዋቂ የሆኑትን የመሠረተ ልማት መከታተያ መሳሪያዎችን እና የትኞቹን መረጃዎች እና መለኪያዎች ከግምት ውስጥ ማስገባት እንዳለብኝ እመለከታለሁ።

እና በመጨረሻም. ለወደፊቱ, የሙከራ መሠረተ ልማትን እና ታዋቂ መሳሪያዎችን ስለመገንባት የቪዲዮ ኮርስ ለመልቀቅ እቅድ አለኝ. በአሁኑ ጊዜ በይነመረብ ላይ በዴቭኦፕስ ላይ በጣም ጥቂት ኮርሶች እና ትምህርቶች አሉ ፣ ግን ሁሉም ቁሳቁሶች የሚቀርቡት በእድገት አውድ ውስጥ ነው እንጂ የሙከራ አውቶማቲክ አይደለም። በዚህ ጉዳይ ላይ፣ እንዲህ ዓይነቱ ኮርስ ለሞካሪዎች እና አውቶሜሽን መሐንዲሶች ማህበረሰብ አስደሳች እና ጠቃሚ መሆን አለመሆኑን ላይ ግብረ መልስ እፈልጋለሁ። የቀደመ ምስጋና!

ምንጭ: hab.com

አስተያየት ያክሉ