¿Qué es la arquitectura de nube?
Durante las dos últimas décadas, el cloud computing ha crecido rápidamente y, en la actualidad, continúa expandiéndose a un ritmo impresionante. Lo que comenzó como ofertas básicas de software como servicio (SaaS) e infraestructura como servicio (IaaS) ha evolucionado hasta convertirse en un amplio ecosistema de soluciones nativas de la nube para todo, desde servidores hasta clústeres de Kubernetes.
En este artículo, ofreceremos un curso intensivo sobre la arquitectura de nube (también conocida como arquitectura de cloud computing), que incluye los componentes que conforman la arquitectura de nube, los diferentes modelos de cloud computing, las ventajas de la nube y de qué modo puede tomar una decisión fundamentada sobre cómo migrar una aplicación local a la nube.
¿Qué es la arquitectura de nube?
Entonces, ¿qué es la arquitectura de nube?? Por otro lado, ¿qué es la arquitectura de cloud computing?? La arquitectura de nube y la arquitectura de cloud computing son el mismo concepto. Ambos términos se refieren al "modelo" que define el diseño de los componentes de infraestructura de un entorno de cloud computing.
Existen varias formas de conceptualizar la arquitectura de nube. Por ejemplo, desde la perspectiva de un proveedor de servicios en la nube, la arquitectura de nube consta de:
- Una capa de hardware, que incluye servidores bare metal, equipamiento de red y dispositivos de almacenamiento
- Una capa de virtualización, que incluye hipervisores y componentes de redes definidos por software (SDN) para virtualizar los recursos físicos
- Una capa de servicios, que incluye los recursos de nube que el proveedor entrega a los usuarios
En la mente de usuarios como los desarrolladores o los ingenieros de DevOps, los componentes de la arquitectura de nube incluyen:
- Un front-end, como una consola web, una interfaz de programación de aplicaciones (API), una interfaz de línea de comandos (CLI), una aplicación móvil u otro cliente, que permite el acceso al servicio en la nube
- Un back-end, que proporciona los recursos informáticos, de almacenamiento y de software que hacen posible el servicio
- Una red, que proporciona conectividad entre los recursos de nube y servicios como la resolución de DNS
El rol de la arquitectura de un entorno de nube es especificar cómo encajan y se comunican todos los componentes. En la figura 1, podemos ver la arquitectura de un sistema de gestión de documentos basado en la nube.
La forma exacta de diseñar, implementar y presentar estos componentes a los usuarios (o de abstraerlos de ellos) varía en función del modelo de distribución en la nube y el tipo de cloud computing. Por ejemplo, una aplicación web que se ejecuta en una máquina virtual de una nube privada, tiene una arquitectura diferente a la de una aplicación distribuida basada en Kubernetes.
Algo que es común en todas las implementaciones de cloud es que la nube es una plataforma que abstrae al usuario de cierto nivel de complejidad. Por ejemplo, las ofertas de IaaS, como las instancias de Amazon Web Services (AWS) EC2, abstraen la complejidad del hardware. Con las aplicaciones SaaS, como Google Docs, hay aún un mayor nivel de abstracción, y todo lo relacionado con los sistemas operativos, el middleware y el mantenimiento de aplicaciones queda oculto para los usuarios.
Componentes físicos principales de la infraestructura de nube
Debajo de las capas de abstracción, el cloud computing tiene las mismas tres capas principales que la infraestructura de TI local.
- Recursos informáticos de CPU, RAM y GPU
- Recursos de red como las interfaces de red
- Recursos de almacenamiento como las unidades de estado sólido (SSD) y las unidades de disco duro (HDD)
Con modelos como IaaS, la facturación suele basarse en el consumo de recursos en estas categorías.
Nota: No debe confundirse la arquitectura de nube con la arquitectura de red. La arquitectura de nube incluye la arquitectura de red cuando sea pertinente. Por ejemplo, los servicios SD-WAN, SDN y DNS pueden incluirse en la arquitectura de nube de un entorno empresarial.
Modelos básicos de implementación de nube: nube pública frente a nube privada
Los dos modelos básicos de servicios en la nube que puede utilizar son la nube pública y la nube privada (Tabla 1). Las plataformas de nube pública están disponibles para el público en general, y la infraestructura la gestiona un proveedor de servicios de nube. Las plataformas de nube privada son específicas de una única organización.
La contrapartida entre la nube pública y la nube privada es la simplicidad (nube pública) frente al control (nube privada). Los usuarios de la nube pública simplemente consumen los servicios, y el proveedor de servicios se encarga del mantenimiento y el aprovisionamiento de la infraestructura. Sin embargo, esto también implica que los usuarios de la nube pública están intrínsecamente limitados a las capacidades que ofrece el proveedor de servicios. Además, los datos de la nube pública residen en los centros de datos del proveedor de servicios, lo que tiene implicaciones relativas al cumplimiento de la normativa y la soberanía de los datos.
Por el contrario, los usuarios de la nube privada tienen un control absoluto sobre su infraestructura y sus capacidades. El inconveniente es que el usuario, o un tercero que actúe en su nombre, debe gestionar las complejidades del mantenimiento, la configuración y la aplicación de parches de la infraestructura.
¿Es la nube privada más segura que la nube pública?
Por regla general, las nubes privadas ofrecen dos ventajas de seguridad con respecto a las nubes públicas.
- Las nubes privadas son específicas de una única organización.
- Normalmente, no es posible acceder a las nubes privadas directamente a través de la red pública de Internet.
Por este motivo, se suele afirmar que las nubes privadas son más seguras que las públicas. En teoría, y siempre que las empresas que mantienen la nube privada apliquen las prácticas de seguridad recomendadas de configuración y mantenimiento, esta sería una afirmación razonable. En igualdad de condiciones, el aislamiento de una nube privada supone una ventaja para la seguridad.
Sin embargo, muchas organizaciones carecen de experiencia en seguridad interna y de recursos para reforzar, analizar y gestionar la infraestructura y aplicarle los parches necesarios con el mismo rigor que los proveedores de nube de hiperescala. Una nube privada a la que no se le han aplicado parches o que se ha configurado incorrectamente podría ser más insegura que una nube pública, y las empresas deberían tenerlo en cuenta a la hora de evaluar los riesgos.
Modelos de implementación de nube avanzados: nube híbrida y nube privada
Además de la nube pública y la privada, existen otros modelos de implementación de nube. Por ejemplo, el Instituto Nacional de Normas y Tecnología define la nube comunitaria como una infraestructura de nube "aprovisionada para uso exclusivo por una comunidad de consumidores específica de organizaciones que comparten las mismas inquietudes". Sin embargo, los dos modelos de implementación de arquitectura de nube avanzada más comunes son los siguientes:
Nube híbrida: combinación de varios modelos de implementación de nube múltiple dentro de una organización. Por ejemplo, un equipo que replica una base de datos en una nube pública y una nube privada utiliza un modelo de nube híbrida.
Multinube: uso de varios proveedores de nube pública diferentes dentro de una organización. Por ejemplo, una empresa que ejecuta clústeres en Azure Kubernetes Service (AKS) y Amazon Elastic Kubernetes Service (EKS) utiliza un modelo multinube.
XaaS: tipos de cloud computing
Además de los diferentes modelos de implementación, existe una amplia variedad de modelos de servicios de cloud computing. En conjunto, estos modelos se conocen como "todo como servicio" o XaaS. Con el modelo XaaS, un proveedor ofrece a los usuarios servicios de cloud computing con precios que suelen estar basados en una suscripción.
Los tres modelos de servicios XaaS más comunes son SaaS, plataforma como servicio (PaaS) e IaaS (Figura 2).
La diferencia entre estos tres modelos de servicios de cloud computing radica en de qué son responsables el proveedor de servicios y el usuario. En la tabla 2 se detalla quién controla los diferentes aspectos de la infraestructura de nube con los diferentes modelos.
Las plataformas IaaS proporcionan a los usuarios el mayor nivel de control, y son las más complejas de gestionar y mantener. Los usuarios son responsables de todo, desde la selección de un sistema operativo hasta la aplicación de parches. En el otro extremo del espectro se encuentran las plataformas SaaS, como Google Docs y Slack, que abstraen todo excepto la capa de aplicación.
Las plataformas PaaS se encuentran en un punto intermedio y proporcionan al usuario el control de la capa de aplicación y de datos. Por ejemplo, con una plataforma PaaS, podría tener acceso directo a una base de datos MySQL sin ser responsable de aplicar parches a la versión de MySQL subyacente o al sistema operativo.
Más allá de IaaS, PaaS y SaaS
IaaS, PaaS y SaaS son solo el punto de partida de los modelos de servicios en la nube. En la última década, se ha producido una explosión de nuevas ofertas de servicios en la nube que abarcan una amplia variedad de casos de uso.
A continuación se incluye un desglose de otros modelos de servicios en la nube que le interesa conocer.
- Las plataformas de autenticación como servicio (AaaS), como Okta y Duo, proporcionan servicios como la autenticación multifactorial (MFA) y el inicio de sesión único (SSO).
- Las plataformas de escritorio como servicio (DaaS), como Amazon Workspaces y Azure Virtual Desktop, proporcionan escritorios virtuales gestionados en la nube
- Las ofertas de contenedores como servicio (CaaS), como Google Cloud Run y Microsoft Azure Container Instances (ACI), optimizan el proceso de implementación y gestión de aplicaciones contenedorizadas en una plataforma en la nube
- Las plataformas de kubernetes gestionado como AKS y EKS proporcionan servicios de Kubernetes alojados para la orquestación automatizada de clústeres de Kubernetes en la nube
- La informática sin servidor hace posible un enfoque "bajo demanda" de los recursos informáticos que permite que los usuarios ejecuten funciones sin gestionar ninguna infraestructura subyacente.
Las ventajas del cloud computing
El cloud computing beneficia por igual a consumidores y empresas. Las ventajas clave que ofrece el cloud computing en relación con la informática local tradicional son las siguientes:
- Infraestructura gestionada: la instalación, la configuración, así como el mantenimiento de servidores, conmutadores, bastidores, y del equipamiento eléctrico y de refrigeración resultan costosos y laboriosos. Los servicios en la nube le proporcionan las ventajas empresariales de una solución, sin la complejidad de la gestión de la infraestructura.
- Recursos flexibles: la ampliación o la reducción del uso de la nube no tiene mayor importancia en una nube pública. Esta flexibilidad permite a las empresas evitar cuellos de botella, por lo que pueden expandirse rápidamente sin los riesgos de una inversión excesiva en hardware.
- Observabilidad completa: las plataformas de nube incluyen a menudo herramientas y paneles de observación.
- Prácticas recomendadas integradas: se incentiva a los proveedores de servicios para que encuentren el equilibrio adecuado entre rendimiento, seguridad y facilidad de uso. De ese modo, pueden proporcionar a sus clientes las ventajas de la economía de escala. Como resultado, los usuarios pueden beneficiarse de las prácticas recomendadas de infraestructura simplemente utilizando la plataforma de nube adecuada.
Migración a una arquitectura de nube
Una cosa es lanzar nuevos proyectos en la nube y otra muy diferente es migrar las cargas de trabajo existentes a la nube. No existe un enfoque único que funcione para todos los casos de uso, pero existe un conjunto de principios y prácticas recomendadas generales que puede utilizar para llevar la migración a cabo correctamente.
- Asegúrese de que la migración a la nube es razonable: no todas las cargas de trabajo tienen que ser cargas de trabajo en la nube. Cree un caso de negocio que sopese los costes de la migración a la nube frente a los costes de la retirada total de la carga de trabajo o de dejarla en el entorno local.
- Elija su proveedor de nube sabiamente: las características y el coste son importantes, pero no son las únicas partes de la ecuación. Tenga en cuenta los requisitos no funcionales, la asistencia, los acuerdos de nivel de servicio y la reputación del proveedor cuando tome su decisión.
- Seleccione el modelo de servicio e implementación que mejor se adapte a sus necesidades: la nube pública frente a la nube privada, e IaaS frente a PaaS y SaaS conllevan diferentes conjuntos de contrapartidas en cuanto al control, la funcionalidad y la dependencia de un proveedor. Evalúe las ventajas y los inconvenientes antes de depender de un modelo. Por ejemplo, aunque pueda parecer lógico migrar su servidor de Exchange local a una máquina virtual similar en una plataforma IaaS, el correo electrónico de Office 365 (SaaS) podría ser una solución mejor.
- Mantenga sus presupuestos bajo control: los costes de la nube pueden aumentar rápidamente. La mayoría de los principales proveedores de nube cuentan con calculadoras de costes de la nube que puede utilizar para obtener estimaciones razonables y evitar sorpresas. Además, asegúrese de configurar alertas de presupuesto siempre que sea posible y vigile de cerca sus declaraciones. Implemente un enfoque sistemático para realizar un seguimiento de los costes y no salirse de su presupuesto.
- Tenga siempre un plan de contingencia: las copias de seguridad, los planes de reversión y las pruebas previas a la producción pueden ayudar a mitigar el riesgo de pérdida de datos y el tiempo de inactividad durante la migración a la nube. Asegúrese de adoptar el enfoque de "medir dos veces antes de cortar" para las migraciones de las cargas de trabajo esenciales.
- Tenga en cuenta la estrategia Strangler Fig Application (higuera estranguladora) para aplicaciones monolíticas complejas: La migración directa no funciona en todos los casos. Si su equipo necesita enviar aplicaciones complejas y monolíticas a la nube, plantéese la posibilidad de usar la estrategia Strangler Fig Application para migrar gradualmente a microservicios nativos de la nube con el tiempo.
Conclusión
La arquitectura de nube es un tema complejo del que queda mucho por aprender. Sin embargo, con lo que hemos tratado aquí, debería tener una solida comprensión del qué, el por quéy el cómo de la computación en la nube.