எல்லாவற்றையும் பாதித்த ஒரு உருட்டல் கதை

எல்லாவற்றையும் பாதித்த ஒரு உருட்டல் கதை
யதார்த்தத்தின் எதிரிகள் 12f-2 மூலம்

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

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

பின்னணி + இது என்ன வகையான செயல்பாடு?

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

பொதுவாக இதுபோன்ற விஷயங்கள் எந்தவொரு திட்டங்களின் தொடக்கத்திலும் கட்டத் தொடங்குகின்றன. ஆனால் MCS இல் வரலாற்று ரீதியாக விஷயங்கள் கொஞ்சம் வித்தியாசமாக இருந்தன. MCS இரண்டு பகுதிகளாக கட்டப்பட்டது:

  • ஓபன்ஸ்டாக் அதன் சொந்த கீஸ்டோன் அங்கீகார தொகுதியுடன்,
  • Mail.ru கிளவுட் திட்டத்தின் அடிப்படையில் ஹாட்பாக்ஸ் (S3 சேமிப்பு),

அதைச் சுற்றி புதிய சேவைகள் தோன்றின.

அடிப்படையில், இவை இரண்டு வெவ்வேறு வகையான அங்கீகாரம். கூடுதலாக, நாங்கள் சில தனித்தனி Mail.ru மேம்பாடுகளைப் பயன்படுத்தினோம், எடுத்துக்காட்டாக, பொதுவான Mail.ru கடவுச்சொல் சேமிப்பகம் மற்றும் சுயமாக எழுதப்பட்ட openid இணைப்பான், இதற்கு நன்றி Horizon பேனலில் SSO (எண்ட்-டு-எண்ட் அங்கீகாரம்) வழங்கப்பட்டது. மெய்நிகர் இயந்திரங்களின் (சொந்த OpenStack UI).

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

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

நாம் என்ன வெளியிடப் போகிறோம்?

இதை மிகவும் தோராயமாகச் சொல்வதானால், சுமார் 4 மாதங்களில் நாங்கள் பின்வருவனவற்றைத் தயாரித்தோம்:

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

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

அத்தகைய மாற்றங்களை எவ்வாறு உருட்டுவது மற்றும் அதை திருகாமல் இருப்பது எப்படி? முதலில் எதிர்காலத்தை கொஞ்சம் பார்க்க முடிவு செய்தோம்.

ரோல்அவுட் உத்தி

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

திசைதிருப்பல்: வெளியீடு என்றால் என்ன?

<எச்சரிக்கை, தத்துவம்>

ஒவ்வொரு தகவல் தொழில்நுட்ப நிபுணரும் ஒரு ரோல்அவுட் என்றால் என்ன என்று எளிதாக பதிலளிக்க முடியும். நீங்கள் CI/CD ஐ நிறுவினால், அனைத்தும் தானாகவே கடைக்கு வழங்கப்படும். 🙂

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

மேலும் முழுப் படமும் இப்படித்தான். வெளியீடு நான்கு முக்கிய அம்சங்களைக் கொண்டுள்ளது:

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

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

ஆக்ட் 1..என், ரிலீசுக்கான தயாரிப்பு

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

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

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

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

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

அதனால்…

இறுதிச் செயல், வெளிவருவதற்கு முன்

...வெளியேற வேண்டிய நேரம் இது.

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

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

  1. (எங்களுக்கு புனிதமானது, மிகவும் விலையுயர்ந்த) பயனர் உள்கட்டமைப்பை பாதிக்கிறது,
  2. செயல்பாடு: வெளியீட்டிற்குப் பிறகு எங்கள் சேவையின் பயன்பாடு முன்பு இருந்ததைப் போலவே இருக்க வேண்டும்.

வெளிவருகிறது

எல்லாவற்றையும் பாதித்த ஒரு உருட்டல் கதை
இரண்டு ரோல், 8 தலையிட வேண்டாம்

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

  • வெளியீடு சுமார் 3 மணிநேரம் ஆகும்.
  • சோதனைக்கு 2 மணி நேரம்.
  • 2 மணிநேரம் - சாத்தியமான மாற்றங்களுக்கு முன்பதிவு செய்யுங்கள்.

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

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

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

நிகழ்வுகளின் நாளாகமம்

எனவே, ஏப்ரல் 15ஆம் தேதி ஞாயிற்றுக்கிழமை இரவு 29 மணியளவில் 10 பேர் பணிக்கு வந்தனர். முக்கிய பங்கேற்பாளர்களுக்கு மேலதிகமாக, சிலர் அணியை ஆதரிப்பதற்காக வந்தனர், அதற்காக அவர்களுக்கு சிறப்பு நன்றி.

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

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

ஒவ்வொருவருக்கும் ஒரு அச்சிடப்பட்ட வெளியீடு திட்டம் உள்ளது, யார் என்ன செய்கிறார்கள், எந்த நேரத்தில் செய்கிறார்கள் என்பது அனைவருக்கும் தெரியும். ஒவ்வொரு செயலுக்கும் பிறகு, நாங்கள் நேரத்தைச் சரிபார்த்து, அவற்றை மீறாமல் இருப்பதை உறுதிசெய்கிறோம், மேலும் அனைத்தும் திட்டத்தின் படி நடக்கும். தற்போதைய நிலையில் நேரடியாக வெளியீட்டில் பங்கேற்காதவர்கள், தங்கள் சக ஊழியர்களுக்கு இடையூறு ஏற்படாத வகையில் ஆன்லைன் பொம்மையை (Xonotic, type 3 quacks) அறிமுகப்படுத்தி தயாராகி வருகின்றனர். 🙂

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

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

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

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

03:00. -2 சிக்கல்கள் +2 சிக்கல்கள்
முந்தைய இரண்டு பெரிய பிரச்சனைகளும் சரி செய்யப்பட்டுவிட்டன, கிட்டத்தட்ட எல்லா சிறிய பிரச்சனைகளும் சரி. பிழைத்திருத்தங்களில் ஈடுபடாத அனைவரும் தங்கள் கணக்குகளில் சுறுசுறுப்பாக வேலை செய்கிறார்கள் மற்றும் அவர்கள் கண்டறிந்ததை புகாரளிக்கின்றனர். நாங்கள் முன்னுரிமை அளிக்கிறோம், குழுக்களிடையே விநியோகிக்கிறோம், மேலும் முக்கியமானவை அல்லாத பொருட்களை காலையில் விட்டுவிடுகிறோம்.

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

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

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

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

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

06:00. UI இல் உள்ள அனைவருக்கும் திறந்திருக்கும்
பிழைகள் சரி செய்யப்பட்டன. பயனர்களைக் கவராத சில பின்னர் விடப்படும். நாங்கள் அனைவருக்கும் இடைமுகத்தைத் திறக்கிறோம். நாங்கள் பில்லிங் செய்வதில் தொடர்ந்து பணியாற்றி வருகிறோம், பயனர் கருத்துக்காகக் காத்திருக்கிறோம் மற்றும் முடிவுகளைக் கண்காணிக்கிறோம்.

07:00. ஏபிஐ ஏற்றுவதில் சிக்கல்கள்
எங்கள் API இல் உள்ள சுமையை நாங்கள் சிறிது தவறாகத் திட்டமிட்டு, இந்த சுமையைச் சோதித்தோம், இது சிக்கலைக் கண்டறிய முடியவில்லை என்பது தெளிவாகிறது. இதன் விளைவாக, ≈5% கோரிக்கைகள் தோல்வியடைந்தன. அணிதிரட்டி அதற்கான காரணத்தைத் தேடுவோம்.

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

08:00. API ஐ சரிசெய்யவும்
சுமைக்கான தீர்வை நாங்கள் உருட்டினோம், தோல்விகள் போய்விட்டன. நாங்கள் வீட்டிற்கு செல்ல ஆரம்பிக்கிறோம்.

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

பின்னர் பகலில் எங்கள் வாடிக்கையாளர்களில் சிலருக்கு பதிவுகள், அறிவிப்புகள், ரிட்டர்ன் குறியீடுகள் மற்றும் தனிப்பயனாக்கங்கள் ஆகியவற்றை சரிசெய்து வெளியிடப்பட்டது.

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

மொத்தம்

ரோல்அவுட்டுக்கான 2 மாத சுறுசுறுப்பான தயாரிப்பில், 43 பணிகள் முடிக்கப்பட்டன, இது இரண்டு மணி நேரம் முதல் பல நாட்கள் வரை நீடித்தது.

வெளியீட்டின் போது:

  • புதிய மற்றும் மாற்றப்பட்ட பேய்கள் - 5 துண்டுகள், 2 மோனோலித்களுக்கு பதிலாக;
  • தரவுத்தளங்களில் மாற்றங்கள் - பயனர் தரவுகளுடன் எங்கள் 6 தரவுத்தளங்களும் பாதிக்கப்பட்டுள்ளன, மூன்று பழைய தரவுத்தளங்களிலிருந்து ஒரு புதிய தரவுத்தளத்திற்கு பதிவிறக்கங்கள் செய்யப்பட்டுள்ளன;
  • முற்றிலும் மறுவடிவமைப்பு செய்யப்பட்ட முன்பக்கம்;
  • பதிவிறக்கம் செய்யப்பட்ட குறியீட்டின் அளவு - புதிய குறியீட்டின் 33 ஆயிரம் வரிகள், சோதனைகளில் ≈ 3 ஆயிரம் கோடுகள், இடம்பெயர்வு குறியீடு ≈ 5 ஆயிரம் வரிகள்;
  • எல்லா தரவும் அப்படியே உள்ளது, ஒரு வாடிக்கையாளரின் மெய்நிகர் இயந்திரம் கூட சேதமடையவில்லை. 🙂

நல்ல வெளிப்பாட்டிற்கு நல்ல நடைமுறைகள்

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

  1. நீங்கள் செய்ய வேண்டிய முதல் விஷயம், வெளியீடு எவ்வாறு பயனர்களை பாதிக்கும் அல்லது பாதிக்கும் என்பதைப் புரிந்துகொள்வது. வேலையில்லா நேரம் இருக்குமா? அப்படியானால், வேலையில்லா நேரம் என்ன? இது பயனர்களை எவ்வாறு பாதிக்கும்? சாத்தியமான சிறந்த மற்றும் மோசமான சூழ்நிலைகள் என்ன? மற்றும் அபாயங்களை மறைக்கவும்.
  2. எல்லாவற்றையும் திட்டமிடுங்கள். ஒவ்வொரு கட்டத்திலும், வெளியீட்டின் அனைத்து அம்சங்களையும் நீங்கள் புரிந்து கொள்ள வேண்டும்:
    • குறியீடு விநியோகம்;
    • குறியீடு திரும்பப்பெறுதல்;
    • ஒவ்வொரு செயல்பாட்டின் நேரம்;
    • பாதிக்கப்பட்ட செயல்பாடு.
  3. ரோல் அவுட்டின் அனைத்து நிலைகளும், அவை ஒவ்வொன்றின் அபாயங்களும் தெளிவாகத் தெரியும் வரை காட்சிகளை விளையாடுங்கள். உங்களுக்கு ஏதேனும் சந்தேகம் இருந்தால், நீங்கள் ஓய்வு எடுத்து, கேள்விக்குரிய கட்டத்தை தனித்தனியாக ஆராயலாம்.
  4. ஒவ்வொரு நிலையும் எங்கள் பயனர்களுக்கு உதவினால் மேம்படுத்தலாம் மற்றும் மேம்படுத்தப்பட வேண்டும். எடுத்துக்காட்டாக, இது வேலையில்லா நேரத்தை குறைக்கும் அல்லது சில அபாயங்களை நீக்கும்.
  5. குறியீடு டெலிவரி சோதனையை விட ரோல்பேக் சோதனை மிகவும் முக்கியமானது. ரோல்பேக்கின் விளைவாக கணினி அதன் அசல் நிலைக்குத் திரும்பும் என்பதைச் சரிபார்க்க வேண்டியது அவசியம், மேலும் சோதனைகள் மூலம் இதை உறுதிப்படுத்தவும்.
  6. தன்னியக்கமாகச் செய்யக்கூடிய அனைத்தும் தானியங்கியாக இருக்க வேண்டும். தானியங்கு செய்ய முடியாத அனைத்தும் ஒரு ஏமாற்று தாளில் முன்கூட்டியே எழுதப்பட வேண்டும்.
  7. வெற்றிக்கான அளவுகோலை பதிவு செய்யவும். என்ன செயல்பாடுகள் மற்றும் எந்த நேரத்தில் இருக்க வேண்டும்? இது நடக்கவில்லை என்றால், திரும்பப்பெறும் திட்டத்தை இயக்கவும்.
  8. மற்றும் மிக முக்கியமாக - மக்கள். ஒவ்வொருவரும் தாங்கள் என்ன செய்கிறார்கள், ஏன் மற்றும் என்ன நடவடிக்கைகளில் தங்கள் செயல்களைச் சார்ந்தது என்பதை அறிந்திருக்க வேண்டும்.

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

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

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