Multi-tenencia: ¿cómo soportar múltiples clientes en tu aplicación?

preview_player
Показать описание
El video definitivo sobre multitenencia! Hablaremos de qué trata, cómo puedes organizar los datos y también discutiremos los patrones de arquitectura y diseño que te ayudan a implementarla.

Patrón de arquitectura microkernel

MIS CURSOS

#ManuelZapata #MultiTenencia #Cliente #Aplicación
Рекомендации по теме
Комментарии
Автор

En una ocasión para un cliente integré un pasarela de pagos online en México en su plataforma que funcionaba de maravilla. Hasta que llegó un momento donde, por decision de negocio, se optó por cambiar de proveedor y tuve que migrar a otra pasarela y con ello las implementaciones a nivel de la plataforma. Gracias a que había definido un Adaptador y Fábrica, la migración no tuvo mayor complicación. La fábrica generaba las instancias según la interfaz que el adaptador arrojaba y el resto de las implementaciones funcionaban sin afectaciones por la migración.

Genial tu video, Manuel.
Saludos.

AlexAcostaB
Автор

Hola, buen video 👍🏽
Una consulta, tendrás un vídeo o sabrás de una web o vídeo sobre la elaboración de una base de datos multi tenant (para un Saas), es decir de un caso o negocio completo..??? 🤔🤔🤔

noeliafernanda
Автор

Excelente contenido Manuel. Para este tema, deberías haber un video del cómo lidiar en las peticiones REST para un multi tenencia. Qué tengas un excelente día!

oscarbarajas
Автор

Hola Manuel excelente contenido, te felicito.
Tienes algun video en donde demuestres como implementar lo expuesto en el video? Por ejemplo .net core y c#
A la espera de tu valiosa respuesta.

nelsongomez
Автор

Justo en mi trabajo existe ese problema... El código es spaghetti ... Gracias por el contenido, estudiaré los patrones que mencionas para implementar en mi trabajo

jaajcade
Автор

Excelente video. Alguien sabe si sería útil el uso de Keycloack para el desarrollo en este tipo de infraestructura?

MegaJeanpierr
Автор

Hola manuel muchas gracias por tu explicación. Entiendo de que va todo, pero sigo sin saber que me convendria hacer en mi caso. Estoy desarrollando un sistema, el cual voy a vender a varios clientes, por un lado estoy con tecnologia Next JS, y como API PHP, que estoy pensando si usar php puro o laravel como api. El sistema va a ser un sistema administrativo, a nivel de recursos de procesamiento, generar archivos pdf creo seria una de las funcionalidades que demande un poco mas de procesamiento, pero despues no creo que consuma muchos recursos. La DB seria Mysql, ahora... No tengo idea que cantidad de clientes puedo llegar a captar. Si un sistema llega a tener 8000 clientes, sistema sencillo, querys dentro de todo sencillas, y solo generacion de archivos pdf por ejemplo, a que debo apuntar? Y como manejas el almacenamiento (archivos subidos por el cliente) total de informacion? Me da mucha duda el semejante peso que puede llegar a tener una db con todos los datos de los clientes.

marioolivera
Автор

Hola Manuel, muchas gracias por compartir este tipo de videos!

Quería saber si me puedes compartir por favor más recursos, cursos o información para saber cómo comenzar a implementar esto en una aplicación. Muchas gracias!!

oscargarcia
Автор

Hola. La estrategia híbrida que propones es confusa, una BD por cliente pero a la vez con un tenanId? Si te entendí bien? si es así.. no tiene mucho sentido. De hecho la estrategia mas optima en mi concepto es el de esquemas, pues funciona con un aislamiento tan alto como tener BD separadas (también te libras de estar filtrando por un tenantId que es peligrosisimo) con el bajo costo y optimización de una columna tenantId en las tablas. El problema que dices de mantener las tablas actualizadas tanto para la estrategia de BD x tenat como Esquema x tenat es el mismo y se resuelve creando un un script muy bien hecho multi thread que sea capaz de ejecutar los cambios en todos los esquemas/bd tan rápido como sea posible, nosotros corremos scripts de actualización de varios cambios DDL en uno o dos minutos afectando 2000 esquemas cada una con 300 tablas aprox (600, 000 tablas en total)

davidpccode
Автор

En mi experiencia metiendome con esta arquitectura dañando erp's, yo pienso que el problema no es desarrollarlo si no desplegarlo y escalarlo. Porque la plataforma a final del día escala como un monolito, y eso ya no es bueno para sistemas grandes que siempre deben estar disponibles. Por lo que quizás la mejor solución sea otra, tal vez combinandola con una arquitectura orientada a servicios. Además de que esta arquitectura puede resultar si el sistema es de 0, no en sistemas legados. Ahi lo único que te queda es microserviciar.

JIDiaz
Автор

He diseñado una aplicación web Multi-tenant, única aplicación con múltiples bases de datos(DB) y los retos fueron los siguientes:
1- Crear la DB por cada tenant registrado en la aplicación.
- En este punto tengo una clase que crea al tenant, y usuario de acceso a la DB para finalmente con los datos anteriores ejecuta migraciones del tenant.
2- Para acceder a la DB del tenant, al iniciar sesión se valida información de conexión para ver sus datos.
3- Se dice que actualizar la estructura de DB es complejo y es verdad, pero logre crear una clase que al hacer login se obtienen los datos de conexión hacia la DB del tenant, uso esa información para validar que migraciones están pendientes y ejecutarlas de ser necesario, esto ayuda a no generar updated de la DB de forma masiva sino por demanda cada vez que inicia sesión el tenant o los usuarios pertenecientes al tenant.

¡En cuanto al vídeo muy bien explicado!

cmarsiglia
Автор

Haz un project multitenant partiendo de esta teoria seia genial aprender de ti la forma en como nos brindas enseñansas

develpers
Автор

Ahora, como puedo aplicar la opción número 2 ?

eriksonsamayoa
Автор

una pregunta estoy empezando con node tengo una pequeña api pero no entiendo como podria conectarme a diferentes base de datos dependiente de cliente como lo hago tendran un curso o alguien podria darme asesoria??

josefrancisco
Автор

Muchas gracias Manuel, seria genial que hablaras un poco para complementar sobre las tecnologías que facilitan este tipo de implementacion, que d hecho existen evitando hacer de cero lo que nos compartes y se adecuan a distintos tipos de lenguajes, gracias de nuevo

diegotorres
Автор

Muy buen video. Recomiendas algún libro, sitio o curso para aprender a desarrollar multi-tenencia ? En mi caso estoy desarrollando una aplicación .Net Core 3 + Angular 8 y me interesa saber como pudo implementarlo.

dvdcampos
Автор

Hola Manuel, en realidad no tengo experiencia sobre este tema, tendrias links donde podria informarme mas. Gracias buen contenido

gonzasotocastro
Автор

Te agradeceria mucho si pudieras recomendarme un libro que implemente o oriente sobre esta arquitectura.

efrainespaderocanaviri
Автор

Excelente, este canal debería tener muchos mas suscriptores 😜

daviscruz
Автор

Excelente video, tengo una duda sobre llevarlo a practica... por ejemplo, ¿que tipo de dato debería de ser un campo *tenant_id* ?

aguileraq