Sidecar
[Arquitectura
]
Hola a todos, hoy toca el patrón Sidecar.
Quizá es el patrón Cloud que menos sentido puede llegar a tener y que no lo ves importante hasta que te paras a pensarlo y entenderlo bien, entonces se te abre en la mente un mundo de posibilidades que se ajusta a ciertos escenarios que quizá no habías contemplado o vivido.
Sidecar es añadir una segunda aplicación que va alojada en la misma instancia que nuestra aplicación principal y que tiene el mismo ciclo de vida que esta sin que los principales actores sepan que contiene esa caja negra más de lo que queremos a lo que tengan acceso..
Sí, como a mí, no se me ocurrió nada donde poder implementar este patrón hasta que caí en la cuenta de lo que realmente significaba.
Vamos con el ejemplo. En un banco no nos van a dar acceso a las configuraciones así como así. Estamos acostumbrados a programar teniendo el control y acceso a muchos recursos, sean KeyVaults, Bases de Datos, Storages, etc…
Con Sidecar, podríamos exponer en esta aplicación los datos de conexión y secretos teniendo el control total de que el programador o usuario, ajeno a ese contexto, pueda llegar a manipular esos secretos obteniendo secretos a los que no debería tener acceso. Además de que podría estar programado en cualquier otro lenguaje que no sea el stack tecnológico de nuestra principal aplicación. Es un servicio, pero expuesto solamente a esta aplicación principal. Y al vivir con esta se reduce la latencia, la seguridad y el tráfico.
Vamos a verlo en un gráfico:
¿Sí?, como vemos en el clásico nuestra aplicación llama al servicio de credenciales directamente y tiene acceso a estos secretos.
Aplicando el patrón sidecar tendríamos, enganchado y no acoplado, un servicio que gestiona esos secretos según quienes seamos.
Un saludo.
Strangler