Niewspierane wersje
Ruby, Rails lub kluczowe zależności nie otrzymują poprawek, a każda próba upgrade'u odkrywa kolejny bloker.
Legacy Rails - modernizacja etapami
Aktualizuj i upraszczaj aplikację Rails bez zatrzymywania rozwoju produktu i bez ryzykownego big-bang rewrite.
Modernizacja ma obniżać koszt i ryzyko przyszłych zmian. Numery wersji są ważne, ale ważniejsze są pewne wdrożenia, szybki feedback i odpowiedzialność.
Porozmawiajmy o Twojej aplikacjiRuby, Rails lub kluczowe zależności nie otrzymują poprawek, a każda próba upgrade'u odkrywa kolejny bloker.
Testy i CI podnoszą koszt małych zmian, więc zespół łączy je w ryzykowne wydania.
Zapytania, joby, pamięć i cache przestają nadążać za użyciem.
Logika biznesowa jest rozrzucona między callbacki, kontrolery, joby i integracje.
Graf zależności i kolejność zmian Ruby, Rails, gemów, infrastruktury i aplikacji.
Krótszy feedback testów i CI, bezpieczniejsze release'y i mniej ręcznych kroków.
Baseline i poprawa requestów, zapytań, kolejek, pamięci i błędów.
Jawne pojęcia biznesowe bez przedwczesnego dzielenia monolitu.
Hotwire, Turbo i progressive enhancement tam, gdzie redukują złożoność.
Bezpieczeństwo, zależności, obserwowalność i rollback jako część zwykłego delivery.
Zapisuję wersje, zależności, testy, metryki produkcyjne, tempo wdrożeń i koszt obecnych ograniczeń.
Dzielę prerequisites, quick wins, upgrade'y i architekturę na odwracalne etapy.
Przechodzę po jednej granicy kompatybilności z testami, flagami lub dual-runningiem.
Usuwam stare narzędzia dopiero po potwierdzeniu stabilności nowej ścieżki.
Porównuję lead time, awarie, latencję, kolejki i feedback deweloperski przed i po.
Tak, ale zwykle przez pośrednie kroki kompatybilności zależne od Ruby, gemów i zachowania produkcji.
Nie. Dobrze zbudowany modularny monolit jest często łatwiejszy w zmianie i utrzymaniu.
Tak. Najpierw profiluję suite, potem poprawiam bazę, factories, zewnętrzne wywołania, izolację i równoległość.
Czasami. Oceniam wymagania interakcji i migruję właściwe ścieżki etapowo.
Characterization tests, baseline produkcyjny, etapowe defaulty, obserwowalność i małe release'y.
To, co najmocniej redukuje obecne ryzyko biznesowe lub odblokowuje delivery.