Sergio hace un par de preguntas desde la multitud, ¿cómo podemos mantener la integridad referencial entre microservices cuando tenemos varias bases de datos? Sí, desafortunadamente, tienes que hablar con la database que te importa, ¿verdad? Y eso no es necesariamente muy fácil, ¿verdad? No es necesariamente muy fácil para cada microservice poseer sus propios data. Y muchas veces lo que sucede es que las bases de datos son propiedad de otro equipo y entonces básicamente tienes que empezar a llegar a la misma database, lo que rompe parte del propósito de los microservices y su separación de preocupaciones y cosas así. Pero sí, la idea es que sigas consumiendo de diferentes API e interactuando con las partes que te importan.
Genial, y luego había otra parte, ¿cuáles son las mejores estrategias para soportar varias versiones de API con la architecture de microservice? Sí, quiero decir, hay guidelines para tener versiones de API, así que comúnmente, publicarás tu versión, ¿verdad? Así como v1, v2, v3. Y cuando desarrollas microservices, en realidad, cuando desarrollas cualquier cosa en el mundo moderno, tienes que soportar al menos dos versiones de tu code, ¿verdad? Nunca podrás pasar de una versión a la siguiente sin mantener la compatibilidad hacia atrás. Así que hay algunas implementaciones, algo así como azúcar de implementación, algunos enfoques de implementación, por ejemplo, cuando escribes en una database, digamos que tenías apellido y nombre como dos campos separados, y ahora quieres combinarlos, ¿verdad? Entonces, mantén ambos, ¿verdad? Así que tienes apellido, nombre como dos campos separados, y también apellido, nombre como un mismo campo. Y durante un tiempo, básicamente escribes en ambos, ¿verdad? Y luego pasas a la siguiente versión de API, y luego puedes retirarte. Así que no retiras el code inmediatamente después de cambiarlo, lo retiras después de otra iteración, ¿verdad? Y luego, tu versión de API es tu contrato, ¿verdad? Así que si estoy consumiendo v1, y tú pasaste a v2, si me dices que pasaste a v2, y ya no soportas v1, entonces acabas de romper el contrato conmigo, y obviamente estoy teniendo problemas para lidiar con eso. Pero si soportas ambos, entonces podemos trabajar juntos por un tiempo. Y luego, obviamente, en algún momento, me vas a decir que v1 está retirada, es hora de que avances, ¿verdad? Así Sí, tiene mucho sentido.
Dennis pregunta, ¿qué tan prevalente ves a Kubernetes en el futuro? Las funciones de Cloud cumplen algunas de las mismas necesidades. Así que creo que Kubernetes es un estándar de facto, ¿verdad? Y entonces, como que, todo el mundo está sacando su versión de Kubernetes, ¿verdad? Quiero decir, cada cloud tiene un orquestador de Kubernetes de su propio sabor, que tiene OpenShift, que es como un Kubernetes listo para la empresa, si quieres, ¿verdad? Así que, como que, todo el mundo está en este barco, y es un gran barco. Y eso es efectivamente el estándar para la implementación. Quiero decir, obviamente, puedes implementar funciones como un servicio, y puedes implementar, ya sabes, seguir usando monolitos, y puedes seguir usando mainframe. Como que, todas estas cosas coexisten. Inventamos nueva tecnología, nos movemos hacia ella. Y luego, ya sabes, todavía tenemos que mantener algo de la compatibilidad hacia atrás. Y luego, obviamente, nunca sabes cuándo se va a introducir algo nuevo, ¿verdad? Así que, tal vez, además de containers y serverless, vamos a tener, ya sabes, nuevos patterns que saldrán en los próximos años. Creo que eso es bastante probable, honestamente. Y luego, en términos de Kubernetes versus serverless, quiero decir, hay implementaciones para serverless que usan Kubernetes. Así que, como que, ahora son líneas borrosas. Quiero decir, microservices y serverless tienen muchas cosas en común. Pero de nuevo, los microservices son más flexibles, ¿verdad? Las funciones por design tienen limitaciones. Como que, no pondrías una aplicación web en funciones, como que, eso simplemente funcionaría. Así que eso es un ejemplo, ¿verdad? Mientras que los microservices pueden soportar casi cualquier aplicación. No necesariamente va a ser el camino más fácil para implementar la aplicación. Pero definitivamente, puede soportar casi cualquier architecture. Tiene sentido. Sí. Así que, como ambos siendo, ya sabes, co-organizadores de DevOps Days alrededor del mundo, creo que es realmente interesante que, ya sabes, DevOps es, como, la historia de DevOps se está expandiendo a otras tecnologías, como esta conferencia con DevOps.
Comments