A mai pățit cineva să se întrebe de ce, în ciuda tuturor avansurilor în ingineria software, încă vedem aplicații și sisteme construite în stil monolit? Mă rog, e aproape ca o perdea de fum: pare mai simplu și mai rapid la început, dar apoi devine o misiune imposibilă să gestionezi și să scalezi. Sincer, nu știu dacă doar mie mi se pare, dar parcă mentalitatea asta de "totul într-o singură bucată" s-a păstrat și în zilele noastre, chiar dacă domeniul a evoluat enorm.
Mi se pare că motivele ar fi de natură culturală sau poate chiar educațională. În facultate, ne învață încă de la început să construim sisteme mari ca niște blocuri monolitice, apoi avem tendința de a rămâne ancorați în această idee, chiar dacă tehnologiile și practicile moderne (microservicii, serverless, containerizare) devin din ce în ce mai populare. Plus, poate și inerția: e mai comod să ciupici ceva și să faci merge quick, decât să investești timp în proiectarea unor sisteme mai flexibile și mai adaptabile.
Sunt curios dacă și alte persoane au senzația că mentalitatea asta s-a schimbat prea lent sau dacă, poate, e doar o chestie de confort și obișnuință. Poate o să vedem cum va evolua în următorii ani, dar momentan, o întrebare rămâne: de ce pare că încă mai învățăm și proiectăm în stil monolit, deși tehnologia ne îndeamnă spre altceva?
Hey Georgina, interesantă observație! Eu cred că, deși tehnologia ne oferă instrumente mult mai flexibile și scalabile, mentalitatea și cultura în domeniu sunt mult mai lente să se schimbe. În plus, construirea unui sistem monolit pare la început mai simplu și mai direct, mai ales pentru echipe sau proiecte mici. E ca și cum ai merge pe drum asfaltat, în loc să te aventurezi pe trasee neexplorate, chiar dacă știi că pentru durabilitate și extindere ar fi mai potrivit să alegi traseul noi.
Uneori, e și un aspect de încredere: developerii și arhitecții au învățat de-a lungul anilor că un sistem unitar elimină problemele de compatibilitate între componente, și preferă stabilitatea asta în fața flexibilității. În plus, schimbările în mentalitate implică și un upgrade în abilitățile echipelor, în procesori, în managementul proiectelor, și nu toți sunt dispuși sau au resursele necesare pentru a face această trecere.
Apoi nu putem neglija și aspectul de risc: migrația de la monolit la microservicii poate fi complicată și expensive, iar unele companii preferă să rămână pe varianta sigură, chiar dacă știu că la termen lung poate fi mai dificil.
Totuși, cred că ne aflăm într-un punct de inflexiune, unde tot mai multe echipe și organizații încep să realizeze avantajele trecerii, chiar dacă nu e un proces chiar simplu. Probabil că în următorii ani, vom vedea o adopție mai largă, dar schimbarea va fi graduală, nu una bruscă.
Tu ce crezi, Georgina? Crezi că tendința de a reveni la monolit va crește sau, din contră, se va diminua pe măsură ce tehnologia avansează?
Salutare tuturor! Mă simt de asemenea interesat de subiect, pentru că, după părerea mea, această dilemă între monolit și microservicii e cam ca o veche bătălie între confort și inovație.
Personal, cred că nu vom vedea o dispariție completă a aplicațiilor monolitice - mai ales în cazul proiectelor mici sau ale celor care valorează mai mult stabilitatea decât flexibilitatea absolută. În același timp, însă, cred că tendința va fi tot mai clară către arhitecturi modulare, pentru că avantajele scalei și evoluției independente sunt greu de ignorat pe termen mediu și lung.
Un aspect pe care îl consider important e și faptul că nevoia de adaptabilitate rapidă în mediul actual face ca abordarea microserviciilor să devină aproape inevitabilă în cazurile în care se cere agilitate și timpi scurți de lansare. Dar, din nou, e vorba de context; nu toate sistemele au nevoie de acest nivel de complexitate.
În plus, mi se pare că în unele industrii sau domenii, mentalitatea încă se agăță de soluțiile „de siguranță", poate din motive de compliance, resurse sau chiar culturale. E ca și cum, uneori, echipele preferă să prefere soluțiile cu care sunt deja familiarizate, chiar dacă știu că există alternative mai moderne.
În concluzie, cred că vom asista la o evoluție graduală, în care monolitul și microserviciile vor co-exista, fiecare în domeniul în care e cel mai potrivit. Cu toate acestea, mentalitatea de a construi sisteme flexibile și scalabile devine, pe zi ce trece, tot mai adoptată, chiar dacă transferul complet este încă în curs de desfășurare.
Voi ce părere aveți? Credeți că va fi o evoluție liniară sau vom vedea, poate, și câteva regresii temporare în procesul de adoptare?