W epoce infrastruktur chmurowych, mikrousług czy wysublimowanych wzorców projektowych architekt oprogramowania musi sobie radzić z nieprzystępnym zadaniem, jakim jest dobór odpowiednich rozwiązań. Będą one potem szczegółowo testowane w trakcie pracy w środowisku produkcyjnym i przy późniejszym dostosowywaniu i rozbudowywaniu oprogramowania. Tymczasem w wypadku architektury złożonych systemów nie ma przystępnych kompromisów. Niezbędne jest wyjątkowo wnikliwe i krytyczne przemyślenie każdej decyzji projektowej, i to na realnie najwcześniejszym etapie pracy.
Ta książka powinna zostać przestudiowana przez każdego architekta nowoczesnych systemów rozproszonych. Jej celem jest pokazanie sposobów rozwiązywania skomplikowanych problemów związanych z projektowaniem takiego oprogramowania. W krytyczny i wszechstronny sposób omówiono w niej najważniejsze problemy utrudniające podejmowanie prawidłowych decyzji projektowych. Zaprezentowano najskuteczniejsze strategie doboru optymalnej architektury. Na jasnych przykładach pokazano, w jaki sposób należy przystąpić do analizy założeń projektowych ― począwszy od określenia "ziarnistości" usług, przepływów danych i orkiestracji, poprzez eliminację sprzężenia kontraktów i określenie nadzoru nad transakcjami rozproszonymi, a skończywszy na metodach optymalizowania właściwości operacyjnych, takich jak skalowalność, elastyczność i produktywność.
Najciekawsze zagadnienia:
- analiza kompromisów i dokumentowanie decyzji
- podejmowanie decyzji dotyczących "ziarnistości" usług
- złożoność cyklu przekształcania aplikacji monolitycznych
- eliminacja sprzężeń kontraktów wiążących usługi
- obsługa informacji w architekturze o sporym stopniu rozproszenia
- wzorce zarządzania przepływami danych i transakcjami
Architekt musi być prorokiem...
Frank Lloyd Wright