குழப்பத்தை நிர்வகித்தல்: தொழில்நுட்ப வரைபடத்தின் உதவியுடன் ஒழுங்கைக் கொண்டுவருதல்

குழப்பத்தை நிர்வகித்தல்: தொழில்நுட்ப வரைபடத்தின் உதவியுடன் ஒழுங்கைக் கொண்டுவருதல்

படம்: unsplash

அனைவருக்கும் வணக்கம்! நாங்கள் நிறுவனத்தைச் சேர்ந்த ஆட்டோமேஷன் பொறியாளர்கள் நேர்மறை தொழில்நுட்பங்கள் மற்றும் நிறுவனத்தின் தயாரிப்புகளின் மேம்பாட்டை நாங்கள் ஆதரிக்கிறோம்: டெவலப்பர்களின் குறியீட்டு வரிசையின் அர்ப்பணிப்பிலிருந்து முடிக்கப்பட்ட தயாரிப்புகள் மற்றும் புதுப்பிப்பு சேவையகங்களில் உரிமங்களை வெளியிடுவது வரை முழு சட்டசபை பைப்லைனையும் நாங்கள் ஆதரிக்கிறோம். முறைசாரா முறையில், நாங்கள் DevOps பொறியாளர்கள் என்று அழைக்கப்படுகிறோம். இந்த கட்டுரையில், மென்பொருள் தயாரிப்பு செயல்முறையின் தொழில்நுட்ப நிலைகள், அவற்றை எவ்வாறு பார்க்கிறோம் மற்றும் அவற்றை எவ்வாறு வகைப்படுத்துகிறோம் என்பதைப் பற்றி பேச விரும்புகிறோம்.

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

கேயாஸ் மற்றும் டெவொப்ஸ் பற்றி

சுருக்கமாக, DevOps இன் கருத்தாக்கத்தில் மேம்பாட்டுக் கருவிகள் மற்றும் சேவைகள், அவற்றின் பயன்பாட்டிற்கான வழிமுறைகள் மற்றும் சிறந்த நடைமுறைகள் ஆகியவை அடங்கும். உலகத்தை தனிமைப்படுத்துவோம் цель எங்கள் நிறுவனத்தில் DevOps ஐடியாக்களை செயல்படுத்துவதிலிருந்து: இது அளவு அடிப்படையில் தயாரிப்புகளின் உற்பத்தி மற்றும் பராமரிப்பு செலவில் நிலையான குறைப்பு ஆகும் (மனித நேரம் அல்லது இயந்திர நேரம், CPU, RAM, Disk போன்றவை). முழு நிறுவனத்தின் மட்டத்தில் வளர்ச்சிக்கான ஒட்டுமொத்த செலவைக் குறைப்பதற்கான எளிதான மற்றும் மிகவும் வெளிப்படையான வழி வழக்கமான தொடர் பணிகளைச் செய்வதற்கான செலவைக் குறைத்தல் உற்பத்தியின் அனைத்து நிலைகளிலும். ஆனால் இந்த நிலைகள் என்ன, பொதுவான செயல்முறையிலிருந்து அவற்றை எவ்வாறு பிரிப்பது, அவை என்ன படிகளைக் கொண்டுள்ளன?

ஒரு நிறுவனம் ஒரு தயாரிப்பை உருவாக்கும் போது, ​​எல்லாம் அதிகமாகவோ அல்லது குறைவாகவோ தெளிவாக இருக்கும்: பொதுவாக ஒரு பொதுவான சாலை வரைபடம் மற்றும் மேம்பாட்டுத் திட்டம் உள்ளது. ஆனால் தயாரிப்பு வரிசை விரிவடைந்து அதிக தயாரிப்புகள் இருக்கும்போது என்ன செய்வது? முதல் பார்வையில், அவை ஒத்த செயல்முறைகள் மற்றும் சட்டசபை வரிகளைக் கொண்டுள்ளன, மேலும் பதிவுகள் மற்றும் ஸ்கிரிப்ட்களில் "எக்ஸ் வேறுபாடுகளைக் கண்டுபிடி" விளையாட்டு தொடங்குகிறது. ஆனால் ஏற்கனவே 5+ திட்டங்கள் செயலில் வளர்ச்சியில் இருந்தால் மற்றும் பல ஆண்டுகளாக உருவாக்கப்பட்ட பல பதிப்புகளுக்கான ஆதரவு தேவைப்பட்டால் என்ன செய்வது? தயாரிப்பு குழாய்களில் அதிகபட்ச சாத்தியமான தீர்வுகளை மீண்டும் பயன்படுத்த விரும்புகிறோமா அல்லது ஒவ்வொன்றிற்கும் ஒரு தனித்துவமான வளர்ச்சிக்காக பணத்தை செலவிடத் தயாரா?

தீர்வுகளின் தனித்தன்மைக்கும் தொடர்நிலைக்கும் இடையே சமநிலையை எவ்வாறு கண்டறிவது?

இந்தக் கேள்விகள் 2015ல் இருந்து அடிக்கடி நம் முன் எழ ஆரம்பித்தன. தயாரிப்புகளின் எண்ணிக்கை அதிகரித்தது, மேலும் இந்த தயாரிப்புகளின் அசெம்பிளி லைன்களை ஆதரிக்கும் எங்கள் ஆட்டோமேஷன் துறையை (DevOps) குறைந்தபட்சமாக விரிவுபடுத்த முயற்சித்தோம். அதே நேரத்தில், தயாரிப்புகளுக்கு இடையில் முடிந்தவரை பல தீர்வுகளை பிரதிபலிக்க விரும்புகிறோம். எல்லாவற்றிற்கும் மேலாக, பத்து தயாரிப்புகளில் ஒரே விஷயத்தை ஏன் வெவ்வேறு வழிகளில் செய்ய வேண்டும்?

வளர்ச்சி இயக்குனர்: "நண்பர்களே, தயாரிப்புகளுக்கு DevOps என்ன செய்கிறது என்பதை எப்படியாவது மதிப்பீடு செய்ய முடியுமா?"

நாம்: "எங்களுக்குத் தெரியாது, நாங்கள் இந்தக் கேள்வியைக் கேட்கவில்லை, ஆனால் என்ன குறிகாட்டிகளைக் கணக்கிட வேண்டும்?"

வளர்ச்சி இயக்குனர்: "யாருக்கு தெரியும்! யோசி…”

அந்த பிரபலமான படத்தில் உள்ளது போல்: "நான் ஒரு ஹோட்டலில் இருக்கிறேன்! .." - "ஓ ... நீங்கள் எனக்கு வழி காட்ட முடியுமா?" பிரதிபலிப்பில், தயாரிப்புகளின் இறுதி நிலைகளை முதலில் தீர்மானிக்க வேண்டும் என்ற முடிவுக்கு வந்தோம்; இது எங்கள் முதல் இலக்காக அமைந்தது.

எனவே, 10 முதல் 200 பேர் கொண்ட பெரிய குழுக்களுடன் ஒரு டஜன் தயாரிப்புகளை நீங்கள் எவ்வாறு பகுப்பாய்வு செய்யலாம் மற்றும் தீர்வுகளைப் பிரதிபலிக்கும் போது அளவிடக்கூடிய அளவீடுகளை எவ்வாறு தீர்மானிப்பது?

கேயாஸ் அல்லது டெவொப்ஸ் பிளேடுகளுக்கு ஆதரவாக 1:0

BPwin தொடரிலிருந்து IDEF0 வரைபடங்கள் மற்றும் பல்வேறு வணிக செயல்முறை வரைபடங்களைப் பயன்படுத்த முயற்சிப்பதன் மூலம் தொடங்கினோம். அடுத்த திட்டத்தின் அடுத்த கட்டத்தின் ஐந்தாவது சதுரத்திற்குப் பிறகு குழப்பம் தொடங்கியது, மேலும் ஒவ்வொரு திட்டத்திற்கும் இந்த சதுரங்களை 50+ படிகளில் ஒரு நீண்ட மலைப்பாம்பின் வால் வரையலாம். நான் சோகமாக உணர்ந்தேன், நிலவில் அலற விரும்பினேன் - அது பொருந்தவில்லை.

வழக்கமான உற்பத்தி பணிகள்

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

எங்கள் உற்பத்தி செயல்முறையை நாங்கள் மாதிரியாக்கத் தொடங்கியபோது, ​​எங்களுக்கு ஒரு குறிப்பிட்ட குறிக்கோள் இருந்தது - எங்கள் நிறுவனத்தின் தயாரிப்புகளின் வளர்ச்சியில் ஈடுபட்டுள்ள ஒவ்வொரு பணியாளருக்கும் மற்றும் திட்ட மேலாளர்களுக்கும் தெரிவிக்க:

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

குழப்பத்தை நிர்வகித்தல்: தொழில்நுட்ப வரைபடத்தின் உதவியுடன் ஒழுங்கைக் கொண்டுவருதல்

படத்தின் மீது கிளிக் செய்தால் அது முழு அளவில் திறக்கும்.

நிறுவனத்தில் எங்கள் பணி பல செயல்பாட்டு பகுதிகளாக பிரிக்கப்பட்டுள்ளது. உள்கட்டமைப்புத் துறையானது அனைத்து துறையின் வன்பொருள் வளங்களின் செயல்பாட்டை மேம்படுத்துவதோடு, மெய்நிகர் இயந்திரங்கள் மற்றும் அவற்றின் சுற்றுச்சூழலையும் தானியக்கமாக்குவதில் ஈடுபட்டுள்ளது. கண்காணிப்பு திசையானது 24/7 சேவைகளின் செயல்திறன் மீதான கட்டுப்பாட்டை வழங்குகிறது; டெவலப்பர்களுக்கான சேவையாக நாங்கள் கண்காணிப்பையும் வழங்குகிறோம். பணிப்பாய்வு திசையானது, மேம்பாடு மற்றும் சோதனை செயல்முறைகளை நிர்வகித்தல், குறியீடு நிலையை பகுப்பாய்வு செய்தல் மற்றும் திட்டங்களில் பகுப்பாய்வுகளைப் பெறுதல் போன்ற கருவிகளை குழுக்களுக்கு வழங்குகிறது. இறுதியாக, வெப்டெவ் திசையானது GUS மற்றும் FLUS புதுப்பிப்பு சேவையகங்களில் வெளியீடுகளை வெளியிடுவதையும், உரிமம் லேப் சேவையைப் பயன்படுத்தி தயாரிப்புகளுக்கு உரிமம் வழங்குவதையும் உறுதி செய்கிறது. உற்பத்திக் குழாயை ஆதரிக்க, டெவலப்பர்களுக்கான பல்வேறு ஆதரவு சேவைகளை நாங்கள் அமைத்து பராமரிக்கிறோம் (பழைய சந்திப்புகளில் சிலவற்றைப் பற்றிய கதைகளை நீங்கள் கேட்கலாம்: Op!DevOps! 2016 и Op!DevOps! 2017) உள்ளிட்ட உள் ஆட்டோமேஷன் கருவிகளையும் நாங்கள் உருவாக்குகிறோம் திறந்த மூல தீர்வுகள்.

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

குழப்பத்தை நிர்வகித்தல்: தொழில்நுட்ப வரைபடத்தின் உதவியுடன் ஒழுங்கைக் கொண்டுவருதல்

ஒரு தொழில்நுட்ப சங்கிலியின் எளிய உதாரணம், நிறுவனத்திற்குள் எங்கள் ஒவ்வொரு தயாரிப்புகளையும் அசெம்பிளி, வரிசைப்படுத்தல் மற்றும் சோதனையின் நிலைகளாகும். இதையொட்டி, எடுத்துக்காட்டாக, உருவாக்க நிலை பல தனித்தனி வழக்கமான படிகளைக் கொண்டுள்ளது: GitLab இலிருந்து ஆதாரங்களைப் பதிவிறக்குதல், சார்புநிலைகள் மற்றும் மூன்றாம் தரப்பு நூலகங்களைத் தயாரித்தல், அலகு சோதனை மற்றும் நிலையான குறியீடு பகுப்பாய்வு, GitLab CI இல் உருவாக்க ஸ்கிரிப்டை இயக்குதல், களஞ்சியத்தில் கலைப்பொருட்களை வெளியிடுதல் எங்கள் உள் சேஞ்ச்லாக் பில்டர் கருவி மூலம் செயற்கைத் தயாரிப்பு மற்றும் வெளியீட்டு குறிப்புகளை உருவாக்குதல்.

வழக்கமான DevOps பணிகளைப் பற்றி Habé இல் உள்ள எங்கள் மற்ற கட்டுரைகளில் நீங்கள் படிக்கலாம்: "தனிப்பட்ட அனுபவம்: எங்கள் தொடர்ச்சியான ஒருங்கிணைப்பு அமைப்பு எப்படி இருக்கும்"மேலும்"வளர்ச்சி செயல்முறைகளின் ஆட்டோமேஷன்: நேர்மறை தொழில்நுட்பங்களில் DevOps ஐடியாக்களை எவ்வாறு செயல்படுத்தினோம்".

பல வழக்கமான உற்பத்தி சங்கிலிகள் உருவாகின்றன உற்பத்தி செய்முறை. செயல்முறைகளை விவரிப்பதற்கான நிலையான அணுகுமுறை செயல்பாட்டு IDEF0 மாதிரிகளைப் பயன்படுத்துவதாகும்.

உற்பத்தி CI செயல்முறையை மாதிரியாக்குவதற்கான எடுத்துக்காட்டு

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

குழப்பத்தை நிர்வகித்தல்: தொழில்நுட்ப வரைபடத்தின் உதவியுடன் ஒழுங்கைக் கொண்டுவருதல்

இது எவ்வாறு செயல்படுகிறது என்பது இங்கே. எல்லா திட்டங்களும் வழக்கமானதாகத் தெரிகிறது: அவை ஆர்டிஃபாக்டரியில் உள்ள ஸ்னாப்ஷாட் களஞ்சியத்தில் விழும் அசெம்பிளிகளின் உள்ளமைவை உள்ளடக்கியது, அதன் பிறகு அவை சோதனை பெஞ்சுகளில் பயன்படுத்தப்பட்டு சோதிக்கப்பட்டு, பின்னர் வெளியீட்டு களஞ்சியத்திற்கு உயர்த்தப்படும். ஆர்டிஃபாக்டரி சேவை என்பது அணிகள் மற்றும் பிற சேவைகளுக்கு இடையே உள்ள அனைத்து கலைப் பொருட்களை உருவாக்குவதற்கான ஒரு விநியோக புள்ளியாகும்.

எங்கள் வெளியீட்டுத் திட்டத்தை நாம் மிகவும் எளிமைப்படுத்தி பொதுமைப்படுத்தினால், அது பின்வரும் படிகளை உள்ளடக்கியது:

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

எடுத்துக்காட்டாக, செயல்பாட்டு IDEF0 மாதிரியின் வடிவத்தில் இந்த வழக்கமான வெளியீட்டு திட்டத்தின் தொழில்நுட்ப மாதிரியை (இனி வெறுமனே மாதிரி) கருதுங்கள். இது எங்கள் CI செயல்முறையின் முக்கிய நிலைகளை பிரதிபலிக்கிறது. IDEF0 மாதிரிகள் அழைக்கப்படுவதைப் பயன்படுத்துகின்றன ICOM குறியீடு (உள்ளீடு-கட்டுப்பாடு-வெளியீடு-மெக்கானிசம்) ஒவ்வொரு கட்டத்திலும் என்ன வளங்கள் பயன்படுத்தப்படுகின்றன, என்ன விதிகள் மற்றும் தேவைகள் வேலை செய்யப்படுகிறது, வெளியீடு என்ன, ஒரு குறிப்பிட்ட கட்டத்தில் என்ன வழிமுறைகள், சேவைகள் அல்லது மக்கள் செயல்படுத்துகிறார்கள் என்பதை விவரிக்க.

குழப்பத்தை நிர்வகித்தல்: தொழில்நுட்ப வரைபடத்தின் உதவியுடன் ஒழுங்கைக் கொண்டுவருதல்

படத்தின் மீது கிளிக் செய்தால் அது முழு அளவில் திறக்கும்.

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

நம்பிக்கையின் பிறப்பு

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

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

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

  1. தரவு இல்லை - அல்லது பொருத்தமற்றது. தயாரிப்பில் ஒரு கட்டத்திற்கான தேவையை பகுப்பாய்வு செய்வது அவசியம். பகுப்பாய்வு ஏற்கனவே மேற்கொள்ளப்பட்டுள்ளது, ஆனால் நிலை தற்போது தேவையில்லை அல்லது பொருளாதார ரீதியாக நியாயப்படுத்தப்படவில்லை.
  2. ஒத்திவைக்கப்பட்டது - அல்லது இந்த நேரத்தில் தொடர்புடையது அல்ல. குழாயில் இந்த நிலை தேவை, ஆனால் இந்த ஆண்டு அதை செயல்படுத்த ஆற்றல் இல்லை.
  3. திட்டமிடப்பட்டுள்ளது. மேடை இந்த ஆண்டு செயல்படுத்த திட்டமிடப்பட்டுள்ளது.
  4. செயல்படுத்தப்பட்டது. குழாயில் உள்ள நிலை தேவையான அளவு செயல்படுத்தப்படுகிறது.

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

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

அவர்கள் எங்களை எதிர்க்கலாம்: “இதெல்லாம் நிச்சயமாக நல்லது, காலப்போக்கில் படிகள் மற்றும் நிலைகளின் எண்ணிக்கை தடைசெய்யும் அளவுக்கு பெரியதாக மாறும். எப்படி இருக்க வேண்டும்?

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

தீர்வுகளை நகலெடுப்பதன் விளைவை எவ்வாறு மதிப்பிடுவது? நாங்கள் மிகவும் எளிமையான அணுகுமுறையைப் பயன்படுத்துகிறோம்: ஒரு புதிய கட்டத்தை செயல்படுத்துவதற்கான ஆரம்ப மூலதனச் செலவுகளை வருடாந்திர பொது தயாரிப்புச் செலவுகளுக்குக் காரணம் கூறுகிறோம், பின்னர் நகலெடுக்கும்போது அனைவராலும் வகுக்கிறோம்.

வளர்ச்சியின் பகுதிகள் ஏற்கனவே வரைபடத்தில் நிலைகளாகவும் படிகளாகவும் பிரதிபலிக்கின்றன. வழக்கமான நிலைகளுக்கு ஆட்டோமேஷனை அறிமுகப்படுத்துவதன் மூலம் தயாரிப்பு செலவுகளைக் குறைப்பதை நாம் பாதிக்கலாம். இதற்குப் பிறகு, தரமான குணாதிசயங்கள், அளவு அளவீடுகள் மற்றும் அணிகளால் பெறப்பட்ட லாபம் (மனித-மணிநேரம் அல்லது இயந்திர-மணிநேரங்களில் சேமிக்கப்பட்டது) ஆகியவற்றில் மாற்றங்களைக் கணக்கிடுகிறோம்.

உற்பத்தி செயல்முறையின் தொழில்நுட்ப வரைபடம்

எங்கள் எல்லா நிலைகளையும் படிகளையும் எடுத்து, அவற்றை குறிச்சொற்களால் குறியாக்கம் செய்து அவற்றை ஒரு சங்கிலியாக விரிவுபடுத்தினால், அது மிக நீளமாகவும் புரிந்துகொள்ள முடியாததாகவும் மாறும் (கட்டுரையின் ஆரம்பத்தில் நாங்கள் பேசிய “பைத்தான் வால்”) :

[Production] — [InfMonitoring] — [SourceCodeControl] — [Prepare] — [PrepareLinuxDocker] — [PrepareWinDocker] — [Build] — [PullSourceCode] — [PrepareDep] — [UnitTest] — [CodeCoverage] — [StaticAnalyze] — [BuildScenario] — [PushToSnapshot] — [ChangelogBuilder] — [Deploy] — [PrepareTestStand] — [PullTestCode] — [PrepareTestEnv] — [PullArtifact] — [DeployArtifact] — [Test] — [BVTTest] — [SmokeTest] — [FuncTest] — [LoadTest] — [IntegrityTest] — [DeliveryTest] — [MonitoringStands] — [TestManagement] — [Promote] — [QualityTag] — [MoveToRelease] — [License] — [Publish] — [PublishGUSFLUS] — [ControlVisibility] — [Install] — [LicenseActivation] — [RequestUpdates] — [PullUpdates] — [InitUpdates] — [PrepareEnv] — [InstallUpdates] — [Telemetry] — [Workflow] — [Communication] — [Certification] — [CISelfSufficiency]

தயாரிப்புகளை அசெம்பிள் செய்தல் [உருவாக்கம்], அவற்றைச் சோதனைச் சேவையகங்களுக்கு அனுப்புதல், சோதனை செய்தல் [சோதனை], சோதனை முடிவுகளின் அடிப்படையில் களஞ்சியங்களை வெளியிடுவதற்கு அசெம்பிளிகளை ஊக்குவித்தல் [Promote], உரிமங்களை உருவாக்குதல் மற்றும் வெளியிடுதல், [உரிமம்] வெளியிடுதல், [வெளியிடுதல்] GUS புதுப்பிப்பு சேவையகம் மற்றும் சேவையகங்களுக்கு FLUS புதுப்பிப்புகளை வழங்குதல், தயாரிப்பு உள்ளமைவு மேலாண்மை [நிறுவு] பயன்படுத்தி வாடிக்கையாளர் உள்கட்டமைப்பில் தயாரிப்பு கூறுகளை நிறுவுதல் மற்றும் புதுப்பித்தல், அத்துடன் நிறுவப்பட்ட தயாரிப்புகளிலிருந்து டெலிமெட்ரி [டெலிமெட்ரி] சேகரிப்பு.

அவற்றுடன் கூடுதலாக, தனித்தனி நிலைகளை வேறுபடுத்தி அறியலாம்: உள்கட்டமைப்பு நிலை கண்காணிப்பு [InfMonitoring], மூலக் குறியீடு பதிப்பு [SourceCodeControl], சுற்றுச்சூழலை உருவாக்குதல் [தயாரித்தல்], திட்ட மேலாண்மை [பணிப்பாய்வு], தகவல்தொடர்பு கருவிகள் [தொடர்பு], தயாரிப்பு சான்றிதழ் [ சான்றிதழ்] மற்றும் CI செயல்முறைகளின் தன்னிறைவை உறுதி செய்தல் [CISelfSufficiency] (உதாரணமாக, இணையத்தில் இருந்து கூட்டங்களின் சுதந்திரம்). எங்கள் செயல்முறைகளில் டஜன் கணக்கான படிகள் கூட கருத்தில் கொள்ளப்படாது, ஏனெனில் அவை மிகவும் குறிப்பிட்டவை.

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

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

எங்கள் நிறுவனத்தின் உள்ளே, வரைபடம் தானாகவே ஜின்ஜா டெம்ப்ளேட்டிலிருந்து வழக்கமான HTML கோப்பாக உருவாக்கப்பட்டு, பின்னர் GitLab பக்கங்கள் சேவையகத்தில் பதிவேற்றப்படும். முழுமையாக உருவாக்கப்பட்ட வரைபடத்தின் உதாரணத்துடன் கூடிய ஸ்கிரீன்ஷாட்டைப் பார்க்கலாம் இணைப்பு.

குழப்பத்தை நிர்வகித்தல்: தொழில்நுட்ப வரைபடத்தின் உதவியுடன் ஒழுங்கைக் கொண்டுவருதல்

படத்தின் மீது கிளிக் செய்தால் அது முழு அளவில் திறக்கும்.

சுருக்கமாக, தொழில்நுட்ப வரைபடம் என்பது உற்பத்தி செயல்முறையின் பொதுவான படம், இது வழக்கமான செயல்பாட்டுடன் தெளிவாக வகைப்படுத்தப்பட்ட தொகுதிகளை பிரதிபலிக்கிறது.

எங்கள் சாலை வரைபடத்தின் அமைப்பு

வரைபடம் பல பகுதிகளைக் கொண்டுள்ளது:

  1. தலைப்பு பகுதி - இங்கே வரைபடத்தின் பொதுவான விளக்கம், அடிப்படை கருத்துக்கள் அறிமுகப்படுத்தப்பட்டுள்ளன, மேலும் உற்பத்தி செயல்முறையின் முக்கிய ஆதாரங்கள் மற்றும் முடிவுகள் வரையறுக்கப்பட்டுள்ளன.
  2. டாஷ்போர்டு - இங்கே நீங்கள் தனிப்பட்ட தயாரிப்புகளுக்கான தரவின் காட்சியைக் கட்டுப்படுத்தலாம், அனைத்து தயாரிப்புகளுக்கும் பொதுவாக செயல்படுத்தப்பட்ட நிலைகள் மற்றும் படிகளின் சுருக்கம் வழங்கப்படுகிறது.
  3. தொழில்நுட்ப வரைபடம் - தொழில்நுட்ப செயல்முறையின் அட்டவணை விளக்கம். வரைபடத்தில்:
    • அனைத்து நிலைகள், படிகள் மற்றும் அவற்றின் குறியீடுகள் கொடுக்கப்பட்டுள்ளன;
    • நிலைகளின் குறுகிய மற்றும் முழுமையான விளக்கங்கள் கொடுக்கப்பட்டுள்ளன;
    • ஒவ்வொரு கட்டத்திலும் பயன்படுத்தப்படும் உள்ளீட்டு ஆதாரங்கள் மற்றும் சேவைகள் குறிக்கப்படுகின்றன;
    • ஒவ்வொரு நிலை மற்றும் தனிப்பட்ட படிகளின் முடிவுகள் சுட்டிக்காட்டப்படுகின்றன;
    • ஒவ்வொரு நிலை மற்றும் படிக்கான பொறுப்பின் பகுதி சுட்டிக்காட்டப்படுகிறது;
    • எச்டிடி (எஸ்எஸ்டி), ரேம், விசிபியு போன்ற தொழில்நுட்ப ஆதாரங்கள் மற்றும் இந்த கட்டத்தில் வேலையை ஆதரிக்க தேவையான மனித-நேரங்கள், தற்போதைய தருணத்தில் - ஒரு உண்மை மற்றும் எதிர்காலத்தில் - ஒரு திட்டம் தீர்மானிக்கப்பட்டது;
    • ஒவ்வொரு தயாரிப்புக்கும், எந்த தொழில்நுட்ப நிலைகள் அல்லது அதற்கான படிகள் செயல்படுத்தப்பட்டன, செயல்படுத்த திட்டமிடப்பட்டுள்ளன, பொருத்தமற்றவை அல்லது செயல்படுத்தப்படவில்லை என்பது குறிக்கப்படுகிறது.

தொழில்நுட்ப வரைபடத்தின் அடிப்படையில் முடிவெடுப்பது

வரைபடத்தை ஆய்வு செய்த பிறகு, சில நடவடிக்கைகளை எடுக்க முடியும் - நிறுவனத்தில் பணியாளரின் பங்கைப் பொறுத்து (மேம்பாடு மேலாளர், தயாரிப்பு மேலாளர், டெவலப்பர் அல்லது சோதனையாளர்):

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

மேலே உள்ள அனைத்தையும் சுருக்கமாக

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

படிகளின் தொழில்நுட்ப செயலாக்கத்திற்காக, எங்களிடம் ஒரு சிறப்பு உள் கருவி உள்ளது CrossBuilder - CI அமைப்புகள், சேவைகள் மற்றும் உள்கட்டமைப்புக்கு இடையே ஒரு அடுக்கு கருவி. டெவலப்பர் தனது பைக்கை வெட்டத் தேவையில்லை: எங்கள் சிஐ அமைப்பில், கிராஸ் பில்டர் கருவியின் ஸ்கிரிப்ட்களில் ஒன்றை (பணி என்று அழைக்கப்படுபவை) இயக்க போதுமானது, இது எங்கள் உள்கட்டமைப்பின் அம்சங்களை கணக்கில் எடுத்துக்கொண்டு அதைச் சரியாகச் செயல்படுத்தும். .

முடிவுகளை

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

  • எங்கள் நிறுவனத்தில் DevOps ஐடியாக்களை செயல்படுத்துவதன் குறிக்கோள், நிறுவனத்தின் தயாரிப்புகளின் உற்பத்தி மற்றும் பராமரிப்பு செலவை அளவு அடிப்படையில் (மனித நேரம் அல்லது இயந்திர நேரம், vCPU, RAM, Disk) தொடர்ந்து குறைப்பதாகும்.
  • வளர்ச்சிக்கான ஒட்டுமொத்த செலவைக் குறைப்பதற்கான வழி, வழக்கமான தொடர் பணிகளைச் செய்வதற்கான செலவைக் குறைப்பதாகும்: தொழில்நுட்ப செயல்முறையின் நிலைகள் மற்றும் படிகள்.
  • ஒரு பொதுவான பணி என்பது ஒரு பணியாகும், அதன் தீர்வு முழுமையாகவோ அல்லது பகுதியாகவோ தானாகவே உள்ளது, கலைஞர்களுக்கு சிரமங்களை ஏற்படுத்தாது மற்றும் குறிப்பிடத்தக்க உழைப்பு செலவுகள் தேவையில்லை.
  • உற்பத்தி செயல்முறை நிலைகளைக் கொண்டுள்ளது, நிலைகள் பிரிக்க முடியாத படிகளாகப் பிரிக்கப்படுகின்றன, அவை வெவ்வேறு அளவு மற்றும் நோக்கத்தின் பொதுவான பணிகளாகும்.
  • வேறுபட்ட வழக்கமான பணிகளிலிருந்து, சிக்கலான தொழில்நுட்ப சங்கிலிகள் மற்றும் உற்பத்தி செயல்முறையின் பல-நிலை மாதிரிகளுக்கு நாங்கள் வந்துள்ளோம், இது ஒரு செயல்பாட்டு IDEF0 மாதிரி அல்லது எளிமையான தொழில்நுட்ப வரைபடத்தால் விவரிக்கப்படலாம்.
  • தொழில்நுட்ப வரைபடம் என்பது உற்பத்தி செயல்முறையின் நிலைகள் மற்றும் படிகளின் அட்டவணைப் பிரதிநிதித்துவம் ஆகும். மிக முக்கியமான விஷயம்: வரைபடம் உங்களை முழு செயல்முறையையும் முழுமையாகப் பார்க்க அனுமதிக்கிறது, அவற்றை விவரிக்கும் சாத்தியக்கூறுகளுடன் பெரிய துண்டுகளாக.
  • தொழில்நுட்ப வரைபடத்தின் அடிப்படையில், ஒரு குறிப்பிட்ட தயாரிப்பில் நிலைகளை அறிமுகப்படுத்துவதன் அவசியத்தை மதிப்பிடுவது, பொறுப்பின் பகுதிகளை வரையறுப்பது, நிலைகளின் உள்ளீடுகள் மற்றும் வெளியீடுகளில் ஒப்பந்தங்களை ஒப்புக்கொள்வது மற்றும் வளங்களின் தேவையை மிகவும் துல்லியமாக மதிப்பிடுவது.

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

கட்டுரை ஆசிரியர்கள்:

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

கருத்தைச் சேர்