[Reposted] 40 días de 14 actualizaciones de versiones principales, práctica de tecnología de contenedores a gran escala detrás de la conferencia Tencent

40 días 14 actualizaciones de versiones principales, práctica de tecnología de contenedores a gran escala detrás de la conferencia Tencent 

https: // my.oschina.net/jxcdwangtao/blog/3197014

 

Debido al impacto de la epidemia de neumonía coronaria en el Festival de Primavera, las aplicaciones de oficina en línea se hicieron populares rápidamente. Como producto de oficina en línea de nivel empresarial, Tencent Conference fue rápidamente reconocido por los usuarios. Al mismo tiempo que la cantidad de usuarios está aumentando, la empresa también está actualizando iterativamente a alta velocidad, ha completado la actualización de 14 versiones principales en 40 días y ha presentado un caso clásico de pequeños pasos e iteraciones rápidas. Este artículo comenzará desde la perspectiva del contenedor y le mostrará cómo la conferencia de Tencent se basa en el servicio de contenedor de la nube de Tencent TKE. Con la capacidad de back-end llegando a 1 millón de núcleos, la tecnología nativa de la nube detrás de la rápida iteración de la versión.

Como un producto clave para productos de nivel empresarial, Tencent Meeting tiene requisitos muy altos en cuanto a disponibilidad y estabilidad del producto. Cualquier servicio inestable puede resultar en que los usuarios no puedan acceder a la reunión, la interrupción de la reunión o la mala calidad de audio y video, lo que resulta en quejas de los usuarios. Afecta la reputación del producto y reduce la confianza del usuario.

Al mismo tiempo, el número de usuarios está explotando, lo que requiere capacidades de back-end para mantenerse al día con el ritmo de crecimiento de los usuarios en tiempo real, que tiene requisitos muy altos para la puntualidad de la expansión de la capacidad. Además, en el proceso de operación del servicio, el producto inevitablemente tendrá actualizaciones iterativas, tales como la optimización de funciones y la corrección de errores.

Soluciones

Para abordar los requisitos del escenario empresarial anteriores, se utiliza el Servicio de Contenedor en la Nube de Tencent ( TKE ) para apoyar las reuniones de Tencent. Con la ayuda del enrutamiento dinámico de TKE , la red fija, la escalabilidad elástica y las capacidades de actualización controlables, lleva perfectamente la implementación y operación de servicios de alto crecimiento durante el estallido de las conferencias de Tencent, la educación en línea y las aulas aéreas. La arquitectura de la plataforma de administración es la siguiente:

La plataforma de administración se basa en el servicio de implementación del clúster TKE, y se han realizado algunas expansiones de funciones basadas en esto. La marca verde muestra las capacidades realizadas, la marca roja está en progreso y se planea implementar el gris; el clúster TKE se basa en Tencent Cloud CVM, CBS, CLB, VPC Basado en capacidades básicas, implemente clústeres k8s nativos de la nube; a través de operadores extendidos basados ​​en TKE, desde enrutamiento (controlador CLB / L5), red (Ipamd), gestión de recursos (NodeResourceOversell, DynamicQuota), escalado elástico (VPA, HPAPlus) La optimización de funciones se ha realizado en múltiples dimensiones, lo que ha respaldado bien el despliegue y la operación de los servicios de desarrollo propio de Tencent, como Tencent Conference.

El modelo de implementación comercial es el siguiente:

Los servicios aquí se implementan en tres conjuntos de entornos, correspondientes a tres conjuntos de espacios de nombres: prueba, prelanzamiento y formal. Los servicios se implementan en múltiples modelos de microservicios bajo el espacio de nombres. Cada conjunto de servicios incluye un conjunto de recursos de ejecución independientes y completos, tales como: carga de trabajo, servicio / ingreso, mapa de configuración, secreto, pv / pvc, etc.

El nombre completo de Tencent Cloud Container Service TKE en inglés es Tencent kubernetes Engine, conocido como TKE , que tiene como objetivo proporcionar a los usuarios una plataforma de gestión de contenedores Kubernetes estable, segura, eficiente, flexible y fácil de usar. Basado en kubernetes nativos, TKE proporciona un servicio de administración de contenedores de alto rendimiento, altamente escalable y centrado en contenedores. Es totalmente compatible con la API nativa de kubernetes. Expande los complementos de kubernetes como el disco duro en la nube de Tencent Cloud y el equilibrio de carga. Proporciona una implementación eficiente de aplicaciones en contenedores. Una serie de funciones completas como la programación de recursos, el descubrimiento de servicios y el escalado dinámico resuelven los problemas de consistencia ambiental del desarrollo, prueba y operación y mantenimiento del usuario, mejoran la conveniencia de la administración de clústeres de contenedores a gran escala y ayudan a los usuarios a reducir costos y mejorar la eficiencia.

Análisis de soluciones específicas.

A continuación se presentará cómo Tencent Cloud Container Service TKE apoya la evolución empresarial de Tencent Conference desde tres aspectos de garantía de calidad, eficiencia y actualización controlable.

1. Garantía de calidad

La estabilidad de los servicios empresariales determina directamente la reputación del producto. Con el fin de garantizar la calidad del servicio de las conferencias y otros servicios de Tencent, Tencent Cloud ha tomado medidas de garantía en las siguientes dimensiones de enrutamiento dinámico, detección de anomalías, expansión paralela y migración empresarial:

1.1 Enrutamiento dinámico

动态路由是基于腾讯自研的路由系统L5,通过在TKE集群内拓展service能力实现的L5-controller组件。L5-controller控制层面实现逻辑和通用controller类似,基本流程包括监听变更事件,触发回调,入队列;拉起worker,更新路由。

Sin embargo, para garantizar la coherencia del enrutamiento, los dos conjuntos de procesos funcionales principales y auxiliares se han ampliado. Como se muestra en la figura anterior, los procesos están marcados con flechas naranjas y verdes respectivamente. El proceso principal garantiza una implementación efectiva y el proceso auxiliar garantiza la coherencia. Entre ellos, el proceso principal se desencadena en tiempo real al escuchar eventos, y varios trabajadores se ejecutan simultáneamente para garantizar la puntualidad de las actualizaciones de enrutamiento y surtir efecto en segundos. El proceso auxiliar escanea en serie el servicio en el clúster, extrae los datos de configuración de enrutamiento correspondientes al servicio y reconcilia los datos en el sistema de enrutamiento L5, y verifica si hay huecos. Cualquier configuración de enrutamiento que no sea a través de la consola central se fortalecerá y será consistente. Detectado y sobrescrito, efectivo a nivel de minutos. El nivel de datos del controlador L5 puede garantizar que la configuración del cambio surta efecto en segundos, y la coherencia sólida se implementa en minutos

1.2 Detección de anomalías

Admite la verificación del estado del pod definido por el usuario a través de las siguientes capacidades de k8 nativos de la nube, para garantizar que el servicio esté aislado durante períodos anormales de tráfico

  • livenessProbe: sonda de verificación de supervivencia
  • readinessProbe: sonda de verificación de disponibilidad
  • postStart: especifique la acción a realizar antes de que el pod se levante normalmente
  • preStop: especifique la acción a ejecutar antes de que se destruya el pod
  • terminationGracePeriodSeconds: tiempo de espera para la terminación del pod

Mediante el uso de varias características funcionales anteriores, combinadas con capacidades de enrutamiento dinámico, se puede lograr una alta estabilidad de los servicios empresariales.

1.3 Expansión paralela

En un escenario masivo de usuarios de Internet, como la Conferencia Tencent, es muy necesario comprender la sensibilidad de la expansión. El crecimiento explosivo del tráfico en un corto período de tiempo requiere que el ritmo de expansión del back-end sea capaz de mantenerse al día. Por lo tanto, Tencent Cloud tiene dos HPA principales basadas en la nube La capacidad de expandirse, uno es la cantidad de concurrencia, ejecutar el proceso de detección de expansión de capacidad en un modo de alta concurrencia, la alta concurrencia detecta activamente la alta carga del negocio y luego desencadena la expansión de capacidad en tiempo real de acuerdo con la situación real; el segundo es el ciclo de cálculo, que apoya al usuario para establecer el ciclo de cálculo de detección. El mínimo puede incluso alcanzar el segundo nivel. Cuando el proceso de detección encuentra una carga alta durante el ciclo de cálculo, puede desencadenar la expansión en tiempo real.

1.4 Migración empresarial

La migración empresarial se logra principalmente a través de los siguientes tres modos:

implementación de timón: forma nativa de la nube, una configuración, distribución de múltiples clústeres, la ventaja es eficiente y manejable, la desventaja es que es fácil ser diferente de la configuración de operación de red existente, lo que resulta no necesariamente completamente utilizable, depende en gran medida de las especificaciones de implementación

Empaquetado y copia del espacio de nombres: empaquete todos los ns de la empresa y todos los recursos bajo los ns, cópielos e impleméntelos en otro clúster, tanto como sea posible para garantizar el entorno de ejecución y la restauración de la configuración de la empresa, la operación de una tecla se ha implementado en la consola central, de manera rápida y eficiente

Empaquetado y reutilización del espacio de nombres: similar al proceso anterior, existe una optimización de funciones que admite ajustes de configuración definidos por el usuario para reducir los costos de operación del usuario

2. Eficiencia

Durante la nueva epidemia de la corona, la Conferencia Tencent fue bien reconocida por la mayoría de los usuarios, los usuarios explotaron, y la eficiencia de la implementación del servicio fue la capacidad principal. Para promover la capacidad de la plataforma para adaptarse rápidamente al ritmo de crecimiento del usuario, Tencent Cloud de automatización de procesos, CI / CD, Se han realizado esfuerzos en gestión de autenticación y expansión flexible:

2.1 Automatización

La automatización es principalmente para mejorar la eficiencia del proceso.Procesos de implementación específicos tales como: nueva construcción del clúster, expansión de la capacidad del clúster, inicialización del entorno, distribución de componentes, confiar en Tencent Cloud API, implementar automáticamente la creación del clúster, nodo de adición del clúster; inicialización del entorno, ajuste de parámetros del kernel, configuración del entorno del sistema , La instalación de herramientas, el formato del sistema de archivos, la distribución de componentes y otros procesos, todos se basan en el empaquetado de scripts y la ejecución de herramientas; la integración del proceso y las herramientas de la consola central se implementa a través de canales de plataforma, como: ejecución por lotes Script, instalación por lotes, registro de la consola después de crear un nuevo clúster, etc.

2.2 CI / CD

El negocio interno de Tencent implementado en el clúster TKE básicamente ha abierto el proceso de CI / CD y admite la implementación en tándem en múltiples entornos de red. Las conferencias de Tencent se han implementado a través del modelo de CI / CD existente y el modelo de orquestación de servicios nativo de la nube. Aterrizaje eficiente desde el desarrollo, la implementación, las pruebas, el lanzamiento y la iteración de la versión

2.3 Gestión de autenticación

CMDB, como modelo de gestión de relaciones para productos, módulos comerciales e IP, es ampliamente utilizado y reutilizado en muchos escenarios comerciales de la compañía. La implementación del controlador CMDB es básicamente similar a la lógica general del controlador, que incluye monitorear los eventos de cambio de pod del apiserver, desencadenando que los trabajadores y trabajadores correspondientes consulten información del clúster en función de devoluciones de llamadas de eventos, consultas de información de productos relacionados con el pod y finalmente establezcan la relación con el sistema de servicio CMDB.

La sincronización en tiempo real de CMDB proporciona una buena función auxiliar para la implementación de muchas funciones de expansión personalizadas, como el siguiente proceso de solicitud de autenticación:

Como se muestra en el diagrama de proceso, a través del modo de contenedor de inicio, el CMDB empresarial se sincroniza y aterriza rápidamente, y está vinculado con la nube de tejido interno de Tencent, L5 y otros sistemas, que pueden abrir efectivamente el canal de autenticación, que siempre ha generado dolores de cabeza comerciales. La aplicación de autenticación es totalmente automatizada y eficiente. Apoyar la implementación de servicios empresariales.

2.4 Expansión y contracción elásticas

Con el fin de satisfacer las necesidades de escenarios empresariales clave, como las reuniones de Tencent, además de la capacidad de VPA nativa de la nube, Tencent Cloud se ha expandido en función de HPA nativa de la nube, y lo implementó en modo Operador al extraer el módulo de funciones HPA por separado para admitir la configuración de funciones personalizadas de negocios , Las capacidades de expansión específicas incluyen indicadores multicanal, recopilación de soporte de indicadores multicanal a través del servidor de Métricas, Promethus, monitoreo comercial, etc., mejor compatibilidad con escenarios comerciales

; Implementación paralela, detección paralela de múltiples trabajos de indicadores comerciales, escalamiento elástico de disparador en tiempo real para garantizar la oportunidad; personalizado, ayuda a los usuarios a personalizar el umbral de expansión y contracción, ciclo de cálculo, coeficiente elástico. El marco funcional del indicador multicanal es el siguiente:

3. Actualización controlable

Para los usuarios, la conferencia Tencent es un escenario clave para resolver la dificultad de la comunicación directa entre los usuarios. Con el fin de proporcionar una mejor experiencia del usuario, habrá más o menos iteraciones de optimización de funciones y corrección de errores durante la operación del producto. Según el modelo nativo de la nube, es especialmente importante cómo garantizar la fiabilidad y el control de las actualizaciones. Basado en las capacidades nativas de la nube, Tencent Cloud ha expandido y optimizado los siguientes cuatro aspectos: red fija, actualización ligera, actualización por lotes y garantía de capacidad, y se dio cuenta de la capacidad de los siguientes escenarios:

3.1 red fija

La red fija significa que la IP permanece sin cambios después de la destrucción y reconstrucción del pod. Escenarios como anomalías del pod y actualizaciones de la versión de la carga de trabajo, etc. La red fija es una característica muy reconocida del negocio de desarrollo propio de Tencent. Muchos servicios de fondo de negocios tienen administración de autenticación basada en IP , Mecanismo de la lista blanca y otras dependencias funcionales, creo que muchas compañías tendrán escenarios similares. El diseño de la red fija se basa en tres módulos funcionales principales: Controlador IPAMD, TKE-ENI-AGENT, CNI:

  • El controlador IPAMD se ejecuta en forma de operador y es responsable de la administración de la asignación de IP, la actualización del estado de los recursos de la red y la actualización del registro de asociación de nodos y pod, etc.
  • TKE-ENI-AGENT se ejecuta en cada nodo en modo daemonset, responsable de la reconciliación de enrutamiento, generando la configuración de cni, configurando el enrutamiento de políticas de nodo y la pila de red Pod
  • CNI también se ejecuta en el nodo y es responsable de implementar el enrutamiento de políticas de nodo y la pila de red de Pod

El proceso de implementación específico de la red fija es como se muestra arriba:

  1. El usuario inició la creación de statefulset
  2. El controlador IPAMD monitorea la solicitud de creación a través del mecanismo de observación de listas
  3. El controlador IPAMD utiliza el asignador de IP para asignar IP a todos los pods bajo el nuevo conjunto de estado
  4. El controlador IPAMD genera la configuración de red StaticIPConfig correspondiente para cada pod, y luego gestiona las actualizaciones de asociación y estado del pod y la IP asignada en el ciclo de vida después del estado completo
  5. El asignador de IP es la función principal del controlador IPAMD. Determinará que el pod actual es una nueva aplicación, destruirá la reserva de reconstrucción, eliminará la recuperación y otros procesos de acuerdo con la información del pod y el estado del conjunto de estado, y generará la configuración correspondiente. Cuando el conjunto de estado se cree nuevamente, el asignador asignará La IP se le da a la cápsula. Cuando la cápsula se destruye y reconstruye de manera anormal, el asignador recuperará temporalmente la IP original. Después de que se complete la reconstrucción, se reutilizará repetidamente. Cuando se elimine el conjunto con estado, se recuperará toda la IP asignada
  6. Cuando se crea el pod en el nodo, obtendrá la configuración de red StaticIPConfig que IPAMD ha generado a través de TKE-ENI-AGENT, y luego solicitará al asignador de IP que implemente la configuración efectiva de la red de pod a través de GRPC
  7. Después de recibir la solicitud TKE-ENI-AGENT, el asignador de IP obtendrá el IPConfig estático de la configuración de red de pod que se ha asignado, luego llamará a Tencent Cloud Interface para crear la tarjeta de red elástica ENI de acuerdo con la configuración, y finalmente generará la configuración CNIInfo de CNI
  8. CNI implementa el enrutamiento de políticas de nodo y la pila de red de pod en función de la configuración CNIInfo generada por el asignador de IP, y la red de pod entra en vigor

3.2 Operador StatefulsetPlus

La implementación nativa en la nube, StatefulSet y otros tipos de carga de trabajo no pueden satisfacer las necesidades de la conferencia Tencent y otros servicios como: actualización ligera, actualización por lotes, garantía de capacidad, etc., por lo que Tencent Cloud desarrolló un conjunto de Operador basado en StatefulSet para admitir nuevas cargas de trabajo El tipo es StatefulsetPlus, que hereda todas las características principales de StatefulSet integradas en Kubernete. La lógica de la función principal es similar a StatefulSet, pero las capacidades de subdivisión se expanden, como la IP fija de la instancia del contenedor (Pod) y la actualización en escala de grises de varios lotes de la aplicación. Mejor compatibilidad con el lanzamiento de aplicaciones tradicionales y la deriva automática de Pod cuando el Nodo está desconectado, lo que admite actualizaciones de contenedores in situ. La arquitectura de la aplicación y los módulos funcionales de StatefulsetPlus Operator son los siguientes:

StatefulsetPlus se implementa en modo CRD, que es parcialmente diferente del parámetro yaml de Statefulset, y su uso es básicamente el mismo que Statefulset

3.3 Actualización en lotes

Muchos servicios clave, como Tencent Meeting, requieren un avance absolutamente controlable al actualizar y actualizar. La actualización por lotes se basa en la expansión de este escenario. También puede ser mejor compatible con el lanzamiento de aplicaciones tradicionales. La actualización por lotes está en uso real. El proceso de evolución es el siguiente:

Para lograr una capacidad de control suficiente de las actualizaciones de lotes, los lotes deben especificarse por adelantado cuando se inicia la actualización. Cada proceso posterior se activará manualmente. Si una actualización falla, puede continuar después de la reparación o puede seguir directamente el proceso de reversión, en comparación con otras cargas de trabajo. La ventaja de la función de actualización por lotes de StatefulsetPlus es que los usuarios pueden configurar el conjunto de instancias de cada lote, por ejemplo, los usuarios solo pueden actualizar temporalmente las instancias en el área correspondiente de acuerdo con el área de servicio de la aplicación. Las instancias especificadas de cada lote se actualizan simultáneamente y la eficiencia de actualización es alta.

Al mismo tiempo, la actualización es más segura y sin preocupaciones. Admite la espera de la confirmación del usuario después de completar cada lote, y luego activa la actualización del siguiente lote de instancias. Después de que la sonda de la aplicación detecta automáticamente el éxito de la actualización, automáticamente activa la actualización del siguiente lote de instancias. Además, admite escala manual, escala elástica basada en indicadores básicos (CPU, Mem, E / S de red) y escala elástica basada en indicadores de monitoreo definidos por la aplicación.

Resumen

En la actualidad, la tendencia del acceso completo a la nube ya está clara. La conferencia Tencent también aprovechó el auge de la computación en la nube para completar rápidamente la rápida iteración de la versión y la actualización perfecta de las funciones basadas en la tecnología nativa de la nube. En la transformación basada en la nube de todos los ámbitos de la vida, la tecnología de contenedores desempeña un papel vital. Tencent ha estado investigando tecnologías y servicios relacionados con contenedores hace mucho tiempo. Muchos de sus negocios exitosos, como juegos, WeChat y publicidad, han optado por utilizar tecnología de contenedores. Se puede decir que la tecnología de contenedores está respaldando miles de millones de Usuarios

Con el desarrollo vigoroso del ecosistema de tecnología nativa de la nube, como seguidor de la tecnología, también espero que la tecnología TKE de Tencent Cloud Container Service pueda ayudar a más empresas a avanzar con orgullo.

Supongo que te gusta

Origin www.cnblogs.com/jinanxiaolaohu/p/12598770.html
Recomendado
Clasificación