(5 votes, average: 4.20 out of 5)
Loading...
, Автор: Maxim

Jakość i stabilność. Jak platforma Fondy zapewnia i utrzymuje wysoki poziom usług

Czym jest Fondy i o czym jest ten artykuł?

Fondy jest dostawcą technologii płatniczych działających w chmurze. Oferuje rozwiązania umożliwiające płatności kartami Visa i Mastercard, a także rozwiązania typu white label w Europie. Nasze usługi obejmują:

Chmurę — oznacza to, że nie potrzebujesz własnych serwerów, aby móc przyjmować płatności kartą za pośrednictwem swojej witryny. Wszelkie niezbędne oprogramowanie znajduje się w naszych centrach danych.

Dostawca technologii płatniczych — termin ten dotyczy zarówno klasycznych internetowych usług rozliczania płatności poprzez banki jak i bardziej skomplikowanych rozwiązań finansowych i technologicznych takich jak centrum rachunkowości, e-portfel, transfery P2P czy opłaty za usługi

Rozwiązania typu white label — to wyjątkowe rozwiązanie szczególnie przydatne dla klientów, którzy chcieliby oferować taki sam zakres usług, co Fondy, ale pod własną marką i domeną

U podłoża naszych relacji z klientami leży szczerość i przejrzystość działań. Chcemy, żeby nasi klienci byli świadomi zarówno korzyści jak i ryzyka, jakie niesie za sobą korzystanie z naszego serwisu, aby rozwinąć własną działalność biznesową. Dlatego chcielibyśmy wyjaśnić wewnętrzne procesy biznesowe, które wprowadziliśmy, aby zapewnić dostępność, stabilność i wysoką jakość naszych usług.

W naszej umowie o gwarantowanym poziomie usług (SLA) zobowiązujemy się do utrzymywania sprawności operacyjnej naszej bramki płatniczej na poziomie 99,95%. Oznacza to:

Całkowity czas przestoju (planowany i nieplanowany) nie powinien przekroczyć:

43,2 sekundy dziennie

5 minut 2,4 sekundy tygodniowo

21 minut 54,9 sekund miesięcznie

4 godziny 22 minuty 58,5 sekund rocznie

Liczba płatności odrzuconych z powodu awarii technicznych nie powinna przekraczać:

5 na 10 000 transakcji

W przypadku 99% wszystkich płatności, dodatkowe opóźnienie spowodowane przez nasz system w momencie przesłania płatności od klienta do centrum przetwarzania płatności lub do banku przejmującego nie przekroczy pół sekundy, a w 99,95% przypadków nie przekroczy 3 sekund.

W tym momencie jesteśmy zmuszeni wyjaśnić, że powyższe standardy odnoszą się wyłącznie do tej części infrastruktury, do której możemy zapewnić dostęp. Nie odnoszą się one natomiast do bankowych bramek płatniczych, systemów płatniczych, kanałów komunikacyjnych i różnych innych usług, które nie są obsługiwane przez nasze centra danych i nad którymi nie mamy bezpośredniej kontroli.

Aby osiągnąć i konsekwentnie utrzymywać tak wysoki poziom sprawności operacyjnej serwerów, włożyliśmy wiele pracy w usprawnienie rozwoju, testowania i instalacji aktualizacji systemu, a także w monitorowanie ich wdrażania. W niniejszym artykule szczegółowo opiszemy, jak udało się nam to osiągnąć.

Rozwój

Jeśli chodzi o rozwój, stosujemy praktykę ciągłej integracji. Pozwala nam efektywnie wprowadzać ulepszenia węzłów systemowych w odpowiedzi na oczekiwania klientów i aktualizować systemy produkcyjne codziennie lub nawet kilka razy dziennie. Nowe zmiany, wprowadzone przez dewelopera na podstawie specyfikacji technicznych, są sprawdzane pod kątem kodu, a potem automatycznie testowanie i poddawane asemblacji. Oznacza to, że od zakończenia fazy rozwoju do wprowadzenia zmiany do systemu produkcyjnego może upłynąć jedynie kilka minut. Dzięki tak efektywnemu procesowi rozwoju jesteśmy w stanie zareagować na każdą innowację lub eksperyment. To niezwykle ważne dla naszych klientów. Wielu z nich to firmy, które wciąż dynamicznie się rozwijają, którym elastyczność zarówno pod względem finansowym jak i technologicznym może zapewnić przewagę na niezwykle konkurencyjnych rynkach.

Pomimo ciągłych zmian w kodzie, nasze aplikacje są niezwykle trwałe. Częste aktualizacje nie wpływają negatywnie na stabilność naszego systemu głównie dzięki dużej liczbie zautomatyzowanych testów, przeprowadzanych przed każdą aktualizacją. Nigdy nie wprowadzamy aktualizacji, jeśli wcześniej nie została ona rzetelnie przetestowana.

Kompilacja widoczna na tym zrzucie ekranu została oznaczona jako „niestabilna” i nie zostanie wprowadzona ze względu na „niewłaściwy” wynik testu.

Kompilacja widoczna na tym zrzucie ekranu została oznaczona jako „niestabilna” i nie zostanie wprowadzona ze względu na „niewłaściwy” wynik testu.

Każda aktualizacja systemu produkcyjnego jest początkowo rozwijana na jednym z naszych serwerów produkcyjnych, który obsługuję niewielką liczbę płatności (zazwyczaj nie więcej niż 1% wszystkich płatności). Co więcej, już po wprowadzeniu aktualizacji, nasz dział monitorowania i rozwoju, który jest odpowiedzialny za zmiany w kodzie, aktywnie monitoruję aktualizację, aby wykryć błędy. Błędy są automatycznie rejestrowane przez aplikację w zautomatyzowanym systemie śledzenia błędów Sentry. Jeśli jakiekolwiek błędy zostaną znalezione, aktualizacja zostanie wycofana, aby można było przeprowadzić badania i naprawy.

Przykład automatycznego powiadomienia o błędzie systemu Sentry

Jeśli błąd mimo wszystko wkradł się do systemu produkcyjnego, ponieważ dotyczy funkcjonalności, której testy nie obejmują, nasz dział kontroli jakości stworzy nowy zautomatyzowany test.

Zautomatyzowane testy

Zautomatyzowane testy odgrywają kluczową rolę w procesie przygotowywania aktualizacji. Oprócz testów jednostkowych, równie ważną rolę pełnią testy zintegrowane. Zagadnienie to warto objaśnić bardziej szczegółowo.

Testowanie zintegrowane pozwala na zweryfikowanie poprawności interakcji systemu z innymi systemami i usługami – zarówno zewnętrznymi jak i wewnętrznymi.

Nasz dział kontroli jakości opracował olbrzymią liczbę scenariuszy testów zintegrowanych, które sprawdzamy przed każdą aktualizacją systemu produkcyjnego. Na przykład na testy najbardziej kluczowej części systemu – bramki płatności – składają się setki plików, które zawierają więcej niż 3000 zautomatyzowanych testów. W związku z tym liczba sprawdzeń podczas jednego testu regresyjnego wynosi 80000. Testy regresyjne tego rodzaju sprawdzają zarówno wewnętrzną funkcjonalność bramki API jak i jej integralność z różnymi systemami zewnętrznymi, takimi jak:

  • Centra przetwarzania danych
  • Banki przejmujące
  • Lokalne i międzynarodowe systemu płatności
  • Inne usługi płatniczych (z których ponad 50 zostało wdrożonych do systemu Fondy)

Jeśli system zewnętrzny nie posiada stabilnego środowiska testowego, wówczas w celu przetestowania stopnia integracji z Fondy, nasi programiści używają tak zwanego obiektu pozornego, który imituje odpowiedzi systemu zewnętrznego w pozytywnym i negatywnym przypadku.

Testy regresyjne obejmują wszystkie funkcje płatnicze takie jak:

  • Zakupy dokonane za pośrednictwem przeglądarki
  • Zakupy dokonane za pośrednictwem żądania typu host-to-host dla sprzedawców PCI DSS
  • Przyciski i widżety do odbierania regularnych płatności i darowizn
  • Płatności standardowe
  • Cofnięcia płatności
  • Sprawdzanie statusu płatności
  • Raporty
  • Transfery P2P
  • Interfejs JavaScript API
  • Weryfikacja karty
  • iOS, Android PHP SDK
  • Zaawansowana autoryzacja i sfinalizowanie płatności
  • Wywołania zwrotne
  • Różnych inne funkcje, opisane w ogólnie dostępnej specyfikacji interfejsu API

Dla przykładu – testy, które imitują interakcje pomiędzy klientem używającym przeglądarki, a naszą stroną płatniczą, mogą zostać odtworzone we wszystkich najbardziej popularnych wersjach przeglądarek. W przypadku programu Internet Explorer dotyczy to wersji 8 do 11. Ponad 80 tysięcy testów jest przeprowadzanych w ciągu mniej więcej 5 minut na serwerze wyposażonym w 32GB pamięci RAM i 8-rdzeniowy procesor. Przeprowadzanie testów z taką prędkością na serwerze o przeciętnej specyfikacji technicznej jest możliwe dzięki konfiguracji stworzonej przez naszą firmę, która pozwala na równoległe uruchomienie testów na wszystkich rdzeniach procesorach. Jeśli testy uruchamiane byłyby jeden po drugim, pojedyncza sesja testów regresyjnych zajmowałaby ponad godzinę. Aby umożliwić testowanie wielostrumieniowe i obciążenie wszystkich rdzeni procesora używamy Robot Framework, który umożliwia uruchamianie testów w kilku strumieniach naraz. W celu przyspieszenia testów, jednocześnie testujemy kilka gałęzi rozwoju, używając dockera, platformy do automatycznej wizualizacji aplikacji. Za pomocą dockera wdrażamy kilka wersji bramki płatniczej jednocześnie, rozwijanej przez szereg różnych programistów.

Wyniki każdej serii testów są udostępnianie wszystkim zainteresowanym współtwórcom za pomocą komunikatora Telegram. Pozwala to na efektywne poprawianie wykrytych błędów. Wiadomości zawierają szczegółowe informacje o wszystkich testach, w tym zrzuty ekranu, dziennik błędów i opisów błędów dla programistów.

Należy pamiętać, że powiadomienia o zdarzeniach i incydentach systemów wysyłane są wyłącznie za pomocą Telegramu. Ich opis znajduje się poniżej.

Monitorowanie

Do monitorowania wydajności systemu wykorzystujemy zarówno popularne platformy, takie jak Zabbix i Sentry, oraz autorski system analizy biznesowej typu Business Intelligence (BI). Nasz system BI pozwala operatorom śledzić wydajność bramki płatniczej i – zgodnie z typem zarejestrowanego incydentu – wysyła powiadomienia. Zgodnie z naszą matrycą eskalacji incydentów wiedza na temat incydentów jest bardzo ważna.

Sekcja ‘monitorowanie sprzedawcy’ w systemie BI wyświetla liczbę odrzuceń, udanych płatności, błędów, szybkość przetwarzania płatności i współczynnik konwersji u największych sprzedawców, a także wysyła powiadomienia w przypadku jakichkolwiek nieprawidłowości.

Posiadamy także sekcję monitorowania protokołów, która pozwala monitorować wydajność aktywnych integracji z zewnętrznymi systemami. Jeśli jeden z nich ulegnie awarii, operator kontaktuje się z zespołem wspierającym dany system w celu powiadomienia go o problemie lub aktywowania funkcji przetwarzania kaskadowego.

Przetwarzanie kaskadowe

Przetwarzanie kaskadowe jest jedną z najważniejszych funkcji naszego systemu monitorowania. Pozwala sprzedawcy przełączyć się do protokołu rezerwowego banku przejmujący w przypadku awarii lub błędów po stronie podstawowego banku przejmującego. Przełączenie to może nastąpić automatycznie lub zostać dokonane ręcznie przez wybranego członka zespołu..

Podsumowanie

Mamy nadzieję, że ten artykuł był dla Ciebie przydatny i że pokazał Ci, że Fondy to otwarta, zaawansowana technologicznie firma, której zależy przede wszystkim na jakości oferowanych usług i wypełnianiu swoich obowiązków wobec klientów.

#about-fondy

Leave a Reply

Your email address will not be published. Required fields are marked *