ISP அமைப்பு, மன்னித்து விடைபெறுங்கள்! எங்கள் சர்வர் கண்ட்ரோல் பேனலை ஏன், எப்படி எழுதினோம்

ISP அமைப்பு, மன்னித்து விடைபெறுங்கள்! எங்கள் சர்வர் கண்ட்ரோல் பேனலை ஏன், எப்படி எழுதினோம்

வணக்கம்! நாங்கள் "ஹோஸ்டிங் டெக்னாலஜிஸ்" மற்றும் 5 ஆண்டுகளுக்கு முன்பு தொடங்கப்பட்டது VDSina - டெவலப்பர்களுக்காகவே உருவாக்கப்பட்ட முதல் vds ஹோஸ்டிங். DigitalOcean போன்ற வசதியாக, ஆனால் ரஷ்ய ஆதரவுடன், பணம் செலுத்தும் முறைகள் மற்றும் ரஷ்யாவில் உள்ள சர்வர்கள் போன்றவற்றைச் செய்ய நாங்கள் முயற்சி செய்கிறோம். ஆனால் DigitalOcean என்பது நம்பகத்தன்மை மற்றும் விலை மட்டுமல்ல, இது ஒரு சேவையும் கூட.

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

ஐஎஸ்பி சிஸ்டம் எப்படி வசதியைக் கொன்றது

பிழைகள்

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

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

வேலையில்லா நேர அச்சுறுத்தல்

புதுப்பிப்புகள் புதிய பிழைகளைத் தூண்டும் கணிக்க முடியாத வேலையில்லா நேரங்களை உருவாக்கலாம்.

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

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

வசதியற்ற பேனல் இடைமுகம்

அனைத்தும் வெவ்வேறு பேனல்களாகப் பிரிக்கப்பட்டு வெவ்வேறு இடங்களில் இருந்து கட்டுப்படுத்தப்பட்டன. எடுத்துக்காட்டாக, வாடிக்கையாளர்கள் பில்மேனேஜர் மூலம் பணம் செலுத்தினர், மேலும் அவர்கள் VMManager இல் VDS ஐ மீண்டும் துவக்க வேண்டும் அல்லது மீண்டும் நிறுவ வேண்டும். வாடிக்கையாளர்களுக்கு உதவ, அவரது சர்வரில் உள்ள சுமையைச் சரிபார்க்க அல்லது அவர் எந்த OS ஐப் பயன்படுத்துகிறார் என்பதைப் பார்க்க, எங்கள் பணியாளர்கள் சாளரங்களுக்கு இடையில் மாற வேண்டும்.

அத்தகைய இடைமுகம் நேரம் எடுக்கும் - எங்கள் மற்றும் எங்கள் வாடிக்கையாளர்களுக்கு'. அத்தகைய சூழ்நிலையில் டிஜிட்டல் ஓசியன் போன்ற எந்த வசதியும் இல்லை.

அடிக்கடி API புதுப்பிப்புகளுடன் குறுகிய வாழ்க்கை சுழற்சிகள்

எங்கள் சொந்த செருகுநிரல்களை நாங்கள் எழுதியுள்ளோம் - எடுத்துக்காட்டாக, VMManager இல் இல்லாத கூடுதல் கட்டண முறைகளைக் கொண்ட செருகுநிரல்.

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

மாற்ற முடியாது

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

எனவே எனது சொந்த குழுவை எழுத முடிவு கனிந்துவிட்டது. நாங்கள் இலக்குகளை அமைத்துள்ளோம்:

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

நாங்கள் வளர்ச்சியைத் தொடங்கினோம்.

புதிய பேனல் கட்டிடக்கலை

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

படி 1: சர்வர் ஏஜென்ட்

சர்வர் ஏஜென்ட் என்பது நூலகத்தை நிர்வகிக்கும் பைதான் வலை சேவையகம் இந்த libvirt, இதையொட்டி ஆட்சி செய்கிறது Qemu-kvm ஹைப்பர்வைசர்.

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

கோட்பாட்டளவில், libvirt ஐ நேரடியாக பில்லிங்கில் இருந்து கட்டுப்படுத்தலாம், ஆனால் இதற்கு அதிகக் கூடுதல் குறியீடு தேவைப்படுகிறது, மேலும் இந்த செயல்பாடுகளை முகவர் மற்றும் பில்லிங் இடையே பிரிக்க முடிவு செய்தோம் - பில்லிங் JSON API வழியாக ஏஜெண்டிடம் கோரிக்கைகளை வைக்கிறது.

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

சர்வர் ஏஜென்ட் எங்களுக்கு வழங்கியது: அனைவருக்கும் வாழ்க்கையை எளிதாக்கும் ஒரு அடுக்கு தோன்றியது - பில்லிங் முழு கட்டளைகளையும் அனுப்ப தேவையில்லை, ஆனால் ஒரு கோரிக்கையை மட்டும் செய்யுங்கள். மற்றும் முகவர் தேவையான அனைத்தையும் செய்வார்: எடுத்துக்காட்டாக, இது வட்டு இடத்தையும் ரேமையும் ஒதுக்கும்.

படி 2. பில்லிங்

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

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

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

புதிய பில்லிங் இரண்டு அடுக்குகளைப் பயன்படுத்தியது: கிளாசிக் PHP, MySQL (மற்றும் எதிர்காலத்தில் இது PostgreSQL க்கு மாறத் திட்டமிடப்பட்டுள்ளது), Yii2 பின்தளத்தில் ஒரு கட்டமைப்பாக மற்றும் முன்பக்கத்தில் VueJS. அடுக்குகள் ஒருவருக்கொருவர் சுயாதீனமாக வேலை செய்கின்றன, வெவ்வேறு நபர்களால் உருவாக்கப்படுகின்றன, மேலும் JSON API ஐப் பயன்படுத்தி தொடர்பு கொள்கின்றன. வளர்ச்சிக்காக அன்றும் இன்றும் பயன்படுத்துகிறோம் PHPS புயல் и வெப்ஸ்டோர்ம் JetBrains இலிருந்து அவர்களை அன்புடன் நேசிக்கவும் (ஏய் தோழர்களே!)

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

படி 3 இடைமுகம்

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

முதலில், இடைமுகத்தில் அடிப்படையில் எதையும் மாற்றாமல் ISPsystem API மூலம் ஒரு add-on செய்தால் என்ன நடக்கும் என்று பார்த்தோம். அது அப்படியே மாறியது, புதிதாக எல்லாவற்றையும் செய்ய முடிவு செய்தோம்.

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

பில்லிங் பக்கத்தின் வடிவமைப்பு முதலில் தோன்றியது, ஏனெனில் நாங்கள் ஏற்கனவே ISPsystemக்கான கட்டணச் செருகுநிரல்களைச் செய்துள்ளோம்.

முன்பக்கம்

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

முன்பகுதியை பின்தளத்துடன் இணைக்கிறது

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

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

படி 4. சோதனை மற்றும் இடம்பெயர்வு திட்டம்

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

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

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

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

பின்னர் புதிய பேனல் மற்றும் பில்லிங் முகவரியுடன் வாடிக்கையாளர்களுக்கு கடிதங்களை அனுப்பி வழிமாற்று செய்தோம்.

சுருக்கமாக: அது உயிருடன் உள்ளது!

மகிழ்ச்சிகரமான முடிவு

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

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

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

அடுத்து என்ன?

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

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

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

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

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