IBM Well-Architected Framework

Cubo 3D con degradado azul, icono de nube blanca y dos rectángulos sobre fondo blanco.
Descripción general

Híbrido es la capacidad de ejecutar cargas de trabajo en una o más nubes públicas, nubes privadas y on premises. La nube híbrida proporciona orquestación, gestión y portabilidad de aplicación en infraestructuras públicas, privadas y on premises. El resultado es un entorno de cómputo distribuido único, unificado y flexible en el que una organización puede ejecutar y escalar sus cargas de trabajo tradicionales o nativos de la nube en el modelo de cómputo más adecuado.

Portátil es la capacidad de mover cargas de trabajo y datos entre entornos de computación en la nube, permitiendo la migración de una nube pública a otra o incluso a una nube privada sin requerir una reconfiguración (significativa) de la carga de trabajo.

La combinación de los principios híbridos y portátiles facilita la interoperabilidad. Esto abarca la plataforma, los datos y las aplicaciones. Las aplicaciones que se crean utilizando principios de diseño tienen un mayor grado de interoperabilidad.

Las empresas adoptan una estrategia multinube para evitar el vendor lock-in (dependencia de proveedores) o debido a los requisitos de residencia de datos. Y quieren la capacidad de desplazar cargas de trabajo o migrar cargas de trabajo de una nube a otra o ejecutar aplicaciones en múltiples nubes. Diseñar aplicaciones en la nube teniendo en cuenta la portabilidad y la interoperabilidad es fundamental para este tipo de empresas.

Más información sobre el punto de vista de IBM sobre la nube híbrida

Principios

Las cargas de trabajo deben crearse una vez y desplegarse de manera coherente en todas partes. No es necesario modificar ni configurar las cargas de trabajo para que se adapten a los servicios y limitaciones de la plataforma en la que están alojadas. De hecho, ese es el mantra de IBM Red Hat OpenShift, una plataforma de contenedores de nube híbrida que está disponible en casi todas las nubes públicas. El resto de los principios del pilar se basan en lograr este ideal.

Los contenedores desacoplan las cargas de trabajo de la infraestructura subyacente que las aloja. Esto hace que las cargas de trabajo sean portátiles para cualquier plataforma que aloje un tiempo de ejecución compatible con contenedores, por lo que los contenedores son la tecnología preferida de empaquetado y despliegue para aplicaciones.

Kubernetes es una plataforma de código abierto para desplegar y gestionar cargas de trabajo en contenedores desplegadas en cualquier motor de contenedores que admita la Container Runtime Interface (CRI) de Kubernetes. Las plataformas de gestión derivadas de Kubernetes y kubernetes se pueden usar para gestionar cargas de trabajo en contenedores en nubes públicas y privadas, así como en infraestructura de nube privada.

Las cargas de trabajo que dependen de una representación o tipo de infraestructura específicos solo son portátiles para los entornos que tienen esa infraestructura. Utilice una herramienta de programación independiente de la nube para definir el entorno o cómo deben configurarse las aplicaciones. A continuación, utilice la herramienta de automatización para desplegar de forma coherente en cualquier nube e incluso on premises. Con una infraestructura como código (IaC) para desplegar aplicaciones, se facilita desplegar en cualquier nube o pasar de una nube a otra. Otra ventaja de usar la IaC es que ayuda a escalar y prevenir la deriva de la configuración. También hace que el proceso de implementación sea más portátil.

Las cargas de trabajo que dependen de servicios nativos de la plataforma quedan "bloqueadas" en la plataforma. Las soluciones deberían adoptar en su lugar API e interfaces de servicio estandarizadas por la industria que sean independientes de la plataforma en la que se despliega el servicio.

Prácticas

Para adoptar realmente la portabilidad, los equipos podrían considerar adoptar soluciones de código abierto como parte de la pila para minimizar el bloqueo que, de otro modo, lo complicaría.

El software de código abierto puede elegirse por su bajo (o nulo) costo, la flexibilidad para personalizar el código fuente o la existencia de una gran comunidad que respalda la aplicación. Sin embargo, pueden incurrir en otros costos, generalmente para integración de redes, soporte de TI y usuario final, y otros servicios que generalmente se incluyen con software propietario. En general, esta decisión debe equilibrarse con el caso de negocio y la probabilidad de mover cargas de trabajo.

  1. Las soluciones deben usar capas de abstracción cuando sea apropiado.
  2. Las soluciones deben evitar el uso de servicios de soporte nativos de proveedores de servicios en la nube. Si esto no se puede evitar, se sugiere una arquitectura altamente desacoplada para permitir la sustitución de capacidades basada en capas a medida que cambian las necesidades técnicas y del negocio.
  3. Definir arquitecturas de referencia estándar que sancionen las plataformas y servicios adecuados.
  4. Utilizar la arquitectura empresarial o la autoridad de diseño para definir los estándares mínimos de portabilidad.
  5. Establecer "servicios wrapper" o servicios personalizados que utilicen servicios básicos siempre que sea posible y, si es factible, o reducir el riesgo de exposición de proveedores de servicios en la nube externos.

Elegir una plataforma de despliegue, como Red Hat OpenShift, que sea común en todos los entornos, es fundamental para lograr la portabilidad y la interoperabilidad en entornos multinube y on premises. Las soluciones bien diseñadas utilizan contenedores como su unidad de despliegue común debido a su pequeño tamaño y su amplio soporte en la mayoría de los sistemas operativos, proveedores de servicios en la nube y plataformas de infraestructura.

Acerca de los contenedores

Los contenedores, como Docker, desacoplan las cargas de trabajo de la infraestructura subyacente que las aloja. Esto hace que las cargas de trabajo en contenedores sean portátiles para cualquier plataforma que hospede un tiempo de ejecución de contenedor compatible.

Una plataforma de orquestación de contenedores como Kubernetes automatiza el despliegue de aplicaciones en entornos de nube. También puede gestionar cargas de trabajo en contenedores. Kubernetes es una plataforma de código abierto para desplegar y gestionar cargas de trabajo en contenedores desplegadas en cualquier motor de contenedores que admita la Container Runtime Interface (CRI) de Kubernetes. Kubernetes y las plataformas de gestión derivadas de kubernetes se utilizan para gestionar cargas de trabajo en contenedores en nubes públicas y nube privada, así como en infraestructura on premises.

Descripción general de Kubernetes

La configuración y la implementación en diversas nubes pueden resultar abrumadoras, y las operaciones del segundo día pueden ser agobiantes. Las herramientas independientes de la nube como Ansible, Terraform, Chef y Puppet son imprescindibles. Ansible es una herramienta de automatización de TI de código abierto que automatiza el aprovisionamiento, la gestión de la configuración, el despliegue de aplicaciones y la orquestación en la nube y on premises. Se puede utilizar para automatizar la instalación de software, aprovisionar infraestructura e incluso mejorar la seguridad y el cumplimiento mediante la aplicación oportuna de parches en los sistemas.

El aprovisionamiento manual de cientos o miles de servidores no es factible, por lo que las empresas que buscan escalar la TI rápidamente y de forma confiable prefieren los playbooks de Ansible. Con un playbook de Ansible, puede crearse una instancia y luego usarse instantáneamente la misma instancia o cualquier cantidad de servidores adicionales que usen los mismos parámetros de infraestructura.

¿Qué es Ansible? Cómo funciona Ansible

Puede configurar una nube distribuida que le permita consumir servicios en la nube en cualquier lugar donde los necesite e implementar, gestionar y controlar cargas de trabajo en entornos on premises, entornos de computación perimetral y entornos de nube pública de cualquier proveedor de nube. IBM Cloud Satellite ofrece servicios en la nube, API, políticas de acceso, registro y monitoreo en todas las ubicaciones. Esto permite todas las ventajas del servicio similar a la nube para su infraestructura on-prem y aporta flexibilidad para mover esas cargas de trabajo a otras nubes de proveedores elegidos en función de la política. Con la proliferación de dispositivos perimetrales y el enorme aumento de los datos, la portabilidad de acercar la computación a la gravedad de los datos es más rentable. También aporta una mayor seguridad y simplifica las operaciones del segundo día.

IBM Cloud Satellite

Si bien la seguridad es un pilar separado, es algo que impregna todos los aspectos de la computación en la nube, sin importar si se trata de nube privada, nube pública o infraestructura on premises. La flexibilidad de trasladar las cargas de trabajo a diferentes entornos conlleva retos adicionales en materia de seguridad. La seguridad no se puede sacrificar a costa de la portabilidad. Es necesario adoptar una estrategia de seguridad por capas y de defensa en profundidad en toda la infraestructura, la pila de aplicaciones y el ciclo de vida.

Enfoque de seguridad en la nube híbrida de Red Hat
Siguientes pasos