Este documento describe los canales de actualización que utilizamos para liberar cambios en nuestros sistemas, explicando cuándo y cómo deben usarse.
Está diseñado para técnicos y desarrolladores.
El objetivo de esta nueva forma de entregar actualizaciones a clientes que sean estables y funcionen perfectamente.
Un canal de actualización es el medio para enviar actualizaciones a clientes.
Anteriormente hemos experimentado el problema de actualizar a todos los clientes "la ultima version" (la cual funciona bien en algunos clientes, pero en otros no, y en otros clientes les quita funciones y genera problemas).
En vez de esto, ahora se usarán canales. Cada canal va a enviar una versión del sistema. Mediante los canales podrás saber qué versión es más estable, y cuál canal configurar en qué cliente.
Cada versión sigue este camino:
dev:<cliente> → canary → stable → lts
Explicación del flujo:
dev:<cliente>: Cambios a la medida o correción de errores. Sólo se debe instalar en los locales del cliente que solicitó la mejora. Se reporta inmediatamente a desarrollo cualquier error. Desarrollo mayormente brinda soporte directo a estos clientes (aunque puede que pida ayuda a soporte también).
canary: Se libera a un grupo de clientes reales para detectar errores en producción. Se instala en locales donde no haya mucho problema con que la operación se detenga por minutos o hasta horas. Monitoreo intensivo. Se reporta inmediatamente a desarrollo cualquier error. Se puede revertir la versión en caso de que exista algún error.
beta: Se libera a un segundo grupo de clientes reales para detectar más errores de producción. Este siguiente grupo de clientes son locales donde hay alto trafico. En este canal testeamos velocidad, estabilidad, consistencia en la información y rendimiento del sistema. Y también testeamos más escenarios. Se puede configurar en clientes donde pueden haber cortes del sistema de hasta máximo 20 minutos. En caso de error Soporte Técnico brinda atención a estos clientes directametne, y la acción es revertir la versión.
stable: Listo para un grupo más grande de clientes (aprox el 50% de todos nuestros clientes). En este punto la versión se ha probado lo suficiente para que se pueda instalar a cualquier cliente. Cuando una versión llega a este punto se anuncia al público como La nueva versión de RunFood. ¡actualiza tu sistema ahora!
lts (long term support): La versión más estable, usada por casi todos los clientes. Si todo lo demás falla, siempre puedes revertir a esta versión. Actualmente la versión lts es "runfood-service".
Una versión se utiliza cada vez en más clientes. Este sería un porcentaje de clientes que usan una versión.
A continuación te explicaré como se usan los canales segun la audiencia.
| Canal | Audiencia | ¿Quién brinda el soporte técnico? | ¿Cómo se aborda el soporte? |
|---|---|---|---|
dev:<cliente> |
Sólo el cliente para quien se hizo dicha modificación. Otros clientes pueden querer tener esta misma mejora, y sólo se les agrega al canal siempre y cuando hayan aceptado que esta versión no tiene garantías de estabilidad. | Desarrollador a cargo y el Instalador a cargo. | El desarrollador intentará realizar la correción en ese mismo momento. O se le pedirá al al cliente que no use la función hasta que haya una corrección y también se sube un ticket de la incidencia. Si es una función crítica, se hace una segunda instalación de una versión más estable, y se le pide al cliente trabajar con las 2 versiones a la vez. |
canary |
Clientes que quieran recibir últimas actualizaciones, y no sean clientes de alto trafico. Deben saber aceptado los riesgos: esta versión puede tener errores, y los tiempos de solución pueden ser de unas horas, a algunos dias. | Soporte técnico, si está disponible, el desarrollador | Se sube un ticket del error. Se maneja igual que el anterior. |
preview |
Clientes que quieran recibir las últimas actualizaciones y sean clientes de alto trafico. Deben haber aceptado los riesgos. Esta versión puede tener errores, y los tiempos de solución pueden ser de 20 minutos a 1h | Soporte técnico | La persona de soporte sube una incidencia del error. Si no es un problema critico, le pide al cliente que espere unos días para corregirlo. Si es algo crítico, se maneja igual que los anteriores. |
stable |
Todos los clientes en general. Clientes nuevos. | Soporte técnico e Instaladores. | Se sube una incidencia a soporte. Si el problema es critico, se revierte la versión a la ultima más estable. O si el problema no es critico, se crean scripts para "parchar" el error. O se aplican parches rapidos según lo comunique el equipo de desarrollo en ese momento. Por ejemplo, si el problema se arregla con tareas programadas, en este punto se crea la tarea programada y se ejecuta. Aquí se prioriza el dar "mantenimiento" o "parchar" antes de cambiar de versión. Sólo en un caso extremo se revierte a una versión lts |
lts |
Cualquier cliente. Clientes corporativos, grandes empresas, clientes VIP, etc. sólo se les puede actualizar este canal. | Soporte técnico | Se realizan casi las mismas acciones que en el punto anterior, excepto que si se requiere revertir de versión, se revertirá a la versión a lts |
Un cliente corporativo es un cliente que tiene muchas franciquias, o muchos locales. Son empreas que tienen decenas de personas trabajando únicamente en administracion. Son muy organizados.
Un cliente grande son negocios que pueden tener uno o más locales, pero VENDEN MUCHO. SE LLENAN. Son lugares donde es de vida o muerte que el sistema mantenga una estabilidad el 100% del tiempo. En otras palabras, que el sistema falle 1 minuto genera tanta confusión y molestia que nuestro chat recibe una ráfaga de mensajes, tanto de los empleados del local, como de nuestros propios compañeros. EXIGEN ATENCIÓN INMEDIATA.
Un cliente VIP es un cliente con quien tenemos una relación excelente. Estos clientes NOS REFIEREN CONSTANTEMENTE. Estos clientes ABREN NUEVOS LOCALES y lo primero que piensan es "Necesito comprar RunFood". Hablan de nosotros con otras personas. Y para alimentar esa buena voluntad hacia nosotros les brindamos servicio gratis, capacitaciones gratis, etc. Y ellos de intercambio nos traen más cliente, nos hacen publicidad, hacen comentarios positivos sobre nosotros en redes, etc. No es sólamente una persona que habló bien de nosotros, es un cliente que CONSTANEMENTE NOS TRAE PUBLICO. Cuando un cliente nos ha traído por lo menos 5 clientes nuevos (y han comprado), se podría decir que es un cliente VIP.
Celebridades. Personas famosas que tienen un negocio y nosotros les damos servicio. Cuando estas personas hablan, la gente ESCUCHA. Sus palabras tienen PESO en la sociedad, mueven a otros. Una buena recomendación (y una mala) crean un IMPACTO en nuestro negocio. Generalmente son personas con las que trabajar es muy agradable, pero no por eso quiere decir que se les debe atender mal. Una celebridad puede ser una PERSONA, una MARCA, un OBJETO (como una casa, un edificio, o una caricatura), incluso un ANIMAL (ahora hay animales influencers también), etc. Puede ser famoso por redes sociales, por la televisión, por YouTube, o el cine. Puede ser un deportista famoso.
Personas influyentes. Al igual que las celebridades, estas personas son INFLUYENTES en su sector, como un alcalde, el presidente del país, el presidente de la asociación de restaurantes del Ecuador, etc. Se les trata igual que a una celebridad.
Restaurantes de alta cocina. Estos locales tienen chefs especializados, que generalmente han trabajdo fuera del país y son muy exigentes. Exigen PERFECCION. Estos locales aparecen en revistas y los conoce la clase alta del país.
Clientes emblemáticos. Estos son negocios que "todo el mundo conoce". Que nuestro sistema esté en estos lugares significa que nuestra empresa ESTA CRECIENDO. Un ejemplo es "Mi comisariato" o "MC donalds". Pero hay ejemplos por sector, también ejemplos por ciudad. "El tiburon" en Guayaquil es un lugar emblematico. "Cevicheria Guayaca" también. "El riobambeñito", etc. También entran aquí negocios que están en zonas muy conocidas, o areas turísticas. La gente tal vez no conoce el nombre del negocio PERO SÍ EL SECTOR. O lo que el negocio representa. Un ejemplo es "Los pollos de Sauces 9".
Nota: De antemano pido disculpas por no agregar nombres de otras ciudades, necesito conocer más el Ecuador.
Para todos estos clientes, sólo se permite usar las versiones lts o, si eres muy arriesgado, la versión stable.
Es VITAL que estos clientes sean bien atendidos, que su sistema sea estable, y que NUNCA tengan ningún problema, pues estos clientes son nuestra carta de presentación con la sociedad.
RunFood ha crecido porque ha sabido reconocer y atender correctamente a sus tipos de clientes.
Los canales de actualización se crearon para poder ofrecer actualizaciones a diferentes grupos de clientes, y poder testear las versiones para garantizar su estabilidad y correcto funcionamiento.
Dependiendo el tipo de cliente, se le configura un canal u otro.
Cada canal tiene su propia forma de brindar soporte, y tiene asignado quién debe darle soporte.