castomFLOW
castomFLOW'ni ochish

Ishonchli ishlar

Avtomatlashtirish biror narsani ikki marta yubormaguncha hech kim unga e'tibor bermaydi

Keyin hammaga ko'rinadi. Bu sahifadagi to'rt mexanizm shu yerda, chunki bunday dasturlarning xatolari doim o'sha to'rtta xato bo'ladi va ularning barchasi ehtiyotkorlik bilan emas, dizayn bilan oldini olish mumkin.

Nashrdan oldin simulyatsiya qiling

O'chirilgan ish oqim orqali haqiqiy yozuvni yuboring va aynan nima bo'lishini o'qib oling: tanlangan yo'l, har bir qadamda har bir qiymat, har bir xabarning matni va har bir tashqi tizimga yuboriladigan so'rov.

Hech narsa tashqariga chiqmaydi. E-pochta yuborilmaydi, hisob-faktura rasmiylashtirilmaydi, to'lov urinilmaydi, qator yozilmaydi. Tashqi chaqiruvlar niyatlar sifatida, yuboriladigan tana bilan qayd etiladi, shuning uchun xaritalashni kimningdir muammosiga aylanishidan oldin tekshirishingiz mumkin.

Simulyatsiyalar odamlarni avtomatlashtirishni yoqishdan to'xtatuvchi savolga javob berish usulidir: bu aslida nima qiladi?

Simulyatsiya · 88 214-raqamli buyurtmaHech narsa yuborilmagan
  • 1Manzilni tasdiqlashMos keldi. 6 ta maydon yozilgan bo‘lardi.
  • ?ShartBuyurtma 1 000 zlotydan oshadimi? Yo‘q — 289,00 zloty. Qisqa yo‘l tanlandi.
  • 3Hisob-fakturaHisob-faktura tizimiga POST so‘rovi yuborilgan bo‘lardi. Yuboriladigan ma’lumot to‘liq ko‘rsatilgan.
  • !Aynan shu yerda ushlandiQo‘shilgan qiymat (VAT) stavkasi noto‘g‘ri maydondan olindi. Buxgalter pochtasiga tushishidan oldin, simulyatsiyada aniqlandi.

Yuborilgan: hech narsaUndirilgan: hech narsa

Har bir ish o‘z kirdagi versiyani bosib o‘tadi

Ish oqimiga o‘zgartirish chop etish uning ichida bo‘lgan ishlarga tegmaydi. Har bir ish boshlangan versiyaga bog‘lanadi va qancha vaqt olishidan, siz shu vaqt ichida qancha qayta yozganingizdan qat’i nazar, o‘sha versiyani tugatadi.

Shu tufayli o‘n ming kishi ish oqimining yarmida turgan paytda ham uni qayta tuzishingiz mumkin va ularning har biri o‘ziga va’dalangan oqimni to‘liq yakunlaydi. Muqobil yechim — kirishda butun keyingi yo‘l qat’iylashtiriladigan dizayn — aynan shuning uchun jonli avtomatlashtirishni tahrirlash boshqa vositalarda xavfli tuyiladi. Bu yerda esa bu oddiy holat.

Yangi ishlar chop etish paytidan boshlab yangi versiyani oladi. Ish qaysi versiyada ekanligi o‘sha ishga yozib qo‘yiladi, shuning uchun martdagi xatti-harakatlar haqidagi savolga sentyabrda ham javob topiladi.

Jonli paytda tahrirlashv4 → v5
  • 1Oldin2 918 ta ish jarayonda, barchasi v4 versiyasida. Ba’zilari ikki kunlik kutishda.
  • 2v5 versiyasini chop etishIkki qadam o‘rin almashtirildi, bitta xabar qayta yozildi.
  • 3KeyinO‘sha 2 918 ta ish v4 versiyasini tugatadi. 11:40 dan boshlab boshlangan hamma ish v5 versiyasida ishlaydi.
  • §Hech kimbitta ish oqimining yarmi va boshqasining yarmini olmadi.

Versiya har bir ishga yozib qo‘yiladiEski versiyalar saqlanadi

Ikkala marta yuborishga yo‘l qo‘ymaydigan qayta urinishlar

Qadam o‘z kirish ma’lumotlarining sof funksiyasidir va uning oqibatlari ishning keyingi qadamga o‘tishi bilan birga qat’iylashtiriladi. Xabar yuborilgan, lekin ish bundan xabardor emas — bunday payt mavjud emas.

Butun sir shu va bu kafolat emas, balki tuzilmaviy xususiyat. Qadam o‘rtasida o‘lgan ishchi — deploy, xato yoki yo‘qolgan mashinar — ishni aynan qayerda bo‘lsa, o‘sha joyda qoldiradi. Boshqa ishchi uni olib, qadamni qayta bajaradi. Oqibat va o‘tish birga qat’iylashgani uchun, ikkalasi ham sodir bo‘lgan yoki hech biri sodir bo‘lmagan bo‘ladi.

Idempotentlik kalitlarini qo‘llab-quvvatlaydigan tizimlarga chiquvchi so‘rovlar bunday kalitni olib yuradi; u ish va qadamdan hosil qilinadi, shuning uchun qarshi tomon ham takroriylikni tanib oladi.

Ishchi yuborish paytida o‘chirildiTiklandi
  • 15-qadam boshlanadiYuk xabarnomasini yuboring.
  • ✕Ishchi o‘ladiDeploy. Hech narsa qat’iylashmagan edi.
  • 2Olib ketildiBoshqa ishchi ish hali 5-qadamda ekanligini aniqlaydi.
  • ✓Bir marta yuborildiMijoz bitta elektron xat oldi, ikkita emas.

Oqibatlar o‘tish bilan birga qat’iylashadiHar bir ish va qadam uchun idempotentlik kaliti

Odam o‘qishi uchun yozilgan jurnal

Har bir ishga tushirish, har bir qadam, shoxobbaning qaysi tomonga burilgani va bunga qaror qilgan qiymat. Har qadam uchun vaqt ko'rsatkichlari. Har bir tashqi so'rovning so'rovi va javobi, kirish ma'lumotlari yashirilgan holda. Ishga tushirish qilingan versiya. Ishga tushirish qayerda kutayotgani va qachongacha.

Biror kishi o'n to'rtinchi kunda berilgan buyurtmaga nima bo'lganini so'raganda, javob mavjud bo'ladi va uni topish uchun bir daqiqa ketadi, uch tizimning jurnallarini solishtirish bilan butun kundalik emas.

Muvaffaqiyatsiz tugagan ishga tushirishlar bitta joyda to'planadi va sababi guruhlangan holda, shuning uchun «bir kechada qirq bir muvaffaqiyatsizlik» «bir yetkazib beruvchi to'qqiz daqiqa davomida 503 qaytargan» degan xulosaga o'tadi, qirq bir alohida tekshiruv o'rniga.

Bir kechada, guruhlangan41 muvaffaqiyatsizlik
  • 1Bitta sababYetkazib beruvchi API 02:41 dan 02:50 gacha 503 qaytardi.
  • 2Nima bo'ldiBarcha 41 tasi qayta urinildi; 39 tasi ikkinchi urinishda muvaffaqiyatli bo'ldi.
  • 3QoldiqIkitasi to'xtadi va odam kutmoqda. Ikkalasi ham muvaffaqiyatsiz bo'lgan qator bilan birga ko'rsatilgan.
  • §Qirq bir emastekshiruv. Bittasi va ikki yozuv bo'yicha qaror.

Kirish ma'lumotlari yashirilganVersiya qayd etilgan

Nimani da'vo qilmaymiz

Biz marketing sahifasida ishlash vaqti (uptime) raqamini e'lon qilmaymiz, chunki o'lchov davri va «ishlayapti» ta'rifi yo'q raqam — bu bezak. Agar sizga shartnoma bo'yicha kerak bo'lsa, so'rang va biz aslida nimaga majbur bo'la olishimiz haqida gaplashamiz.

Biz boshqa birovning API'ini ishonchli qila olmaymiz. Agar provayder ishlamay qolsa, unga bog'liq ish oqimi kutadi, qayta urinadi va oxirida aniq sabab bilan to'xtaydi. Biz va'da qila oladigan narsa — muvaffaqiyatsizlik ko'rinadigan bo'lishi, hech narsani buzmasligi va davom ettirish xabarni ikkinchi marta yubormasligi.

Kutishlar haqida: ikki kun kutayotgan ishga tushirish — bu navbatda turgan vazifa emas, balki ishga tushirishdagi wake_at qiymati. Shu sababli ish oqimi uch haftalik kutishda yuz ming ishga tushirishni hech qanday xarajatsiz saqlay oladi va hozir kutayotgan ishga tushirishlar soni haqida o'ylashingiz shart emas.

Hech o'ylab ko'rmaydigan ishga tushirishingiz — muvaffaqiyatli bo'lgani.