በ werf ውስጥ ለ monorepo እና multirepo ድጋፍ እና የ Docker መዝገብ ቤት ከእሱ ጋር ምን አገናኘው?

በ werf ውስጥ ለ monorepo እና multirepo ድጋፍ እና የ Docker መዝገብ ቤት ከእሱ ጋር ምን አገናኘው?

የአንድ ሞኖ ማከማቻ ርዕስ ከአንድ ጊዜ በላይ ተብራርቷል እና እንደ አንድ ደንብ በጣም ንቁ ውዝግብ ያስከትላል. በመፍጠር werf የመተግበሪያ ኮድን ከጂት እስከ ዶከር ምስሎችን (ከዚያ ወደ ኩበርኔትስ ለማድረስ) የመገንባት ሂደትን ለማሻሻል የተነደፈ ክፍት ምንጭ መሳሪያ እንደመሆኑ የትኛው ምርጫ የተሻለ እንደሆነ ብዙ አናስብም። ለእኛ, ለተለያዩ አስተያየቶች ደጋፊዎች አስፈላጊ የሆኑትን ሁሉ ማቅረብ ቀዳሚ ነው (ይህ ከጤነኛ አስተሳሰብ ጋር የማይቃረን ከሆነ).

የ werf የቅርብ ጊዜ የሞኖ-ሪፖ ድጋፍ ለዚህ ጥሩ ምሳሌ ነው። ግን በመጀመሪያ ፣ ይህ ድጋፍ በአጠቃላይ werf ከመጠቀም ጋር እንዴት እንደሚዛመድ እና የ Docker መዝገብ ቤት ከሱ ጋር ምን እንደሚያገናኘው እንወቅ ...

ጉዳዮች

እስቲ እንዲህ ያለ ሁኔታን እናስብ። ኩባንያው በገለልተኛ ፕሮጀክቶች ላይ የሚሰሩ ብዙ የልማት ቡድኖች አሉት. አብዛኛዎቹ አፕሊኬሽኖች በ Kubernetes ላይ ስለሚሰሩ በኮንቴይነር የተያዙ ናቸው። መያዣዎችን, ምስሎችን ለማከማቸት, መዝገብ ቤት (መዝገብ) ያስፈልግዎታል. እንደ መዝገብ ቤት፣ ኩባንያው Docker Hubን ከአንድ መለያ ጋር ይጠቀማል COMPANY. ከአብዛኛዎቹ የምንጭ ኮድ ማከማቻ ስርዓቶች ጋር ተመሳሳይ፣ Docker Hub የጎጆ ማከማቻ ተዋረድን አይፈቅድም።, እንደ COMPANY/PROJECT/IMAGE. እንደዚያ ከሆነ… ለእያንዳንዱ ፕሮጀክት የተለየ መለያ ሳይፈጥሩ በዚህ ገደብ ሞኖሊቲክ ያልሆኑ አፕሊኬሽኖችን እንዴት በመዝገብ ውስጥ ማከማቸት ይችላሉ?

በ werf ውስጥ ለ monorepo እና multirepo ድጋፍ እና የ Docker መዝገብ ቤት ከእሱ ጋር ምን አገናኘው?

ምናልባት, የተገለፀው ሁኔታ ለአንድ ሰው አስቀድሞ የታወቀ ነው, ነገር ግን በአጠቃላይ የመተግበሪያ ማከማቻን የማደራጀት ጉዳይን እናስብ, ማለትም. ከላይ ያለውን ምሳሌ እና Docker Hub ሳይጠቅሱ.

መፍትሄዎች

ማመልከቻው ከሆነ ሞኖሊቲክ, በአንድ ምስል ውስጥ ይመጣል, ከዚያ ምንም ጥያቄዎች የሉም እና በቀላሉ ምስሎቹን ወደ ፕሮጀክቱ መያዣ መዝገብ እናስቀምጣለን.

አፕሊኬሽኑ እንደ ብዙ አካላት ሲቀርብ፣ ጥቃቅን አገልግሎቶች, ከዚያም የተወሰነ አቀራረብ ያስፈልጋል. ሁለት ምስሎችን ባቀፈ በተለመደው የድር መተግበሪያ ምሳሌ ላይ፡- frontend и backend - ሊሆኑ የሚችሉ አማራጮች-

  1. ምስሎችን በተለየ የጎጆ ማከማቻዎች ውስጥ ያከማቹ፡

    በ werf ውስጥ ለ monorepo እና multirepo ድጋፍ እና የ Docker መዝገብ ቤት ከእሱ ጋር ምን አገናኘው?

  2. ሁሉንም ነገር በአንድ ማከማቻ ውስጥ ያከማቹ እና የምስሉን ስም በመለያው ውስጥ ያስቡበት ፣ ለምሳሌ ፣ እንደሚከተለው

    በ werf ውስጥ ለ monorepo እና multirepo ድጋፍ እና የ Docker መዝገብ ቤት ከእሱ ጋር ምን አገናኘው?

NB: በእውነቱ ፣ በተለያዩ ማከማቻዎች ውስጥ በማስቀመጥ ሌላ አማራጭ አለ ፣ PROJECT-frontend и PROJECT-backend, ነገር ግን በተጠቃሚዎች መካከል ባለው የድጋፍ, የመደራጀት እና የመብት ስርጭት ውስብስብነት ምክንያት አንመለከተውም.

werf ድጋፍ

መጀመሪያ ላይ፣ ዌርፍ እራሱን ለተከማቸ ማከማቻዎች ብቻ ወስኗል - እንደ እድል ሆኖ፣ አብዛኛዎቹ መዝገቦች ይህንን ባህሪ ይደግፋሉ። ከስሪት ጀምሮ v1.0.4-አልፋ.3, በውስጡ መዝገቦች ጋር ተጨማሪ ሥራ መክተቻ አይደገፍም።, እና Docker Hub ከእነዚህ ውስጥ አንዱ ነው. ከዚያን ጊዜ ጀምሮ ተጠቃሚው የመተግበሪያውን ምስሎች እንዴት ማከማቸት እንዳለበት ምርጫ አለው.

ትግበራ በምርጫ ስር ይገኛል። --images-repo-mode=multirepo|monorepo (ነባሪ multirepo፣ ማለትም እ.ኤ.አ. በጎጆ ማከማቻዎች ውስጥ ማከማቻ). ምስሎች በመመዝገቢያ ውስጥ የተከማቹበትን ቅጦች ይገልፃል. መሰረታዊ ትዕዛዞችን ሲጠቀሙ የሚፈለገውን ሁነታ መምረጥ በቂ ነው, እና ሁሉም ነገር ሳይለወጥ ይቀራል.

ምክንያቱም አብዛኞቹ werf አማራጮች ሊዘጋጁ ይችላሉ የአካባቢ ተለዋዋጮች, በ CI / ሲዲ ሲስተሞች ውስጥ የማከማቻ ሁነታው አብዛኛውን ጊዜ ለጠቅላላው ፕሮጀክት በአለምአቀፍ ደረጃ ለማዘጋጀት ቀላል ነው. ለምሳሌ, በ GitLab ሁኔታ ልክ በፕሮጀክት ቅንጅቶች ውስጥ የአካባቢ ተለዋዋጭ ያክሉ ቅንብሮች -> CI / ሲዲ -> ተለዋዋጮች፡- WERF_IMAGES_REPO_MODE: multirepo|monorepo.

ምስሎችን ስለማተም እና መተግበሪያዎችን ስለመልቀቅ ከተነጋገርን (ስለእነዚህ ሂደቶች በሚመለከታቸው የሰነድ መጣጥፎች ውስጥ በዝርዝር ማንበብ ይችላሉ- የማተም ሂደት и ሂደት ማሰማራት), ከዚያ ሁነታው ከምስሉ ጋር መስራት የሚችሉትን አብነት ብቻ ይወስናል.

ዲያቢሎስ በዝርዝሮች ውስጥ አለ።

አዲስ የማከማቻ ዘዴ ሲጨመር ልዩነቱ እና ዋናው ችግር መዝገቡን በማጽዳት ሂደት ላይ ነው (በ werf የሚደገፉ የማጽዳት ባህሪያትን ይመልከቱ የማፅዳት ሂደት).

በማጽዳት ጊዜ ዌርፍ በ Kubernetes ስብስቦች ውስጥ ጥቅም ላይ የዋሉ ምስሎችን እና በተጠቃሚው የተዋቀሩ ፖሊሲዎችን ግምት ውስጥ ያስገባል. ፖሊሲዎች መለያዎችን ወደ ስትራቴጂዎች በመከፋፈል ላይ የተመሰረቱ ናቸው. በአሁኑ ጊዜ የሚደገፉ ስልቶች፡-

  1. እንደ መለያ፣ ቅርንጫፍ እና ቁርጠኝነት ባሉ በጊት ፕሪሚቲቭስ የተገናኙ 3 ስልቶች;
  2. የዘፈቀደ ብጁ መለያዎች 1 ስትራቴጂ።

በመጨረሻው ምስል መለያዎች ውስጥ ምስሉን ስናተም ስለ መለያ ስልት መረጃ እናስቀምጣለን። ትርጉሙ ራሱ የሚባለው ነው። ሜታ መለያ - አንዳንድ ፖሊሲዎችን ተግባራዊ ለማድረግ ያስፈልጋል። ለምሳሌ ቅርንጫፍን ወይም መለያን ከ Git ማከማቻ ሲሰርዙ ተዛማጅ መሰረዝ ምክንያታዊ ነው። ጥቅም ላይ ያልዋለ በእኛ ፖሊሲዎች በከፊል የተሸፈነው ከመዝገቡ ውስጥ ያሉ ምስሎች።

በአንድ ማከማቻ ውስጥ ሲቀመጡ (monorepoበምስሉ መለያ ውስጥ፣ ከሜታ መለያ በተጨማሪ የምስሉ ስም ሊከማች ይችላል፡- PROJECT:frontend-META-TAG. እነሱን ለመለያየት ምንም የተለየ መለያ አላስተዋወቅንም ነገር ግን በሚታተምበት ጊዜ አስፈላጊውን ዋጋ በመጨረሻው ምስል መለያ ላይ ጨምረናል።

NB: በ werf ምንጭ ኮድ ውስጥ የተገለጹትን ሁሉንም ነገሮች ለመመልከት ፍላጎት ካሎት, መነሻው ሊሆን ይችላል የህዝብ ግንኙነት 1684.

በዚህ ጽሑፍ ውስጥ ለአካሄዳችን ችግሮች እና ማረጋገጫዎች የበለጠ ትኩረት አንሰጥም-ስልቶችን መለያ ስለመስጠት ፣ መረጃዎችን በመለያዎች ውስጥ ማከማቸት እና በአጠቃላይ የሕትመት ሂደት - ይህ ሁሉ በዲሚትሪ ስቶሊያሮቭ በቅርቡ ባወጣው ዘገባ ላይ በዝርዝር ተብራርቷል ።werf በኩበርኔትስ ውስጥ ለሲአይ/ሲዲ መሳሪያችን ነው።».

ለማሳጠር

ላልተሸፈኑ መዝገቦች የድጋፍ እጦት ለእኛም ሆነ ለእኛ ለሚታወቁት የዌፍ ተጠቃሚዎች የሚያግድ ነገር አልነበረም - ከሁሉም በኋላ ፣ ሁልጊዜ የተለየ የምስል መዝገብ ማሳደግ ይችላሉ (ወይም በ Google ክላውድ ውስጥ ወደ ሁኔታዊ ኮንቴይነር መዝገብ ቤት ይቀይሩ) ... ሆኖም ፣ መሣሪያው ለሠፊው የዴቭኦፕስ ማህበረሰብ ምቹ እንዲሆን እንዲህ ያለውን ገደብ ማስወገድ ምክንያታዊ ይመስላል። እሱን በመተግበር የእቃ መመዝገቢያ ማጽጃ ዘዴን እንደገና ለመሥራት ዋናውን ችግር አጋጥሞናል. አሁን ሁሉም ነገር ዝግጁ ስለሆነ ለአንድ ሰው ቀላል እንደ ሆነ መገንዘቡ ጥሩ ነው, እና እኛ (የፕሮጀክቱ ዋና ገንቢዎች እንደመሆናችን) ይህንን ባህሪ የበለጠ ለመደገፍ ምንም አይነት ችግር አይኖርብንም.

ከእኛ ጋር ይቆዩ እና በቅርቡ ስለ ሌሎች ፈጠራዎች እንነግርዎታለን werf!

PS

በብሎጋችን ላይ ያንብቡ፡-

ምንጭ: hab.com

አስተያየት ያክሉ