Better Regulation

wyjątkowo złożony projekt na Drupalu

i

Serwis Better Regulation to system stworzony do katalogowania i wyszukiwania dokumentów formalno-prawnych oraz powiadamiania o zmianach wprowadzonych w tych dokumentach. Jest używany przez duże firmy i organizacje w UK i Irlandii.

better-regulation
better-regulation

Cel i wyzwania

Założeniem projektu było zbudowanie systemu pozwalającego na łatwe przeglądanie i zarządzanie tysiącami dokumentów oraz wyszukiwanie i natychmiastową wysyłkę wielu maili powiadamiających klientów o zmianach w obserwowanych przez nich dokumentach lub zakresie dokumentów.

Podczas pracy napotkaliśmy kilka znaczących wyzwań, którym musieliśmy stawić czoła. Są to:

Migracja

Klient chciał jak najszybciej przejść ze starego systemu na nowy. Z naszej strony wiązało się to z migracją ogromnej ilości danych jednocześnie.

Cały development został tak zorganizowany, aby nie kolidował z jednoczesnym redagowaniem strony. Zaraz po migracji oraz stworzeniu podstawowej funkcjonalności administracyjnej klient sprawnie przeniósł się na nowy system, podczas gdy development nadal trwał. Tworzyliśmy i wdrażaliśmy nowe funkcjonalności prawie codziennie, w taki sposób, aby nie narazić na przestój całego zespołu edytorów pracujących w systemie.

227 000
Liczba migrowanych wpisów
70
Liczba tabel
22 GB
Rozmiar bazy
12 h
Czas trwania migracji
Nowe iteracje

Chcąc dostarczyć użytkownikom jak najlepsze doświadczenie korzystania z serwisu, zespół Better Regulation nieustająco dokonywał iteracji, zmieniał i zwiększał wymagania. Naszym zadaniem było pozostać elastycznym wobec oczekiwań klienta oraz szybkie dostosowanie się do jego nowych potrzeb i priorytetów.

Rozbudowa Drupala

Wymagania klienta znacznie wykraczały poza to, co oferuje rdzeń Drupala i dostępne moduły. Poradziliśmy sobie z wyzwaniem poprzez rozszerzenie funkcjonalności i potencjału Drupala w bardzo wysokim stopniu. Dodatkowo podzieliliśmy duże funkcjonalności na mikrosystemy.

Infrastruktura

Duże zasoby danych wymagają niestandardowych rozwiązań serwerowych. Aby korzystanie z serwisu było przyjemne i bezawaryjne, musieliśmy opracować skalowalne środowisko produkcyjne i testowe. Wykorzystaliśmy do tego celu infrastrukturę AWS.

Kilka funkcjonalności

Wyszukiwanie
Wyjątkowo złożone wyszukiwanie, uwzględniające operatory logiczne i znaki specjalne. Użytkownik może zapisywać parametry wyszukiwania.
Powiadomienia
Rozbudowane powiadomienia mailowe: nowe wyniki w zapisanych przez użytkownika wyszukiwaniach, zmiany w dokumentach dodanych do ulubionych, przeglądy bazujące na preferencjach użytkownika. Maile wysyłane o konkretnej godzinie dnia.
Drukowanie
Dostosowane do potrzeb funkcjonalności drukowania, włącznie z drukowaniem do różnych formatów (html, email, pdf, doc) i możliwością drukowania wybranych części dokumentów.
Uprawnienia
Bardzo rozbudowane uprawnienia użytkowników, zależne od wybranych modułów i krajów.
Masowa edycja dokumentów - Views Bulk Operation
Umożliwia edycję wielu dokumentów jednocześnie. Przy dużej liczbie danych znacznie ułatwia pracę redaktorów.
500 000
Liczba wpisów
218
Ilość pól
25
Ilość typów zawartości
Eksportowanie wyników
Eksportowanie wyników wyszukiwania do pliku Excel i Word.
Crawler
Bot skanujący dokumenty w poszukiwaniu błędnych linków i tym podobnych.
Narzędzie marketingowe
W celu promocji serwisu umożliwienie ładowania dokumentów z ograniczonymi zasobami dla niezalogowanych.

Technologie

Docker

pozwala nam nie tylko na elastyczną zmianę wersji lub wymianę dowolnej technologii użytej na stronie, ale daje również możliwość przetestowania architektury lokalnie (na komputerze developera).

Projekt liczy ponad 25 kontenerów wykorzystywanych do m.in.: generowania i kolejkowania wysyłki bardzo dużej liczby e-maili, poszukiwanie błędnych linków i plików w treści podstron, regenerowania danych na potrzeby tworzenia plików HTML, PDF i DOC.

Solr

wyszukiwanie treści to jedna z ważniejszych funkcjonalności w serwisie. Solr pozwala nam dynamicznie dostosowywać wyszukiwarkę do wymagań klienta.

Node.js

powiadamianie użytkowników o nowych wpisach w czasie rzeczywistym z wykorzystaniem WebSocketów.

RabbitMQ

infrastruktura pozwalająca na wysyłkę bardzo dużej ilości wiadomości z powiadomieniami i newsletterami.

Codeception i Selenium do testów

testy automatyczne są niezbędne przy tak dużym projekcie. Przed każdym wdrożeniem jesteśmy w stanie sprawdzić, czy nasze zmiany nie wprowadziły nowych błędów na stronę.

New Relic i Blackfire

monitorują wydajność aplikacji, co pozwala nam na bardzo szybkie znalezienie problemów z wydajnością i natychmiastową reakcję.

Zabbix

monitoruje parametry naszych serwerów, takie jak ilość wolnego miejsca, czy użycie CPU/RAM.

Proces developmentu

W celu zapewnienia szybkości, zwinności oraz reagowania na zmiany użyliśmy ciągłego podejścia do procesu developmentu wspieranego przez Gita, Jenkinsa i Fabrica. Każda funkcjonalność i zmiana była tworzona na samodzielnym branchu, osobno testowana i weryfikowana przez zespół QA na dedykowanej kopii środowiska produkcyjnego. Porcje zmian były automatycznie zbierane i prezentowane klientowi do testów. Po zatwierdzeniu zmiany były wdrażane na produkcję. Ten proces mógł być często powtarzany. Czasem od początkowego pomysłu do wdrożenia na produkcję mijało zaledwie kilka godzin, bez ponoszenia znacznego ryzyka.

Zostały użyte testy automatyczne, żeby zapewnić brak regresji w kodzie.

Wdrożenie i support

Kiedy serwis został udostępniony użytkownikom, byliśmy obecni na każdym kroku, aby zapewnić, że wszystko pójdzie gładko. Kilka pierwszych dni jest zawsze kluczowe, by upewnić się, że nie ma żadnych ukrytych błędów lub innych problemów.

Support jest prowadzony w tygodniowym sprincie. Po opublikowaniu nowych funkcjonalności na środowisku testowym i zatwierdzeniu przez klienta zmiany są wdrażane raz w tygodniu w godzinach wieczornych.

Podsumowanie

Dzięki opisanemu wyżej procesowi jesteśmy od 2015 roku w stanie szybko reagować na nowe fale wymagań i zmian wynikających z obserwacji zachowań użytkowników serwisu.

3 developerów i tester
Zespół
14 000 h
Suma godzin od początku projektu
350 h
Średni czas pracy w miesiącu

Opinia klienta

I could not rate Droptica highly enough. They have genuinely helped our dream service become a reality.

Zobacz online

Porozmawiajmy o Twoich projektach

Napisz do nas