Software

Microservicios: rompiendo el software monolítico

Los desarrolladores están cambiando las arquitecturas de sistemas masivos en función de aplicaciones pequeñas e independientes que trabajan juntas para resolver problemas complejos.

Microservicios

Amazon fue la primera empresa en desconstruir un gran sistema monolítico y dejarlo en microservicios. Netflix fue el siguiente, deconstruyendo su pila de software behemoth, buscando un modelo más ágil que pudiera mantenerse al día con 2 millones de solicitudes diarias de API de más de 800 tipos de dispositivos diferentes. Siguieron las compañías como Google, eBay, Uber y Groupon. Hoy en día, las empresas están abandonando las arquitecturas monolíticas de software para inaugurar la última era en la arquitectura de sistemas: los microservicios.

Aunque no es un concepto totalmente nuevo, los microservicios representan la última evolución del desarrollo de software. Los desarrolladores están desacoplando las arquitecturas de sistemas masivos en función de pequeñas e independientes que trabajan juntas para resolver problemas complejos. Cada microservicio es autónomo y responsable de realizar una sola operación en un sistema back-end, como recuperar un registro de cliente o verificar la puntuación de crédito de una persona.

El resultado es un ejército de pequeños servicios que se comunican a través de una red para integrar perfectamente múltiples sistemas, y un ejército es mucho más ágil y resistente que un programa gigante.

Soluciones sencillas para problemas complejos

Los microservicios evolucionaron a partir de una necesidad desesperada de simplicidad en el diseño de software. Con demasiada frecuencia, los proyectos de software sucumben a los ciclos de desarrollo, el tamaño del proyecto y los costes cada vez mayores. Esto se debe a que durante décadas, las aplicaciones se han diseñado como monolitos de arriba hacia abajo en los que todas las funciones se agrupan en un único proceso y luego se replican en varios servidores.

La mayoría todavía se construye de esta manera. El problema es que cualquier cambio requiere la actualización y reimplementación de la aplicación del lado del servidor, una interrupción inaceptable en el mundo digital de ritmo rápido de hoy, donde la inmediatez y la perfecta funcionalidad se consideran requisitos básicos.

Para mantenerse competitivas, las empresas necesitan aplicaciones que "evolucionen continuamente, añadiendo nuevas características y funcionalidades mientras permanezcan disponibles las 24 horas del día", dice Mark Russinovich, de Microsoft. Las rígidas infraestructuras del pasado están impidiendo que las empresas respondan a las demandas de un mercado que cambia rápidamente, y el no hacerlo significa la diferencia entre relevancia y obsolescencia.

A principios de 2000, la arquitectura orientada a servicios (SOA) surgió como una solución. Al separar las funciones en distintas unidades que se comunican a través de una red, los desarrolladores obtuvieron una mayor flexibilidad e interoperabilidad entre los programas. Sin embargo, las SOA resultaron difíciles de trabajar, requiriendo API de peso pesado y múltiples capas que a menudo estaban plagadas de incompatibilidades.

Aunque no solucionaron el problema, las SOA abrieron la puerta a nuevas soluciones de TI empresariales, como cloud computing, por ejemplo. Y en última instancia, llevó a los investigadores de Hewlett Packard Labs, encargado de hacer que el código sea menos frágil y más robusto al cambio, a ser pioneros en la primera arquitectura de servicios micro (MSA).

Mantener las empresas ágiles y receptivas

La principal diferencia entre un MSA y SOA es la escala. Los servicios de micro son más granulares, manteniendo los protocolos ligeros para una comunicación rápida y fácil. Y están teniendo éxito donde otros modelos basados ​​en servicios han fallado anteriormente.

Su mayor beneficio es la accesibilidad. Los servicios micro dependen principalmente de la conocida interfaz JSON / REST, con autenticación sencilla a través de las claves de la API, usualmente HTTP o OAuth. Fáciles de construir y desplegar, son un bálsamo para los desarrolladores preocupados que luchan por mantenerse al día con las necesidades de software empresarial.

Los microservicios ayudan a mantener las empresas competitivas con:

Interrupciones mínimas en el servicio.- Debido a que operan independientemente entre sí, los microservicios pueden fallar sin romper todo el sistema. La unidad problemática simplemente se inclina mientras el resto de los soldados sigue marchando. También pueden mantenerse individualmente, sin actualizar todo el sistema solo para cambiar un conjunto de funciones. Esto permite a los desarrolladores arreglar fácilmente los errores y agregar funciones sin frustrar a los usuarios.

Increíble flexibilidad.- Los microservicios no están vinculados a ningún idioma o plataforma específica. Son agentes libres que pueden adaptarse rápidamente para adaptarse a las necesidades evolutivas de un sistema. Esto deja a los desarrolladores libres para elegir cualquier framework que se adapte mejor al proyecto, en lugar de atenerse a los estándares de tamaño único, como XML o SOAP.

Más cohesión, menos acoplamiento.- Cuanto más interdependientes (o acoplados) son las partes de un sistema, más difícil es utilizar, probar y mantener. Los servicios de micro están ligeramente acoplados pero forman un todo cohesivo, creando un sistema más robusto y confiable.

Fácil recuperación de datos.- Un microservicio puede intercambiar información con cualquier otro servicio de la red, sin interacción humana ni cambios en el programa subyacente requerido.
Como Netflix y otras empresas de vanguardia han descubierto, "todo básicamente está subordinado a la necesidad de ser capaz de tomar decisiones y construir cosas más rápido que cualquier otra persona", dice su exarquitecto de nubes, Adrian Cockcroft. Los microservicios permiten a las empresas hacer que eso suceda, por lo que se están convirtiendo rápidamente en el modelo predeterminado para la creación de aplicaciones empresariales.



TE PUEDE INTERESAR...

Contenido Patrocinado

Forma parte de nuestra comunidad

 

¿Te interesan nuestras conferencias?

 

 
Cobertura de nuestros encuentros
 
 
 
 
Lee aquí nuestra revista de canal

DealerWorld Digital