Jak 3-krotnie przyspieszyliśmy proces wypłat wygranych z STS Pay – architektura rozwiązania

Opublikowane: 2021-09-28

W kwietniu 2021 Google Cloud otworzył swój region w Polsce. Solwit miał przyjemność zaprezentować szczegóły rozwiązań technicznych projektów realizowanych z dwoma klientami. Jednym z nich był STS Gaming Group. Michał Zieniewicz, Cloud Architect w Solwit, rozmawiał z – Wojciechem Sznapką, CTO STS Gaming Group. Dyskutowali m. in. o szczegółach procesu wdrażania i integracji technologii Google Cloud w celu przyspieszenia i optymalizacji procesów biznesowych oraz o tym, jakie korzyści przyniosło to ich klientom.

Przeczytaj zapis z nagrania. Wolisz obejrzeć? Link do filmu znajdziesz na końcu artykułu.

O tym, jak przyspieszamy procesy wypłat, dowiesz się także z naszego case study: Błyskawiczne wypłaty nagród pieniężnych w zakładach bukmacherskich.

Michał Zieniewicz, Solwit: Witam wszystkich bardzo serdecznie na sesji, podczas której opowiemy Wam jak można wykorzystać usługi chmurowe Google do zbudowania przewagi konkurencyjnej we własnym biznesie. Nazywam się Michał Zieniewicz i jestem Cloud Architektem w Solwit. Jest ze mną Wojtek Sznapka z firmy STS, znanej i lubianej przez wszystkich wygrywających. Cześć, Wojtku.

Wojciech Sznapka, STS: Cześć, Michale.

Michał, Solwit: Nie wiem, czy wiesz, ale w tym roku Solwit obchodzi 10 urodziny.

Wojciech, STS: O, proszę. Gratulacje!

Michał, Solwit: Dziękuję! Od początku istnienia działamy w chmurach. Od 10 lat część naszej firmy lata w chmurach, część twardo stąpa po ziemi. Rozwijając i testując oprogramowanie dla biznesu, działamy w różnych obszarach: sztucznej inteligencji, rozpoznawania obrazu, analityki i hurtowni danych, integracji oraz optymalizacji środowisk chmurowych. Na naszym pokładzie jest 350 inżynierów, testerów, programistów, w tym certyfikowanych przez Google meteorologów, tj. specjalistów od chmury.

A czy u Was jakiś jubileusz w tym roku się szykuje?

Wojciech, STS: W tym roku akurat nie, ale w przyszłym roku obchodzimy 25-lecie, więc będzie huczna impreza, o ile sytuacja pozwoli.

Michał, Solwit: Opowiedz proszę w kilku słowach o STSie.

Wojciech, STS: Jasne. STS to największy bukmacher w Polsce. Mamy prawie 50% rynku i działamy już od 24 lat, a od ponad 8 lat w online. Oferujemy zakłady bukmacherskie live i pre-match. Mamy też ofertę e-sportową, sportów wirtualnych oraz tzw. bet games (obstawianie wyników gier karcianych). To są nasze operacje w Polsce. Od dwóch lat jesteśmy też za granicą. Nasz brand STS Bet jest obecny w Wielkiej Brytanii, na licencji UKGC, oraz w Europie – w tych krajach, w których można operować na licencji MGA. Więc to jest STS.

Michał, Solwit: Super. To jak już wiemy, kim jesteśmy. Powiedz, skąd w ogóle wziął się pomysł na Payments API?

Wojciech, STS: Zakłady bukmacherskie to jest dość prosty biznes. Gracze wpłacają pieniądze, obstawiają, wygrywają lub przegrywają i wypłacają pieniądze bądź obracają nimi dalej. Więc te operacje finansowe są dość wrażliwym punktem, który wymaga sporo kontroli i oprogramowania. Nasz dział technologii już od kilku lat rozwija system STS Pay, który pozwala automatyzować wypłaty.

Do momentu, gdy zaczęliśmy współpracę z Wami i z Googlem, cały proces wypłat na konta bankowe klientów był manualny. Po stworzeniu paczek, te przelewy były autoryzowane automatycznie przez system SSIQ lub paczka musiała być sprawdzona przez pracowników. Następnie trzeba było pobrać paczkę przelewów i “wrzucić ją” do odpowiedniego banku, co trwało i wymagało manualnej pracy.  Postanowiliśmy więc skorzystać z chmury i zintegrować się bezpośrednio z bankami przez jeden interfejs API.

Michał, Solwit: Czy mógłbyś opowiedzieć parę szczegółów na temat architektury. Z czym Payments API musiało się integrować?

Wojciech, STS: Payments API integruje się z ośmioma bankami w Polsce i wystawia restowe API dla naszej aplikacji STS Pay. Jest to hostowane w App Engine. Korzystamy z App Engine Standard oraz App Engine Flex, ze względu na to, że cała komunikacja wymaga dość skomplikowanych algorytmów kryptograficznych, które nie są dostępne, że tak powiem, out of the box, dlatego, w tym wypadku Flex był konieczny. Posiadamy też, w całym tym stacku, Compute Engine, który wymaga stałego IP. Bardzo istotną kwestią jest integracja z czytnikami kart podpisów kwalifikowanych, gdyż każda paczka musi być autoryzowana i podpisana kryptograficznie.

Michał, Solwit: Dlaczego zdecydowaliście się na rozwiązanie chmurowe?

Wojciech, STS: Czynników jest kilka. Rozwiązania chmurowe to przede wszystkim jest skalowanie. STS i generalnie branża bukmacherska jest dość sezonowa i ruch rozkłada się nierówno w ciągu tygodnia. Gdy gra Liga Mistrzów lub reprezentacja, albo są jakieś ciekawe wydarzenia – wtedy jest dość spory ruch, a gdy ich nie ma, ruch jest mniejszy. W tym wypadku skalowanie mieliśmy za darmo w App Engine. Usługi chmurowe to także bezpieczeństwo, gdyż Google Cloud zapewnia wiele poziomów bezpieczeństwa. Dodatkowo, nie inwestujemy z góry w infrastrukturę, a całość deploymentu i utrzymania tego… system jest praktycznie bezobsługowy.

Michał, Solwit: Super. Wspomniałeś trochę o architekturze i o zmianach. Dodam, że  pierwszy pomysł na to rozwiązanie polegał na tym, że wysyłanie paczek przelewów miało być kompletnie zautomatyzowane i w pełni skalowalne. Natomiast, nie dało się tego zrobić z uwagi na uwarunkowania prawne. Według prawa każdy przelew czy każda paczka przelewów była zatwierdzana przez żywy interfejs białkowy, czyli człowieka.

To wymusiło  zmiany architektoniczne i zmiany w procesie. Pojawili się operatorzy, którzy  zatwierdzają paczki, pojawiła się aplikacja, która integruje się z czytnikami podpisów kwalifikowanych czy innych urządzeń wymaganych przez banki do autoryzacji przelewów. Tak samo stałe IP było wymogiem niektórych banków.

Podłączając się do banku, jest autoryzowany tylko jeden stały adres IP i to rozwiązał właśnie Compute Engine.

Ciekawe było to, że banki używają podpisów czy certyfikatów do połączenia się z API i nie ma w tym nic dziwnego, czy złego. Natomiast problemem było to, że niektóre banki pozwalały tylko na jeden certyfikat autoryzowany do połączenia, co mocno utrudnia testowanie rozwiązania. Tak samo, niektóre banki nie udostępniają testowych API do integracji, a to skutkuje testowaniem na produkcyjnym systemie bankowym.

Rozwiązaliśmy to tak, że mieliśmy testowe konta, na których mogliśmy takie operacje robić. Ciekawostką jest to, że niektóre banki naliczają opłaty za każde użycie API, więc nasze śmiałe założenie, żeby sprawdzać paczki co kilkanaście sekund, generowało dość spory ruch w API bankowym i tym samym spore koszty. To oczywiście okazało się już na koniec implementacji, po pierwszych wdrożeniach. Problem rozwiązaliśmy dosyć prosto, bo konfiguracyjnie. Nie sprawdzamy już tak często statusu. Biznesowo to jest w porządku, natomiast koszty użycia API generalnie zostały bardzo ograniczone.

Powiedz proszę jak Payments API wpłynęło na Wasz biznes?

Wojciech, STS: Widzę same zalety i taki też był plan. Przede wszystkim, jest to skrócenie czasu wypłat. Tutaj zeszliśmy z 20 minut, które było i tak całkiem dobrym wynikiem, a w zasadzie najlepszym na naszym rynku, do prawie 7 minut od zlecenia wypłaty do pojawienia się przelewu w banku.

Michał, Solwit: To jesteście jedyną firmą w Polsce, która ma taki czas realizacji przelewu po wygranych.

Wojciech, STS: Tak. To ma spore znaczenie dla zadowolenia klientów. Wyobraź sobie sytuację, że jesteś ze znajomymi w pubie, powiedzmy, może będziesz za rok, i grasz, kończy się mecz, wygrywasz.. Zlecasz wypłatę i ta wypłata wpada po paru minutach na konto i możesz wtedy tymi pieniędzmi dowolnie obrócić.

To był nasz główny motywator do tego rozwiązania. Kolejnym punktem jest to, że bardzo uprościliśmy procedurę realizacji wypłat. Do tej pory pracownik działu płatności musiał pobrać paczkę, zalogować się do banku, wgrać paczkę i podpisać ją w banku.

Miał 8 banków, więc musiał co chwilę przelogowywać się między nimi. Rozwiązanie skróciło ten czas – paczki wychodzą szybciej, bo wszystko zachodzi automatycznie. Mamy zunifikowany proces podpisywania paczek podpisami kwalifikowanymi, więc to bardzo uprościło pracę i pozwala nam alokować te zasoby gdzie indziej.

Przede wszystkim, ważna jest w tym wypadku skalowalność. Mamy przed sobą sporo wielkich imprez. Mieliśmy już w listopadzie finał Ligi Mistrzów. Teraz będziemy mieli EURO, które jest bardzo aktywnym okresem w działalności każdego bukmachera, a u nas szczególnie. Skalowanie automatyczne w Google Cloud działa po prostu na naszą korzyść.

W nawiązaniu dokosztów API – mamy to teraz pod większą kontrolą, gdyż w Google możemy automatycznie logi ze Stack drivera filtrować i wrzucać je do BigQuery, gdzie następnie możemy to analizować. BigQuery to jest nasz główny data warehouse w STSie, więc to wszystko spięło się w jedną logiczną całość. Bardzo nam to pomaga.

Osoba odpowiedzialna za płatności jest w stanie wejść do BigQuery, zobaczyć, ile zapytań API generujemy, jak blisko limitu jesteśmy, gdzie są ograniczone oraz czy wymagają jakiejś płatności. To bardzo mocno pomaga.

Michał, Solwit: Czyli to, że Payments API jest w Google, spowodowało, że funkcjonalność, o której wcześniej nikt nawet nie pomyślał, jest dostępna praktycznie z pudełka dzięki BigQuery.

Wojciech, STS: Dokładnie tak i to było zaskakujące, gdyż konfiguracja zajęła jakieś 30 minut, gdzie ręcznie parsowanie logów, ładowanie do bazy i odpytywanie zajęłoby, parę godzin developmentu. Integracja i wszystkie elementy Google, które współpracują ze sobą bardzo nam pomogły.

Michał, Solwit: To tylko pokazuje, że używanie technologii chmurowej, w szczególności Google Cloud, powoduje, że dostajesz więcej, nawet czasem o tym nie wiedząc. Także to jest super. Super case!

Wojciech, STS: Dokładnie.

Michał, Solwit: Dziękujemy za uwagę. Mam nadzieję, że ta prezentacja zainspiruje kogoś do wykorzystywania usług Google’owych do realizacji własnych celów biznesowych. Jeśli są jakieś pytania czy komentarze to zapraszamy do kontaktu. Dziękujemy. Dziękuję, Wojtku za wystąpienie i do zobaczenia.

Wojciech, STS: Dzięki!

Chcesz przyspieszyć swój biznes z wykorzystaniem chmury tak jak STS? Napisz do nas!

SKONTAKTUJ SIĘ
Wypełnij
formularz.
Skontaktujemy się z Tobą,
żeby umówić rozmowę
w dogodnym dla Ciebie terminie.