werf இல் monorepo மற்றும் multirepo க்கான ஆதரவு மற்றும் Docker Registryக்கும் இதற்கும் என்ன சம்பந்தம்

werf இல் monorepo மற்றும் multirepo க்கான ஆதரவு மற்றும் Docker Registryக்கும் இதற்கும் என்ன சம்பந்தம்

ஒரு மோனோபோசிட்டரியின் தலைப்பு ஒன்றுக்கு மேற்பட்ட முறை விவாதிக்கப்பட்டது மற்றும் ஒரு விதியாக, மிகவும் சுறுசுறுப்பான விவாதத்தை ஏற்படுத்துகிறது. உருவாக்குதல் வெர்ஃப் Git இலிருந்து டோக்கர் படங்களாக பயன்பாட்டுக் குறியீட்டை உருவாக்கும் செயல்முறையை மேம்படுத்த வடிவமைக்கப்பட்ட ஒரு திறந்த மூலக் கருவியாக (பின்னர் அவற்றை Kubernetes க்கு வழங்குவது), எந்த தேர்வு சிறந்தது என்பதைப் பற்றி நாங்கள் அதிகம் யோசிப்பதில்லை. எங்களைப் பொறுத்தவரை, வெவ்வேறு கருத்துக்களை ஆதரிப்பவர்களுக்கு தேவையான அனைத்தையும் வழங்குவது முதன்மையானது (இது பொது அறிவுக்கு முரணாக இல்லாவிட்டால், நிச்சயமாக).

werf இல் சமீபத்தில் அறிமுகப்படுத்தப்பட்ட மோனோ-ரெப்போ ஆதரவு இதற்கு ஒரு சிறந்த எடுத்துக்காட்டு. ஆனால் முதலில், இந்த ஆதரவு பொதுவாக werf இன் பயன்பாட்டுடன் எவ்வாறு தொடர்புடையது மற்றும் Docker Registry என்ன செய்ய வேண்டும் என்பதைக் கண்டுபிடிப்போம்.

சிக்கல்கள்

இந்த சூழ்நிலையை கற்பனை செய்வோம். நிறுவனம் சுயாதீன திட்டங்களில் பணிபுரியும் பல மேம்பாட்டுக் குழுக்களைக் கொண்டுள்ளது. பெரும்பாலான பயன்பாடுகள் Kubernetes இல் இயங்குகின்றன, அதன்படி, கொள்கலன்களாக மாற்றப்படுகின்றன. கொள்கலன்கள் மற்றும் படங்களை சேமிக்க, ஒரு பதிவு தேவை. நிறுவனம் டோக்கர் ஹப்பை ஒரே கணக்குடன் அத்தகைய பதிவேட்டில் பயன்படுத்துகிறது. COMPANY. பெரும்பாலான மூலக் குறியீடு சேமிப்பக அமைப்புகளைப் போலவே, களஞ்சியங்களின் உள்ளமை வரிசையை உருவாக்க Docker Hub உங்களை அனுமதிக்காது, போன்றவை COMPANY/PROJECT/IMAGE. இந்நிலையில்...ஒவ்வொரு திட்டத்திற்கும் தனித்தனி கணக்கை உருவாக்காமல், இந்த வரம்புடன் ஒரே மாதிரியாக இல்லாத அப்ளிகேஷன்களை பதிவேட்டில் எப்படி சேமிப்பது?

werf இல் monorepo மற்றும் multirepo க்கான ஆதரவு மற்றும் Docker Registryக்கும் இதற்கும் என்ன சம்பந்தம்

விவரிக்கப்பட்ட சூழ்நிலை ஒருவருக்கு முதலில் தெரிந்திருக்கலாம், ஆனால் பொதுவாக பயன்பாட்டு சேமிப்பகத்தை ஒழுங்கமைப்பதில் சிக்கலைப் பார்ப்போம், அதாவது. மேலே உள்ள உதாரணம் மற்றும் டோக்கர் ஹப் ஆகியவற்றைக் குறிப்பிடாமல்.

தீர்வுகள்

விண்ணப்பம் என்றால் ஒற்றைக்கல் முறையில், ஒரு படத்தில் வருகிறது, பின்னர் எந்த கேள்வியும் எழாது, நாங்கள் படங்களை வெறுமனே திட்டத்தின் கொள்கலன் பதிவேட்டில் சேமிக்கிறோம்.

ஒரு பயன்பாடு பல கூறுகளாக வழங்கப்படும் போது, நுண் சேவைகள், நீங்கள் ஒரு குறிப்பிட்ட அணுகுமுறையை தேர்வு செய்ய வேண்டும். இரண்டு படங்களைக் கொண்ட பொதுவான வலை பயன்பாட்டின் உதாரணத்தைப் பயன்படுத்துதல்: frontend и backend - சாத்தியமான விருப்பங்கள்:

  1. படங்களை தனித்தனி உள்ளமை களஞ்சியங்களில் சேமிக்கவும்:

    werf இல் monorepo மற்றும் multirepo க்கான ஆதரவு மற்றும் Docker Registryக்கும் இதற்கும் என்ன சம்பந்தம்

  2. எல்லாவற்றையும் ஒரே களஞ்சியத்தில் சேமித்து, குறிச்சொல்லில் படத்தின் பெயரைச் சேர்க்கவும், எடுத்துக்காட்டாக, பின்வருமாறு:

    werf இல் monorepo மற்றும் multirepo க்கான ஆதரவு மற்றும் Docker Registryக்கும் இதற்கும் என்ன சம்பந்தம்

NB: உண்மையில், பல்வேறு களஞ்சியங்களில் சேமிப்பதில் மற்றொரு விருப்பம் உள்ளது, PROJECT-frontend и PROJECT-backend, ஆனால் பயனர்களுக்கு இடையேயான ஆதரவு, அமைப்பு மற்றும் உரிமைகள் விநியோகம் ஆகியவற்றின் சிக்கலான தன்மை காரணமாக நாங்கள் அதைக் கருத்தில் கொள்ள மாட்டோம்.

werf ஆதரவு

ஆரம்பத்தில், werf ஆனது உள்ளமைக்கப்பட்ட களஞ்சியங்களுக்கு மட்டுப்படுத்தப்பட்டது - அதிர்ஷ்டவசமாக, பெரும்பாலான பதிவுகள் இந்த அம்சத்தை ஆதரிக்கின்றன. பதிப்பிலிருந்து v1.0.4-alpha.3, இதில் பதிவுகளுடன் வேலை சேர்க்கப்பட்டது கூடு கட்டுதல் ஆதரிக்கப்படவில்லை, மற்றும் Docker Hub அவற்றில் ஒன்று. இந்த தருணத்திலிருந்து, பயன்பாட்டு படங்களை எவ்வாறு சேமிப்பது என்பதை பயனருக்குத் தேர்வு செய்ய வேண்டும்.

விருப்பத்தின் ஒரு பகுதியாக செயல்படுத்தல் கிடைக்கிறது --images-repo-mode=multirepo|monorepo (இயல்புநிலை multirepo, அதாவது உள்ளமை களஞ்சியங்களில் சேமிப்பு). பதிவேட்டில் படங்கள் சேமிக்கப்படும் வடிவங்களை இது வரையறுக்கிறது. அடிப்படை கட்டளைகளைப் பயன்படுத்தும் போது விரும்பிய பயன்முறையைத் தேர்ந்தெடுத்தால் போதும், மற்ற அனைத்தும் மாறாமல் இருக்கும்.

பெரும்பாலான werf விருப்பங்களை அமைக்க முடியும் என்பதால் சுற்றுச்சூழல் மாறிகள், CI/CD அமைப்புகளில், சேமிப்பக பயன்முறை பொதுவாக முழு திட்டத்திற்கும் உலகளாவிய அளவில் அமைக்க எளிதானது. உதாரணத்திற்கு, GitLab விஷயத்தில் திட்ட அமைப்புகளில் சூழல் மாறியைச் சேர்க்கவும்: அமைப்புகள் -> CI / CD -> மாறிகள்: WERF_IMAGES_REPO_MODE: multirepo|monorepo.

படங்களை வெளியிடுவது மற்றும் பயன்பாடுகளை வெளியிடுவது பற்றி நாங்கள் பேசினால் (இந்த செயல்முறைகளைப் பற்றி தொடர்புடைய ஆவணக் கட்டுரைகளில் விரிவாகப் படிக்கலாம்: வெளியீட்டு செயல்முறை и வரிசைப்படுத்துதல் செயல்முறை), பின்னர் பயன்முறையானது நீங்கள் படத்துடன் வேலை செய்யக்கூடிய டெம்ப்ளேட்டை மட்டுமே தீர்மானிக்கிறது.

பிசாசு விவரங்களில் உள்ளது

புதிய சேமிப்பக முறையைச் சேர்க்கும் போது வேறுபாடு மற்றும் முக்கிய சிரமம் பதிவேட்டை சுத்தம் செய்யும் பணியில் உள்ளது (Werf இல் ஆதரிக்கப்படும் சுத்தம் அம்சங்கள், பார்க்கவும் சுத்தம் செய்யும் செயல்முறை).

சுத்தம் செய்யும் போது, ​​Kubernetes கிளஸ்டர்களில் பயன்படுத்தப்படும் படங்களையும், பயனர் கட்டமைக்கப்பட்ட கொள்கைகளையும் வெர்ஃப் கணக்கில் எடுத்துக்கொள்கிறது. குறிச்சொற்களை உத்திகளாகப் பிரிப்பதை அடிப்படையாகக் கொண்டது கொள்கைகள். தற்போது ஆதரிக்கப்படும் உத்திகள்:

  1. டேக், கிளை மற்றும் உறுதி போன்ற Git primitives தொடர்பான 3 உத்திகள்;
  2. தனிப்பயன் தனிப்பயன் குறிச்சொற்களுக்கான 1 உத்தி.

இறுதிப் படத்தின் லேபிள்களில் படத்தை வெளியிடும் போது டேக் உத்தி பற்றிய தகவலைச் சேமிப்போம். பொருள் தன்னை என்று அழைக்கப்படும் மெட்டா டேக் - சில கொள்கைகளைப் பயன்படுத்துவதற்கு அவசியம். எடுத்துக்காட்டாக, Git களஞ்சியத்திலிருந்து கிளை அல்லது குறிச்சொல்லை நீக்கும் போது, ​​தொடர்புடையவற்றை நீக்குவது தர்க்கரீதியானது. பயன்படுத்தப்படாத பதிவேட்டில் இருந்து படங்கள், இது எங்கள் கொள்கைகளின் ஒரு பகுதியாகும்.

ஒரு களஞ்சியத்தில் சேமிக்கும் போது (monorepo), படக் குறிச்சொல்லில், மெட்டா குறிச்சொல்லைத் தவிர, படத்தின் பெயரையும் சேமிக்க முடியும்: PROJECT:frontend-META-TAG. அவற்றைப் பிரிக்க, நாங்கள் எந்த குறிப்பிட்ட பிரிப்பானையும் அறிமுகப்படுத்தவில்லை, ஆனால் வெளியிடும் போது இறுதிப் படத்தின் லேபிளில் தேவையான மதிப்பைச் சேர்த்துள்ளோம்.

NB: வேர்ஃப் மூலக் குறியீட்டில் விவரிக்கப்பட்டுள்ள அனைத்தையும் பார்க்க நீங்கள் ஆர்வமாக இருந்தால், தொடக்கப் புள்ளியாக இருக்கலாம் பொது 1684.

இந்த கட்டுரையில், எங்கள் அணுகுமுறையின் சிக்கல்கள் மற்றும் நியாயப்படுத்தலுக்கு நாங்கள் அதிக கவனம் செலுத்த மாட்டோம்: குறியிடும் உத்திகள், லேபிள்களில் தரவு சேமிப்பு மற்றும் பொதுவாக வெளியீட்டு செயல்முறை - இவை அனைத்தும் டிமிட்ரி ஸ்டோலியாரோவின் சமீபத்திய அறிக்கையில் விரிவாக விவரிக்கப்பட்டுள்ளன: "werf என்பது குபெர்னெட்டஸில் உள்ள CI/CDக்கான எங்கள் கருவியாகும்".

சுருக்க

கூடு கட்டாமல் பதிவேடுகளுக்கான ஆதரவு இல்லாதது எங்களுக்கு அல்லது எங்களுக்குத் தெரிந்த வெர்ஃப் பயனர்களுக்கு ஒரு தடுக்கும் காரணியாக இருக்கவில்லை - எல்லாவற்றிற்கும் மேலாக, நீங்கள் எப்போதும் படங்களின் தனி பதிவேட்டை (அல்லது Google Cloud இல் நிபந்தனைக்குட்பட்ட கொள்கலன் பதிவேட்டிற்கு மாறலாம்) ... இருப்பினும் , பரந்த DevOps சமூகத்திற்கு கருவியை மிகவும் வசதியாக மாற்றும் வகையில், அத்தகைய கட்டுப்பாட்டை நீக்குவது தர்க்கரீதியானதாகத் தோன்றியது. அதை செயல்படுத்தும் போது, ​​கொள்கலன் பதிவேட்டில் சுத்தம் செய்யும் பொறிமுறையை மறுவேலை செய்வதில் முக்கிய சிரமத்தை எதிர்கொண்டோம். இப்போது எல்லாம் தயாராக உள்ளது, இது ஒருவருக்கு எளிதாகிவிட்டது என்பதை அறிவது மகிழ்ச்சி அளிக்கிறது, மேலும் இந்த அம்சத்தை மேலும் ஆதரிப்பதில் குறிப்பிடத்தக்க சிரமங்களை நாங்கள் (திட்டத்தின் முக்கிய டெவலப்பர்களாக) எதிர்பார்க்கவில்லை.

எங்களுடன் இருங்கள், மற்ற புதுமைகளைப் பற்றி விரைவில் நாங்கள் உங்களுக்குச் சொல்வோம் வெர்ஃப்!

சோசலிஸ்ட் கட்சி

எங்கள் வலைப்பதிவிலும் படிக்கவும்:

ஆதாரம்: www.habr.com

DDoS பாதுகாப்பு, VPS VDS சர்வர்கள் கொண்ட தளங்களுக்கு நம்பகமான ஹோஸ்டிங் வாங்கவும் 🔥 DDoS பாதுகாப்புடன் கூடிய நம்பகமான இணையதள ஹோஸ்டிங், VPS, VDS சர்வர்களை வாங்குங்கள் | ProHoster