Práctica de plataforma contenedora nativa en la nube de nuevos medios de radio y televisión de Wuxi

Autor: Mao Wei, actualmente el arquitecto del sistema del Centro de Nuevos Medios del Grupo de Radio y Televisión de Wuxi, ha sido responsable del diseño y la construcción de muchas plataformas de medios financieros provinciales, municipales, distritales y del condado en todo el país, y tiene una rica experiencia en diseño de la arquitectura del sistema para la construcción de la industria de los nuevos medios. Ahora se dedica principalmente a la construcción de la serie Wuxi Bobao de nuevas plataformas de medios, promueve la transformación de varias líneas de productos comerciales a nativos en la nube y lleva a cabo un trabajo de evangelización relacionado en este campo.

Introducción

Establecido en 1999, Wuxi Radio and Television Group es el primer grupo de radio y televisión del país. A fines de 2007, se estableció la estación de radio y televisión de Wuxi (dos marcas y un equipo con Wuxi Radio and Television Group). Como medio de comunicación general y empresa estatal cultural municipal, el Grupo cumple la doble función de publicidad y operación: por un lado, presta servicios de opinión pública para el trabajo central del Comité Municipal del Partido y del Gobierno Municipal y el conjunto reforma, desarrollo y estabilidad de la ciudad; Contribuir al desarrollo de la industria cultural de la ciudad. El grupo cuenta actualmente con 6 frecuencias de radio, 7 canales de televisión (incluido 1 canal de televisión móvil de autobús y metro) y una nueva matriz de medios liderada por "Wuxi Bo Bao".

introducción de fondo

Como uno de los primeros medios urbanos de radio y televisión en China en presentar el concepto de desarrollo de integración de medios, ponerlo en práctica y continuar innovando, Wuxi Radio and Television comenzó a implementar estrategias de terminales móviles e innovar continuamente desde 2012, y actualizará e iterará a sus dos principales clientes en 2021. El nuevo terminal de cliente "Wuxi Bobao" ha formado una serie de cuentas públicas de WeChat, Weibo y cuentas de video "Bobao", formando una nueva matriz de medios con una comunicación e influencia más sólidas. Recientemente, ganó honores como "Unidad Piloto de Integración de Medios de Radio y Televisión Nacional" y "Nueva Era, Nueva Marca y Nueva Influencia" por parte de la Administración Estatal de Radio, Cine y Televisión en 2022.

En la práctica a largo plazo, Wuxi Radio and Television ha explorado gradualmente ideas y experiencias para el desarrollo de la integración de medios adecuada para la radio y la televisión urbanas. Guiados por la construcción de capacidades de comunicación, construiremos activamente un nuevo sistema de comunicación externamente, nos adherimos a la estrategia "móvil primero", ampliamos y fortalecemos la plataforma de terminales móviles y ocupamos posiciones de comunicación emergentes. Guiados por la comunicación de toda la red y las necesidades de operación local, continuaremos promoviendo la reingeniería y la optimización de las estructuras organizativas internas, los mecanismos institucionales, los procesos comerciales y las plataformas tecnológicas. Promover la "fuerza principal en el campo de batalla principal", transferir el equipo y la capacidad de producción de la radio y la televisión tradicionales al nuevo fin de los medios y crear una posición principal de opinión pública con características de medios urbanos.

Esto requiere que Wuxi Radio and Television se adapte rápidamente a las cambiantes necesidades operativas y del mercado, y brinde un fuerte apoyo a varias empresas en crecimiento geométrico con una implementación, operación y mantenimiento de aplicaciones eficientes y ágiles.

Antes de la transformación de contenedores, Wuxi Radio and Television adoptó principalmente un entorno de infraestructura basado en tecnología de virtualización. Cada aplicación comercial se implementó en una máquina virtual independiente de acuerdo con sus propias necesidades. Con el tiempo, la escala de las máquinas virtuales se volvió más y más compleja. Las insuficiencias en la estructura se han vuelto cada vez más prominentes, de la siguiente manera:

  • Cuando se alcanza una determinada escala, los recursos informáticos y de almacenamiento que el propio sistema operativo de la máquina virtual necesita ocupar son relativamente derrochadores.
  • Los sistemas operativos antiguos acumulados durante un largo período de tiempo deben mantenerse y actualizarse. Por ejemplo, una gran cantidad de sistemas CentOS existentes deben reemplazarse por nuevas versiones después de la interrupción oficial del mantenimiento.
  • Cada aplicación requiere mantenimiento y administración independientes, lo que hace que los costos de implementación y operación y mantenimiento sean cada vez más altos.
  • La capacidad de escalado elástico es pobre y el tiempo de implementación es largo.
  • Falta un entorno de prueba, y el entorno de desarrollo y el entorno de producción no están unificados, y las actualizaciones de aplicaciones dependen del trabajo manual.
  • La falta de seguimiento de la utilización del negocio y de los recursos hace que sea imposible descubrir problemas potenciales por adelantado.

Estos problemas conducen a una eficiencia de operación y mantenimiento relativamente baja, que no puede satisfacer las necesidades de una iteración comercial rápida. Por lo tanto, el equipo de operación y mantenimiento de nuevos medios de Wuxi Radio and Television decidió llevar a cabo una transformación en contenedores para mejorar la elasticidad, flexibilidad y mantenibilidad del sistema, y ​​realizar las siguientes funciones:

  • Utilización de recursos más eficiente: la tecnología de contenedorización puede compartir el kernel del sistema operativo, lo que reduce los recursos informáticos y de almacenamiento necesarios para cada aplicación.
  • Mejor capacidad de mantenimiento: mediante el uso de herramientas de orquestación de contenedores, puede administrar y mantener mejor los contenedores, mejorar la eficiencia de implementación y operación y mantenimiento, y reducir los costos.
  • Mayor elasticidad: la tecnología de contenedorización puede lograr una rápida implementación y puesta en marcha, y un rápido escalado, para satisfacer mejor las necesidades cambiantes del negocio.
  • Mayor coherencia: la tecnología de contenedorización puede garantizar la coherencia del entorno de desarrollo, el entorno de prueba y el entorno de producción, lo que reduce el riesgo de actualizaciones de aplicaciones.
  • Mejor observabilidad: a través del seguimiento distribuido, la topología y el monitoreo del tráfico visualizado, se puede realizar el monitoreo y las alarmas desde los nodos hasta los contenedores y los recursos comerciales, y los problemas se pueden descubrir, ubicar y resolver de manera oportuna.
  • Mejor gestión del ciclo de vida de las aplicaciones: mediante la integración de tecnologías como tiendas de aplicaciones y sistemas DevOps y gobernanza de microservicios, la gestión de versiones de aplicaciones puede hacerse más ágil, elástica y escalable.

Por esta razón, adoptar la nube nativa se ha convertido en una tendencia en toda la industria, lo que puede ayudar a reducir costos, mejorar la eficiencia y mejorar la competitividad.

Planificación de la selección

A través del uso inicial de contenedores y la acumulación de Kubernetes en la etapa inicial, antes de decidir transformarnos completamente en contenedores, hemos establecido algunos requisitos en combinación con nuestros propios requisitos para la futura planificación de la plataforma de gestión de Kubernetes:

  • Capaz de administrar múltiples clústeres de Kubernetes, dividiremos múltiples clústeres de acuerdo con la adaptación comercial y los instalaremos en clústeres existentes.
  • Puede integrarse desde la implementación, el mantenimiento de actualizaciones y la gestión de los clústeres de Kubernetes, cubriendo la gestión del ciclo de vida de los clústeres y las aplicaciones.
  • Hay una interfaz API para facilitar el acoplamiento con sus propias herramientas de CI/CD.
  • Compatibilidad con sistemas que no son CentOS (se promueve la descentOSización durante la selección del modelo).
  • Es conveniente para futuras actualizaciones de clústeres y puede adaptarse perfectamente al tiempo de ejecución de contenedores en la implementación de clústeres.
  • El clúster implementado está cerca de la instalación original, por lo que la herramienta puede mantener el clúster por sí misma más adelante.
  • Hay un espejo de instalación doméstico, que admite la implementación fuera de línea pura.

Durante el período de selección, estábamos planeando implementar un clúster empresarial de desarrollo propio. Encontramos las soluciones KubeSphere y Kubekey en la herramienta de implementación de Kubernetes certificada por CNCF, y realizamos pruebas exhaustivas sobre la implementación del clúster y la gestión del ciclo de vida, principalmente centrándose en las siguientes dimensiones:

A través de las pruebas, se encontró que KubeSphere+Kubekey está más en línea con las necesidades originales de la plataforma de administración en todos los aspectos. Por lo tanto, KubeSphere+Kubekey se usa para construir un conjunto de clústeres de Kubernetes y plataformas de administración para negocios de desarrollo propio (principalmente operaciones).

proceso de práctica

arquitectura de despliegue

La infraestructura se basa en su propio clúster de virtualización de sala de computadoras y utiliza máquinas virtuales para construir clústeres de Kubernetes. En términos de planificación de clústeres, se divide en dos clústeres de producción, que se utilizan para el negocio de producción de contenido y el negocio de operaciones, respectivamente. Para el clúster empresarial de producción de contenido, se pone más énfasis en la estabilidad, por lo que se adopta la versión 1.21. En cuanto al grupo de negocios de operación, sobre la base de buscar una estabilidad relativa, se han seguido algunas características de la nueva versión y se ha adoptado la versión 1.23. Al mismo tiempo, en el clúster empresarial de operaciones, primero se practicarán algunas características de la nueva versión para acumular experiencia, a fin de sentar una base sólida para actualizar el clúster empresarial de producción de contenido en el futuro. Por supuesto, sin importar qué clúster sea, antes de cada actualización y mantenimiento correspondiente, se creará un clúster de prueba temporal para probar y verificar las operaciones relacionadas.

recursos del clúster

Aquí tomamos el clúster K8s de la versión 1.23 como ejemplo para presentar el entorno de implementación. Lista de recursos:

nombre del nodo configuración Role sistema
k8s-maestro1 4C 8G 200G Nodos del plano de control, etc. Debian 11
k8s-maestro 4C 8G 200G Nodos del plano de control, etc. Debian 11
k8s-master3 4C 8G 200G Nodos del plano de control, etc. Debian 11
k8s-node1 16C 32G 200G nodo de trabajo Debian 11
k8s-node2 16C 32G 200G nodo de trabajo Debian 11
k8s-node3 16C 32G 200G nodo de trabajo Debian 11
k8s-node4 16C 32G 200G nodo de trabajo Debian 11
k8s-node5 16C 32G 200G nodo de trabajo Debian 11
k8s-puerto 4C 8G 500G almacén de espejos Debian 11
gitlab 8C 16G 200G repositorio de código Debian 11
gitrunner 8C 8G 200G CI/CD Debian 11
k8s-lb1 4C 8G 100G equilibrio de carga, DNS Debian 11
k8s-lb2 4C 8G 100G equilibrio de carga, DNS Debian 11
proxy1 8C 16G 100G Proxy inverso de acceso comercial Debian 11
proxy2 8C 16G 100G Proxy inverso de acceso comercial Debian 11

Todos los servidores se proporcionan mediante máquinas virtuales de la plataforma de virtualización local.

Exposición comercial externa

Para realizar el acceso comercial externo del clúster K8s, se utilizan dos servidores OpenResty y el tráfico se distribuye al puerto Ingress NodePort de cada nodo de trabajo en el clúster K8s a través del modo de proxy inverso. Para garantizar una alta disponibilidad, el servidor OpenResty se implementa en modo activo-activo. Al mismo tiempo, OpenResty se usa para realizar las funciones de actualización en caliente, limitación de corriente y protección de seguridad de la configuración. Además, la gestión global de certificados SSL está unificada en OpenResty para simplificar la complejidad de la gestión provocada por la implementación descentralizada de certificados SSL en el clúster K8s. A través de estas medidas, el acceso comercial externo del clúster de Kubernetes se puede administrar de manera más eficiente.

Para lograr una alta disponibilidad de la administración de clústeres de K8, se implementa un servicio de balanceo de carga de alta disponibilidad utilizando Keepalived y HAProxy para lograr la exposición externa unificada de los tres servidores API de nodo maestro en el back-end. Además, también se configura un conjunto de dnsmasq para proporcionar servicios de resolución de DNS para cada nodo, a fin de resolver los nombres de dominio de algunos servicios internos. De esta manera, se puede asegurar que el servidor API del clúster de Kubernetes pueda continuar brindando servicios y los nombres de dominio de los servicios internos se puedan resolver correctamente.

implementación de almacenamiento

De acuerdo con las necesidades comerciales, los servicios de máquinas virtuales más tradicionales deben migrarse a un entorno en contenedores, por lo que se logró una comprensión profunda de la solución de almacenamiento del clúster K8s. El objetivo es utilizar completamente la base de hardware existente mientras se simplifica la arquitectura y se reducen los costos de operación y mantenimiento tanto como sea posible. Por lo tanto, en términos de almacenamiento subyacente, el almacenamiento NAS de hardware profesional existente y el almacenamiento nativo en la nube (CNS) basado en vSphere se utilizan para lidiar con diferentes escenarios de persistencia de datos.

Para resolver el problema de almacenamiento de múltiples implementaciones que leen y escriben aplicaciones al mismo tiempo, se adopta la clase de almacenamiento de clase de almacenamiento basada en nfs-subdir-external-provisioner, o la forma de montar directamente volúmenes nfs en el Pod. Sin embargo, también nos damos cuenta de que el almacenamiento NFS puede no ser compatible y tener problemas de rendimiento en algunos escenarios de aplicaciones. Por lo tanto, para escenarios de persistencia de datos que solo requieren el tipo de acceso ReadWriteOnce y tienen requisitos de alto rendimiento, como bases de datos y cachés, la clase de almacenamiento storageclass se implementa mediante el uso de vSphere CNS que viene con el entorno de virtualización. Esto simplifica enormemente la complejidad de las soluciones de almacenamiento.

esquema de observabilidad

Como una aplicación de publicidad de radio y televisión, tiene altos requisitos para la estabilidad de toda la plataforma, y ​​presta más atención a la observabilidad en la operación y el mantenimiento diarios.Inicialmente, Prometheus-operator suite y Grafana se usaron para el monitoreo de recursos de clúster, y Netdata fue utilizado para la cooperación. Para los registros de aplicaciones, se utilizan Loki, Promtail y Grafana para el procesamiento. Sin embargo, en la aplicación, se encuentra que esta solución no está bien integrada en la gestión de aplicaciones del clúster, y existen algunas separaciones en uso. Después de probar la solución general de monitoreo y registro proporcionada por KubeSphere, decidí cambiarme definitivamente a KubeSphere. Esto resuelve el problema anterior de separación entre varios sistemas y realiza la integración de administración, monitoreo y registro de clúster + aplicación.

Solución DevOps

En términos de Devops, se adopta la solución GitLab CI/CD. I+D solo necesita enviar el código y etiquetarlo, y GitLab generará automáticamente los trabajos correspondientes. Luego, ejecute el script correspondiente a través de GitLab Runner para realizar el empaquetado, la inserción de imágenes y otras operaciones, y active la API para modificar la etiqueta de imagen de la aplicación en línea a través de un nombre de etiqueta específico, a fin de realizar la implementación automática.

aplicar efectos

En comparación con el método anterior de administración de clústeres de Kubernetes, después de usar KubeSphere, hemos logrado:

  1. Facilidad de implementación y actualización de clústeres de Kubernetes

Después de aplicar KubeSphere, ya no es necesario instalar y configurar manualmente los clústeres de Kubernetes, porque KubeSphere proporciona la herramienta KubeKey para implementar funciones de implementación y actualización con un solo clic, lo que hace posible crear y administrar clústeres rápidamente. Además, KubeSphere también proporciona administración de aplicaciones basada en Helm and Operator, lo que facilita la implementación y administración de aplicaciones.

  1. Gestión unificada de múltiples clústeres de Kubernetes

En el negocio de las aplicaciones reales, es necesario administrar varios clústeres de Kubernetes al mismo tiempo. Después de aplicar KubeSphere, se pueden administrar múltiples clústeres de Kubernetes de manera unificada, lo que facilita la operación y el monitoreo. Además, KubeSphere también proporciona replicación y programación de imágenes de aplicaciones entre clústeres, lo que hace posible implementar aplicaciones de manera flexible entre múltiples clústeres.

  1. Realice la gestión del control de acceso al espacio empresarial y la asignación de recursos en forma de inquilinos

En el negocio, la gestión del control de acceso y la asignación de recursos son necesarios para diferentes usuarios y equipos. Después de aplicar KubeSphere, se pueden crear inquilinos para realizar el control de acceso y la asignación de recursos al espacio empresarial, a fin de administrar el negocio de manera más flexible.

  1. Unificación de logs y plataformas de monitoreo para clústeres y aplicaciones

Anteriormente, se requerían diferentes antecedentes de herramientas de monitoreo y registro para administrar clústeres y aplicaciones. Después de aplicar KubeSphere, podemos usar la plataforma unificada de registro y monitoreo proporcionada por KubeSphere para administrar clústeres y aplicaciones, lo que facilita la visualización y el análisis de datos.

  1. Barreras de entrada simplificadas para el gobierno de aplicaciones

El gobierno de aplicaciones es una parte muy importante de nuestro negocio. Después de aplicar KubeSphere, puede usar los componentes de gobierno de aplicaciones proporcionados por KubeSphere, como la publicación en escala de grises y la administración del tráfico, para administrar las aplicaciones de manera más conveniente. De esta forma, se puede reducir el costo de usar el gobierno de aplicaciones y se puede mejorar la eficiencia.

plan futuro

Combinado con la aplicación real de radio y televisión, en cuanto a la aplicación KubeSphere, existen los siguientes planes posteriores:

  • Intente utilizar la versión en escala de grises de KubeSphere en la prueba.
  • Explore el uso de los componentes DevOps de KubeSphere para combinar versiones en escala de grises con canalizaciones de CI/CD.
  • Utilice el componente de gobierno de aplicaciones para lograr la observabilidad de APM empresarial.

En el proceso actual de uso de KubeSphere, descubrí que, en comparación con otros productos, KubeSphere se enfoca más en escenarios de aplicaciones y rutas en segundo plano de administración simplificadas, lo que es más amigable para los recién llegados. Sin embargo, parte del personal básico puede sentirse perdido acerca de la correspondencia entre algunos elementos de configuración en segundo plano y los recursos de Kubernetes en la etapa inicial de contacto, y la operación es engorrosa. Además, se descubrió que la configuración de algunos recursos de Kubernetes no se puede controlar completamente en segundo plano en la actualidad y debe realizarse mediante la edición manual de YAML. Por lo tanto, es de esperar que estos problemas se mejoren en versiones futuras.

¡Este artículo está publicado por OpenWrite, una plataforma de publicación múltiple para blogs !

Supongo que te gusta

Origin blog.csdn.net/zpf17671624050/article/details/129580582
Recomendado
Clasificación