Documente Academic
Documente Profesional
Documente Cultură
Microservicii
Lect. dr. Florina Covaci
Istoric
• Termenul microservicii a fost utilizat prima data in 2011 la workshop-
ul Software Architects
• In Martie 2012, James Lewis a prezentat cateva idei despre
microservicii
• La sfarsitul lui 2013, mai multe grupuri din industria IT au inceput sa
discute despre microservicii
• In 2014 microserviciile au devenit suficient de populare pentru a fi
utilizate pentru aplicatii complexe
Microserviciile
• Ce sunt ?
• Aplicatiile bazate pe microservicii sunt compuse din servicii de dimensiuni
reduse, versionate independent, scalabile care comunica intre ele folosind
protocoale standard
• De ce?
• Ofera o mai buna mentenanta in sisteme complexe de dimensiuni mari, prin
crearea de aplicatii care pot fi implementate independent avand cicluri de
viata autonome.
Atributele microserviciilor
• Deployment independent
Arhitectura aplicatiilor bazate pe microservicii
• Dezvoltarea unei aplicatii care contine un set de servicii de dim.
reduse
• Aceste servicii sunt independente si ruleaza in propriile procese
• Microserviciile – o modalitate de a segrega serviciile astfel incat
acestea sa poata fi gestionate independent din punct de vedere al
designului, dezvoltarii si deployment-ului
• O arhitectura logica – nu este necesar sa se mapeze 1-1 cu o
arhitectura fizica – un microserviciu business implementat de un
singur web API – o regula prea rigida
• Un microservice trebuie
sa fie autonom prin a permite
codului sa fie independent versionat,
implementat si scalat
• Serviciile utilizeaza acelasi model de
date pentru ca Web API targheteaza
aceleasi date ca si serviciul de cautare
• In implementarea fizica functionalitatile se impart astfel incat
serviciile sa poata fi scalate dupa nevoie (ex. Web API foloseste de
obicei mai multe instante sau invers)
• Architectura logica nu trebuie intodeauna sa coincida cu arhitectura
fizica
Provocari
• 1. Delimitarea ariilor fiecarui microserviciu – identificarea datelor care
nu sunt cuplate si a contextelor diferite in care sunt utilizate
• 2. Crearea de interogari care utilizeaza date de la mai multe
microservicii
• API Gateway pattern– pentru agregarea simpla a datelor din microservicii
multiple - microserviciu de agregare
• Materialized view pattern – se genereaza in avans (pregatim date
denormalizate inainte ca interogarea efectiva sa se realizeze), un tabel read-
only cu date cate sunt detinute de mai multe servicii
• “Cold data” in baze de date centralizate – exportarea “Hot data” in baze de
date centralizate ca si “Cold data” – doar pentru raportare – nu in timp real
Provocari (II)
• 3. Consistenta intre mai multe microservicii
• Disponibilitate vs. consistenta
• Cele mai multe microservicii
necesita mai mult disponbilitate si
Scalabiliate decat consistenta
• Mecanisme de asigurare a
consistentei prin comunicare asin-
crona
Provocari (III)
• 4. Design-ul mecanismului de comunicare – nivelul de cuplare,
impacteaza sistemul la failure
• A nu se crea lanturi de apeluri HTTP intre microservicii
• Blocare si performanta scazuta – cererea HTTP nu primeste raspuns decat
dupa ce toate apelurile interne HTTP sunt finalizate
• Cuplarea microserviicilor prin HTTP – nu ar trebui sa fie cuplate; autonomia
microserviciului devine imposibila
• Failure la unul dintre microservicii – sistemul ar trebui sa functioneze in
continuare cu un partial failure
Implementarea usage-
tracking printr-un
mechanism de gestionare
evenimente
Capabilitati tehnice
• Nu contribuie direct la scopul de business, dar asigura suportul
pentru alte microservicii – integrarea cu alte sisteme, programarea de
evenimente care se produce in viitor
• Un microserviciu trebuie sa fie inlocuibil- capabilitatea de business si
cea tehnica-> comlexitate si marime crescuta
• Capabilitatea tehnica se implementeaza in alt microserviciu
Trimiterea de notificari pentru clientii inregistrati prin email, SMS sau
aplicatia mobila