டெர்ராஃபார்மில் இருந்து கிளவுட் ஃபார்மேஷனுக்கு மாறியது - அதற்காக வருந்தினேன்

மீண்டும் மீண்டும் உரை வடிவத்தில் உள்கட்டமைப்பைக் குறியீடாகப் பிரதிநிதித்துவப்படுத்துவது, எலிகளுடன் ஃபிட்லிங் தேவைப்படாத கணினிகளுக்கான எளிய சிறந்த நடைமுறையாகும். இந்த நடைமுறைக்கு ஒரு பெயர் உண்டு - குறியீட்டாக உள்கட்டமைப்பு, மற்றும் இதுவரை அதை செயல்படுத்த இரண்டு பிரபலமான கருவிகள் உள்ளன, குறிப்பாக AWS இல்: Terraform и கிளவுட் ஃபார்மேஷன்.

டெர்ராஃபார்மில் இருந்து கிளவுட் ஃபார்மேஷனுக்கு மாறியது - அதற்காக வருந்தினேன்
அனுபவத்தை Terraform மற்றும் CloudFormation உடன் ஒப்பிடுதல்

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

டெர்ராஃபார்ம் பயங்கரமானது

பீட்டா மென்பொருள்

Terraform இன்னும் பதிப்பு 1.0 ஐ வெளியிடவில்லை, இது அதைப் பயன்படுத்தாததற்கு ஒரு நல்ல காரணம். நானே முதன்முதலில் முயற்சித்ததிலிருந்து இது நிறைய மாறிவிட்டது, ஆனால் அதற்குப் பிறகு terraform apply பல புதுப்பிப்புகளுக்குப் பிறகு அல்லது ஓரிரு வருட பயன்பாட்டிற்குப் பிறகு அடிக்கடி உடைந்துவிடும். "இப்போது எல்லாம் வித்தியாசமாக இருக்கிறது" என்று நான் கூறுவேன், ஆனால் ... எல்லோரும் சொல்வது இதுதான், இல்லையா? முந்தைய பதிப்புகளுடன் பொருந்தாத மாற்றங்கள் உள்ளன, இருப்பினும் அவை பொருத்தமானவை, மேலும் ஆதாரக் கடைகளின் தொடரியல் மற்றும் சுருக்கங்கள் இப்போது நமக்குத் தேவைப்படுவது போல் உணர்கிறது. கருவி உண்மையில் மேம்பட்டதாகத் தெரிகிறது, ஆனால்... :-0

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

மீட் தி லெக்... அது ஒரு புல்லட்

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

டெர்ராஃபார்ம் கிரேட்

முழுமையற்ற நிலைகளிலிருந்து மீட்பு

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

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

ஆவண நிலைக்கு தெளிவான மாற்றங்கள்

“சரி, லோட் பேலன்ஸர், நீ மாறுகிறாய். ஆனால் எப்படி?"

ஆர்வமுள்ள பொறியாளர், "ஏற்றுக்கொள்" பொத்தானை அழுத்துவதற்குத் தயார்.

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

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

நெகிழ்வு

மென்பொருளை பின்னோக்கி எழுதவும்.

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

ஜிட்டில் தொகுதிகள்

CloudFormation குறியீட்டைப் பகிர்வதை விட, பல அடுக்குகளில் டெர்ராஃபார்ம் குறியீட்டைப் பகிர்வது மிகவும் எளிதானது. டெர்ராஃபார்ம் மூலம், உங்கள் குறியீட்டை ஜிட் களஞ்சியத்தில் வைத்து, சொற்பொருள் பதிப்புக் கட்டுப்பாட்டைப் பயன்படுத்தி அதை அணுகலாம். இந்தக் களஞ்சியத்தை அணுகக்கூடிய எவரும் பகிரப்பட்ட குறியீட்டை மீண்டும் பயன்படுத்தலாம். CloudFormation இன் சமமானது S3 ஆகும், ஆனால் அது அதே பலன்களைக் கொண்டிருக்கவில்லை, மேலும் S3 க்கு ஆதரவாக நாம் git ஐ ஏன் கைவிட வேண்டும் என்பதற்கு எந்த காரணமும் இல்லை.

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

குறியீடாக செயல்பாடுகள்

"அதை ஸ்கிரிப்ட் செய்து சரி செய்வோம்."

டெர்ராஃபார்ம் மிதிவண்டியைக் கண்டுபிடிப்பதற்கு 3 ஆண்டுகளுக்கு முன்பு ஒரு பொறியாளர்.

மென்பொருள் மேம்பாட்டிற்கு வரும்போது, ​​​​கோ அல்லது ஜாவா நிரல் வெறும் குறியீடு அல்ல.

டெர்ராஃபார்மில் இருந்து கிளவுட் ஃபார்மேஷனுக்கு மாறியது - அதற்காக வருந்தினேன்
குறியீடாக குறியீடு

இது செயல்படும் உள்கட்டமைப்பும் உள்ளது.

டெர்ராஃபார்மில் இருந்து கிளவுட் ஃபார்மேஷனுக்கு மாறியது - அதற்காக வருந்தினேன்
குறியீட்டாக உள்கட்டமைப்பு

ஆனால் அவள் எங்கிருந்து வருகிறாள்? அதை எப்படி கண்காணிப்பது? உங்கள் குறியீடு எங்கே வாழ்கிறது? டெவலப்பர்களுக்கு அணுகல் அனுமதி தேவையா?

டெர்ராஃபார்மில் இருந்து கிளவுட் ஃபார்மேஷனுக்கு மாறியது - அதற்காக வருந்தினேன்
குறியீடாக செயல்பாடுகள்

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

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

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

  • Я: அடடா, ஒரு மைக்ரோ சர்வீஸை ஓவர்லாக் செய்ய இது நிறைய சைகைகள். AWS கணக்கை உருவாக்க நான் இந்தக் குப்பையைப் பயன்படுத்த வேண்டும் (நாங்கள் 2 கணக்குகளுக்குச் சென்றோம் நுண் சேவை), பின்னர் இது விழிப்பூட்டல்களை அமைப்பதற்கும், இது ஒரு குறியீடு களஞ்சியத்திற்கும், இது மின்னஞ்சல் பட்டியலுக்கும், பின்னர் இது...
  • வழி நடத்து: அதை ஸ்கிரிப்ட் செய்து சரி செய்யலாம்.
  • Я: சரி, ஆனால் திரைக்கதையே மாறும். இந்த உள்ளமைக்கப்பட்ட அமேசான் கிஸ்மோக்கள் அனைத்தும் புதுப்பித்த நிலையில் உள்ளதா என்பதைச் சரிபார்க்க எங்களுக்கு ஒரு வழி தேவைப்படும்.
  • வழி நடத்து: நன்றாக இருக்கிறது. மேலும் இதற்கு ஸ்கிரிப்ட் எழுதுவோம்.
  • Я: நன்று! ஸ்கிரிப்ட் இன்னும் அளவுருக்களை அமைக்க வேண்டும். அவர் அவற்றை ஏற்றுக்கொள்வாரா?
  • வழி நடத்து: அவர் செல்லும் இடத்தை அவர் கொண்டு செல்லட்டும்!
  • Я: செயல்முறை மாறலாம் மற்றும் பின்தங்கிய இணக்கத்தன்மை இழக்கப்படும். சில வகையான சொற்பொருள் பதிப்பு கட்டுப்பாடு தேவைப்படும்.
  • வழி நடத்து: சிறந்த யோசனை!
  • Я: பயனர் இடைமுகத்தில் கருவிகளை கைமுறையாக மாற்றலாம். இதை சரிபார்த்து சரிசெய்ய எங்களுக்கு ஒரு வழி தேவை.

…3 வருடங்கள் கழித்து:

  • வழி நடத்து: மேலும் எங்களுக்கு டெர்ராஃபார்ம் கிடைத்தது.

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

CloudFormation lambda vs git modules terraform

லாம்ப்டா என்பது தனிப்பயன் லாஜிக் சிக்கலுக்கு கிளவுட் ஃபார்மேஷனின் தீர்வாகும். லாம்ப்டா மூலம் உங்களால் முடியும் மேக்ரோக்களை உருவாக்கவும் அல்லது பயனர் வளம். இந்த அணுகுமுறை டெர்ராஃபார்மின் கிட் மாட்யூல்களின் சொற்பொருள் பதிப்பில் இல்லாத கூடுதல் சிக்கல்களை அறிமுகப்படுத்துகிறது. என்னைப் பொறுத்தவரை, இந்த அனைத்து பயனர் லாம்ப்டாக்களுக்கான அனுமதிகளை நிர்வகிப்பது மிகவும் முக்கியமான பிரச்சனை (மேலும் இவை டஜன் கணக்கான AWS கணக்குகள்). மற்றொரு முக்கியமான பிரச்சனை என்னவென்றால், "எது முதலில் வந்தது, கோழி அல்லது முட்டை?" பிரச்சனை: இது லாம்ப்டா குறியீட்டுடன் தொடர்புடையது. இந்தச் செயல்பாடே உள்கட்டமைப்பு மற்றும் குறியீடாகும், மேலும் அதற்கு கண்காணிப்பு மற்றும் புதுப்பிப்புகள் தேவை. சவப்பெட்டியில் உள்ள இறுதி ஆணி, லாம்ப்டா குறியீடு மாற்றங்களை சொற்பொருளில் புதுப்பிப்பதில் உள்ள சிரமம்; நேரடி கட்டளை இல்லாமல் ஸ்டாக் செயல்கள் ரன்களுக்கு இடையில் மாறாமல் இருப்பதையும் நாங்கள் உறுதி செய்ய வேண்டும்.

ஒருமுறை கிளாசிக் லோட் பேலன்சருடன் எலாஸ்டிக் பீன்ஸ்டாக் சூழலுக்கு கேனரி வரிசைப்படுத்தலை உருவாக்க விரும்பினேன் என்பது எனக்கு நினைவிருக்கிறது. உற்பத்தி சூழலுக்கு அடுத்ததாக EB க்கு இரண்டாவது வரிசைப்படுத்தலைச் செய்வதே எளிதான விஷயம், அதை ஒரு படி மேலே கொண்டு செல்கிறது: தானியங்கு-அளவிடுதல் கேனரி வரிசைப்படுத்தல் குழுவை வரிசைப்படுத்தல் LB உடன் உற்பத்தி சூழலில் இணைத்தல். மற்றும் Terraform பயன்படுத்துவதால் ASG beantalk ஒரு முடிவாக, இதற்கு Terraform இல் 4 கூடுதல் கோடுகள் தேவைப்படும். கிளவுட் ஃபார்மேஷனில் ஒப்பிடக்கூடிய தீர்வு உள்ளதா என்று நான் கேட்டபோது, ​​டெர்ராஃபார்ம் குறியீட்டின் மோசமான 4 லைன்கள் செய்யக்கூடிய ஏதோவொன்றின் பொருட்டு, வரிசைப்படுத்தல் பைப்லைன் மற்றும் எல்லாவற்றையும் கொண்ட முழு கிட் களஞ்சியத்தையும் அவர்கள் என்னைச் சுட்டிக்காட்டினர்.

இது சறுக்கலை சிறப்பாகக் கண்டறியும்

யதார்த்தம் எதிர்பார்ப்புகளுடன் பொருந்துகிறது என்பதை உறுதிப்படுத்தவும்.

சறுக்கல் கண்டறிதல் குறியீடு அம்சமாக மிகவும் சக்திவாய்ந்த செயல்பாடுகள், ஏனெனில் இது யதார்த்தம் எதிர்பார்ப்புகளுடன் பொருந்துகிறது என்பதை உறுதிப்படுத்த உதவுகிறது. இது CloudFormation மற்றும் Terraform ஆகிய இரண்டிலும் கிடைக்கிறது. ஆனால் உற்பத்தி அடுக்கு வளர்ந்தவுடன், CloudFormation இல் சறுக்கலைத் தேடுவது மேலும் மேலும் தவறான கண்டறிதல்களை உருவாக்கியது.

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

CDK மற்றும் கிளவுட் ஃபார்மேஷனின் எதிர்காலம்

கிளவுட் ஃபார்மேஷன் பெரிய, குறுக்கு-உள்கட்டமைப்பு அளவுகளில் நிர்வகிப்பது கடினம். இந்த சிரமங்கள் பல அங்கீகரிக்கப்பட்டுள்ளன மற்றும் கருவிக்கு இது போன்ற விஷயங்கள் தேவை aws-cdk, குறியீட்டில் கிளவுட் உள்கட்டமைப்பை வரையறுத்து அதை AWS CloudFormation மூலம் இயக்குவதற்கான கட்டமைப்பு. aws-cdk இன் எதிர்காலம் என்னவாக இருக்கும் என்பதைப் பார்ப்பது சுவாரஸ்யமாக இருக்கும், ஆனால் Terraform இன் மற்ற பலங்களுடன் போட்டியிடுவது கடினமாக இருக்கும்; CloudFormationஐ புதுப்பித்த நிலையில் கொண்டு வர, உலகளாவிய மாற்றங்கள் தேவைப்படும்.

அதனால் டெர்ராஃபார்ம் ஏமாற்றமடையாது

இது "ஒரு குறியீடாக உள்கட்டமைப்பு", "உரையாக" அல்ல.

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

நல்ல மென்பொருள் உருவாக்கத்தின் உண்மைகள் Terraform க்கும் பொருந்தும்.

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

குறியீட்டை எவ்வாறு ஆவணப்படுத்த முடியாது?

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

ஒரு காலத்தில் ஒரு பெரிய மெயின்() செயல்பாடாக இருந்த சேவைகளை எவ்வாறு வரிசைப்படுத்துவது?

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

உங்கள் நிறுவனம் நூலகங்களைப் பயன்படுத்துவதில்லையா?

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

நீங்கள் PEP8 அல்லது gofmt ஐப் பயன்படுத்தவில்லையா?

பெரும்பாலான மொழிகளில் நிலையான, ஏற்றுக்கொள்ளப்பட்ட வடிவமைப்புத் திட்டம் உள்ளது. பைத்தானில் இது PEP8 ஆகும். Go - gofmt இல். Terraform அதன் சொந்த உள்ளது: terraform fmt. உங்கள் ஆரோக்கியத்திற்காக அதை அனுபவிக்கவும்!

JavaScript தெரியாமல் React ஐப் பயன்படுத்துவீர்களா?

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

நீங்கள் சிங்கிள்டன்கள் அல்லது சார்பு ஊசி மூலம் குறியிடுகிறீர்களா?

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

உங்கள் நூலகங்கள் பத்து விஷயங்களைச் சிறப்பாகச் செய்கின்றனவா அல்லது ஒரு விஷயத்தை சிறப்பாகச் செய்கின்றனவா?

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

பின்தங்கிய இணக்கத்தன்மை இல்லாமல் நூலகங்களில் எவ்வாறு மாற்றங்களைச் செய்வது?

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

உங்கள் தயாரிப்பு சேவை உங்கள் லேப்டாப்பில் அல்லது டேட்டா சென்டரில் இயங்குகிறதா?

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

நீங்கள் தேர்வு எழுதுவதில்லையா?

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

டெர்ராஃபார்ம் மற்றும் மைக்ரோ சர்வீஸ்

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

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

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

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