DevOps - VTB අත්දැකීම භාවිතා කර පූර්ණ අභ්‍යන්තර සංවර්ධනයක් ගොඩනගා ගන්නේ කෙසේද

DevOps ප්‍රායෝගික වැඩ. අපි මුදා හැරීමේ ස්ථාපන කාලය 10 ගුණයකින් අඩු කළ විට අපට මෙය ඒත්තු ගියේය. අපි VTB හි භාවිතා කරන FIS පැතිකඩ පද්ධතියේ, ස්ථාපනය සඳහා දැන් විනාඩි 90 ට වඩා විනාඩි 10 ක් ගතවේ. මුදා හැරීමේ කාලය සති දෙකේ සිට දින දෙක දක්වා අඩු වී ඇත. අඛණ්ඩව ක්‍රියාත්මක කිරීමේ දෝෂ සංඛ්‍යාව අවම මට්ටම දක්වා පහත වැටී ඇත. "අතින් ශ්රමය" ඉවත් කිරීම සහ වෙළෙන්දා මත යැපීම ඉවත් කිරීම සඳහා, අපි කිහිලිකරු සමඟ වැඩ කිරීමට සහ අනපේක්ෂිත විසඳුම් සොයා ගැනීමට සිදු විය. කප්පාදුවට පහළින් අපි සම්පූර්ණ අභ්‍යන්තර සංවර්ධනයක් ගොඩනඟා ගත් ආකාරය පිළිබඳ සවිස්තරාත්මක කතාවකි.

DevOps - VTB අත්දැකීම භාවිතා කර පූර්ණ අභ්‍යන්තර සංවර්ධනයක් ගොඩනගා ගන්නේ කෙසේද
 

පෙරවදන: DevOps යනු දර්ශනයකි

පසුගිය වසර පුරා, අපි VTB හි DevOps භාවිතයන් අභ්‍යන්තර සංවර්ධනය සහ ක්‍රියාත්මක කිරීම සංවිධානය කිරීමට බොහෝ වැඩ කර ඇත:

  • අපි පද්ධති 12 ක් සඳහා අභ්‍යන්තර සංවර්ධන ක්‍රියාවලීන් ගොඩනඟා ගත්තෙමු;
  • අපි නල මාර්ග 15 ක් දියත් කළ අතර, ඒවායින් හතරක් නිෂ්පාදනයට ගෙන එන ලදී;
  • ස්වයංක්‍රීය පරීක්ෂණ අවස්ථා 1445;
  • අභ්‍යන්තර කණ්ඩායම් විසින් සකස් කරන ලද නිකුතු ගණනාවක් අපි සාර්ථකව ක්‍රියාත්මක කළෙමු.

ගෘහස්ථ සංවර්ධනය සහ DevSecOps භාවිතයන් ක්‍රියාත්මක කිරීම සංවිධානය කිරීමට වඩාත්ම දුෂ්කර එකක් වූයේ FIS පැතිකඩ පද්ධතියයි - සම්බන්ධතා නොවන DBMS මත සිල්ලර නිෂ්පාදන සකසනයකි. එසේ වුවද, සංවර්ධනය ගොඩනඟා ගැනීමට, නල මාර්ගය දියත් කිරීමට, නිෂ්පාදනයේ තනි පුද්ගල නිකුතු නොවන පැකේජ ස්ථාපනය කිරීමට සහ නිකුතු එකලස් කරන ආකාරය ඉගෙන ගැනීමට අපට හැකි විය. කාර්යය පහසු නොවීය, නමුත් සිත්ගන්නාසුළු හා ක්රියාත්මක කිරීමේදී පැහැදිලි සීමාවන් නොමැතිව: මෙන්න පද්ධතිය - ඔබ ගෘහස්ථ සංවර්ධනයක් ගොඩනගා ගත යුතුය. එකම කොන්දේසිය වන්නේ ඵලදායී පරිසරයකට පෙර සංයුක්ත තැටිය භාවිතා කිරීමයි.

මුලදී, ක්රියාත්මක කිරීමේ ඇල්ගොරිතම සරල සහ පැහැදිලි ලෙස පෙනෙන්නට තිබුණි:

  • අපි මූලික සංවර්ධන විශේෂඥතාව වර්ධනය කර, දළ දෝෂයකින් තොරව කේත කණ්ඩායමෙන් පිළිගත හැකි තත්ත්ව මට්ටමක් ලබා ගනිමු;
  • අපි හැකිතාක් පවතින ක්‍රියාවලීන්ට අනුකලනය කරමු;
  • පැහැදිලි අවධීන් අතර කේතය මාරු කිරීම සඳහා, අපි නල මාර්ගයක් කපා එහි එක් කෙළවරක් අඛණ්ඩව තල්ලු කරමු.

මෙම කාලය තුළ, අවශ්ය ප්රමාණයේ සංවර්ධන කණ්ඩායම කුසලතා වර්ධනය කර ගත යුතු අතර පිළිගත හැකි මට්ටමකට නිකුත් කිරීම් සඳහා එහි දායකත්වය වැඩි කළ යුතුය. එපමණයි, අපට සම්පූර්ණ කළ කාර්යය සලකා බැලිය හැකිය.

අවශ්‍ය ප්‍රතිඵලය සඳහා මෙය සම්පූර්ණයෙන්ම බලශක්ති-කාර්යක්ෂම මාර්ගයක් බව පෙනේ: මෙන්න DevOps, මෙන්න කණ්ඩායමේ කාර්ය සාධන ප්‍රමිතික, මෙන්න සමුච්චිත ප්‍රවීණත්වය... නමුත් ප්‍රායෝගිකව, අපට DevOps තවමත් දර්ශනය පිළිබඳ තවත් තහවුරු කිරීමක් ලැබුණි. , සහ "gitlab ක්‍රියාවලියට අමුණා නැත, ansible, nexus සහ ලැයිස්තුවේ තවත් පහළට."

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

ගෘහස්ථ සංවර්ධනය ආරම්භ වන්නේ කොතැනින්ද? 

එය වැඩ කිරීමට වඩාත්ම මිත්රශීලී පද්ධතියක් නොවීය. වාස්තු විද්‍යාත්මකව, එය එක් විශාල සම්බන්ධක නොවන DBMS එකක් වූ අතර, වෙනම ක්‍රියාත්මක කළ හැකි වස්තු රාශියකින් (ස්ක්‍රිප්ට්, ක්‍රියා පටිපාටි, කාණ්ඩ ආදිය) සමන්විත වූ අතර ඒවා අවශ්‍ය පරිදි හැඳින්වූ අතර කළු පෙට්ටියක මූලධර්මය මත ක්‍රියා කළේය: එයට ඉල්ලීමක් සහ ගැටළු ලැබේ. ප්රතිචාරයක්. සඳහන් කළ යුතු වෙනත් දුෂ්කරතා ඇතුළත් වේ:

  • විදේශීය භාෂාව (MUMPS);
  • කොන්සෝල අතුරුමුහුණත;
  • ජනප්‍රිය ස්වයංක්‍රීය මෙවලම් සහ රාමු සමඟ ඒකාබද්ධ නොවීම;
  • ටෙරාබයිට් දස ගණනකින් දත්ත පරිමාව;
  • පැයකට මෙහෙයුම් මිලියන 2 කට වඩා වැඩි බරක්;
  • වැදගත්කම - ව්යාපාර-විවේචනාත්මක.

ඒත් එක්කම අපේ පැත්තේ source code repository එකක් තිබුනේ නෑ. කොහෙත්ම. ලියකියවිලි තිබුනා, නමුත් සියලුම ප්‍රධාන දැනුම සහ නිපුණතා බාහිර සංවිධානයක පැත්තේ විය.
අපි මුල සිටම පාහේ පද්ධතියේ සංවර්ධනය ප්‍රගුණ කිරීමට පටන් ගත්තෙමු, එහි ලක්ෂණ සහ අඩු බෙදා හැරීම සැලකිල්ලට ගනිමින්. 2018 ඔක්තෝම්බර් මාසයේදී ආරම්භ කරන ලදී:

  • කේත උත්පාදනය පිළිබඳ ලියකියවිලි සහ මූලික කරුණු අධ්‍යයනය කළා;
  • අපි විකුණුම්කරුගෙන් ලැබුණු සංවර්ධනය පිළිබඳ කෙටි පාඨමාලාව හැදෑරුවා;
  • මූලික සංවර්ධන කුසලතා ප්‍රගුණ කිරීම;
  • අපි නව කණ්ඩායම් සාමාජිකයින් සඳහා පුහුණු අත්පොතක් සම්පාදනය කළෙමු;
  • "සටන්" මාදිලියේ කණ්ඩායම ඇතුළත් කිරීමට අපි එකඟ විය;
  • කේත තත්ත්ව පාලනය සමඟ ගැටළුව විසඳා ඇත;
  • අපි සංවර්ධනය වෙනුවෙන් ස්ථාවරයක් සංවිධානය කළා.

අපි මාස තුනක් විශේෂඥ දැනුම වර්ධනය කර පද්ධතිය තුළ ගිල්වා ගත කළ අතර, 2019 ආරම්භයේ සිට, අභ්‍යන්තර සංවර්ධනය දීප්තිමත් අනාගතයක් කරා ගමන් කිරීම ආරම්භ කළේය, සමහර විට දුෂ්කර නමුත් විශ්වාසයෙන් සහ අරමුණු සහිතව.

ගබඩා සංක්‍රමණය සහ ස්වයං පරීක්ෂණ

පළමු DevOps කාර්යය වන්නේ ගබඩාවයි. ප්‍රවේශය ලබා දීමට අපි ඉක්මනින් එකඟ වූ නමුත් ශාඛා කිහිපයක ආකෘතියකට මාරුවීම සහ Git Flow සංවර්ධනය කිරීමත් සමඟ එක් කඳ ශාඛාවක් සමඟ වත්මන් SVN වෙතින් අපගේ ඉලක්කගත Git වෙත සංක්‍රමණය වීම අවශ්‍ය විය. අපට ඔවුන්ගේම යටිතල පහසුකම් සහිත කණ්ඩායම් 2ක් ද, විදේශයන්හි වෙළෙන්දාගේ කණ්ඩායමේ කොටසක් ද ඇත. මට Gits දෙකක් සමඟ ජීවත් වීමට සහ සමමුහුර්තකරණය සහතික කිරීමට සිදු විය. එවැනි තත්වයක් තුළ, එය නරක දෙකෙන් අඩු විය.

ගබඩාවේ සංක්‍රමණය නැවත නැවතත් කල් දමන ලදී; එය නිම කරන ලද්දේ අප්‍රේල් මාසයේදී පමණි, ඉදිරි පෙළේ සගයන්ගේ සහාය ඇතිව. Git Flow සමඟින්, අපි ආරම්භයක් සඳහා දේවල් සරලව තබා ගැනීමට තීරණය කළ අතර hotfix, develop සහ release සමඟ සම්භාව්‍ය යෝජනා ක්‍රමය මත පදිංචි විය. ඔවුන් ස්වාමියා (එනම් ප්‍රොඩ් වැනි) අත්හැරීමට තීරණය කළහ. මෙම විකල්පය අපට ප්‍රශස්ත වූයේ මන්දැයි අපි පහත පැහැදිලි කරන්නෙමු. කණ්ඩායම් දෙකකට පොදු වෙළෙන්දාට අයත් බාහිර ගබඩාවක් සේවකයෙකු ලෙස භාවිතා කරන ලදී. එය කාලසටහනකට අනුව අභ්‍යන්තර ගබඩාව සමඟ සමමුහුර්ත විය. දැන් Git සහ Gitlab සමඟ ක්‍රියාවලි ස්වයංක්‍රීය කිරීමට හැකි විය.

ස්වයංක්‍රීය පරීක්ෂණ පිළිබඳ ගැටළුව පුදුම සහගත ලෙස පහසුවෙන් විසඳා ඇත - අපට සූදානම් කළ රාමුවක් ලබා දී ඇත. පද්ධතියේ සුවිශේෂතා සැලකිල්ලට ගනිමින්, වෙනම මෙහෙයුමක් ඇමතීම ව්යාපාර ක්රියාවලියේ තේරුම් ගත හැකි කොටසක් වූ අතර ඒ සමඟම ඒකක පරීක්ෂණයක් ලෙසද සේවය කළේය. ඉතිරිව තිබුණේ පරීක්ෂණ දත්ත සකස් කිරීම සහ ස්ක්‍රිප්ට් ඇමතීමේ සහ ප්‍රතිඵල ඇගයීමේ අපේක්ෂිත අනුපිළිවෙල සැකසීමයි. මෙහෙයුම් සංඛ්‍යාලේඛන, ක්‍රියාවලිවල විවේචනාත්මකභාවය සහ පවතින ප්‍රතිගාමී ක්‍රමවේදය මත පදනම්ව සකස් කරන ලද අවස්ථා ලැයිස්තුව පුරවා ඇති විට, ස්වයංක්‍රීය පරීක්ෂණ දර්ශනය වීමට පටන් ගත්තේය. දැන් අපට නල මාර්ගය ඉදිකිරීම ආරම්භ කළ හැකිය.

එය කෙසේද: ස්වයංක්රීයකරණයට පෙර ආකෘතිය

ක්රියාත්මක කිරීමේ ක්රියාවලියේ පවතින ආකෘතිය වෙනම කතාවකි. සෑම වෙනස් කිරීමක්ම වෙනම වර්ධක ස්ථාපන පැකේජයක් ලෙස අතින් මාරු කරන ලදී. ඊළඟට ජිරා හි අතින් ලියාපදිංචි කිරීම සහ පරිසරය මත අතින් ස්ථාපනය කිරීම සිදු විය. තනි පැකේජ සඳහා, සෑම දෙයක්ම පැහැදිලිව පෙනෙන්නට තිබුණත්, නිකුතුව සකස් කිරීමත් සමඟ දේවල් වඩාත් සංකීර්ණ විය.

ස්වාධීන වස්තූන් වූ තනි බෙදාහැරීම් මට්ටමින් එකලස් කිරීම සිදු කරන ලදී. ඕනෑම වෙනසක් නව බෙදාහැරීමකි. වෙනත් දේ අතර, ප්‍රධාන නිකුතු සංයුතියේ 60-70 පැකේජ සඳහා 10-15 තාක්ෂණික අනුවාද එකතු කරන ලදී - නිකුතුවෙන් යමක් එකතු කරන විට හෝ බැහැර කරන විට සහ නිකුත් කිරීම් වලින් පිටත විකුණුම්වල වෙනස්කම් පිළිබිඹු කරන විට ලබාගත් අනුවාද.

බෙදාහැරීම් තුළ ඇති වස්තූන් එකිනෙක අතිච්ඡාදනය වී ඇත, විශේෂයෙන් ක්‍රියාත්මක කළ හැකි කේතයේ, එය අඩකට වඩා අඩු අද්විතීය විය. දැනටමත් ස්ථාපනය කර ඇති කේතය සහ ස්ථාපනය සැලසුම් කර ඇති තැනැත්තා මත බොහෝ පරායත්තතා තිබුණි. 

කේතයේ අවශ්‍ය අනුවාදය ලබා ගැනීම සඳහා, ස්ථාපන අනුපිළිවෙල දැඩි ලෙස අනුගමනය කිරීම අවශ්‍ය විය, එම කාලය තුළ වස්තූන් භෞතිකව බොහෝ වාරයක්, 10-12 වාරයක් නැවත ලියා ඇත.

පැකේජ සමූහයක් ස්ථාපනය කිරීමෙන් පසු, සැකසුම් ආරම්භ කිරීම සඳහා මට අතින් උපදෙස් අනුගමනය කිරීමට සිදු විය. නිකුතුව වෙළෙන්දා විසින් එකලස් කර ස්ථාපනය කරන ලදී. නිකුතුවේ සංයුතිය ක්‍රියාත්මක කිරීමේ මොහොතට පෙර පාහේ පැහැදිලි කරන ලද අතර එමඟින් “විසංයෝජනය” පැකේජ නිර්මාණය විය. එහි ප්‍රතිඵලයක් වශයෙන්, සැපයුම්වලින් සැලකිය යුතු කොටසක් මුදා හැරීමේ සිට එහි ම වලිගය වන “decouplings” සමඟ මුදා හැරීමට මාරු විය.

මෙම ප්‍රවේශය සමඟ - පැකේජ මට්ටමින් මුදා හැරීමේ ප්‍රහේලිකාව එකලස් කිරීම - තනි ප්‍රධාන ශාඛාවකට ප්‍රායෝගික අර්ථයක් නොමැති බව දැන් පැහැදිලිය. නිෂ්පාදනය මත ස්ථාපනය කිරීම අතින් ශ්‍රමය පැය එකහමාරක සිට පැය දෙක දක්වා ගත විය. අවම වශයෙන් ස්ථාපක මට්ටමින් වස්තු සැකසීමේ අනුපිළිවෙල නියම කර තිබීම හොඳය: ක්ෂේත්‍ර සහ ව්‍යුහයන් ඒවා සහ ක්‍රියා පටිපාටි සඳහා දත්ත වලට පෙර ඇතුළත් කර ඇත. කෙසේ වෙතත්, මෙය වැඩ කළේ වෙනම පැකේජයක් තුළ පමණි.

මෙම ප්‍රවේශයේ තාර්කික ප්‍රතිඵලය වූයේ වස්තූන්ගේ වංක අනුවාද, අනවශ්‍ය කේත, මඟහැරුණු උපදෙස් සහ වස්තූන්ගේ අන්‍යෝන්‍ය බලපෑම් සඳහා ගණන් නොගත් ආකාරයේ අනිවාර්ය ස්ථාපන දෝෂයන්, ඒවා මුදා හැරීමෙන් පසු උෂ්ණාධික ලෙස ඉවත් කිරීමයි. 

පළමු යාවත්කාලීන: එකලස් කිරීම සහ බෙදා හැරීම

මෙම මාර්ගය ඔස්සේ නලයක් හරහා කේතය සම්ප්රේෂණය කිරීමෙන් ස්වයංක්රීයකරණය ආරම්භ විය:

  • ගබඩාවෙන් නිමි භාරදීම ගන්න;
  • කැපවූ පරිසරයක එය ස්ථාපනය කරන්න;
  • ස්වයං පරීක්ෂණ ධාවනය කරන්න;
  • ස්ථාපන ප්රතිඵලය ඇගයීම;
  • පරීක්ෂණ විධානයේ පැත්තේ පහත නල මාර්ගය අමතන්න.

ඊළඟ නල මාර්ගය ජිරා හි කාර්යය ලියාපදිංචි කළ යුතු අතර, කාර්යය ක්රියාත්මක කිරීමේ කාලය මත රඳා පවතින තෝරාගත් පරීක්ෂණ ලූප වෙත විධාන බෙදා හැරීමට බලා සිටිය යුතුය. ප්‍රේරකය - දී ඇති ලිපිනයකට භාරදීමට ඇති සූදානම පිළිබඳ ලිපියක්. මෙය, ඇත්ත වශයෙන්ම, පැහැදිලි කිහිලිකරුවෙක් විය, නමුත් මට කොහේ හරි ආරම්භ කිරීමට සිදු විය. 2019 මැයි මාසයේදී, කේතය මාරු කිරීම ආරම්භ වූයේ අපගේ පරිසරය පිළිබඳ චෙක්පත් සමඟිනි. ක්‍රියාවලිය ආරම්භ වී ඇත, ඉතිරිව ඇත්තේ එය හොඳ හැඩයකට ගෙන ඒමයි:

  • සෑම වෙනස් කිරීමක්ම වෙනම ශාඛාවක සිදු කරනු ලැබේ, එය ස්ථාපන පැකේජයට අනුරූප වන අතර ඉලක්කගත ප්රධාන ශාඛාවට ඒකාබද්ධ වේ;
  • නල මාර්ග දියත් කිරීමේ ප්‍රේරකය යනු ඒකාබද්ධ ඉල්ලීමක් හරහා ප්‍රධාන ශාඛාවේ නව කැපවීමක පෙනුමයි, එය ගෘහස්ථ කණ්ඩායමේ නඩත්තු කරන්නන් විසින් වසා ඇත;
  • නිධිය සෑම විනාඩි පහකට වරක් සමමුහුර්ත කර ඇත;
  • ස්ථාපන පැකේජය එකලස් කිරීම ආරම්භ කර ඇත - විකුණුම්කරුගෙන් ලැබුණු එකලස් කරන්නා භාවිතා කිරීම.

මෙයින් පසු, කේතය පරීක්ෂා කිරීම සහ මාරු කිරීම, නළය දියත් කිරීම සහ අපගේ පැත්තට එකලස් කිරීම සඳහා දැනටමත් පවතින පියවරයන් විය.

මෙම විකල්පය ජූලි මාසයේදී දියත් කරන ලදී. සංක්‍රාන්තියේ දුෂ්කරතා නිසා විකුණුම්කරු සහ ඉදිරි පෙළ අතර යම් අතෘප්තියක් ඇති වූ නමුත් ඊළඟ මාසය තුළ අපි සියලු රළු දාර ඉවත් කර කණ්ඩායම් අතර ක්‍රියාවලියක් ස්ථාපිත කිරීමට සමත් විය. අපි දැන් කැපවීමෙන් සහ බෙදා හැරීමෙන් එකලස් කර ඇත.
අගෝස්තු මාසයේදී, අපගේ නල මාර්ගය භාවිතයෙන් නිෂ්පාදනය සඳහා වෙනම පැකේජයක පළමු ස්ථාපනය සම්පූර්ණ කිරීමට අපි සමත් වූ අතර, සැප්තැම්බර් මාසයේ සිට, ව්‍යතිරේකයකින් තොරව, තනි නිකුත් නොකරන ලද පැකේජවල සියලුම ස්ථාපනයන් අපගේ සීඩී මෙවලම හරහා සිදු කරන ලදී. ඊට අමතරව, වෙළෙන්දාට වඩා කුඩා කණ්ඩායමක් සමඟ මුදා හැරීමේ සංයුතියෙන් 40% ක අභ්‍යන්තර කාර්යයන් කොටසක් ලබා ගැනීමට අපට හැකි විය - මෙය නියත සාර්ථකත්වයකි. වඩාත්ම බැරෑරුම් කාර්යය ඉතිරිව ඇත - නිකුතුව එකලස් කිරීම සහ ස්ථාපනය කිරීම.

අවසාන විසඳුම: සමුච්චිත ස්ථාපන පැකේජ 

වෙළෙන්දාගේ උපදෙස් ස්ක්‍රිප්ට් කිරීම එතරම් ස්වයංක්‍රීයකරණයක් බව අපි හොඳින් තේරුම් ගත්තෙමු; අපට ක්‍රියාවලිය ගැනම නැවත සිතා බැලීමට සිදු විය. විසඳුම පැහැදිලි විය - අවශ්‍ය අනුවාදවල සියලුම වස්තූන් සමඟ මුදා හැරීමේ ශාඛාවෙන් සමුච්චිත සැපයුමක් එකතු කිරීම.

අපි සංකල්පය සනාථ කිරීම සමඟ ආරම්භ කළෙමු: අපි පසුගිය ක්‍රියාත්මක කිරීමේ අන්තර්ගතයට අනුව මුදා හැරීමේ පැකේජය අතින් එකලස් කර එය අපගේ පරිසරයේ ස්ථාපනය කළෙමු. සෑම දෙයක්ම සාර්ථක විය, සංකල්පය ශක්ය විය. ඊළඟට, අපි ආරම්භක සැකසුම් ස්ක්‍රිප්ට් කිරීම සහ ඒවා කැපවීමට ඇතුළත් කිරීමේ ගැටලුව විසඳා ගත්තෙමු. අපි නව පැකේජයක් සකස් කර සමෝච්ඡ යාවත්කාලීනයේ කොටසක් ලෙස පරීක්ෂණ පරිසරයන් තුළ එය පරීක්ෂා කළෙමු. ක්රියාත්මක කිරීමේ කණ්ඩායමේ පුළුල් පරාසයක අදහස් සහිතව ස්ථාපනය සාර්ථක විය. නමුත් ප්‍රධානම දේ තමයි අපේ එකලස් කිරීමත් සමඟ නොවැම්බර් නිකුතුවේදී නිෂ්පාදනයට යාමට අපට අවසර ලැබුණි.

මාසයකට වැඩි කාලයක් ඉතිරිව තිබියදී, අතින් තෝරාගත් සැපයුම් පැහැදිලිවම ඇඟවුම් කළේ කාලය අවසන් වෙමින් පවතින බවයි. මුදා හැරීමේ ශාඛාවෙන් ගොඩනැගීමට ඔවුන් තීරණය කළ නමුත් එය වෙන් කළ යුත්තේ ඇයි? අපට නිෂ්පාදනයක් වැනි දෙයක් නොමැති අතර පවතින ශාඛා හොඳ නැත - අනවශ්‍ය කේත ගොඩක් තිබේ. අපට ඉක්මනින් ප්‍රොඩ්-ලයික් කපා ගත යුතු අතර මෙය කැපවීම් තුන්දහසකට වඩා වැඩිය. අතින් එකලස් කිරීම කිසිසේත්ම විකල්පයක් නොවේ. නිෂ්පාදන ස්ථාපන ලොගය හරහා දිවෙන සහ ශාඛාව වෙත කැපවීම් එකතු කරන ස්ක්‍රිප්ට් එකක් අපි සටහන් කළෙමු. තුන්වන වරට එය නිවැරදිව ක්රියා කළ අතර, "ගොනුවක් සමඟ අවසන් කිරීමෙන්" ශාඛාව සූදානම් විය. 

ස්ථාපන පැකේජය සඳහා අපි අපේම තනන්නා ලියා සතියකින් එය අවසන් කළෙමු. එවිට අපට ස්ථාපකය විවෘත මූලාශ්‍ර බැවින් පද්ධතියේ මූලික ක්‍රියාකාරිත්වයෙන් වෙනස් කිරීමට සිදු විය. චෙක්පත් සහ වෙනස් කිරීම් මාලාවකින් පසුව, ප්රතිඵලය සාර්ථක ලෙස සලකනු ලැබීය. මේ අතර, නිකුතුවේ සංයුතිය හැඩගස්වා ගත් අතර, නිවැරදි ස්ථාපනය සඳහා පරීක්ෂණ පරිපථය නිෂ්පාදන එක සමඟ පෙළගැස්වීමට අවශ්‍ය වූ අතර මේ සඳහා වෙනම පිටපතක් ලියා ඇත.

ස්වාභාවිකවම, පළමු ස්ථාපනය ගැන බොහෝ අදහස් තිබුණි, නමුත් සමස්ත කේතය වැඩ කළේය. තුන්වන ස්ථාපනයෙන් පසු සෑම දෙයක්ම හොඳින් පෙනෙන්නට පටන් ගත්තේය. වස්තූන්ගේ සංයුතිය පාලනය කිරීම සහ අනුවාද පාලනය අතින් අතින් වෙන වෙනම නිරීක්ෂණය කරන ලද අතර එය මෙම අවස්ථාවෙහිදී තරමක් යුක්ති සහගත විය.

අතිරේක අභියෝගයක් වූයේ සැලකිල්ලට ගත යුතු නිදහස් නොවන විශාල සංඛ්යාවක් විය. නමුත් Prod-like ශාඛාව සහ Rebase සමඟ, කාර්යය විනිවිදභාවයට පත් විය.

පළමු වරට, ඉක්මනින් සහ දෝෂ නොමැතිව

අපි නිකුතුවට ප්‍රවේශ වූයේ ශුභවාදී ආකල්පයකින් සහ විවිධ පරිපථවල සාර්ථක ස්ථාපනයන් දුසිමකට වඩා වැඩි ප්‍රමාණයකිනි. නමුත් වචනාර්ථයෙන් නියමිත දිනට දිනකට පෙර, විකුණුම්කරු පිළිගත් ආකාරයෙන් ස්ථාපනය සඳහා නිකුතුව සකස් කිරීමේ කාර්යය සම්පූර්ණ කර නොමැති බව පෙනී ගියේය. කිසියම් හේතුවක් නිසා අපගේ ගොඩනැගීම ක්‍රියා නොකරන්නේ නම්, මුදා හැරීම කඩාකප්පල් වේ. එපමනක් නොව, අපගේ ප්රයත්නයන් තුලින්, විශේෂයෙන් අප්රසන්නය. අපිට පසුබැසීමට ක්‍රමයක් තිබුණේ නැහැ. එබැවින්, අපි විකල්ප විකල්ප ගැන සිතා, ක්රියාකාරී සැලසුම් සකස් කර ස්ථාපනය ආරම්භ කළෙමු.

පුදුමයට කරුණක් නම්, වස්තූන් 800 කට වඩා වැඩි ගණනකින් සමන්විත සම්පූර්ණ නිකුතුව, පළමු වරට සහ විනාඩි 10 කින් නිවැරදිව ආරම්භ විය. අපි දෝෂ සොයමින් ලඝු-සටහන් පරීක්ෂා කිරීමට පැයක් ගත කළෙමු, නමුත් කිසිවක් සොයාගත නොහැකි විය.

මුළු ඊළඟ දවසේම මුදා හැරීමේ කතාබස් තුළ නිශ්ශබ්දතාවයක් පැවතුනි: ක්රියාත්මක කිරීමේ ගැටළු, වංක අනුවාද හෝ "නුසුදුසු" කේතයක් නොමැත. එය කෙසේ හෝ අපහසු විය. පසුව, සමහර අදහස් මතු වූ නමුත්, අනෙකුත් පද්ධති හා පෙර අත්දැකීම් හා සසඳන විට, ඔවුන්ගේ සංඛ්යාව සහ ප්රමුඛත්වය සැලකිය යුතු ලෙස අඩු විය.

සමුච්චිත බලපෑමෙන් අතිරේක බලපෑමක් වූයේ එකලස් කිරීමේ සහ පරීක්ෂා කිරීමේ ගුණාත්මක භාවය වැඩි වීමයි. සම්පූර්ණ නිකුතුවේ බහුවිධ ස්ථාපනයන් හේතුවෙන්, ගොඩනැගීමේ දෝෂ සහ යෙදවීමේ දෝෂ කාලෝචිත ලෙස හඳුනා ගන්නා ලදී. සම්පූර්ණ මුදා හැරීමේ වින්‍යාසයන් පරීක්ෂා කිරීම මඟින් වර්ධක ස්ථාපනයන්හිදී නොපෙන්වන වස්තූන්ගේ අන්‍යෝන්‍ය බලපෑමේ අඩුපාඩු හඳුනා ගැනීමට හැකි විය. විශේෂයෙන්ම නිකුත් කිරීමට අපගේ 57% දායකත්වය ලබා දීමෙන් එය නිසැකවම සාර්ථක විය.

ප්රතිඵල සහ නිගමන

වසරකට අඩු කාලයකදී අපි පහත දේ කළෙමු:

  • විදේශීය පද්ධතියක් භාවිතා කරමින් පූර්ණ අභ්‍යන්තර සංවර්ධනයක් ගොඩනඟන්න;
  • විවේචනාත්මක විකුණුම් යැපීම ඉවත් කරන්න;
  • ඉතා මිත්‍රශීලී නොවන උරුමයක් සඳහා CI/CD දියත් කරන්න;
  • ක්‍රියාත්මක කිරීමේ ක්‍රියාවලීන් නව තාක්ෂණික මට්ටමකට නැංවීම;
  • යෙදවීමේ කාලය සැලකිය යුතු ලෙස අඩු කිරීම;
  • ක්රියාත්මක කිරීමේ දෝෂ සංඛ්යාව සැලකිය යුතු ලෙස අඩු කරන්න;
  • ඔබ ප්‍රමුඛ සංවර්ධන විශේෂඥයෙකු ලෙස විශ්වාසයෙන් ප්‍රකාශ කරන්න.

ඇත්ත වශයෙන්ම, විස්තර කර ඇති බොහෝ දේ සම්පූර්ණයෙන්ම ජරාවක් ලෙස පෙනේ, නමුත් මේවා පද්ධතියේ ලක්ෂණ සහ එහි පවතින ක්‍රියාවලි සීමාවන් වේ. මේ මොහොතේ, වෙනස්කම් බලපෑවේ IS පැතිකඩ නිෂ්පාදන සහ සේවා (ප්‍රධාන ගිණුම්, ප්ලාස්ටික් කාඩ්පත්, ඉතුරුම් ගිණුම්, එස්ක්‍රෝ, මුදල් ණය), නමුත් ප්‍රවේශය DevOps භාවිතයන් ක්‍රියාත්මක කිරීමේ කාර්යය සකසා ඇති ඕනෑම IS සඳහා යෙදිය හැකිය. සමුච්චිත ආකෘතිය බොහෝ බෙදාහැරීම් වලින් පසු ක්‍රියාත්මක කිරීම් (නිදහස් නොවන ඒවා ඇතුළුව) සඳහා ආරක්ෂිතව අනුකරණය කළ හැක.

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

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