![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Bokasi ya koyika mpiko na logiciel elakisi makoki ya application moko ya kokoba kosala malamu mpe na bondimi, ata liboso ya makambo to ba échecs oyo ekanisamaki te. Na ba projets Fintech résilience ezali surtout haute importance en raison ya ba raisons ebele. Ya liboso, ba entreprises ezali obligées ya ko répondre na ba exigences réglementaires mpe ba régulateurs financiers ba souligner résilience opérationnelle mpo na ko maintenir stabilité na kati ya système. Lisusu, bokóli ya bisaleli ya nimero mpe kotya motema na ba fournisseurs ya services ya bato mosusu ezali kopesa ba entreprises ya Fintech na ba menaces ya sécurité oyo ebakisami. Bokasi ya koyika mpiko esalisaka mpe mpo na kokitisa makama ya bopanzani oyo euti na makambo ndenge na ndenge lokola makama ya cyber, pandemie, to makambo ya géopolitique, kobatela misala ya ntina ya mombongo mpe biloko ya motuya.
Na ba modèles ya résilience, to comprendre ensemble ya ba meilleures pratiques na ba stratégies oyo ebongisami pona ko assurer que logiciel ekoki ko supporter ba perturbations pe ko maintenir ba opérations na yango. Ba modèles oyo esalaka lokola ba filets de sécurité, epesaka ba mécanismes ya ko gérer ba erreurs, ko gérer charge, pe ko récupérer na ba pannes, na yango ko assurer que ba applications ezala makasi pe ya kozala na confiance na ba conditions ya mabe.
Ba stratégies ya résilience oyo emonanaka mingi ezali bulkhead, cache, fallback, retry, na disjoncteur. Na lisolo oyo, nakolobela yango na bozindo, na bandakisa ya mikakatano oyo bakoki kosalisa mpo na kosilisa.
Tótalela esika oyo tolobeli awa na likoló. Tozali na application moko très ordinaire na ba backends ebele sima na biso pona kozua mua ba données na yango. Ezali na ba clients HTTP ebele oyo ekangami na ba backends oyo. Il se révèle que bango nionso bakabolaka pool ya connexion moko! Et aussi ba ressources misusu lokola CPU na RAM.
Nini ekosalema, Soki moko ya ba backends ekutanaki na lolenge moko ya mikakatano oyo esali ete latence ya demande ezala makasi? Na tina ya tango ya eyano ya likolo, pool ya connexion mobimba ekokoma entièrement occupé na ba demandes oyo ezali kozela ba réponses ewutaka na backend1. Yango wana, masengi oyo ekanamaki mpo na backend2 mpe backend3 ya nzoto kolɔngɔnɔ ekozala na likoki te ya kokende liboso mpo ete piscine esili. Yango elingi koloba ete bozangi kokoka na moko ya ba backends na biso ekoki kosala bozangisi na kati ya application mobimba. Na lolenge ya malamu, tolingi kaka fonctionnalité oyo esangisi na backend oyo elongi te ekutanaki na dégradation, alors que le reste ya application ekoba ko fonctionner normalement.
Modèle ya Bulkhead ezali nini?
Liloba, Bulkhead pattern, euti na botongi masuwa, esangisi kosala ba compartiments ebele oyo ezali mosika na kati ya masuwa. Soki fuite esalemi na eteni moko, etondi na mai, kasi bisika mosusu etikalaka kozanga kotungisama. Isolation oyo epekisaka masuwa mobimba ezinda mpo na rupture moko.
Modèle ya Bulkhead ekoki kosalelama pona ko isoler ba ressources ya ndenge na ndenge na kati ya application, kopekisa panne na eteni moko ezala na effet na système mobimba. Talá ndenge tokoki kosalela yango na mokakatano na biso:
Tokanisa ete ba systèmes na biso ya sima ezali na probabilité moke ya kokutana na ba erreurs moko moko. Kasi, ntango opération moko esɛngaka kotuna ba backends nyonso wana na parallèle, mokomoko ekoki kozongisa libunga na lipanda. Lokola ba erreurs wana esalemaka indépendamment, probabilité globale ya erreur na application na biso ezali likolo koleka probabilité ya erreur ya backend moko nionso. Probabilité ya erreur cumulative ekoki ko calculer na nzela ya formule P_total=1−(1−p)^n, esika n ezali nombre ya ba systèmes ya sima.
Ndakisa, soki tozali na ba backends zomi, moko na moko na probabilité ya erreur ya p=0.001 (oyo ekokani na SLA ya 99,9%), probabilité ya erreur oyo ezuami ezali :
P_total=1−(1−0,001)^10=0,009955
Yango elingi koloba ete SLA na biso oyo esangisami ekiti na pene na 99%, oyo ezali kolakisa ndenge nini bondimi mobimba ekiti ntango tozali kotuna ba backends ebele na parallèle. Pona ko mitiger problème oyo, tokoki ko mettre en œuvre cache in-mémoire.
Cache oyo ezali na kati ya mémoire esalaka lokola tampon ya ba données ya vitesse makasi, ebombaka ba données oyo ba accéder mbala na mbala mpe elongolaka besoin ya kozua yango na ba sources oyo ekoki kozala malembe mbala nionso. Lokola ba caches oyo ebombami na mémoire ezali na 0% ya chance ya erreur soki tokokanisi yango na kozua ba données na nzela ya réseau, ematisaka mingi fidélité ya application na biso. Lisusu, caching ekitisaka trafic ya réseau, ekitisaka lisusu chance ya ba erreurs. Par conséquent, na ko utilisant cache in-mémoire, tokoki kozua taux ya erreur encore ya se na application na biso soki tokokanisi yango na ba systèmes na biso ya sima. Longola yango, ba caches oyo ezali na kati ya mémoire epesaka nzela ya kozwa ba données nokinoki koleka kozwa ba données na nzela ya réseau, mpe na ndenge yango, ekitisaka latence ya application —litomba moko ya ntina mingi.
Mpo na ba données personnalisées, lokola ba profils ya usager to ba recommandations, kosalela ba caches na mémoire ekoki pe kozala très efficace. Kasi esengeli to assurer que ba demandes nionso ya usager ekende constamment na instance ya application moko pona ko utiliser ba données cachées pona bango, oyo esengaka ba sessions collantes. Kosalela ba sessions collantes ekoki kozala défi, kasi pona scénario oyo, tozali na besoin ya ba mécanismes complexes te. Reéquilibrage ya trafic ya mike mike ezali acceptable, yango wana algorithme ya équilibre ya charge stable lokola hashing constant eko suffisant.
Oyo eleki, na cas ya panne ya noeud, hashing constant e assure que kaka ba usagers oyo ba associés na noeud oyo elongi te ba subir reéquilibrage, ko minimiser perturbation na système. Approche oyo e simplifier gestion ya ba caches personnalisées mpe ematisaka stabilité globale mpe performance ya application na biso.
Soki ba données oyo tolingi kosala cache ezali na ntina mingi mpe esalelami na demande nionso oyo système na biso esimbaka, lokola ba politiques ya accès, ba plans ya abonnément, to ba entités mosusu ya ntina na domaine na biso — source ya ba données oyo ekoki kozala point ya échec ya monene na système na biso. Mpo na kosilisa mokakatano yango, lolenge moko ya kosala ezali ya kozongela mobimba ba données oyo directement na mémoire ya application na biso.
Na scénario oyo, soki volume ya ba données na source ezali gérable, tokoki ko initier processus en téléchargeant instantané ya ba données oyo na début ya application na biso. Na sima, tokoki kozua ba événements ya mises à jour mpo na ko assurer que ba données cachées ezala synchronisée na source. Na ko adopter méthode oyo, to améliorer fidélité ya accès na ba données cruciales oyo, lokola récupération moko na moko esalemaka directement na mémoire na probabilité ya erreur ya 0%. En plus, kozua ba données na mémoire ezali exceptionnellement rapide, na yango ko optimiser performance ya application na biso. Stratégie oyo ekitisaka malamu risque oyo ezo sangana na ko se fier na source ya ba données ya libanda, ko assurer accès constant mpe ya kozala na confiance na ba informations ya critique pona fonctionnement ya application na biso.
Kasi, mposa ya ko télécharger ba données na démarrage ya application, na yango ko retarder processus ya démarrage, ezali ko violer moko ya ba principes ya ‘application ya 12 facteurs’ oyo ezali ko préconiser démarrage ya application noki. Kasi, tolingi te ko perdre ba avantages ya kosalela caching. Mpo na kosilisa mokakatano oyo, tika tóluka koyeba ba solutions oyo ekoki kozala.
Démarrage rapide ezali crucial, surtout pona ba plateformes lokola Kubernetes, oyo etie motema na migration rapide ya application na ba noeuds physiques différents. Heureusement, Kubernetes ekoki ko gérer ba applications oyo ebandi malembe na nzela ya ba fonctionnalités lokola ba sondes ya démarrage.
Mokakatano mosusu oyo tokoki kokutana na yango ezali ya kosala mikolo oyo ba configurations ntango application ezali kosala. Mbala mingi, kobongisa ba heures ya cache to ba temps ya demande ezali nécessaire pona ko résoudre ba problèmes ya production. Ata soki tokoki nokinoki kotya bafichiers ya configuration oyo ebongwani na application na biso, kosalela mbongwana yango mbala mingi esɛngaka kobanda lisusu. Na tango ya démarrage ya application moko na moko oyo ebakisami, restart roulante ekoki ko retarder makasi ko déployer ba fixations na ba usagers na biso.
Pona ko aborder yango, solution moko ezali ya kobomba ba configurations na variable concurrente pe kosala que thread ya fond ezala périodiquement mise à jour yango. Kasi, ba paramètres mosusu, lokola ba temps d’extraits ya demande HTTP, ekoki kosenga ko réinitialiser ba clients HTTP to ya base de données tango configuration correspondante ebongwanaka, ko poser défi oyo ekoki kozala. Kasi, ba clients mosusu, lokola pilote Cassandra mpo na Java, esungaka rechargement automatique ya ba configurations, ko simplifier processus oyo.
Kosalela ba configurations rechargeables ekoki ko mitiger impact négatif ya ba temps milayi ya démarrage ya application mpe kopesa ba avantages ya kobakisa, lokola ko faciliter ba mise en œuvre ya drapeau ya fonctionnalité. Approche oyo epesaka biso makoki ya kobatela fidélité ya application mpe réponse tout en gérer efficacement mises à jour ya configuration.
Sikoyo totala problème mosusu : na système na biso, tango demande ya usager ezuami pe esalemi na kotinda requête na backend to base de données, tango mosusu, eyano ya erreur ezuami na esika ya ba données oyo ezelamaki. Na sima, système na biso eyanolaka na mosaleli na ‘libunga’.
Kasi, na ba scénarios mingi, ekoki kozala malamu mingi kolakisa ba données oyo esila mwa moke elongo na message oyo ezali kolakisa que ezali na retard ya refresh ya ba données, na esika ya kotika mosaleli na message ya erreur rouge munene.
Mpo na kosilisa likambo oyo mpe kobongisa bizaleli ya système na biso, tokoki kosalela motindo ya Fallback. Likanisi oyo ezali sima ya motindo oyo esangisi kozala na source ya ba données secondaires, oyo ekoki kozala na ba données ya qualité ya se to ya fraîcheur soki tokokanisi yango na source primaire. Soki source ya ba données primaires ezali te to ezongisaka erreur, système ekoki kozonga sima na kozua ba données na source secondaire oyo, ko assurer que lolenge moko ya information elakisama na usager na esika ya kolakisa message ya erreur.
Soki otali elilingi oyo ezali likolo, okomona bokokani kati na likambo oyo tozali kokutana na yango sikoyo mpe oyo tokutanaki na yango na ndakisa ya cache.
Mpo na kosilisa yango, tokoki kotalela kosalela motindo oyo eyebani na nkombo retry. Na esika ya kotya motema na ba caches, système ekoki kozala conçu mpo na kotinda lisusu demande automatiquement soki libunga esalemi. Motindo oyo ya komeka lisusu epesi nzela mosusu ya pete mpe ekoki mpenza kokitisa likoki ya mabunga na application na biso. Na bokeseni na caching, oyo mbala mingi esengaka ba mécanismes complexes ya invalidation ya cache mpo na ko gérer ba changements ya ba données, komeka lisusu ba demandes oyo elongi te ezali relativement directe pona ko mettre en œuvre. Lokola invalidation ya cache etalelami mingi lokola moko ya misala ya mikakatano mingi na ingénierie logicielle, kozua stratégie ya komeka lisusu ekoki ko simplifier traitement ya ba erreurs mpe kobongisa résilience ya système.
Kasi, kozwa mayele ya komeka lisusu kozanga kotalela makambo oyo ekoki kobima ekoki kobimisa mikakatano mosusu.
Lets imagine moko ya ba backends na biso ekutanaki na échec. Na scénario ya boye, kobanda ba retries na backend oyo elongi te ekoki kosala que volume ya trafic emata makasi. Bomati oyo ya mbalakaka ya mobembo ekoki kozindisa backend, ko aggraver panne mpe ekoki kosala effet cascade na système mobimba.
Mpo na kolonga mokakatano oyo, ezali na ntina mingi kokokisa motindo ya komeka lisusu na motindo ya disjoncteur. Disjoncteur esalaka lokola mécanisme ya bobateli oyo elandaka taux ya erreur ya ba services en aval. Ntango taux ya erreur eleki seuil oyo esili ko définir, disjoncteur ekataka ba demandes na service oyo ezo affecter na boumeli ya durée moko oyo elakisami. Na eleko oyo, système ezo boya kotinda ba demandes ya kobakisa mpo na ko permettre temps ya service oyo elongi te ezo se rétablir. Nsima ya eleko oyo etyami, disjoncteur epesaka nzela na bokebi nyonso ete motángo moke ya masengi eleka, mpe etalelaka soki mosala yango ekómi stable. Soki service ezongi, trafic normal ezongaka mokemoke; soki te, circuit etikalaka polele, ekoba ko bloquer ba demandes tii tango service ekozongela fonctionnement normal. Na ko intégrer modèle ya disjoncteur pembeni ya logique ya retry, tokoki ko gérer efficacement ba situations ya erreur pe ko prévenir surcharge ya système na tango ya ba pannes ya backend.
Mpo na kosukisa, na kosalelaka ba modèles oyo ya résilience, tokoki kolendisa ba applications na biso contre ba urgences, kobatela disponibilité ya likolo, mpe kopesa expérience sans soudure na basaleli. En plus, nalingi ko souligner que télémétrie ezali encore outil mosusu oyo esengeli te ko bosana tango ya kopesa résilience ya projet. Ba journal mpe ba metrics ya malamu ekoki kotombola mingi qualité ya ba services mpe kopesa ba insights ya motuya na performance na yango, kosalisa kozua ba décisions informées mpo na kobongisa yango lisusu.