குபெர்னெட்டஸில் எப்படி கிளவுட் ஃபாஸை உருவாக்கி டின்காஃப் ஹேக்கத்தானை வென்றோம்

குபெர்னெட்டஸில் எப்படி கிளவுட் ஃபாஸை உருவாக்கி டின்காஃப் ஹேக்கத்தானை வென்றோம்
கடந்த ஆண்டு தொடங்கி, எங்கள் நிறுவனம் ஹேக்கத்தான்களை ஏற்பாடு செய்யத் தொடங்கியது. இதுபோன்ற முதல் போட்டி மிகவும் வெற்றிகரமாக இருந்தது, அதைப் பற்றி நாங்கள் எழுதினோம் கட்டுரை. இரண்டாவது ஹேக்கத்தான் பிப்ரவரி 2019 இல் நடந்தது மற்றும் குறைவான வெற்றியைப் பெறவில்லை. மிக நீண்ட காலத்திற்கு முன்பு பிந்தையதை வைத்திருப்பதன் குறிக்கோள்களைப் பற்றி நான் எழுதிய அமைப்பாளர்.

அதன் செயல்பாட்டிற்கான தொழில்நுட்ப அடுக்கைத் தேர்ந்தெடுப்பதில் பங்கேற்பாளர்களுக்கு முழுமையான சுதந்திரத்துடன் ஒரு சுவாரஸ்யமான பணி வழங்கப்பட்டது. விரைவான பயன்பாடுகளுடன் வேலை செய்யக்கூடிய, அதிக சுமைகளைத் தாங்கக்கூடிய, மற்றும் கணினியே எளிதில் அளவிடக்கூடியதாக இருக்கும் வாடிக்கையாளர் மதிப்பெண் செயல்பாடுகளை வசதியாகப் பயன்படுத்துவதற்கு ஒரு முடிவெடுக்கும் தளத்தை செயல்படுத்த வேண்டியது அவசியம்.

பங்கேற்பாளர்களின் திட்டங்களின் இறுதி விளக்கக்காட்சிகளின் ஆர்ப்பாட்டத்தின் போது நாங்கள் உறுதியாக நம்பியதால், பணி அற்பமானதல்ல மற்றும் பல வழிகளில் தீர்க்கப்படலாம். ஹேக்கத்தானில் 6 பேர் கொண்ட 5 அணிகள் இருந்தன, பங்கேற்பாளர்கள் அனைவருக்கும் நல்ல திட்டங்கள் இருந்தன, ஆனால் எங்கள் தளம் மிகவும் போட்டித்தன்மை வாய்ந்ததாக மாறியது. எங்களிடம் மிகவும் சுவாரஸ்யமான திட்டம் உள்ளது, இந்த கட்டுரையில் நான் பேச விரும்புகிறேன்.

எங்கள் தீர்வு, குபெர்னெட்டஸில் உள்ள சர்வர்லெஸ் கட்டமைப்பை அடிப்படையாகக் கொண்ட ஒரு தளமாகும், இது புதிய அம்சங்களை உற்பத்திக்குக் கொண்டுவருவதற்கான நேரத்தைக் குறைக்கிறது. பகுப்பாய்வாளர்கள் தங்களுக்கு வசதியான சூழலில் குறியீட்டை எழுதவும், பொறியாளர்கள் மற்றும் டெவலப்பர்களின் பங்கேற்பு இல்லாமல் அதை உற்பத்தியில் பயன்படுத்தவும் இது அனுமதிக்கிறது.

என்ன மதிப்பெண்

Tinkoff.ru, பல நவீன நிறுவனங்களைப் போலவே, வாடிக்கையாளர் மதிப்பெண்ணைக் கொண்டுள்ளது. ஸ்கோரிங் என்பது தரவு பகுப்பாய்வின் புள்ளியியல் முறைகளின் அடிப்படையில் வாடிக்கையாளர் மதிப்பீட்டு அமைப்பாகும்.

எடுத்துக்காட்டாக, ஒரு வாடிக்கையாளர் தனக்கு கடன் வழங்குவதற்கான கோரிக்கையுடன் எங்களிடம் திரும்புகிறார், அல்லது எங்களுடன் ஒரு தனிப்பட்ட தொழில்முனைவோர் கணக்கைத் திறக்கவும். நாங்கள் அவருக்கு கடன் வழங்க திட்டமிட்டால், அவருடைய கடனை மதிப்பீடு செய்ய வேண்டும், மேலும் கணக்கு ஒரு தனிப்பட்ட தொழில்முனைவோராக இருந்தால், வாடிக்கையாளர் மோசடி பரிவர்த்தனைகளை நடத்த மாட்டார் என்பதில் உறுதியாக இருக்க வேண்டும்.

அத்தகைய முடிவுகளை எடுப்பதற்கான அடிப்படையானது பயன்பாட்டிலிருந்து தரவு மற்றும் எங்கள் சேமிப்பகத்திலிருந்து தரவு இரண்டையும் பகுப்பாய்வு செய்யும் கணித மாதிரிகள் ஆகும். ஸ்கோரிங் தவிர, எங்கள் வாடிக்கையாளர்களுக்கான புதிய தயாரிப்புகளுக்கான தனிப்பட்ட பரிந்துரைகளை உருவாக்கும் சேவையிலும் இதே போன்ற புள்ளிவிவர முறைகள் பயன்படுத்தப்படலாம்.

அத்தகைய மதிப்பீட்டின் முறையானது பல்வேறு உள்ளீட்டுத் தரவை ஏற்றுக்கொள்ளலாம். ஒரு கட்டத்தில் நாம் உள்ளீட்டில் ஒரு புதிய அளவுருவைச் சேர்க்கலாம், இது வரலாற்றுத் தரவுகளின் பகுப்பாய்வு முடிவுகளின் அடிப்படையில், சேவையைப் பயன்படுத்துவதற்கான மாற்று விகிதத்தை அதிகரிக்கும்.

வாடிக்கையாளர் உறவுகளைப் பற்றிய ஏராளமான தரவுகளை நாங்கள் வைத்திருக்கிறோம், மேலும் இந்தத் தகவலின் அளவு தொடர்ந்து வளர்ந்து வருகிறது. ஸ்கோரிங் வேலை செய்ய, தரவுச் செயலாக்கத்திற்கு விதிகள் (அல்லது கணித மாதிரிகள்) தேவைப்படுகின்றன, இது யாருடைய விண்ணப்பத்தை அங்கீகரிக்க வேண்டும், யாரை மறுக்க வேண்டும் மற்றும் இன்னும் இரண்டு தயாரிப்புகளை வழங்குவது, அவர்களின் சாத்தியமான ஆர்வத்தை மதிப்பிடுவது ஆகியவற்றை விரைவாக தீர்மானிக்க அனுமதிக்கிறது.

கையில் உள்ள பணிக்காக, நாங்கள் ஏற்கனவே ஒரு சிறப்பு முடிவெடுக்கும் முறையைப் பயன்படுத்துகிறோம் ஐபிஎம் வெப்ஸ்பியர் ஐஎல்ஓஜி ஜேரூல்ஸ் பிஆர்எம்எஸ், இது, ஆய்வாளர்கள், தொழில்நுட்ப வல்லுநர்கள் மற்றும் டெவலப்பர்கள் அமைத்த விதிகளின் அடிப்படையில், வாடிக்கையாளருக்கு ஒரு குறிப்பிட்ட வங்கித் தயாரிப்பை அங்கீகரிப்பதா அல்லது மறுப்பதா என்பதை தீர்மானிக்கிறது.

சந்தையில் பல ஆயத்த தீர்வுகள் உள்ளன, மதிப்பெண் மாதிரிகள் மற்றும் முடிவெடுக்கும் அமைப்புகள். இந்த அமைப்புகளில் ஒன்றை நாங்கள் எங்கள் நிறுவனத்தில் பயன்படுத்துகிறோம். ஆனால் வணிகம் வளர்ந்து வருகிறது, பல்வகைப்படுத்துகிறது, வாடிக்கையாளர்களின் எண்ணிக்கை மற்றும் வழங்கப்படும் தயாரிப்புகளின் எண்ணிக்கை ஆகிய இரண்டும் அதிகரித்து வருகின்றன, இதனுடன், தற்போதுள்ள முடிவெடுக்கும் செயல்முறையை எவ்வாறு மேம்படுத்துவது என்பது குறித்த யோசனைகள் வெளிவருகின்றன. ஏற்கனவே உள்ள அமைப்பில் பணிபுரியும் நபர்களுக்கு அதை எப்படி எளிமையாகவும், சிறப்பாகவும், வசதியாகவும் மாற்றுவது என்பது குறித்து பல யோசனைகள் உள்ளன, ஆனால் சில நேரங்களில் வெளியில் இருந்து வரும் யோசனைகள் பயனுள்ளதாக இருக்கும். புதிய ஹேக்கத்தான் ஒலி யோசனைகளை சேகரிக்கும் நோக்கத்துடன் ஏற்பாடு செய்யப்பட்டது.

பணி

பிப்ரவரி 23 அன்று ஹேக்கத்தான் நடைபெற்றது. பங்கேற்பாளர்களுக்கு ஒரு போர் பணி வழங்கப்பட்டது: பல நிபந்தனைகளை சந்திக்க வேண்டிய முடிவெடுக்கும் முறையை உருவாக்க.

தற்போதுள்ள அமைப்பு எவ்வாறு செயல்படுகிறது மற்றும் அதன் செயல்பாட்டின் போது என்ன சிரமங்கள் எழுகின்றன, அத்துடன் வளர்ந்த தளம் என்ன வணிக இலக்குகளை பின்பற்ற வேண்டும் என்பதை நாங்கள் கூறினோம். பகுப்பாய்வாளர்களின் செயல்பாட்டுக் குறியீடு எவ்வளவு விரைவாக முடியுமோ அவ்வளவு விரைவாக உற்பத்தியில் இறங்கும் வகையில், விதிகளை உருவாக்குவதற்கான வேகமான சந்தையை கணினி கொண்டிருக்க வேண்டும். பயன்பாடுகளின் உள்வரும் ஓட்டத்திற்கு, முடிவெடுக்கும் நேரம் குறைந்தபட்சமாக இருக்க வேண்டும். மேலும், எங்களால் அங்கீகரிக்கப்பட்ட மற்றும் வாடிக்கையாளரிடமிருந்து சாத்தியமான ஆர்வத்தைப் பெற்றிருந்தால், வாடிக்கையாளர் மற்ற நிறுவன தயாரிப்புகளை வாங்குவதற்கான வாய்ப்பை வழங்குவதற்காக உருவாக்கப்பட்ட அமைப்பு குறுக்கு விற்பனை திறன்களைக் கொண்டிருக்க வேண்டும்.

ஒரே இரவில் வெளியிடத் தயாராக இருக்கும் திட்டத்தை எழுதுவது சாத்தியமில்லை என்பது தெளிவாகிறது, அது நிச்சயமாக உற்பத்திக்குச் செல்லும், மேலும் முழு அமைப்பையும் உள்ளடக்குவது மிகவும் கடினம், எனவே அதன் ஒரு பகுதியையாவது செயல்படுத்துமாறு கேட்டுக் கொள்ளப்பட்டோம். முன்மாதிரி பூர்த்தி செய்ய வேண்டிய பல தேவைகள் நிறுவப்பட்டன. அனைத்துத் தேவைகளையும் முழுமையாகப் பூர்த்தி செய்வதற்கும், உருவாக்கப்படும் தளத்தின் தனிப்பட்ட பிரிவுகளில் விரிவாகப் பணியாற்றுவதற்கும் இரண்டையும் முயற்சி செய்ய முடிந்தது.

தொழில்நுட்பத்தைப் பொறுத்தவரை, பங்கேற்பாளர்கள் அனைவருக்கும் தேர்வு செய்வதற்கான முழுமையான சுதந்திரம் வழங்கப்பட்டது. எந்தவொரு கருத்துகளையும் தொழில்நுட்பங்களையும் பயன்படுத்த முடியும்: தரவு ஸ்ட்ரீமிங், இயந்திர கற்றல், நிகழ்வு ஆதாரம், பெரிய தரவு மற்றும் பிற.

எங்கள் தீர்வு

ஒரு சிறிய மூளைச்சலவைக்குப் பிறகு, பணியை முடிக்க FaaS தீர்வு சிறந்தது என்று முடிவு செய்தோம்.

இந்த தீர்வுக்கு, உருவாக்கப்படும் முடிவெடுக்கும் முறையின் விதிகளை செயல்படுத்துவதற்கு பொருத்தமான சர்வர்லெஸ் கட்டமைப்பைக் கண்டறிவது அவசியம். உள்கட்டமைப்பு மேலாண்மைக்காக டின்காஃப் தீவிரமாக குபெர்னெட்டஸைப் பயன்படுத்துவதால், அதன் அடிப்படையில் பல ஆயத்த தீர்வுகளைப் பார்த்தோம்; அதைப் பற்றி நான் பின்னர் கூறுவேன்.

மிகவும் பயனுள்ள தீர்வைக் கண்டறிய, அதன் பயனர்களின் பார்வையில் உருவாக்கப்பட்ட தயாரிப்பைப் பார்த்தோம். எங்கள் அமைப்பின் முக்கிய பயனர்கள் விதி மேம்பாட்டில் ஈடுபட்டுள்ள ஆய்வாளர்கள். விதிகள் சேவையகத்திற்குப் பயன்படுத்தப்பட வேண்டும், அல்லது, எங்கள் விஷயத்தில், கிளவுட்டில் பயன்படுத்தப்பட வேண்டும், பின்னர் முடிவெடுப்பதற்காக. ஒரு ஆய்வாளரின் பார்வையில், பணிப்பாய்வு இதுபோல் தெரிகிறது:

  1. ஆய்வாளர் கிடங்கில் இருந்து தரவின் அடிப்படையில் ஒரு ஸ்கிரிப்ட், விதி அல்லது ML மாதிரியை எழுதுகிறார். ஹேக்கத்தானின் ஒரு பகுதியாக, Mongodb ஐப் பயன்படுத்த முடிவு செய்தோம், ஆனால் தரவு சேமிப்பக அமைப்பின் தேர்வு இங்கே முக்கியமில்லை.
  2. வரலாற்று தரவுகளில் உருவாக்கப்பட்ட விதிகளை சோதித்த பிறகு, ஆய்வாளர் தனது குறியீட்டை நிர்வாக குழுவில் பதிவேற்றுகிறார்.
  3. பதிப்பை உறுதிப்படுத்த, அனைத்து குறியீடுகளும் Git களஞ்சியங்களுக்குச் செல்லும்.
  4. நிர்வாகி குழு மூலம், மேகக்கணியில் குறியீட்டை ஒரு தனி செயல்பாட்டு சர்வர்லெஸ் தொகுதியாகப் பயன்படுத்த முடியும்.

வாடிக்கையாளர்களிடமிருந்து ஆரம்ப தரவு, கிடங்கில் இருந்து தரவைக் கொண்டு ஆரம்ப கோரிக்கையை வளப்படுத்த வடிவமைக்கப்பட்ட ஒரு சிறப்பு செறிவூட்டல் சேவை மூலம் அனுப்பப்பட வேண்டும். ஒரு ஒருங்கிணைந்த தரவுக் கட்டமைப்பைப் பராமரிக்க, இந்தச் சேவையானது ஒரே களஞ்சியத்துடன் (விதிகளை உருவாக்கும் போது பகுப்பாய்வாளர் தரவை எடுக்கும்) செயல்படும் வகையில் செயல்படுத்துவது முக்கியமானது.

ஹேக்கத்தானுக்கு முன்பே, நாங்கள் பயன்படுத்தும் சர்வர்லெஸ் கட்டமைப்பை நாங்கள் முடிவு செய்தோம். இன்று சந்தையில் இந்த அணுகுமுறையை செயல்படுத்தும் தொழில்நுட்பங்கள் நிறைய உள்ளன. குபெர்னெட்ஸ் கட்டிடக்கலையில் உள்ள மிகவும் பிரபலமான தீர்வுகள் பிளவு, திறந்த ஃபாஸ் மற்றும் குபெலெஸ் ஆகும். கூட உள்ளன அவற்றின் விளக்கம் மற்றும் ஒப்பீட்டு பகுப்பாய்வுடன் கூடிய நல்ல கட்டுரை.

அனைத்து நன்மை தீமைகளையும் எடைபோட்டு, நாங்கள் தேர்வு செய்தோம் பிளப்பு. இந்த சர்வர்லெஸ் கட்டமைப்பை நிர்வகிப்பது மிகவும் எளிதானது மற்றும் பணியின் தேவைகளைப் பூர்த்தி செய்கிறது.

ஃபிஷனுடன் வேலை செய்ய, நீங்கள் இரண்டு அடிப்படைக் கருத்துக்களைப் புரிந்து கொள்ள வேண்டும்: செயல்பாடு மற்றும் சூழல். ஒரு செயல்பாடு என்பது பிளவு சூழல் உள்ள மொழிகளில் ஒன்றில் எழுதப்பட்ட குறியீட்டின் ஒரு பகுதி. இந்த கட்டமைப்பிற்குள் செயல்படுத்தப்பட்ட சூழல்களின் பட்டியல் Python, JS, Go, JVM மற்றும் பல பிரபலமான மொழிகள் மற்றும் தொழில்நுட்பங்களை உள்ளடக்கியது.

பிளவு பல கோப்புகளாகப் பிரிக்கப்பட்டு, ஒரு காப்பகத்தில் முன்பே தொகுக்கப்பட்ட செயல்பாடுகளைச் செய்யும் திறன் கொண்டது. குபெர்னெட்டஸ் கிளஸ்டரில் பிளவின் செயல்பாடு சிறப்பு காய்களால் உறுதி செய்யப்படுகிறது, அவை கட்டமைப்பின் மூலம் நிர்வகிக்கப்படுகின்றன. கிளஸ்டர் பாட்களுடன் தொடர்பு கொள்ள, ஒவ்வொரு செயல்பாட்டிற்கும் அதன் சொந்த வழி ஒதுக்கப்பட வேண்டும், மேலும் நீங்கள் GET அளவுருக்களை அனுப்பலாம் அல்லது POST கோரிக்கையின் போது உடலைக் கோரலாம்.

இதன் விளைவாக, பொறியாளர்கள் மற்றும் டெவலப்பர்களின் பங்களிப்பு இல்லாமல் வளர்ந்த விதி ஸ்கிரிப்ட்களை ஆய்வாளர்கள் பயன்படுத்த அனுமதிக்கும் ஒரு தீர்வைப் பெற நாங்கள் திட்டமிட்டுள்ளோம். விவரிக்கப்பட்ட அணுகுமுறை டெவலப்பர்கள் ஆய்வாளர் குறியீட்டை வேறொரு மொழியில் மீண்டும் எழுத வேண்டிய அவசியத்தையும் நீக்குகிறது. எடுத்துக்காட்டாக, நாம் பயன்படுத்தும் தற்போதைய முடிவெடுக்கும் முறைக்கு, மிகவும் சிறப்பு வாய்ந்த தொழில்நுட்பங்கள் மற்றும் மொழிகளில் விதிகளை எழுத வேண்டும், அதன் நோக்கம் மிகவும் குறைவாக உள்ளது, மேலும் பயன்பாட்டு சேவையகத்தின் மீது வலுவான சார்பு உள்ளது, ஏனெனில் அனைத்து வரைவு வங்கி விதிகளும் ஒரே சூழலில் பயன்படுத்தப்படுகின்றன. இதன் விளைவாக, புதிய விதிகளை வரிசைப்படுத்த முழு அமைப்பையும் வெளியிடுவது அவசியம்.

எங்கள் முன்மொழியப்பட்ட தீர்வில், விதிகளை வெளியிட வேண்டிய அவசியமில்லை; ஒரு பொத்தானைக் கிளிக் செய்வதன் மூலம் குறியீட்டை எளிதாகப் பயன்படுத்த முடியும். மேலும், குபெர்னெட்ஸில் உள்ள உள்கட்டமைப்பு மேலாண்மை, சுமை மற்றும் அளவிடுதல் பற்றி சிந்திக்காமல் இருக்க உங்களை அனுமதிக்கிறது; இதுபோன்ற சிக்கல்கள் பெட்டிக்கு வெளியே தீர்க்கப்படுகின்றன. ஒரு தரவுக் கிடங்கின் பயன்பாடு, நிகழ்நேரத் தரவை வரலாற்றுத் தரவுகளுடன் ஒப்பிட வேண்டிய தேவையை நீக்குகிறது, இது ஆய்வாளரின் பணியை எளிதாக்குகிறது.

நமக்கு என்ன கிடைத்தது

நாங்கள் ஒரு ஆயத்த தீர்வுடன் (எங்கள் கற்பனைகளில்) ஹேக்கத்தானுக்கு வந்ததால், நாம் செய்ய வேண்டியதெல்லாம் நமது எண்ணங்கள் அனைத்தையும் குறியீட்டு வரிகளாக மாற்றுவதுதான்.

எந்தவொரு ஹேக்கத்தானின் வெற்றிக்கான திறவுகோல் தயாரிப்பு மற்றும் நன்கு எழுதப்பட்ட திட்டமாகும். எனவே, நாங்கள் செய்த முதல் விஷயம், எங்கள் கணினி கட்டமைப்பில் என்ன தொகுதிகள் இருக்க வேண்டும் மற்றும் என்ன தொழில்நுட்பங்களைப் பயன்படுத்த வேண்டும் என்பதை முடிவு செய்தோம்.

எங்கள் திட்டத்தின் கட்டமைப்பு பின்வருமாறு:

குபெர்னெட்டஸில் எப்படி கிளவுட் ஃபாஸை உருவாக்கி டின்காஃப் ஹேக்கத்தானை வென்றோம்
இந்த வரைபடம் இரண்டு நுழைவு புள்ளிகளைக் காட்டுகிறது, ஆய்வாளர் (எங்கள் கணினியின் முக்கிய பயனர்) மற்றும் கிளையன்ட்.

வேலை செயல்முறை இப்படி கட்டமைக்கப்பட்டுள்ளது. ஆய்வாளர் தனது மாதிரிக்கான விதி செயல்பாடு மற்றும் தரவு செறிவூட்டல் செயல்பாட்டை உருவாக்குகிறார், ஒரு Git களஞ்சியத்தில் தனது குறியீட்டை சேமித்து, நிர்வாகி பயன்பாட்டின் மூலம் அவரது மாதிரியை கிளவுட்டில் பயன்படுத்துகிறார். வரிசைப்படுத்தப்பட்ட செயல்பாடு எவ்வாறு அழைக்கப்படும் என்பதைக் கருத்தில் கொள்வோம் மற்றும் வாடிக்கையாளர்களிடமிருந்து உள்வரும் கோரிக்கைகளில் முடிவுகளை எடுப்போம்:

  1. வாடிக்கையாளர் இணையதளத்தில் ஒரு படிவத்தை நிரப்பி, தனது கோரிக்கையை கட்டுப்படுத்திக்கு அனுப்புகிறார். ஒரு முடிவு எடுக்க வேண்டிய ஒரு பயன்பாடு கணினி உள்ளீட்டிற்கு வந்து அதன் அசல் வடிவத்தில் தரவுத்தளத்தில் பதிவு செய்யப்படுகிறது.
  2. அடுத்து, தேவைப்பட்டால், செறிவூட்டலுக்கு மூல கோரிக்கை அனுப்பப்படும். வெளிப்புறச் சேவைகள் மற்றும் சேமிப்பகத்தின் தரவுகளுடன் ஆரம்பக் கோரிக்கையை நீங்கள் சேர்க்கலாம். இதன் விளைவாக செறிவூட்டப்பட்ட வினவல் தரவுத்தளத்திலும் சேமிக்கப்படுகிறது.
  3. ஆய்வாளர் செயல்பாடு தொடங்கப்பட்டது, இது செறிவூட்டப்பட்ட வினவலை உள்ளீடாக எடுத்து ஒரு தீர்வை உருவாக்குகிறது, இது சேமிப்பகத்திலும் எழுதப்படுகிறது.

அசல் கோரிக்கை உட்பட, செறிவூட்டல் சேவைகள், REST கன்ட்ரோலர்கள் மூலம் எல்லா தரவையும் ஒருங்கிணைத்ததால், JSON ஆவணங்கள் வடிவில் ஆவணம் சார்ந்த தரவு சேமிப்பகத்தின் காரணமாக MongoDB ஐ எங்கள் கணினியில் சேமிப்பகமாகப் பயன்படுத்த முடிவு செய்தோம்.

எனவே, தளத்தை செயல்படுத்த XNUMX மணிநேரம் இருந்தது. நாங்கள் பாத்திரங்களை மிகவும் வெற்றிகரமாக விநியோகித்தோம்; எங்கள் திட்டத்தில் ஒவ்வொரு குழு உறுப்பினருக்கும் அவரவர் பொறுப்பு உள்ளது:

  1. ஆய்வாளரின் பணிக்கான முன்-இறுதி நிர்வாகி பேனல்கள், இதன் மூலம் அவர் எழுதப்பட்ட ஸ்கிரிப்ட்களின் பதிப்புக் கட்டுப்பாட்டு அமைப்பிலிருந்து விதிகளைப் பதிவிறக்கலாம், உள்ளீட்டுத் தரவை மேம்படுத்துவதற்கான விருப்பங்களைத் தேர்ந்தெடுக்கலாம் மற்றும் ஆன்லைனில் விதி ஸ்கிரிப்ட்களைத் திருத்தலாம்.
  2. பின்தள நிர்வாகி, முன்பக்கத்திற்கான REST API மற்றும் VCS உடனான ஒருங்கிணைப்பு உட்பட.
  3. Google Cloud இல் உள்கட்டமைப்பை அமைத்தல் மற்றும் மூலத் தரவை மேம்படுத்துவதற்கான சேவையை உருவாக்குதல்.
  4. விதிகளின் அடுத்தடுத்த வரிசைப்படுத்தலுக்கான சர்வர்லெஸ் கட்டமைப்புடன் நிர்வாகி பயன்பாட்டை ஒருங்கிணைப்பதற்கான ஒரு தொகுதி.
  5. முழு அமைப்பின் செயல்திறனைச் சோதிப்பதற்கான விதிகளின் ஸ்கிரிப்டுகள் மற்றும் உள்வரும் பயன்பாடுகளில் பகுப்பாய்வுகளின் ஒருங்கிணைப்பு (முடிவுகள்) இறுதி விளக்கக்காட்சிக்காக.

வரிசையில் ஆரம்பிக்கலாம்.

வங்கி UI கிட்டைப் பயன்படுத்தி எங்கள் முகப்பு கோணம் 7 இல் எழுதப்பட்டது. நிர்வாக குழுவின் இறுதி பதிப்பு இப்படி இருந்தது:

குபெர்னெட்டஸில் எப்படி கிளவுட் ஃபாஸை உருவாக்கி டின்காஃப் ஹேக்கத்தானை வென்றோம்
சிறிது நேரம் இருந்ததால், முக்கிய செயல்பாட்டை மட்டும் செயல்படுத்த முயற்சித்தோம். குபெர்னெட்டஸ் கிளஸ்டரில் ஒரு செயல்பாட்டை வரிசைப்படுத்த, ஒரு நிகழ்வைத் தேர்ந்தெடுக்க வேண்டியது அவசியம் (கிளவுட்டில் ஒரு விதியைப் பயன்படுத்த வேண்டிய சேவை) மற்றும் முடிவெடுக்கும் தர்க்கத்தை செயல்படுத்தும் செயல்பாட்டின் குறியீடு. தேர்ந்தெடுக்கப்பட்ட சேவைக்கான விதியின் ஒவ்வொரு வரிசைப்படுத்தலுக்கும், இந்த நிகழ்வின் பதிவை நாங்கள் எழுதினோம். நிர்வாக குழுவில் நீங்கள் அனைத்து நிகழ்வுகளின் பதிவுகளையும் பார்க்கலாம்.

அனைத்து செயல்பாட்டுக் குறியீடும் ரிமோட் ஜிட் களஞ்சியத்தில் சேமிக்கப்பட்டது, இது நிர்வாக குழுவிலும் அமைக்கப்பட வேண்டும். குறியீட்டைப் பதிப்பதற்கு, அனைத்து செயல்பாடுகளும் களஞ்சியத்தின் வெவ்வேறு கிளைகளில் சேமிக்கப்பட்டன. நிர்வாகக் குழு எழுதப்பட்ட ஸ்கிரிப்ட்களில் மாற்றங்களைச் செய்யும் திறனையும் வழங்குகிறது, எனவே உற்பத்திக்கு ஒரு செயல்பாட்டைப் பயன்படுத்துவதற்கு முன், நீங்கள் எழுதப்பட்ட குறியீட்டை மட்டும் சரிபார்க்க முடியாது, ஆனால் தேவையான மாற்றங்களையும் செய்யலாம்.

குபெர்னெட்டஸில் எப்படி கிளவுட் ஃபாஸை உருவாக்கி டின்காஃப் ஹேக்கத்தானை வென்றோம்
விதிகளின் செயல்பாடுகளுக்கு மேலதிகமாக, செறிவூட்டல் செயல்பாடுகளைப் பயன்படுத்தி மூலத் தரவை படிப்படியாக வளப்படுத்தும் திறனையும் நாங்கள் செயல்படுத்தினோம், இதன் குறியீடு ஸ்கிரிப்ட்களாகும், இதில் தரவுக் கிடங்கிற்குச் செல்லவும், மூன்றாம் தரப்பு சேவைகளை அழைக்கவும், பூர்வாங்க கணக்கீடுகளைச் செய்யவும் முடியும். . எங்கள் தீர்வை நிரூபிக்க, கோரிக்கையை விட்டு வெளியேறிய வாடிக்கையாளரின் ராசி அடையாளத்தைக் கணக்கிட்டு, மூன்றாம் தரப்பு REST சேவையைப் பயன்படுத்தி அவரது மொபைல் ஆபரேட்டரைத் தீர்மானித்தோம்.

தளத்தின் பின்தளம் ஜாவாவில் எழுதப்பட்டு ஸ்பிரிங் பூட் பயன்பாடாக செயல்படுத்தப்பட்டது. நிர்வாகத் தரவைச் சேமிக்க போஸ்ட்கிரெஸைப் பயன்படுத்த முதலில் நாங்கள் திட்டமிட்டோம், ஆனால், ஹேக்கத்தானின் ஒரு பகுதியாக, நேரத்தைச் சேமிப்பதற்காக எளிய H2 க்கு மட்டுப்படுத்த முடிவு செய்தோம். பின்தளத்தில், வினவல் செறிவூட்டல் செயல்பாடுகள் மற்றும் ரூல் ஸ்கிரிப்ட்களின் பதிப்பிற்கு பிட்பக்கெட் உடனான ஒருங்கிணைப்பு செயல்படுத்தப்பட்டது. தொலைநிலை Git களஞ்சியங்களுடன் ஒருங்கிணைக்க, நாங்கள் பயன்படுத்தினோம் JGit நூலகம், இது CLI கட்டளைகளின் மீது ஒரு வகையான ரேப்பர் ஆகும், இது வசதியான மென்பொருள் இடைமுகத்தைப் பயன்படுத்தி எந்த git வழிமுறைகளையும் இயக்க அனுமதிக்கிறது. எனவே செறிவூட்டல் செயல்பாடுகள் மற்றும் விதிகளுக்கு எங்களிடம் இரண்டு தனித்தனி களஞ்சியங்கள் இருந்தன, மேலும் அனைத்து ஸ்கிரிப்ட்களும் கோப்பகங்களாக பிரிக்கப்பட்டன. UI மூலம் களஞ்சியத்தின் தன்னிச்சையான கிளையின் ஸ்கிரிப்ட்டின் சமீபத்திய உறுதியைத் தேர்ந்தெடுக்க முடிந்தது. நிர்வாகி குழு மூலம் குறியீட்டில் மாற்றங்களைச் செய்யும்போது, ​​மாற்றப்பட்ட குறியீட்டின் கமிட்கள் தொலை களஞ்சியங்களில் உருவாக்கப்பட்டன.

எங்கள் யோசனையை செயல்படுத்த, எங்களுக்கு பொருத்தமான உள்கட்டமைப்பு தேவை. எங்கள் குபெர்னெட்ஸ் கிளஸ்டரை கிளவுட்டில் பயன்படுத்த முடிவு செய்தோம். எங்கள் தேர்வு Google Cloud Platform. ஃபிஷன் சர்வர்லெஸ் ஃப்ரேம்வொர்க் குபெர்னெட்ஸ் கிளஸ்டரில் நிறுவப்பட்டது, அதை நாங்கள் Gcloudல் பயன்படுத்தினோம். ஆரம்பத்தில், மூல தரவு செறிவூட்டல் சேவையானது k8s க்ளஸ்டருக்குள் ஒரு Podல் மூடப்பட்டிருக்கும் ஒரு தனி ஜாவா பயன்பாடாக செயல்படுத்தப்பட்டது. ஆனால் ஹேக்கத்தானின் நடுவில் எங்கள் திட்டப்பணியின் பூர்வாங்க செயல்விளக்கத்திற்குப் பிறகு, உள்வரும் பயன்பாடுகளின் மூலத் தரவை எவ்வாறு வளப்படுத்துவது என்பதைத் தேர்வுசெய்யும் வாய்ப்பை வழங்க, செறிவூட்டல் சேவையை மேலும் நெகிழ்வானதாக மாற்ற பரிந்துரைக்கப்பட்டோம். மேலும் செறிவூட்டல் சேவையையும் சர்வர்லெஸ் ஆக்குவதைத் தவிர வேறு வழியில்லை.

Fission உடன் வேலை செய்ய, நாங்கள் Fission CLI ஐப் பயன்படுத்தினோம், இது Kubernetes CLI இன் மேல் நிறுவப்பட வேண்டும். ஒரு k8s கிளஸ்டரில் செயல்பாடுகளை வரிசைப்படுத்துவது மிகவும் எளிது; கிளஸ்டருக்கு வெளியே அணுகல் தேவைப்பட்டால், உள்வரும் போக்குவரத்தை அனுமதிக்க, நீங்கள் ஒரு உள் வழியை ஒதுக்க வேண்டும் மற்றும் செயல்பாட்டிற்கு நுழைய வேண்டும். ஒரு செயல்பாட்டைப் பயன்படுத்துவதற்கு பொதுவாக 10 வினாடிகளுக்கு மேல் ஆகாது.

திட்டத்தின் இறுதி விளக்கக்காட்சி மற்றும் சுருக்கம்

எங்கள் சிஸ்டம் எவ்வாறு செயல்படுகிறது என்பதை விளக்குவதற்கு, ரிமோட் சர்வரில் ஒரு எளிய படிவத்தை நாங்கள் வைத்துள்ளோம், அங்கு வங்கியின் தயாரிப்புகளில் ஒன்றிற்கான விண்ணப்பத்தை நீங்கள் சமர்ப்பிக்கலாம். கோர, உங்கள் முதலெழுத்துகள், பிறந்த தேதி மற்றும் தொலைபேசி எண்ணை உள்ளிட வேண்டும்.

கிளையன்ட் படிவத்திலிருந்து தரவு கட்டுப்படுத்திக்குச் சென்றது, இது ஒரே நேரத்தில் கிடைக்கக்கூடிய அனைத்து விதிகளுக்கும் கோரிக்கைகளை அனுப்பியது, குறிப்பிட்ட நிபந்தனைகளின்படி தரவைச் செறிவூட்டி, பொதுவான சேமிப்பகத்தில் சேமித்தது. மொத்தத்தில், உள்வரும் பயன்பாடுகள் மற்றும் 4 தரவு செறிவூட்டல் சேவைகளில் முடிவெடுக்கும் மூன்று செயல்பாடுகளை நாங்கள் பயன்படுத்தியுள்ளோம். விண்ணப்பத்தை சமர்ப்பித்த பிறகு, வாடிக்கையாளர் எங்கள் முடிவைப் பெற்றார்:

குபெர்னெட்டஸில் எப்படி கிளவுட் ஃபாஸை உருவாக்கி டின்காஃப் ஹேக்கத்தானை வென்றோம்
மறுப்பு அல்லது ஒப்புதலுடன் கூடுதலாக, வாடிக்கையாளர் பிற தயாரிப்புகளின் பட்டியலையும் பெற்றார், நாங்கள் இணையாக அனுப்பிய கோரிக்கைகள். எங்கள் தளத்தில் குறுக்கு விற்பனைக்கான சாத்தியத்தை நாங்கள் இப்படித்தான் நிரூபித்தோம்.

மொத்தம் 3 கற்பனையான வங்கி தயாரிப்புகள் உள்ளன:

  • கடன்.
  • பொம்மை
  • அடமானம்.

ஆர்ப்பாட்டத்தின் போது, ​​ஒவ்வொரு சேவைக்கும் தயார்படுத்தப்பட்ட செயல்பாடுகள் மற்றும் செறிவூட்டல் ஸ்கிரிப்ட்களை நாங்கள் பயன்படுத்தினோம்.

ஒவ்வொரு விதிக்கும் அதன் சொந்த உள்ளீட்டு தரவு தேவை. எனவே, ஒரு அடமானத்தை அங்கீகரிக்க, வாடிக்கையாளரின் ராசி அடையாளத்தை கணக்கிட்டு, சந்திர நாட்காட்டியின் தர்க்கத்துடன் இதை இணைத்தோம். ஒரு பொம்மையை அங்கீகரிக்க, கிளையன்ட் வயது முதிர்ச்சியடைந்துவிட்டதா என்பதை நாங்கள் சரிபார்த்தோம், மேலும் கடனை வழங்க, செல்லுலார் ஆபரேட்டரை தீர்மானிக்க வெளிப்புற திறந்த சேவைக்கு கோரிக்கையை அனுப்பினோம், அதில் ஒரு முடிவு எடுக்கப்பட்டது.

நாங்கள் எங்கள் ஆர்ப்பாட்டத்தை சுவாரஸ்யமாகவும் ஊடாடத்தக்கதாகவும் மாற்ற முயற்சித்தோம், தற்போதுள்ள அனைவரும் எங்கள் படிவத்திற்குச் சென்று அவர்களுக்கு எங்கள் கற்பனையான சேவைகள் கிடைக்கிறதா என்பதைச் சரிபார்க்கலாம். விளக்கக்காட்சியின் முடிவில், பெறப்பட்ட விண்ணப்பங்களின் பகுப்பாய்வுகளை நாங்கள் நிரூபித்தோம், இது எங்கள் சேவையை எத்தனை பேர் பயன்படுத்தியது, ஒப்புதல்களின் எண்ணிக்கை மற்றும் மறுப்புகளைக் காட்டுகிறது.

ஆன்லைனில் பகுப்பாய்வுகளைச் சேகரிக்க, திறந்த மூல BI கருவியையும் பயன்படுத்தியுள்ளோம் மெட்டாபேஸ் மற்றும் அதை எங்கள் சேமிப்பு அலகுக்கு திருகினார். எங்களுக்கு விருப்பமான தரவில் பகுப்பாய்வுகளுடன் திரைகளை உருவாக்க மெட்டாபேஸ் உங்களை அனுமதிக்கிறது; நீங்கள் தரவுத்தளத்துடன் இணைப்பைப் பதிவுசெய்து, அட்டவணைகளைத் தேர்ந்தெடுக்க வேண்டும் (எங்கள் விஷயத்தில், தரவு சேகரிப்புகள், நாங்கள் மோங்கோடிபியைப் பயன்படுத்தியதால்), மேலும் எங்களுக்கு விருப்பமான துறைகளைக் குறிப்பிடவும். .

இதன் விளைவாக, முடிவெடுக்கும் தளத்தின் ஒரு நல்ல முன்மாதிரி எங்களுக்கு கிடைத்தது, மேலும் ஆர்ப்பாட்டத்தின் போது, ​​ஒவ்வொரு கேட்பவரும் அதன் செயல்திறனை தனிப்பட்ட முறையில் சரிபார்க்க முடியும். ஒரு சுவாரஸ்யமான தீர்வு, ஒரு முடிக்கப்பட்ட முன்மாதிரி மற்றும் ஒரு வெற்றிகரமான ஆர்ப்பாட்டம் மற்ற அணிகளிடமிருந்து வலுவான போட்டி இருந்தபோதிலும், எங்களை வெற்றி பெற அனுமதித்தது. ஒவ்வொரு குழுவின் திட்டத்திலும் ஒரு சுவாரஸ்யமான கட்டுரை எழுதப்படலாம் என்று நான் நம்புகிறேன்.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்