Seis elementos para desarrollar una arquitectura automatizada de operaciones y mantenimiento
Primer punto: Independencia de la arquitectura
Cualquier arquitectura se crea para satisfacer necesidades empresariales específicas. Si puede satisfacer las necesidades comerciales teniendo en cuenta los requisitos no funcionales de operación y mantenimiento para la gestión de la arquitectura. Entonces tenemos razones para pensar que dicha arquitectura favorece la operación y el mantenimiento.
Desde una perspectiva de operación y mantenimiento, la independencia arquitectónica requerida incluye cuatro aspectos: implementación independiente, pruebas independientes, componenteización y desacoplamiento de tecnología.
Implementación independiente
Se refiere al código fuente, que se puede implementar, actualizar, ampliar, etc. Es fácil de operar y mantener según los requisitos de gestión y se puede configurar según la distribución geográfica. Las llamadas mutuas entre servicios se implementan mediante solicitudes de interfaz, y la implementación independiente también es un requisito previo para la operación y el mantenimiento independientes.
Pruebas independientes
La operación y el mantenimiento pueden verificar la disponibilidad de la arquitectura o los servicios empresariales a través de algunos casos o herramientas de prueba convenientes. La arquitectura empresarial o los servicios con esta capacidad permiten que la operación y el mantenimiento se inicien de forma independiente, y cada versión o cambio no requiere la participación de desarrolladores o evaluadores.
Especificaciones de componentes
Significa que existe un buen marco de soporte para tecnologías relacionadas en la misma empresa, lo que evita que diferentes equipos de desarrollo utilicen diferentes pilas de tecnología o componentes, lo que resulta en problemas técnicos internos. La arquitectura está fuera de control.
Este enfoque puede limitar el aumento desordenado de objetos de operación y mantenimiento y mantener el control de operación y mantenimiento sobre el entorno de producción. Al mismo tiempo, también puede permitir que la operación y el mantenimiento mantengan más energía para realizar trabajos de construcción más eficientes y de calidad con componentes estándar.
Desacoplamiento técnico
Se refiere a reducir la interdependencia entre servicios, y también incluye reducir la dependencia del código de los archivos de configuración. Esta es también la base para los microservicios, la implementación independiente, las pruebas independientes y la componenteización.
Segundo punto: implementación amigable
DevOps tiene un gran espacio en la práctica técnica de entrega continua, con la esperanza de abrir todos los enlaces técnicos de desarrollo, pruebas y operación y mantenimiento desde el principio. hasta el final, para lograr El propósito de un rápido despliegue y entrega de valor. Se puede observar que la implementación es una parte muy importante del trabajo diario de operación y mantenimiento. Es un trabajo planificado con una alta tasa de repetición y se debe mejorar la eficiencia.
Para lograr capacidades de implementación eficientes y confiables, se requiere una planificación general para garantizar un control integral de operación y mantenimiento durante las etapas de implementación y operación. Hay cinco dimensiones relacionadas con la facilidad de implementación:
Configuración de CMDB
Antes de cada operación de implementación, el departamento de operación y mantenimiento debe comprender claramente la relación entre la aplicación, la arquitectura y las relaciones comerciales para comprender y evaluar mejor la carga de trabajo general y los riesgos potenciales.
En la plataforma de operación y mantenimiento automatizada de Zhiyun, estamos acostumbrados a administrar información de configuración como relaciones comerciales, administración de clústeres, estado de ejecución, niveles de importancia y capas de arquitectura como objetos de administración de operación y mantenimiento en la configuración CMDB. base de datos de gestión. Los beneficios de este estilo de gestión son obvios. El almacenamiento centralizado de la información de configuración de los objetos de operación y mantenimiento proporcionará una gran cantidad de soporte de datos de configuración y asistencia para la toma de decisiones para futuras operaciones y mantenimiento, monitoreo y creación de capacidades de automatización de alarmas.
Configuración del entorno
En empresas con un bajo grado de estandarización de operación y mantenimiento, uno de los pecados originales que obstaculiza la eficiencia de la implementación y la entrega es la configuración del entorno. y el problema de mantenimiento que la tecnología de contenedores espera principalmente resolver.
En la práctica de operación y mantenimiento de Tencent, la gestión estandarizada de los tres entornos principales de desarrollo, pruebas y producción se logra enumerando el entorno y las colecciones de recursos relacionados con las operaciones de operación y mantenimiento, combinados con herramientas de inicialización automática.
Gestión de dependencias
Resuelve la gestión de las dependencias del software de aplicaciones sobre bibliotecas y entornos operativos. En la experiencia práctica de Zhiyun, empaquetamos archivos de biblioteca dependientes o configuraciones de entorno en un todo, ejecutamos scripts antes y después y utilizamos la administración de paquetes para resolver problemas de implementación de software de aplicaciones en diferentes entornos. Existen métodos de envío en contenedores más ligeros en la industria, que también son buenas opciones.
Modelo de implementación
El principio de entrega continua se refiere al establecimiento de un canal de entrega confiable y repetible. También planificamos firmemente la implementación de software de aplicaciones en función de este objetivo. Hay muchos casos en la industria a los que puede hacer referencia, como Docker's Build, Ship y Run, como descripciones de cómo tejer nubes a través de la configuración, implementación con un solo clic de procesos estandarizados, etc.
Autoprueba de versión
La autoprueba de versión consta de dos partes:
Prueba ligera de la aplicación;
Publicar/cambiar Corrección de contenidos.
Cree estas dos capacidades para satisfacer las necesidades de diferentes escenarios de operación y mantenimiento. Por ejemplo, en versiones incrementales, el personal de operación y mantenimiento puede obtener rápidamente el archivo de cambios md5 o verificar y comparar la información de configuración de procesos y puertos relacionados para garantizar la confiabilidad de cada cambio de versión.
Del mismo modo, las pruebas ligeras sirven para satisfacer las necesidades de detección de disponibilidad del servicio durante el lanzamiento. Este paso verifica la conectividad del servicio y ejecuta algunos casos de prueba de red troncal.
Gray Go Online
Hay una frase en "Treinta y seis estrategias para la operación y el mantenimiento diarios": Para eliminaciones o modificaciones irreversibles, intente posponer o ralentizar la ejecución. Ésta es la idea de la escala de grises. Independientemente de la escala de grises de los usuarios, el tiempo, los servidores, etc., esperamos minimizar los riesgos de las operaciones en línea.
La arquitectura empresarial admite el lanzamiento en escala de grises, lo que reduce los riesgos en el proceso de implementación de la aplicación y es más fácil de operar y mantener.
El tercer punto: operabilidad
La arquitectura de microservicio más ideal desde el punto de vista de la operación y el mantenimiento debe ser aquella con una sólida operación y mantenimiento. Las aplicaciones o arquitectura sin operabilidad no solo traen infamia al equipo de operación y mantenimiento, sino que también perjudican profundamente su desarrollo profesional, porque mantener una arquitectura sin operatividad es simplemente un desperdicio de vida del personal de operación y mantenimiento.
Según las especificaciones operativas y de gestión, la operatividad se puede resumir en los siguientes siete puntos:
Gestión estructural
En la gestión de la arquitectura de microservicios, proponemos la Aplicación los binarios se separan de la gestión de la configuración para lograr una implementación independiente.
Para la configuración de aplicaciones independientes, existen tres métodos de administración:
modo de archivo;
modo de elemento de configuración
modo de centro de configuración distribuido; .
Debido a limitaciones de espacio, no discutiremos las ventajas y desventajas de los tres métodos anteriores. Diferentes empresas pueden elegir el método de gestión de la configuración más adecuado. La clave es exigir que todas las empresas utilicen una solución coherente para que las operaciones y el mantenimiento puedan crear herramientas y sistemas de gestión de la configuración.
Gestión de versiones
DevOps, uno de los ocho principios de entrega continua, "pone todo bajo control de versiones". En cuanto a los objetos de operación y mantenimiento, si se quiere gestionar bien, es necesario describirlos claramente.
De manera similar a las necesidades de administración, operación y mantenimiento del código fuente, también es necesario crear scripts para los objetos de operación diaria, como paquetes, configuraciones, scripts, etc., de modo que cuando el sistema de operación y mantenimiento complete las operaciones automatizadas, los objetos de operación y las operaciones se pueden seleccionar con precisión.
Operaciones estándar
Hay mucho trabajo repetitivo que realizar en la operación y el mantenimiento diarios. Desde una perspectiva de pensamiento lean, hay mucho desperdicio aquí: costos de aprendizaje, operaciones sin valor, scripts/herramientas redundantes, riesgo de ejecución humana, etc.
Si se puede formar un estándar operativo unificado dentro de la empresa, como transferencia de archivos, ejecución remota, inicio y parada de aplicaciones, etc. Estas son operaciones estandarizadas, centralizadas y con un solo clic, y la eficiencia y calidad de la operación y el mantenimiento mejorarán enormemente.
Gestión de procesos
Incluyendo ruta de instalación de la aplicación, estructura de directorios, nombre de proceso estandarizado, número de puerto estandarizado, modo de inicio y parada, plan de monitoreo, etc. , todos pertenecen a la categoría de gestión de procesos. Hacer un buen trabajo en la planificación general de la gestión de procesos puede mejorar en gran medida el grado de operación y mantenimiento automatizados y reducir la aparición de tareas no planificadas.
Gestión del espacio
Gestionar el uso del espacio en disco es un medio eficaz para garantizar el almacenamiento ordenado de los datos empresariales y reducir la aparición de tareas no planificadas.
Es necesario planificar con antelación: estrategia de copia de seguridad, solución de almacenamiento, aviso de capacidad, estrategia de limpieza, etc. , complementados con herramientas eficaces, para que estas tareas ya no dificulten la operación y el mantenimiento.
Gestión de registros
La implementación y ejecución de las especificaciones de registros requiere una estrecha cooperación con la investigación y el desarrollo. La experiencia adquirida en la práctica y las especificaciones de registros en operación y mantenimiento ideales deben incluir estos requisitos:
Los datos comerciales y los registros están separados.
Los registros y la lógica empresarial están separados.
Formato de registro unificado
Los códigos de retorno y los comentarios son claros
Indicadores comerciales disponibles (volumen de solicitudes/tasa de éxito/latencia)
Definición Eventos clave
Nivel de salida
Soluciones de gestión (tiempo de almacenamiento, copia de seguridad comprimida, etc.)
Cuando se puedan lograr las especificaciones de registro para las condiciones anteriores, desarrolle En consecuencia, ejecutar y mantener pueden obtener mejores capacidades de monitoreo y análisis.
Control centralizado
El trabajo de operación y mantenimiento se divide inherentemente en diferentes partes, como publicación de cambios, monitoreo y análisis, manejo de fallas, soporte de proyectos, gestión multinube, etc. Solicitamos el establecimiento de una plataforma integral de gestión de operación y mantenimiento para que toda la información del trabajo pueda conectarse y transmitirse, eliminando así los riesgos operativos causados por islas de información o transmisión manual de información, y mejorando la eficiencia y la calidad de la operación y el mantenimiento en general. gestión de mantenimiento.
Punto 4: Tolerancia a fallos y tolerancia a desastres
Las cuatro responsabilidades en las operaciones técnicas (operación y mantenimiento) de Tencent: calidad, eficiencia, coste y seguridad. La calidad es la primera prioridad. Desde una perspectiva arquitectónica, el diseño ideal de arquitectura de alta disponibilidad desde la perspectiva de operación y mantenimiento debe incluir los siguientes puntos:
Equilibrio de carga
Si se trata de una solución de equilibrio de software o hardware Desde una perspectiva de operación y mantenimiento, desde una perspectiva dimensional, siempre esperamos que la arquitectura empresarial sea sin estado, el enrutamiento y el direccionamiento sean inteligentes y la tolerancia a fallas del clúster se realice automáticamente.
En los años de práctica del software de enrutamiento de Tencent, la solución de equilibrio de carga de software se ha utilizado ampliamente y ha hecho una gran contribución a la realización de una alta disponibilidad de la arquitectura empresarial.
Programación
En la era de Internet móvil, la programabilidad es un método de operación y mantenimiento extremadamente importante para la recuperación ante desastres y la tolerancia a fallas. Cuando la empresa encuentra una falla que no se puede resolver de inmediato, transferir usuarios o servicios fuera del área anormal es una habilidad que se ha probado en operaciones masivas. También es una de las capacidades principales de operación y mantenimiento de Tencent QQ y WeChat. para asegurar la calidad del servicio de las plataformas.
Combinada con nombre de dominio, VIP, puerta de enlace de acceso y otras tecnologías, la arquitectura admite capacidades de programación, enriquece los medios de gestión de operación y mantenimiento y tiene la capacidad de lidiar con varios escenarios de falla con mayor calma.
Vivir en diferentes lugares
Múltiples actividades en diferentes lugares son un requisito para una alta disponibilidad de datos y un requisito previo para la programabilidad. Según los diferentes escenarios comerciales, no existen restricciones en cuanto a los medios de implementación técnica.
Para conocer la práctica social de Tencent, puede consultar el artículo del profesor Zhou Xiaojun "Diseño arquitectónico y operaciones eficientes detrás de 200 millones de usuarios de QQ".
Conmutación maestro-esclavo
En las soluciones de alta disponibilidad de bases de datos, la conmutación maestro-esclavo es la solución de recuperación ante desastres más común. Mediante la separación de lectura y escritura en la lógica empresarial, combinada con el enrutamiento inteligente, la automatización de la conmutación maestro-esclavo desatendida es sin duda el mejor regalo del diseño arquitectónico para DBA.
Disponibilidad flexible
“Estabilizar primero y luego optimizar” es una de las grandes ideas operativas de Tencent y también nos indica el camino para diseñar una arquitectura empresarial de alta disponibilidad.
¿Cómo garantizar al máximo la disponibilidad del negocio cuando el volumen de negocio aumenta repentinamente? Este es un problema inevitable en la planificación y el diseño arquitectónico. Configurar inteligentemente conmutadores flexibles o lógica integrada para rechazar automáticamente solicitudes excesivas puede garantizar que los servicios back-end no colapsen en momentos críticos y garantizar la alta disponibilidad de la arquitectura empresarial.
Punto 5: Control de calidad
Garantizar y mejorar la calidad del negocio es el objetivo de los esfuerzos de operación y mantenimiento, y las capacidades de monitoreo son un medio técnico importante para que podamos lograr nuestros objetivos. El departamento de operación y mantenimiento espera que esta arquitectura pueda brindar conveniencia y soporte de datos para el monitoreo de calidad. Los requisitos son los siguientes:
Medición de indicadores
Cada arquitectura debe medirse mediante indicadores. Al mismo tiempo, esperamos que sea mejor tener una sola métrica única para medir. Para un seguimiento empresarial tridimensional cada vez más completo, el número de indicadores de seguimiento aumentará exponencialmente. Por tanto, queremos que la arquitectura tenga una sola medida métrica.
Monitoreo básico
Se refiere a las capacidades de indicador de bajo nivel de redes, líneas dedicadas, hosts y sistemas. La mayoría de estos puntos de monitoreo no son invasivos y son fáciles de recopilar datos.
En una empresa con capacidades sólidas de operación y mantenimiento automatizadas, la mayoría de los datos de alarma generados por el monitoreo básico convergerán. Al mismo tiempo, esta parte de los datos de monitoreo proporcionará soporte de datos y base para la toma de decisiones para el monitoreo empresarial de alto nivel, o se empaquetará en datos de monitoreo empresarial que estén más cerca de escenarios de aplicaciones de nivel superior, como capacidad, multidimensional. indicadores, etc
Monitoreo de componentes
Tencent está acostumbrado a llamar a marcos de desarrollo, servicios de enrutamiento y componentes de middleware. Este tipo de seguimiento se encuentra entre el seguimiento básico y el seguimiento empresarial. Las operaciones y el mantenimiento a menudo quieren incorporar la lógica de monitoreo en los componentes. Mediante la promoción de componentes, se mejora la cobertura del seguimiento de los componentes y el costo de obtención de datos es moderado. Si utiliza el monitoreo, operación y mantenimiento de componentes de enrutamiento, puede obtener indicadores de estado y calidad, como el volumen de solicitudes y la latencia para cada servicio de enrutamiento.
Monitoreo empresarial
La implementación del monitoreo empresarial se puede dividir en monitoreo activo y monitoreo pasivo, que se puede lograr mediante intrusión y derivación. Este tipo de solución de monitoreo requiere cooperación para el desarrollo, que involucra codificación y arquitectura.
Por lo general, los indicadores de seguimiento empresarial se pueden resumir en tres indicadores: volumen de solicitudes, tasa de éxito y retraso. Existen muchos métodos de implementación, como monitoreo de registros, monitoreo de datos de flujo, medición de olas, etc. El seguimiento empresarial es un seguimiento de alto nivel que a menudo puede proporcionar información directa sobre cuestiones empresariales. Sin embargo, para analizar en profundidad la causa raíz del problema, se debe combinar con las especificaciones de gestión y monitoreo de operación y mantenimiento necesarias, como definiciones de códigos de retorno, protocolos de registro, etc. Al diseñar la arquitectura empresarial, se deben considerar de antemano las necesidades de monitoreo y gestión de la operación y el mantenimiento, y el alcance debe planificarse globalmente.
Monitoreo de enlace completo
Los métodos de monitoreo de infraestructura, componentes y servicios se centran más en el monitoreo puntual. En escenarios comerciales con arquitectura distribuida, se debe considerar el monitoreo de los enlaces de solicitud de servicios.
Con base en el ID de transacción único o la relación de llamada RPC, la cadena de relación de llamada se restaura a través de medios técnicos y luego se activan alarmas de monitoreo a través de modelos o eventos para retroalimentar el estado y la calidad del enlace de servicio. Este método de monitoreo es una aplicación avanzada de monitoreo y requiere planificación previa e incorporación de código al planificar la arquitectura empresarial. .
Evaluación de la calidad
Cualquier mejora en las capacidades de monitoreo y optimización de la calidad requiere una gestión de circuito cerrado, y la evaluación es un buen medio. Desde la cobertura de seguimiento, indicadores integrales, mecanismos de gestión de eventos hasta informes de puntuaciones de evaluación, las operaciones y el desarrollo pueden crear conjuntamente un circuito cerrado de gestión de calidad con retroalimentación continua, lo que permite que la estructura empresarial evolucione y mejore continuamente.
Punto seis: Costo de desempeño
En Tencent, todo el personal de operaciones técnicas es responsable de una función importante, que es garantizar costos operativos comerciales razonables. Para ello, debemos contar con los métodos de gestión correspondientes para el rendimiento del rendimiento de las aplicaciones, la planificación de la capacidad empresarial y los costos operativos.
Rendimiento del rendimiento
En la metodología de entrega continua de DevOps, el punto más importante de las pruebas de requisitos no funcionales en la fase de prueba es la prueba de estrés del rendimiento del rendimiento de la arquitectura para garantizar las capacidades comerciales después. Se lanza la aplicación de salud.
En la práctica de Tencent, las pruebas de estrés de rendimiento no se limitan a la fase de prueba. Combinaremos la funcionalidad del componente de enrutamiento para probar solicitudes reales de módulos de servicio y conjuntos de servicios para establecer una línea de base para el modelo de capacidad de servicio. También proporciona datos externos para demostrar si el rendimiento de la arquitectura empresarial cumple con los requisitos de la evaluación de costos y utiliza la comparación de datos de rendimiento entre diferentes servicios para promover la mejora continua del rendimiento de la arquitectura.
Planificación de capacidad
La palabra inglesa "capacidad" se puede traducir como: rendimiento de la aplicación, capacidad del servicio y solicitudes totales de servicio. La planificación de la capacidad de operación y mantenimiento se refiere a una planificación razonable de la capacidad del servicio basada en las solicitudes de servicio totales bajo la premisa de que el rendimiento de la aplicación cumple con los estándares.
Gastos de producción
Reducir los costes operativos significa reducir la inversión en flujo de caja para la empresa, y su valor para la empresa no es menor que la mejora de la calidad y la eficiencia.
Tencent se centra en servicios de medios enriquecidos, como redes sociales, UGC, computación en la nube, juegos y vídeos. , y la cantidad de costos operativos, como ancho de banda y equipos, que se consumen cada año es enorme. Los costos operativos de optimización de operación y mantenimiento a menudo implican la optimización de las funciones del producto y la arquitectura empresarial. Por lo tanto, el diseño ideal de arquitectura empresarial de operación y mantenimiento requiere suficiente conciencia de costos.
Resumen
Este artículo es puramente mi humilde opinión sobre el diseño de la arquitectura de microservicios desde una perspectiva de operación y mantenimiento. Para maximizar el valor de la operación y el mantenimiento y garantizar la mejora general de la calidad, la eficiencia y los costos del negocio, se debe morder el hueso duro de la arquitectura empresarial.
El personal de operación y mantenimiento necesita comprender la arquitectura. Pueden hacer sugerencias o requisitos para la arquitectura empresarial desde diferentes perspectivas, lo que también defiende el espíritu DevOps. El desarrollo, la operación y el mantenimiento trabajan juntos para optimizar continuamente la mejor arquitectura empresarial.