Loading...

Kvalita a stabilita. Ako platobná brána FONDY zabezpečuje vysokú úroveň služieb.

Autor: Maxim Maxim Kozenko

Čo je FONDY a o čom je tento článok?

FONDY je cloud poskytovateľ platobných riešení. Poskytuje spracovanie platobných kariet a iných online platieb a white label riešenia v Európe. Poďme si to rozdeliť:

Cloud – znamená, že nemusíte mať vlastné servre, aby ste akceptovali online platby prostredníctvom našich stránok. My máme celý potrebný software v našich dátových centrách.

Poskytovateľ platobných riešení – zahrňuje klasický internetový acquiring cez banky a komplexné finančné a technologické riešenia ako účtovné centrum, e-peňaženky, P2P prevody a platby za služby.

White label – Unikátne riešenie pre klientov, ktorí chcú poskytovať rovnaký rozsah služieb ako FONDY, ale pod svojou vlastnou značkou a názvom domény.

Naše základné poslanie je byť otvorený a úprimný k našim klientom. Chceme, aby vedeli prínosy a riziká používania našich služieb ako nástroja k rozvoju svojho vlastného podnikania. To je dôvod, prečo chceme vrhnúť svetlo na interné podnikové procesy, ktoré zabezpečujú dostupnosť, stabilitu a kvalitu našich služieb.

V našej verejnej servisnej zmluve zaručujeme dostupnosť našej platobnej brány na úrovni 99,5%. To znamená:

Celkové prestoje (plánované a neplánované) by nemali presiahnúť:

43.2 sekúnd za deň

5 minút 2.4 sekúnd za týždeň

21 minút 54.9 sekúnd mesačne

4 hodiny 22m 58.5 sekúnd ročne

Platby odmietnuté z dôvodu technickej poruchy by nemali prekročiť:

5 z 10 000

Pre 99% všetkých platieb ďalšie oneskorenia nášho systému v priebehu platby od klienta k spracovateľskému centru alebo banke nebudú dlhšie ako 0,5 sekúnd a 99,5% prípadov nepresiahne 3 sekundy.

Mali by sme hneď povedať, že tieto požiadavky sa vzťahujú na tie časti infraštruktúry, ktoré vlastní FONDY. Netýkajú sa bankových platobných brán, platobných systémov, komunikačných kanálov a iných služieb a zariadení, ktoré nespadajú do nášho dátového centra a nad ktorými nemáme priamu kontrolu.

Pre dosiahnutie dôslednej podpory vysokej úrovne dostupnosti serverov sme urobili veľký kus práce. Naším cieľom bolo hlavne zlepšiť vývoj, testovanie, proces inštalácie aktualizácií do systému a sledovanie implementácie. V tomto článku sa podrobne zameriame na to, ako sme to dosiahli a akým spôsobom.

Rozvoj

Pokiaľ ide o vývoj, dodržiavame prax kontinuálnej integrácie. To nám umožňuje efektívne vytvárať zlepšenie systémových uzlov v reakcii na potreby klientov a aktualizácie dát do výrobného systému na dennej báze alebo niekoľkokrát za deň. Na základe technických špecifikácií prejdú nové zmeny kontrolným kódom. Ďalej prechádzajú procesom automatického testovania a implementácie. To znamená, že doba od ukončenia vývoja po zmeny zavedené do vytvoreného systému môžu byť len otázkou niekoľkých minút. Takéto efektívne vývojové procesy nás stavajú do pozície, kde sme schopní reagovať na akékoľvek inovácie a experiment. To je nesmierne dôležité pre našich klientov, pretože mnoho z nich vlastní podniky, ktoré zažívajú dynamický rast a ktoré potrebujú finančnú a technologickú flexibilitu, ktorá im môže dať výhodu na vysoko konkurenčných trhoch.

Bez ohľadu na naše konštantné zmeny v kóde sú naše aplikácie vysoko odolné. Stabilita našeho systému je často aktualizovaná, je vykonaných množstvo automatických testov, ktoré sú spustené pred vydávaním každej aktualizácie. Každá nová verzia systému je pred uvedením do prevádzky podrobená automatickým testom.

The build in this screenshot will be marked as ‘broken’ and will not be entered into the production system as it has yielded a ‘bad’ test.

The build in this screenshot will be marked as ‘broken’ and will not be entered into the production system as it has yielded a ‘bad’ test.

Aktualizácia na tomto obrázku bude označená ako “prerušená” a nebude zapísaná do výrobného systému, pretože pri testovaní bola zapísaná ako “chybná”.

Akákoľvek aktualizácia, čo vstupuje do produkčného systému, je najskôr vyvinutá na jednom z našich produkčných serveroch, ktorý spracováva malé množstvo platieb, obvykle nie viac ako 1% z celkového počtu. Po inštalácii náš monitoring a vývojové oddelenie, ktoré je zodpovedné za zmeny v kóde, aktívne sleduje prítomnosť možných chýb. Prípadné chyby sú automaticky zaznamenané aplikáciou v automatizovanom sledovacom systéme Sentry. Pokiaľ sa nájdu chyby, je aktualizácia hneď zaslaná späť na preverenie a upravenie.

An example of automatic error notification in Sentry

An example of automatic error notification in Sentry

Príklad oznámenia automatickej chyby v Sentry

Pokiaľ sa vyskytne problém, ktorý sa týka funkčnosti a nespĺňa kritéria existujúcich skúšok, naše oddelenie zaisťovania kvality (QA) vyvinie nový automatizovaný test.

Automatizované testy

Automatizované testy sú základným krokom k tomu, či sú aktualizácie vhodné k použitiu. Na rozdiel od jednotkového testu, integrované testy tiež hrajú dôležitú úlohu. Tu stojí za to sa na chvíľu zastaviť, aby sme to rozobrali podrobnejšie.

Integrované testovanie je spôsob, ktorým sa overuje správnosť interakcie systému s ostatnými internými a externými systémami a službami.

Naše QA oddelenie vyvinulo obrovnské množstvo integrovaných testovacích scenárov, ktoré sú kontrolované pred každou aktualizáciou systému. Napríklad, na najkritickejšiu časť systému, platobnú bránu, sa vzťahuje niekoľko setov testov, z nich každý obsahuje viac ako 3 000 automatizovaných testov. Preto počet kontrol v priebehu jedného regresívneho testovania dosiahne 80 000. Regresívne testovanie tohto druhu pôsobí ako kontrola rovnako na vnútornú spracovateľnosť celej brány API, ako aj na jej integráciu s rôznymi externými systémami, ako sú:

  • Acquiring bánk
  • Spracovateľské centrá
  • Mezinárodné a lokálne platobné systémy
  • Ostatné platobné služby (z nich viac ako 50 bolo implementovaných do systému FONDY)

Pokiaľ externý systém nemá stabilné testovacie prostredie, tak za účelom testovania pre integráciu s FONDY naši vývojári používajú tzv. falošný objekt, ktorý napodobňuje odozvu externého systému v pozitívnom aj negatívnom scenári.

Regresia zahrňuje kontrolu všetkých platobných funkcií:

  • Nákupy uskutočnené prostredníctvom webových prehliadačov
  • Nákupy uskutočnené prostredníctvom žiadosti host-to-host pre PCI DSS obchodníkov
  • Tlačidlá a widgety pre prijímanie bežných platieb a darov
  • Pravidelné platby
  • Stornovanie platieb
  • Kontrola stavu platieb
  • Reporty
  • P2P prevody
  • Javascript API
  • Overenie karty
  • iOS, Android SDK PHP
  • Predautorizácia platieb a ich dokončenie
  • Spätné volania
  • Rôzne iné funkcie, ktoré sú popísané v našich API špecifikáciach

Napríklad testy, ktoré sa snažia napodobniť interakciu medzi zákazníkom pomocou prehliadača a našej platobnej stránky. Je to možné reprodukovať vo všetkých najbežnejších verziách prehliadačov. Pre aplikáciu Internet Explorer je to IE 8 do IE 11 vrátane. Viac ako 80 000 testov sa uskutočňuje v rozmedzí približne 5 minút na serveri s RAM 32 GB a 8- core procesorom. Uskutočňovanie skúšok, ako je rýchlosť na serveri, je umožnená vďaka usporiadaniu vymysleného našou spoločnosťou, ktorá umožňuje testy, ktoré majú byť zahájené optimálnym spôsobom súbežne naprieč všetkými procesorovými jadrami. Pokiaľ by boli testy zahájené za sebou v jednom prúde, tak jedna skupina regresného testu bude trvať viac ako hodinu. V záujme zrýchlenia testov tiež súčasne testujeme niekoľko vetví vývoja pararelne použitím docker, čo je platfora pre automatizované vizualizácie aplikácie. S pomocou docker prevádzkujeme niekoľko verzií platobnej brány naraz.

Výsledky každej skupiny testov sú dostupné k dispozícii všetkým zúčastneným spolupracovníkom cez aplikáciu Telegram. To umožňuje efektívnu opravu neúspešných testov. Správy obsahujú podrobné informácie o všetkých skúškach vrátane screenshotov, protokolov a popisov chýb pre vývojárov. Nezabudnite, že je to len cez Telegram. Hlavné zdieľanie je vytvorené zo systémových udalostí a incidentov, o ktorých píšeme nižšie.

Monitorovanie

Pre sledovanie výkonu systému budeme používať obe populárne platformy Zabbix a Sentry, ako aj Business Intelligence (BI) systém vlastnej konštrukcie. Náš BI systém umožňuje operátorom sledovať účinnosť platobnej brány a v závislosti od typu udalosti zaznamenáva a vytvára oznámenia.

monitoring

Sekcia “Sledovanie obchodníka” v BI systéme zobrazuje počet odmietnutých, úspešných platieb, chyby, rýchlosť spracovania platieb a veľkosť koeficientu u najväčších obchodníkov a odošle oznámenie v prípade akýchkoľvek nejasností.

Rovnakým spôsobom používame sekciu “Protokol monitorovania”, v ktorej sa sleduje výkon aktívnej integrácie s externými systémami. V prípade, že jeden z nich zlyhá, prevádzkovateľ kontaktuje tím podpory z daného systému za účelom oznámenia ich problémov, alebo aby aktivovali funkciu postupného spracovania.

Kaskádový proces

Postupné spracovanie je jednou z najdôležitejších funkcií nášho monitorovacieho systému. To umožňuje prepnúť obchodníka do protokolu náhradnej acquiringovej banky v prípade narušenia alebo zlyhania jeho primárnej banky. Prepínanie môže byť automatické alebo ručne vykonané povereným zamestnancom.

Na záver

Dúfame, že tento článok bol pre vás užitočný a pomohol nám priblížiť vám FONDY ako otvorenú, technologicky vyspelú spoločnosť, ktorá sa zaoberá predovšetkým kvalitou svojich služieb a plní povinnosti voči svojim klientom.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *