Feda /dev/ - No Javascript allowed

Normas
spoiler
Personas non gratas
Memes feda dev




Kaledros

#12569 Se me olvidaba comentar: esto no sirve para los sábados. Los sábados sólo debería irse a comprar si ha sido completamente imposible ir entre semana, no hay hora buena durante ese día infernal.

B

#12570 Paga las licencias, primer aviso.

1 respuesta
privet

ワスドフ(W λsdf)- SOY YOOOO

1
desu

#12572 paso de dar dinero a las marionetas trabaja gratis de las FAANGs

aren-pulid0

😥😥 ni de los emojis te sabes el shortcut

pajeet

AikonCWD

/help https://www.mediavida.com/foro/gamedev/ayuda-iteracion-bucle-for-662750#1

desu

En un sistema distribuido donde iria la persistencia?

Tengo el servicio A y el servicio B. Ambos consumen de unos datos de tipologia X.

Como ambos consumen empiezo teniendo una psql por ejemplo de X.

Si con el tiempo quiere añadir una capa en memoria, Redis p.e

Entiendo que esta capa de memoria de nuevo si sola la utiliza un servicio iria dentro de este servicio y formarian un bloque.

Ahora la duda, si de nuevo hubiese multiples servicios que consumen de X y quiero que pasen por la Redis deberia tener esta redis a nivel de X o una redis por servicio A, B, ....?

En que momento tiene sentido tener una unica fuente y cuando no?

Entiendo que lo mejor es siempre una unica fuente y que solo hay casos extremos donde duplicaria servicios. En cualquier sistema distribuido, lo mejor siempre es no tener cosas repetidas ni distribuidas obviamente xd

He simplificado, imaginemos que tenemos 10 servicios que requieren de 3 o 4 DB y me gustaria añadir caches.

@isvidal duda de kafka

4 respuestas
danao

#12577 Lo normal es montar un servicio en alta disponibilidad del que tirasen el resto de aplicaciones, cada uno con un acceso a medida, en caso de redis, su cola con sus permisos para escribir y leer y demás.

Montar adhoc por cada servicio un redis es un suicidio operacional salvo que esos servicio sean tan grandes y tengan tanta identidad y criticidad que es mejor tenerlos separados por si tienes problemas de rendimiento descartar que haya otra aplicación consumiendo de más, pero en las plataformas lo que se hace es montar los servicios que se van necesitando para el uso de todos, de hecho tecnologías como k8s y demás fomentan esto aunque cada vez van más a nube que usas servicios nube directamente conectados, tener un k8s donde tienes varias aplicaciones cada una aislada en su namespace y con usuarios para cada uno los servicios periféricos que necesitan como una base de datos o directamente una capa de API Gateway para todos que gestiones los certificados y no uno para cada uno.

Esto te responde a la duda?

1 3 respuestas
wdaoajw

#12577 además de lo que dice #12578 es buena práctica no exponer directamente las BBDD, si no colocarles un servicio delante que haga de interfaz y solo ese tenga credenciales específicas de las bbdd

1 respuesta
JuAn4k4

#12577 Microservice Chasis https://microservices.io/patterns/microservice-chassis.html para cross cutting concerns como caching (Redis) y no andas duplicando cosas.

Luego ya está los niveles de caching y dónde los lo pones: Service vs Client, o en los dos, en datos, etc..

1 respuesta
Kaledros
#12577desu:

imaginemos que tenemos 10 servicios que requieren de 3 o 4 DB y me gustaria añadir caches.

Una caché por cada DB y ya luego si quieres un load balancer o lo que sea, pero yo no añadiría más de una caché por fuente de datos o se te puede convertir muy rápido en una pesadilla de coherencia. Eso asumiendo que cada DB tiene datos distintos y no hablamos de 3 o 4 copias de la misma DB.

1 1 respuesta
desu

#12578 Me estas diciendo que añada una capa intermedia entre cualquier aplicación de usuario final, para gestionar ahi el tema de permisos y visibiliades.Corrigeme si lo digo mal. Si esa seria la idea, pero en la practica no me he puesto a diseñarlo aun.

#12579 Si claro pasaria por una capa intermedia de permisos donde ahi expondria multiples apis y multiples backends. noveo si los permisos deberia meterlos antes de estos servicios o despues, como tengo unsolo servicio que mehace de puente a todas las apis y backends ??? Me veria obligado a darle la vuelta y meter los permisos detras de las peticiones, intercepto peticion y filtro. Nse como hacer esto en la practica .

USUARIO FINAL
API 0 - API 1 - BACKEN END USUARIO FINAL
CAPA INTERMEDIA DE PERMISOS

vs

USUARIO FINAL
CAPA INTERMEDIA DE PERMISOS
API 0 - API 1 - BACKEN END USUARIO FINAL

La api 0, 1 por ejemplo serviria datos de las bases de datos, el back end usuario final podria ademas gestionar entidades.

No veo a nivel arquitectura como deberia separarlo, me lo voy a mirar.

Ademas tengo la duda de gestion de entidades internas de laplataforma, que para mi eso seriaun backend nuevo interno y unos permisos especiales... en teoria con este modelo que proponeis se podria.

#12581 Si exacto, esto es lo que me parece obvio y tenia asumido.

#12580 uff pretendo alejarme de cosas de microserviciosla verdad... el ejemplo de la redis en verdad no me interesa ahoramismo, solo debo poderpermtirlo. era un ejemplo para el tema de acoplamiento. no quierohacer mil micro servicios.

NSFW

Disculpad ortografia me han dado un laptop nuevo y el espacio va raruno.

3 respuestas
X-Crim

Estoy igual que tú @desu

NSFW

Vamos apañaos

10 4 respuestas
Markitos_182

Demasiadas cosas serias.

#12583 Tío, eso es una wec, joder. Con una base de datos con su perfil y todo eso.

1 respuesta
X-Crim

#12584 y lo quiere para dentro de 6 meses pffff es que joder, no sabe que tengo una vida?

desu

#12583 Uff que buena referencia. Mis putos dies. Creo que eso era de @eondev no?

1 respuesta
Wei-Yu

#12583

desu

Creo que ya lo tengo.

Todos los inputs externos, de clientes finales o para gestionar el sistema, que consuman APIs o webservice o backends los paso por la capa intermedia de inputs a sistema interno.

Todos los outputs externos, de sistemas internos para enviar configuraciones a dispositivos iot, enviar push al usuario final, lo levanto en servicios a parte.

Lo segundo es un poco overkill... pero bueno, me parece clean.

La clave por lo que veo es intentar que los flujos sean lo mas unidireccionales posibles, si tengo algo bidereccional mirare de pasarlo a dos unidireccinales para poder gestionarlos mas facil.

JuAn4k4

#12582 Como si tienes 3 servicios, te evita duplicar cosas y luego ganas en muchas de homogeneidad, tracing, logging, monitoring, caching, etc. Evita que tus 3 servicios evolucionen de formas diferentes y luego sea un chocho homogeneizarlos. Todo esto para cosas cross funcionales.

Para permisos, tendrás que ver que modelo planteas, RBAC/ABAC, ACLs y tal. Contra más cerca de los datos esté, más seguro será (de cara al dev metiendo la gamba).

1 respuesta
desu

#12589 No tengo ni idea de nada de esos modelos que me dices. Esta semana me lo voy a seguir mirando ya actualizare, lo que he posteado en #12588 creo que es lo mas importante ahora mismo...

Ya hare update si eso otro dia, tengo el kafka a punto de estar al toque.

privet

#12583 https://www.mediavida.com/foro/dev/tema-general-de-diseno-436636
Obras de arte aquí

danao

#12582 De arquitecturas IoT y de ingesta de datos no te puedo ayudar porque la verdad no se como funcionan, pensaba que hablabas de como se gestiona en una plataforma para aplicaciones.

Lo que veo es que son dos tipos de input no? (de lo que has pintado)
Por un lado tienes todo el IoT que llega al kaftka y éste estará expuesto a todo internet claro, tendrás que ver como securizarlo pero entiendo que las conexiones IoT to Katfka están securizadas por certificado cliente.
Por otro lado, tienes procesos que cogen datos del Kaftka, los transforman y los vuelven a meter homogeneizados y estos datos son los que van a las bases de datos.

Y luego hay unos usuarios finales que consumen esos datos a través de unos Webservices (WS) que tu montas entorno a esas bases de datos no y es donde está realmnete tu pregunta, ya que prevees que como van a tener uso intensivo y manejar mucho volumen necesitarás cachés.

El tema de identidades lo delegaría en un LDAP y a poder ser que cada cliente tenga su certificado cliente y sea él el responsable y tu en los WS filtras por el DN. Tendrás que ver como dar esos certificados, que es la parte compleja, seguramente crearás una CA, sacas una subCA de esa CA (para control de brechas de seguridad) y con esa firmas esos certificados salvo que tengáis pagada una.

1 respuesta
isvidal

ola el ilo de kaphka pa quando

zoeshadow

kafka developer

eondev

#12586 Sí, la hoja de requerimientos de mi antiguo jefe xD

2
B

.

Tuskus

Kafka en la orilla, del Murakami.

desu

#12592 Actualizo dibjjo, gracias por lo que comentas, mas o menos vamos alineados y me estais ayudando, pero mucha palabrota

Los outputs al final suelen publicar a las colas de los dispositivos o ser subscripciones por STOMP o cosas e ese rollo....

Lo de las caches lo tengo que poder permitir, no lo tengo que implementar ahora mismo asique de momento me vale conlo que mehabeis dicho.

Ahora estoy trabajando la parte de permisos/roles y gestion de entidades.

Lo jodido de las iot es la gestion de entidades porque tienes que configurar topics, consumers i producers en runtime.... ademas de que los outputs sirvne para configurar las maquinas y todo esto puede ir mutando el protocolo de comunicacion (esquema)... en fin, es liooso pero no es para tanto creo.

El mayor cambioque he decidido ahora mismo es el que he comentado, antes los sockets los gestionaba por web service que tambien era uninput.... voy a tirar esto y hacerlo en outputs... me gusta como se ve. Tengo inputs, outputs, transformadores (maps, servicios)... Creo que no voy mal a nivel conceptual se ve ordenado al menos xd

aren-pulid0

Bueno, traigo buena mierda de verdad.

Hasta los polla viejas darle un try que os va a gustar

AikonCWD

vaya asco

Usuarios habituales