Banderas de características
Puede usar banderas de funciones para alternar qué usuarios / grupos reciben funciones.
Un lanzamiento canario le permite lanzar gradualmente nuevas funciones a un subconjunto de sus usuarios mientras sigue sirviendo su sucursal actual al resto de sus usuarios. Básicamente le permite probar cosas en paralelo sin tener que hacer fusiones / implementaciones importantes. Esto le permite probar las características A / B para evaluar el rendimiento antes de lanzarlas a la mayoría de sus usuarios.
- Estoy usando el alojamiento compartido traído de Bigrock para mi próximo sitio web de comercio electrónico basado en magento y mi sitio web se bloquea todos los días, lo que me da un error 508: recursos totalmente utilizados, mi presupuesto es de Rs 1000 / mes. ¿Debería usar el alojamiento de Amazon?
- Como desarrollador o diseñador de un sistema operativo distribuido orientado / calificado comercialmente, ¿cuáles son los principales problemas que resuelven estos tipos de software?
- ¿Qué tan seguro es el software de gestión de activos digitales en la nube?
- ¿Cuáles son los buenos sistemas de correo electrónico basados en API?
- Cómo construir una extensión de análisis de rendimiento para aplicaciones en la nube
Un lanzamiento canario (también conocido como despliegue canario o lanzamiento canario) está implementando características para un pequeño número de usuarios para evaluar la reacción del sistema en general. ¿Son los usuarios más felices? ¿Se gana más dinero? ¿La nueva característica aumenta la carga del sistema? Un lanzamiento canario le permite desplegar una función lentamente y medir la reacción de los “canarios” reales del usuario, buscando indicadores tempranos de peligro. Si una característica no es buena, puede revertirse. Los lanzamientos de Canary son una mejor práctica para las organizaciones de desarrollo ágil que practican la entrega continua para moverse más rápido.
GESTIÓN DE LA ESCALABILIDAD CON ROLLOUTS Fuente
Veamos un ejemplo. Usted es un desarrollador que lanza una nueva función que requerirá que procese cientos de solicitudes adicionales por segundo. ¿Unos cientos más? Eso no es problema: ha creado la infraestructura para escalar y manejar esa carga. Pero, ¿qué pasa si todos sus usuarios se enamoran de la nueva característica? Bombardeándote con miles de solicitudes. ¿Como manejas esto?
Imagine que puede implementar su función en vivo para el 10% de sus usuarios y luego el 20% … 30% … Cada paso se convierte en un punto de referencia de prueba donde evalúa los comentarios sobre el rendimiento y puede escalar en consecuencia.
Más importante aún, mitiga la degradación imprevista del rendimiento y cumple con las expectativas del consumidor de un rendimiento continuo de la aplicación.
EJEMPLO DE BANDERA DE CARACTERÍSTICAS PHP
Una de las soluciones que ha existido por un tiempo (pero que no ha sido ampliamente adoptada) es el marcado de características. Marc Weistroff escribió un artículo sobre el marcado de funciones para Symfony en el que analiza cómo se utilizan una serie de condiciones para determinar quién ve una función.
función pública getRoles () { if ($ this-> isAdmin) { matriz de retorno ('ROLE_ADMIN', 'FEATURE_ALPHA'); } if ($ this-> isBetaTester) { matriz de retorno ('ROLE_ADMIN', 'FEATURE_BETA'); } matriz de retorno ('ROLE_USER', 'FEATURE_PROD'); }
Si está interesado en la función de marcar su código, aquí hay un nuevo paquete de banderas de características de dzunke para echar un vistazo a Symfony2 (php:> = 5.40). Etsy también abrió su sistema de marcado de características (aunque ya no lo admiten).
RECURSOS
- Blog de Travis CI sobre banderas de características
- Operaciones web de DZone y banderas de características
- featureflags.io
- Lista completa de recursos de indicador de características de código abierto
- Lanzamiento Oscuro
- Banderas de funciones como servicio (Divulgación, trabajo para LD)
- Togglz (Java)