northdan.
Read this page in English

Comparație

Monolit sau microservicii: ce arhitectură îți trebuie

Microserviciile rezolvă o problemă de organizare, nu una de programare. Dacă nu ai acea problemă, cumperi doar costul.

Un monolit e o singură aplicație care conține tot: interfața, regulile de business, accesul la date. Se instalează într-un singur loc, se testează dintr-o bucată și se depanează urmărind o singură urmă de execuție. Microserviciile împart aceeași funcționalitate în programe mici, independente, care vorbesc între ele prin rețea: fiecare se poate scrie în altă tehnologie, se poate instala separat și se poate multiplica singur atunci când e aglomerat. Sună evident mai bine până când socotești ce aduc cu ele — orchestrare, livrare automată pentru fiecare componentă, urmărire distribuită a cererilor, gestionarea situațiilor în care o componentă răspunde târziu sau deloc, plus un om care se ocupă permanent de infrastructura asta. Adevărul incomod pentru marketingul tehnic e că separarea rezolvă în primul rând o problemă de coordonare între echipe. Dacă ai o singură echipă de sub zece oameni, un monolit împărțit curat în module îți dă aproape toate beneficiile invocate, la o fracțiune din costul lunar de operare.

Hai să vorbim despre proiectul tău

Scrie-ne pe WhatsApp sau trimite un email — vorbești direct cu un programator.

office@northdan.com · +40 752 070 247

Pe scurt

Unde câștigă monolitul

Livrare simplă, depanare rapidă, un singur mediu de test, costuri de infrastructură mici. O echipă mică schimbă o funcționalitate care traversează trei zone ale aplicației într-o singură modificare, nu în cinci coordonate între ele.

Unde câștigă microserviciile

Echipe separate care livrează fără să se blocheze reciproc, componente care se multiplică independent atunci când primesc trafic mare și izolarea unei zone critice, astfel încât o defecțiune să nu ducă la pământ întreaga aplicație.

Costul pe care nimeni nu îl trece în ofertă

Fiecare serviciu în plus înseamnă lanț propriu de livrare, monitorizare, jurnale, versionare a interfeței și un scenariu pentru cazul în care nu răspunde. Fără cineva dedicat operării, o arhitectură distribuită se degradează în câteva luni.

Calea de mijloc care funcționează

Monolit organizat pe module cu granițe clare, din care extragi ulterior doar componentele care chiar au nevoie de independență — de obicei procesarea grea sau integrarea cu un sistem extern instabil. Ordinea asta se poate face; inversul, mult mai greu.

Pragurile la care separarea începe să merite

Primul prag e organizațional: ai două sau mai multe echipe care se calcă pe picioare la fiecare livrare și așteaptă una după alta ca să publice. Al doilea e de trafic: o parte din aplicație consumă disproporționat mai multe resurse decât restul, iar mărirea serverului pentru toată aplicația a devenit vizibil scumpă. Al treilea e de risc: o componentă atinge un sistem extern nesigur și vrei ca defecțiunile lui să nu se propage. Dacă niciunul dintre praguri nu e atins, separarea e o cheltuială fără contrapartidă.

Când un furnizor propune microservicii pentru o primă versiune de produs, cere-i două lucruri în scris: costul lunar de infrastructură și operare pentru arhitectura propusă și numele persoanei care va răspunde de ea. Dacă răspunsul e vag la oricare dintre ele, propunerea servește portofoliul lui tehnic, nu produsul tău. O primă versiune are nevoie de utilizatori, nu de diagrame.

Când nu ai nevoie de noi ca să decizi

Pentru o aplicație internă folosită de treizeci de oameni, cu trafic previzibil și fără vârfuri, răspunsul e monolit și nu are rost să plătești o analiză de arhitectură. Investește banii aceia în teste automate și într-un proces de livrare curat; ele îți vor aduce mai multă stabilitate decât orice schemă de componente separate.

Ne cheamă când aplicația a devenit greu de schimbat, când o livrare cere weekend și coordonare, când o zonă a produsului trage în jos performanța restului sau când echipa a crescut peste pragul la care o singură bază de cod devine un ghem. Atunci extragem componente pe rând, cu măsurători înainte și după, nu rescriem totul pornind de la o idee de arhitectură.

Întrebări frecvente

Microserviciile fac aplicația mai rapidă?

În general o fac mai lentă la nivel de cerere individuală, pentru că apelurile care erau simple chemări în memorie devin apeluri de rețea. Câștigul e în capacitatea de a multiplica selectiv componentele aglomerate, deci vorbim de scalare, nu de viteză brută.

Pot începe cu monolit și separa mai târziu?

Da, și e traseul recomandat, cu o condiție: modulele trebuie să aibă granițe respectate de la început, cu date proprii și fără apeluri directe în interiorul altui modul. Un monolit dezordonat nu se separă, se rescrie — și acolo se pierd bugetele mari.

Câți oameni îmi trebuie ca să operez o arhitectură distribuită?

Orientativ, cel puțin o persoană dedicată infrastructurii și livrării, plus disponibilitate pentru intervenții în afara programului. Sub acest nivel, echipa de dezvoltare va petrece o parte crescândă din timp administrând sisteme în loc să scrie funcționalități pentru clienți.

Ce înseamnă concret un monolit modular?

O singură aplicație în care fiecare zonă de business are propriul spațiu, propriile tabele și o interfață internă prin care restul aplicației o apelează. Nimic nu citește direct datele altui modul. Rezultatul se comportă ca un sistem ordonat, dar se instalează și se depanează ca unul singur.