Nädal 2: Monoliit vs mikroteenused

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Nädal 2: Monoliit vs mikroteenused

margmi
Kuna tegemist ilmselt natuke karusema ja kogenuma seltskonnaga, viskaks sellise filosoofilisema teema kirvena õhku. Mäletatavasti on tarkvara loomisel ja kavandamisel läbi aegade puhunud erinevad tuuled. Kunagi vorbiti valmis monoliite, mis olid nö. spagetikoodi otsast otsani täis, ühes kohas muutsid, teine nurk lendas õhku.

Siis tuli Amazon ja ütles, et mikroteenused on nüüd see asi, mis lahendab kõik probleemid, meie teeme nii. Noh. Peaaegu. Spagetid pandi lihtsalt erinevatesse pottidesse ja kõrbesid seal mõnusalt põhja.

Nüüd liigub taaskord trend monoliitide poole põhjendusega, et kui miskit õhku lastakse, on see kohe näha (kompileerimisvead, testid ei lähe läbi jne), mikroteenuste puhul on vead peidetud, tulevad välja täiesti suvalistel ja ebamugavatel hetkedel.

Teie arvamus sel teemal?
Reply | Threaded
Open this post in threaded view
|

Re: Nädal 2: Monoliit vs mikroteenused

tiitr
Mingi hetk tekkis pime usk mikroteenuste suunas ja hakati sinna liikuma olenemata, et reaalne kasutegur mõnel juhul puudus. Mikroteenustest võiks jätkuvalt kasu olla kui projekti kallal töötab väga palju arendajaid. Muidugi DevOpsi poolt vaadates on hea kui kõik on mikroteenuste peal ja arhitektuur võimalikult keeruline, sest seda rohkem on neid ametikohti tiimi vaja. Aga positiivne on näha, et liigutakse modulaarsete monoliitide suunas.
Reply | Threaded
Open this post in threaded view
|

Re: Nädal 2: Monoliit vs mikroteenused

MadisKoll
In reply to this post by margmi
Oleks nagu lugenud taolist asja kunagi, mis kõlab üpris tõeselt, et mikroteenused lahendasid suurtele ettevõtetele ära reaalse äriprobleemi, ning kõik pisemad uustulnukad tahtsid ju suuri ja edukaid kopeerida, seega ka selle massiline populaarsus. Raske on tühja koha peal sellist isiklikku hinnangut anda... Osalt on nagu tore see, et kogemata live läinud bugide blast radius tihtipeale väiksem on mikroteenustega. Teisest küljest jällegi palju rohkem mässamist on igasuguste distributed infratega. Eriti kui veel kogemata need omavahel nii kokku seod et distributed monoliidi tekitad :P
Üldiselt olen leidnud ning ka omal nahal tunda saanud, et kui hakkad monoliiti mikroteenusteks tükeldama siis sa tõenäoliselt lõikad valedest kohtadest, kui just domeenis vägaväga sees pole.
Eks ta sõltub kontekstist alati, kumba eelistada, I guess :/
Reply | Threaded
Open this post in threaded view
|

Re: Nädal 2: Monoliit vs mikroteenused

mvaldr
In reply to this post by margmi
Eks mikro- ja monoliitteenuste jaoks on oma kohad, mis olukordades emb-kumb paremini sobib. Ühelt poolt mikroteenuste haldamine suurte ettevõtete jaoks võib arendust ja teenuste haldust lihtsustada, teisalt võib keerukaks ja ressursimahukaks muutuda eri mikroteenuste vahel andmete liigutamine või ka mõne konteksti ühelt teenuse osalt teisele edastamise puhul.

Ehk arvatavasti on lahendus paljude ettevõtete jaoks kuskil keskel, et terve taristu ei jookse ühe serveri peal, vaid see, et teenus on jaotatud mõistlikeks osadeks.
Reply | Threaded
Open this post in threaded view
|

Re: Nädal 2: Monoliit vs mikroteenused

andpod
In reply to this post by margmi
Minu arvates tuleks kood jaotada mikroteenusteks vastavalt arendusmeeskondade arvule. Ühes meeskonnas võiks olla 2-4 arendajat, seega näiteks väiksed ettevõtted, kus polegi rohkem arendajaid, võiks teha kogu projekti ühe monoliidina. Mikroteenusteks jagamine kohe alguses ja väikse tiimiga lisab niipalju keerukust, et kogu ajaline ressurss kulub nende ülesseadmisele ja töös hoidmisele. Tiimide arvu kasvades saab monoliidist hakata tükke välja tõstma väiksemate teenustena.
Reply | Threaded
Open this post in threaded view
|

Re: Nädal 2: Monoliit vs mikroteenused

Ivatot
In reply to this post by margmi
Minu arvates ei ole mikroteenused ega monoliidid iseenesest head või halvad, kõik sõltub olukorrast. Monoliit on lihtsam ja arusaadavam kõik on ühes kohas, vead on lihtsam leida ja süsteemi on lihtsam hallata, eriti väiksema tiimi puhul.

Mikroteenused sobivad paremini väga suurtele süsteemidele ja tiimidele, kus on vaja eraldi osi sõltumatult arendada ja skaleerida. Samas muudavad need süsteemi keerulisemaks, sest lisanduvad võrguprobleemid, integratsioon ja raskem vigade leidmine.
Seetõttu tundub, et trend liigub tasakaalu poole. Paljud alustavad monoliidiga ja liiguvad mikroteenustele ainult siis, kui see on päriselt vajalik, mitte lihtsalt trendi pärast.
Reply | Threaded
Open this post in threaded view
|

Re: Nädal 2: Monoliit vs mikroteenused

raikoo
In reply to this post by margmi
Oleneb kindlasti millise teenusega tegu on. Väiksematel teenustel on monoliidid täitsa okei veel, aga midagi suuremaks minna seda rohkem minu arvates oleks mikroteenused vaja olla. Ühte universaalset lahendust kõigele ei ole.

Mikroteenuste vigade (mitte)leidmine oleneb ka kui hästi testid ehitatud on, ka mikroteenustel saab igasugused ägedaid automaatikaid ja logimisi ehitada juurde pannes "natuke"" rohkem aega sisse.