¿Cómo encaja una arquitectura basada en microservicios en una aplicación basada en SaaS multiinquilino?

Todas estas son buenas respuestas, pero en su mayoría contrastan las definiciones de multicliente versus microservicios, en lugar de responder a la pregunta original de cómo encajan.

La respuesta es “con mucho cuidado”.

La tenencia múltiple no implica una sola base de datos. Si tiene 50,000 clientes, tendrá dificultades para reunirlos a todos en una base de datos. Sin embargo, casi siempre implica una base de datos que tiene muchos, muchos clientes.

Tome el ejemplo más simple: la identificación de la cuenta. Casi todas las tablas en una base de datos multiinquilino tendrán una identificación de cuenta. Si divide la aplicación en 10 microservicios, cada servicio llevará consigo las tablas relevantes necesarias para crear el servicio. Ahora, elimine una cuenta. Ooops! Ahora tengo 10 servicios que deben mantener la integridad de la identificación de la cuenta en esos servicios.

Por lo tanto, la primera regla general sería descargar servicios que son independientes de la cuenta, por ejemplo, catálogo de productos, integraciones de terceros, procesamiento de datos masivos, servicio de contenido genérico, envío de correos electrónicos, servicios de mensajes, etc.

En muchas aplicaciones SaaS, eso no lo llevará lejos, porque la mayor parte de la aplicación estará haciendo cosas específicas de la cuenta. Luego, deberá observar los patrones de uso en los que podría romper partes del sistema que requieren una interacción limitada e infrecuente. Un buen ejemplo podría ser un servicio de registro o un servicio de facturación. Un servicio de registro podría separar a los clientes potenciales que nunca compran la aplicación de los clientes reales, y solo se comunica con el cliente potencial una vez que se crea la cuenta. Un servicio de facturación solo se comunica con el resto de la aplicación cuando ocurre un evento de compra, que probablemente sea menos de una vez al mes y tal vez una vez al año en la renovación.

La buena noticia es que SaaS (Software-as-a-Service) solo indica cómo el cliente o cliente tiene licencia y entrega / accede a un software.

Como Glenn Gillen mencionó en otra respuesta, “No hay nada acerca de una aplicación multiinquilino que prescriba que debe tener una sola base de datos”.

Los productos SaaS están alojados en la nube por el proveedor, lo que elimina la necesidad de que las organizaciones instalen y ejecuten aplicaciones en sus propias computadoras o en sus propios centros de datos. El cliente solo paga una tarifa mensual / anual para acceder al software. En la nube, el proveedor de software puede construir su producto con arquitectura de microservicios como cualquier otra persona podría hacerlo.

¡Espero que esta información ayude! Puede obtener más información visitando mi eBook, “Microservicios para Startups”.

Técnicamente, SaaS es un modelo de licencia que define la forma en que se implementan y acceden los sistemas. Las tecnologías utilizadas para construir dicho software pueden variar. Puede construir aplicaciones SaaS de forma monolítica, u orientada a servicios, distribuida. SaaS también podría considerarse como un paradigma más amplio para desarrollar y distribuir su aplicación, mientras que MSA es un enfoque arquitectónico. Entonces vería MSA como una de las metodologías de implementación para SaaS.

No hay nada en una aplicación multiinquilino que prescriba que debe tener una sola base de datos. Es que una “instancia única” de la aplicación necesita poder atender a múltiples clientes.

Como ha dicho, “una aplicación basada en microservicios habla de servicios independientes”. De lo que está hablando es de romper ese concepto lógico más amplio de la “aplicación” en una serie de servicios separados y discretos, cada uno enfocado en una parte específica del dominio del problema más amplio. Me gusta pensar en términos similares como el diseño orientado a objetos y el tipo de encapsulación de responsabilidad con el que algunos programadores ya están familiarizados. Excepto en lugar de solo encapsular responsabilidades dentro de una clase / objeto, luego trasladamos esa clase / objeto a su propio servicio dedicado.

En todos estos escenarios todavía hay una aplicación lógica singular. Todo lo que hemos cambiado es cómo se encapsula el código y dónde se ejecuta.

La arquitectura de múltiples inquilinos no recomienda una sola base de datos, lo que implica es que debe compartir los recursos entre los inquilinos.

Si tiene una arquitectura basada en microservicios, implica confiar en un único punto de cada servicio de respaldo en lugar de tener una instancia separada para cada inquilino.

Glenn Gillen respondió muy bien. Ambos son conceptos diferentes. SaaS se basa más en la aplicación como servicio y puede o no ser monolítico, pero cuando se trata de Microservicios, se trata más de la arquitectura, que es la versión madura de la mezcla SOA y DDD, y garantiza Enfoque monolítico.

Gracias

Multi inquilino SaaS es una perspectiva de aplicación. Implica que los recursos se comparten entre los inquilinos, se puede usar la misma base de datos o lo que se pueda imaginar

Los microservicios son una perspectiva de la arquitectura de aplicaciones.

Techello es un marco de desarrollo de aplicaciones basado en SaaS para múltiples inquilinos. Es el ejemplo de trabajo correcto para esta pregunta. Explore nuestro sitio web para saber más.

More Interesting

¿Cuáles son las ventajas y desventajas de todos los diferentes paneles de KPI para empresas SaaS?

¿Existe alguna herramienta que combine la facilidad de comunicación de Intercom, el enfoque analítico de Kissmetrics con la interfaz de análisis de datos fácil de usar de Mixpanel (producto)?

¿Cuánto capital suele tomar una empresa SaaS para llegar a $ 1MM ARR?

¿Qué plataforma podemos usar para administrar a nuestros vendedores?

¿Hay algún buen foro SaaS que hable sobre ventas?

¿Cuáles son las métricas financieras más importantes para que mida una startup SaaS?

¿Cómo debe cobrar un ISV empresarial por una licencia de plazo anual al migrar de un modelo de licencia perpetua?

Comparación improbable: QuickBase vs NetSuite?

Jason Lemkin: ¿Qué materiales de ventas son más importantes para las empresas SaaS empresariales de etapa temprana (beta) y cuáles son algunos buenos ejemplos?

Si una valoración 409A disminuye el precio de ejercicio, ¿cómo afecta eso a los empleados con opciones a un precio de ejercicio más alto? ¿Se puede ajustar el precio de ejercicio a la baja?

A partir de marzo de 2015, ¿cuáles son las mejores herramientas de gestión de suscripción y facturación de SaaS?

¿Cuáles son algunos problemas que enfrentaremos al lanzar un nuevo producto con una extensión de dominio .io porque el .com está tomado y en uso?

¿Es una buena idea alojar una aplicación empresarial SaaS en PaaS?

¿Quién maneja la retención de usuarios en una empresa SaaS?

¿Cuánto puedo cobrar por una aplicación B2B de iPhone?