Microserveis, desenvolupaments d’aplicacions més àgils
Què són els microservicios?
La forma clàssica de desenvolupar una aplicació és monolítica, és a dir, encara que internament estigui separada en mòduls, l’aplicació final és un grup de components i serveis relacionats entre ells i encapsulats en un únic paquet.
Els microserveis canvien aquesta idea monolítica. Consisteix a dividir l’aplicació en un conjunt de serveis més petits connectats entre ells però allotjats de manera separada en els servidors. Cada microservei és una petita aplicació amb la seva pròpia arquitectura i lògica de negoci.
Per exemple, per a crear l’aplicació d’un comerç amb diverses botigues el primer que hauríem de fer és identificar les principals parts del negoci per a crear els microservicios corresponents: gestió de botigues, gestió d’empleats, gestió de productes, vendes, etc.
Per què són importants?
Utilitzar microserveis facilita que la nostra empresa reaccioni més ràpid a les noves demandes que ens sorgeixin.
Quan tenim una gran aplicació monolítica pot arribar a ser complicat aplicar nous canvis.
Amb microserveis podem fer canvis més àgils i veloços, afectant a l’hora menys parts de tot el sistema.
Con microservicios podemos realizar cambios más ágiles y veloces, afectando a su vez a menos partes de todo el sistema.
A més, permeten a la nostra empresa poder innovar de forma més senzilla, ja que podríem crear un nou servei per a provar noves idees de negoci, sense afectar la resta de microserveis.
Beneficis:
- En cas d’error en un servei, és més probable que altres serveis de l’aplicació puguin continuar funcionant.
- Quan se soluciona un error en un servei, no és necessari tornar a modificar els altres serveis.
- A l’hora d’implementar l’aplicació facilita el poder dividir els desenvolupadors en diferents equips de treball.
- És possible tenir serveis implementats amb diferents tecnologies, amb la qual cosa podrem utilitzar la més adequada en cada cas.
En funció d’aquest últim punt es considera que la Tecnologia .NET Core és una opció molt bona per a implementar nostres microserveis.
Microserveis amb .NET Core:
Els beneficis d’utilitzar .NET Core en els nostres desenvolupaments són múltiples, per exemple, és multiplataforma i de codi obert, però el més interessant en aquest cas són els referents a la millora que aporta en les màquines en les quals allotjarem els nostres microserveis.
Degut a la seva naturalesa modular és un dels més indicats per a implementar i utilitzar sistemes altament escalables i amb necessitats d’alt rendiment.
Gràcies a la seva flexibilitat permet que l’aplicació que estem creant utilitzi una gran quantitat de microservicios i que amb el seu alt rendiment oferim la millor experiència d’usuari possible.
A més, .NET Core té suport per a contenidors Docker, Kubernetes i altres tecnologies semblants que són eines que faciliten la creació, implementació i execució d’aplicacions utilitzant un enfocament de contenidors. Aquests contenidors són lleugers i triguen menys temps a arrencar que els servidors tradicionals. També augmenten el rendiment i ofereixen una gestió adequada dels recursos disponibles de les màquines que els allotgen.
Building microservices on Azure
Desavantatges:
-
La comunicació entre serveis és complexa, s’han d’implementar i mantenir amb cura les sol·licituds que viatgen entre cada servei.
- A nivell de seguretat és més difícil de protegir, ja que tenim una gran quantitat de microserveis interconnectats.
- Degut a la seva complexitat requereixen personal que sàpiga administrar i mantenir els diferents serveis que tinguem en el servidor.
- A l’hora d’actualitzar amb millores un servei, pot arribar a ser complex mantenir la compatibilitat amb els serveis que siguin dependents d’aquest.
Conclusió:
Des de Trentia per experiència sabem que treballar amb micro serveis facilita l’escalabilitat, la implementació, la gestió i el manteniment de les aplicacions, a més de poder fer canvis de manera més àgil i com a conseqüència ser més productius.
Les arquitectures de Microserveis han canviat la manera en què es concep el programari per a bé.