ከስክሪፕቶች ወደ የራሳችን መድረክ፡ እንዴት በCIAN ውስጥ ልማትን በራስ ሰር እንደሰራን

ከስክሪፕቶች ወደ የራሳችን መድረክ፡ እንዴት በCIAN ውስጥ ልማትን በራስ ሰር እንደሰራን

በ RIT 2019፣ ባልደረባችን አሌክሳንደር ኮሮትኮቭ ሠራ ሪፖርት ስለ ልማት አውቶሜሽን በሲአይኤን፡ ህይወትን እና ስራን ለማቃለል የራሳችንን ኢንቴግሮ መድረክ እንጠቀማለን። የተግባሮችን የሕይወት ዑደት ይከታተላል ፣ ገንቢዎችን ከመደበኛ ስራዎች ያስታግሳል እና በምርት ውስጥ ያሉ ስህተቶችን በእጅጉ ይቀንሳል። በዚህ ልኡክ ጽሁፍ የአሌክሳንደርን ዘገባ እናሟላለን እና ከቀላል ስክሪፕቶች እንዴት እንደሄድን ክፍት ምንጭ ምርቶችን በራሳችን መድረክ በኩል በማጣመር እና የተለየ አውቶሜሽን ቡድናችን ምን እንደሚሰራ እንነግርዎታለን።
 

ዜሮ ደረጃ

"ዜሮ ደረጃ የሚባል ነገር የለም፣ እንደዚህ አይነት ነገር አላውቅም"
ማስተር ሺፉ ከ "ኩንግ ፉ ፓንዳ" ፊልም

በCIAN ውስጥ አውቶሜትድ ሼል የጀመረው ኩባንያው ከተመሰረተ ከ14 ዓመታት በኋላ ነው። በዚያን ጊዜ በልማት ቡድን ውስጥ 35 ሰዎች ነበሩ። ለማመን ይከብዳል አይደል? እርግጥ ነው፣ አውቶሜሽን በተወሰነ መልኩ ነበር፣ ነገር ግን ለቀጣይ ውህደት እና ኮድ አቅርቦት የተለየ አቅጣጫ በ2015 መፈጠር ጀመረ። 

በዚያን ጊዜ በሊኑክስ/ዊንዶውስ ሰርቨሮች ላይ የተዘረጋው የፓይዘን፣ ሲ# እና ፒኤችፒ ግዙፍ ሞኖሊት ነበረን። ይህንን ጭራቅ ለማሰማራት፣ በእጅ የምንሮጥባቸው የስክሪፕቶች ስብስብ ነበረን። ቅርንጫፎችን በማዋሃድ፣ ጉድለቶችን በማረም እና “በግንባታው ውስጥ ካሉት የተለያዩ ተግባራት” ጋር በመገንባት ግጭቶች ምክንያት ህመም እና ስቃይ የሚያመጣ የሞኖሊት ጉባኤም ነበር። ቀለል ያለ ሂደት ይህንን ይመስላል።

ከስክሪፕቶች ወደ የራሳችን መድረክ፡ እንዴት በCIAN ውስጥ ልማትን በራስ ሰር እንደሰራን

በዚህ ደስተኛ አልነበርንም፣ እና ሊደገም የሚችል፣ አውቶሜትድ እና ማስተዳደር የሚችል የግንባታ እና የማሰማራት ሂደት መገንባት እንፈልጋለን። ለዚህም የ CI / ሲዲ ስርዓት ያስፈልገናል, እና ከነሱ ጋር ስለሰራን እና ሁለቱም በተግባሮች ስብስብ ውስጥ ስለሚስማሙ በነፃው የ Teamcity እና የጄንኪንስ ስሪት መካከል መረጥን. Teamcityን እንደ የቅርብ ጊዜ ምርት መርጠናል። በዛን ጊዜ, እኛ ገና ማይክሮ ሰርቪስ አርክቴክቸር አልተጠቀምንም እና ብዙ ስራዎችን እና ፕሮጀክቶችን አልጠበቅንም.

ወደ የራሳችን ስርዓት ሃሳብ ደርሰናል።

የTeamcity ትግበራ የተወገደው የእጅ ሥራው ክፍል ብቻ ነው፡ የቀረው የፑል ጥያቄዎችን መፍጠር፣ ጉዳዮችን በጅራ ደረጃ ማስተዋወቅ እና የሚለቀቁ ጉዳዮችን መምረጥ ነው። የTeamcity ሲስተም ከዚህ በኋላ መቋቋም አልቻለም። ተጨማሪ አውቶማቲክ መንገድን መምረጥ አስፈላጊ ነበር. በ Teamcity ውስጥ ከስክሪፕቶች ጋር ለመስራት ወይም ወደ የሶስተኛ ወገን አውቶማቲክ ሲስተም ለመቀየር አማራጮችን ተመልክተናል። ግን በመጨረሻ የራሳችን መፍትሄ ብቻ የሚያቀርበውን ከፍተኛ ተለዋዋጭነት እንደሚያስፈልገን ወስነናል. Integro ተብሎ የሚጠራው የውስጣዊ አውቶሜሽን ሲስተም የመጀመሪያ ስሪት በዚህ መንገድ ታየ።

Teamcity የግንባታ እና የማሰማራት ሂደቶችን በማስጀመር ደረጃ ላይ ከአውቶሜትሽን ጋር ይሰራል፣ ኢንቴግሮ ግን በከፍተኛ ደረጃ የእድገት ሂደቶችን በራስ-ሰር ላይ አተኩሯል። ስራን በጂራ ውስጥ ካሉ ጉዳዮች ጋር በ Bitbucket ውስጥ ካለው ተያያዥ ምንጭ ኮድ ሂደት ጋር ማጣመር አስፈላጊ ነበር። በዚህ ደረጃ ኢንቴግሮ ከተለያዩ ዓይነቶች ስራዎች ጋር ለመስራት የራሱ የስራ ሂደቶች መኖር ጀመረ. 

በቢዝነስ ሂደቶች ውስጥ በራስ-ሰር መጨመር ምክንያት በቡድን ውስጥ ያሉ የፕሮጀክቶች እና ሩጫዎች ብዛት ጨምሯል። ስለዚህ አዲስ ችግር መጣ አንድ ነፃ የቡድን ከተማ ምሳሌ በቂ አልነበረም (3 ወኪሎች እና 100 ፕሮጀክቶች) ሌላ ምሳሌ ጨምረናል (3 ተጨማሪ ወኪሎች እና 100 ፕሮጄክቶች) ፣ ከዚያ ሌላ። በውጤቱም፣ ለማስተዳደር አስቸጋሪ በሆነው የበርካታ ዘለላዎች ስርዓት አበቃን።

ከስክሪፕቶች ወደ የራሳችን መድረክ፡ እንዴት በCIAN ውስጥ ልማትን በራስ ሰር እንደሰራን

የ 4 ኛ ምሳሌ ጥያቄ ሲነሳ, እንደዚህ አይነት መኖር መቀጠል እንደማንችል ተገነዘብን, ምክንያቱም 4 አጋጣሚዎችን ለመደገፍ አጠቃላይ ወጪዎች በማንኛውም ገደብ ውስጥ አልነበሩም. የሚከፈልበት Teamcity ስለመግዛት ወይም ነጻ ጄንኪንስ ስለመምረጥ ጥያቄው ተነሳ። በምሳሌዎች እና አውቶሜሽን እቅዶች ላይ ስሌቶችን አድርገን በጄንኪንስ እንደምንኖር ወሰንን። ከጥቂት ሳምንታት በኋላ ወደ ጄንኪንስ ተዛወርን እና ብዙ የቡድን ከተማ አጋጣሚዎችን ከማቆየት ጋር የተያያዘውን አንዳንድ የራስ ምታት አስወግደናል። ስለዚህ ኢንቴግሮን በማዳበር እና ጄንኪንስን ለራሳችን በማበጀት ላይ ማተኮር ችለናል።

በመሠረታዊ አውቶማቲክ እድገት (የጎትት ጥያቄዎችን በራስ-ሰር በመፍጠር ፣ የኮድ ሽፋን እና ሌሎች ቼኮችን በማሰባሰብ እና በማተም) በተቻለ መጠን በእጅ የሚለቀቁትን ለመተው እና ይህንን ሾል ለሮቦቶች ለመስጠት ከፍተኛ ፍላጎት አለ። በተጨማሪም ኩባንያው በኩባንያው ውስጥ ወደ ማይክሮ ሰርቪስ መንቀሳቀስ ጀመረ, ይህም በተደጋጋሚ መልቀቂያ ያስፈልገዋል, እና እርስ በእርሳቸው ተለይተው. ቀስ በቀስ ወደ ማይክሮ አገልግሎቶቻችን አውቶማቲክ ልቀቶች የመጣነው በዚህ መንገድ ነው (በአሁኑ ጊዜ በሂደቱ ውስብስብነት ሞኖሊትን በእጅ እየለቀቅን ነው።) ግን ፣ እንደተለመደው ፣ አዲስ ውስብስብነት ተነሳ። 

ሙከራን በራስ-ሰር እናደርጋለን

ከስክሪፕቶች ወደ የራሳችን መድረክ፡ እንዴት በCIAN ውስጥ ልማትን በራስ ሰር እንደሰራን

በተለቀቁት አውቶሜትድ ምክንያት፣ አንዳንድ የፍተሻ ደረጃዎችን በመዝለል የእድገት ሂደቶች ተፋጥነዋል። እና ይህ ለጊዜያዊ ጥራት ማጣት ምክንያት ሆኗል. ቀላል ይመስላል, ነገር ግን ልቀቶችን ከማፋጠን ጋር, የምርት ልማት ዘዴን መለወጥ አስፈላጊ ነበር. ሾለ ለሙከራ አውቶማቲክ ማሰብ ፣የግል ሀላፊነት (እዚህ የምንናገረው ሾለ “ጭንቅላቱ ውስጥ ያለውን ሀሳብ መቀበል” ነው ፣ የገንዘብ ቅጣት ሳይሆን) ሾለ ገንቢው የተለቀቀው ኮድ እና በውስጡ ያሉ ስህተቶች እንዲሁም ውሳኔው በራስ ሰር በማሰማራት ተግባርን መልቀቅ/አለመለቀቅ። 

የጥራት ችግሮችን በማስወገድ ወደ ሁለት አስፈላጊ ውሳኔዎች ደርሰናል-የካናሪ ምርመራ ማካሄድ ጀመርን እና የስህተት ዳራውን ከመጠን በላይ ምላሽ በመስጠት አውቶማቲክ ቁጥጥርን አስተዋውቋል። የመጀመሪያው መፍትሔ ኮዱ ሙሉ በሙሉ ወደ ምርት ከመውጣቱ በፊት ግልጽ የሆኑ ስህተቶችን ለማግኘት አስችሏል, ሁለተኛው በምርት ውስጥ ላሉት ችግሮች የምላሽ ጊዜን ቀንሷል. ስህተቶች በእርግጥ ይከሰታሉ ነገርግን አብዛኛውን ጊዜያችንን እና ጥረታችንን የምናጠፋው እነሱን ለማስተካከል ሳይሆን እነሱን በመቀነስ ላይ ነው። 

አውቶሜሽን ቡድን

በአሁኑ ጊዜ የ130 ገንቢዎች ሰራተኞች አሉን እና እንቀጥላለን ማደግ. ቡድኑ ለቀጣይ ውህደት እና ኮድ መላክ (ከዚህ በኋላ ዲፕሎይ እና ውህደት ወይም ዲአይ ቡድን) 7 ሰዎችን ያቀፈ እና በ 2 አቅጣጫዎች ይሰራል - የ Integro አውቶሜሽን መድረክ እና DevOps ልማት። 

DevOps ለሲአይኤን ሳይት የዴቭ/ቤታ አካባቢ፣ Integro አካባቢ፣ ገንቢዎች ችግሮችን እንዲፈቱ ያግዛል እና አካባቢዎችን ለመለካት አዳዲስ አቀራረቦችን ያዘጋጃል። የኢንቴግሮ ልማት አቅጣጫ ሁለቱንም ኢንቴግሮን እና ተዛማጅ አገልግሎቶችን ይመለከታል ፣ ለምሳሌ ፣ ለጄንኪንስ ፣ ጂራ ፣ ኮንፍሉንስ ተሰኪዎች እና እንዲሁም ለልማት ቡድኖች ረዳት መገልገያዎችን እና መተግበሪያዎችን ያዘጋጃል። 

የዲአይ ቡድን ከፕላትፎርም ቡድን ጋር በትብብር ይሰራል፣ ይህም የውስጥ አርክቴክቸርን፣ ቤተመጻሕፍትን እና የልማት አቀራረቦችን ያዳብራል። በተመሳሳይ ጊዜ፣ በCIAN ውስጥ ያለ ማንኛውም ገንቢ ለአውቶሜሽን አስተዋፅዖ ማድረግ ይችላል፣ ለምሳሌ፣ የቡድኑን ፍላጎት ለማሟላት ማይክሮ አውቶሜትሽን መስራት ወይም አውቶሜሽን እንዴት የተሻለ ማድረግ እንደሚቻል ጥሩ ሀሳብ ማጋራት።

የንብርብር ኬክ አውቶሜሽን በ CIAN

ከስክሪፕቶች ወደ የራሳችን መድረክ፡ እንዴት በCIAN ውስጥ ልማትን በራስ ሰር እንደሰራን

በአውቶሜሽን ውስጥ የተካተቱ ሁሉም ስርዓቶች በበርካታ ንብርብሮች ሊከፈሉ ይችላሉ-

  1. ውጫዊ ስርዓቶች (Jira, Bitbucket, ወዘተ). የልማት ቡድኖች አብረዋቸው ይሠራሉ.
  2. Integro መድረክ. ብዙውን ጊዜ ገንቢዎች ከእሱ ጋር በቀጥታ አይሰሩም, ነገር ግን ሁሉንም አውቶማቲክ ስራዎች እንዲሰሩ የሚያደርግ ነው.
  3. የማድረስ፣ የኦርኬስትራ እና የግኝት አገልግሎቶች (ለምሳሌ ጄክኒንስ፣ ቆንስል፣ ዘላን)። በእነሱ እርዳታ ኮድን በአገልጋዮች ላይ እናሰማራለን እና አገልግሎቶቹ እርስ በእርስ መስራታቸውን እናረጋግጣለን።
  4. አካላዊ ንብርብር (ሰርቨሮች፣ OS፣ ተዛማጅ ሶፍትዌር)። የእኛ ኮድ በዚህ ደረጃ ይሰራል። ይህ አካላዊ አገልጋይ ወይም ምናባዊ (LXC፣ KVM፣ Docker) ሊሆን ይችላል።

በዚህ ፅንሰ-ሀሳብ መሰረት፣ የኃላፊነት ቦታዎችን በዲአይ ቡድን ውስጥ እናካፍላለን። የመጀመሪያዎቹ ሁለት ደረጃዎች የኢንቴግሮ ልማት አቅጣጫ የኃላፊነት ቦታ ላይ ናቸው ፣ እና የመጨረሻዎቹ ሁለት ደረጃዎች ቀድሞውኑ በዴቭኦፕስ የኃላፊነት ቦታ ላይ ናቸው። እርስ በርሳችን ቅርብ ስለሆንን እና እውቀትን እና ልምድን ያለማቋረጥ ስለምንለዋወጥ ይህ መለያየት በተግባሮች ላይ እንድናተኩር ያስችለናል እና መስተጋብር ውስጥ ጣልቃ አይገባም።

ያልተነካ

ኢንቴግሮ ላይ እናተኩር እና በቴክኖሎጂ ቁልል እንጀምር፡-

  • CentOS 7
  • ዶከር + ዘላለማዊ + ቆንስል + ቮልት።
  • Java 11 (የቀድሞው ኢንቴግሮ ሞኖሊት በጃቫ 8 ላይ ይቀራል)
  • የፀደይ ቡት 2.X + ስፕሪንግ ክላውድ ውቅረት
  • PostgreSql 11
  • RabbitMQ 
  • Apache Ignite
  • ካሙንዳ (የተከተተ)
  • ግራፋና + ግራፋይት + ፕሮሜቴየስ + ጄገር + ኤልኬ
  • የድር ዩአይ፡ ምላሽ (CSR) + MobX
  • ኤስኤስኦ፡ ኪሎክ

ምንም እንኳን በጥንታዊ የኢንቴግሮ ስሪት ሞኖሊት መልክ ያለን ውርስ ቢኖርም የማይክሮ አገልግሎት ልማት መርህን እንከተላለን። እያንዳንዱ ማይክሮ ሰርቪስ በራሱ Docker ኮንቴይነር ውስጥ ይሰራል፣ እና አገልግሎቶቹ በHTTP ጥያቄዎች እና RabbitMQ መልዕክቶች ይገናኛሉ። ማይክሮ ሰርቪስ በቆንስል በኩል ይገናኛሉ እና ጥያቄ ያቀርቡለታል፣ ፍቃድ በ SSO (Keycloak, OAuth 2/OpenID Connect) በኩል በማለፍ።

ከስክሪፕቶች ወደ የራሳችን መድረክ፡ እንዴት በCIAN ውስጥ ልማትን በራስ ሰር እንደሰራን

እንደ እውነተኛ ህይወት ምሳሌ፣ የሚከተሉትን ደረጃዎች የያዘውን ከጄንኪንስ ጋር መገናኘትን አስቡበት፡

  1. የስራ ፍሰት አስተዳደር ማይክሮ ሰርቪስ (ከዚህ በኋላ ፍሰት ማይክሮ አገልግሎት ተብሎ የሚጠራው) በጄንኪንስ ውስጥ ግንባታን ማካሄድ ይፈልጋል። ይህንን ለማድረግ ከጄንኪንስ ጋር ለመዋሃድ የማይክሮ ሰርቪሱን IP:PORT ለማግኘት ቆንስል ይጠቀማል (ከዚህ በኋላ ጄንኪንስ ማይክሮ ሰርቪስ ይባላል) እና በጄንኪንስ ውስጥ ግንባታውን እንዲጀምር ያልተመሳሰለ ጥያቄ ይልካል።
  2. ጥያቄ ከተቀበለ በኋላ የጄንኪንስ ማይክሮ ሰርቪስ ያመነጫል እና ከሥራ መታወቂያ ጋር ምላሽ ይሰጣል, ከዚያም የሥራውን ውጤት ለመለየት ጥቅም ላይ ሊውል ይችላል. በተመሳሳይ ጊዜ፣ በ REST API ጥሪ በኩል በጄንኪንስ ውስጥ ያለውን ግንባታ ያስነሳል።
  3. ጄንኪንስ ግንባታውን ያከናውናል እና ከተጠናቀቀ በኋላ የድር መንጠቆውን ከአፈፃፀም ውጤቶቹ ጋር ወደ ጄንኪንስ ማይክሮ አገልግሎት ይልካል።
  4. የጄንኪንስ ማይክሮ ሰርቪስ የድር መንጠቆውን ከተቀበለ በኋላ ስለ ጥያቄው ሂደት መጠናቀቅ መልእክት ያመነጫል እና የማስፈጸሚያ ውጤቱን ከእሱ ጋር አያይዘዋል። የመነጨው መልእክት ወደ RabbitMQ ወረፋ ይላካል።
  5. በ RabbitMQ በኩል፣ የታተመው መልእክት ከጥያቄው እና ከተቀበለው መልእክት የስራ መታወቂያውን በማዛመድ ተግባሩን ስለማስኬድ ውጤቱን የሚማረው ፍሰት ማይክሮ ሰርቪስ ይደርሳል።

አሁን ወደ 30 የሚጠጉ ጥቃቅን አገልግሎቶች አሉን ፣ እነሱም ወደ ብዙ ቡድኖች ሊከፈሉ ይችላሉ ።

  1. የማዋቀር አስተዳደር.
  2. መረጃ እና ከተጠቃሚዎች ጋር መስተጋብር (መልእክተኞች, ደብዳቤ).
  3. ከምንጭ ኮድ ጋር በመስራት ላይ።
  4. ከማሰማሪያ መሳሪያዎች (ጄንኪንስ፣ ዘላለማዊ፣ ቆንስላ፣ ወዘተ) ጋር መቀላቀል።
  5. ክትትል (ልቀቶች, ስህተቶች, ወዘተ).
  6. የድር መገልገያዎች (የሙከራ አካባቢዎችን ለማስተዳደር፣ ስታቲስቲክስ ለመሰብሰብ፣ ወዘተ.)
  7. ከተግባር ተቆጣጣሪዎች እና ተመሳሳይ ስርዓቶች ጋር ውህደት.
  8. ለተለያዩ ተግባራት የስራ ፍሰት አስተዳደር.

የስራ ፍሰት ተግባራት

ኢንቴግሮ ከተግባር የሕይወት ዑደት ጋር የተያያዙ እንቅስቃሴዎችን በራስ-ሰር ያደርጋል። በቀላል አገላለጽ፣ የአንድ ተግባር የሕይወት ዑደት በጂራ ውስጥ የአንድ ተግባር የሥራ ሂደት እንደሆነ ይገነዘባል። የእኛ የእድገት ሂደቶች በፕሮጀክቱ ፣ በተግባሩ አይነት እና በአንድ የተወሰነ ተግባር ውስጥ በተመረጡት አማራጮች ላይ በመመስረት በርካታ የስራ ፍሰት ልዩነቶች አሏቸው። 

ብዙ ጊዜ የምንጠቀመውን የስራ ሂደት እንመልከት፡-

ከስክሪፕቶች ወደ የራሳችን መድረክ፡ እንዴት በCIAN ውስጥ ልማትን በራስ ሰር እንደሰራን

በሥዕላዊ መግለጫው ላይ ማርሽ ሽግግር በራስ-ሰር በ Integro እንደሚጠራ ያሳያል ፣ የሰው ምስል ደግሞ ሽግግር በሰው እጅ እንደሚጠራ ያሳያል ። በዚህ የስራ ሂደት ውስጥ አንድ ተግባር ሊወስድባቸው የሚችላቸውን በርካታ መንገዶችን እንመልከት።

ሙሉ በሙሉ በDEV+BETA ላይ ያለ የካናሪ ሙከራዎች (ብዙውን ጊዜ ሞኖሊት የምንለቀው በዚህ መንገድ ነው)

ከስክሪፕቶች ወደ የራሳችን መድረክ፡ እንዴት በCIAN ውስጥ ልማትን በራስ ሰር እንደሰራን

ሌሎች የሽግግር ጥምሮች ሊኖሩ ይችላሉ. አንዳንድ ጊዜ ችግር የሚወስደው መንገድ በጂራ ውስጥ ባሉ አማራጮች ሊመረጥ ይችላል።

የተግባር እንቅስቃሴ

አንድ ተግባር በ"DEV Testing + Canary Tests" የስራ ሂደት ውስጥ ሲዘዋወር የሚከናወኑትን ዋና ዋና እርምጃዎችን እንመልከት፡-

1. ገንቢው ወይም PM ተግባሩን ይፈጥራል.

2. ገንቢው ሥራውን ወደ ሥራ ይወስዳል. ከተጠናቀቀ በኋላ ወደ ግምገማ ሁኔታ ይቀየራል።

3. ጂራ ዌብሆክን ወደ ጂራ ማይክሮ አገልግሎት (ከጂራ ጋር የመዋሃድ ሃላፊነት ያለው) ይልካል።

4. የጂራ ማይክሮ ሰርቪስ የስራ ሂደትን ለማስጀመር ለ Flow አገልግሎት (ለውስጣዊ የስራ ፍሰቶች ኃላፊነት ያለው) ጥያቄ ይልካል.

5. የፍሰት አገልግሎት ውስጥ፡-

  • ገምጋሚዎች ለተግባሩ ተመድበዋል (ሾለ ተጠቃሚዎች ሁሉንም ነገር የሚያውቅ የተጠቃሚዎች ማይክሮ አገልግሎት + Jira ማይክሮ አገልግሎት)።
  • በምንጩ ማይክሮ ሰርቪስ በኩል (ሾለ ማከማቻዎች እና ቅርንጫፎች ያውቃል ነገር ግን ከኮዱ ጋር አይሰራም) የኛን ጉዳይ ቅርንጫፍ ያካተቱ ማከማቻዎች ፍለጋ ይካሄዳል (ፍለጋውን ለማቃለል የቅርንጫፉ ስም ከጉዳዩ ጋር ይጣጣማል) ቁጥር በጂራ)። ብዙውን ጊዜ አንድ ተግባር በአንድ ማከማቻ ውስጥ አንድ ቅርንጫፍ ብቻ አለው ፣ ይህ የማሰማራቱን ወረፋ አያያዝ ቀላል ያደርገዋል እና በማከማቻዎች መካከል ያለውን ግንኙነት ይቀንሳል።
  • ለእያንዳንዱ የተገኘ ቅርንጫፍ የሚከተለው የእርምጃዎች ቅደም ተከተል ይከናወናል

    i) ዋናውን ቅርንጫፍ ማዘመን (ከኮድ ጋር ለመስራት Git microservice)።
    ii) ቅርንጫፉ በገንቢው (Bitbucket microservice) ለውጦች ታግዷል።
    iii) ለዚህ ቅርንጫፍ (Bitbucket ማይክሮ አገልግሎት) የ Pull ጥያቄ ተፈጥሯል።
    iv) ስለ አዲስ የፑል ጥያቄ መልእክት ወደ ገንቢ ቻቶች ተልኳል (ከማሳወቂያዎች ጋር ለመስራት ማይክሮ አገልግሎትን ያሳውቁ)።
    v) ስራዎችን መገንባት፣ መሞከር እና ማሰማራት በDEV (ጄንኪንስ ማይክሮ ሰርቪስ ከጄንኪንስ ጋር ለመስራት) ተጀምሯል።
    vi) ሁሉም የቀደሙት እርምጃዎች በተሳካ ሁኔታ ከተጠናቀቁ ኢንቴግሮ ማጽደቁን በ Pull Request (Bitbucket ማይክሮ አገልግሎት) ውስጥ ያስቀምጣል።

  • Integro ከተመረጡት ገምጋሚዎች የፑል ጥያቄን ማጽደቅን ይጠብቃል።
  • ሁሉም አስፈላጊ ማጽደቆች እንደደረሱ (አውቶሜትድ ሙከራዎች በአዎንታዊ መልኩ አልፈዋል) ኢንቴግሮ ተግባሩን ወደ Dev (Jira microservice) ሁኔታ ፈተና ያስተላልፋል።

6. ሞካሪዎች ስራውን ይፈትሻሉ. ምንም ችግሮች ከሌሉ, ስራው ወደ ዝግጁነት ግንባታ ሁኔታ ተላልፏል.

7. ኢንቴግሮ ስራው ለመልቀቅ ዝግጁ መሆኑን "ያያል" እና በካናሪ ሁነታ (ጄንኪንስ ማይክሮ ሰርቪስ) ማሰማራት ይጀምራል. ለመልቀቅ ዝግጁነት የሚወሰነው በደንቦች ስብስብ ነው። ለምሳሌ, ስራው በሚፈለገው ደረጃ ላይ ነው, በሌሎች ተግባራት ላይ ምንም መቆለፊያዎች የሉም, በአሁኑ ጊዜ የዚህ ማይክሮ አገልግሎት ገባሪ ሰቀላዎች የሉም, ወዘተ.

8. ተግባሩ ወደ ካናሪ ሁኔታ (ጂራ ማይክሮ ሰርቪስ) ተላልፏል.

9. ጄንኪንስ በካናሪ ሁነታ (በተለምዶ 1-3 አጋጣሚዎች) በኖማድ በኩል የማሰማራት ተግባር ይጀምራል እና የመልቀቂያ ክትትል አገልግሎትን (DeployWatch microservice) ስለ ማሰማራቱ ያሳውቃል።

10. የ DeployWatch ማይክሮ ሰርቪስ የስህተቱን ዳራ ይሰበስባል እና አስፈላጊ ከሆነ ምላሽ ይሰጣል። የስህተቱ ዳራ ከበለጠ (የጀርባ መደበኛው በራስ-ሰር ይሰላል)፣ ገንቢዎች በ Notify microservice በኩል ይነገራቸዋል። ከ 5 ደቂቃዎች በኋላ ገንቢው ምላሽ ካልሰጠ (ተመለስ ወይም ቆይ የሚለውን ጠቅ ያድርጉ) ከዚያ የካናሪ ምሳሌዎችን በራስ-ሰር መልሶ ማቋቋም ይጀምራል። ከበስተጀርባው የማይበልጥ ከሆነ ገንቢው ወደ ምርት ማሰማራትን (በዩአይዩ ውስጥ ያለውን አዝራር ጠቅ በማድረግ) በእጅ ማስጀመር አለበት። በ60 ደቂቃ ውስጥ ገንቢው ወደ ምርት ማሰማራቱን ካልጀመረ፣ ከዚያም የካናሪ አጋጣሚዎች ለደህንነት ሲባል ወደ ኋላ ይመለሳሉ።

11. ወደ ምርት ማሰማራት ከጀመረ በኋላ፡-

  • ተግባሩ ወደ የምርት ሁኔታ (ጂራ ማይክሮ ሰርቪስ) ተላልፏል.
  • የጄንኪንስ ማይክሮ ሰርቪስ የማሰማራት ሂደቱን ይጀምራል እና ሾለ ማሰማራቱ ለDeployWatch ማይክሮ አገልግሎት ያሳውቃል።
  • የDeployWatch ማይክሮ አገልግሎት በምርት ላይ ያሉ ሁሉም ኮንቴይነሮች የተዘመኑ መሆናቸውን ይፈትሻል (ሁሉም ያልተዘመኑ ሁኔታዎች ነበሩ)።
  • በ Notify microservice በኩል ሾለ ማሰማራቱ ውጤቶች ማሳወቂያ ወደ ምርት ይላካል።

12. የተሳሳተ የማይክሮ አገልግሎት ባህሪ ከተገኘ ገንቢዎች አንድን ስራ ከምርት ወደ ኋላ መመለስ ለመጀመር 30 ደቂቃዎች ይኖራቸዋል። ከዚህ ጊዜ በኋላ ተግባሩ በራስ-ሰር ወደ ዋና (ጂት ማይክሮ ሰርቪስ) ይቀላቀላል።

13. ከተሳካ ወደ ማስተር ከተዋሃዱ በኋላ የተግባር ሁኔታ ወደ ዝግ (ጂራ ማይክሮ ሰርቪስ) ይቀየራል።

ስዕላዊ መግለጫው ሙሉ በሙሉ ዝርዝር እንደሆነ አያስመስልም (በእውነቱ ተጨማሪ እርምጃዎችም አሉ) ፣ ግን ወደ ሂደቶች የመዋሃድ ደረጃን ለመገምገም ያስችልዎታል። ይህ እቅድ ተስማሚ ነው ብለን አናስበውም እና በራስ ሰር የመልቀቂያ እና የማሰማራት ድጋፍ ሂደቶችን እያሻሻልን ነው።

የሚቀጥለው ምንድነው

ለአውቶሜሽን ልማት ትልቅ እቅዶች አሉን ለምሳሌ በሞኖሊክ ልቀቶች ወቅት በእጅ የሚሰሩ ስራዎችን ማስወገድ፣ በራስ ሰር በሚሰማሩበት ወቅት ክትትልን ማሻሻል እና ከገንቢዎች ጋር ያለውን ግንኙነት ማሻሻል።

ግን ለአሁኑ እዚህ እናብቃ። በአውቶሜሽን ግምገማ ውስጥ ብዙ ርዕሰ ጉዳዮችን በላዩን ሸፍነናል፣ አንዳንዶቹ ጨርሶ አልተነኩም፣ ስለዚህ ጥያቄዎችን ለመመለስ ደስተኞች እንሆናለን። በዝርዝር ምን እንደሚሸፍን ጥቆማዎችን እየጠበቅን ነው, በአስተያየቶቹ ውስጥ ይጻፉ.

ምንጭ: hab.com

አስተያየት ያክሉ