අපි Kubernetes ඇතුලේ cloud FaaS හදලා Tinkoff hackathon එක දිනපු හැටි

අපි Kubernetes ඇතුලේ cloud FaaS හදලා Tinkoff hackathon එක දිනපු හැටි
පසුගිය වසරේ සිට අපගේ සමාගම හැකතන් සංවිධානය කිරීම ආරම්භ කළේය. එවැනි පළමු තරඟය ඉතා සාර්ථක විය, අපි ඒ ගැන ලිව්වා ලිපියයි. දෙවන hackathon 2019 පෙබරවාරි මාසයේදී සිදු වූ අතර එය එතරම් සාර්ථක නොවීය. බොහෝ කලකට පෙර දෙවැන්න පැවැත්වීමේ අරමුණු ගැන ලිවීය සංවිධායක.

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

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

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

ලකුණු ලබා ගැනීම යනු කුමක්ද

Tinkoff.ru, බොහෝ නවීන සමාගම් මෙන්, පාරිභෝගික ලකුණු ඇත. ලකුණු කිරීම යනු දත්ත විශ්ලේෂණයේ සංඛ්‍යානමය ක්‍රම මත පදනම් වූ පාරිභෝගික තක්සේරු පද්ධතියකි.

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

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

එවැනි තක්සේරුවක ක්‍රමයට විවිධ ආදාන දත්ත පිළිගත හැකිය. තවද යම් අවස්ථාවක දී අපට ආදානයට නව පරාමිතියක් එකතු කළ හැකිය, ඓතිහාසික දත්ත මත විශ්ලේෂණයේ ප්රතිඵල මත පදනම්ව, සේවාව භාවිතා කිරීමේ පරිවර්තන අනුපාතය වැඩි කරනු ඇත.

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

කාර්යය සඳහා, අපි දැනටමත් විශේෂිත තීරණ ගැනීමේ පද්ධතියක් භාවිතා කරමු IBM WebSphere ILOG JRules BRMS, විශ්ලේෂකයින්, තාක්ෂණවේදීන් සහ සංවර්ධකයින් විසින් සකස් කරන ලද නීති මත පදනම්ව, සේවාදායකයාට විශේෂිත බැංකු නිෂ්පාදනයක් අනුමත කිරීම හෝ ප්‍රතික්ෂේප කිරීම තීරණය කරයි.

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

කාර්ය

පෙබරවාරි 23 වැනි දින මෙම හැකතන් තරගය පැවැත්විණි. සහභාගිවන්නන්ට සටන් කාර්යයක් පිරිනමන ලදී: කොන්දේසි ගණනාවක් සපුරාලිය යුතු තීරණ ගැනීමේ පද්ධතියක් සංවර්ධනය කිරීම.

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

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

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

අපගේ විසඳුම

ටිකක් කල්පනා කිරීමෙන් පසුව, කාර්යය සම්පූර්ණ කිරීම සඳහා FaaS විසඳුමක් වඩාත් සුදුසු බව අපි තීරණය කළෙමු.

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

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

  1. විශ්ලේෂකයා ගබඩාවේ දත්ත මත පදනම්ව ස්ක්‍රිප්ට්, රීතිය හෝ එම්එල් ආකෘතියක් ලියයි. Hackathon හි කොටසක් ලෙස, අපි Mongodb භාවිතා කිරීමට තීරණය කළෙමු, නමුත් දත්ත ගබඩා කිරීමේ පද්ධතිය තෝරා ගැනීම මෙහිදී වැදගත් නොවේ.
  2. ඓතිහාසික දත්ත මත සංවර්ධිත නීති පරීක්ෂා කිරීමෙන් පසු, විශ්ලේෂක ඔහුගේ කේතය පරිපාලක පැනලය වෙත උඩුගත කරයි.
  3. අනුවාදය සහතික කිරීම සඳහා, සියලුම කේතයන් Git ගබඩා වෙත යයි.
  4. පරිපාලක පැනලය හරහා වෙනම ක්‍රියාකාරී Serverless මොඩියුලයක් ලෙස වලාකුළෙහි කේතය යෙදවීමට හැකි වනු ඇත.

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

Hackathon එකටත් කලින් අපි පාවිච්චි කරන Serverless framework එක තීරණය කළා. අද වෙළඳපොලේ මෙම ප්රවේශය ක්රියාත්මක කරන බොහෝ තාක්ෂණයන් තිබේ. Kubernetes ගෘහ නිර්මාණ ශිල්පය තුළ වඩාත් ජනප්රිය විසඳුම් වන්නේ Fission, Open FaaS සහ Kubeless ය. පවා ඇත ඔවුන්ගේ විස්තරය සහ සංසන්දනාත්මක විශ්ලේෂණය සමඟ හොඳ ලිපියක්.

සියලු වාසි සහ අවාසි කිරා බැලීමෙන් පසුව, අපි තෝරා ගත්තා විඛණ්ඩනය. මෙම Serverless රාමුව කළමනාකරණය කිරීමට තරමක් පහසු වන අතර කාර්යයේ අවශ්‍යතා සපුරාලයි.

විඛණ්ඩනය සමඟ වැඩ කිරීමට, ඔබ මූලික සංකල්ප දෙකක් තේරුම් ගත යුතුය: කාර්යය සහ පරිසරය. ශ්‍රිතයක් යනු විඛණ්ඩන පරිසරයක් ඇති එක් භාෂාවකින් ලියා ඇති කේත කොටසකි. මෙම රාමුව තුළ ක්රියාත්මක වන පරිසරයන් ලැයිස්තුව Python, JS, Go, JVM සහ තවත් බොහෝ ජනප්‍රිය භාෂා සහ තාක්ෂණයන් ඇතුළත් වේ.

විඛණ්ඩනයට ලිපිගොනු කිහිපයකට බෙදා, ලේඛනාගාරයකට පෙර ඇසුරුම් කර ඇති කාර්යයන් ඉටු කිරීමට ද හැකියාව ඇත. කුබර්නෙටස් පොකුරක් තුළ විඛණ්ඩනයේ ක්‍රියාකාරිත්වය විශේෂිත කරල් මගින් සහතික කරනු ලැබේ, ඒවා රාමුව විසින්ම කළමනාකරණය කරනු ලැබේ. පොකුරු කරල් සමඟ අන්තර් ක්‍රියා කිරීමට, සෑම කාර්යයකටම තමන්ගේම මාර්ගයක් පැවරිය යුතු අතර, POST ඉල්ලීමකදී ඔබට GET පරාමිති හෝ ඉල්ලීම් ශරීරයක් ලබා දිය හැක.

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

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

අපට ලැබුණු දේ

අපි hackathon වෙත පැමිණියේ සූදානම් කළ විසඳුමක් සමඟින් (අපගේ ෆැන්ටසි තුළ) අපට කළ යුතුව තිබුණේ අපගේ සියලු සිතුවිලි කේත රේඛා බවට පරිවර්තනය කිරීමයි.

ඕනෑම hackathon එකක සාර්ථකත්වය සඳහා යතුර සූදානම් වීම සහ හොඳින් ලියා ඇති සැලැස්මයි. එමනිසා, අප කළ පළමු දෙය නම් අපගේ පද්ධති ගෘහ නිර්මාණ ශිල්පය සමන්විත වන මොඩියුල මොනවාද සහ අප භාවිතා කරන තාක්ෂණයන් මොනවාද යන්න තීරණය කිරීමයි.

අපගේ ව්‍යාපෘතියේ ගෘහ නිර්මාණ ශිල්පය පහත පරිදි විය.

අපි Kubernetes ඇතුලේ cloud FaaS හදලා Tinkoff hackathon එක දිනපු හැටි
මෙම රූප සටහනේ ඇතුළත් වීමේ ස්ථාන දෙකක් පෙන්වයි, විශ්ලේෂක (අපගේ පද්ධතියේ ප්‍රධාන පරිශීලකයා) සහ සේවාලාභියා.

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

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

JSON ලේඛන ආකාරයෙන් ලේඛන-නැඹුරු දත්ත ගබඩා කිරීම හේතුවෙන් අපගේ පද්ධතියේ ගබඩාවක් ලෙස MongoDB භාවිතා කිරීමට අපි තීරණය කළෙමු, මුල් ඉල්ලීම ඇතුළුව පොහොසත් කිරීමේ සේවා, REST පාලක හරහා සියලු දත්ත එකතු කර ඇත.

ඉතින්, අපි වේදිකාව ක්රියාත්මක කිරීමට පැය XNUMX ක් තිබුණා. අපි භූමිකාවන් ඉතා සාර්ථකව බෙදා හැරියෙමු; අපගේ ව්‍යාපෘතියේ සෑම කණ්ඩායමේ සාමාජිකයෙකුටම තමාගේම වගකීම් අංශයක් තිබුණි:

  1. විශ්ලේෂකයාගේ වැඩ සඳහා ඉදිරිපස-අන්ත පරිපාලක පැනල, එමඟින් ඔහුට ලිඛිත ස්ක්‍රිප්ට් වල අනුවාද පාලන පද්ධතියෙන් නීති බාගත කිරීමට, ආදාන දත්ත පොහොසත් කිරීමට විකල්ප තෝරා ගැනීමට සහ මාර්ගගත රීති ස්ක්‍රිප්ට් සංස්කරණය කිරීමට හැකිය.
  2. ඉදිරිපස සහ VCS සමඟ ඒකාබද්ධ කිරීම සඳහා REST API ඇතුළු පසුපෙළ පරිපාලක.
  3. Google Cloud හි යටිතල පහසුකම් සැකසීම සහ මූලාශ්‍ර දත්ත පොහොසත් කිරීම සඳහා සේවාවක් සංවර්ධනය කිරීම.
  4. පසුව නීති යෙදවීම සඳහා පරිපාලක යෙදුම Serverless රාමුව සමඟ ඒකාබද්ධ කිරීම සඳහා මොඩියුලයක්.
  5. සම්පූර්ණ පද්ධතියේ ක්‍රියාකාරීත්වය පරීක්ෂා කිරීම සහ අවසාන නිරූපණය සඳහා ලැබෙන යෙදුම් (තීරණ) පිළිබඳ විශ්ලේෂණ එක්රැස් කිරීම සඳහා නීති රීති ස්ක්‍රිප්ට්.

පිළිවෙලට ආරම්භ කරමු.

බැංකු UI කට්ටලය භාවිතයෙන් අපගේ ඉදිරිපස කෙළවර ලියා ඇත්තේ කෝණික 7ෙනි. පරිපාලක පැනලයේ අවසාන අනුවාදය මෙලෙස දිස් විය:

අපි Kubernetes ඇතුලේ cloud FaaS හදලා Tinkoff hackathon එක දිනපු හැටි
සුළු කාලයක් තිබූ බැවින්, අපි ප්රධාන ක්රියාකාරිත්වය පමණක් ක්රියාත්මක කිරීමට උත්සාහ කළෙමු. Kubernetes පොකුරේ ශ්‍රිතයක් යෙදවීම සඳහා, සිදුවීමක් (ක්ලවුඩ් තුළ රීතියක් යෙදිය යුතු සේවාවක්) සහ තීරණ ගැනීමේ තර්කනය ක්‍රියාත්මක කරන ශ්‍රිතයේ කේතය තෝරා ගැනීම අවශ්‍ය විය. තෝරාගත් සේවාව සඳහා රීතියක එක් එක් යෙදවීම සඳහා, අපි මෙම සිදුවීමේ ලොගයක් ලිව්වෙමු. පරිපාලක පැනලයේ ඔබට සියලු සිදුවීම්වල ලොග් දැකිය හැකිය.

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

අපි Kubernetes ඇතුලේ cloud FaaS හදලා Tinkoff hackathon එක දිනපු හැටි
නීති රීති වලට අමතරව, පොහොසත් කිරීමේ ශ්‍රිත භාවිතයෙන් මූලාශ්‍ර දත්ත ක්‍රමයෙන් පොහොසත් කිරීමේ හැකියාව ද අපි ක්‍රියාත්මක කළෙමු, එහි කේතය දත්ත ගබඩාවට යාමට, තෙවන පාර්ශවීය සේවාවන් ඇමතීමට සහ මූලික ගණනය කිරීම් සිදු කළ හැකි ස්ක්‍රිප්ට් ද විය. . අපගේ විසඳුම විදහා දැක්වීම සඳහා, අපි ඉල්ලීම හැර ගිය සේවාදායකයාගේ රාශි චක්‍රය ගණනය කර තෙවන පාර්ශවීය REST සේවාවක් භාවිතයෙන් ඔහුගේ ජංගම ක්‍රියාකරු තීරණය කළෙමු.

වේදිකාවේ පසුබිම ජාවා භාෂාවෙන් ලියා Spring Boot යෙදුමක් ලෙස ක්‍රියාත්මක කරන ලදී. අපි මුලින් සැලසුම් කළේ පරිපාලක දත්ත ගබඩා කිරීම සඳහා Postgres භාවිතා කිරීමට, නමුත්, hackathon හි කොටසක් ලෙස, අපි කාලය ඉතිරි කර ගැනීම සඳහා සරල H2 වෙත සීමා කිරීමට තීරණය කළෙමු. පසුපෙළේ, විමසුම් සුපෝෂණය කිරීමේ කාර්යයන් සහ රීති විධානාවලි අනුවාද කිරීම සඳහා Bitbucket සමඟ ඒකාබද්ධ කිරීම ක්‍රියාත්මක කරන ලදී. දුරස්ථ Git ගබඩාවන් සමඟ ඒකාබද්ධ කිරීම සඳහා, අපි භාවිතා කළෙමු JGit පුස්තකාලය, එය CLI විධානයන් මත එතීම ආකාරයකි, ඔබට පහසු මෘදුකාංග අතුරුමුහුණතක් භාවිතයෙන් ඕනෑම git උපදෙස් ක්‍රියාත්මක කිරීමට ඉඩ සලසයි. එබැවින් අපට පොහොසත් කිරීමේ කාර්යයන් සහ රීති සඳහා වෙන වෙනම ගබඩා දෙකක් තිබූ අතර සියලුම ස්ක්‍රිප්ට් නාමාවලි වලට බෙදා ඇත. UI හරහා ගබඩාවේ අත්තනෝමතික ශාඛාවක ස්ක්‍රිප්ට් එකක නවතම කැපවීම තෝරා ගැනීමට හැකි විය. පරිපාලක පැනලය හරහා කේතයට වෙනස්කම් සිදු කරන විට, වෙනස් කළ කේතයේ කැපවීම් දුරස්ථ ගබඩා තුළ නිර්මාණය විය.

අපගේ අදහස ක්‍රියාත්මක කිරීමට සුදුසු යටිතල පහසුකම් අවශ්‍ය විය. අපි අපේ Kubernetes පොකුර වලාකුළෙහි යෙදවීමට තීරණය කළෙමු. අපගේ තේරීම වූයේ Google Cloud Platform විය. විඛණ්ඩන සේවාදායක රහිත රාමුව Kubernetes පොකුරක් මත ස්ථාපනය කර ඇති අතර, එය අපි Gcloud හි යොදවා ඇත. මුලදී, මූලාශ්‍ර දත්ත පොහොසත් කිරීමේ සේවාව ක්‍රියාත්මක වූයේ k8s පොකුර තුළ Pod එකක ඔතා වෙනම ජාවා යෙදුමක් ලෙසිනි. නමුත් hackathon මධ්‍යයේ අපගේ ව්‍යාපෘතියේ මූලික නිරූපණයකින් පසුව, එන යෙදුම්වල අමු දත්ත පොහොසත් කරන්නේ කෙසේද යන්න තෝරා ගැනීමට අවස්ථාව ලබා දීම සඳහා Enrichment සේවාව වඩාත් නම්‍යශීලී කිරීමට අපට නිර්දේශ කරන ලදී. තවද අපට පොහොසත් කිරීමේ සේවාව සර්වර් රහිත කිරීම හැර වෙනත් විකල්පයක් නොතිබුණි.

Fission සමඟ වැඩ කිරීම සඳහා, අපි භාවිතා කළේ Fission CLI, එය Kubernetes CLI මත ස්ථාපනය කළ යුතුය. k8s පොකුරකට කාර්යයන් යෙදවීම ඉතා සරල ය; ඔබට අවශ්‍ය වන්නේ අභ්‍යන්තර මාර්ගයක් පැවරීම සහ පොකුරෙන් පිටත ප්‍රවේශය අවශ්‍ය නම් එන ගමනාගමනයට ඉඩ දීම සඳහා කාර්යයට ඇතුල් වීම පමණි. එක් කාර්යයක් යෙදවීමට සාමාන්‍යයෙන් තත්පර 10කට වඩා ගත නොවේ.

ව්යාපෘතියේ අවසාන ඉදිරිපත් කිරීම සහ සාරාංශ කිරීම

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

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

අපි Kubernetes ඇතුලේ cloud FaaS හදලා Tinkoff hackathon එක දිනපු හැටි
ප්රතික්ෂේප කිරීම හෝ අනුමැතියට අමතරව, සේවාදායකයාට වෙනත් නිෂ්පාදන ලැයිස්තුවක් ද ලැබුණි, අපි සමාන්තරව යැවූ ඉල්ලීම්. අපගේ වේදිකාවේ හරස් විකිණීමේ හැකියාව අපි පෙන්නුම් කළේ මේ ආකාරයටය.

ව්‍යාජ බැංකු නිෂ්පාදන 3ක් ලබා ගත හැකි විය:

  • ණය.
  • සෙල්ලම් බඩු
  • උකස් කිරීම.

ප්‍රදර්ශනය අතරතුර, අපි එක් එක් සේවාව සඳහා සූදානම් කළ කාර්යයන් සහ සුපෝෂණය කිරීමේ ස්ක්‍රිප්ට් යෙදුවෙමු.

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

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

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

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

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

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