Buenas gente. Dejo un par de modificaciones que me gustaría que hagamos para el TP. En caso que decidamos que las modificaciones no están lo suficientemente sólidas para ya darles este TP modificado a los alumnos lo dejamos para el cuatri que viene. Dejo un resumen de los cambios que agregué:
Cambios principales
Cambio en Ejercicio 2
En vez de pedirles a los alumnos que modifiquen el código para parsear env vars y config files, el TP 0 ahora hace esto por ellos y el punto sólo se centra en que el alumno entienda el concepto de docker volumes. Ahora tanto en el cliente como en el server los archivos de configuración se encuentran hardcodeados dentro del container (se copian durante el build del Dockerfile). La idea de este punto es que los alumnos tienen que darse cuenta de esto y sacar el archivo de configuración afuera del Dockerfile, e inyectarlo en el docker-compose a través de docker volumes.
IMPORTANTE: La forma en que estoy parseando el config file en Python tal vez no es la mejor dado que estoy abusando de properties del ConfigParser. Si alguien tiene una idea mejor para realizar esto, please dejen comments en el PR.
Nuevo Ejercicio (Ejercicio 4)
Dado que ahora los alumnos no van a codear nada el Ejercicio 2, agregué un Ejercicio 4 al TP. Este ejercicio se centra en el GracefulShutdown de la aplicación. La idea de este ejercicio es doble: que los alumnos se familiaricen con el proyecto para poder agregar código (lo que antes hacían en el Ejercicio 2) y meterles la idea de que queremos que las aplicaciones de los TPs se cierren de forma Gracefully.
Lean el enunciado por favor para ver si se entiende, pero como dato importante en al consigna puse para que sólo modifiquen de forma obligatoria el cliente o el servidor. Esto es principalmente para no obligar a los alumnos que no tengan de aprender Golang a que se metan a tocar ese código. Por como quedó el TP, aquel alumno que no tenga interés en Golang puede realizar el mismo sin tener que tocar nada de ese lenguaje
Cambios menores
Agregué código tanto en el server como en el client para que los alumnos puedan definir el logging level de la aplicación desde la configuración
Agregué comments tanto en el Makefile como en el Dockerfile del client para que los stages intermedios de docker generados durante el build puedan ser borrados. Los alumnos son los que tienen que ejecutar el comando que hace la limpeza dsp de todo, pero al menos les damos una herramienta para sus discos no se llenen
Bump de cliente a golang 1.17 y server a Python 3.9.7
Summary
Buenas gente. Dejo un par de modificaciones que me gustaría que hagamos para el TP. En caso que decidamos que las modificaciones no están lo suficientemente sólidas para ya darles este TP modificado a los alumnos lo dejamos para el cuatri que viene. Dejo un resumen de los cambios que agregué:
Cambios principales
Cambio en Ejercicio 2
En vez de pedirles a los alumnos que modifiquen el código para parsear env vars y config files, el TP 0 ahora hace esto por ellos y el punto sólo se centra en que el alumno entienda el concepto de docker volumes. Ahora tanto en el cliente como en el server los archivos de configuración se encuentran hardcodeados dentro del container (se copian durante el build del Dockerfile). La idea de este punto es que los alumnos tienen que darse cuenta de esto y sacar el archivo de configuración afuera del Dockerfile, e inyectarlo en el docker-compose a través de docker volumes.
IMPORTANTE: La forma en que estoy parseando el config file en Python tal vez no es la mejor dado que estoy abusando de properties del ConfigParser. Si alguien tiene una idea mejor para realizar esto, please dejen comments en el PR.
Nuevo Ejercicio (Ejercicio 4)
Dado que ahora los alumnos no van a codear nada el Ejercicio 2, agregué un Ejercicio 4 al TP. Este ejercicio se centra en el GracefulShutdown de la aplicación. La idea de este ejercicio es doble: que los alumnos se familiaricen con el proyecto para poder agregar código (lo que antes hacían en el Ejercicio 2) y meterles la idea de que queremos que las aplicaciones de los TPs se cierren de forma Gracefully.
Lean el enunciado por favor para ver si se entiende, pero como dato importante en al consigna puse para que sólo modifiquen de forma obligatoria el cliente o el servidor. Esto es principalmente para no obligar a los alumnos que no tengan de aprender Golang a que se metan a tocar ese código. Por como quedó el TP, aquel alumno que no tenga interés en Golang puede realizar el mismo sin tener que tocar nada de ese lenguaje
Cambios menores