Maratón Behind the Code Latinoamérica: Sé parte del Desafío. Inscríbete antes del 7 de Setiembre.

Blog de desarrolladores de IBM

Siga los últimos acontecimientos con IBM Developer y manténgase informado.

Gestione aplicaciones en contenedores con IBM Cloud Pak System


Los requisitos de normativa o de rendimiento a menudo dictan que se debe implementar una cantidad significativa de aplicaciones dentro de un centro de datos on premises. Si desea gestionar aplicaciones en contenedores con Kubernetes, también debe instalar Kubernetes en su centro de datos y también atrás del firewall. Esto puede ser un desafío si actualmente no tiene las habilidades para implementar clústeres de Kubernetes on premises. Este post ofrece posibles soluciones.

Introducción a Kubernetes y los problemas que resuelve

Kubernetes es una plataforma de orquestación de contenedores de código abierto potente y flexible. Fue desarrollado en respuesta a un problema creado por el uso creciente de contenedores Docker para empaquetar aplicaciones, donde el número de contenedores implementados creció más allá de lo que razonablemente se podía gestionar con las herramientas disponibles en ese momento. Kubernetes también ayudó a estandarizar los abordajes para proporcionar tolerancia a fallos y recuperación para aplicaciones en contenedores. Esto eliminó la necesidad de que cada equipo desarrolle sus propias mejores prácticas en esa área. Muchos proveedores de software ahora entregan sus productos como conjuntos de imágenes de Docker que se pueden implementar fácilmente en Kubernetes.

La implementación de software y soluciones en Kubernetes tiene otra ventaja significativa: se puede implementar donde tenga un clúster de Kubernetes a su disposición. La mayoría de los proveedores de nube pública ofrecen un servicio Kubernetes gestionado, como el IBM Cloud Kubernetes Service, Azure Kubernetes Service y Google Kubernetes Engine. También puede implementar Kubernetes on premises dentro del entorno controlado de su propio centro de datos.

Kubernetes requiere una sólida plataforma IaaS

Kubernetes se centra en la implementación y la gestión de cargas de trabajo en contenedores, no en los recursos de infraestructura de red, almacenamiento y computación que requiere. Si esos recursos se proporcionan de manera virtualizada, a menudo se los denomina infraestructura-como-servicio (IaaS) subyacente. No puede ejecutar una plataforma Kubernetes de confianza y resistente si la plataforma IaaS subyacente no cumple con ciertas cualidades de servicio. Cuando utiliza un servicio Kubernetes gestionado de un proveedor de nube pública, confía en ese proveedor de nube para asegurarse de que la plataforma IaaS haga lo que se supone que debe hacer. Sin embargo, cuando implementa Kubernetes on premises dentro de su propio centro de datos, usted es responsable de la plataforma IaaS que lo aloja.

La responsabilidad de implementar y hacer funcionar esa infraestructura requiere un esfuerzo que no debe subestimarse. Es posible que ya tenga una solución sólida que podría usarse. De lo contrario, debe considerar cuidadosamente los desafíos técnicos y los plazos de entrega para crear una nueva plataforma IaaS.

Comienza con el uso de hardware fiable que esté configurado para evitar puntos únicos de falla. A su vez, necesita una forma de gestionar y utilizar fácilmente el hardware, de modo que, si se produce algún problema, pueda identificarlo rápidamente. Del mismo modo, debe supervisar de cerca el ciclo de vida de sus diversos componentes de hardware. Los componentes de almacenamiento, red y procesador tienen firmware que debe actualizarse regularmente. Además, debe garantizar la compatibilidad de cada combinación particular de hardware y firmware. El uso de componentes de hardware estandarizados de un solo proveedor puede ayudar a hacer esto posible. Los equipos que actúan como su propio integrador de hardware pueden verse abrumados rápidamente por las muchas opciones e interdependencias que deben considerarse al desarrollar una pila de hardware.

Los sistemas integrados que incluyen hardware y software que se desarrollan y prueban como una sola unidad eliminan la necesidad de que usted mismo diseñe y pruebe dichos sistemas. Algunos de estos sistemas se clasifican como infraestructura convergente, lo que significa que las herramientas de red, servidores, almacenamiento y virtualización están empaquetadas en un dispositivo precalificado de llave en mano que incluye un kit de herramientas de software de gestión. Otros son ejemplos de una tendencia más reciente llamada infraestructura hiperconvergente (HCI), en la que la infraestructura de TI virtualiza todos los elementos de los sistemas convencionales «definidos por hardware» e incluye, como mínimo, computación virtualizada, una red de área de almacenamiento virtualizada (SAN) y redes virtualizadas.

No son solo los proveedores de hardware tradicionales los que ofrecen ofertas en esta área. Los proveedores de la nube pública recientemente comenzaron a crear ofertas diseñadas para ubicarse en el centro de datos del cliente, pero que se consideran parte de la nube pública.

Implementar Kubernetes requiere habilidad experta

Aunque Kubernetes 1.0 se lanzó en julio de 2015, es una tecnología relativamente nueva que todavía está evolucionando y madurando. Como resultado, hay un número limitado de personas con habilidades prácticas significativas habilidades de Kubernetes, lo que puede dificultar la implementación on premises de Kubernetes. Las actividades que requieren habilidades de intermedias a avanzadas incluyen la configuración del entorno de red para interconectar todos los nodos en los clústeres, definir el almacenamiento dinámico que serán utilizados por los nodos que admiten Kubernetes y mantener los contenedores y pods que se implementan en los clústeres. Esto es especialmente cierto si planea ejecutar aplicaciones de producción en Kubernetes. Cuando las habilidades son escasas, tiene sentido implementar una plataforma de aplicación de contenedor comercial como Red Hat OpenShift Container Platform. Esto no solo simplifica la configuración, sino que también proporciona soporte a nivel empresarial para resolver problemas futuros.

También hay formas de multiplicar la efectividad de las habilidades que ya existen dentro de su organización, como el uso de plantillas de implementación y operaciones de gestión predefinidas para capturar la experiencia existente para de automatizar actividades comunes. Las personas con habilidades de Kubernetes relativamente limitadas pueden usar esas plantillas, comúnmente conocidas como infraestructura como código, para crear sus propios entornos de Kubernetes y garantizar la coherencia.

Las plantillas de infraestructura como código automatizan las implementaciones de Kubernetes

Las plantillas de infraestructura como código automatizan la implementación de un conjunto de máquinas virtuales con software instalado y además configurado. Básicamente, los pasos para crear un entorno Kubernetes se programan en un archivo de definición legible por máquina que se trata como si fuera el código fuente del programa.

IBM Cloud Pak System

IBM Cloud Pak System es una combinación precalificada de hardware y software. Incluye las plantillas de infraestructura como código mencionadas anteriormente, lo que permite una implementación rápida y una gestión simplificada de los clústeres de Red Hat OpenShift Container Platform.

La Figura 1 ilustra la plantilla HA de Red Hat OpenShift Container Platform en el sistema IBM Cloud Pak. La plantilla muestra la topología de un clúster de Red Hat OpenShift Container Platform y cada cuadro representa una máquina virtual con una función particular dentro del clúster. Una vez implementado, esto es lo que se instalará y configurará automáticamente. Esta plantilla particular crea un clúster OpenShift multinodo con GlusterFS, que proporciona alta disponibilidad con tres nodos maestros, tres nodos de infraestructura y cuatro nodos de aplicación.

diagrama de la plantilla HA de Red Hat OpenShift Container Platform Figura 1: Plantilla HA de Red Hat OpenShift Container Platform en IBM Cloud Pak System

Conclusión

Incluso cuando su organización necesita alojar aplicaciones de producción on premises, aún es posible aprovechar los beneficios de la contenedorización. Para resumir, los componentes clave que necesita para lograr esto son:

  • Una plataforma IaaS fiable con hardware que esté configurado para evitar puntos únicos de falla.
  • Personas con habilidades prácticas considerables de Kubernetes o una plataforma de aplicación de contenedor comercial.
  • Plantillas de automatización de infraestructura como código para acelerar la creación de entornos Kubernetes y garantizar la consistencia.

Conozca más sobre cómo funcionan las plantillas de infraestructura como código en IBM Cloud Pak System con el tutorial [Acelere la implementación de su RedHat OpenShift Container Platform con IBM Cloud Pak System] (https://developer.ibm.com/tutorials/accelerate-your-red-hat-openshift-container-platform-deployment-with-ibm-cloud-pak-system).