Taula de continguts[Amaga][Espectacle]
Els dissenys arquitectònics del passat eren sovint monolítics i no tenien gestió, escalabilitat i agilitat. En aquesta situació, les empreses haurien de desplegar el programa complet en un servidor d'aplicacions solitari que funcioni en un ordinador solitari.
De vegades, fins i tot es pot instal·lar tota la base de dades al mateix sistema. Fins i tot després de realitzar tot això, un problema simplement provocaria que el programa es tanqués, interrompent totes les activitats.
El resultat va ser un cicle interminable de codificació, desplegament i resolució de problemes que va reduir la productivitat de les empreses.
Però quan les idees arquitectòniques van canviar, la indústria va veure un trastorn dramàtic que va donar lloc a les dues arquitectures principals conegudes com a sense servidor i microserveis. Tots dos tenen un cas fort per ser utilitzats en sistemes escalables i àgils.
Tots dos prioritzen la seguretat, però adopten enfocaments diferents. Els propietaris d'empreses es pregunten regularment si són o no els mateixos.
Quin s'hauria de triar si són diferents per obtenir beneficis encara més sorprenents? Aquest article ens ajudarà a esbrinar.
Què són els microserveis?
El patró de disseny arquitectònic conegut com a microserveis divideix una aplicació més gran en una sèrie d'altres més petites, d'aquí el nom. El disseny monolític, en el qual tota la funcionalitat està continguda en una sola unitat, s'oposa completament a això.
Utilitzem un exemple d'aplicació per a compres en línia per ajudar-nos a comprendre. Després de trobar els articles que vol, el consumidor els afegeix al seu carretó de la compra i fa la seva comanda.
Les interfícies de programació d'aplicacions (API) connecten diversos serveis que funcionen de manera independent els uns dels altres (API). Els microserveis ofereixen funcions com ara un carretó de la compra, un procés de compra i un producte.
La implementació de microserveis es pot fer de diversos mètodes. Cada microservei té els components fonamentals que necessita per funcionar de manera independent, incloent la seva pròpia base de dades, biblioteques i plantilles.
Bàsicament s'adhereix als principis SOA (Service Oriented Architecture), que proporcionen a l'usuari el poder de crear noves aplicacions i executar diferents aplicacions de manera independent.
DevOps separa totes les funcions de l'aplicació en aplicacions o serveis més petits que poden funcionar per si mateixos mentre funcionen com l'aplicació en conjunt. Abans de desplegar-se, cadascuna d'aquestes aplicacions de microservei es crea i es prova funcionalment.
Què és un model sense servidor?
En un paradigma sense servidor, el proveïdor extern de serveis al núvol és l'encarregat de gestionar el servidor. Els desenvolupadors només han de preocupar-se pel codi; el proveïdor de serveis s'encarregarà de les actualitzacions de seguretat, equilibri de càrrega, gestió de capacitat, escalabilitat, registre i supervisió.
Tota l'aplicació es pot executar mitjançant una arquitectura sense servidor, o només un subconjunt d'aquesta. Tan bon punt s'executa el codi de l'aplicació, el servidor li assigna recursos i els allibera un cop l'aplicació ja no s'utilitza, per la qual cosa només es requereix quan l'aplicació s'està utilitzant activament.
El propietari de l'aplicació només es cobra durant el temps que l'aplicació està en ús. Les empreses de serveis al núvol ofereixen Backend-as-a-Service (BaaS) i Function-as-a-Service (FaaS).
BaaS ofereix funcions preconstruïdes, de manera que el desenvolupador només ha de concentrar-se en el front-end. Poques vegades s'utilitza a causa de la personalització i el control limitats que ofereix.
FaaS, però, és més flexible, ja que els desenvolupadors poden crear tant el frontal com el posterior mentre continuen executant l'aplicació en un servidor llunyà. Amb FaaS, es pot crear una aplicació com una col·lecció de funcions.
Cada funció té un propòsit i un factor iniciador. La funció no pot funcionar contínuament; normalment és temporal i s'acaba tan aviat com ja no és necessari.
Sense servidor vs microserveis
Un programa descentralitzat que es va dividir en diversos components més petits, també coneguts com a serveis, es coneix com a arquitectura de microservei. Tots ells són responsables d'assegurar que una tasca específica es porta a terme a la perfecció.
Els microserveis són molt especialitzats i només poden fer una cosa perfectament. Cada arquitectura té una estratègia diferent per resoldre problemes. Les solucions a llarg termini estan disponibles amb microserveis.
Cada servei pot funcionar contínuament i les 24 hores del dia. És una excel·lent resposta a llarg termini per als equips que estan augmentant.
D'altra banda, les funcions de les aplicacions sense servidor se centren a millorar l'eficiència del codi. Les funcions no duren tant com ho fan els microserveis. Només comencen a funcionar en resposta a una determinada entrada o situació.
Com que l'arquitectura sense servidor està basada en esdeveniments, una funció no s'executarà si no hi ha un activador. El programa no utilitza més CPU de la necessària, i els equips poden estalviar diners en espai de computació i emmagatzematge gràcies a aquesta metodologia de desenvolupament eficaç.
A part d'aquestes variacions bàsiques, els dos dissenys també es diferencien en altres aspectes.
Centrem-nos en algunes consideracions clau mentre decidim si utilitzem microserveis o informàtica sense servidor.
Funcions
Les funcions són transitòries i només s'executen quan una determinada situació les requereix. Són més compactes i primes.
Un microservei pot gestionar diverses operacions enllaçades alhora, mentre que una funció és l'única responsable d'una activitat.
Un únic microservei pot realitzar diverses funcions.
Temps d’execució
Les funcions sense servidor tenen un temps d'execució curt. La quantitat que pot executar una determinada funció varia segons el proveïdor.
Per exemple, una funció es pot executar a AWS Lambda durant 15 minuts. Això es deu al fet que les funcions són, per naturalesa, procediments breus que no haurien de consumir molta memòria RAM.
Les especificacions del proveïdor per al temps d'execució, l'emmagatzematge i la memòria RAM no són una restricció per als microserveis. Per això, són més adequats per a activitats complicades i a llarg termini que requereixen emmagatzemar i processar volums massius de dades.
Operacions informàtiques
La creació de recursos d'equip és necessària per als microserveis. Les tasques de seguiment, desplegament, suport i manteniment les realitza un equip intern o extern. L'equip és totalment encarregat de donar suport a l'arquitectura, gestionar la seva informàtica i garantir la seva seguretat.
Al contrari, l'arquitectura sense servidor depèn d'un proveïdor extern. L'empresa no està obligada a crear, protegir i gestionar el seu propi espai de servidor. Totes les funcions internes les gestiona el proveïdor de núvol.
Aquesta estratègia pot reduir els costos del projecte alhora que evita les despeses de contractació i incorporació, els càrrecs d'emmagatzematge i les compres de maquinari.
Cost
El cost inicial de crear microserveis és més elevat. Per completar el projecte es necessiten diversos equips, i es necessita temps i una preparació acurada per establir les relacions entre els diferents components.
La creació i el manteniment dels microserveis són més cars a causa de la seva dependència dels recursos i l'assistència interna.
Tanmateix, aquesta estratègia té beneficis. L'empresa no depèn de plans externs i no corre el perill de bloqueig del proveïdor.
La capacitat de reduir despeses és el principal avantatge competitiu de l'arquitectura sense servidor. Les empreses que utilitzen arquitectura sense servidor es beneficien de l'agrupació de recursos.
Com que comparteixen els seus servidors entre diversos clients, els proveïdors de tercers poden oferir preus de subscripció més baixos.
A més, esteu estalviant costos de recursos humans perquè no necessiteu contractar experiència en maquinari i servidor.
Quan s'ha d'utilitzar microserveis versus Arquitectura sense servidor
Els microserveis són la millor opció si la confidencialitat és la vostra màxima prioritat
Els serveis d'arquitectura sense servidor poden no ser l'opció ideal si esteu intercanviant informació. L'aplicació pot tenir alguns problemes greus.
Una forma d'allotjament gestionat o compartit és l'allotjament en núvol.
Per tant, podreu observar que no sou l'únic que utilitza els recursos d'un proveïdor extern. Com que aquesta circumstància implica "inquilins múltiples" en lloc de "inquilins únics", les vostres dades no estan completament protegides en aquest cas.
La informació i les dades que pertanyen a un altre inquilí són visibles i accessibles per a un inquilí. A més, és poc probable que consumeixis contínuament recursos d'un sol proveïdor. Hi pot haver un gran nombre.
Així, la capacitat de supervisar i configurar tot el procés serà més difícil a mesura que canviï el proveïdor.
Utilitzeu microserveis si voleu que el vostre llegat perduri.
Els serveis d'arquitectura sense servidor no funcionaran si la infraestructura del sistema antic ha d'estar instal·lada de moment.
La velocitat i el cost són dos aspectes de l'arquitectura sense servidor que funcionen bé, però no són els únics.
Tot i que sense servidor és bastant granular, és incompatible amb una base de codi important i existent a causa d'aquesta granularitat.
En altres paraules, és un salt massa gran per fer un cop tingueu un sistema heretat. Per tant, és preferible escollir una estratègia de microserveis.
Si sou una startup, triar sense servidor és el camí a seguir.
La millor opció per a l'arquitectura sense servidor és si sou el fundador de la startup. L'arquitectura sense servidor us proporcionarà les velocitats de llançament al mercat més ràpides i ràpides, independentment del vostre objectiu: respondre a un mercat de temps limitat o agafar immediatament una quota de mercat a l'inici de qualsevol tendència.
A més, serà una opció assequible per als emprenedors. Un servidor que no s'utilitza no et costarà res. A falta d'estadístiques d'ús fiables, sovint necessiteu aplicacions extremadament adaptables.
S'han d'utilitzar microserveis i sense servidor si comenceu des de zero
Fer un nou començament us permet obtenir els avantatges dels proveïdors d'arquitectura sense servidor més ràpidament, però no immediatament. Utilitzeu microserveis quan dissenyeu una arquitectura nova, però espereu canviar a Serverless més tard.
Arquitectura sense servidor i microserveis: avantatges i contres
Malauradament, cap tecnologia és perfecta; si fos així, el món ja seria un lloc content i molt desenvolupat.
Cada tecnologia inclou avantatges que podeu utilitzar per al vostre projecte, així com inconvenients amb els quals heu d'estar preparat per viure. Examinem tots dos ara.
Avantatges dels microserveis
- Escalat més senzill: com que els serveis estan separats, és possible afegir o suprimir funcions i escalar coses amb la menor quantitat de treball. A diferència dels programes monolítics, no cal tenir en compte la base de codi completa.
- Millor resiliència del programari: com que els microserveis depenen menys els uns dels altres, la fallada d'un no fa caure tota l'aplicació. És especialment útil quan el trànsit és intens.
- Diferents plataformes: Podeu enllaçar microserveis situats en diverses plataformes, a més de fer-ho amb idiomes. Una part d'una aplicació també es pot allotjar amb normalitat i sense servidor.
- Autonomia d'equip: diversos equips petits poden interactuar i treballar en el projecte simultàniament
- Multilingüe: una API us permet enllaçar microserveis escrits en diversos idiomes. És un avantatge útil perquè diverses tecnologies compleixen amb més eficàcia les diverses demandes d'una funció. Tanmateix, utilitzar massa idiomes pot comportar dificultats per enllaçar-ho tot, per tant, és preferible que les coses siguin senzilles.
- Espai per a experiments: malgrat la nostra gran quantitat de dades, de vegades les nostres suposicions són incorrectes i els microserveis us permeten provar-ho tot. Com que les aplicacions amb microserveis són increïblement adaptables, com hem comentat anteriorment, no cal gastar milers de dòlars només per afegir una funció nova que potser voldreu eliminar més endavant.
Contres dels microserveis
- Problemes de seguretat: heu de supervisar de prop les vostres API perquè sovint es configuren incorrectament i, per tant, són susceptibles.
- Reptes de connexió: heu de dissenyar acuradament com enllaçar tots els microserveis i moure dades d'una ubicació a una altra.
- La depuració és un repte, ja que heu d'examinar els registres de cada microservei.
- Proves difícils: heu de provar cada microservei per separat abans d'avaluar la connexió a escala global.
Avantatges de Serverless
- Escalat sense esforç: el servidor s'ajusta automàticament cap amunt o cap avall.
- Implementació molt ràpida: podeu dissenyar noves funcions ràpidament i provar les vostres idees.
- L'administració del servidor no us preocupa: podeu concentrar-vos en l'aplicació més que en el servidor.
- Pay-as-you-go: només pagueu per la capacitat del servidor que utilitzeu; no cal pagar el temps inactiu.
Contres de Serverless
- Proves difícils: tot i que no podeu reproduir completament l'entorn sense servidor, és difícil entendre com funcionarà el codi després d'haver-lo desplegat.
- Baixa flexibilitat: moltes persones tenen problemes per comprometre's amb un únic proveïdor d'entorn sense servidor durant un període prolongat.
- Inici en fred: roman a la memòria cau, però només breument, un cop finalitzada cada funció. La funció haurà de respondre de nou a la sol·licitud d'invocació, cosa que trigarà temps si la torneu a iniciar i no s'emmagatzema a la memòria cau.
Conclusió
Els microserveis i els sense servidor són tecnologies relacionades amb l'arquitectura que utilitzen diverses tècniques. Tant els microserveis com els sense servidor posen l'accent en l'escalabilitat, l'adaptabilitat, la rendibilitat i la senzillesa d'afegir noves funcions en lloc del disseny monolític.
Com que cada servei funciona com una aplicació independent, l'escalabilitat a llarg termini és l'objectiu principal dels microserveis.
Depenent de l'abast del producte i les prioritats de l'organització, es pot seleccionar entre les dues estratègies.
Els microserveis us oferiran microserveis sense servidor per a solucions a llarg termini si teniu intenció de construir una gran plataforma que necessiti un creixement continu.
L'arquitectura sense servidor és una opció fantàstica si voleu implementar-vos de manera ràpida i assequible.
Deixa un comentari