Arquitectura de microservicios y su importancia en los modelos de negocio innovadores


.. y esto lo implementamos con un software único que nosotros mismos desarrollamos…”  Esta es una frase que escuchamos en muchas de las Startups que implementan modelos de negocio innovadores. 

Pensemos en los llamados grandes unicornios como por ejemplo AirBnb. AirBnb compite con… hoteles? Corredores de propiedades? Para administrar hoteles y para hacer corretaje de propiedades existe un sinfín de soluciones de software ya validadas en el mercado. Sin embargo, para contactar a personas con espacio disponible en sus casas con otras personas que buscan un lugar para quedarse, simplemente no existe software alguno, AirBnb tuvo que crearlo.

Si bien combinaron inteligentemente muchas piezas existentes, su core y gran parte de su UI fue ciertamente desarrollado desde cero con el éxito que ya todos conocemos.

Pero, qué hubiese ocurrido si a medio camino los fundadores de AirBnb se hubiesen dado cuenta de que necesitaban pivotear su modelo de negocios hacia por ejemplo a ofrecer su plataforma como un whitelabel para “pequeños Airbnb locales”  o quizas pivotear hacia ofrecer un espacio a corredores de propiedades para que puedan listar propiedades por un fee mensual.

El pivoteo del modelo de negocios es una situacion muy comun en Startups que abordan modelos de negocio y modelos operativos realmente innovadores y si esas Startups desarrollan software el riesgo es grande, pues generalmente han invertido mucho tiempo y dinero en desarrollar Sofware que deja de ser útil una vez que el modelo de negocio cambia.

Es aquí donde una arquitectura de microservicios se vuelve tremendamente relevante!

Microservicios es un aproach de arquitectura tecnológica que consiste en separar una plataforma de servicios grande en varios servicios muy pequeños. Estos pequeños servicios deben:

  1. Son independientes entre sí: Es decir, un microservicio puede hacer su trabajo sin necesidad de los demás microservicios.
  • Aporten valor: Es decir que aporten funcionalidad relevante al problema que intentamos resolver.
  • Estén bien definidos: Tengan una formato de entrada y salida bien definidos.
  • Estén bien organizados: Están agrupados y documentados bajo estructuras que hagan sentido y faciliten su entendimiento.

De vuelta a Airbnb. Probablemente Airbnb tenga un microservicio que devuelve el costo que tendrá listar una propiedad, otro microservicio probablemente devuelva el descuento de un codigo de promocion, otro probablemente publique la propiedad y así probablemente AirBnb tendrá cientos o miles de ellos. Seguramente los 2 primeros estarían organizados bajo el dominio de “Pricing” y el último pertenecería al dominio de “Listing”.

Supongamos ahora que Airbnb pivotea su modelo de negocios. Si esto ocurriese la mayoria de esos microservicios siguen siendo válidos, pues la función específica que cada uno de ellos desempeña sigue siendo necesaria para el nuevo modelo de negocios!

Por el contrario, si AirBnb hubiese sido una aplicacion totalmente monolítica, el costo de entenderla, descomponerla y adaptar los componentes se hubiese acercado bastante al costo de partir algo desde cero y gran parte de esa gran aplicación monolítica hubiese terminado siendo desechada.

Cuando una Startup inicia, es conocido su origen pero no su destino. Si una startup se basa mucho en el Software, es tremendamente importante que ese Software se construya con una arquitectura real de microservicios, pues de otro modo un pequeño pivoteo en el modelo de negocio puede invalidar todo el software desarrollado y terminar “quemando” todos los recursos invertidos en el.

Leave a Reply