Terraform සිට CloudFormation වෙත මාරු විය - සහ ඒ ගැන කනගාටු විය

යටිතල ව්‍යුහය පුනරාවර්තනය කළ හැකි පෙළ ආකෘතියකින් කේතයක් ලෙස නිරූපණය කිරීම මීයන් සමඟ සෙල්ලම් කිරීම අවශ්‍ය නොවන පද්ධති සඳහා සරල හොඳම භාවිතයකි. මෙම පුරුද්දට නමක් ඇත - කේතය ලෙස යටිතල පහසුකම්, සහ මෙතෙක් එය ක්‍රියාත්මක කිරීමට ජනප්‍රිය මෙවලම් දෙකක් ඇත, විශේෂයෙන් AWS හි: භූමිෂ් .ය и CloudFormation.

Terraform සිට CloudFormation වෙත මාරු විය - සහ ඒ ගැන කනගාටු විය
Terraform සහ CloudFormation සමඟ අත්දැකීම් සංසන්දනය කිරීම

එන්න කලින් Twitch (ඔහු ඇමසන් ජූනියර්) මම වැඩකළා එක් ආරම්භයක් තුළ සහ වසර තුනක් ටෙරාෆෝම් භාවිතා කළේය. නව ස්ථානයේ, මම මගේ මුළු ශක්තියෙන් Terraform භාවිතා කළෙමි, පසුව සමාගම CloudFormation ඇතුළුව ඇමේසන් වන සෑම දෙයකටම සංක්‍රමණය තල්ලු කළේය. මම දෙකම සඳහා හොඳම භාවිතයන් කඩිසරව සංවර්ධනය කර ඇති අතර, මෙවලම් දෙකම ඉතා සංකීර්ණ, සංවිධානාත්මක වැඩ ප්‍රවාහයන් තුළ භාවිතා කර ඇත. පසුව, Terraform සිට CloudFormation වෙත සංක්‍රමණය වීමේ ඇඟවුම් කල්පනාකාරීව කිරා බැලීමෙන් පසුව, සංවිධානය සඳහා හොඳම තේරීම Terraform බව මට ඒත්තු ගියේය.

ටෙරාෆෝම් බිහිසුණු

බීටා මෘදුකාංගය

Terraform තවමත් 1.0 අනුවාදය නිකුත් කර නැත, එය භාවිතා නොකිරීමට හොඳ හේතුවකි. මම එය මුලින්ම උත්සාහ කළ දා සිට එය බොහෝ වෙනස් වී ඇත, නමුත් පසුව terraform apply බොහෝ විට යාවත්කාලීන කිරීම් කිහිපයකින් පසුව හෝ වසර දෙකක භාවිතයෙන් පසුව බිඳ වැටේ. මම කියන්නම් "දැන් හැම දෙයක්ම වෙනස්", නමුත් ... හැමෝම කියන දේ පෙනෙනවා, නැහැ? පෙර අනුවාද සමඟ නොගැලපෙන වෙනස්කම් ඇත, ඒවා සුදුසු වුවද, සම්පත් ගබඩාවල වාක්‍ය ඛණ්ඩය සහ වියුක්ත කිරීම් දැන් අපට අවශ්‍ය බව හැඟේ. උපකරණය ඇත්තෙන්ම හොඳ වී ඇති බව පෙනේ, නමුත්... :-0

අනෙක් අතට, AWS පසුගාමී අනුකූලතාව පවත්වා ගැනීම සඳහා හොඳ කාර්යයක් කර ඇත. මෙයට හේතුව බොහෝ විට ඔවුන්ගේ සේවාවන් සංවිධානය තුළ තරයේ පරීක්ෂා කර පසුව පමණක්, නැවත නම් කර, ප්‍රකාශයට පත් කරන බැවිනි. එබැවින් "ඔවුන් වෙහෙස මහන්සි වී" යනු අවතක්සේරු කිරීමකි. AWS වැනි විවිධ සහ සංකීර්ණ පද්ධතියක් සඳහා API සමඟ පසුගාමී අනුකූලතාව පවත්වා ගැනීම ඇදහිය නොහැකි තරම් දුෂ්කර ය. ඒ තරම්ම බහුලව භාවිතා වන පොදු API නඩත්තු කිරීමට සිදු වූ ඕනෑම කෙනෙකුට එය වසර ගණනාවක් තිස්සේ කිරීම කොතරම් දුෂ්කරද යන්න තේරුම් ගත යුතුය. නමුත් මගේ මතකයේ ඇති CloudFormation හි හැසිරීම වසර ගණනාවක් පුරා කිසි විටෙකත් වෙනස් වී නොමැත.

කකුල හමුවන්න... ඒක උණ්ඩයක්

මම දන්නා තරමින් සම්පත් මකන්න පිටස්තරයෙක් ඔබේ CF තොගයෙන් CloudFormation තොගය කළ නොහැක. Terraform සම්බන්ධයෙන්ද එය එසේම වේ. ඔබගේ තොගයට පවතින සම්පත් ආයාත කිරීමට එය ඔබට ඉඩ සලසයි. කාර්යය විශ්මයජනක යැයි පැවසිය හැකි නමුත් විශාල බලයක් සමඟ විශාල වගකීමක් ඇත. ඔබට අවශ්‍ය වන්නේ තොගයට සම්පතක් එක් කිරීමට පමණක් වන අතර, ඔබ ඔබේ තොගය සමඟ වැඩ කරන අතරතුර, ඔබට මෙම සම්පත මකා දැමීමට හෝ වෙනස් කිරීමට නොහැක. එක දවසක් ඒක පස්සට ගියා. එක් දිනක් Twitch හි, යම්කිසි අකටයුත්තක් සිදු නොවන අතරේ, යමෙකු අහම්බෙන් වෙනත් කෙනෙකුගේ AWS ආරක්ෂක කණ්ඩායමක් ඔවුන්ගේම ටෙරාෆෝම් තොගයට ආනයනය කළේය. මම විධාන කිහිපයක් ඇතුළත් කළ අතර ... ආරක්ෂක කණ්ඩායම (එන ගමනාගමනය සමඟ) අතුරුදහන් විය.

ටෙරාෆෝම් විශිෂ්ටයි

අසම්පූර්ණ තත්වයන්ගෙන් ප්රකෘතිමත් වීම

සමහර විට CloudFormation එක ප්‍රාන්තයකින් තවත් ප්‍රාන්තයකට සම්පූර්ණයෙන්ම මාරු වීමට අසමත් වේ. ඒ සමගම, ඔහු පෙර එකට ආපසු යාමට උත්සාහ කරනු ඇත. මෙය සැමවිටම කළ නොහැකි වීම කණගාටුවට කරුණකි. පසුව සිදු වූ දේ නිදොස් කිරීම තරමක් බියජනක විය හැකිය - එය හැක් කිරීම ගැන CloudFormation සතුටු වේ දැයි ඔබ දන්නේ නැත - එය නිවැරදි කිරීමට පවා. පෙර තත්වයට ආපසු යාමට හැකි වේද නැද්ද යන්න, ඔහු ඇත්ත වශයෙන්ම තීරණය කරන්නේ කෙසේදැයි නොදන්නා අතර, පෙරනිමියෙන්, ප්රාතිහාර්යයක් සඳහා පැය ගණනක් රැඳී සිටියි.

අනෙක් අතට, Terraform, අසාර්ථක වූ සංක්‍රාන්ති වලින් වඩාත් අලංකාර ලෙස ප්‍රකෘතිමත් වීමට නැඹුරු වන අතර උසස් දෝශ නිරාකරණ මෙවලම් ඉදිරිපත් කරයි.

ලේඛන තත්ත්වයට වඩා පැහැදිලි වෙනස්කම්

“හරි, ලෝඩ් බැලන්සර්, ඔයා වෙනස් වෙනවා. ඒත් කොහොමද?"

කනස්සල්ලෙන් සිටින ඉංජිනේරු, "පිළිගන්න" බොත්තම එබීමට සූදානම්.

සමහර විට මට වරාය අංකයක් එක් කිරීම හෝ ආරක්ෂක කණ්ඩායමක් වෙනස් කිරීම වැනි, CloudFormation තොගයේ ඇති load balancer සමඟ යම් යම් හැසිරවීම් සිදු කිරීමට අවශ්‍ය වේ. ClouFormation වෙනස්කම් දුර්වල ලෙස පෙන්වයි. මම, අල්ෙපෙනති සහ ඉඳිකටු මත, මම අවශ්‍ය කිසිවක් මකා නැති බවත් අනවශ්‍ය කිසිවක් එකතු කර නැති බවත් සහතික කර ගැනීමට yaml ගොනුව දස වතාවක් දෙවරක් පරීක්ෂා කරන්න.

මේ සම්බන්ධයෙන් ටෙරාෆෝම් වඩා විනිවිද පෙනෙන ය. සමහර විට ඔහු ඉතා විනිවිද පෙනෙන ය (කියවන්න: කම්මැලි). වාසනාවකට මෙන්, නවතම අනුවාදයේ වැඩි දියුණු කළ වෙනස්කම් සංදර්ශකය ඇතුළත් වන අතර එමඟින් ඔබට දැන් වෙනස් වන දේ හරියටම දැක ගත හැකිය.

නම්‍යශීලී බව

මෘදුකාංග පසුපසට ලියන්න.

කෙටියෙන් කිවහොත්, දිගුකාලීන මෘදුකාංගවල වැදගත්ම ලක්ෂණය වන්නේ වෙනස් වීමට අනුවර්තනය වීමේ හැකියාවයි. ඕනෑම මෘදුකාංගයක් පසුපසට ලියන්න. බොහෝ විට මම "සරල" සේවාවක් ලබා ගැනීමෙන් වැරදි සිදු කර ඇති අතර, පසුව සෑම දෙයක්ම තනි CloudFormation හෝ Terraform තොගයක් බවට පත් කිරීමට පටන් ගත්තා. ඇත්ත වශයෙන්ම, මාස කිහිපයකට පසු, මම සියල්ල වැරදි ලෙස වටහාගෙන ඇති බව හෙළි වූ අතර, සේවාව ඇත්ත වශයෙන්ම සරල නැත! දැන් මට කෙසේ හෝ විශාල තොගයක් කුඩා කොටස් වලට කැඩීමට අවශ්‍යයි. ඔබ CloudFormation සමඟ වැඩ කරන විට, මෙය කළ හැක්කේ පවතින තොගය ප්‍රථමයෙන් ප්‍රතිනිර්මාණය කිරීමෙන් පමණක් වන අතර, මම මෙය මගේ දත්ත සමුදායන් සමඟ නොකරමි. අනෙක් අතට, ටෙරාෆෝම්, තොගය විසුරුවා හැරීමට සහ එය වඩාත් තේරුම්ගත හැකි කුඩා කොටස් වලට කැඩීමට හැකි විය.

git හි මොඩියුල

බහු අට්ටි හරහා Terraform කේතය බෙදා ගැනීම CloudFormation කේතය බෙදා ගැනීමට වඩා පහසුය. Terraform සමඟින්, ඔබට ඔබගේ කේතය git ගබඩාවකට දමා අර්ථකථන අනුවාද පාලනය භාවිතයෙන් එයට ප්‍රවේශ විය හැක. මෙම ගබඩාවට ප්‍රවේශය ඇති ඕනෑම කෙනෙකුට බෙදාගත් කේතය නැවත භාවිත කළ හැක. CloudFormation හි සමානය S3 වේ, නමුත් එයට එකම ප්‍රතිලාභ නොමැත, සහ අපි S3 ට පක්ෂව git අත්හැරීමට හේතුවක් නැත.

සංවිධානය වර්ධනය වූ අතර පොදු කොටස් බෙදාගැනීමේ හැකියාව තීරණාත්මක මට්ටමකට ළඟා විය. Terraform මගින් මේ සියල්ල පහසු සහ ස්වාභාවික කරයි, නමුත් CloudFormation ඔබට මෙවැනි දෙයක් ක්‍රියාත්මක වීමට පෙර වළලු හරහා පැනීමට සලස්වයි.

කේතය ලෙස මෙහෙයුම්

"අපි ඒක ස්ක්‍රිප්ට් කරලා හරි යමු."

ටෙරාෆෝම් බයිසිකලය සොයා ගැනීමට වසර 3 කට පෙර ඉංජිනේරුවෙක්.

මෘදුකාංග සංවර්ධනය සම්බන්ධයෙන් ගත් කල, Go හෝ Java වැඩසටහනක් යනු කේතයක් පමණක් නොවේ.

Terraform සිට CloudFormation වෙත මාරු විය - සහ ඒ ගැන කනගාටු විය
කේතය කේතය ලෙස

එය වැඩ කරන යටිතල පහසුකම් ද ඇත.

Terraform සිට CloudFormation වෙත මාරු විය - සහ ඒ ගැන කනගාටු විය
කේතය ලෙස යටිතල පහසුකම්

නමුත් ඇය කොහෙන්ද? එය නිරීක්ෂණය කරන්නේ කෙසේද? ඔබේ කේතය ජීවත් වන්නේ කොහේද? සංවර්ධකයින්ට ප්‍රවේශ අවසරය අවශ්‍යද?

Terraform සිට CloudFormation වෙත මාරු විය - සහ ඒ ගැන කනගාටු විය
කේතය ලෙස මෙහෙයුම්

මෘදුකාංග සංවර්ධකයෙකු වීම යනු කේතය ලිවීම පමණක් නොවේ.

AWS එකම එක නොවේ: ඔබ බොහෝ විට වෙනත් සැපයුම්කරුවන් භාවිතා කරයි. SignalFx, PagerDuty හෝ Github. සමහර විට ඔබට CI/CD සඳහා අභ්‍යන්තර Jenkins සේවාදායකයක් හෝ අධීක්ෂණය සඳහා අභ්‍යන්තර Grafana උපකරණ පුවරුවක් තිබේ. Infra as Code විවිධ හේතූන් මත තෝරාගෙන ඇති අතර, මෘදුකාංග සම්බන්ධ සෑම දෙයකටම එක සමානව වැදගත් වේ.

මම Twitch හි වැඩ කරන විට, අපි Amazon හි මිශ්‍ර කාවැද්දූ සහ AWS පද්ධති තුළ සේවාවන් වේගවත් කළෙමු. අපි බොහෝ ක්ෂුද්‍ර සේවා සඳහා සහයෝගය ලබා දෙමින් මෙහෙයුම් පිරිවැය වැඩි කළෙමු. සාකච්ඡා මේ වගේ දෙයක් වුණා.

  • Я: අපරාදේ, එය එක් ක්ෂුද්‍ර සේවාවක් අධිස්පන්දනය කිරීමට ඉංගිත ගොඩක්. AWS ගිණුමක් සෑදීමට මට මෙම කුණු භාවිතා කිරීමට සිදුවේ (අපි ගිණුම් 2කට ගියෙමු ක්ෂුද්ර සේවා), පසුව මෙය ඇඟවීම් සැකසීමට, මෙය කේත ගබඩාවක් සඳහා සහ මෙය විද්‍යුත් තැපැල් ලැයිස්තුවක් සඳහා, පසුව මෙය...
  • නායකත්වය: අපි ඒක script කරලා හරි බලමු.
  • Я: හරි, නමුත් පිටපතම වෙනස් වේවි. මෙම සියලු ඇමසන් ගිස්මෝස් යාවත්කාලීන දැයි පරීක්ෂා කිරීමට අපට ක්‍රමයක් අවශ්‍ය වනු ඇත.
  • නායකත්වය: හොදයි වගේ දැනෙනවා. ඒ වගේම අපි මේ සඳහා පිටපතක් ලියන්නෙමු.
  • Я: මහා! තවද ස්ක්‍රිප්ටයට තවමත් පරාමිති සැකසීමට අවශ්‍ය වනු ඇත. ඔහු ඒවා පිළිගනීවිද?
  • නායකත්වය: ඔහු යන තැනට ගෙන යාමට ඉඩ දෙන්න!
  • Я: ක්‍රියාවලිය වෙනස් විය හැකි අතර පසුගාමී ගැළපුම නැති වනු ඇත. යම් ආකාරයක අර්ථකථන අනුවාද පාලනයක් අවශ්‍ය වනු ඇත.
  • නායකත්වය: නියම අදහසක්!
  • Я: පරිශීලක අතුරුමුහුණත තුළ මෙවලම් අතින් වෙනස් කළ හැක. මෙය පරීක්ෂා කර නිවැරදි කිරීමට අපට ක්‍රමයක් අවශ්‍ය වේ.

වසර 3කට පසු:

  • නායකත්වය: ඒ වගේම අපිට ටෙරාෆෝම් ලැබුණා.

කතාවේ සදාචාරය නම්: ඔබ වුවද ඇමේසන් සෑම දෙයකම හිස ඔසවයි, ඔබ තවමත් භාවිතා කරන්නේ AWS වෙතින් නොවන දෙයක් වන අතර, එම තත්වය සමමුහුර්තව තබා ගැනීමට වින්‍යාස භාෂාවක් භාවිතා කරන තත්වයක් මෙම සේවාවන්ට ඇත.

CloudFormation lambda vs git මොඩියුල ටෙරාෆෝම්

lambda යනු අභිරුචි තර්ක ගැටළුවට CloudFormation හි විසඳුමයි. ලැම්ඩා සමඟ ඔබට පුළුවන් macros නිර්මාණය කරන්න හෝ පරිශීලක සම්පත. මෙම ප්‍රවේශය Terraform හි git මොඩියුලවල අර්ථකථන අනුවාදයේ නොමැති අමතර සංකීර්ණතා හඳුන්වා දෙයි. මට නම්, වඩාත්ම දැවෙන ගැටළුව වූයේ මෙම සියලුම පරිශීලක ලැම්ඩා සඳහා අවසර කළමනාකරණය කිරීමයි (සහ මේවා AWS ගිණුම් දුසිම් ගණනක් වේ). තවත් වැදගත් ගැටළුවක් වූයේ "පළමුව පැමිණියේ කුකුල් මස් ද බිත්තර ද?" ගැටළුවයි: එය ලැම්ඩා කේතයට සම්බන්ධ විය. මෙම කාර්යයම යටිතල පහසුකම් සහ කේතය වන අතර, එයම අධීක්ෂණය සහ යාවත්කාලීන කිරීම් අවශ්ය වේ. මිනී පෙට්ටියේ ඇති අවසාන ඇණය වූයේ ලැම්ඩා කේත වෙනස් කිරීම් අර්ථකථන ලෙස යාවත්කාලීන කිරීමේ දුෂ්කරතාවයයි; සෘජු විධානයකින් තොරව ස්ටැක් ක්‍රියා ධාවන අතර වෙනස් නොවන බවටද අපට සහතික විය යුතුය.

මට මතකයි වරක් මට සම්භාව්‍ය පැටවුම් සමතුලිතයක් සහිත ඉලාස්ටික් බෝංචි පරිසරය සඳහා කැනරි යෙදවීමක් නිර්මාණය කිරීමට අවශ්‍ය විය. කළ යුතු පහසුම දෙය වනුයේ නිෂ්පාදන පරිසරය අසල EB සඳහා දෙවන යෙදවීමක් සිදු කිරීමයි, එය තවත් පියවරක් ඉදිරියට තබයි: ස්වයංක්‍රීය පරිමාණ කැනරි යෙදවීමේ කණ්ඩායම නිෂ්පාදන පරිසරයට යෙදවීම LB සමඟ ඒකාබද්ධ කිරීම. සහ Terraform භාවිතා කරන නිසා ASG beantalk නිගමනයක් ලෙස, මේ සඳහා Terraform හි අමතර කේත රේඛා 4ක් අවශ්‍ය වේ. CloudFormation හි සැසඳිය හැකි විසඳුමක් තිබේදැයි මා ඇසූ විට, ඔවුන් මට යෙදවීමේ නල මාර්ගයක් සහ සෑම දෙයක්ම සහිත සම්පූර්ණ git ගබඩාවක් වෙත යොමු කළේ, දුර්වල Terraform කේතයේ පේළි 4කට කළ හැකි දෙයක් සඳහාය.

එය ප්ලාවිතය වඩා හොඳින් හඳුනා ගනී

යථාර්ථය අපේක්ෂාවන්ට ගැලපෙන බවට වග බලා ගන්න.

ප්ලාවිතය හඳුනාගැනීම එය යථාර්ථය අපේක්ෂාවන්ට ගැළපෙන බව සහතික කිරීමට උපකාරී වන බැවින් කේත විශේෂාංගයක් ලෙස ඉතා බලවත් මෙහෙයුම් වේ. එය CloudFormation සහ Terraform යන දෙකෙන්ම ලබා ගත හැකිය. නමුත් නිෂ්පාදන තොගය වර්ධනය වන විට, CloudFormation හි ප්ලාවිතය සෙවීම වඩ වඩාත් අසත්‍ය හඳුනාගැනීම් ඇති කළේය.

Terraform සමඟින් ඔබට ප්ලාවිතය හඳුනාගැනීම සඳහා වඩාත් දියුණු ජීවන චක්‍ර කොකු තිබේ. උදාහරණයක් ලෙස, ඔබ විධානය ඇතුල් කරන්න නොසලකා හැරීම_වෙනස් ඔබේ සම්පූර්ණ ECS යෙදවීමෙහි වෙනස්කම් නොසලකා හැරීමකින් තොරව නිශ්චිත කාර්ය නිර්වචනයක වෙනස්කම් නොසලකා හැරීමට ඔබට අවශ්‍ය නම් කෙලින්ම ECS කාර්ය නිර්වචනය තුළ.

CDK සහ CloudFormation හි අනාගතය

CloudFormation විශාල, හරස් යටිතල පහසුකම් පරිමාණයන්හිදී කළමනාකරණය කිරීමට අපහසුය. මෙම දුෂ්කරතා බොහොමයක් හඳුනාගෙන ඇති අතර මෙවලම වැනි දේ අවශ්ය වේ aws-cdk, වලාකුළු යටිතල ව්‍යුහය කේතය තුළ නිර්වචනය කිරීම සහ එය AWS CloudFormation හරහා ධාවනය කිරීම සඳහා රාමුවකි. aws-cdk සඳහා අනාගතය කුමක් වේ දැයි බැලීම සිත්ගන්නාසුළු වනු ඇත, නමුත් එය Terraform හි අනෙකුත් ශක්තීන් සමඟ තරඟ කිරීමට අපහසු වනු ඇත; CloudFormation යාවත්කාලීන කිරීමට, ගෝලීය වෙනස්කම් අවශ්‍ය වනු ඇත.

එබැවින් ටෙරාෆෝම් බලාපොරොත්තු සුන් නොකරයි

මෙය "යටිතල පහසුකම් කේතයක් ලෙස" මිස "පෙළක් ලෙස" නොවේ.

ටෙරාෆෝම් පිළිබඳ මගේ පළමු හැඟීම තරමක් නරක විය. මම හිතන්නේ මට ප්‍රවේශය තේරුණේ නැහැ. සියලුම ඉංජිනේරුවන් පාහේ කැමැත්තෙන් තොරව එය අපේක්ෂිත යටිතල පහසුකම් බවට පරිවර්තනය කළ යුතු පෙළ ආකෘතියක් ලෙස වටහා ගනී. මේ විදියට කරන්න එපා.

හොඳ මෘදුකාංග සංවර්ධනයේ සත්‍යයන් Terraform සඳහා ද අදාළ වේ.

ටෙරාෆෝම් තුළ හොඳ කේතයක් නිර්මාණය කිරීම සඳහා අනුගමනය කරන බොහෝ භාවිතයන් නොසලකා හැර ඇති බව මම දැක ඇත්තෙමි. ඔබ හොඳ ක්‍රමලේඛකයෙකු වීමට වසර ගණනාවක් ඉගෙන ගෙන ඇත. ඔබ Terraform සමඟ වැඩ කරන නිසා මෙම අත්දැකීම අත් නොහරින්න. හොඳ මෘදුකාංග සංවර්ධනයේ සත්‍යයන් Terraform සඳහා අදාළ වේ.

කේතය ලේඛනගත නොකළ හැක්කේ කෙසේද?

කිසිම ලියකියවිල්ලක් නැති විශාල ටෙරාෆෝම් තොග මම දැකලා තියෙනවා. ඔබට පිටු වල කේතය ලිවිය හැක්කේ කෙසේද - සම්පූර්ණයෙන්ම ලේඛන නොමැතිව? ඔබගේ විස්තර කරන ලියකියවිලි එකතු කරන්න කේතය Terraform ("කේතය" යන වචනය මත අවධාරණය), මෙම කොටස එතරම් වැදගත් වන්නේ ඇයි, සහ ඔබ කරන්නේ කුමක්ද?

වරක් එක් විශාල ප්‍රධාන() කාර්යයක් වූ සේවාවන් අපට යෙදවිය හැක්කේ කෙසේද?

තනි මොඩියුලයක් ලෙස ඉදිරිපත් කර ඇති ඉතා සංකීර්ණ ටෙරාෆෝම් තොග මම දැක ඇත්තෙමි. ඇයි අපි මේ ආකාරයෙන් මෘදුකාංග යෙදවිය නොහැක්කේ? අපි විශාල කාර්යයන් කුඩා ඒවාට බෙදන්නේ ඇයි? Terraform සඳහා ද එම පිළිතුරු අදාළ වේ. ඔබේ මොඩියුලය ඉතා විශාල නම්, ඔබ එය කුඩා මොඩියුලවලට කඩා දැමිය යුතුය.

ඔබේ සමාගම පුස්තකාල භාවිතා කරන්නේ නැද්ද?

ඉංජිනේරුවන්, ටෙරාෆෝම් භාවිතා කරමින් නව ව්‍යාපෘතියක් කරකවන ආකාරය, මෝඩ ලෙස වෙනත් ව්‍යාපෘතිවල විශාල කුට්ටි ඔවුන්ගේ ඒවාට පිටපත් කර, පසුව එය වැඩ කිරීමට පටන් ගන්නා තෙක් ඒවා සමඟ ටින්කර් කරන ආකාරය මම දැක ඇත්තෙමි. ඔබ ඔබේ සමාගම තුළ "සටන්" කේතය සමඟ මේ ආකාරයට වැඩ කරනවාද? අපි පුස්තකාල පමණක් භාවිතා කරන්නේ නැහැ. ඔව්, සෑම දෙයක්ම පුස්තකාලයක් විය යුතු නැත, නමුත් ප්‍රතිපත්තිමය වශයෙන් හවුල් පුස්තකාල නොමැතිව අප සිටින්නේ කොහිද?!

ඔබ PEP8 හෝ gofmt භාවිතා කරන්නේ නැද්ද?

බොහෝ භාෂාවලට සම්මත, පිළිගත් හැඩතල ගැන්වීමේ ක්‍රමයක් ඇත. Python හි මෙය PEP8 වේ. Go - gofmt තුළ. Terraform එහිම ඇත: terraform fmt. ඔබේ සෞඛ්යය සඳහා එය භුක්ති විඳින්න!

JavaScript නොදැන React භාවිතා කරනවාද?

ටෙරාෆෝම් මොඩියුලවලට ඔබ විසින් නිර්මාණය කරන ලද සංකීර්ණ යටිතල ව්‍යුහයේ යම් කොටසක් සරල කළ හැක, නමුත් මින් අදහස් කරන්නේ ඔබට එය කිසිසේත්ම සම්බන්ධ කළ නොහැකි බවයි. සම්පත් තේරුම් නොගෙන Terraform නිවැරදිව භාවිතා කිරීමට අවශ්‍යද? ඔබ විනාශ වී ඇත: කාලය ගෙවී යනු ඇත, ඔබ කිසි විටෙකත් ටෙරාෆෝම් ප්‍රගුණ නොකරනු ඇත.

ඔබ කේතනය කරන්නේ සිංගල්ටන් හෝ පරායත්ත එන්නත් සමඟද?

යැපුම් එන්නත් කිරීම මෘදුකාංග සංවර්ධනය සඳහා පිළිගත් හොඳම භාවිතයක් වන අතර එය සිංගල්ටන් වලට වඩා ප්‍රිය කරයි. Terraform හි මෙය ප්‍රයෝජනවත් වන්නේ කෙසේද? මම දුරස්ථ තත්වය මත රඳා පවතින Terraform මොඩියුල දැක ඇත. දුරස්ථ තත්වය ලබා ගන්නා මොඩියුල ලිවීම වෙනුවට පරාමිති ගන්නා මොඩියුලයක් ලියන්න. ඉන්පසු මෙම පරාමිතීන් මොඩියුලයට යවන්න.

ඔබේ පුස්තකාලය දේවල් දහයක් හොඳින් කරනවාද නැත්නම් එක දෙයක් විශිෂ්ටද?

වඩාත් හොඳින් ක්‍රියාත්මක වන පුස්තකාල යනු ඔවුන් ඉතා හොඳින් කරන එක් කාර්යයක් කෙරෙහි අවධානය යොමු කරන ඒවා වේ. සෑම දෙයක්ම එකවර කිරීමට උත්සාහ කරන විශාල ටෙරාෆෝම් මොඩියුල ලිවීම වෙනුවට, එක් දෙයක් හොඳින් කරන කොටස් සාදන්න. ඉන්පසු ඒවා අවශ්ය පරිදි ඒකාබද්ධ කරන්න.

පසුගාමී ගැළපුමකින් තොරව පුස්තකාලවල වෙනස්කම් සිදු කරන්නේ කෙසේද?

සාමාන්‍ය පුස්තකාලයක් වැනි සාමාන්‍ය ටෙරාෆෝම් මොඩියුලයක්, පසුගාමී නොගැලපීමකින් තොරව කෙසේ හෝ පරිශීලකයින්ට වෙනස්කම් සන්නිවේදනය කිරීමට අවශ්‍ය වේ. පුස්තකාලවල මෙම වෙනස්කම් සිදු වන විට එය කරදරකාරී වන අතර, Terraform මොඩියුලවල පසුගාමී-නොගැලපෙන වෙනස්කම් සිදු කරන විට එය කරදරකාරී වේ. Terraform මොඩියුල භාවිතා කරන විට git tags සහ semver භාවිතා කිරීම රෙකමදාරු කරනු ලැබේ.

ඔබේ නිෂ්පාදන සේවාව ක්‍රියාත්මක වන්නේ ඔබේ ලැප්ටොප් පරිගණකයේ හෝ දත්ත මධ්‍යස්ථානයකද?

Hashicorp වැනි මෙවලම් තිබේ ටෙරාෆෝම් වලාකුළු ඔබේ ටෙරාෆෝම් ධාවනය කිරීමට. මෙම මධ්‍යගත සේවා මගින් භූමි වෙනස්වීම් කළමනාකරණය කිරීම, විගණනය කිරීම සහ අනුමත කිරීම පහසු කරයි.

ඔබ පරීක්ෂණ ලියන්නේ නැද්ද?

කේතය පරීක්ෂා කිරීමට අවශ්‍ය බව ඉංජිනේරුවන් හඳුනා ගනී, නමුත් ටෙරාෆෝම් සමඟ වැඩ කිරීමේදී ඔවුන් බොහෝ විට පරීක්ෂා කිරීම අමතක කරති. යටිතල පහසුකම් සඳහා, මෙය ද්රෝහී අවස්ථාවන්ගෙන් පිරී ඇත. මගේ උපදෙස නම් CI/CD අතරතුර පරික්ෂා කිරීම සඳහා නිවැරදිව යෙදවිය හැකි මොඩියුල භාවිතා කරමින් "පරීක්ෂා කිරීම" හෝ "උදාහරණ නිර්මාණය කිරීම" යි.

ටෙරාෆෝම් සහ ක්ෂුද්‍ර සේවා

ක්ෂුද්‍ර සේවා සමාගම්වල ජීවිතය සහ මරණය නව ක්ෂුද්‍ර සේවා කාර්ය මණ්ඩපවල වේගය, නවෝත්පාදනය සහ බාධා කිරීම් මත රඳා පවතී.

microservice architectures හා සම්බන්ධ වඩාත් පොදු සෘණාත්මක අංගය, සහ ඉවත් කළ නොහැකි, කේතයට නොව කාර්යයට සම්බන්ධ වේ. ඔබ Terraform යනු ක්ෂුද්‍ර සේවා ගෘහ නිර්මාණ ශිල්පයක යටිතල පහසුකම් පැත්ත පමණක් ස්වයංක්‍රීය කිරීමේ ක්‍රමයක් ලෙස සිතන්නේ නම්, එවිට ඔබට පද්ධතියේ සැබෑ ප්‍රතිලාභ අහිමි වේ. දැන් එය දැනටමත් හැම දෙයක්ම කේතය වගේ.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න