Doradztwo technologiczne i strategia

Audyt obecnych rozwiązań

Audyt zamienia niejasne przeczucie, że coś jest nie tak, w listę uporządkowaną według wagi: co jest realnym ryzykiem, co tylko bałaganem, a co pęknie najszybciej przy wzroście.

Po co naprawdę robi się audyt

Mało która firma zamawia audyt dlatego, że wszystko działa świetnie. Zamawia go, bo coś stało się zauważalne: wdrożenia, które kiedyś zajmowały godzinę, dziś trwają dzień; rachunek rosnący szybciej niż użycie; awaria, której nikt nie potrafił wyjaśnić; albo kończąca się współpraca z dostawcą i brak jasnego obrazu tego, co właściwie jest przekazywane.

Celem jest zamiana wrażeń na pomiary. Nie ogólna opinia, że system jest przestarzały, tylko lista: to zapytanie trwa jedenaście sekund pod obciążeniem, ta zależność ma opublikowaną podatność, czas tego zadania rośnie liniowo wraz z tabelą zamówień, tej kopii zapasowej nigdy nie odtworzono. Z ustaleniami w takiej formie da się pracować, można je wycenić i zaplanować. Z ogólnymi opiniami nie.

Przegląd statyczny pokazuje to, co widać bez ruchu

Pierwsze podejście to czytanie. Układ repozytoriów, wersje zależności, definicje infrastruktury, proces wdrożeniowy, konfiguracja we wszystkich środowiskach.

Wychodzi z tego określona klasa problemów: pakiety zapóźnione o lata, z opublikowanymi podatnościami; dane uwierzytelniające zapisane tam, gdzie nie powinny się znaleźć; konfiguracja stagingu i produkcji, która po cichu się rozjechała, przez co testowanie na stagingu dowodzi mniej, niż wszyscy zakładają; oraz ręczne kroki we wdrożeniu, które potrafi wykonać tylko jedna osoba. Żadne z tego nie wymaga obciążenia, żeby je znaleźć. Wszystko potrafi zaboleć w najgorszym momencie.

Pomiar w działaniu koryguje założenia

Z lektury kodu dowiadujesz się, co powinno być wolne. Z pomiaru – co jest.

Te dwie rzeczy rozjeżdżają się w większości przypadków. Zespoły optymalizują funkcję napisaną ostatnio i przeoczają wywołanie ORM, które po cichu wykonuje się raz na każdy wiersz. Patrzymy na plany zapytań, ślady żądań, poziom błędów i zużycie zasobów przy realnym ruchu, a tam gdzie obraz jest niepełny, sami generujemy obciążenie, żeby znaleźć sufit świadomie, zamiast czekać, aż odkryje go premiera.

Efektem jest liczba zamiast przymiotnika. „System obsłuży mniej więcej taką współbieżność, zanim czasy odpowiedzi przekroczą Twój próg, a ogranicza go pula połączeń do bazy” to coś, na czym da się oprzeć plan. „Może się nie skalować” nie jest.

Najpoważniejsze ustalenia leżą w scenariuszach awarii

Najczęstszym poważnym ustaleniem w audycie nie jest wydajność. Jest nim nieprzetestowana ścieżka odtwarzania.

Kopie zapasowe, które wykonują się poprawnie, ale nigdy nie zostały odtworzone. Failover skonfigurowany dwa lata temu, który dziś by nie zadziałał, bo instancja zapasowa ma inną wersję. Procedura wycofania wdrożenia opisana w dokumencie, lecz nigdy nieprzećwiczona, więc pierwsza próba wypada w trakcie awarii. Zewnętrzna usługa bez ustawionego timeoutu, przez co jej zawieszenie zawiesza także Twoją aplikację.

Przechodzimy przez to celowo, bo sprawdzenie jest tanie, a odkrywanie tego na żywo bardzo drogie.

Warto nazwać jeszcze jedną, pokrewną kategorię: rzeczy, o których wie tylko jedna osoba. Krok wdrożeniowy istniejący w czyjejś historii poleceń. Komponent, którego nikt inny nigdy nie modyfikował. Konto u dostawcy założone na prywatny adres jednego pracownika. To nie są usterki techniczne i nie pojawią się na żadnym wykresie w monitoringu, ale zachowują się dokładnie jak pojedyncze punkty awarii. Odchodzą razem z tą osobą.

Co robisz z raportem

Raport jest uporządkowany według stosunku wpływu do nakładu pracy i celowo rozdziela trzy kategorie: co jest groźne, co jest kosztowne i co po prostu utrudnia codzienną pracę.

Ten podział ma znaczenie, bo trzecia kategoria to dokładnie to, co zespoły chcą naprawiać najpierw. Porządkowanie kodu daje satysfakcję i widać jego efekt. Zwykle jest też najmniej pilną pozycją na liście. Audyt jest najbardziej użyteczny wtedy, gdy daje przyzwolenie, żeby zostawić brzydki kod w spokoju i poświęcić ten sam tydzień na upewnienie się, że potrafisz odtworzyć bazę danych.

Część ustaleń będzie tym, co Twój zespół zgłaszał już wcześniej. To w porządku i często o to właśnie chodzi. Zewnętrzny pomiar bywa tym, co sprawia, że wewnętrznie znany problem zostaje potraktowany poważnie i doczekuje się budżetu.

Co dostajesz

Lista ustaleń uporządkowana według wagi

Każde ustalenie ocenione pod kątem wpływu i nakładu pracy, dzięki czemu raport kończy się kolejnością działań, a nie setką równie pilnych punktów. Różnicę między „to wywoła awarię” a „to jest po prostu brzydkie” zaznaczamy wprost.

Analiza wydajności i wąskich gardeł

Gdzie naprawdę ucieka czas odpowiedzi: wolne zapytania, brakujące indeksy, wzorce N+1, synchroniczne wywołania do zewnętrznych usług, zimne starty. Mierzone na realnym ruchu, a nie zakładane z lektury kodu.

Granice skalowalności z konkretnymi liczbami

Moment, w którym obecna konfiguracja przestaje sobie radzić: wyczerpanie puli połączeń, pojedyncza instancja, której nie da się zduplikować, nocne zadanie rosnące wraz z ilością danych. Nazywamy sufit zamiast pisać, że coś „może się nie skalować”.

Ocena bezpieczeństwa i stabilności

Wersje zależności i znane podatności, sposób przechowywania sekretów, kontrola dostępu, wystawione endpointy oraz to, czy kopie zapasowe da się faktycznie odtworzyć. To ostatnie sprawdzamy, a nie zakładamy.

Przegląd kosztów

Przewymiarowane instancje, dane, których nikt nie czyta, dublujące się licencje SaaS i wzorce ruchu, za które płacisz według najdroższej stawki. Zwykle najszybsza do wykorzystania część raportu.

Plan naprawczy

Ustalenia przełożone na sekwencję konkretnych zmian, każda z orientacyjnym nakładem pracy i informacją, czy da się ją wprowadzić przyrostowo, czy wymaga zaplanowanego okna serwisowego.

Jak pracujemy

  1. 01

    Dostępy i rozmowy

    Dostęp do kodu, infrastruktury i monitoringu w trybie tylko do odczytu oraz rozmowy z osobami, które to utrzymują. Zespół zwykle wie, gdzie leży pies pogrzebany; zadaniem audytu jest to potwierdzić i uporządkować.

  2. 02

    Przegląd statyczny

    Struktura repozytoriów, drzewo zależności, definicje infrastruktury, proces wdrożeniowy, pokrycie testami i konfiguracja. Tu wychodzą ryzyka widoczne bez ruchu: przestarzałe pakiety, sekrety w niewłaściwym miejscu, środowiska, które się rozjechały.

  3. 03

    Przegląd w działaniu

    Metryki, logi, poziom błędów i plany zapytań przy realnym obciążeniu. To tu najczęściej korygujemy założenia o wydajności, bo najwolniejszy element rzadko jest tym, który wszyscy podejrzewają.

  4. 04

    Sprawdzanie scenariuszy awarii

    Przechodzimy przez to, co się dzieje, gdy konkretne elementy zawodzą: odtworzenie z kopii zapasowej, timeout u dostawcy, zapchana kolejka, wdrożenie, które trzeba wycofać. Nieprzetestowana procedura odtwarzania to najczęstsze poważne ustalenie.

  5. 05

    Raport i omówienie

    Dostajesz spisane ustalenia i spotkanie, na którym przechodzimy przez nie z Twoim zespołem, żeby przekazać sposób rozumowania, a nie tylko dokument. Sprzeciw na takim spotkaniu jest mile widziany i często poprawia priorytety.

Narzędzia i technologie

Tam, gdzie istnieje dobre narzędzie open source, wybieramy je zamiast zamkniętego. Bez uzależnienia od jednego dostawcy i z kosztami, które da się przewidzieć.

  • Grafana
  • Prometheus
  • OpenTelemetry
  • k6
  • Lighthouse
  • OWASP ZAP
  • Trivy
  • PostgreSQL
  • Docker
  • OpenTofu
  • Terraform
  • Sentry

Najczęściej zadawane pytania

Pozostałe usługi w tej kategorii

Przeczytaj opinie firm, które nam zaufały

Zawsze są kilka kroków do przodu.

Mikołaj

CEO & Founder, GBS®

Zobacz na Clutch
GBS® logo

Dostarczone znacznie wcześniej niż termin.

Yasniel

CEO, IMEGA Sp z o.o.

Zobacz na Clutch

Indywidualne podejście ZanReal jest imponujące.

Adam

Executive, w-studio.pl

Zobacz na Clutch

Wiedza i intuicja biznesowa czynią ich wartościowym partnerem.

Magda

Designer, DIGITALUNI

Zobacz na Clutch

Szybkie rozwiązania, które obniżyły koszty o 99%.

Andrei Kapytau

Team Lead, busel.uk

Zobacz na Clutch

+20% dostarczalności dla naszych kampanii e-mail.

Joan Calabria

Sales Director, 36NORTH

Zobacz na Clutch
36NORTH logo

Wiesz, co w Twoim systemie pęknie jako pierwsze?

Napisz do nas

Opisz, co spowolniło, podrożało albo stało się trudne do wyjaśnienia, a zaproponujemy zakres audytu i to, od czego warto zacząć.

Zanek

Nie nadążasz za zmianami w świecie AI?

Pozwól, że weźmiemy to na siebie. Co tydzień destylujemy najważniejsze wydarzenia ze świata AI w skupiony, 5-minutowy przegląd — żebyś był na bieżąco bez szumu.

Dowiedz się więcej
Tygodnik AIonline
Wyselekcjonowane wiadomości AI do porannej kawy. Co tydzień.
Wyślij mi swój email, żeby się zapisać.