200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

አቀራረብ። አይ.ኤ.ሲ. (መሠረተ ልማት እንደ ኮድ) በማጠራቀሚያው ውስጥ የተቀመጠውን ኮድ ብቻ ሳይሆን በዚህ ኮድ ዙሪያ ያሉትን ሰዎች እና ሂደቶችንም ያካትታል. ከሶፍትዌር ልማት እስከ መሠረተ ልማት አስተዳደር እና መግለጫ አቀራረቦችን እንደገና መጠቀም ይቻላል? ጽሑፉን በሚያነቡበት ጊዜ ይህንን ሃሳብ ግምት ውስጥ ማስገባት ጥሩ ይሆናል.

እንግሊዝኛ ስሪት

ይህ የእኔ ግልባጭ ነው። ትርዒቶች ላይ DevopsConf 2019-05-28.

ስላይዶች እና ቪዲዮዎች

መሰረተ ልማት እንደ ባሽ ታሪክ

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

ወደ አዲስ ፕሮጀክት መጥተህ እንበልና “አለን። መሠረተ ልማት እንደ ኮድ". በእውነታው ላይ ይወጣል መሰረተ ልማት እንደ ባሽ ታሪክ ወይም ለምሳሌ ሰነድ እንደ ባሽ ታሪክ. ይህ በጣም ተጨባጭ ሁኔታ ነው, ለምሳሌ, ተመሳሳይ ጉዳይ በዴኒስ ሊሴንኮ በንግግር ውስጥ ተገልጿል አጠቃላይ መሠረተ ልማትን እንዴት መተካት እና በሰላም መተኛት መጀመር እንደሚቻልለፕሮጀክቱ ወጥ የሆነ መሠረተ ልማት እንዳገኙ ከባሽ ታሪክ እንዴት እንዳገኙ ተናግሯል።

ከተወሰነ ፍላጎት ጋር, እንዲህ ማለት እንችላለን መሰረተ ልማት እንደ ባሽ ታሪክ ይህ እንደ ኮድ ነው

  1. መራባት: የ bash ታሪክን መውሰድ ፣ ትእዛዞቹን ከዚያ ማስኬድ ይችላሉ ፣ እና በነገራችን ላይ እንደ ውፅዓት የሚሰራ ውቅር ማግኘት ይችላሉ።
  2. ስሪት ማውጣትማን እንደገባ እና ምን እንዳደረጉ ታውቃለህ ፣ እንደገና ፣ ይህ ወደ መውጫው ወደሚሰራ ውቅር የሚመራዎት እውነታ አይደለም።
  3. ታሪክማን ምን እንዳደረገ ታሪክ። አንተ ብቻ አገልጋዩ ከጠፋብህ ልትጠቀምበት አትችልም።

ምን ማድረግ አለብኝ?

መሠረተ ልማት እንደ ኮድ

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

እንደ እንግዳ ጉዳይ እንኳን መሰረተ ልማት እንደ ባሽ ታሪክ በጆሮዎ መጎተት ይችላሉ መሠረተ ልማት እንደ ኮድ, ነገር ግን ከድሮው የ LAMP አገልጋይ የበለጠ የተወሳሰበ ነገር ለመስራት ስንፈልግ, ይህ ኮድ በሆነ መንገድ መስተካከል, መለወጥ, መሻሻል አለበት ወደሚል መደምደሚያ ላይ እንደርሳለን. በመቀጠል በመካከላቸው ያለውን ተመሳሳይነት ግምት ውስጥ ማስገባት እንፈልጋለን መሠረተ ልማት እንደ ኮድ እና የሶፍትዌር ልማት.

ደረቅ

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

በማከማቻ ስርዓት ልማት ፕሮጀክት ላይ አንድ ንዑስ ተግባር ነበር። ኤስዲኤስን በየጊዜው ያዋቅሩ: አዲስ ልቀት እየለቀቅን ነው - ለተጨማሪ ሙከራ መልቀቅ አለበት። ተግባሩ በጣም ቀላል ነው-

  • በ ssh በኩል እዚህ ይግቡ እና ትዕዛዙን ያስፈጽሙ።
  • ፋይሉን እዚያ ይቅዱ።
  • አወቃቀሩን እዚህ ያርሙ።
  • አገልግሎቱን እዚያ ይጀምሩ
  • ...
  • ትርፍ!

ለተገለጸው አመክንዮ, ባሽ ከበቂ በላይ ነው, በተለይም በፕሮጀክቱ የመጀመሪያ ደረጃዎች, ገና ሲጀመር. ይህ ባሽ መጠቀማችሁ መጥፎ አይደለም።, ነገር ግን በጊዜ ሂደት ተመሳሳይ የሆነ ነገር ለማሰማራት ጥያቄዎች አሉ, ግን ትንሽ ለየት ያለ. ወደ አእምሮ የሚመጣው የመጀመሪያው ነገር ኮፒ-መለጠፍ ነው. እና አሁን ተመሳሳይ ነገር የሚያደርጉ ሁለት ተመሳሳይ ስክሪፕቶች አሉን። ከጊዜ በኋላ, የስክሪፕቶች ቁጥር እያደገ ነው, እና በተለያዩ ስክሪፕቶች መካከል መመሳሰል ያለበትን ጭነት ለማሰማራት የተወሰነ የንግድ ሥራ አመክንዮ መኖሩን አጋጥሞናል, ይህ በጣም የተወሳሰበ ነው.

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

እንደ DRY (እራስዎን አይድገሙ) እንደዚህ አይነት አሰራር እንዳለ ተገለጠ. ሀሳቡ ያለውን ኮድ እንደገና መጠቀም ነው። ቀላል ይመስላል, ነገር ግን ወደዚህ ወዲያውኑ አልመጣንም. በእኛ ሁኔታ ፣ ውቅረትን ከስክሪፕቶች ለመለየት ይህ የባናል ሀሳብ ነበር። እነዚያ። መጫኑ በተናጥል እንዴት እንደሚዘረጋ የንግድ ሎጂክ ፣ ለብቻው ያዋቅራል።

SOLID ለሲኤፍኤም

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

ከጊዜ በኋላ ፕሮጀክቱ አደገ እና ተፈጥሯዊ ቀጣይነት የአንሲብል መፈጠር ነበር። ለመታየት ዋናው ምክንያት በቡድኑ ውስጥ ልምድ ስላለ እና ባሽ ለተወሳሰበ አመክንዮ ያልተነደፈ ነው። አእምሮአዊ ውስብስብ አመክንዮ መያዝም ጀመረ። ውስብስብ አመክንዮ ወደ ትርምስ እንዳይቀየር ለመከላከል በሶፍትዌር ልማት ውስጥ ኮድን የማደራጀት መርሆዎች አሉ። SOLID እንዲሁም ፣ ለምሳሌ ፣ ግሪጎሪ ፔትሮቭ በሪፖርቱ ውስጥ “የ IT ስፔሻሊስት ለምን የግል ብራንድ ያስፈልገዋል” በሚለው ዘገባ ላይ አንድ ሰው ከአንዳንድ ማህበራዊ አካላት ጋር ለመስራት ቀላል በሆነ መንገድ የተነደፈ ጥያቄን አስነስቷል ፣ በሶፍትዌር ልማት ውስጥ እነዚህ እቃዎች ናቸው. እነዚህን ሁለት ሃሳቦች አጣምረን ማሳደግ ከቀጠልን ልንጠቀምባቸው እንደምንችል እናስተውላለን SOLID ለወደፊቱ ይህንን አመክንዮ ለመጠገን እና ለማሻሻል ቀላል ለማድረግ.

ነጠላ የኃላፊነት መርህ

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

እያንዳንዱ ክፍል አንድ ተግባር ብቻ ያከናውናል.

ኮድን መቀላቀል እና ሞኖሊቲክ መለኮታዊ ስፓጌቲ ጭራቆች ማድረግ አያስፈልግም። መሠረተ ልማት ቀላል ጡቦችን ማካተት አለበት. የሚቻለውን የመጫወቻ መጽሐፍን በትናንሽ ቁርጥራጮች ከከፈሉት፣ ሊሆኑ የሚችሉ ሚናዎችን ያንብቡ፣ ከዚያ ለማቆየት ቀላል ናቸው።

ክፍት የተዘጋ መርህ

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

ክፍት/የተዘጋ መርህ።

  • ለማራዘም ክፈት፡ ማለት የአንድ አካል ባህሪ አዲስ የህጋዊ አካል ዓይነቶችን በመፍጠር ሊራዘም ይችላል።
  • ለመለወጥ ተዘግቷል፡ የአንድን አካል ባህሪ በማራዘም ምክንያት እነዚያን አካላት በሚጠቀም ኮድ ላይ ምንም አይነት ለውጥ መደረግ የለበትም።

መጀመሪያ ላይ የሙከራ መሠረተ ልማቶችን በቨርቹዋል ማሽኖች ላይ አሰማርተናል፣ነገር ግን የቢዝነስ አመክንዮአዊ አመክንዮ ከትግበራው የተለየ በመሆኑ ያለምንም ችግር ወደ ባርሜትታል መሽከርከርን ጨምረናል።

የሊስኮቭ ምትክ መርህ

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

የባርባራ ሊስኮቭ የመተካት መርህ. በፕሮግራሙ ውስጥ ያሉ ዕቃዎች የፕሮግራሙን ትክክለኛ አፈፃፀም ሳይቀይሩ በንዑስ ዓይነታቸው ሊተኩ ይገባል ።

በሰፊው ከተመለከቱት, እዚያ ሊተገበር የሚችል የማንኛውም የተለየ ፕሮጀክት ባህሪ አይደለም SOLIDበአጠቃላይ ስለ ሲኤፍኤም ነው፡ ለምሳሌ፡ በሌላ ፕሮጀክት ላይ ቦክስ ያለው የጃቫ አፕሊኬሽን በተለያዩ ጃቫ፣ አፕሊኬሽን ሰርቨሮች፣ ዳታቤዝ፣ ኦኤስ ወዘተ ላይ ማሰማራት አስፈላጊ ነው። ይህንን ምሳሌ በመጠቀም ተጨማሪ መርሆችን እመለከታለሁ። SOLID

በእኛ ሁኔታ፣ በመሠረተ ልማት ቡድን ውስጥ የኢምብጃቫ ወይም ኦራክልጃቫ ሚናን ከጫንን የጃቫ ሁለትዮሽ executable አለን የሚል ስምምነት አለ። ይህ አስፈላጊ ነው ምክንያቱም ወደላይ የሚደረጉ ሚናዎች በዚህ ባህሪ ላይ ይመሰረታሉ፤ ጃቫን ይጠብቃሉ። በተመሳሳይ ጊዜ, ይህ የመተግበሪያውን የማሰማራት አመክንዮ ሳይቀይር አንድ የጃቫ አተገባበር/ስሪት በሌላ መተካት ያስችለናል.

እዚህ ያለው ችግር በአንሲል ውስጥ ይህንን ተግባራዊ ለማድረግ የማይቻል በመሆኑ ነው, በዚህም ምክንያት አንዳንድ ስምምነቶች በቡድኑ ውስጥ ይታያሉ.

የበይነገጽ መለያየት መርህ

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

የበይነገጽ መለያየት መርህ፡- “ብዙ ደንበኛ-ተኮር በይነገጾች ከአንድ አጠቃላይ ዓላማ በይነገጽ የተሻሉ ናቸው።

መጀመሪያ ላይ ሁሉንም የአፕሊኬሽን ማሰማራቱን ተለዋዋጭነት ወደ አንድ ሊቻል የሚችል የመጫወቻ መጽሐፍ ውስጥ ለማስቀመጥ ሞክረን ነበር, ነገር ግን ለመደገፍ አስቸጋሪ ነበር, እና ውጫዊ በይነገጽ ሲኖረን አቀራረቡ (ደንበኛው ወደብ 443 ይጠብቃል), ከዚያም መሰረተ ልማት ከግለሰብ ሊሰበሰብ ይችላል. ለአንድ የተወሰነ አተገባበር ጡቦች.

የጥገኝነት ተገላቢጦሽ መርህ

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

የጥገኝነት ተገላቢጦሽ መርህ. በከፍተኛ ደረጃ ላይ ያሉ ሞጁሎች በዝቅተኛ ደረጃዎች ላይ ባሉ ሞጁሎች ላይ የተመካ መሆን የለባቸውም. ሁለቱም የሞጁሎች ዓይነቶች በአብስትራክቶች ላይ የተመሰረቱ መሆን አለባቸው. ማጠቃለያዎች በዝርዝሮች ላይ የተመካ መሆን የለባቸውም. ዝርዝሩ በአብስትራክት ላይ የተመሰረተ መሆን አለበት።

እዚህ ምሳሌው በፀረ-ንድፍ ላይ የተመሰረተ ይሆናል.

  1. ከደንበኞቹ አንዱ የግል ደመና ነበረው።
  2. በደመናው ውስጥ ምናባዊ ማሽኖችን አዝዘናል።
  3. ነገር ግን በደመናው ተፈጥሮ ምክንያት የመተግበሪያ ማሰማራት VM ከበራበት ሃይፐርቫይዘር ጋር የተያያዘ ነበር።

እነዚያ። የከፍተኛ ደረጃ የመተግበሪያ ማሰማራት አመክንዮ ከጥገኛዎች ጋር ወደ ዝቅተኛ የሃይፐርቫይዘር ደረጃዎች ፈሰሰ፣ እና ይህ ማለት ይህንን አመክንዮ እንደገና ሲጠቀሙ ችግሮች ነበሩ። በዚህ መንገድ አታድርጉ.

ምንጭጌ

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

መሠረተ ልማት እንደ ኮድ ኮድ ብቻ ሳይሆን በኮድ እና በሰዎች መካከል ስላለው ግንኙነት, በመሠረተ ልማት ገንቢዎች መካከል ስላለው ግንኙነትም ጭምር ነው.

የአውቶቡስ ምክንያት

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

በፕሮጀክትህ ላይ Vasya እንዳለህ እናስብ። Vasya ስለ መሠረተ ልማትዎ ሁሉንም ነገር ያውቃል, ቫሳያ በድንገት ቢጠፋ ምን ይሆናል? ይህ በጣም እውነተኛ ሁኔታ ነው, ምክንያቱም እሱ በአውቶቡስ ሊመታ ይችላል. አንዳንድ ጊዜ ይከሰታል. ይህ ከተከሰተ እና ስለ ኮዱ ፣ አወቃቀሩ ፣ እንዴት እንደሚሰራ ፣ መልክዎች እና የይለፍ ቃሎች በቡድኑ ውስጥ ካልተሰራጩ ፣ ብዙ ደስ የማይሉ ሁኔታዎች ሊያጋጥሙዎት ይችላሉ። እነዚህን አደጋዎች ለመቀነስ እና እውቀትን በቡድኑ ውስጥ ለማሰራጨት የተለያዩ መንገዶችን መጠቀም ይችላሉ።

ጥንድ Devopsing

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

እንደዛ አይደለም። እንደ ቀልድ፣ አስተዳዳሪዎቹ ቢራ ይጠጡ ፣ የይለፍ ቃሎችን ቀይረዋል ፣ እና ጥንድ ፕሮግራሚንግ አናሎግ ። እነዚያ። ሁለት መሐንዲሶች በአንድ ኮምፒዩተር ላይ ተቀምጠው አንድ ኪቦርድ ላይ ተቀምጠው መሠረተ ልማትዎን አንድ ላይ ማዋቀር ይጀምራሉ፡ ሰርቨር ማቋቋም፣ ሊቻል የሚችል ሚና መፃፍ፣ ወዘተ. ጥሩ ቢመስልም ለኛ አልሰራም። ነገር ግን የዚህ አሰራር ልዩ ጉዳዮች ሠርተዋል. አዲስ ሰራተኛ ይመጣል, አማካሪው ከእሱ ጋር አንድ ላይ እውነተኛ ስራ ይወስዳል, ይሰራል እና እውቀትን ያስተላልፋል.

ሌላው ልዩ ጉዳይ የአደጋ ጥሪ ነው። በችግር ጊዜ ተረኛ እና የተሳተፉት ቡድን ይሰበሰባል ፣ አንድ መሪ ​​ይሾማል ፣ ስክሪኑን የሚጋራ እና የሃሳብን ባቡር ያሰማል። ሌሎች ተሳታፊዎች የመሪውን ሃሳቦች ይከተላሉ, ከኮንሶል ውስጥ ያሉትን ዘዴዎች ይሰልላሉ, በምዝግብ ማስታወሻው ውስጥ አንድ መስመር እንዳላለፉ ያረጋግጡ እና ስለ ስርዓቱ አዳዲስ ነገሮችን ይማራሉ. ይህ አቀራረብ ብዙ ጊዜ ይሠራ ነበር.

የኮድ ግምገማ

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

በርዕስነቱ፣ ስለ መሠረተ ልማት አውታሮች እና የኮድ ግምገማን በመጠቀም እንዴት እንደሚሰራ ዕውቀትን ማሰራጨት የበለጠ ውጤታማ ነበር።

  • የመሠረተ ልማት አውታሮች በማጠራቀሚያው ውስጥ በኮድ ተገልጿል.
  • ለውጦች በተለየ ቅርንጫፍ ውስጥ ይከሰታሉ.
  • በውህደት ጥያቄ ወቅት በመሠረተ ልማት ውስጥ ያሉ ለውጦችን ማየት ይችላሉ።

እዚህ ላይ ጎልቶ የሚታየው ገምጋሚዎቹ በአንድ መርሐግብር መሠረት አንድ በአንድ መመረጣቸው ነው፣ ማለትም. በተወሰነ ደረጃ ወደ አዲስ መሠረተ ልማት ትወጣላችሁ።

ኮድ ዘይቤ

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

ከጊዜ በኋላ በግምገማ ወቅት ሽኩቻዎች መታየት ጀመሩ፣ ምክንያቱም... ገምጋሚዎች የራሳቸው ዘይቤ ነበራቸው እና የገምጋሚዎች አዙሪት በተለያየ ዘይቤ ተከምሮላቸዋል፡ 2 ቦታዎች ወይም 4፣ camelcase or snake_case። ይህንንም ወዲያውኑ ተግባራዊ ማድረግ አልተቻለም።

  • የመጀመሪያው ሃሳብ ሊንተርን መጠቀምን መምከር ነበር, ለነገሩ ሁሉም ሰው መሐንዲስ ነው, ሁሉም ሰው ብልህ ነው. ነገር ግን የተለያዩ አርታኢዎች, OS, ምቹ አይደሉም
  • ይህ እያንዳንዱ ችግር ላለባቸው ቁርጠኝነት ወደ ዘገየ የጻፈ እና የሊንተር ውፅዓትን የሚያያይዘው ወደ ቦት ተለወጠ። ግን በአብዛኛዎቹ ጉዳዮች የበለጠ አስፈላጊ ነገሮች ነበሩ እና ኮዱ ሳይስተካከል ቆይቷል።

አረንጓዴ ግንባታ ማስተር

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

ጊዜ ያልፋል, እና የተወሰኑ ፈተናዎችን የማያልፉ ወደ ጌታው ውስጥ መግባት እንደማይችሉ የሚፈጽም መደምደሚያ ላይ ደርሰናል. ቮይላ! ለረጅም ጊዜ በሶፍትዌር ልማት ውስጥ የተለማመደውን ግሪን Build Master ፈጠርን፡-

  • ልማት በተለየ ቅርንጫፍ ውስጥ እየተካሄደ ነው.
  • በዚህ ፈትል ላይ ሙከራዎች እየሰሩ ነው።
  • ፈተናዎቹ ካልተሳኩ ኮዱ ወደ ጌታው አያደርገውም።

ይህን ውሳኔ ማድረግ በጣም የሚያም ነበር፣ ምክንያቱም... ብዙ ውዝግቦችን አስከትሏል፣ ግን ዋጋ ያለው ነበር፣ ምክንያቱም... ግምገማዎች የቅጥ ልዩነት ሳይኖራቸው የውህደት ጥያቄዎችን መቀበል ጀመሩ እና ከጊዜ በኋላ የችግር አካባቢዎች ቁጥር መቀነስ ጀመረ።

የ IaC ሙከራ

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

ከስታይል ፍተሻ በተጨማሪ ሌሎች ነገሮችን መጠቀም ይችላሉ፣ ለምሳሌ፣ የእርስዎ መሠረተ ልማት በትክክል ሊሰማራ እንደሚችል ለማረጋገጥ። ወይም በመሠረተ ልማት ላይ የሚደረጉ ለውጦች ለገንዘብ ኪሳራ እንደማይዳርጉ ያረጋግጡ። ይህ ለምን ሊያስፈልግ ይችላል? ጥያቄው ውስብስብ እና ፍልስፍናዊ ነው፡ እንደምንም በPowershell ላይ የድንበር ሁኔታዎችን ያላጣራ አውቶማቲክ ስኬል እንደነበረ ታሪክ ብንመልስ ይሻላል=> ከሚያስፈልገው በላይ ቪኤም ተፈጥረዋል=> ደንበኛው ከታቀደው በላይ ብዙ ገንዘብ አውጥቷል። ይህ በጣም ደስ የሚል አይደለም, ነገር ግን ይህን ስህተት ቀደም ባሉት ደረጃዎች ለመያዝ በጣም ይቻላል.

አንድ ሰው ለምን ውስብስብ መሠረተ ልማትን የበለጠ ውስብስብ ያደርገዋል? የመሠረተ ልማት ሙከራዎች፣ ልክ እንደ ኮድ፣ ስለ ማቅለል ሳይሆን መሠረተ ልማትዎ እንዴት መሥራት እንዳለበት ስለማወቅ ነው።

የIaC ሙከራ ፒራሚድ

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

የIaC ሙከራ፡ የማይለዋወጥ ትንተና

መላውን መሠረተ ልማት በአንድ ጊዜ ካሰማራህ እና መስራቱን ካረጋገጥክ ብዙ ጊዜ የሚወስድ እና ብዙ ጊዜ የሚጠይቅ ሆኖ አግኝተህ ይሆናል። ስለዚህ, መሰረቱ በፍጥነት የሚሰራ ነገር መሆን አለበት, ብዙ አለ, እና ብዙ ጥንታዊ ቦታዎችን ይሸፍናል.

ባሽ ተንኮለኛ ነው።

አንድ ተራ ምሳሌ እንመልከት። አሁን ባለው ማውጫ ውስጥ ያሉትን ሁሉንም ፋይሎች ይምረጡ እና ወደ ሌላ ቦታ ይቅዱ። ወደ አእምሮ የሚመጣው የመጀመሪያው ነገር:

for i in * ; do 
    cp $i /some/path/$i.bak
done

በፋይል ስም ውስጥ ቦታ ካለስ? ደህና፣ እሺ፣ ብልህ ነን፣ ጥቅሶችን እንዴት እንደምንጠቀም እናውቃለን፡-

for i in * ; do cp "$i" "/some/path/$i.bak" ; done

ጥሩ ስራ? አይ! በማውጫው ውስጥ ምንም ነገር ከሌለ ምን ማለት ነው, ማለትም. ግሎብንግ አይሰራም.

find . -type f -exec mv -v {} dst/{}.bak ;

አሁን ደህና ተደረገ? አይ... በፋይል ስም ምን ሊሆን እንደሚችል ረስተውታል። n.

touch x
mv x  "$(printf "foonbar")"
find . -type f -print0 | xargs -0 mv -t /path/to/target-dir

የማይንቀሳቀስ ትንተና መሳሪያዎች

የቀደመው እርምጃ ችግር ጥቅሶቹን ስንረሳው ሊታለፍ ይችላል, ለዚህም በተፈጥሮ ውስጥ ብዙ መፍትሄዎች አሉ. ሼልቼክበአጠቃላይ ብዙዎቹ አሉ፣ እና ምናልባትም በእርስዎ IDE ስር ለቁልልዎ ሊንተር ሊያገኙ ይችላሉ።

ቋንቋ
መሣሪያ

bash
ሼልቼክ

ሩቢ
ሩቦኮፕ

ጭረት
ፓሊንት

ያረጀ
ሊቻል የሚችል ሊንት

የIaC ሙከራ፡ የክፍል ሙከራዎች

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

ካለፈው ምሳሌ እንደተመለከትነው ሊንደሮች ሁሉን ቻይ አይደሉም እና ሁሉንም የችግር አካባቢዎችን ሊጠቁሙ አይችሉም። በተጨማሪም፣ በሶፍትዌር ልማት ውስጥ ካለው ሙከራ ጋር በማመሳሰል፣ የክፍል ሙከራዎችን ማስታወስ እንችላለን። ወዲያው ወደ አእምሮ የሚመጣው shunit, ጁኒት, spec, ፒስቴት. ነገር ግን ከአንችለር፣ ከሼፍ፣ ከጨው ስታክ እና ከመሳሰሉት ጋር ምን ይደረግ?

ገና መጀመሪያ ላይ ተነጋገርን። SOLID እና የእኛ መሠረተ ልማት ትናንሽ ጡቦችን ያካተተ መሆን አለበት. ጊዜያቸው ደርሷል።

  1. የመሠረተ ልማት አውታሮች ወደ ትናንሽ ጡቦች የተከፋፈሉ ናቸው, ለምሳሌ, ሊሆኑ የሚችሉ ሚናዎች.
  2. አንድ ዓይነት አካባቢ ተዘርግቷል፣ ዶከር ወይም VM።
  3. ለዚህ የሙከራ አካባቢ የኛን ሊቻል የሚችል ሚና እንተገብራለን።
  4. ሁሉም ነገር እንደጠበቅነው መስራቱን እናረጋግጣለን (ሙከራዎችን እናካሂዳለን)።
  5. እሺን እንወስናለን ወይም አይደለም.

የIaC ሙከራ፡ የክፍል መሞከሪያ መሳሪያዎች

ጥያቄ፣ ለሲኤፍኤም ፈተናዎች ምንድናቸው? በቀላሉ ስክሪፕቱን ማሄድ ይችላሉ፣ ወይም ለዚህ ዝግጁ የሆኑ መፍትሄዎችን መጠቀም ይችላሉ፡

CFM
መሣሪያ

የሚጠራ
Testinfra

ልሾ
ምርመራ

ልሾ
የአገልጋይ ዝርዝር

የጨው ክምችት
ጋዝ

ለ testinfra ምሳሌ፣ ያንን ተጠቃሚዎች በማጣራት ላይ test1, test2 አሉ እና በቡድን ውስጥ አሉ። sshusers:

def test_default_users(host):
    users = ['test1', 'test2' ]
    for login in users:
        assert host.user(login).exists
        assert 'sshusers' in host.user(login).groups

ምን መምረጥ? ጥያቄው ውስብስብ እና አሻሚ ነው፣ለ2018-2019 በ github ላይ የፕሮጀክቶች ለውጦች ምሳሌ እዚህ አለ፡-

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

የIaC የሙከራ ማዕቀፎች

ጥያቄው የሚነሳው-ሁሉንም አንድ ላይ እንዴት ማቀናጀት እና ማስጀመር ይቻላል? ይችላል ይውሰዱት እና እራስዎ ያድርጉት በቂ ቁጥር ያላቸው መሐንዲሶች ካሉ. ወይም በጣም ብዙ ባይሆኑም ዝግጁ የሆኑ መፍትሄዎችን መውሰድ ይችላሉ-

CFM
መሣሪያ

የሚጠራ
ሞለኪውል

ልሾ
ምግብ ቤትን ይፈትሹ

Terraform
ቴራቴስት

ለ2018-2019 በ github ላይ ያሉ የፕሮጀክቶች ለውጦች ምሳሌ፡

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

ሞለኪውል vs. የሙከራ ወጥ ቤት

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

መጀመሪያ እኛ testkitchen ለመጠቀም ሞክሯል።:

  1. በትይዩ ቪኤም ይፍጠሩ።
  2. ሊሆኑ የሚችሉ ሚናዎችን ይተግብሩ።
  3. ፍተሻን አሂድ።

ለ 25-35 ሚናዎች ከ40-70 ደቂቃዎች ሰርቷል, ይህም ረጅም ነበር.

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

ቀጣዩ ደረጃ ወደ ጄንኪንስ / ዶከር / ሊታዘዝ / ሞለኪውል ሽግግር ነበር. በአይዶሎጂ ሁሉም ነገር አንድ ነው

  1. ሊንት የመጫወቻ መጽሐፍት።
  2. ሚናዎቹን አሰልፍ።
  3. መያዣውን አስጀምር
  4. ሊሆኑ የሚችሉ ሚናዎችን ይተግብሩ።
  5. testinfra አሂድ.
  6. አቅምን ያረጋግጡ።

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

ለ 40 ሚናዎች መደርደር እና ለደርዘን ፈተናዎች 15 ደቂቃ ያህል መውሰድ ጀመረ።

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

ምን መምረጥ እንዳለበት በብዙ ነገሮች ላይ የተመሰረተ ነው, ለምሳሌ ጥቅም ላይ የዋለው ቁልል, በቡድኑ ውስጥ ያለው ልምድ, ወዘተ. እዚህ ሁሉም ሰው የዩኒት የሙከራ ጥያቄን እንዴት መዝጋት እንዳለበት በራሱ ይወስናል

የIaC ሙከራ፡ የውህደት ሙከራዎች

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

የመሠረተ ልማት ሙከራ ፒራሚድ ቀጣዩ ደረጃ የውህደት ሙከራዎች ይሆናል። ከዩኒት ሙከራዎች ጋር ተመሳሳይ ናቸው፡-

  1. የመሠረተ ልማት አውታሮች ወደ ትናንሽ ጡቦች ይከፈላሉ, ለምሳሌ ሊሆኑ የሚችሉ ሚናዎች.
  2. አንድ ዓይነት አካባቢ ተዘርግቷል፣ ዶከር ወይም VM።
  3. ለዚህ የሙከራ አካባቢ ተግብር አንድ ስብስብ ሊሆኑ የሚችሉ ሚናዎች።
  4. ሁሉም ነገር እንደጠበቅነው መስራቱን እናረጋግጣለን (ሙከራዎችን እናካሂዳለን)።
  5. እሺን እንወስናለን ወይም አይደለም.

በግምት፣ እንደ አሃድ ሙከራዎች የስርዓቱን ነጠላ ንጥረ ነገር አፈጻጸም አንፈትሽም፣ አገልጋዩ በአጠቃላይ እንዴት እንደተዋቀረ እንፈትሻለን።

የIaC ሙከራ፡ ከመጨረሻ እስከ መጨረሻ ሙከራዎች

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

በፒራሚዱ አናት ላይ ከመጨረሻ እስከ መጨረሻ ፈተናዎች እንቀበላለን። እነዚያ። የተለየ አገልጋይ፣ የተለየ ስክሪፕት ወይም የመሠረተ ልማት ግንባታችን የተለየ ጡብ አፈጻጸም አንፈትሽም። ብዙ ሰርቨሮች አንድ ላይ መገናኘታቸውን እናረጋግጣለን ፣የእኛ መሠረተ ልማት እንደምንጠብቀው ይሰራል። እንደ አለመታደል ሆኖ፣ በቦክስ የተዘጋጁ መፍትሄዎችን አይቼ አላውቅም፣ ምናልባት ምክንያቱም... መሠረተ ልማቱ ብዙውን ጊዜ ልዩ እና አብነት ለማድረግ እና ለሙከራ ማዕቀፍ ለመፍጠር አስቸጋሪ ነው። በውጤቱም, እያንዳንዱ ሰው የራሱን መፍትሄዎች ይፈጥራል. ጥያቄ አለ, ግን መልስ የለም. ስለዚህ, ሁሉም ነገር ከእኛ በፊት ከረጅም ጊዜ በፊት የተፈለሰፈ በመሆኑ ሌሎችን ወደ ድምጽ ሀሳቦች ለመግፋት ወይም አፍንጫዬን ለመቦርቦር ምን እንዳለ እነግርዎታለሁ.

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

ብዙ ታሪክ ያለው ፕሮጀክት። በትላልቅ ድርጅቶች ውስጥ ጥቅም ላይ ይውላል እና ምናልባት እያንዳንዳችሁ በተዘዋዋሪ መንገድ አቋርጣችኋል. አፕሊኬሽኑ ብዙ የውሂብ ጎታዎችን፣ ውህደቶችን ወዘተ ይደግፋል። መሠረተ ልማቱ ምን እንደሚመስል ማወቅ ብዙ ዶከር የተቀናጁ ፋይሎች ነው፣ እና የትኞቹ ፈተናዎች በየትኛው አካባቢ እንደሚሄዱ ማወቅ ጄንኪንስ ነው።

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

ይህ እቅድ በማዕቀፉ ውስጥ እስከሚቆይ ድረስ ለረጅም ጊዜ ሰርቷል ምርምራ ይህንን ወደ Openshift ለማዛወር አልሞከርንም። ኮንቴይነሮቹ እንደነበሩ ይቆያሉ፣ ግን የማስጀመሪያው አካባቢ ተቀይሯል (ሰላም ደረቅ በድጋሚ)።

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

የምርምር ሀሳቡ የበለጠ ሄዷል፣ እና በክፍት ፈረቃ ውስጥ መሰረተ ልማትን ወደ ኮንቴይነር እንዴት ማሰማራት እንደሚችሉ እውቀትን ለመጠቅለል የሚያስችል ኤፒቢ (ሊቻል የሚችል ፕሌይቡክ ቅርቅብ) ያለ ነገር አግኝተዋል። እነዚያ። መሠረተ ልማትን እንዴት ማሰማራት እንደሚቻል ሊደገም የሚችል፣ ሊሞከር የሚችል የእውቀት ነጥብ አለ።

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

ወደተለያየ መሠረተ ልማት እስክንገባ ድረስ ይህ ሁሉ ጥሩ ነበር፡ ዊንዶውስ ለሙከራዎች እንፈልጋለን። በውጤቱም, ምን, የት, እንዴት ማሰማራት እና መፈተሽ ዕውቀት በጄንኪን ውስጥ ነው.

መደምደሚያ

200 የመሰረተ ልማት ኮድ መስመሮችን በመሞከር የተማርኩት

መሠረተ ልማት እንደ ኮድ

  • በማጠራቀሚያው ውስጥ ኮድ.
  • የሰዎች መስተጋብር.
  • የመሠረተ ልማት ሙከራ.

የሚያያዝ

ምንጭ: hab.com

አስተያየት ያክሉ