“Escapando del infierno monolitico”: hacia nuevos estilos de arquitectura.

Explorando estilos de arquitectura

La arquitectura de microservicios viene ganando terreno en el desarrollo de software, con una adopción marcada en industrias donde la escalabilidad, flexibilidad y agilidad para la innovación son esenciales.

La segunda mitad de la década de 2010 implicó un punto de inflexión. Amazon había empezado a alejarse de la arquitectura tradicional alrededor de 2002. Netflix y Uber hicieron lo propio. Estas organizaciones y sus historias de éxito sirvieron como catalizadores, impulsando una adopción cada vez mayor del nuevo estilo de arquitectura.


El enfoque tradicional

Antes de los microservicios, las aplicaciones solían construirse utilizando una arquitectura monolítica. Esto implicaba que los componentes quedaban acoplados en una unidad, lo que resultaba en sistemas complejos y rígidos.

Con este enfoque era imposible aprovechar al máximo la infraestructura distribuida de la nube, ya que el monolito completo debía escalarse incluso cuando apenas una función específica demandaba recursos adicionales.

Por otro lado, una falla en una parte del monolito podía hacer que todo el sistema colapsara. Los equipos de desarrollo que trabajaban con la misma base de código debían lidiar con problemas de coordinación y ciclos de desarrollo más lentos.

Era aceptable (y a veces lo sigue siendo) en proyectos de baja complejidad y tamaño de equipo pequeños, porque simplificaba el desarrollo y la implementación. Pero el estilo tradicional parece mayormente inadecuado cuando se trata de proyectos de gran escala.

No sorprendentemente, el surgimiento de la arquitectura de microservicios coincide con la adopción de la nube a principios y mediados de la década de 2010.

Dividir las aplicaciones en servicios más pequeños permite una asignación eficiente de recursos, tolerancia a fallos y un rendimiento mejorado mediante implementaciones distribuidas.


Patrones de arquitectura

Para “escapar del infierno monolítico” (frase de Chris Richardson, en su muy buen libro sobre el tema, 2019), el software debe ser diseñado o rediseñado siguiendo una serie de principios y patrones sólidos. Algunos de los más importantes incluyen:

  1. Database per Service: Cada microservicio tiene su propia base de datos dedicada, promoviendo la independencia y autonomía.
  2. Service Registry: Un directorio central que permite el descubrimiento dinámico de servicios, facilitando el acoplamiento flexible y la tolerancia a fallos.
  3. API Gateway: Proporciona un punto de entrada unificado para los clientes, manejando la autenticación, el enrutamiento y las complejidades de protección.
  4. Strangler Fig: Reemplaza gradualmente los sistemas monolíticos introduciendo microservicios de manera incremental.
  5. Saga: Coordina transacciones distribuidas entre múltiples microservicios para mantener la consistencia de los datos.

La interrelación entre estos patrones garantiza transacciones consistentes y coordinadas. Permiten una modernización gradual de la arquitectura, con mejoras en su flexibilidad, resistencia. Y fundamentalmetne, empoderando a las empresas para adaptarse rápido a las demandas cambiantes del mercado para lograr un éxito sostenido en la era digital.

Hasta 2019, cuando Chris Richardson publicó su libro “Microservices Patterns”, el autor podía lamentarse y decir que “las aplicaciones empresariales críticas suelen ser monolitos grandes desarrollados por equipos extensos. Los releases ocurren con poca frecuencia y a menudo el proceso es engorroso para todos los involucrados. TI a menudo lucha por mantenerse al día con las necesidades del negocio“.

“Las aplicaciones empresariales críticas suelen ser monolitos grandes desarrollados por equipos numerosos. Los releases ocurren con poca frecuencia y a menudo el proceso es engorroso para todos los involucrados. TI a menudo lucha por mantenerse al día con las necesidades del negocio”

Chris Richardson

El valor de la agilidad para el negocio

Todo proceso de transformación digital será (o debería ser) examinado detenidamente en términos de sus costos e impacto en el negocio. Esto permite establecer una analogía suelta entre la Pirámide de Maslow y el desarrollo de software: si ya estás pensando en arquitecturas complejas, probablemente necesites escalar tu plataforma y tienes (o deberías tener) financiamiento para implementarlo.

Pero es importante subrayar una vez más: este tipo de arquitectura es principalmente relevante para proyectos que deben escalar. En proyectos más pequeños, las arquitecturas orientadas a servicios (SOA) o incluso las arquitecturas monolíticas que consideren algún grado de modularidad serán suficientes.

Dicho esto, el impacto en el negocio de la arquitectura de microservicios es virtualmente inmenso. Las empresas ganan agilidad y capacidades de innovación, pueden responder rápido a las demandas del mercado y a las necesidades de los clientes. La escalabilidad independiente y el aislamiento de fallos garantizan un uso eficiente de los recursos y a su vez una mayor resiliencia de los sistemas.

Mark Schwartz, una de las voces influyentes en estrategia de TI y perspectivas de BizTech, lo expresa de esta manera:

“La vieja forma de pensar nos obligaba a hacer compromisos grande en vez de ver el valor de los pequeños cambios incrementales en el patrimonio de TI (…) No nos permitio ver una fuente muy importante de valor para el negocio: la agilidad de nuestra infraestructura y su capacidad para satisfacer necesidades emergentes en un entorno de cambios muy veloces.”

Mark Schwartz

La importancia de que los activos de TI sean estructuralmente flexibles y ágiles no puede ser subestimada. Puede ser el factor determinante para toda la operación. Por lo tanto, las empresas deben evaluar cuidadosamente su crecimiento y la complejidad de sus servicios.

¿Es que la transformación digital va a alinearse con los objetivos a largo plazo de la organización? ¿La empresa cuenta con la experiencia técnica, estratégica y los recursos para respaldar este enfoque? ¿Existe una necesidad temporal de un mentor o partner para facilitar la transición? Una buena idea es hacer un análisis SWOT y una auditoría de competencia.

Hoy en día la brecha entre tecnólogos y profesionales de negocios no es tan amplia como antes. Las tendencias actuales indican que la brecha se reduce continuamente. La arquitectura de microservicios favorece esa tendencias. Si la escalabilidad, la flexibilidad, el desarrollo y despliegue incrementales están alineados con tu modelo de negocio digital, seguramente estés considerando migrar tu infraestructura a microservicios.

Sigue atento a nuestras próximas publicaciones en el blog sobre estrategia tecnológica y otros temas relacionados

Related Posts