O kliencie
Prezentmarzeń to jeden z pierwszych projektów spółki Emotivo, od ponad dekady zmieniającej obraz branży czasu wolnego w Polsce. Serwis PrezentMarzen.com powstał w 2009 roku, a w swojej ofercie ma ponad 3500 atrakcji zlokalizowanych na terenie całego kraju. Skorzystało z nich już ponad 200 000 osób.
Wyzwanie
Wraz z rozwojem sieci retail „Prezentmarzeń” pojawiła się konieczność wdrożenia systemu rozliczeń pracowniczych. Jest to katalog zasad i warunków, a jednocześnie składowa szerszego programu wynagrodzeń. Pierwotnie postawiono na rozwiązanie, które wydawało się najprostsze, a jednocześnie posiadało niski próg wejścia. W tym celu posłużono się arkuszami Google Sheets. Pozwoliły one zbudować logikę pliku w oparciu o formuły, ale przede wszystkim zapewniały możliwość wdrożenia własnym sumptem.
Punktów w sieci przybywało, a plik zaczął puchnąć, osiągając krytyczne rozmiary, co wymusił archiwizowanie części danych. Było to jednak rozwiązanie doraźne wpływające na spadek wydajności. Okresy rozliczeniowe katalogowane w pliku skracały się, bo konieczne było coraz częstsze archiwizowanie danych. To znacznie utrudniało pracę, a docelowo groziło paraliżem systemu rozliczeń pracowniczych.
Świadomość faktu, że większe firmy muszą radzić sobie z podobnym problemem, sprawiła, że zaczęliśmy szukać firmy, która pracuje w obrębie środowiska i narzędzi Google i będzie w stanie zaproponować nam optymalne rozwiązanie. Tak trafiliśmy na FOTC
Rozwiązanie
Problem, przed którym stanął Prezentmarzeń polegał na ograniczeniach Google Sheet. Tworzona w nim infrastruktura rozrosła się z czasem i pojawiła się konieczność zmigrowania jej na stabilne środowisko Google Cloud. Jak się okazało, arkusze nie były w stanie obsłużyć więcej rekordów co zmusiło klienta do archiwizacji starszych wierszy, poprzez zmianę komórek z formułami na wartości stałe.
Pierwszym zadaniem przed jakim stanął dział techniczny FOTC było zaprojektowanie relacyjnego schematu baz danych. W tym momencie otrzymaliśmy również dostęp do arkuszy z danymi.
O tym, że do rozwiązania problemu wybrana została usługa BigQuery zadecydowała chęć klienta do bezkosztowego przeprowadzenia działań. Przy poziomie zużycia generowanym przez klienta możliwe było skorzystanie z Free Tier, co sprawiało, że koszt tej usługi okazał się zerowy.
Podczas przepisywania formuł do BigQuery, która jest hurtownią danych, natrafiliśmy na problem związany z limitem BigQuery dotyczącym zagnieżdżeń w widokach. Wynikało to z faktu, że przy dość rozbudowanym schemacie, wiele wartości było zależnych od siebie nawzajem. Po przekazaniu tej informacji klientowi, zaproponowaliśmy alternatywne rozwiązanie w postaci usługi Cloud SQL. Wspólnie z klientem, który zgodził się na tę propozycję, ustaliliśmy, że zostanie wykorzystana baza MySQL.
Na tym etapie konieczne było zmodyfikowanie formuł, co wynikało z różnic w składni między GoogleSQL a MySQL. Działaniom tym towarzyszyły równoległe zmiany wprowadzane przez klienta do samego schematu, które wpłynęły na wydłużenie procesu. Jego zwieńczeniem było przeprowadzenie wstępnej migracji. Pozwoliła ona zweryfikować poprawność procesu przenoszenia i czyszczenia danych oraz formuł. Wykorzystując skrawek danych sprawdziliśmy również poprawność w komunikacji frontendu z bazą danych.
Po upewnieniu się, że migracja wstępna przebiegła pomyślnie, przeszliśmy do finalnej migracji wszystkich potrzebnych danych. Tak przygotowany proces zakończył się bez problemów.
Rezultaty
Po przeniesieniu formuł z plików Google Sheets do MySQL, opierając się na usłudze Cloud SQL w środowisku Google i z pomocą aplikacji frontowej dostarczonej przez Emotivo, możliwe stało się sprawne korzystanie z logik zaszytych w bazie danych. Rozwiązany został problem dotyczący ryzyka utracenia możliwości płynnego wykonywania rozliczeń, natomiast infrastruktura zaproponowana przez FOTC zostawiła możliwość elastycznej zmiany i przejścia na mocniejszą maszynę, w sytuacji, w której dalszy wzrost doprowadziłby do spadku wydajności rozwiązania. Stanowi to zabezpieczenie na przyszłość.
Sytuacja, w której konieczne było dokonanie korekty kursu działania, wdrożenie innego, niż pierwotnie zakładano rozwiązania, możliwa była dzięki elastycznej współpracy pomiędzy klientem a FOTC.
Dzięki doświadczeniu jednego z managerów firmy FOTC zostały podjęte działania mające na celu zmianę wariantu rozwiązania, czego wynikiem było znalezienie wspólnego języka i formy dokończenia prac. Od tego momentu praca przebiegała wzorowo, co też daje nam argumenty do kontynuowania współpracy. Tutaj mimo zagrożeń również nie zostaliśmy pozostawieni sami sobie, natomiast firma FOTC szukała kompromisu tak, aby dokończyć projekt i doprowadzić do zadowolenia po jednej jak i drugiej stronie.