Nová funkcia znamená zásah na piatich miestach.
Software architektúra
Architektúra systémov, ktoré majú ďalej rásť
Navrhujem hranice systému, aby bol ďalší vývoj zrozumiteľný, overiteľný a primeraný reálnym potrebám.
Prebrať architektúru →Keď systém prerastá pôvodný návrh
Zložitosť nemusí rásť rýchlejšie než produkt
Architektúra nie je diagram pre dokumentáciu. Je to dohoda o zodpovednostiach, dátach a integračných hraniciach, ktorá pomáha robiť ďalšie rozhodnutia.
Poznáte to?
Nová funkcia znamená zásah na piatich miestach.
Jednoduchá zmena trvá dlhšie, než by mala.
Nie je jasné, kde začať bez veľkého rizika.
Architektúra začne byť problémom často až vtedy, keď začne brzdiť zmenu.
Čo sa s tým dá robiť
Prvý krok môže byť malý a konkrétny
Najskôr chcem pochopiť, čo vás dnes brzdí. Potom môžeme zmerať, oddeliť alebo overiť najrizikovejšiu časť bez toho, aby sa naraz menilo všetko.
Dnes
Zmena je neistota
- Riziko pri zásahu
- Previazané časti
- Čakanie alebo manuálna práca
Po postupnej zmene
Lepší priestor na rozvoj
- Jasnejšie hranice
- Bezpečnejší ďalší krok
- Viditeľnejší stav procesu
Čo môže zahŕňať návrh
Rozsah vychádza z konkrétneho systému, nie z univerzálneho vzoru.
Návrh nového systému
Moduly, API vrstvy, dáta a spôsob komunikácie medzi časťami.
Analýza existujúcej architektúry
Závislosti, technologický dlh a oblasti, kde sa zmena šíri príliš ďaleko.
Príprava na rast
Modularizácia, databázový návrh, realtime komponenty a externé služby.
Typické scenáre
- Nový produkt pred implementáciou
- Monolit pripravený na ďalší vývoj
- Nejasné hranice medzi modulmi
- Viac systémov, ktoré musia spolupracovať
Technický pohľad
Dobré hranice umožnia rozvíjať časti systému bez toho, aby každá úprava zasiahla všetko ostatné.
Browser ↓ Application ├── API ├── Database ├── Realtime ├── Background jobs └── External services
Spôsob spolupráce
Rozhodnutia zaznamenané tak, aby obstáli v praxi
-
Kontext Ciele, dáta, tím a prevádzka.
-
Varianty Porovnanie kompromisov bez zbytočnej teórie.
-
Roadmap Postupné kroky, ktoré sa dajú doručovať.
Rozhodnutie podľa kontextu
Mikroservisy nie sú cieľ
Modulárny monolit – jedna aplikácia s jasnými vnútornými hranicami – často prináša lepšiu zrozumiteľnosť bez siete, samostatného nasadzovania a distribuovaných chýb. Služby majú význam až vtedy, keď vlastné tempo zmien, škálovanie alebo izolácia zlyhaní prevažujú ich prevádzkovú cenu. Event-driven znamená, že zmena sa šíri ako udalosť; vyžaduje však jasné kontrakty a sledovanie stavu.
Relevantné oblasti
Modelový príklad
Rastúci monolit pripravený na ďalší vývoj
Cieľom nie je rozdeliť všetko naraz, ale nájsť časti, ktoré potrebujú vlastnú zodpovednosť ako prvé.
Growing monolith
↓
Architecture review
↓
Clear module boundaries
↓
Independent APIs and jobs
↓
Controlled further development
Potrebujete ujasniť ďalší technický smer?
Začnime systémom, rozhodnutím alebo rizikom, ktoré dnes najviac brzdí vývoj.
Pozrime sa, kde systém začína brzdiť zmenu.
Nemusíte mať hotové zadanie ani presne vedieť, akú technológiu potrebujete. Stačí problém, ktorý dnes stojí čas, peniaze alebo zbytočnú manuálnu prácu.
Prejsť problém spolu →