Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-01-10 GMT+08:00

Ventajas del producto

¿Por qué CCE?

CCE es un servicio de contenedores basado en las tecnologías populares de Docker y Kubernetes y ofrece una gran cantidad de características que se adaptan mejor a la demanda de las empresas para ejecutar clústeres de contenedores a escala. Con las ventajas únicas en confiabilidad del sistema, rendimiento y compatibilidad con comunidades de código abierto, CCE puede adaptarse a los detalles de las empresas interesadas en construir nubes de contenedores.

Fácil para el uso

  • Crear un clúster de Kubernetes es tan fácil como hacer unos pocos clics en la interfaz de usuario web (WebUI). El clúster de Kubernetes admite la gestión de nodos de máquinas virtuales o nodos de metal desnudo y se aplica al escenario en el que las máquinas virtuales y las máquinas físicas se usan juntas.
  • La implementación automática y O&M de aplicaciones en contenedores se pueden realizar en un solo lugar durante todo el ciclo de vida de la aplicación.
  • Los clústeres y las cargas de trabajo se pueden cambiar de tamaño con solo unos clics en la WebUI. Cualquier política de ajuste automático se puede combinar de manera flexible para hacer frente a picos de carga en el momento.
  • El WebUI le guiará a través de los pasos necesarios para actualizar los clústeres de Kubernetes.
  • Soporte para gráficos de Application Service Mesh (ASM) y Helm ofrece facilidad de uso lista para usar.

Alto rendimiento

  • CCE se basa en años de experiencia de campo en cómputo, redes, almacenamiento e infraestructura heterogénea. Puede lanzar contenedores simultáneamente a escala.
  • La arquitectura NUMA de metal puro y las tarjetas de red InfiniBand con alta velocidad ofrecen una mejora de tres a cinco veces en el rendimiento informático.

Altamente disponible y seguro

  • Alta confiabilidad: puede implementar tres nodos principales en diferentes AZ para el plano de control del clúster para garantizar una alta disponibilidad de sus servicios. Los nodos y las cargas de trabajo de un clúster pueden equilibrarse con la carga entre AZ para formar una arquitectura multiactiva que garantice la continuidad del servicio incluso cuando uno de los hosts o salas de equipos está inactivo o una AZ se ve afectada por desastres naturales.
    Figura 1 Configuración de alta disponibilidad de clústeres
  • Seguro: los clústeres son privados y están completamente controlados por los usuarios con IAM y Kubernetes RBAC profundamente integrados. Puede establecer diferentes permisos de RBAC para los usuarios de IAM en la consola.

Abierto y compatible

  • CCE se basa en la tecnología de Docker de código abierto que automatiza la implementación, la programación de recursos, el descubrimiento de servicios y el ajuste dinámico de aplicaciones en contenedores.
  • CCE se basa en Kubernetes y es compatible con las API nativas de Kubernetes, kubectl (una interfaz de línea de comandos) y las versiones nativas de Kubernetes/Docker. Las actualizaciones de las comunidades de Kubernetes y de Docker se incorporan regularmente en CCE.

Análisis comparativo de los sistemas de gestión de clústeres de Kubernetes locales y CCE

Tabla 1 Clústeres de CCE frente a clústeres de Kubernetes locales

Área de enfoque

Sistemas de gestión de clústeres locales de Kubernetes

CCE

Facilidad de uso

La gestión de clústeres es compleja. Debe manejar toda la complejidad de instalar, operar, escalar, configurar y monitorear la infraestructura de gestión de clústeres de Kubernetes. Cada actualización de clúster requiere un tremendo ajuste manual, lo que supone una pesada carga para el personal de O&M.

Fácil de gestionar y usar clústeres

Puede crear y actualizar clústeres de contenedores de Kubernetes con solo unos clics, sin necesidad de configurar entornos Docker o Kubernetes. La implementación automática y O&M de aplicaciones en contenedores se pueden realizar en la consola, todo en un solo lugar durante todo el ciclo de vida de la aplicación.

Soporte para gráficos de Helm ofrece facilidad de uso lista para usar.

El uso de clústeres de CCE es tan sencillo como elegir un clúster de contenedores y los trabajos que desea ejecutar en el clúster. A continuación, CCE completa la gestión de clústeres para que pueda centrarse en el desarrollo de aplicaciones en contenedores.

Escalabilidad

Debe evaluar manualmente la carga de servicio y el estado del clúster antes de decidir cambiar el tamaño de un clúster.

Servicio de ajuste administrado

CCE puede cambiar automáticamente el tamaño de clústeres y cargas de trabajo a medida que cambia el uso de recursos. El uso combinado de políticas de ajuste automático permite escalar de forma flexible clústeres y cargas de trabajo para satisfacer las demandas fluctuantes.

Confiabilidad

Solo hay un nodo principal disponible en un clúster. Una vez que el nodo principal esté inactivo, todo el clúster, así como todas las aplicaciones del clúster quedarán fuera de servicio.

Alta disponibilidad

Si High Availability se establece en Yes al crear un clúster, se crearán tres nodos principales en el clúster, evitando puntos únicos de error en el plano de control del clúster.

Eficiencia

Debe crear repositorios de imágenes o volver a repositorios de imágenes de terceros. Las imágenes se extraen de los repositorios en serie.

Rápida implementación de imágenes e integración continua

CCE trabaja con SoftWare Repository for Container (SWR) para soportar las canalizaciones de DevOps y eliminar la necesidad de escribir manualmente Dockerfiles o manifiestos de Kubernetes. Con las plantillas de canalización de ContainerOps puede definir cómo crear imágenes de contenedores, enviarlas a repositorios e implementarlas. Las imágenes se extraen de repositorios en paralelo.

Costo

Se requiere una gran inversión inicial para instalar, gestionar y escalar la infraestructura de gestión de clústeres.

Rentable

Solo paga por los recursos de infraestructura necesarios para almacenar y ejecutar aplicaciones, así como por los nodos principales del clúster.

¿Por qué Containers?

Docker está escrito en el lenguaje de programación Go diseñado por Google. Proporciona la virtualización a nivel del sistema operativo: los procesos de software se aíslan entre sí mediante el uso de Linux Control Groups (cgroups), espacios de nombres y tecnologías de Union FS (por ejemplo, AUFS). Todo lo necesario para ejecutar un proceso de software se empaqueta en un contenedor. Los contenedores se aíslan entre sí y del host.

Docker ha avanzado para mejorar el aislamiento de contenedores: los contenedores tienen sus propios sistemas de archivos, y no pueden ver los procesos o las interfaces de red del otro. Esto simplifica la creación y gestión de contenedores.

La tecnología de virtualización tradicional proporciona virtualización a nivel de hardware. Crea un conjunto de máquinas virtuales, cada una con un sistema operativo completo y una aplicación en su interior. Los contenedores, por otro lado, no tienen su propio núcleo y todos llaman al mismo núcleo del host SO. Además, no es necesario hacer ningún tipo de virtualización como lo hace con las máquinas virtuales. Por lo tanto, los contenedores de Docker son más pequeños y más rápidos que las VM.

Figura 2 Comparación entre los contenedores de Docker y las máquinas virtuales

En resumen, los contenedores de Docker tienen muchas ventajas sobre las máquinas virtuales.

Utilización de recursos

Sin sobrecarga para virtualizar hardware y ejecutar un SO completo, los contenedores pueden superar a las máquinas virtuales en velocidad de ejecución de aplicaciones, pérdida de memoria y velocidad de almacenamiento de archivos.

Velocidad de arranque

Se tarda varios minutos en iniciar una aplicación en una máquina virtual. Las aplicaciones en contenedores de Docker se ejecutan directamente en el núcleo host y no hay necesidad de iniciar un sistema operativo completo junto con las aplicaciones. El tiempo de inicio se puede reducir a segundos o incluso milisegundos, lo que ahorra mucho tiempo en desarrollo, pruebas e implementación.

Entorno coherente

Uno de los mayores problemas que los desarrolladores siempre tienen que lidiar es la diferencia en los entornos donde ejecutan sus aplicaciones. La diferencia entre los entornos de desarrollo, pruebas y producción impide que se descubran algunos errores antes de la implementación. Una imagen de contenedor de Docker incluye todo lo necesario para ejecutar una aplicación y aísla la aplicación de su entorno. Por lo tanto, las aplicaciones en contenedores siempre funcionarán de la misma manera en entornos de desarrollo, pruebas y producción.

Entrega e implementación continuas

Para el personal de DevOps sería ideal que las aplicaciones pudieran ejecutarse en cualquier lugar después de una única creación o configuración.

Docker proporciona una compilación e implementación confiable y frecuente de imágenes de contenedores con rollbacks rápidos y fáciles (debido a la inmutabilidad de la imagen). Los desarrolladores escriben Dockerfiles que contienen todas las instrucciones necesarias para crear imágenes de contenedores y combinar instrucciones actualizadas regularmente en Dockerfiles, una práctica conocida como Continuous Integration (CI). El equipo de operaciones puede implementar imágenes rápidamente en el entorno de producción al permitir que Docker lea las instrucciones de Dockerfiles. El equipo de operaciones puede incluso seguir la práctica de Continuous Delivery/Deployment (CD) en la que cada cambio de instrucción se compila, prueba y luego se envía automáticamente a un entorno de pruebas de no producción.

El uso de Dockerfiles hace que el proceso de DevOps sea visible para todos en un equipo de DevOps. De esta manera, el equipo de desarrolladores puede comprender mejor las necesidades de los usuarios y los problemas que enfrenta el equipo de operaciones mientras mantiene la aplicación. Por otro lado, el equipo de operaciones puede tener algún conocimiento de las condiciones que deben cumplirse para ejecutar la aplicación. El conocimiento es útil cuando el personal de operaciones implementa imágenes de contenedores en el entorno de producción.

Portabilidad

Docker garantiza la consistencia ambiental en todo el desarrollo, las pruebas y la producción, por lo que los contenedores de Docker pueden ser portátiles en cualquier lugar. Funcionan de manera uniforme, independientemente de si se ejecutan en máquinas físicas, máquinas virtuales, nubes públicas, nubes privadas o incluso portátiles. Puede migrar aplicaciones de una plataforma a otra sin preocuparse de que el cambio del entorno haga que las aplicaciones no puedan funcionar.

Actualización de aplicaciones

Las imágenes de Docker están compuestas por capas. Cada capa solo se almacena una vez y diferentes imágenes pueden contener exactamente las mismas capas. Esto hace que la distribucion sea eficiente debido a que las capas que ya se han transferido como parte de la primera imagen no necesitan ser transferidas de nuevo cuando se transfiere la otra imagen que tambien tiene estas capas. Para actualizar una aplicación en contenedor, puede editar la capa de escritura superior de la imagen final o agregar capas a la imagen base. Además, Docker colabora con equipos de proyectos de código abierto para mantener un gran número de imágenes oficiales de alta calidad. Puede utilizarlos directamente en el entorno de producción o crear fácilmente nuevas imágenes basadas en ellos.

Tabla 2 Contenedores frente a las máquinas virtuales tradicionales

Características

Contenedores

VMs

Velocidad de arranque

En segundos

En minutos

Capacidad de disco

MB

GB

Rendimiento

Rendimiento casi nativo

Débil

Capacidad por máquina

Miles de contenedores

Decenas de máquinas virtuales