Tam, gdzie błąd nie jest opcją, a skala zmienia wszystko
Są systemy, które mogą działać „wystarczająco dobrze”. I są takie, które muszą działać zawsze. Bez przerw, bez zgadywania, bez miejsca na improwizację. Systemy krytyczne i rozwiązania o dużej skali to obszar, w którym technologia przestaje być tylko narzędziem, a zaczyna być fundamentem działalności firmy.
W Rokulian ten obszar obsługują ludzie, którzy na co dzień pracują z systemami, gdzie:
- przestój oznacza realne straty,
- błąd propaguje się natychmiast,
- skala wyklucza prowizoryczne rozwiązania.
Skala zmienia sposób projektowania
System, który obsługuje kilkuset użytkowników, projektuje się zupełnie inaczej niż system:
- pracujący w trybie 24/7,
- obsługujący ogromne wolumeny danych,
- reagujący w czasie rzeczywistym,
- działający równolegle w wielu lokalizacjach.
Przy dużej skali:
- pojedynczy błąd nie znika, tylko się powiela,
- wąskie gardła ujawniają się bardzo szybko,
- „tymczasowe” rozwiązania stają się stałym problemem.
Dlatego projektowanie takich systemów zaczyna się od architektury, a nie od kodu.
Systemy wysokiej dostępności i wydajności
Zespół Rokulian projektuje i rozwija systemy:
- o wysokiej dostępności (High Availability),
- o wysokiej wydajności (High Performance),
- odporne na awarie poszczególnych komponentów,
- zdolne do pracy pod dużym obciążeniem.
Nie chodzi wyłącznie o to, żeby system „działał”. Chodzi o to, żeby:
- był odporny na błędy,
- skalował się wraz z obciążeniem,
- dało się go rozwijać bez zatrzymywania całości.
Systemy czasu rzeczywistego
W systemach real-time opóźnienie przestaje być szczegółem technicznym, a staje się problemem biznesowym. Takie rozwiązania:
- reagują na zdarzenia natychmiast,
- przetwarzają dane w locie,
- nie mogą „nadrobić później”.
Projektowanie systemów czasu rzeczywistego wymaga:
- innego podejścia do architektury,
- bardzo dobrej znajomości zależności,
- świadomości konsekwencji każdej decyzji.
To obszar, w którym doświadczenie ma kluczowe znaczenie.
Duże bazy danych i przepływy informacji
Systemy o dużej skali niemal zawsze operują na:
- ogromnych zbiorach danych,
- wielu źródłach informacji,
- złożonych procesach przetwarzania.
Rokulian ma doświadczenie w:
- pracy z dużymi bazami danych,
- projektowaniu hurtowni danych,
- budowie procesów ETL,
- optymalizacji przepływu informacji.
W takich projektach ważne jest nie tylko „ile danych”, ale:
- jak są przetwarzane,
- gdzie powstają opóźnienia,
- które elementy są krytyczne dla całości.
Doświadczenie z projektów o bardzo dużym zasięgu
Zespół programistyczny Rokulian pracował przy systemach obsługujących:
- dziesiątki milionów użytkowników,
- bardzo duże obciążenia,
- złożone środowiska rozproszone.
To doświadczenie przekłada się na:
- spokojne podejście do skali,
- umiejętność przewidywania problemów,
- projektowanie systemów „na zapas”, ale bez przesady.
Nie uczymy się dużej skali w trakcie projektu. My ją znamy.
Bezpieczne decyzje zamiast ryzykownych skrótów
W systemach krytycznych:
- skróty bardzo szybko wychodzą na jaw,
- oszczędności na etapie projektowania wracają jako koszt utrzymania,
- brak dokumentacji staje się barierą rozwoju.
Dlatego w Rokulian:
- decyzje są przemyślane,
- ryzyka nazywane po imieniu,
- architektura jest świadomie projektowana.
Czasem oznacza to dłuższy start. Zawsze oznacza to większą stabilność w długiej perspektywie.
Systemy krytyczne w duchu Rokulian
Mimo skali i odpowiedzialności ten obszar nadal działa według tych samych zasad:
- bez obiecywania niemożliwego,
- bez technologii dla samej technologii,
- z pełną świadomością konsekwencji.
Systemy krytyczne i rozwiązania o dużej skali mają:
- wspierać biznes,
- działać przewidywalnie,
- być gotowe na rozwój i zmiany.
