DevOps: Blue/Green & Canary Deployment

A la hora de publicar nuestras aplicaciones y servicios en entornos de producción tenemos 2 formas de realizarlo: Blue/Green o Canary y un mismo objetivo, probar el software sobre una audiencia específica acotado en el tiempo, antes de lanzar la aplicación a todos los usuarios.

Veamos la idea en estos diagramas para entenderlo mejor.

Blue/Green Deployment: Desplegar todo a la vez

En este caso, se debe redirigir todo el tráfico a la vez entre entornos y se necesita duplicar la infraestructura para hacer el SWAP.

devops-bluegreen2

Canary Deployment: Desplegar de forma incremental

En este caso, se puede redirigir trafico entre las dos versiones a la vez y se puede reutilizar la misma infraestructura porque no hacemos SWAP.

devops-canary2

Otra ventaja importante en los dos casos, si algo falla con la nueva versión, la estrategia de reversión es simplemente redirigir a los usuarios a la versión anterior hasta que haya resuelto el problema.

Martin Fowler explica con todo detalle el proceso en estos 2 artículos:

Anuncios

Roadmap: DevOps 2018

Al igual que en el post anterior, el autor kamranahmedse, nos muestra la evolución del mundo DevOps para este año 2018 con la evolución de tecnologias, tools y skills para estar al día con proyectos actuales.

 

Gráfico actualizado DevOps para 2018:

Link GitHub: WebDeveloper-roadmap

Happy coding!!

Roadmap: Web Developer 2018

Ya vimos en un articulo del año anterior la evolución de tecnologias y skills para Web Developers, donde nos recomiendan herramientas y frameworks actuales para Desarrollo Web, diferenciando claramente la parte Front y Back para estar al día en tecnologias de proyectos actuales.

Gráfico actualizado Back para 2018:

Gráfico actualizado Front para 2018:

Link GitHub: WebDeveloper-roadmap

Happy coding!!

Bots: Migración de tus Bots a Azure Bot Service

Microsoft ha anunciado de forma oficial que todos los Bots, creados en el Portal Dev Bot Framework deben migrarse al nuevo Servicio para Bots en Azure antes del 31/03/2018.

La nota indica que los Bots no migrados continuarán funcionando durante un tiempo después de la fecha límite de migración, pero es mejor migrarlos a tiempo para evitar la interrupción del servicio en el futuro.

El proceso de migración se debe realizar desde el mismo Portal como vemos en la captura y los botones:

Notas sobre la migración

  • El proceso de migración es automático, es posible hacer un rollback, una vez terminada la migración, el botón de Rollback migration estará disponible para deshacerla.
  • No es necesario  cambiar nada en el código fuente del Bot, solo es el registro de Bot el que se está moviendo al sistema de Azure.
  • Se necesita una cuenta Azure para gestionar el registro de canales Bot desde Azure Bot Service.
  • Los canales disponibles en Azure son de 2 tipos Standard (gratuitos) y Premium (de pago).
  • Al tener un Bot en Azure es importante calcular bien los precios para saber el coste mensual de los servicios: https://azure.microsoft.com/en-us/pricing/details/bot-service

Documentación para la migración

Por último, el anuncio y documentación oficial para realizar el proceso la encontrareis aquí:

https://blog.botframework.com/2017/12/19/bot-state-service-will-soon-retired-march-31st-2018

 

 

 

 

Bots: Channel Inspector explora los estilos y renderizado de cada canal para tu bot

Channel Inspector es una herramienta online que forma parte del Microsoft Dev.BotFramework muy útil para explorar todas las funciones que ofrecen los canales de chat y mensajería de una manera fácil de entender el estilo y las limitaciones de la plataforma seleccionada. Con Channel Inspector, podemos ver rápidamente cómo se renderizará un bot en cada canal sin necesidad de registrarnos y obtener una cuenta en cada plataforma para publicarlo.

Al abrir el Channel Inspector disponemos de todos estos canales para inspeccionar:

 

Veamos algunos ejemplos del Channel Inspector con la opción de HeroCard:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Podéis consultar información y recursos en este link: bot-service-channel-inspector

No perdáis esta herramienta, porque seguro que la utilizareis todos los días 😉

 

Bots: Microsoft Bot Emulator

bot-emulator-logo

Si estamos desarrollando un bot con Visual Studio o en Azure y queremos testearlo, disponemos del “Bot Framework Emulator” una aplicación desktop para Windows, Linux y OSX que podemos descargar de manera gratuita desde GitHub o instalarnos el ejecutable en nuestro equipo para depurar bots, ya sean locales o remotos.

Arrancando Bot Emulador

El emulador es muy simple, lo iniciamos y veremos la pantalla que se muestra donde indicaremos la url de nuestro bot, recordar que el bot debe estar funcionando y saber la ruta del API donde esta publicado para realizar la conexión, también recordar que no es necesario tener el AppID y password para las pruebas desde el Emulador.

bot-emulator-demo.png

El emulador nos permite escribir nuestro mensaje para interactuar con el bot, ver los mensajes E/S en json en “details” y también “logs” en la misma ventana.

Probando Bot Emulator

Podemos realizar pruebas desde el Emulador contra nuestro bot de 3 formas:

Descargas

La pagina oficial es: https://github.com/Microsoft/BotFramework-Emulator y encontraremos toda la información y descargas para usar el emulador.

Bots: Tips para crear ChatBots

bot-framework-logo2

A la hora de construir nuestros chatbots, se deben tener en cuenta una serie de conceptos y buenas prácticas para crearlos, revisando varios articulos sobre este tema, encontre este del autor Des Flanagan que me gusto bastante y quiero compartir con todos.

El articulo original esta en ingles, pero lo dejo traducido en castellano:

1) Bots e Inteligencia Artificial no son lo mismo: Puedes crear un Bot funcional en muy poco tiempo que no será muy útil porque no responderá a la entrada del usuario. Desarrollar un Bot inteligente con personalidad puede llevar meses trabajando con herramientas de procesamiento de lenguaje natural, como Microsoft LUIS o Watson de IBM. Un Bot inteligente lleva su tiempo.

2) Definir alcance del Bot para el usuario: Permite al usuario conocer qué puede y qué no puede hacer tu Bot. Compartir el alcance de su conocimiento. Pero primero, debes tener una comprensión clara de lo que hace su Bot. Escriba su propósito. Si no puedes definir su propósito por escrito, entonces ni siquiera está claro para ti.

3) Comprender que los usuarios probarán los límites: Los usuarios probarán los límites de su Bot, desde el uso de un lenguaje incorrecto hasta otros comentarios obscenos. Deberás decidir cómo responderá su Bot a estas observaciones; si le conviene a su marca participar en chit-chat o si los comentarios son cortésmente, o si simplemente son ignorados.

4) Controlar flujo de la conversación: Controla el flujo de la conversación tanto como sea posible. Lleva a una mejor comprensión de la intención del usuario, lo que lleva a respuestas más precisas de su Bot. Puede hacerlo utilizando los botones para manejar la entrada del usuario. Sin embargo, no hagas que el flujo de conversación sea demasiado rígido. Después de todo, es una plataforma conversacional, por lo que deberá encontrar la combinación correcta de botones y texto para manejar la entrada del usuario.

5) Desarrollar un prototipo: Antes de invertir tiempo y dinero en su Bot, desarrolle un prototipo para ver si se ajusta a sus necesidades. Tomar un caso de uso del mundo real y escriba las historias de usuario para él. Esto te dará un objetivo muy claro de lo que hará tu Bot. Obtenga comentarios de usuarios reales.

6) Mantener respuestas cortas: Si las pruebas de usuario me han mostrado una cosa, es el usuario preferido para recibir mensajes cortos y concisos. No envíe párrafos de texto a un usuario. Puede lograr esto dividiendo trozos de texto en varios mensajes, enviados por separado al usuario, uno tras otro. Cuando corresponda, envíe una imagen al usuario para mostrar una comparación de productos, una lista de características del producto, etc.

7) Mantener el estado de la conversación: Para crear un poderoso Bot de conversación, deberá comprender el estado de la conversación. En otras palabras, ¿qué fue lo que el usuario discutió con el Bot anteriormente en la conversación (por ejemplo, el usuario pregunta “A qué hora comienza Lord of the Rings”, seguido de “¿Cuánto tiempo durará?”). Comprender las preguntas de seguimiento llenas de respuestas es un gran desafío. Un enfoque es almacenar el último tema de la conversación en estado, por lo que su Bot sabrá el contexto de lo que el usuario estaba hablando anteriormente.

8) No pretendas que tu Bot sea humano: Tu Bot es una máquina. Evite decirle al usuario cualquier otra cosa. No se comporta como un ser humano, por lo que es directo para los usuarios sobre lo que es su Bot y lo que sabe.

9) Haga uso de los datos almacenados que pertenecen a los usuarios: Si su Bot tiene acceso a la información almacenada del usuario, en una base de datos, por ejemplo, use esa información en lugar de pedirle al usuario nuevamente. La gente odia dar información sobre sí mismos que esperan que usted ya sepa. Muestra el poder de tu Bot usando los datos almacenados para obtener una respuesta precisa a la consulta de un usuario.

10) Tener una ‘salida’ para el usuario: Hágales saber cuando su Bot no sabe algo, y pregunte si les gustaría ser transferidos a una persona real, o tome su correo electrónico / número de teléfono y dígales que alguien los contactará. ¡No los dejes colgando sin ningún lugar adonde ir cuando tu Bot no tenga la respuesta!

Link original: 10-quick-tips-for-building-a-successful-chatbot

 

Cuestiones claves para nuestro ChatBot

A parte de los consejos anteriores hay ciertas preguntas claves que siempre hay que tener en mente y debemos ser capaces de responder antes de empezar el desarrollo de un ChatBot.

  • ¿Cuál es el objetivo principal del bot?
  • ¿Qué tipos de usuarios van a utilizarlo?
  • ¿Qué canales usaremos para publicarlo?
  • ¿Qué arquitectura e integración definimos para el bot?
  • ¿Cuanto me costará el bot mensualmente?

Para calcular los costes estimados, tenemos la calculadora de Azure: https://azure.microsoft.com/es-es/pricing/details/bot-service

Ademas es importante estas recomendaciones de MS:

Como siempre, espero que esta información sea de utilidad para vuestros bots 😉