අවුල් කළමනාකරණය: තාක්ෂණික සිතියමක් ආධාරයෙන් පිළිවෙලක් ගෙන ඒම

අවුල් කළමනාකරණය: තාක්ෂණික සිතියමක් ආධාරයෙන් පිළිවෙලක් ගෙන ඒම

පින්තූරය: නොපෙනී

ආයුබෝවන් සියල්ලටම! අපි සමාගමෙන් ස්වයංක්‍රීය ඉංජිනේරුවන් වෙමු ධනාත්මක තාක්ෂණයන් සහ අපි සමාගමේ නිෂ්පාදන සංවර්ධනය සඳහා සහාය ලබා දෙන්නෙමු: අපි සංවර්ධකයින් විසින් කේත රේඛාවක කැපවීමේ සිට නිමි භාණ්ඩ සහ යාවත්කාලීන සේවාදායකවල බලපත්‍ර ප්‍රකාශයට පත් කිරීම දක්වා සම්පූර්ණ එකලස් කිරීමේ නල මාර්ගයට සහය දෙමු. අවිධිමත් ලෙස, අපි DevOps ඉංජිනේරුවන් ලෙස හැඳින්වේ. මෙම ලිපියෙන් අපට කතා කිරීමට අවශ්‍ය වන්නේ මෘදුකාංග නිෂ්පාදන ක්‍රියාවලියේ තාක්ෂණික අවධීන්, අපි ඒවා දකින ආකාරය සහ ඒවා වර්ගීකරණය කරන ආකාරය ගැන ය.

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

Chaos සහ DevOps ගැන

DevOps සංකල්පයට සංවර්ධන මෙවලම් සහ සේවා මෙන්ම ක්‍රමවේද සහ ඒවා භාවිතා කිරීමේ හොඳම භාවිතයන් ඇතුළත් බව අපි කෙටියෙන් සටහන් කරමු. ගෝලීය වශයෙන් ඉස්මතු කරමු ඉලක්කය අපගේ සමාගම තුළ DevOps අදහස් ක්‍රියාවට නැංවීමෙන්: මෙය ප්‍රමාණාත්මක වශයෙන් නිෂ්පාදනවල නිෂ්පාදන සහ නඩත්තු කිරීමේ පිරිවැයෙහි ස්ථාවර අඩුවීමකි (මිනිස් පැය හෝ යන්ත්‍ර-පැය, CPU, RAM, තැටි ආදිය). සමාගම-පුළුල් මට්ටමින් සංවර්ධනයේ සමස්ත පිරිවැය අඩු කිරීම සඳහා සරලම හා වඩාත්ම පැහැදිලි ක්රමය වේ සාමාන්ය අනුක්රමික කාර්යයන් ඉටු කිරීමේ පිරිවැය අවම කිරීම නිෂ්පාදනයේ සෑම අදියරකදීම. නමුත් මෙම අදියර මොනවාද, ඒවා පොදු ක්‍රියාවලියෙන් වෙන්කර හඳුනාගත හැක්කේ කෙසේද, ඒවා සමන්විත වන්නේ කුමන පියවරයන්ගෙන්ද?

සමාගමක් එක් නිෂ්පාදනයක් සංවර්ධනය කරන විට, සෑම දෙයක්ම අඩු හෝ වැඩි වශයෙන් පැහැදිලි වේ: සාමාන්යයෙන් සාමාන්ය මාර්ග සිතියමක් සහ සංවර්ධන යෝජනා ක්රමයක් ඇත. නමුත් නිෂ්පාදන පෙළ පුළුල් වන විට සහ තවත් නිෂ්පාදන ඇති විට කුමක් කළ යුතුද? මුලින්ම බැලූ බැල්මට, ඔවුන් සමාන ක්රියාවලීන් සහ එකලස් කිරීමේ රේඛා ඇති අතර ලඝු-සටහන් සහ ස්ක්රිප්ට් වල "X වෙනස්කම් සොයන්න" ක්රීඩාව ආරම්භ වේ. දැනටමත් සක්‍රීය සංවර්ධනයේ ව්‍යාපෘති 5+ තිබේ නම් සහ වසර කිහිපයක් තිස්සේ සංවර්ධනය කරන ලද අනුවාද කිහිපයක් සඳහා සහාය අවශ්‍ය නම් කුමක් කළ යුතුද? නිෂ්පාදන නල මාර්ගවල හැකි තරම් විසඳුම් නැවත භාවිතා කිරීමට අපට අවශ්‍යද නැතහොත් එක් එක් සඳහා අද්විතීය සංවර්ධනය සඳහා මුදල් වියදම් කිරීමට අපි සූදානම්ද?

විසඳුම්වල සුවිශේෂත්වය සහ අනුක්‍රමිකතාව අතර සමතුලිතතාවයක් සොයා ගන්නේ කෙසේද?

2015 වසරේ සිට මේ ප්‍රශ්න නිතර නිතර අප ඉදිරියේ පැන නැගෙන්නට විය. නිෂ්පාදන සංඛ්‍යාව වර්ධනය වූ අතර, මෙම නිෂ්පාදනවල එකලස් කිරීමේ මාර්ග සඳහා සහය දක්වන අපගේ ස්වයංක්‍රීයකරණ දෙපාර්තමේන්තුව (DevOps) අවම මට්ටමට පුළුල් කිරීමට අපි උත්සාහ කළෙමු. ඒ අතරම, නිෂ්පාදන අතර හැකි තරම් විසඳුම් ප්‍රතිනිර්මාණය කිරීමට මට අවශ්‍ය විය. ඇත්ත වශයෙන්ම, නිෂ්පාදන දහයකින් එකම දේ විවිධ ආකාරවලින් කරන්නේ ඇයි?

සංවර්ධන අධ්යක්ෂ: "යාලුවනේ, අපිට DevOps නිෂ්පාදන සඳහා කරන දේ කෙසේ හෝ ඇගයීමට ලක් කළ හැකිද?"

අපි: "අපි දන්නේ නැහැ, අපි මෙම ප්රශ්නය ඇසුවේ නැත, නමුත් ගණනය කළ යුතු දර්ශක මොනවාද?"

සංවර්ධන අධ්යක්ෂ: "කව්ද දන්නේ! හිතන්න..."

එම සුප්‍රසිද්ධ චිත්‍රපටයේ මෙන්: "මම හෝටලයට යනවා!.." - "ආ... ඔබට මට මාර්ගය පෙන්වන්න පුළුවන්ද?" සිතීමෙන් පසු, අපි මුලින්ම නිෂ්පාදනවල අවසාන තත්වයන් තීරණය කළ යුතු බව නිගමනය කළෙමු; මෙය අපගේ පළමු ඉලක්කය විය.

ඉතින්, ඔබට පුද්ගලයන් 10 සිට 200 දක්වා තරමක් විශාල කණ්ඩායම් සහිත නිෂ්පාදන දුසිමක් විශ්ලේෂණය කර විසඳුම් ප්‍රතිනිර්මාණය කිරීමේදී මැනිය හැකි ප්‍රමිතික තීරණය කරන්නේ කෙසේද?

1:0 Chaos සඳහා පක්ෂව, හෝ තල මත DevOps

අපි BPwin මාලාවෙන් IDEF0 රූප සටහන් සහ විවිධ ව්‍යාපාර ක්‍රියාවලි රූප සටහන් යෙදීමට උත්සාහ කිරීමෙන් ආරම්භ කළෙමු. මීළඟ ව්‍යාපෘතියේ මීළඟ අදියරේ පස්වන චතුරශ්‍රයෙන් පසුව ව්‍යාකූලත්වය ආරම්භ වූ අතර, එක් එක් ව්‍යාපෘතිය සඳහා මෙම කොටු පියවර 50+ කින් දිගු පිඹුරෙකුගේ වලිගය තුළට ඇද ගත හැකිය. මට දුකක් දැනුණු අතර හඳට කෑගැසීමට අවශ්‍ය විය - එය කිසිසේත් නොගැලපේ.

සාමාන්ය නිෂ්පාදන කාර්යයන්

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

අපි අපගේ නිෂ්පාදන ක්‍රියාවලිය ආදර්ශනය කිරීමට පටන් ගත් විට, අපට නිශ්චිත ඉලක්කයක් තිබුණි - අපගේ සමාගමේ නිෂ්පාදන සංවර්ධනයට සම්බන්ධ සෑම සේවකයෙකුටම සහ ව්‍යාපෘති කළමනාකරුවන්ට දැනුම් දීම:

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

අවුල් කළමනාකරණය: තාක්ෂණික සිතියමක් ආධාරයෙන් පිළිවෙලක් ගෙන ඒම

සම්පූර්ණ ප්‍රමාණයෙන් විවෘත කිරීමට රූපය මත ක්ලික් කරන්න

සමාගම තුළ අපගේ වැඩ කටයුතු ක්රියාකාරී අංශ කිහිපයකට බෙදා ඇත. යටිතල පහසුකම් දෙපාර්තමේන්තුව දෙපාර්තමේන්තුවේ සියලුම දෘඩාංග සම්පත්වල ක්‍රියාකාරිත්වය ප්‍රශස්ත කිරීමට මෙන්ම අතථ්‍ය යන්ත්‍ර සහ ඒවා මත පරිසරය යෙදවීම ස්වයංක්‍රීය කිරීමෙහි නියැලී සිටී. අධීක්ෂණ දිශාව 24/7 සේවාවල කාර්ය සාධනය පාලනය කරයි; අපි සංවර්ධකයින් සඳහා සේවාවක් ලෙස අධීක්ෂණය ද සපයන්නෙමු. කාර්ය ප්‍රවාහ දිශාව මඟින් සංවර්ධන සහ පරීක්ෂණ ක්‍රියාවලීන් කළමනාකරණය කිරීම, කේත තත්ත්වය විශ්ලේෂණය කිරීම සහ ව්‍යාපෘති පිළිබඳ විශ්ලේෂණ ලබා ගැනීම සඳහා කණ්ඩායම් වෙත මෙවලම් සපයයි. අවසාන වශයෙන්, webdev දිශාව GUS සහ FLUS යාවත්කාලීන සේවාදායක මත නිකුත් කිරීම් ප්‍රකාශනය කිරීම මෙන්ම LicenseLab සේවාව භාවිතා කරන නිෂ්පාදන සඳහා බලපත්‍ර ලබා දීම සහතික කරයි. නිෂ්පාදන නල මාර්ගයට සහාය වීම සඳහා, අපි සංවර්ධකයින් සඳහා විවිධ ආධාරක සේවා පිහිටුවා පවත්වා ගෙන යන්නෙමු (ඔබට පැරණි රැස්වීම්වලදී ඒවායින් සමහරක් පිළිබඳ කථාවලට සවන් දිය හැකිය: Op!DevOps! 2016 и Op!DevOps! 2017) අපි ඇතුළුව අභ්‍යන්තර ස්වයංක්‍රීය මෙවලම් ද සංවර්ධනය කරමු විවෘත මූලාශ්ර විසඳුම්.

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

අවුල් කළමනාකරණය: තාක්ෂණික සිතියමක් ආධාරයෙන් පිළිවෙලක් ගෙන ඒම

තාක්‍ෂණික දාමයක සරලම උදාහරණය වන්නේ සමාගම තුළ අපගේ එක් එක් නිෂ්පාදන එකලස් කිරීම, යෙදවීම සහ පරීක්ෂා කිරීමේ අදියරයි. අනෙක් අතට, උදාහරණයක් ලෙස, ගොඩනැගීමේ අදියර වෙනම සම්මත පියවර කිහිපයකින් සමන්විත වේ: GitLab වෙතින් මූලාශ්‍ර බාගත කිරීම, පරායත්තතා සහ 3rd-පාර්ශ්වික පුස්තකාල සකස් කිරීම, ඒකක පරීක්ෂණ සහ ස්ථිතික කේත විශ්ලේෂණය, GitLab CI මත ගොඩනැගීමේ ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීම, කෞතුක වස්තු ගබඩාවකට ප්‍රකාශයට පත් කිරීම. අපගේ අභ්‍යන්තර ChangelogBuilder මෙවලම හරහා කෘත්‍රිම නිෂ්පාදන සහ නිකුත් කිරීමේ සටහන් ජනනය කිරීම.

ඔබට සාමාන්‍ය DevOps කාර්යයන් ගැන Habré හි අපගේ අනෙකුත් ලිපි වලින් කියවිය හැක: "පුද්ගලික අත්දැකීම්: අපගේ අඛණ්ඩ ඒකාබද්ධතා පද්ධතිය පෙනෙන්නේ කෙසේද?"සහ"සංවර්ධන ක්‍රියාවලීන් ස්වයංක්‍රීයකරණය: ධනාත්මක තාක්ෂණයන්හිදී අපි DevOps අදහස් ක්‍රියාත්මක කළ ආකාරය".

බොහෝ සාමාන්‍ය නිෂ්පාදන දාම සෑදේ නිෂ්පාදන ක්රියාවලිය. ක්‍රියාවලි විස්තර කිරීමේ සම්මත ප්‍රවේශය වන්නේ ක්‍රියාකාරී IDEF0 මාදිලි භාවිතා කිරීමයි.

නිෂ්පාදන CI ක්‍රියාවලියක් ආකෘතිකරණය කිරීමේ උදාහරණයක්

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

අවුල් කළමනාකරණය: තාක්ෂණික සිතියමක් ආධාරයෙන් පිළිවෙලක් ගෙන ඒම

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

අපි අපගේ මුදා හැරීමේ යෝජනා ක්‍රමය බෙහෙවින් සරල කර සාමාන්‍යකරණය කරන්නේ නම්, එයට පහත අදියර ඇතුළත් වේ:

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

අපි උදාහරණයක් ලෙස, ක්‍රියාකාරී IDEF0 ආකෘතියක ස්වරූපයෙන් මෙම සාමාන්‍ය මුදා හැරීමේ යෝජනා ක්‍රමයේ තාක්ෂණික ආකෘතිය (මෙතැන් සිට සරලව ආදර්ශය ලෙස හැඳින්වේ) සලකා බලමු. එය අපගේ CI ක්‍රියාවලියේ ප්‍රධාන අදියර පිළිබිඹු කරයි. IDEF0 මාදිලි ඊනියා භාවිතා කරයි ICOM අංකනය (ආදාන-පාලන-ප්‍රතිදාන-යාන්ත්‍රණය) එක් එක් අදියරේදී කුමන සම්පත් භාවිතා කරන්නේද යන්න විස්තර කිරීමට, කාර්යය ඉටු කරන්නේ කුමන නීති සහ අවශ්‍යතා මතද, ප්‍රතිදානය කුමක්ද සහ කුමන යාන්ත්‍රණ, සේවාවන් හෝ පුද්ගලයින් යම් අදියරක් ක්‍රියාත්මක කරයි.

අවුල් කළමනාකරණය: තාක්ෂණික සිතියමක් ආධාරයෙන් පිළිවෙලක් ගෙන ඒම

සම්පූර්ණ ප්‍රමාණයෙන් විවෘත කිරීමට රූපය මත ක්ලික් කරන්න

රීතියක් ලෙස, ක්රියාකාරී ආකෘති වලදී එය වියෝජනය කිරීම සහ ක්රියාවලීන්ගේ විස්තරය විස්තර කිරීම පහසුය. නමුත් මූලද්‍රව්‍ය ගණන වැඩි වන විට, ඒවා ගැන යමක් තේරුම් ගැනීම වඩ වඩාත් අපහසු වේ. නමුත් සැබෑ සංවර්ධනයේ දී සහායක අදියර ද ඇත: අධීක්ෂණය, නිෂ්පාදන සහතික කිරීම, වැඩ ක්රියාවලීන් ස්වයංක්රීයකරණය සහ වෙනත් ය. හරියටම පරිමාණය කිරීමේ ගැටලුව නිසා අපි මෙම විස්තරය අත්හැරියෙමු.

බලාපොරොත්තුවේ උපත

එක් පොතක තාක්ෂණික ක්‍රියාවලීන් විස්තර කරන පැරණි සෝවියට් සිතියම් අපට හමු විය (ඒවා අදටත් බොහෝ රාජ්‍ය ආයතනවල සහ විශ්ව විද්‍යාලවල භාවිතා වේ). ඉන්න, ඉන්න, අපිටත් තියෙනවා තාක්ෂණික ක්‍රියාවලියක්!.. අදියර, ප්‍රතිඵල, ප්‍රමිතික, අවශ්‍යතා, දර්ශක, යනාදිය ඇත... අපගේ නිෂ්පාදන වාහක සඳහා තාක්ෂණික සිතියම් යෙදීමට උත්සාහ නොකරන්නේ මන්ද? හැඟීමක් ඇති විය: "මෙය එයයි! අපි නිවැරදි නූල් සොයාගෙන ඇත, එය හොඳ කඹයක් ලබා දීමට කාලයයි! ”

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

සිතියමේ පේළි සහ තීරු වල මංසන්ධිවලදී, අපි නිශ්චිත අදියරක් සහ නිෂ්පාදනයක් සඳහා තත්ත්වයන් තබමු. බොහෝ ප්‍රාන්ත තත්ව සඳහා අර්ථ දක්වා ඇත:

  1. දත්ත නොමැත - හෝ ප්‍රායෝගික නැත. නිෂ්පාදනයේ වේදිකාවක් සඳහා ඇති ඉල්ලුම විශ්ලේෂණය කිරීම අවශ්ය වේ. එක්කෝ විශ්ලේෂණය දැනටමත් සිදු කර ඇත, නමුත් වේදිකාව දැනට අවශ්ය නොවේ හෝ ආර්ථික වශයෙන් යුක්ති සහගත නොවේ.
  2. කල් දැම්මා - හෝ මේ මොහොතේ අදාළ නොවේ. නල මාර්ගයේ මෙම අදියර අවශ්ය වේ, නමුත් මේ වසරේ එය ක්රියාත්මක කිරීමට ශක්තියක් නොමැත.
  3. සැලසුම් කර ඇත. අදියර මෙම වසරේ ක්රියාත්මක කිරීමට සැලසුම් කර ඇත.
  4. ක්‍රියාත්මක කළා. නල මාර්ගයේ අදියර අවශ්ය ප්රමාණයට ක්රියාත්මක වේ.

වගුව පිරවීම ව්‍යාපෘතියෙන් ව්‍යාපෘතිය ආරම්භ විය. පළමුව, අපි එක් ව්‍යාපෘතියක අදියර සහ පියවර වර්ගීකරණය කර ඒවායේ තත්ව සටහන් කළෙමු. ඊට පස්සේ ඊලග project එක අරන් ඒකේ States ටික Record කරලා කලින් project වල නැති ස්ටේජ් සහ Steps එකතු කලා. එහි ප්රතිඵලයක් වශයෙන්, අපගේ සම්පූර්ණ නිෂ්පාදන නල මාර්ගයේ අදියර සහ පියවර සහ නිශ්චිත ව්යාපෘතියක් තුළ ඒවායේ තත්ත්වයන් අපට ලැබුණි. එහි ප්‍රතිඵලය ආහාර වාහකයක් සඳහා නිපුණතා අනුකෘතියකට සමාන දෙයකි. එවැනි අනුකෘතියක් අපි තාක්ෂණික සිතියමක් ලෙස හැඳින්වුවෙමු.

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

ඔවුන් අපට විරුද්ධ විය හැකිය: “මේ සියල්ල හොඳයි, නමුත් කාලයත් සමඟ පියවර සහ අදියර ගණන තහනම් තරම් විශාල වනු ඇත. මම කළ යුත්තේ කුමක් ද?

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

විසඳුම් අනුකරණය කිරීමේ බලපෑම තක්සේරු කරන්නේ කෙසේද? අපි අතිශයින්ම සරල ප්‍රවේශයක් භාවිතා කරමු: නව අදියරක් ක්‍රියාත්මක කිරීම සඳහා වන මූලික ප්‍රාග්ධන පිරිවැය වාර්ෂික සාමාන්‍ය නිෂ්පාදන පිරිවැයට අපි ආරෝපණය කරමු, ඉන්පසු ඒවා ප්‍රතිනිර්මාණය කිරීමේදී ඒවා සියල්ලන් අතර බෙදා ගනිමු.

සංවර්ධනයේ කොටස් දැනටමත් සිතියමේ අදියර සහ පියවර ලෙස පිළිබිඹු වේ. සාමාන්‍ය අදියර සඳහා ස්වයංක්‍රීයකරණය හඳුන්වාදීම හරහා නිෂ්පාදන පිරිවැය අඩු කිරීමට අපට බලපෑම් කළ හැකිය. මෙයින් පසු, අපි ගුණාත්මක ලක්ෂණ, ප්‍රමාණාත්මක ප්‍රමිතික සහ කණ්ඩායම්වලට ලැබෙන ලාභයේ වෙනස්කම් ගණනය කරමු (මිනිස් පැය හෝ යන්ත්‍ර-පැය තුළ ඉතිරි කර ඇත).

නිෂ්පාදන ක්රියාවලියේ තාක්ෂණික සිතියම

අපි අපගේ සියලුම අදියර සහ පියවර ගෙන, ඒවා ටැග් වලින් කේතනය කර ඒවා එක් දාමයකට පුළුල් කළහොත්, එය ඉතා දිගු හා තේරුම්ගත නොහැකි වනු ඇත (හරියටම අපි ලිපියේ ආරම්භයේ කතා කළ “පයිතන් වලිගය”) :

[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]

මේවා නිෂ්පාදන එකලස් කිරීම [Bild], ඒවා පරීක්‍ෂණ සේවාදායකයන් වෙත යෙදවීම [Deploy], testing [Test], පරීක්ෂණ ප්‍රතිඵල [ප්‍රවර්ධනය] මත පදනම්ව ගබඩා නිකුත් කිරීමට එකලස් කිරීම් ප්‍රවර්ධනය කිරීම, බලපත්‍ර ජනනය කිරීම සහ ප්‍රකාශනය කිරීම [License], ප්‍රකාශනය [Publish] යන අදියර වේ. GUS යාවත්කාලීන සේවාදායකය මත සහ සේවාදායක වෙත FLUS යාවත්කාලීන බෙදා හැරීම, නිෂ්පාදන වින්‍යාස කළමනාකරණය [ස්ථාපනය] භාවිතයෙන් පාරිභෝගිකයාගේ යටිතල පහසුකම් මත නිෂ්පාදන සංරචක ස්ථාපනය කිරීම සහ යාවත්කාලීන කිරීම මෙන්ම ස්ථාපිත නිෂ්පාදන වලින් ටෙලිමෙට්‍රි [ටෙලිමෙට්‍රි] එකතු කිරීම.

ඒවාට අමතරව, අපට වෙනම අදියරයන් වෙන්කර හඳුනාගත හැකිය: යටිතල පහසුකම් තත්ත්වය නිරීක්ෂණය කිරීම [InfMonitoring], මූල කේතයේ අනුවාද කළමනාකරණය කිරීම [SourceCodeControl], එකලස් කිරීමේ පරිසරය සකස් කිරීම [සූදානම්], ව්යාපෘති කළමනාකරණය [Workflow], සන්නිවේදන මෙවලම් සමඟ කණ්ඩායම් සැපයීම [ සන්නිවේදනය], නිෂ්පාදන සහතික කිරීම [සහතික කිරීම] සහ CI ක්‍රියාවලීන්හි ස්වයංපෝෂිතභාවය සහතික කිරීම [CISelfSufficiency] (උදාහරණයක් ලෙස, අන්තර්ජාලයෙන් එකලස්කිරීම්වල ස්වාධීනත්වය). අපගේ ක්‍රියාවලීන්හි පියවර දුසිම් ගණනක් අපි සලකා බලන්නේ නැත, මන්ද ඒවා ඉතා නිශ්චිත බැවිනි.

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

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

අපගේ සමාගම තුළ, සිතියම ස්වයංක්‍රීයව ජිංජා අච්චුවකින් සාමාන්‍ය HTML ගොනුවක් ලෙස ජනනය කර GitLab Pages සේවාදායකයට උඩුගත කෙරේ. සම්පුර්ණයෙන්ම ජනනය කරන ලද සිතියමක උදාහරණයක් සහිත තිර රුවක් නැරඹිය හැක ලින්ක්.

අවුල් කළමනාකරණය: තාක්ෂණික සිතියමක් ආධාරයෙන් පිළිවෙලක් ගෙන ඒම

සම්පූර්ණ ප්‍රමාණයෙන් විවෘත කිරීමට රූපය මත ක්ලික් කරන්න

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

අපගේ තාක්ෂණික සිතියමේ ව්යුහය

සිතියම කොටස් කිහිපයකින් සමන්විත වේ:

  1. ශීර්ෂ ප්‍රදේශය - මෙහි සිතියම පිළිබඳ සාමාන්‍ය විස්තරයක්, මූලික සංකල්ප හඳුන්වා දී ඇති අතර නිෂ්පාදන ක්‍රියාවලියේ ප්‍රධාන සම්පත් සහ ප්‍රතිඵල අර්ථ දක්වා ඇත.
  2. තොරතුරු පැනලය - මෙහිදී ඔබට තනි නිෂ්පාදන සඳහා දත්ත සංදර්ශනය පාලනය කළ හැකිය; සියලුම නිෂ්පාදන සඳහා පොදුවේ ක්‍රියාත්මක කරන ලද අදියර සහ පියවරවල සාරාංශයක් සපයනු ලැබේ.
  3. තාක්ෂණික සිතියම - තාක්ෂණික ක්රියාවලිය පිළිබඳ වගු විස්තරයක්. සිතියම මත:
    • සියලුම අදියර, පියවර සහ ඒවායේ කේත ලබා දී ඇත;
    • අදියර පිළිබඳ කෙටි සහ සම්පූර්ණ විස්තර ලබා දී ඇත;
    • එක් එක් අදියරේදී භාවිතා කරන ලද ආදාන සම්පත් සහ සේවාවන් දක්වා ඇත;
    • එක් එක් අදියරෙහි ප්රතිඵල සහ තනි පියවර දක්වා ඇත;
    • එක් එක් අදියර සහ පියවර සඳහා වගකීම් ප්රදේශය දක්වා ඇත;
    • තාක්ෂණික සම්පත් නිශ්චය කර ඇත, උදාහරණයක් ලෙස HDD (SSD), RAM, vCPU, සහ මෙම අදියරේදී වැඩ කිරීමට අවශ්‍ය මිනිස් පැය, දැනට - ඇත්ත සහ අනාගතයේදී - සැලැස්ම;
    • සෑම නිෂ්පාදනයක් සඳහාම එය ක්‍රියාත්මක කර ඇති, ක්‍රියාත්මක කිරීමට සැලසුම් කර ඇති, අදාළ නොවන හෝ ක්‍රියාත්මක කර නොමැති තාක්ෂණික අවධීන් හෝ පියවරයන් දක්වනු ලැබේ.

තාක්ෂණික සිතියම මත පදනම්ව තීරණ ගැනීම

සිතියම අධ්‍යයනය කිරීමෙන් පසු, සමාගමේ සේවකයාගේ භූමිකාව (සංවර්ධන කළමනාකරු, නිෂ්පාදන කළමනාකරු, සංවර්ධක හෝ පරීක්ෂක) මත පදනම්ව ඔබට යම් ක්‍රියාමාර්ග ගත හැකිය:

  • සැබෑ නිෂ්පාදනයක් හෝ ව්‍යාපෘතියක අස්ථානගත වී ඇති අදියරයන් තේරුම් ගෙන ඒවා ක්‍රියාත්මක කිරීමේ අවශ්‍යතාවය තක්සේරු කරන්න;
  • දෙපාර්තමේන්තු කිහිපයක් විවිධ අදියරවල වැඩ කරන්නේ නම් ඒවා අතර වගකීම් ක්ෂේත්‍ර සීමා කිරීම;
  • අදියරවල යෙදවුම් සහ නිමැවුම් සඳහා ගිවිසුම් සාකච්ඡා කිරීම;
  • ඔබේ වැඩ අදියර සමස්ත සංවර්ධන ක්‍රියාවලියට ඒකාබද්ධ කරන්න;
  • එක් එක් අදියර සඳහා සහාය වීම සඳහා සම්පත් සඳහා අවශ්යතාවය වඩාත් නිවැරදිව තක්සේරු කරන්න.

ඉහත සියල්ල සාරාංශ කිරීම

තාක්ෂණික සිතියම බහුකාර්ය, විස්තීරණ සහ නඩත්තු කිරීමට පහසුය. දැඩි ශාස්ත්‍රීය IDEF0 ආකෘතියට වඩා මෙම ආකෘතියේ ක්‍රියාවලි විස්තර සංවර්ධනය කිරීම සහ පවත්වාගෙන යාම ඉතා පහසු වේ. ඊට අමතරව, වගු විස්තරයක් ක්‍රියාකාරී ආකෘතියකට වඩා සරල, හුරුපුරුදු සහ වඩා හොඳ ව්‍යුහගත වේ.

විශේෂ අභ්‍යන්තර මෙවලමක් වන CrossBuilder, පියවරවල තාක්ෂණික ක්‍රියාත්මක කිරීම සඳහා වගකිව යුතුය - CI පද්ධති, සේවා සහ යටිතල පහසුකම් අතර ස්ථර මෙවලමක්. සංවර්ධකයාට ඔහුගේ බයිසිකලය කැපීමට අවශ්‍ය නැත: අපගේ CI පද්ධතිය තුළ අපගේ යටිතල පහසුකම්වල ලක්ෂණ සැලකිල්ලට ගනිමින් එය නිවැරදිව ක්‍රියාත්මක කරන CrossBuilder මෙවලමෙහි එක් ස්ක්‍රිප්ට් එකක් (ඊනියා කාර්යය) ධාවනය කිරීමට ප්‍රමාණවත් වේ.

ප්රතිඵල

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

  • අපගේ සමාගම තුළ DevOps අදහස් හඳුන්වා දීමේ අරමුණ වන්නේ සමාගමේ නිෂ්පාදනවල නිෂ්පාදන පිරිවැය ප්‍රමාණාත්මකව (මිනිස් පැය හෝ යන්ත්‍ර පැය, vCPU, RAM, Disk) අඛණ්ඩව අඩු කිරීමයි.
  • සංවර්ධනයේ සමස්ත පිරිවැය අඩු කිරීම සඳහා ක්රමයක් වන්නේ සම්මත අනුක්රමික කාර්යයන් ඉටු කිරීමේ පිරිවැය අවම කිරීමයි: තාක්ෂණික ක්රියාවලියේ අදියර සහ පියවර.
  • සාමාන්‍ය කාර්යයක් යනු විසඳුම සම්පූර්ණයෙන්ම හෝ අර්ධ වශයෙන් ස්වයංක්‍රීය වන කාර්යයකි, කාර්ය සාධනය කරන්නන් සඳහා දුෂ්කරතා ඇති නොකරන අතර සැලකිය යුතු ශ්‍රම පිරිවැයක් අවශ්‍ය නොවේ.
  • නිෂ්පාදන ක්‍රියාවලිය අදියර වලින් සමන්විත වේ, අදියර බෙදිය නොහැකි පියවර වලට බෙදා ඇත, ඒවා විවිධ පරිමාණයන් සහ පරිමාවන්හි සාමාන්‍ය කාර්යයන් නියෝජනය කරයි.
  • හුදකලා සම්මත කාර්යයන් වලින් අපි සංකීර්ණ තාක්ෂණික දාම සහ නිෂ්පාදන ක්‍රියාවලියේ බහු මට්ටමේ ආකෘති වෙත පැමිණ ඇති අතර, එය ක්‍රියාකාරී IDEF0 ආකෘතියක් හෝ සරල තාක්ෂණික සිතියමක් මගින් විස්තර කළ හැකිය.
  • ප්‍රවාහ සටහනක් යනු නිෂ්පාදන ක්‍රියාවලියක අදියර සහ පියවර පිළිබඳ වගු නිරූපණයකි. වැදගත්ම දෙය: සිතියම ඔබට සම්පූර්ණ ක්රියාවලිය සම්පූර්ණයෙන්, ඒවා විස්තර කිරීමේ හැකියාව සහිත විශාල කැබලිවලින් දැකීමට ඉඩ සලසයි.
  • තාක්ෂණික සිතියම මත පදනම්ව, ඔබට යම් නිෂ්පාදනයක් තුළ අදියර ක්‍රියාත්මක කිරීමේ අවශ්‍යතාවය තක්සේරු කළ හැකිය, වගකීම් ක්ෂේත්‍ර සීමා කිරීම, අදියරවල යෙදවුම් සහ ප්‍රතිදානයන් සඳහා ගිවිසුම්වලට එකඟ වීම සහ සම්පත් අවශ්‍යතාවය වඩාත් නිවැරදිව තක්සේරු කළ හැකිය.

අපගේ සිතියමේ ඇතැම් තාක්ෂණික අවධීන් ක්රියාත්මක කිරීම සඳහා භාවිතා කරන තාක්ෂණික මෙවලම් මොනවාද යන්න පිළිබඳව අපි පහත ලිපි වලින් වඩාත් විස්තරාත්මකව කතා කරමු.

ලිපියේ කතුවරුන්:

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

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