Nuestro logo de proyecto |
Por lo que una vez preparada la demo que vamos a hacer mañana, hemos podido ir estudiando como podemos hacer el código más idiomático. Recordemos que el objetivo principal es aprender Go, asi que todo lo que podamos aprovechar esta tarde y mañana antes de la demo, para seguir aprendiendo será perfecto.
Yamila se ha currado el servidor http y sus correspondientes pruebas y yo he terminado las pruebas del servicio por amqp. La verdad es que en ambos casos no se ha dado mal.
El diseño que ha quedado es el siguiente: dispone de un motor de consultas snmp asíncrono, que a partir de un canal de peticiones snmp, las despacha para diversos workers creados por cada destino y que se balancean la carga permitiendo hasta un máximo prefijado de operaciones snmp por destino. Una vez realizada la consulta snmp, la respuesta se devuelve por otro canal.
Por supuesto este canal de salida está desordenado, puesto que se ponen en el canal de salida en cuanto termina de realizarse la petición snmp y eso dependerá totalmente del host destino y de la consulta snmp.
Usando este motor de consultas se han creado dos servidores:
- amqpsnmpqueries (pasarela amqp/snmp)
- snmphttpserver (pasarela http/snmp)
amqpsnmpqueries
Partiendo de una cola AMQP (en rabbitmq) de peticiones snmp, publica en un exchange AMQP las respuestas a las peticiones. En este caso, la aplicación es casi un uso directo del motor de consulta snmp asincrono.
Diseño interno amqsnmpqueries. |
snmphttpserver
Permite realizar consultas snmp por http. En este caso dado que cada cliente quiere una respuesta sincrona a su petición exite una capa de adaptación que apartir de las salidas desordenadas se encarga de despachar cada respuesta al cliente correcto.
Diseño interno snmphttpserver |
En un plano más mundano, Kaleidos ha invitado a unas riquísimas empanadas de Milan Dopico que hemos disfrutado en la azotea.
Cualquiera que me conozca sabe que disfruto con esas cosas como un cerdito en la charca :-)
Y mañana demo!!! La verdad es que hay unos proyectos chulisimos y estoy deseando ver hasta donde han llegado...
Por mi parte, con el nuestro hemos cumplido, puesto que creo que las bases de Go como para desarrollar algo que vaya a producción están asentadas.
Enlaces relacionados:
- https://github.com/eferro/go-snmpqueries
- http://piweek.com/
- blog piweek
- Puedes seguir twitter la #piweek
- Post sobre PiWeek
No comments:
Post a Comment