Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Contratos y versionado

5 tareas · 38 min · Principiante

En el monolito, un cambio en una función rompía la compilación de quien la usaba. Entre servicios que se despliegan por separado, el mismo cambio rompe en producción, a veces en silencio. El contrato de la interfaz, su versión y la comparación entre versiones son lo que sustituye al compilador. En Tienda Yopo, el equipo de pagos publica una v3 y quiere retirar la v2 a fin de año: lees la comparación entre ambas, la política de versiones y quién sigue llamando. Todo es lectura de archivos ficticios.

0 de 5 · 0%

Objetivo de la sala

En el monolito, un cambio en una función rompía la compilación de quien la usaba. Entre servicios que se despliegan por separado, el mismo cambio rompe en producción, a veces en silencio. El contrato de la interfaz, su versión y la comparación entre versiones son lo que sustituye al compilador. En Tienda Yopo, el equipo de pagos publica una v3 y quiere retirar la v2 a fin de año: lees la comparación entre ambas, la política de versiones y quién sigue llamando. Todo es lectura de archivos ficticios.

Cuando dos equipos despliegan por separado, ninguno ve el código del otro. El contrato (una descripción de la interfaz, por ejemplo OpenAPI) es lo que ambos acuerdan. Comparar la versión nueva con la anterior en cada cambio detecta qué rompe a los consumidores, y las pruebas de contrato con los consumidores reales comprueban que lo que esperan sigue cumpliéndose.

Un cambio puede romper por razones de compatibilidad (quitar un campo) o por razones de seguridad (devolver de más). Los dos tipos necesitan revisión.

Responde para continuar

Dos equipos despliegan sus servicios por separado. ¿Qué evita que un cambio de uno rompa o exponga al otro?

Ver pista de ayuda

Piensa en lo que hacía el compilador en el monolito y qué lo sustituye entre servicios.

Las herramientas de comparación de contratos clasifican cada diferencia como compatible o incompatible. Un cambio incompatible rompe a quien lo consume sin avisar: se añade un campo obligatorio a la petición, se cambia un tipo, se elimina una operación. Contar cuántos hay decide si basta con una versión menor o hace falta una versión mayor con migración.

Abre contratos/comparacion-pagos-v2-v3.txt. La salida está escrita a mano para este laboratorio.

Responde para continuar

¿Cuántos cambios de la comparación están clasificados como incompatibles?

Ver pista de ayuda

Cuenta las filas por su segunda columna.

Un cambio que añade un campo a la respuesta es compatible: ningún consumidor deja de funcionar. Pero si el campo es un dato personal, la respuesta empieza a entregar más de lo que antes entregaba a todos los consumidores, incluidos los que no lo necesitan. La herramienta lo clasifica por compatibilidad y no por sensibilidad: la lectura de seguridad la hace una persona.

Responde para continuar

Escribe el identificador del cambio compatible que amplía la respuesta con un dato personal.

Ver pista de ayuda

De los dos cambios compatibles, uno añade información de la persona titular.

Retirar una versión es seguro cuando nadie la usa. La política de Tienda Yopo es que cada consumidor migra por su cuenta y el equipo de pagos avisa al responsable registrado. Eso falla justo con quien no está en el registro: nadie lo avisa y su tráfico sigue ahí.

Abre trafico/consumidores-pagos.csv y la política de versiones.

Responde para continuar

Escribe el consumidor de la versión retirada que más llamadas hace.

Ver pista de ayuda

Filtra por la columna de versión y compara las llamadas.

El retiro de la v2 está fijado a fin de año. El consumidor con más tráfico en v2 no tiene equipo registrado, así que ni siquiera recibió el aviso. Apagar la v2 ese día interrumpiría un sistema que alguien usa; aplazar sin fecha convierte la v2 en una API que nunca se retira.

Responde para continuar

La v2 se retira a fin de año y un consumidor sin equipo registrado sigue llamándola. ¿Qué haces?

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad