6.12.20213 min

Elżbieta KowalczykChapter Lead, Digital Architecture

Co to jest architektura spaghetti?

Uwaga: Jak jesteś głodny/głodna, to uważaj, jak to czytasz ?

Co to jest architektura spaghetti?

W pierwszym skojarzeniu makaron i architektura mogą nie mieć ze sobą nic wspólnego. Jak spojrzymy bliżej, to włoskie dania są doskonałą metaforą, która wyjaśnia ewolucję architektury korporacyjnej. Istnieje ponad 300 odmian makaronów, a tak naprawdę jest ich tyle, ile wymyślą kucharze/kucharki. Ich nazwy najczęściej wywodzą się od wyglądu makaronu. Spaghetti to sznureczki, lasagne to garnek a ravioli to haczyki.



1990 - Architektura zorientowana na spaghetti (kopiowanie i wklejanie) lat 90.

Wzór spaghetti jest antywzorem, ponieważ nie ma prostej jasnej struktury - nie wiadomo, co jest początkiem, a co końcem i jak to się wszystko zaczęło. Całość jest poplątana, nie widać logiki, przepływu informacji. Elementy te nie są wykorzystywane ponownie i trudno jest dodać do nich kolejne części lub poprawić ich jakość.

Niemniej jednak popularność tego wzoru w przeszłości mogła wyniknąć ze stosunkowo szybkiego i łatwego wdrożenia oraz jest skutkiem kolejnych połączeń systemów lub dodawaniem nowych elementów. Im bardziej ściśle zintegrowane są poszczególne części aplikacji, tym trudniej jest się od siebie wyróżnić. Prowadzi to do powielania rozwiązania i nie wiadomo, czy moduł numer jeden odpowiada za naliczanie odsetek, czy może moduł dwa oraz trzy. Architekt, modernizując taki system, musi „zajrzeć” i zrozumieć logikę poszczególnych elementów, połączyć je ze sobą i uprościć. Jest to syzyfowa praca detektywa. 


2000 Architektura zorientowana na lasagne (warstwowa monolitowa)

Odnosi się to do rozdzielenia między komponentami, takie jak oddzielenie interfejsu użytkownika od logiki biznesowej i oddzielenie logiki biznesowej od bazy danych. Zwiększa to elastyczność i skalowalność oraz zwiększa możliwość ponownego użycia komponentów przez wiele aplikacji. Znana również jako klasyczna trójwarstwowa architektura składająca się z warstwy prezentacji, biznesowej i warstwy danych.

Z punktu widzenia użytkownika od razu można zrozumieć logikę, łatwiej tez narysować diagram oraz kolejny ze szczegółami tego, jak są połączone warstwy (jak odbywa się komunikacja). Warstwowa struktura może być też zbyt przerośnięta i jeżeli wprowadza się zmianę w jednym składniku, to trzeba wszystko przetestować całą platformę, a przecież zmiana miała być w jednej warstwie, np. poprzez dodanie do istniejącej warstwy nowego providera płatności.


2010 Architektura zorientowana na ravioli (mirkoserwisy/mikrouslugi) 

Pojęcie mikroserwisów polega na rozbiciu aplikacji na ich najmniejsze części, niezależne od siebie, czyli jedna wykonuje naliczanie odsetek, druga wykonuje wcześniejszą spłatę kredytu, trzecia zajmuje się wyliczaniem zdolności kredytowej. Zamiast jednego elementu odpowiedzialnego za proces udzielenia kredytu od A do Z, taki system jest rozbity nawet na 70 mikroserwisów. Czy to dobrze, czy to źle - zależy. Mikroserwisy są odrębne, tzn. są małą aplikacją z własną architekturą, logiką biznesową i różnymi adapterami, jednak współpracują ze sobą.

Takie podejście do tworzenia oprogramowania jest "lekkie" i umożliwia współdzielenie podobnych procesów w wielu aplikacjach, np. zgody marketingowe klientów są w jednym mikroserwisie, a pozostałe mikroserwisy mogą z tego korzystać. Przykładem jest system do wysyłania e-maili czy SMS-ów.

W architekturze mikroserwisow kluczowa jest współpraca zespołów - świadomość kto, co, kiedy wdraża oraz potrzebna jest automatyzacja wdrożenia. 


Podsumowanie

Pytanie, co będzie dalej Architektura jak pizza? Hybrydowa? Wybór co stosować, gdzie pozostawić monolitową architekturę, a gdzie wprowadzać mikroserwisy, jest zależny od korzyści - co ta zmiana przyniesie? Gdzie przyśpieszymy? Gdzie zredukujemy koszty? Jakie będzie doświadczenie klienta? Czy będzie zadowolony i wróci po usługę, bo działa szybko i wygodnie?

Przekładając tę opowieść na język restauracyjny, to wybór miejsca, wybór składników, sposobu podania (domowa czy zamówiona pizza) będzie zależeć co potrzebuje dana firma, na kiedy i jak to się łączy z obecnymi już istniejącymi rozwiązaniami oraz kto tym ma zarządzać, czy wybieram model IAAS, SAAS, PAAS i pytanie od kogo? Po jakiej cenie i czasie. 

 

<p>Loading...</p>

Powiązane artykuły

Dziel się wiedzą ze 160 tysiącami naszych czytelników

Zostań autorem Readme

Simple SA

Java Developer (Mid/Senior)

medium

7 000 - 15 000 PLN

Kontrakt B2BUmowa o pracę

Praca zdalna 100%

Ważna do 26.02.2022

Dobrze
JavaSpringSpring Boot

Asseco Poland S.A.

Administrator / Starszy Administrator Systemów IT

medium

Brak widełek

Kontrakt B2BUmowa o pracę

Praca zdalna 100%

Ważna do 26.02.2022

Dobrze
PostgreSQLBash

Nokia

5G Automation Engineer, IODT

medium

Brak widełek

Umowa o pracę

Wrocław

Praca zdalna 100%

Ważna do 13.03.2022

Divante

Senior Vue.js Developer

senior

15 300 - 23 500 PLN

Kontrakt B2BUmowa o pracę

Wrocław

Praca zdalna 100%

Ważna do 13.03.2022

Dobrze
JavaScriptTypeScriptVue.js

T-Mobile Polska S. A.

Frontend Developer

medium

Brak widełek

Kontrakt B2B

Warszawa

Ważna do 26.02.2022

Bardzo dobrze
ReactReduxNode.js

Commerzbank - Centrum Technologii Cyfrowych w Polsce

Business Expert for Risk Applications

medium

Znamy widełki

Umowa o pracę

Łódź

Ważna do 26.02.2022

Dobrze
SQLMS Office
Początkująco
SAS / R / Python

Commerzbank - Centrum Technologii Cyfrowych w Polsce

Business Expert with German for Risk Analytics

medium

Znamy widełki

Umowa o pracę

Łódź

Ważna do 26.02.2022

Dobrze
MS Office
Początkująco
SQL / VBA / PythonQlik Sense / Qlik View / Arcadia

Hitachi Energy

Quality Assurance Engineer

medium

8 000 - 14 000 PLN

Umowa o pracę

Kraków

Ważna do 26.02.2022

Dobrze
automation testing .NET CoreSelenium
Początkująco
MS SQL

Commerzbank - Centrum Technologii Cyfrowych w Polsce

Business Expert with German for Risk Applications

medium

Znamy widełki

Umowa o pracę

Łódź

Ważna do 26.02.2022

Dobrze
MS OfficeSQL
Początkująco
SAS / R / Python

Więcej od Commerzbank - Centrum Technologii Cyfrowych w Polsce

Zobacz wszystkie artykuły od Commerzbank - Centrum Technologii Cyfrowych w Polsce