Kvalita a Stabilita. Jak platforma FONDY udržuje a zajišťuje vysokou úroveň služeb. - Fondy

Kvalita a Stabilita. Jak platforma FONDY udržuje a zajišťuje vysokou úroveň služeb.

Autor: Maxim Maxim Kozenko

Co je FONDY a o čem je tento článek?

FONDY je cloud poskytovatel platebních technologií. Nabízí zpracování platebních karet VISA a MasterCard a White Label řešení v Evropě. Pojďme si to rozčlenit takto:

  • Cloud – To znamená, že nemusíte mít své vlastní servery, aby jste akceptovali platby kartou prostřednictvím Vašich stránek. Máme veškerý potřebný software v našich datových centrech.
  • Poskytovatel platebních technologií – To zahrnuje klasický internetový acquiring přes banky a komplexní finanční a technologické řešení, jako účetní centrum, e-peněženky, P2P převodů a platby za služby.
  • White label – Unikátní řešení pro klienty, kteří chtějí nabídnout stejný rozsah služeb, jako FONDY, ale pod svou vlastní značkou a názvem domény.

Naše základní postavení je být otevřený a upřímný k našim klientům. Chceme, aby věděli, přínosy a rizika používání našich služeb jako nástroj k rozvoji vlastního podnikání. To je důvod, proč chceme vrhnout světlo na interní podnikové procesy, které zajišťují dostupnost, stabilitu a kvalitu našich služeb.

V naší veřejné servisní smlouvě, prohlašujeme dostupnost  naši platební brány na úrovni 99,95%. To znamená:

Celková prostoje (plánované a neplánované) by neměla přesáhnout:

  • 43.2 sekund za den
  • 5 minut 2.4 sekund za týden
  • 21 minut 54.9 sekund měsíčně
  • 4 hodiny 22m 58.5 sekund ročně

Platby odmítnuté z důvodu technické závady by neměla překročit:

  • 5 za 10 000

Pro 99% všech plateb další zpoždění našeho systému v době převodu platby od klienta ke zpracování servisnímu centru nebo bance nebude vyšší než 0,5 sekund a 99,95% případů nepřesáhne 3 sekundy.

Měli bychom říci hned, že tyto požadavky se vztahují pouze na té části infrastruktury, ktoré vlastní FONDY. Nezasahují do bankovních platebních bran, platebních systémů, komunikačních kanálů a jiných dalších služeb a zařízení, která nespadají do našeho datového centra a nad nimiž nemáme přímou kontrolu.

Pro dosažení důsledné podpory vysoké úrovně dostupnosti serverů jsme udělali velký kus práce. Našim cílem bylo hlavně zlepšit vývoj, testování, proces instalace aktualizací do systému a sledování implementace. V tomto článku se podrobněji zaměříme, jak toho bylo dosaženo, a jakým způsobem.

Rozvoj

Pokud jde o vývoj, dodržujeme praxi kontinuální integrace. To nám umožňuje efektivně vyrábět zlepšení systémových uzlů v reakci na potřeby klientů a dát aktualizace do výrobního systému na denní bázi, ne-li několikrát za den Na základě technických specifikací, projdou nové změny kontrolním kódem. Dále prochází procesem automatického testování a implementací. To znamená, že doba od ukončení vývoje po změny uvedeny do výrobního systému, může být jen otázkou několika minut. Takové efektivní vývojové procesy nás staví do pozice, kde jsme schopni reagovat na jakékoliv inovace či experimenty. To je nesmírně důležité pro naše klienty, protože mnoho z nich vlastní podniky, které zažívají dynamický růst, a které potřebují jak finanční a technologickou flexibilitu, která jim může dát výhodu na vysoce konkurenčních trzích.

Bez ohledu našich konstantních změn v kódu, jsou naše aplikace vysoce odolné. Stabilita našeho systému je často aktualizována, je provedeno velké množství automatických testů, které jsou spouštěny před vydáním každé aktualizaci. Každá nová verze systému je před uvedením do provozu podrobena automatickým testům.

Aktualizace v tomto snímku bude označena jako "přerušena" a nebude zapsána do výrobního systému, protože přinesla "špatný" test. Aktualizace v tomto snímku bude označena jako “přerušena” a nebude zapsána do výrobního systému, protože přinesla “špatný” test.

Jakákoliv aktualizace co vstoupí do produkčního systému je nejprve vyvinuta v jednom z našich produkčních serverů, který zpracovává malé množství plateb, obvykle ne více než 1% z celkového počtu. Po instalaci, náš monitoring a vývojové oddělení, které je zodpovědné za změny v kódu, aktivně sleduje přítomnost možných chyb. Případné chyby jsou automaticky zaznamenány aplikací v automatizovaném sledovacím systému Sentry. Pokud jsou nalezeny chyby, je aktualizace ihned vrácena zpět, následně poslána na prověření a upravení.

Příklad oznámení automatické chyby v Sentry

Příklad oznámení automatické chyby v Sentry

Pokud se vyskytne problém, který se týká výroby funkčnosti a nesplňuje kritéria existujících zkoušek, náše oddělení zajišťování kvality (QA) vyvine nový automatizovaný test.

Automatizované testy

Automatizované testy jsou základním krokem kontroly, zda jsou aktualizace vhodné k použití. Na rozdíl od jednotkového testu, integrované testy také hrají důležitou roli. Tady se stojí na okamžik zastavit, abychom to pochopili podrobněji.

Integrované testování je způsob pro ověření správnosti interakci systému s ostatními interními a externími systémy a službami.

Naše QA oddělení vyvinula obrovské množství integrovaných testovacích scénářů, které jsou kontrolovány před každou aktualizací výrobního systému. Například na nejkritičtější část systému, platební bránu, se vztahuje několik setů testů, z nichž každý obsahuje více než 3 000 automatizovaných testů. Proto počet kontrol v průběhu jednoho regresního testování dosáhne 80 000. Regresní testování tohoto druhu působí jako kontrola, jak na vnitřní zpracovatelnosti celé brány API, tak na její integraci s různými externími systémy, jako jsou:

  • Zpracovávací centra
  • Bankovní acquiring
  • Mezinárodní a místní platební systémy
  • Ostatní platební služby (z nichž více než 50 bylo implementováno do systému FONDY)

Pokud externí systém nemá stabilní testovací prostředí, pak za účelem testování pro integraci s FONDY, naši vývojáři používají takzvaný falešný objekt nebo “figurínu”, která napodobuje odezvu externího systému v pozitivním i negativním scénáři.

Regrese zahrnuje kontrolu všech platebních funkcí, jako jsou:

  • Nákupy uskutečněné prostřednictvím webového prohlížeče
  • Nákupy provedené prostřednictvím žádosti host-to-host pro PCI DSS obchodníky
  • Tlačítka a widgety pro příjem běžných plateb a darů
  • Pravidelné platby
  • Stornování plateb
  • Kontrola stavů plateb
  • Reporty
  • P2P převody
  • Javascript API
  • Ověření karty
  • iOS, Android SDK PHP
  • Předautorizace plateb a jejich dokončení
  • Spětná volání
  • Různé jiné funkce, jak je popsáno v našich specifikací API

Například testy, které se snaží napodobit interakci mezi zákazníkem pomocí prohlížeče a naší platební stránkou lze reprodukovat ve všech nejběžnějších verzích prohlížečů. Pro aplikaci Internet Explorer, je to od IE8 do IE 11 včetně. Více než 80.000 testů se provádějí v rozmezí přibližně 5 minut na serveru s RAM 32 GB a 8-core procesorem. Provádění zkoušek jako je rychlost na serveru průměrné specifikace je umožněna díky uspořádání vymyšleného naší společnosti, která umožňuje testy, které mají být zahájeny  optimálním způsobem souběžně napříč všemi procesorovými jádry. Pokud by byly zahájeny testy jeden po druhém do jednoho proudu, pak jedna šarže regresního testu bude trvat déle než hodinu. V zájmu urychlení zkoušky, také současně testujeme několik větví vývoje pararelně použitím docker, což je platforma pro automatizované vizualizace aplikace. S pomocí docker, provozujeme několik verzí platební brány najednou.

Výsledky každé šarže testů jsou dány k dispozici všem zúčastněným spolupracovníkům přes aplikaci Telegram. To umožňuje efektivní korekci neúspěšných testů. Zprávy obsahují podrobné informace o všech zkouškách, včetně screenshotů, protokolů a popisy chyb pro vývojáře.

Nezapomeňte, že je to jen přes Telegram. Hlavní sdělení je vytvořené ze systémových událostí a incidentů, o nich ještě níže.

Monitorování

Pro sledování výkonu systému budeme používat obě populární platformy, jako Zabbix a Sentry, stejně jako Business Intelligence (BI) systém vlastní konstrukce. Náš BI systém umožňuje operátorům sledovat účinnost platební brány a v závislosti na typu události zaznamenává a vytváří oznámení.

monitoring

Sekce “Sledování obchodníka” z BI systému zobrazuje počet odmítnutí, úspěšných plateb, chyby, rychlost zpracování plateb a velikost koeficientu u největších obchodníků a odešle oznámení v případě jakýchkoliv nesrovnalostí.

Stejným způsobem, máme část “Protokol monitorování”, ve které se sleduje výkon aktivní integrace s externími systémy. V případě, že jeden z nich selže, provozovatel kontaktuje tým podpory z daného systému za účelem oznámení jejich problému nebo aby aktivovali funkci postupného zpracování.

Kaskádový proces

Postupné zpracování je jednou z nejdůležitějších funkcí našeho monitorovacího systému. To umožňuje přepnout obchodníka do protokolu náhradní acquiringové banky v případě narušení nebo selhání jejich primární nabývající banky. Přepínač může být automaticky nebo ručně vyrobený určeným zaměstnance.

Na Závěr

Doufáme, že tento článek byl užitečný pro Vás a pomohl Vám ukázat FONDY jako otevřenou, technologicky vyspělou společnost, která se zabývá především kvalitou svých služeb a plní své povinnosti vůči svým klientům.