Las empresas y organizaciones, desde Netflix hasta la BBC, están migrando cada vez más de una arquitectura monolítica a una de microservicios. Los microservicios se ajustan perfectamente al modelo de nube y proporcionan a las empresas un software ágil y personalizable. Las empresas tienen la oportunidad de desarrollar rápidamente su software y destacarse en un panorama tecnológico cada vez más competitivo.

Un informe reciente de Forrester [Ed: comisionado por Ensono] reveló que el 76 por ciento de las organizaciones cree que los microservicios son una agenda comercial crucial, con solo el cuatro por ciento de las organizaciones en desacuerdo. Con los microservicios listos para ser aún más esenciales para las estrategias de TI de las empresas en 2020, ¿cómo debería implementar este modelo?

¿Qué son los microservicios y por qué hacen que su negocio sea más eficiente?

El término "microservicio" es relativamente nuevo. En su uso actual, ni siquiera tiene 10 años. Pero las ideas han existido durante mucho más tiempo a medida que los desarrolladores se han esforzado por hacer que el código sea menos frágil y que los sistemas de software complejos a gran escala sean más ágiles para cambiar.

Tradicionalmente, las aplicaciones se construían en una arquitectura monolítica, un proyecto compuesto por módulos que trabajan juntos para formar una sola aplicación autónoma. Sin embargo, esto tiene sus limitaciones. A medida que la aplicación crece y los equipos de desarrollo agregan código y capacidades, se vuelve más compleja. Ocasionalmente, se volverá demasiado complejo para que un solo desarrollador lo entienda, por lo que corregir errores e implementar nuevas funciones se vuelve difícil y propenso a errores. Como resultado, las pruebas y actualizaciones se vuelven difíciles. La fiabilidad también se convierte en un problema, ya que un error en cualquier módulo puede afectar la disponibilidad de toda la aplicación monolítica.

Se diseñaron microservicios para resolver el problema inherente del diseño monolítico. En pocas palabras, "microservicios" describe un proceso mediante el cual las aplicaciones se segmentan en una serie de partes o servicios más pequeños y poco acoplados.

Los beneficios clave incluyen:

  1. La complejidad se reduce a medida que cada microservicio se convierte en una mini aplicación que es mucho más simple y fácil de entender.
  2. Los ciclos de desarrollo se aceleran ya que el equipo de desarrollo se centra únicamente en ese servicio y los servicios pueden escribirse una vez y ser utilizados por muchas aplicaciones.
  3. Los ciclos de actualización se aceleran y el riesgo se reduce, ya que los servicios individuales se pueden actualizar independientemente de los otros servicios.
  4. Los microservicios pueden ejecutarse en la nube en una máquina virtual, en un contenedor Docker o en instancias sin servidor, lo que lo hace muy adecuado para los servicios modernos en la nube
  5. Los microservicios son más fáciles de escalar y es más rápido identificar y resolver cuellos de botella

Un buen ejemplo de cómo los microservicios se han utilizado con éxito se puede encontrar en Netflix, un gigante de la transmisión. Netflix funcionó con un modelo monolítico hasta 2008, cuando sufrió una interrupción de TI debido a una importante corrupción de la base de datos. Después de esto, se tomó la decisión de separar la aplicación, pasando de servicios monolíticos a múltiples servicios independientes para aumentar la escalabilidad, la confiabilidad y la disponibilidad.

Como indica el mismo informe de Forrester, el 29 por ciento de las empresas tienen dificultades con la duración de sus ciclos de implementación, y el 16 por ciento no cumple con las fechas de entrega. El aumento de los ciclos de implementación a través del microservicio puede dar como resultado un crecimiento más rápido de los ingresos y la reputación, y la capacidad de lanzar varias veces al año e incluso varias veces al día.

Cómo implementar microservicios en su negocio

Con todo esto en mente, si está pensando en rediseñar la infraestructura de su empresa, hay pasos que puede seguir para garantizar que su implementación sea exitosa. El cambio de monolítico a microservicios es significativo, pero hay formas de hacer que la transición sea lo más fluida posible, para que usted y su empresa puedan obtener los beneficios de la arquitectura basada en la nube.

No comience con una estructura monolítica y espere que funcione como un microservicio. No hace falta decir que los microservicios y los monolitos son modelos completamente distintos; Ambos tienen beneficios y desventajas.

Asegúrate de definir tus objetivos desde el principio. Cree un proceso de gobernanza bien definido para que no haya confusión sobre quién posee qué y asegúrese de automatizar la mayor parte del proceso posible.

Asegúrese de tener una plataforma bien planificada y completa para desarrollar microservicios antes de comenzar, ya que probablemente necesitará una nueva plataforma de desarrollo.

Al implementar su microservicio, piense detenidamente sobre lo que quiere que logre exactamente su microservicio. ¿Cuántos servicios particionados cree que requiere su software y cómo evita que su aplicación se hinche? Trata de llegar a un punto medio haciendo tu investigación de antemano.

Intenta ser flexible cuando se trata de lenguaje. Elija un idioma que simplifique su código y priorice la velocidad y la automatización. Un beneficio adicional de los microservicios es que no todos los servicios deben estar escritos en el mismo idioma, por lo que no estará vinculado a uno solo.

Cultivar un sistema de monitoreo confiable también es extremadamente importante. La naturaleza escalable de los microservicios exige un sistema de monitoreo sólido, por lo tanto, elija un sistema que sea maleable y que pueda adaptarse a la naturaleza cambiante de los microservicios.

Su empresa continuará implementando nuevas tecnologías que reflejan los deseos de sus clientes, por lo tanto, asegúrese de que su arquitectura de microservicios sea reutilizable. Esto le ahorrará a usted y a su organización un tiempo valioso, al tiempo que garantiza una base sólida para nuevos productos.

Finalmente, comprenda y esté preparado para los cambios culturales que se necesitarán para desarrollar utilizando microservicios. Los microservicios deberían hacer que el desarrollo sea más rápido y más eficiente, pero implementarlos requerirá una mentalidad diferente.


Por Paul Durzan, vicepresidente senior de gestión de productos en Ensono