20 puntos por xguru 2022-03-28 | Aún no hay comentarios. | Compartir por WhatsApp

"La multitenencia es la base oculta que hace que la escalabilidad de SaaS sea extraordinaria"

  • Los altos márgenes y la escalabilidad aparentemente infinita del modelo SaaS son la razón por la que el mercado bursátil, los inversionistas y los fundadores se lanzan a este sector
  • Lo que lo hace posible es precisamente la infraestructura, en especial el concepto de "multitenencia"
  • Hoy en día casi todas las empresas usan la nube y SaaS, y la clave para implementar soluciones en la nube es justamente la multitenencia
  • Marc Benioff, fundador de Salesforce, dijo que "la multitenencia es un requisito indispensable para que un proveedor SaaS tenga éxito"
  • ¿Qué es exactamente la multitenencia y por qué es importante?

Multitenencia: construir un sistema de metro

  • Primero entendamos la tenencia única
    • Cada cliente usa una aplicación y una base de datos propias
    • Es decir, si hay 100 clientes, eso significa 100 servidores, 100 aplicaciones y 100 bases de datos
    • La tenencia única requiere mucho tiempo, dinero y esfuerzo para mantenerse a gran escala
  • Viéndolo desde la perspectiva del transporte, para ir al trabajo uno puede manejar o tomar el metro
    • Manejar es cómodo, pero hay que pagar el costo del auto, combustible, estacionamiento y además el costo adicional del tráfico y la contaminación
    • Tomar el metro es relativamente barato, ayuda a mantener limpias las calles y daña menos la capa de ozono
  • Si los 50 mil trabajadores del World Trade Center (WTC) fueran en auto, se tendría un sistema complejo
  • Por eso surgió algo como la multitenencia, similar al metro, para reducir costos y gastos indirectos, y disminuir en gran medida el "caos" del entorno

¿Por qué ahora?

  • ¿Por qué cambiarse al metro? Si de verdad es tan bueno, ¿por qué no se había elegido hasta ahora?
  • La respuesta está en la "nube". La popularidad del cloud computing y de los negocios SaaS está creciendo de forma explosiva
  • Si vemos el mercado público, las empresas que antes ofrecían productos self-hosted están volteando rápidamente hacia la nube
  • Empresas como Atlassian, Autodesk, Elastic y Microsoft están ofreciendo soluciones alojadas en la nube y registrando un crecimiento explosivo de ingresos
  • Atlassian agregó más de 10 mil clientes solo el trimestre pasado. Si mantuviera a esos 10 mil clientes con tenencia única, la empresa tendría dificultades por el trabajo de ingeniería individual, la gestión de recursos, la complejidad y el agotamiento del talento que debería resolver problemas del negocio principal
  • Por lo tanto, las startups en etapa inicial pueden optar por comenzar con un entorno de tenencia única "Quick-and-Dirty" (rápido y simple), pero a medida que escalan y empiezan a crecer, inevitablemente enfrentan deuda técnica que solo puede resolverse en un entorno multitenant
  • A medida que crecen el cloud computing y los negocios SaaS, también crece el overhead de las soluciones single-tenant y aumenta la demanda por multitenencia

Ventajas de la multitenencia

  • La multitenencia aporta mucha magia a los proveedores SaaS
  • La capacidad de compartir infraestructura a través de toda la base de clientes cambia las reglas del juego
  • Además de la escala, hay algunos secretos más en las ventajas que ofrece la multitenencia

Ingresos de ventas (Margins)

  • Aprovechar infraestructura compartida impacta directamente en las ganancias del proveedor cuanto más se usa esa infraestructura
  • La multitenencia requiere menos recursos tanto de forma directa (en términos del costo del producto vendido) como indirecta (porque permite que el personal clave concentre su energía en otras áreas), en costos de personal y software/hardware
  • Como resultado, aumenta el margen bruto y finalmente se genera flujo de caja libre (Free Cash Flow), lo que puede llevar a una valuación más alta en el mercado

Visibilidad (Visibility)

  • El uso de multitenencia es muy favorable para entender el rendimiento de la infraestructura o para saber si los costos se están reflejando en determinados grupos de clientes
    • Los datos deben poder consultarse de forma agregada o por cliente
  • En una infraestructura single-tenant, analizar métricas cross-customer es muy difícil porque los datos de los clientes están dispersos
  • Sin embargo, en una infraestructura multitenant, es posible observar toda la base de clientes y detectar tendencias macro
    • Esto puede verse a nivel de logging, de base de datos o de monitoreo del rendimiento de la aplicación, lo que representa una gran ventaja para los equipos cross-functional

La complejidad de la multitenencia

  • Toda "magia" tiene problemas, y la multitenencia no es la excepción

Problema 1: disponibilidad y vecinos ruidosos

  • Supongamos que un e-commerce guarda todos los datos de clientes en una sola base de datos, y que la mayoría de los usuarios compra solo uno o dos artículos al mes, pero un usuario compra 5 mil al día
    • Si la base de datos no es lo suficientemente robusta como para manejar el aumento de carga de ese cliente, toda la base de datos podría caerse y otros clientes no podrían comprar
  • Este es un gran reto, y lleva a decisiones de particionamiento de datos
    • Particionamiento tipo silo (base de datos separada por tenant) vs. particionamiento pooled (base de datos compartida entre tenants)
    • El particionamiento tipo silo puede resolver los problemas de algunos clientes, pero entonces se vuelve al problema original de tener que gestionar muchísimas instancias
    • El particionamiento pooled funciona bien, pero si un cliente genera carga y provoca un problema, puede causar lentitud o incluso una caída del sistema

Problema 2: recursos compartidos y seguridad de datos

  • Todos los clientes usan los mismos recursos y, como no existe una implementación estándar de multitenencia, puede haber bugs técnicos que mezclen datos entre distintos tenants.
  • Si se está atendiendo al mismo tiempo a clientes que compiten entre sí, esto puede ser un problema extremadamente riesgoso
  • El equipo técnico debe evaluar leyes de soberanía de datos (Data Sovereignty Laws) y regulaciones que afecten el aislamiento entre tenants

Resolver la complejidad

  • La multitenencia se ha convertido en uno de los pilares principales de las aplicaciones SaaS, pero todavía hay mucha complejidad que considerar en la etapa de implementación.
  • El CEO de Cloudinary enfatizó que "la multitenencia es clave para lograr excelencia operativa (Operational Excellence), pero hacerlo bien requiere mucho conocimiento e inversión".
  • Boldstart y F2, autores de este texto, invirtieron en una startup (actualmente en modo stealth) que resuelve estos problemas de multitenencia
  • Hay muchas cosas complejas en los sistemas multitenant, pero considerando la deuda técnica que aparece al escalar sistemas single-tenant, ya no hay mucho que pensar
    • Esto se debe a que, para resolver esa deuda técnica, se termina asignando al mejor equipo de ingeniería y consumiendo recursos en áreas que no son el negocio principal
    • Las startups inteligentes eligen planear, construir y mantener un entorno multitenant desde el principio

Aún no hay comentarios.

Aún no hay comentarios.