බෙදා හරින ලද ලුහුබැඳීම: අපි ඒ සියල්ල වැරදියි

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

බෙදා හරින ලද ලුහුබැඳීම: අපි ඒ සියල්ල වැරදියි
[නිදර්ශනය උපුටා ගන්නා ලදී වෙනත් ද්රව්ය බෙදා හරින ලද ලුහුබැඳීම ගැන.]

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

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

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

එවැනි වෙනස් හෝඩුවාවක්

බෙදා හරින ලද ලුහුබැඳීමට නොගැලපෙන සංරචක කිහිපයක් ඇතුළත් වේ:

  • පාලන මෙවලම් සමඟ යෙදුම් සහ මිඩ්ල්වෙයාර් සන්නද්ධ කිරීම;
  • බෙදා හරින ලද සන්දර්භය මාරු කිරීම;
  • හෝඩුවාවන් එකතු කිරීම;
  • හෝඩුවාවක් ගබඩා කිරීම;
  • ඔවුන්ගේ නිස්සාරණය සහ දෘශ්යකරණය.

බෙදා හරින ලද ලුහුබැඳීම පිළිබඳ බොහෝ කථා එය පද්ධතිය සම්පූර්ණයෙන් හඳුනා ගැනීමට උපකාර වන එකම අරමුණ වන ඒකීය මෙහෙයුමක් ලෙස සැලකීමට නැඹුරු වේ. මෙයට බොහෝ දුරට හේතු වී ඇත්තේ බෙදාහැරීම පිළිබඳ අදහස් ඓතිහාසිකව ගොඩනැගී ඇති ආකාරයයි. තුල බ්ලොග් සටහන්, Zipkin මූලාශ්ර විවෘත කළ විට, එය සඳහන් කර ඇත එය [Zipkin] Twitter වේගවත් කරයි. ලුහුබැඳීම සඳහා වූ පළමු වාණිජ දීමනා ලෙසද ප්‍රවර්ධනය කරන ලදී APM මෙවලම්.

සටහන. පරිවර්තනය.: වැඩිදුර පෙළ තේරුම් ගැනීමට පහසු කිරීම සඳහා, අපි අනුව මූලික පද දෙකක් නිර්වචනය කරමු OpenTracing ව්‍යාපෘති ලියකියවිලි:

  • කාලයක් - බෙදා හරින ලද ලුහුබැඳීමේ මූලික අංගය. එය නමක්, ආරම්භක සහ අවසන් වේලාවන්, ටැග්, ලඝු-සටහන් සහ සන්දර්භය සහිත යම් කාර්ය ප්‍රවාහයක (උදාහරණයක් ලෙස, දත්ත සමුදා විමසුමක්) විස්තරයකි.
  • Spans සාමාන්‍යයෙන් අනෙකුත් පරාස වෙත සබැඳි අඩංගු වන අතර, බහුවිධ පරාසවලට ඒකාබද්ධ කිරීමට ඉඩ සලසයි හෝඩුවාව - ඉල්ලීමක් බෙදා හරින ලද පද්ධතියක් හරහා ගමන් කරන විට එහි ජීවය දෘශ්‍යමාන කිරීම.

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

  • උදාහරණයක් ලෙස, Uber භාවිතා කරයි පරීක්ෂණ ගමනාගමනය සහ නිෂ්පාදන ගමනාගමනය අතර වෙනස හඳුනා ගැනීම සඳහා ප්රතිඵල සොයා ගැනීම.
  • ෆේස්බුක් භාවිතා කරයි තීරනාත්මක මාර්ග විශ්ලේෂණය සහ නිරන්තර ආපදා ප්‍රතිසාධන පරීක්ෂණ වලදී රථවාහන මාරු කිරීම සඳහා දත්ත සොයා ගන්න.
  • එසේම සමාජ ජාලය අදාළ වේ සංවර්ධකයින්ට ලුහුබැඳීමේ ප්‍රතිඵල මත හිතුවක්කාර විමසුම් ධාවනය කිරීමට ඉඩ සලසන Jupyter සටහන් පොත්.
  • අනුගාමිකයින් LDFI (පරම්පරාගත අසාර්ථක එන්නත් කිරීම) භාවිතා කරන්න දෝෂ එන්නත් සමඟ පරීක්ෂා කිරීම සඳහා අංශු බෙදා හරින ලදී.

ඉහත ලැයිස්තුගත කර ඇති විකල්පයන් කිසිවක් සම්පූර්ණයෙන්ම තත්වයට අදාළ නොවේ නිදොස් කිරීම, ඉන්ජිනේරුවා හෝඩුවාවක් දෙස බලා ගැටලුව විසඳීමට උත්සාහ කරන අතරතුර.

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

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

අතීතයේ අයි පැමිණිලි කළා UI/UX ලුහුබැඳීමේ බොහෝ "නවෝත්පාදනයන්" සීමා වී ඇති බව පෙනේ හැරෙනවා අමතර පාර-දත්ත හෝඩුවාවක්, ඉහළ කාර්ඩිනලිටි සහිත තොරතුරු ඒවායේ ආයෝජනය කිරීම (ඉහළ කාර්ඩිනලිටි) හෝ නිශ්චිත පරාසයන් තුලට විදින හෝ විමසුම් ධාවනය කිරීමේ හැකියාව ලබා දීම අන්තර්- සහ අන්තර්-ට්‍රේස්... එහි ලුහුබැඳීම මූලික දෘශ්‍යකරණ මෙවලම ලෙස පවතී. මෙම තත්වය දිගටම පවතින තාක්, බෙදා හරින ලද ලුහුබැඳීම (හොඳම) දෝශ නිරාකරණ මෙවලමක් ලෙස 4 වන ස්ථානය ගනී, ප්‍රමිතික, ලඝු-සටහන් සහ ස්ටැක් ට්‍රේස් වලින් පසුව, නරකම අවස්ථාවක එය මුදල් හා කාලය නාස්ති කිරීමක් බවට පත්වේ.

ට්‍රේස්වීව් සමඟ ගැටළුවක්

ගමනාන්තය ලුහුබැඳීම — එය සම්බන්ධ බෙදා හරින ලද පද්ධතියේ සියලුම සංරචක හරහා තනි ඉල්ලීමක චලනය පිළිබඳ සම්පූර්ණ චිත්‍රයක් සපයන්න. තවත් සමහර දියුණු ලුහුබැඳීමේ පද්ධති ඔබට තනි පරාසයන් තුලට සරඹ කිරීමට සහ කාලයත් සමඟ බිඳවැටීමක් බැලීමට ඉඩ සලසයි ඇතුළත එක් ක්‍රියාවලියක් (පරිගණක ක්‍රියාකාරී සීමාවන් ඇති විට).

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

ඔබ ඇත්තටම නම් විශ්මයජනක ලෙස සංකීර්ණ බෙදාහැරීමේ පද්ධතිය, එවිට එක් පුද්ගලයෙකුට ඔහුගේ හිසෙහි තබා ගැනීමට නොහැකි ය සම්පූර්ණයි පින්තූරය. ඇත්ත වශයෙන්ම, එය පවා කළ හැකි යැයි උපකල්පනය මත පදනම් වූ මෙවලමක් සංවර්ධනය කිරීම විරෝධී රටාවක් (අකාර්යක්ෂම සහ ඵලදායී නොවන ප්රවේශයකි). ඉතා මැනවින්, නිදොස්කරණයට උපකාර වන මෙවලමක් අවශ්‍ය වේ ඔබගේ සෙවුම් ප්රදේශය පටු කරන්න, ඉන්ජිනේරුවන්ට සලකා බලනු ලබන ගැටළු තත්ත්වයට අදාළ මානයන් (සේවා/පරිශීලක/ධාරක, ආදිය) උප කුලකයක් කෙරෙහි අවධානය යොමු කළ හැක. අසාර්ථක වීමට හේතුව තීරණය කිරීමේදී, ඉන්ජිනේරුවන්ට සිදුවූයේ කුමක්ද යන්න තේරුම් ගැනීමට අවශ්ය නොවේ සියලුම සේවාවන් එකවර, එවැනි අවශ්‍යතාවයක් ක්ෂුද්‍ර සේවා ගෘහ නිර්මාණ ශිල්පය පිළිබඳ අදහසට පටහැනි බැවින්.

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

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

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

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

පරතරය ඉතා අඩු මට්ටමක පවතී

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

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

සොයා බැලීම සඳහා විකල්ප

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

මම දෘශ්‍ය නිර්මාණකරුවෙකු හෝ UX විශේෂඥයෙකු නොවෙමි, නමුත් ඊළඟ කොටසේදී මෙම දෘශ්‍යකරණයන් කෙබඳු විය හැකිද යන්න පිළිබඳ අදහස් කිහිපයක් බෙදා ගැනීමට මට අවශ්‍යය.

විශේෂිත සේවාවන් කෙරෙහි අවධානය යොමු කරන්න

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

ට්‍රේස්, විශේෂයෙන් නියැදීමකින් තොරව, බෙදා හරින ලද පද්ධතියක එක් එක් සංරචක පිළිබඳ තොරතුරු නිධානයකි. මෙම තොරතුරු භාවිතා කරන්නන් සපයන කපටි ප්‍රොසෙසරයකට ලබා දිය හැක සේවා නැඹුරු සොයාගැනීම්, ඒවා කල්තියා හඳුනාගත හැකිය - පරිශීලකයා හෝඩුවාවන් දෙස බැලීමට පෙර පවා:

  1. ප්‍රමාද බෙදාහැරීමේ රූප සටහන් ඉතා කැපී පෙනෙන ඉල්ලීම් සඳහා පමණි (පිටත ඉල්ලීම්);
  2. සේවා SLO ඉලක්ක සපුරා නොමැති අවස්ථා සඳහා ප්‍රමාද බෙදා හැරීමේ රූප සටහන්;
  3. බොහෝ විට විමසුම්වල ඇති "පොදු", "රසවත්" සහ "අමුතු" ටැග් පුනරාවර්තනය වේ;
  4. අවස්ථා සඳහා ප්‍රමාද බිඳවැටීම රඳා පවතී සේවා ඔවුන්ගේ SLO ඉලක්ක සපුරා නොගනී;
  5. විවිධ පහළ සේවා සඳහා ප්‍රමාද බිඳවැටීම.

මෙම ප්‍රශ්නවලින් සමහරක් සරලව ගොඩනඟන ලද ප්‍රමිතික මගින් පිළිතුරු නොදෙන අතර, පරිශීලකයින්ට පරාසයන් පරීක්ෂා කිරීමට බල කරයි. එහි ප්‍රතිඵලයක් වශයෙන්, අපට අතිශයින්ම පරිශීලක-සතුරු යාන්ත්‍රණයක් ඇත.

මෙය ප්‍රශ්නය මතු කරයි: විවිධ කණ්ඩායම් විසින් පාලනය කරනු ලබන විවිධ සේවාවන් අතර සංකීර්ණ අන්තර්ක්‍රියා ගැන කුමක් කිව හැකිද? එහෙම නේද ලුහුබැඳීම එවැනි තත්වයක් ඉස්මතු කිරීමට වඩාත්ම සුදුසු මෙවලම ලෙස සලකන්නේ නැද්ද?

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

එය හරියට කුඩා සේවා උප කුලකයක් පරීක්ෂා කිරීම සඳහා විශාලන වීදුරුවෙන් බැලීම වැනි ය. මෙම සේවාවන් අතර ඇති සංකීර්ණ අන්තර්ක්‍රියා සහ ඒවායේ ක්ෂණික යැපීම් සම්බන්ධයෙන් වඩාත් තදබල ප්‍රශ්න ඇසීමට මෙය පරිශීලකයාට ඉඩ සලසයි. මෙය ඉංජිනේරුවා දන්නා සේවා ලෝකයේ backtrace හා සමාන වේ බව වැරදියි, සහ අවට සේවා වල සිදු වන දේ ගැන යම් අවබෝධයක් ඇත ඇයි?.

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

ස්ථලකය ගොඩනැගීම

පරිශීලකයා දන්නේ නම් සේවා-විශේෂිත දසුන් ඇදහිය නොහැකි තරම් ප්රයෝජනවත් විය හැක මොකක්ද? ප්‍රමාදය වැඩි කිරීම හෝ දෝෂ ඇති කිරීම සඳහා සේවාවක් හෝ සේවා සමූහයක් වගකිව යුතුය. කෙසේ වෙතත්, සංකීර්ණ පද්ධතියක් තුළ, අසාර්ථකත්වයකදී වැරදි සේවාව හඳුනා ගැනීම සුළු නොවන කාර්යයක් විය හැකිය, විශේෂයෙන් සේවාවන්ගෙන් දෝෂ පණිවිඩ වාර්තා වී නොමැති නම්.

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

අපි උදාහරණයක් ගනිමු. උපකල්පිත පුවත් අඩවියක් සිතමු. මුල් පිටුව සේවාව (මුල් පිටුව) රෙඩිස් සමඟ, නිර්දේශ සේවාවක් සමඟ, ප්‍රචාරණ සේවාවක් සහ වීඩියෝ සේවාවක් සමඟ දත්ත හුවමාරු කරයි. වීඩියෝ සේවාව S3 වෙතින් වීඩියෝ සහ DynamoDB වෙතින් පාර-දත්ත ලබා ගනී. නිර්දේශ සේවාව DynamoDB වෙතින් පාර-දත්ත ලබා ගනී, Redis සහ MySQL වෙතින් දත්ත පූරණය කරයි, සහ Kafka වෙත පණිවිඩ ලියයි. ප්‍රචාරණ සේවාව MySQL වෙතින් දත්ත ලබා ගන්නා අතර Kafka වෙත පණිවිඩ ලියයි.

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

බෙදා හරින ලද ලුහුබැඳීම: අපි ඒ සියල්ල වැරදියි
උපකල්පිත පුවත් අඩවියක සේවා රූප සටහන

පහත රූප සටහන වඩාත් සුදුසු වනු ඇත. සේවාවේ ගැටලුවක් තිබේ (වීඩියෝ) හරි මැදින් නිරූපණය කර ඇත. පරිශීලකයා එය වහාම දකිනවා. මෙම දෘශ්‍යකරණයෙන්, ප්‍රධාන පිටුවේ කොටසක පැටවීමේ වේගයට බලපාන S3 ප්‍රතිචාර කාලය වැඩි වීම හේතුවෙන් වීඩියෝ සේවාව අසාමාන්‍ය ලෙස ක්‍රියා කරන බව පැහැදිලි වේ.

බෙදා හරින ලද ලුහුබැඳීම: අපි ඒ සියල්ල වැරදියි
"සිත්ගන්නා" සේවාවන් පමණක් පෙන්වන ගතික ස්ථලකය

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

සංසන්දනාත්මක සංදර්ශකය

තවත් ප්රයෝජනවත් දෘශ්යකරණයක් සංසන්දනාත්මක සංදර්ශකය වනු ඇත. දැනට හෝඩුවාවන් පැත්තකින්-පැති සැසඳීම් සඳහා ඉතා සුදුසු නොවේ, එබැවින් සැසඳීම් සාමාන්යයෙන් වේ විහිදී යයි. තවද මෙම ලිපියේ ප්‍රධාන අදහස වනුයේ ලුහුබැඳීමේ ප්‍රතිඵල වලින් වටිනාම තොරතුරු උකහා ගැනීමට තරම් පරාසයන් ඉතා පහත් මට්ටමක පැවතීමයි.

අංශු දෙකක් සංසන්දනය කිරීම සඳහා මූලික වශයෙන් නව දෘශ්‍යකරණයන් අවශ්‍ය නොවේ. ඇත්ත වශයෙන්ම, ට්‍රේස්වීව් එකක් ලෙස එකම තොරතුරු නියෝජනය කරන හිස්ටෝග්‍රෑම් වැනි දෙයක් ප්‍රමාණවත් වේ. පුදුමයට කරුණක් නම්, මෙම සරල ක්‍රමයට පවා අංශු දෙකක් වෙන වෙනම අධ්‍යයනය කිරීමට වඩා බොහෝ ඵල ලබා ගත හැකිය. ඊටත් වඩා බලවත් හැකියාවක් වනු ඇත දෘශ්යමාන කරන්න හෝඩුවාවන් සංසන්දනය කිරීම සමස්තයක් වශයෙන්. GC (කසළ එකතු කිරීම) සක්‍රීය කිරීම සඳහා මෑතකදී යෙදවූ දත්ත සමුදා වින්‍යාස කිරීමේ වෙනසක් පැය කිහිපයක පරිමාණයෙන් පහළ ප්‍රවාහ සේවාවක ප්‍රතිචාර කාලයට බලපාන ආකාරය බැලීම අතිශයින්ම ප්‍රයෝජනවත් වනු ඇත. මා මෙහි විස්තර කරන දේ යටිතල පහසුකම් වෙනස්වීම්වල බලපෑම පිළිබඳ A/B විශ්ලේෂණයක් සේ පෙනේ නම් බොහෝ සේවාවන්හි ලුහුබැඳීමේ ප්‍රතිඵල භාවිතා කිරීමෙන්, ඔබ සත්‍යයෙන් බොහෝ දුරස් නොවේ.

නිගමනය

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

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

විශ්ලේෂණයේ සහ අනුමාන කිරීමේ පහසුව සඳහා ප්‍රශස්ත වන ආකාරයෙන් හෝඩුවාවක් ප්‍රතිඵලවල පවතින විවිධ සංඥා නියෝජනය කරන පද්ධතියක් සැලසුම් කිරීම සඳහා සැලකිය යුතු මානසික උත්සාහයක් අවශ්‍ය වේ. එක් එක් හෝඩුවාවන් හෝ පරාසයන් දෙස නොබලා පරිශීලකයාට අන්ධ ස්ථාන මඟහරවා ගැනීමට උපකාර වන ආකාරයෙන් දෝෂහරණය කිරීමේදී පද්ධති ස්ථලකය වියුක්ත කරන්නේ කෙසේදැයි ඔබ සිතා බැලිය යුතුය.

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

පරිවර්තකගෙන් PS

අපගේ බ්ලොග් අඩවියේ ද කියවන්න:

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

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