Simplificar
Evite la sobreingeniería en el diseño de la arquitectura, el código de la aplicación y las operaciones. |
---|
A menudo, lo que se quita en lugar de lo que se agrega es lo que conduce a las soluciones más confiables. La simplicidad reduce el área expuesta al control, minimizando las ineficiencias y posibles configuraciones incorrectas o interacciones inesperadas. Por otro lado, el exceso de simplificación puede introducir puntos únicos de error. Mantenga un enfoque equilibrado.
Escenario de ejemplo
Contoso Travel va a comprar e integrar una pequeña startup con una conocida aplicación de viajes basada en web. La popularidad de la aplicación se debe a su modelo de negocio de negociar grandes descuentos con cadenas de hoteles y aerolíneas, así como al uso de las redes sociales para hacer campañas de marketing intensas y altamente dirigidas.
La versión existente del producto de la startup se desarrolló en nodejs y se ejecuta en máquinas virtuales hospedadas entre el centro de datos local y AWS.
Minimización de los componentes de la carga de trabajo
Agregue componentes a la arquitectura solo si le ayudan a lograr valores comerciales objetivo. Mantenga eficiente la ruta crítica.
El diseño de requisitos empresariales puede dar lugar a una solución sencilla que sea fácil de implementar y de administrar. Evite tener demasiados componentes críticos, ya que cada uno de ellos es un punto de error significativo.
Desafío de Contoso
- Uno de los componentes de la aplicación recién adquirida facilita la recopilación de comentarios de los usuarios directamente en el sitio web después de haber hecho una reserva. La característica rara vez se usa porque la mayoría de los usuarios la pasan por alto. Hay un sólido mecanismo de bucle en los comentarios de los usuarios que funciona a través de las cuentas de redes sociales de la empresa, que se usa en gran medida para la interacción y el marketing con los usuarios. Este mecanismo se usa significativamente con mayor frecuencia que la función de comentarios del sitio web.
Aplicación del enfoque y los resultados
- Como parte del lanzamiento inicial de la versión de la aplicación con la marca Contoso Travel, el equipo decide quitar el componente de comentarios del sitio web de la carga de trabajo.
- Un código base más pequeño reduce el costo de mantenimiento y de las operaciones. Y, en este caso, no hay ningún impacto en los requisitos empresariales.
Estandarización del ciclo de vida de desarrollo del software
Establezca estándares en la implantación, implementación y procesos de código, y documentelos. Identifique las oportunidades para aplicar esos estándares mediante validaciones automatizadas.
Los estándares proporcionan coherencia y minimizan los errores humanos. Enfoques como las convenciones de nomenclatura estándar y las guías de estilo de código pueden ayudarle a mantener la calidad y facilitar la identificación de los recursos durante la solución de problemas.
Desafío de Contoso
- El equipo de desarrollo de la startup no tiene definidos muchos estándares de desarrollo y proceso. Se usan varias bibliotecas que se superponen en la funcionalidad, los estilos de codificación no se aplican y las canalizaciones de versión carecen de puertas de versión formales que usen pruebas automatizadas.
- El equipo de cargas de trabajo de Contoso se da cuenta de que el costo de mantenimiento del nuevo código base es demasiado alto debido a la falta de consistencia en los estilos y el uso inconsistente de bibliotecas y patrones de diseño.
- Después de las actualizaciones principales en producción, hay incidentes frecuentes, que a veces requieren que se reviertan las actualizaciones o que se apliquen correcciones activas durante la implementación. La frecuencia de estos tipos de problemas de implementación obliga al equipo a usar un modelo de soporte técnico práctico a la hora de publicar las actualizaciones en producción. Para empeorar las cosas, los problemas frecuentes están afectando negativamente a la reputación de Contoso debido a una experiencia de usuario deficiente.
Aplicación del enfoque y los resultados
- El equipo que se encarga del soporte de la nueva aplicación hace un esfuerzo por lograr una mayor consistencia al hacer cumplir los estilos de codificación, estandarizar en un conjunto común de bibliotecas y patrones de diseño, y formalizar el uso de puertas de lanzamiento basadas en pruebas automatizadas.
- Mientras se implementan estos cambios, el equipo de cargas de trabajo cumple con sus requisitos estándar de documentación. Todas las nuevas herramientas, patrones de diseño y estilos que se están adoptando están documentados exhaustivamente, lo que permitirá al equipo comprender y mantener la carga de trabajo de forma más eficaz en el futuro. El equipo ahora puede identificar más fácilmente las desviaciones en los estándares al hacer revisiones de código.
Minimización de las operaciones y de la carga de desarrollo
Aproveche las características proporcionadas por la plataforma y los recursos creados previamente que puedan ayudarle a cumplir los objetivos empresariales de forma eficaz.
Este enfoque minimiza el tiempo de desarrollo. También le permite confiar en prácticas probadas que se han usado con cargas de trabajo similares.
Desafío de Contoso
- Para el lanzamiento inicial bajo la marca Contoso Travel, la solución nodejs se migrará de máquinas virtuales a App Services para aprovechar las numerosas características nativas de confiabilidad que ofrece el servicio.
- La versión implementada en máquinas virtuales contiene una cantidad significativa de código personalizado necesario para la instrumentación.
Aplicación del enfoque y los resultados
- Durante la migración inicial a App Services, el equipo pudo quitar todo el código de instrumentación personalizado implementando en App Services la instrumentación automática de App Insights.
- El equipo también puede aprovechar otras funciones nativas de App Services, como el escalado automático, la integración con Key Vault y la redundancia zonal.