Sei sulla pagina 1di 4

Microservicios y Spring Cloud

¿Qué son los microservicios?


Cuando se empieza a crear a una aplicación generalmente se escoje un mismo lenguaje para
programacion y un solo lenguaje de base de datos para desarrollarla aplicación y cuando la
aplicación va ganando mas usuarios tambienva a necesitar mas recursos y a esos recursos se le
dará mas funcionalidad, esa funcionalidad debe de ser mantenida y la aplicación se va tornando
mas compleja tanto en código como en funcionalidad y es ahi donde se opta por dividir la
aplicación para poder administrarla bien. A ese proceso de dividir la aplicación en procesos se le
conoce como microservicios que es donde se puede dividir la aplicación en servicios mas
pequeños y cada uno de estos microservicios se pueden comunicar entre si y ademas cada uno
tiene una funcionalidad especifica inclusive puede ir evolucionardo sin verse afectado el trabajo
que esta desarrollando.

Este modelo esta recomendado para desarrollar aplicaciones gigantescas ose aaplicaciones que
crecieron hasta el punto que se debe adminitrar de una manera diferente por la cantidad de
usuarios y la complejidad de la aplicación, una de las maneras en las que las aplicaciones grandes
pueden administrar sus complejidad a travez de los microservicios

microservicios

Como ya lo había comentado anteriormente los microservicios son una arquitectura de servicios
del lado del servidor o aplicaciones backend que va dirigida a aplicaciones grandes y complejas,
por que cuando tenemos una aplicación pequeña se puede administrar con un solo lenguaje de
programación, un mismo lenguaje de bases de datos, inclusive se puede desplegar en un solo
servidor pero cuando la aplicación va creciendo y va generando as demanda de usuarios, los
usuarios también generan mas volumen de datos, entonces la aplicación hay administrarla de una
mejor manera, por que la funcionalidad de la aplicación también va a ir aumentando, ahí es donde
optamos por pasar de una aplicación que funcionaba de manera conjunta a dividirla en múltiples
partes, y cada una de esas partes hace una función especifica y esas partes es a lo que se le conoce
en los microservicios como un servicios, es decir cada una de esas partes funciona como un
servicio independiente

Por ejemplo supongamos que dividimos la aplicación una parte de los servicios se encarga de
administrar los usuarios, otros se encargan de administrar pagos, otra parte se encarga de
administrar facturas, todas estas funcionalidades que están separadas se unen para que la
aplicación funcione como una sola. El hecho de que la aplicación tenga una mejor funcionalidad,
con lleva como a varias condiciones, primero que todo a que la aplicación debe responder rápido a
las peticiones del cliente, por que pues mientras más usuarios tengamos pues va a haber mayor
flujo de peticiones. También tenemos que proveerle a la aplicación más servicios a medida que la
aplicación va creciendo, por que se le va a ir agregando más funcionalidad, También que tan fácil
es hacer crecer tanto en recursos como en funcionalidad a la aplicación, poder actualizarla porque
a veces se le hacen cambios y poder probar esos cambios y poder desplegarla.
Para eso están los microservicios para poder dividir la aplicación en diferentes servicios y poder
llevar el control de la aplicación mas fácil mente

Por que los microservicios?

Las aplicaciones mas grandes del mundo como Facebook y Google utilizan microservicios por que
como ya sabemos los microservicios divide la aplicación en pequeños servicios para poder
administrarla mejor y esos microservicios yo los puedo desarrollar en diferentes lenguajes de
programación y si cada una de estas partes esta conformada por una base de datos, cada una de
esas bases de datos pueden ser diferentes, puede ser relacional o no relacional, en realidad ese
tipo de aspectos no afectan para nada en la aplicación por que en realidad lo importante es la
entrada y salida de datos de los servicios ósea que se puede utilizar cualquier tecnología y cada
una de estas partes se comunican por medios de los protocolos de internet para que se comporte
de una manera conjunta por que cada servicio pues tiene una funcionaludad diferentes e
importante para la aplicación. También podemos utilizar herramientas sistematizadas para escribir
este tipo de eplicaciones de microservicios

Arquitectura monolítica

Para entender bien los microservicios hay que entender la estructura monolítica de hecho la
mayoría de las aplicaciones que se hacen a diario de hacen en esta estructura y aveces sin darse
cuenta.

La arquitectura monitilica quiere decir que los componentes de una aplicación del lado del
servidor están funcionando conjuntamente como una unidad, es decir si tienes una aplicación del
servidor que este ejecutando todas las tareas como por ejemplo: periciones http, ejecuta
algoritmos, ejecuta las consultas a la base de datos y mas cosas en una misma aplicación o en un
mismo servidor quiere decir que estamos en una arquitectura monolítica y pues generalmente esn
este tipo de arquitectura es en la que generalmente se hace todas las aplicaciones o softwares por
que uno mismo hace las funcionalidades y generalmente esas funcionalidades las ponemos en una
sola aplicación.

Desventajas arquitectura monolítica.

- Como hacer crecer la aplicación:

Por ejemplo cuando tenemos una aplicación que se esta ejecuntando en un solo servidor,
cuando el trafico aumente hay que aumentar los recursos, una solución puede ser replicar
la aplicación en múltiples servidores y colocarla detrás de un balanceador de carga para
que deacuerdo a la demanda pueda distribuir las peticiones en cada uno de los servidiores
y así se pueden hacer las consultas pertinentes a la base de datos. El problema con esta
solución es que si se le hace una actualización del código, hay que hacer esa misma
actualización en cada uno de los servidores y la actualización o aumento de recursos no se
le puede hacer a un solo servidor por que así este dividido funciona como uno.
- Toda la aplicación debe de estar desarrollado en un mismo lenguaje de
programación y si la compañía es grande es difícil garantizar esa parte con tanto
profesional que manejan las compañías.
- Ademas los componentes de una aplicación monolítica no pueden ser reutilizados
ya que fueron creados específicamente para esa aplicación y como todo esta
desarrollado en el mismo lenguaje de programación y los mismo paradigmas y las
mismas herramientas entonces solo funciona con la aplicación. Ademas si se le
hace una modificación a los componentes se debe de modificar toda la aplicacio.
- Si un componente falla, todos fallan por que funcionan como uno
- Es difícil para testearlo, para el debug y para la medición de componentes

Cuando se va a subdividir una aplicación hay que tener en cuenta que no hay un
tamaño especifico para los microservicios, el tamaño va a depender de el tipo de
empresa y la funcionalidad que posea y la complejidad que maneje cada microservicio

Ventajas de los microservicios:

- La ventaja de los microservicios es que como son partes separadas que se


comunican por internet, entonces estas se pueden desarrollar en diferentes
lenguajes de programación y diferentes frameworks todos estos servicios pueden
compartir la misma base de datos.
- Cuando se le hace un cambio a alguno de los servicios no necesitamos volver a
actualizar todo, por que como son conceptos separados se puede actualizar una
sola parte sin que se afecte el resto
- Como son servicios que son desarrollados en diferentes lenguajes, con diferentes
tecnologías se pueden reutilizar en otras aplicaciones

Desventajas

- Hay que desarrollar testear y desplegar cada parte ´por separado y esto va a
tomar tiempo
- La comunicación entre servicios va a depender de la velocidad del intermet y la
seguridad también
- Escribir código para comunicar servidores por que no es fácil
- Obtener y convertir datos también requiere mas procesado por el servidor ya que
va a obtener datos y compartirlos
- Como tenemos diferentes tecnologías en cada servicios necesitamos una
herramienta extra para poder monitorear cada una de estas partes

Potrebbero piacerti anche