Be Software Architecture Wise
Be Wise Apps

Read in English · Lire en français · Auf Deutsch lesen

Sección 10.1 de 10.8 · Intermedio · 22 min de lectura

Modelos de servicio y de despliegue en la nube

Videolección

5 min · narrado en inglés, con subtítulos
Solo escuchar (audio)
Leer la transcripción

Dónde se ejecuta el software forma parte de su arquitectura, y es costoso de revertir. En esta lección aprenderás los modelos de servicio y de despliegue en la nube, quién es responsable de qué y cómo saber cuándo alquilar no es la opción más barata.

Piensa en cómo encuentra la gente un lugar donde vivir. Puedes comprar un terreno y construir una casa, alquilar un apartamento vacío y amueblarlo, alquilar uno amueblado o alojarte en un hotel. Cada paso deja más trabajo en manos de otro, y te deja menos opciones. El hotel es estupendo para una semana, y caro para diez años. Con el software pasa lo mismo: puedes tener tus propios servidores, alquilar máquinas vacías, alquilar una plataforma o alquilar software terminado. Y elijas lo que elijas, sigues cerrando tu propia puerta con llave. Tus datos, y quién puede acceder a ellos, siguen siendo responsabilidad tuya.

Los modelos de servicio forman un espectro. Con la infraestructura como servicio, o IaaS, alquilas máquinas virtuales, y sigues instalando y actualizando con parches el sistema operativo y todo lo que hay por encima. Con los contenedores como servicio, aportas las imágenes de contenedor y su configuración. El proveedor opera el plano de control, y a menudo también las máquinas. Con una plataforma como servicio, o PaaS, aportas solo el código de tu aplicación y su configuración. Con las funciones como servicio, aportas funciones individuales y los eventos que las activan. Pagas por llamada y por tiempo de ejecución, y nada cuando están inactivas. Y con el software como servicio, o SaaS, alquilas la aplicación completa y la configuras. La pregunta útil nunca es qué etiqueta se aplica, sino qué tareas siguen siendo tuyas: parches, escalado, copias de seguridad, failover y actualizaciones.

Todos los grandes proveedores publican un modelo de responsabilidad compartida. El proveedor es responsable de la seguridad de la nube, y tú de la seguridad en la nube. Esta cuadrícula muestra dónde cae la línea. En tus propios servidores, a la izquierda, todas las capas son tuyas, desde el centro de datos hacia arriba. Con IaaS, el proveedor se encarga del centro de datos, el hardware y la virtualización. Tú sigues operando el sistema operativo, el runtime y tu código. Con una plataforma o con funciones, gestionas solo el código de tu aplicación, y tus datos y el acceso. Ahora mira la fila superior. Tus datos, tus identidades y permisos, y tu configuración se quedan contigo en todos los modelos, incluso en SaaS. Eso importa, porque muchas brechas en la nube han sido fallos de configuración del cliente, no del proveedor: almacenamiento que cualquiera podía leer, claves de administrador en repositorios públicos, permisos demasiado amplios.

Ahora, los modelos de despliegue. La nube pública se elige por la elasticidad, la velocidad y un amplio catálogo de servicios gestionados. La nube privada, la híbrida y la multinube tienen razones legítimas, como la regulación, una carga estable o los planes de salida. Pero ejecutar cada carga de trabajo de forma portable en varias nubes significa pagar por una salida que quizá nunca uses. Dentro de una región, distribuirse entre zonas de disponibilidad es la opción por defecto barata y de gran valor. Usa tres en lugar de dos para todo lo que dependa de un quórum, de modo que sobreviva una mayoría si se pierde una. Y nativo de la nube describe cómo se construye y se opera un sistema, no dónde. Una máquina virtual construida a mano y copiada sin cambios en una nube pública no es nativa de la nube.

Comparemos, con precios ilustrativos. La plataforma necesita cuarenta CPU virtuales todo el día, y ciento veinte durante la hora punta de la cena, de cuatro horas. La capacidad bajo demanda cuesta cuatro peniques por hora de CPU virtual; con un compromiso de tres años, dos punto cuatro peniques. La opción A alquila ciento veinte CPU virtuales todo el mes, dimensionadas para el pico. Eso son tres mil quinientas cuatro libras al mes. La opción B se compromete con las cuarenta que siempre hacen falta, por setecientas una libras, y añade ochenta solo durante la hora punta, por trescientas noventa. Eso son mil noventa y una libras, menos de un tercio de la opción A. La opción C posee hardware dimensionado para el pico, a uno punto dos peniques por hora de CPU virtual más un treinta por ciento de margen de capacidad. Con una cuarta parte del tiempo de un ingeniero, son tres mil treinta y cuatro libras. Pero con dos mil CPU virtuales constantes, poseer pasa a ser alrededor de un dieciséis por ciento más barato que la nube con compromiso. Esa es la situación de 37signals, que trasladó sus cargas de trabajo estables a sus propios servidores e informó de un ahorro de unos dos millones de dólares al año.

El método importa más que las cifras. Modela la forma de la carga: la elasticidad gana en las cargas pequeñas e irregulares, y la propiedad puede ganar en las grandes y planas. Cuenta con honestidad las personas y el margen de capacidad, y compara con el mejor precio de la nube, incluidos los compromisos, no con el precio de lista. Y elige para cada carga de trabajo. Una misma empresa puede usar con buen criterio SaaS para las nóminas, funciones para redimensionar imágenes y contenedores para sus servicios centrales.

La sección completa cuenta más sobre los servicios gestionados y las regiones, e incluye una guía de decisión para elegir un modelo de alojamiento. A continuación, en la sección diez punto dos, veremos los contenedores y cómo Kubernetes los mantiene en funcionamiento. Nos vemos allí.

Lo que necesitas saber

De una definición a muchos modelos

El Capítulo 0 presentó servidores y la nube: la definición del NIST (Special Publication 800-145, 2011), con sus cinco características esenciales de autoservicio bajo demanda, amplio acceso a la red, agrupación de recursos, elasticidad rápida y servicio medido, y la idea de que los modelos de servicio delegan en un proveedor una parte mayor o menor de la pila. Esta sección lleva esas ideas a la profundidad que necesita un arquitecto para elegir dónde se ejecuta un sistema y defender esa elección.

El NIST define tres modelos de servicio (infraestructura, plataforma y software como servicio) y cuatro modelos de despliegue: público (abierto a cualquiera, propiedad de un proveedor), privado (para una sola organización, esté donde esté y lo opere quien lo opere), comunitario (compartido por organizaciones con inquietudes comunes, como los organismos públicos) e híbrido (dos o más de los anteriores, unidos de forma que los datos y las aplicaciones puedan moverse entre ellos). Desde entonces, el sector ha añadido las funciones y los contenedores como servicio a los modelos de servicio, y la multinube al vocabulario del despliegue.

Dónde se ejecuta el software forma parte de lo que el Capítulo 1 llamó la estructura de asignación de una arquitectura (definir la arquitectura): la correspondencia entre el software y el hardware, las redes y las organizaciones. Es significativo en el sentido del Capítulo 1 porque es costoso de revertir, y porque fija buena parte del costo de un sistema, su disponibilidad, su frontera de seguridad y la rapidez con la que sus equipos pueden lanzar cambios.

Modelos de servicio: quién gestiona qué

Los modelos de servicio forman un espectro. En un extremo alquilas capacidad desnuda y haces tú todo lo que hay por encima; en el otro alquilas una aplicación terminada y solo la configuras. Cada paso hacia la derecha elimina trabajo operativo y elimina opciones. La tabla añade los dos modelos que son posteriores al documento del NIST: los contenedores como servicio y las funciones como servicio.

Comparación de los modelos de servicio

ModeloTú despliegas y operasEl proveedor operaEjemplosEncaje típico
IaaSMáquinas virtuales: sistema operativo, parches, runtime, aplicación, reglas de escaladoHardware, red, hipervisor, centro de datosAmazon EC2, Azure Virtual Machines, Google Compute EngineSoftware que necesita un sistema operativo o un kernel concretos, aplicaciones heredadas trasladadas tal cual, control total
CaaS (contenedores como servicio)Imágenes de contenedor y su configuración; con Kubernetes gestionado, también la elección y las actualizaciones de los nodos de trabajoEl plano de control de contenedores, a menudo también los nodos; con contenedores serverless, todos los servidoresAmazon EKS y ECS, Azure Kubernetes Service y Container Apps, Google Kubernetes Engine y Cloud RunMuchos servicios construidos como contenedores, equipos que quieren un empaquetado portable
PaaSEl código de la aplicación y su configuraciónSistema operativo, runtime, escalado, balanceo de carga, a menudo el loggingHeroku, Azure App Service, Google App Engine, AWS Elastic BeanstalkAplicaciones web y API estándar que se ajustan a las convenciones de la plataforma
FaaSFunciones individuales y los eventos que las activanTodo lo demás, incluido el escalado hasta cero; facturación por invocación y por duraciónAWS Lambda, Azure Functions, Google Cloud Run functions, Cloudflare WorkersTrabajo dirigido por eventos, irregular o de poco volumen, en pasos cortos
SaaSConfiguración, usuarios, permisos y tus datosLa aplicación completaMicrosoft 365, Salesforce, Workday, ZendeskCapacidades genéricas que no diferencian al negocio

En la práctica, las fronteras se difuminan. Las plataformas de contenedores serverless, como Google Cloud Run y Azure Container Apps, ejecutan una imagen de contenedor igual que un PaaS ejecuta código, y escalan hasta cero como una función. Kubernetes gestionado puede ser cualquier cosa, desde un plano de control alojado, en el que tú sigues aplicando parches y actualizando las máquinas de trabajo, hasta un modo totalmente gestionado en el que el proveedor también opera los nodos. La pregunta útil nunca es qué etiqueta se aplica, sino qué tareas concretas siguen siendo tuyas: los parches, las decisiones de escalado, la planificación de capacidad, las copias de seguridad, el failover, las actualizaciones y la respuesta de guardia.

Una segunda distinción útil es la unidad de despliegue y de facturación. IaaS factura las máquinas por segundo o por hora, estén ocupadas o no; FaaS factura las invocaciones y el tiempo de ejecución y no cuesta nada cuando está inactivo; PaaS y los contenedores serverless se sitúan en medio. El Capítulo 6 explica por qué el precio por solicitud es más barato que la capacidad siempre encendida por debajo de un volumen de cruce, y más caro por encima de él (arquitecturas serverless). Es la forma de la carga de una carga de trabajo, no su tamaño, lo que decide en qué lado del punto de cruce se encuentra.

El modelo de responsabilidad compartida

Todos los grandes proveedores publican un modelo de responsabilidad compartida. AWS lo resume diciendo que el proveedor es responsable de la seguridad de la nube y el cliente de la seguridad en la nube. El proveedor protege los edificios, el hardware, la red, el hipervisor y los servicios que opera; el cliente protege lo que construye y configura por encima. Dónde cae la línea depende del modelo de servicio, como muestra el diagrama.

Quién es responsable de qué, según el modelo de servicio

Responsabilidad compartida en seis modelos de alojamiento: el cliente siempre es dueño de los datos y del acceso, y cede al proveedor más capas inferiores al pasar de lo local a SaaSLocalserv. propiosIaaSmáquinas virtualesCaaSK8s gestion.PaaSplataforma appFaaSfuncionesSaaSapp terminadaDatos y accesoTúTúTúTúTúTúCódigo de la appTúTúTúTúTúProveedorRuntime, escaladoTúTúBDProveedorProveedorProveedorSistema operativoTúTúBDProveedorProveedorProveedorVirtualizaciónTúProveedorProveedorProveedorProveedorProveedorHardware, redTúProveedorProveedorProveedorProveedorProveedorCentro de datosTúProveedorProveedorProveedorProveedorProveedorLo gestionas y proteges túBDGestión del proveedor
Al avanzar hacia la derecha se ceden capas inferiores al proveedor, pero los datos, las identidades y la configuración del acceso se quedan con el cliente en todos los modelos.

Hay tres cosas que nunca se transfieren. El cliente siempre es dueño de sus datos (qué se almacena, dónde, durante cuánto tiempo, quién puede leerlo), de sus identidades y permisos, y de la configuración de los servicios que usa. Muchas brechas en la nube han sido fallos de configuración del cliente y no fallos del proveedor: almacenamiento de objetos que cualquiera podía leer, claves de administrador incluidas en repositorios públicos, permisos demasiado amplios. En 2019, por ejemplo, un atacante aprovechó un firewall de aplicaciones web mal configurado en Capital One para obtener credenciales de la nube y copiar datos relativos a más de 100 millones de personas en Estados Unidos y Canadá; la infraestructura del proveedor se comportó tal como estaba diseñada.

Para un arquitecto, el modelo es una lista de comprobación de trabajo que hay que asignar a alguien. Si un equipo traslada la base de datos de pedidos de la plataforma de reparto de comida de una máquina virtual a un servicio de base de datos gestionada, la aplicación de parches al motor de base de datos pasa al proveedor, pero no así elegir una ventana de mantenimiento, probar las actualizaciones de versión mayor, conceder accesos con mínimo privilegio, activar el cifrado y comprobar que las copias de seguridad se pueden restaurar. El Capítulo 8 trata en profundidad los principios de seguridad que hay detrás de estas obligaciones (principios de seguridad para arquitectos).

Los modelos de despliegue y las razones reales que hay detrás

Las organizaciones rara vez eligen un modelo de despliegue por una sola razón, y la razón declarada no siempre es la real. Ayuda separar los motivos que resisten un examen atento de los que no.

Pública, privada, híbrida y multinube

  1. Nube públicaSe elige por la elasticidad, la velocidad (un entorno nuevo en minutos, no una compra de hardware en meses), un amplio catálogo de servicios gestionados y el alcance global. Encaja con cargas variables, productos nuevos cuya demanda se desconoce y equipos que quieren dedicar su esfuerzo al producto y no a los servidores.
  2. Nube privadaSe elige por el control regulatorio o contractual, una carga estable y predecible, la inversión ya hecha en un centro de datos o una latencia muy baja hacia equipos instalados in situ. Una nube privada significa aprovisionamiento de autoservicio basado en API sobre infraestructura dedicada (por ejemplo, con OpenStack, VMware o la edición para instalaciones propias de la nube pública de un proveedor), no simplemente una sala de servidores virtualizada en la que las solicitudes siguen pasando por una cola de tickets.
  3. Nube híbridaSuele ser el resultado de una migración gradual, de datos que deben quedarse en las propias instalaciones (un libro mayor en un mainframe, sistemas de fábricas u hospitales) o de ubicaciones en el borde, como tiendas y almacenes. Desbordar desde un centro de datos privado hacia la nube pública en los momentos de máxima demanda se promete a menudo, pero rara vez es práctico, porque los datos que necesita la carga de trabajo se quedan atrás y copiarlos cuesta tiempo y dinero.
  4. Multinube (multi-cloud)Usar dos o más proveedores públicos. Entre las razones defendibles están usar un servicio distintivo de cada proveedor, las adquisiciones que llegan en otra nube, la capacidad de negociación y una regulación que exija planes de salida creíbles. En la UE, el Reglamento de Resiliencia Operativa Digital (DORA), aplicable desde enero de 2025, exige a las entidades financieras tener estrategias de salida para los proveedores críticos de TIC. Ejecutar cada carga de trabajo de forma portable en varias nubes es un objetivo distinto y mucho más caro.

El error habitual es adoptar la multinube como una cobertura abstracta. Hacer que una carga de trabajo se ejecute de forma idéntica en dos proveedores significa usar solo los servicios que ofrecen ambos, construir y probar dos conjuntos de código de infraestructura, contar con personal con conocimientos de ambos y, a menudo, pagar cargos de transferencia de datos entre ellos. Esa es la trampa del mínimo común denominador: pagas cada día el costo de la portabilidad a cambio de una salida que quizá nunca uses. La sección 10.8 trata la dependencia del proveedor como un compromiso al que hay que poner precio, no como un pecado que haya que evitar a toda costa (FinOps, arquitectura de costos y dependencia del proveedor).

Las regiones y las zonas de disponibilidad como datos de entrada del diseño

Una región es un área geográfica con su propio conjunto independiente de centros de datos; una zona de disponibilidad es uno o varios centros de datos dentro de una región con alimentación eléctrica, refrigeración y red independientes, situados lo bastante lejos de los demás como para que un incendio, una inundación o un corte de luz local afecte solo a uno, y lo bastante cerca como para que los viajes de ida y vuelta duren como mucho unos pocos milisegundos. El Capítulo 0 explicó la idea. Para el diseño, importan tres puntos más.

Primero, cada servicio gestionado tiene un ámbito de fallo: los recursos zonales (una sola máquina virtual, un disco) mueren con su zona; los servicios regionales (la mayoría de las bases de datos gestionadas en modo multizona, el almacenamiento de objetos, las colas) los replica el proveedor entre zonas; unos pocos servicios globales (DNS, identidad, algunos servicios de distribución de contenidos y de balanceo de carga) abarcan varias regiones, lo que hace que sus raras caídas tengan un gran alcance. Saber qué ámbito tiene cada dependencia es el primer paso de cualquier análisis de disponibilidad (consulta disponibilidad y fiabilidad).

Segundo, distribuirse entre zonas es la opción por defecto barata y de gran valor. Ejecutar los servicios sin estado de la plataforma de reparto de comida en tres zonas detrás de un balanceador de carga, con una base de datos que mantiene una réplica de reserva síncrona en una segunda zona, sobrevive a la pérdida de un centro de datos con failover automático y un pequeño costo en latencia. Tres zonas en lugar de dos importan para todo lo que use quórums, como etcd en Kubernetes o una base de datos basada en consenso, porque debe sobrevivir una mayoría. Sin embargo, el tráfico entre zonas no siempre es gratuito: la mayoría de los grandes proveedores cobran por los datos que se mueven entre zonas, así que los servicios muy conversadores repartidos entre zonas añaden una línea visible a la factura.

Tercero, las regiones no son idénticas. Las regiones más nuevas o más pequeñas pueden carecer de algunos servicios, algunas tienen menos zonas, los precios varían según la región y la jurisdicción legal sigue a la región. La sección 10.6 trata las múltiples regiones, la recuperación ante desastres y la residencia de datos (multirregión, recuperación ante desastres y edge computing).

Servicios gestionados frente a autogestionados

Un servicio gestionado es un componente (una base de datos, una cola, una caché, un motor de búsqueda, un plano de control de Kubernetes) que el proveedor instala, opera, actualiza con parches, respalda con copias de seguridad y escala por ti. La alternativa es ejecutar tú mismo el mismo software de código abierto en máquinas virtuales o en contenedores. El compromiso es trabajo y riesgo frente a control, costo y portabilidad.

Los servicios gestionados ganan cuando el componente no es diferenciador: toda empresa de reparto de comida necesita una base de datos PostgreSQL fiable, pero ninguna gana clientes por cómo aplica los parches a su base de datos. En términos de diseño guiado por el dominio, son subdominios genéricos, los que conviene comprar en lugar de construir. Una base de datos gestionada ofrece failover multizona, recuperación a un momento dado y parches de versiones menores que, de otro modo, necesitarían un equipo cualificado de guardia. La autogestión gana cuando necesitas una versión, una extensión o un parámetro de ajuste que el proveedor no ofrece, cuando los límites o cuotas del proveedor no encajan, cuando el sobreprecio de lo gestionado se vuelve grande a escala, o cuando la portabilidad entre entornos importa más que la comodidad.

Gestionado no significa libre de mantenimiento. El proveedor impondrá actualizaciones de versión mayor según su propio calendario cuando las versiones antiguas lleguen al fin del soporte, cambiará valores por defecto, impondrá cuotas que descubrirás en el peor momento y tendrá caídas que no puedes arreglar, solo esperar a que pasen. Tú sigues siendo responsable del diseño del esquema, del rendimiento de las consultas, de las decisiones de capacidad, del costo y de la prueba periódica que demuestra que una restauración funciona. Trata cada servicio gestionado como una dependencia con sus propios modos de fallo y su propio costo de salida.

Qué significa nativo de la nube

La Cloud Native Computing Foundation (CNCF), que forma parte de la Linux Foundation y es la casa de Kubernetes, publica la definición más citada de nativo de la nube. La versión 1.0 (2018) describía tecnologías que permiten a las organizaciones construir y ejecutar aplicaciones escalables en entornos dinámicos como las nubes públicas, privadas e híbridas, y citaba como ejemplos típicos los contenedores, las service meshes, los microservicios, la infraestructura inmutable y las API declarativas. La versión 1.1, aprobada en 2024, desplaza el énfasis de las tecnologías a las prácticas: desarrollar, construir y desplegar cargas de trabajo de forma programática y repetible a escala, caracterizadas por sistemas poco acoplados que interoperan de una manera segura, resiliente, gestionable, sostenible y observable.

De ahí se siguen dos consecuencias. Nativo de la nube describe cómo se construye y se opera un sistema, no dónde: un clúster de Kubernetes en un centro de datos privado, aprovisionado a partir de código y desplegado muchas veces al día, es nativo de la nube; una máquina virtual configurada a mano y copiada sin cambios en una nube pública no lo es. Y nativo de la nube es un medio, no un fin. Sus prácticas (automatización, componentes desechables, configuración declarativa, elasticidad, observabilidad) compensan cuando un sistema necesita cambios frecuentes, escala variable y alta disponibilidad; añaden costo y complejidad a una herramienta interna estable que usan veinte personas.

Las migraciones se describen a menudo con las seis R, que vale la pena conocer porque marcan las expectativas: rehost (realojar, lift and shift, sin cambios), replatform (cambios pequeños, como pasar a una base de datos gestionada), refactor o rediseñar la arquitectura (rediseño para operar de forma nativa en la nube), repurchase (sustituir por SaaS), retain (dejarlo donde está) y retire (apagarlo). Realojar es rápido, pero suele aportar pocos de los beneficios de la nube y, ejecutado en máquinas siempre encendidas dimensionadas para el pico, puede costar más que el centro de datos que se dejó.

Cuando la nube no es más barata

El contraejemplo más conocido es 37signals, la empresa que está detrás de Basecamp y HEY. En octubre de 2022, su director de tecnología, David Heinemeier Hansson, anunció que dejaba la nube, alegando una factura anual de AWS de más de 3 millones de USD para cargas de trabajo con una carga estable y predecible. Compró servidores Dell por unos 700 000 USD, los instaló en un espacio de colocation alquilado y sacó sus aplicaciones de la computación de AWS durante 2023; informó de que esto redujo su factura de nube en unos 2 millones de USD al año. En 2025 anunció la segunda etapa: trasladar unos 18 petabytes de archivos de Amazon S3 a cabinas de almacenamiento por valor de unos 1.5 millones de USD para sustituir una factura de S3 de unos 1.5 millones de USD al año, con el objetivo declarado de cerrar su cuenta de AWS. La empresa ha proyectado un ahorro de unos 10 millones de USD en cinco años. Sacar así cargas de trabajo de la nube se llama repatriación desde la nube.

Ambos lados del argumento merecen ser escuchados. A favor del razonamiento de 37signals: su carga es estable, así que ganaba poco con la elasticidad; ya contaba con ingenieros de operaciones experimentados e informó de que no necesitó personal adicional; los proveedores de colocation se ocupan de la alimentación eléctrica, la refrigeración y la seguridad física; y los servidores pueden usarse durante cinco años o más, así que su costo por año de computación queda muy por debajo del alquiler bajo demanda. En el otro lado: 37signals es un negocio maduro con una demanda predecible, cosa que la mayoría de los productos nuevos no son; la comparación depende mucho de cuál habría sido la factura de la nube con descuentos por compromiso de uso y ajuste de tamaño; poseer hardware implica gasto de capital, plazos de entrega de semanas o meses y capacidad comprada por adelantado; y un equipo más pequeño sin conocimientos profundos de operaciones tendría que contratarlos, lo que puede borrar el ahorro. Los críticos también señalan que las cifras de ahorro proceden de la propia empresa.

Ejemplo práctico

Ejemplo práctico: alquilar o poseer la capacidad de cómputo para la plataforma de reparto de comida

Todos los precios son supuestos ilustrativos elegidos para mostrar el método, no presupuestos reales. La capacidad bajo demanda en la nube cuesta £0.040 por hora de vCPU; un compromiso de tres años cuesta £0.024 (un descuento del 40%); el hardware propio en colocation cuesta £0.012 por hora de vCPU, incluidos la electricidad y el espacio, pero necesita un 30% de margen de capacidad y tiempo de personal. La plataforma necesita 40 vCPU todo el día, que suben a 120 vCPU durante la hora punta de la cena de cuatro horas (unas 122 horas al mes). Un mes tiene 730 horas.

A: nube, dimensionada para el pico, siempre encendida120 vCPU × 730 h × £0.040 = £3504 al mes
B: nube, base comprometida más pico con autoescalado40 × 730 × £0.024 = £701; más 80 × 122 × £0.040 = £390; total £1091 al mes
C: hardware propio dimensionado para el pico120 × 1.3 × 730 × £0.012 = £1367; más una cuarta parte de un ingeniero a £80 000 al año = £1667; total £3034 al mes
Ahora a mayor escala: 2000 vCPU constantes, sin hora puntaNube con compromiso: 2000 × 730 × £0.024 = £35 040. Propio: 2000 × 1.3 × 730 × £0.012 = £22 776 más un ingeniero (£6667) = £29 443, alrededor de un 16% más barato

Para una carga de trabajo pequeña e irregular, domina la elasticidad: la opción B cuesta menos de un tercio de la opción A y alrededor de un tercio de la opción C, porque solo paga la capacidad de pico durante la hora punta.

Para una carga de trabajo grande y plana, los costos fijos de la propiedad se reparten entre más capacidad y la propiedad empieza a ganar, que es la situación de 37signals. El ahorro es real, pero menor de lo que sugieren las comparaciones de titular una vez que se cuentan el margen de capacidad, el personal y el esfuerzo de migración.

El método importa más que las cifras: modela la forma de la carga, incluye a las personas y el margen de capacidad, compara con el mejor precio de la nube (con compromisos), no con el precio de lista, y repite el cálculo a medida que cambia el negocio.

Guía de decisión

Guía de decisión: elegir un modelo de alojamiento para una carga de trabajo

Aplícala a cada carga de trabajo, no una sola vez para toda la organización: una misma empresa usa con buen criterio SaaS para las nóminas, funciones para redimensionar imágenes y contenedores para sus servicios centrales.

  1. ¿La capacidad es genérica, con un producto en el mercado que encaja lo suficiente (correo electrónico, nóminas, CRM, pagos)?
    SíCompra SaaS e intégralo a través de su API; dedica el esfuerzo de diseño a la integración y al plan de salida.
    NoContinúa: necesitas ejecutar tu propio software.
  2. ¿La ley, un contrato o la ubicación física descartan la nube pública para esta carga de trabajo (normas estrictas de soberanía, equipos in situ, bucles de control de milisegundos)?
    SíUsa una nube privada, colocation o un despliegue en el borde in situ, conectado a servicios de la nube pública como un modelo híbrido donde esté permitido.
    NoContinúa con las opciones de nube pública.
  3. ¿El trabajo está dirigido por eventos, es de corta duración e irregular o de poco volumen (webhooks, procesamiento de archivos, tareas programadas)?
    SíUsa funciones como servicio o una plataforma de contenedores serverless; comprueba los límites de arranque en frío, de duración y de costo a gran volumen.
    NoContinúa: se trata de un servicio de larga duración.
  4. ¿Encaja el modelo de un PaaS o de una plataforma de contenedores serverless (servicio HTTP sin estado, runtime estándar, pocas necesidades especiales)?
    SíÚsalo. Es lo que más trabajo operativo le quita a un equipo pequeño.
    NoContinúa: necesitas más control.
  5. ¿Ejecutas muchos servicios en varios equipos, y tienes (o financiarás) un equipo capaz de operar Kubernetes?
    SíUsa Kubernetes gestionado (CaaS), idealmente detrás de una plataforma interna (sección 10.7).
    NoUsa máquinas virtuales con bases de datos gestionadas y grupos de autoescalado, construidos a partir de código de infraestructura.
  6. ¿La carga es grande, estable y predecible durante años, con conocimientos de operaciones en la propia empresa?
    SíCompara el precio del hardware propio o en colocation con el de la capacidad comprometida en la nube; la repatriación puede compensar.
    NoSigue con capacidad alquilada y usa descuentos por compromiso de uso para la base estable.

Comprueba lo que has entendido

Un equipo traslada su base de datos de una VM que gestionaba él mismo a un servicio de base de datos gestionada. Nombra dos responsabilidades que pasan al proveedor y dos que se quedan con el equipo.

El proveedor asume la aplicación de parches al motor, el hardware y, normalmente, las copias de seguridad automáticas y el failover entre zonas. El equipo conserva el diseño del esquema y de las consultas, los permisos de acceso, las decisiones de cifrado, la capacidad y el costo, las pruebas de restauración y la planificación de las actualizaciones de versión mayor.

¿Por qué un sistema basado en quórum, como etcd, prefiere tres zonas de disponibilidad a dos?

Un quórum necesita una mayoría. Con dos zonas, perder la zona que tiene la mayoría detiene el sistema; con tres, puede fallar cualquier zona y sobrevive una mayoría.

¿Es nativa de la nube una máquina virtual construida a mano y copiada sin cambios en una nube pública?

No. Nativo de la nube describe prácticas como la automatización, la configuración declarativa, los componentes desechables y la observabilidad, no una ubicación. Realojar traslada el sistema sin adoptar esas prácticas.

¿Por qué podría una misma organización usar con buen criterio SaaS, funciones y Kubernetes a la vez?

El modelo de alojamiento debe elegirse para cada carga de trabajo: las capacidades genéricas se compran como SaaS, las tareas irregulares dirigidas por eventos encajan con las funciones, y los servicios centrales de larga duración pueden justificar contenedores en Kubernetes.

Siguiente · 10.2Contenedores y KubernetesImágenes, capas, registros y los estándares OCI; por qué hace falta la orquestación; el plano de control de Kubernetes, los nodos, los objetos principales y los bucles de reconciliación; requests, limits y sondas, y cuándo Kubernetes es excesivo.Continuar →

Fuentes y lecturas recomendadas

¿Tienes una pregunta sobre esta sección? ArchitectBot, el asistente de estudio con IA del curso, responde primero a partir del curso.

Pregunta: “¿Cómo decido si nuestros servicios de reparto de comida deberían ejecutarse en un PaaS, en contenedores serverless o en Kubernetes gestionado?”