castomFLOW
castomFLOW-ஐத் திறக்க

நம்பக்கூடிய இயக்கங்கள்

ஒரு தானியங்கி எதையாவது இருமுறை அனுப்பும் வரை யாரும் கவனிப்பதில்லை

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

வெளியிடுவதற்கு முன் உருவகப்படுத்திப் பாருங்கள்

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

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

ஒரு தானியங்கியை இயக்குவதில் மக்களை நிறுத்தும் கேள்விக்கு உங்களை பதிலளிக்க வைப்பது சோதனை இயக்கங்கள்தான்: இது உண்மையில் என்ன செய்யும்?

சோதனை · ஆர்டர் 88 214எதுவும் அனுப்பப்படவில்லை
  • 1முகவரியைச் சரிபார்பொருந்தியது. 6 புலங்களை எழுதியிருக்கும்.
  • ?நிபந்தனை1 000 zł-க்கு மேல் ஆணையா? இல்லை — 289,00 zł. சுருக்கிய பாதை பின்பற்றப்பட்டது.
  • 3பட்டியல்விலைப்பட்டியல் அமைப்புக்கு POST செய்யப்படும். Payload முழுமையாகக் காட்டப்படுகிறது.
  • !இங்கே பிடிக்கப்பட்டதுVAT விகிதம் தவறான புலத்திலிருந்து வரையப்பட்டது. கணக்காளரின் இன்பாக்ஸில் அல்ல, ஒரு உருவகப்படுத்தலில் கண்டறியப்பட்டது.

அனுப்பப்பட்டது: எதுவுமில்லைவசூலிக்கப்பட்டது: எதுவுமில்லை

ஒரு இயக்கம் நுழைந்த பதிப்பிலேயே நகர்கிறது

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

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

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

நேரடியாக இருக்கும்போது திருத்துதல்v4 → v5
  • 1முன்பு2 918 இயக்கங்கள் நடையில் உள்ளன, அனைத்தும் v4-ல். சில இரண்டு நாள் காத்திருப்பில்.
  • 2v5-ஐ வெளியிடுஇரண்டு படிகள் மறுவரிசைப்படுத்தப்பட்டன, ஒரு செய்தி மறுஎழுதப்பட்டது.
  • 3பின்புஅந்த 2 918 v4-ஐ முடிக்கும். 11:40-லிருந்து தொடங்கும் அனைத்தும் v5-ஐ இயங்கும்.
  • §யாரும் இல்லைஒரு workflow-ன் பாதியும் இன்னொரு workflow-ன் பாதியும் பெறவில்லை.

ஒவ்வொரு இயக்கத்திலும் பதிப்பு பதிவு செய்யப்படுகிறதுபழைய பதிப்புகள் வைக்கப்படுகின்றன

இரட்டை அனுப்பம் செய்ய முடியாத மறுமுயற்சிகள்

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

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

Idempotency keys-ஐ ஆதரிக்கும் அமைப்புகளுக்கான வெளிச்செல்லும் அழைப்புகள் ஒன்றை சுமக்கின்றன, இயக்கம் மற்றும் படியிலிருந்து பெறப்பட்டது, எனவே மறுபக்கமும் மறுபடியை அறிய முடியும்.

அனுப்பும் நடுவில் worker கொல்லப்பட்டதுமீட்கப்பட்டது
  • 1படி 5 தொடங்குகிறதுசரக்கு அறிவிப்பை அனுப்பு.
  • ✕Worker இறக்கிறதுDeploy. எதுவும் commit ஆகவில்லை.
  • 2எடுத்துக்கொள்ளப்பட்டதுஇன்னொரு worker இயக்கம் இன்னும் படி 5-ல் இருப்பதைக் கண்டறிகிறது.
  • ✓ஒருமுறை அனுப்பப்பட்டதுவாடிக்கையாளர் ஒரு மின்னஞ்சலைப் பெற்றார், இரண்டை அல்ல.

விளைவுகள் முன்னேற்றத்தோடு commit ஆகும்ஒவ்வொரு இயக்கம் மற்றும் படிக்கும் idempotency key

ஒரு மனிதர் படிக்கும்படி எழுதப்பட்ட பதிவு

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

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

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

இரவில், குழுவாக்கப்பட்டது41 தோல்விகள்
  • 1ஒரே காரணம்சப்ளையர் API 02:41 முதல் 02:50 வரை 503 திரும்பியது.
  • 2என்ன நடந்ததுஅனைத்து 41 மீண்டும் முயற்சிக்கப்பட்டன; 39 இரண்டாவது முயற்சியில் வெற்றியடைந்தன.
  • 3மீதமுள்ளவைஇரண்டு நிறுத்தப்பட்டு ஒரு நபரின் கவனத்திற்காக காத்திருக்கின்றன. இரண்டும் தோல்வியுற்ற வரிசையுடன் பட்டியலிடப்பட்டுள்ளன.
  • §நாற்பத்தொன்று அல்லவிசாரணைகள். ஒன்று, மற்றும் இரண்டு பதிவுகள் பற்றிய ஒரு முடிவு.

அறிவிப்புகள் மறைக்கப்பட்டனபதிப்பு பதிவு செய்யப்பட்டது

நாங்கள் உறுதியளிக்காதவை

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

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

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

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