![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Durante mi tiempo en Palantir, he dedicado mucho tiempo a implementar nuestro software en entornos de nube y también una buena parte del tiempo a implementar nuestro software en entornos locales (incluso a formar un equipo que se encarga precisamente de eso). He notado que, a pesar de la preferencia común por la implementación en la nube, la implementación local aún tiene sus ventajas.
El cambio de la computación local a la computación en la nube
En los últimos años, el panorama de TI ha favorecido cada vez más la computación en la nube, impulsada por la flexibilidad de las ofertas de infraestructura como servicio (IaaS) y plataforma como servicio (PaaS). El mercado global de computación en la nube creció de 24.630 millones de dólares en 2010 a 156.400 millones de dólares en 2020, y esa tendencia continúa y se prevé que supere el billón de dólares en 2028. Este ascenso meteórico está impulsado tanto por la nueva demanda de computación por parte del mundo, como por la migración de flujos de trabajo locales a la nube.
Existen buenas razones para este cambio: la nube permite un rápido aprovisionamiento de recursos, redundancia geográfica y un cambio de los gastos de capital (CapEx) a los gastos operativos (OpEx). Sin embargo, creo que hay ciertos escenarios en los que el uso de infraestructura local es primordial, en particular cuando existen requisitos técnicos específicos, como latencia determinista, control a nivel de hardware y medidas de seguridad estrictas.
Antes de profundizar en la comparación entre configuraciones en la nube y configuraciones locales, tomémonos un tiempo para explorar cómo se configura habitualmente cada implementación.
Configuración local de Canonical
Una configuración local típica implica un entorno totalmente controlado donde la empresa administra todas las capas de la pila tecnológica. Esto incluye:
Capa física : hardware como servidores, matrices de almacenamiento (SAN/NAS) y equipos de red (routers, switches, firewalls). También necesita un centro de datos donde ejecutar sus servidores.
Capa de virtualización : a menudo se implementa mediante hipervisores como VMware vSphere, Microsoft Hyper-V o alternativas de código abierto como KVM, que proporcionan recursos virtualizados y aislamiento.
Almacenamiento y computación : administrado directamente, a menudo optimizado para cargas de trabajo específicas con configuraciones personalizadas (por ejemplo, niveles RAID, mecanismos de almacenamiento en caché).
Redes : control total sobre protocolos de red, enrutamiento y políticas de seguridad, lo que permite una calidad de servicio (QoS) optimizada y minimiza la latencia.
Configuración de la nube canónica
En una configuración de nube típica, la infraestructura está abstraída y administrada por el proveedor de la nube, que ofrece:
Infraestructura virtualizada : las instancias de cómputo, las redes virtuales y el almacenamiento se aprovisionan a través de API. Las tecnologías nativas de la nube, como Kubernetes y las arquitecturas sin servidor, se aprovechan para la orquestación y el escalamiento.
Servicios administrados : bases de datos (por ejemplo, Amazon RDS, Google Cloud SQL), lagos de datos, servicios de IA/ML y otras herramientas de análisis avanzadas se ofrecen como servicios administrados, lo que reduce la sobrecarga operativa.
Arquitectura multiinquilino : los recursos a menudo se comparten entre múltiples inquilinos, y la virtualización y la contenedorización proporcionan aislamiento.
Comparación
Escala y velocidad : la nube se destaca por su escalabilidad elástica, facilitada por mecanismos de escalabilidad horizontal como grupos de escalabilidad automática y funciones sin servidor. La infraestructura local requiere una planificación cuidadosa de la capacidad y una inversión en hardware físico, que a menudo implica una escalabilidad vertical. Si es una empresa emergente que no puede esperar nueve meses para obtener nuevos recursos informáticos, la nube es el camino a seguir. Sin embargo, si es una gran empresa con la capacidad de pronosticar la carga de cómputo durante el próximo año, entonces la infraestructura local podría ser una opción viable.
Latencia: las configuraciones locales pueden lograr una latencia baja determinista debido a la proximidad de los servidores y al control directo sobre las rutas de red. Para las aplicaciones sensibles a la latencia (por ejemplo, comercio de alta frecuencia, análisis en tiempo real), esto puede ser fundamental. Los entornos de nube, si bien están optimizados para una latencia baja a través de funciones como AWS Direct Connect o Google Cloud Interconnect, pueden introducir una latencia variable debido a factores como la congestión de la red (problema de vecinos ruidosos) y la sobrecarga de virtualización. Por lo tanto, en el caso en que la latencia predecible y los flujos de trabajo de baja latencia sean fundamentales para su negocio, las configuraciones locales pueden no ser una mala idea.
Costo: Los modelos de precios en la nube (pago por uso, instancias reservadas) brindan flexibilidad, pero pueden resultar costosos para cargas de trabajo sostenidas y de gran volumen, en particular con altos costos de salida de datos. Las soluciones locales, si bien requieren un gasto de capital inicial significativo para la adquisición de hardware, pueden ofrecer un menor costo total de propiedad (TCO) a lo largo del tiempo, especialmente para cargas de trabajo predecibles y de alta utilización. Los modelos en la nube pueden resultar costosos; Dropbox ahorró $16,8 millones en 2016 cuando trasladó la mayor parte de su almacenamiento de AWS a sus propios centros de datos. Aquí hay un artículo que profundiza en cómo el uso local puede ahorrarle dinero .
Experiencia: Los entornos locales exigen una gran experiencia en mantenimiento de hardware, ingeniería de redes y administración de sistemas. Por el contrario, los entornos en la nube delegan gran parte de la gestión de la infraestructura al proveedor, lo que permite a los equipos centrarse en el desarrollo y la implementación de aplicaciones, a menudo utilizando prácticas de DevOps y herramientas de infraestructura como código (IaC) como Terraform o CloudFormation. Los SRE y los administradores de sistemas son una especie poco común hoy en día y probablemente necesitará una parte considerable de la computación para justificar la contratación de un equipo de estas personas para mantener y operar una configuración local (¡y no olvide que necesita una rotación de guardia sostenible!).
Seguridad: Las configuraciones locales brindan un control completo sobre las configuraciones de seguridad, desde las medidas de seguridad física hasta la segmentación granular de la red y los protocolos de cifrado. Este control es esencial para cumplir con estándares de cumplimiento específicos (por ejemplo, PCI-DSS, HIPAA). Por el contrario, los entornos de nube requieren confianza en las medidas de seguridad del proveedor, aunque características como las nubes privadas virtuales (VPC), el hardware dedicado (por ejemplo, AWS Outposts) y las claves de cifrado administradas por el cliente pueden mitigar algunas preocupaciones. Si está ejecutando flujos de trabajo que requieren estos controles y protocolos de seguridad, la implementación local podría ser la única opción. Si no, ¡una seguridad más estricta podría ser una consideración! Sin embargo, creo que los proveedores de nube actuales se están adaptando y tienen ofertas que cumplen con algunos de estos estándares (por ejemplo, AWS GovCloud ).
Conclusión
Si bien la computación en la nube ofrece una flexibilidad, una escalabilidad y un acceso a servicios gestionados avanzados sin igual, las soluciones locales siguen siendo indispensables en escenarios que requieren baja latencia, alta seguridad y control total sobre las configuraciones de hardware y software. A medida que evoluciona el panorama de TI, la decisión entre la nube y las instalaciones locales debe guiarse por los requisitos comerciales y técnicos específicos, lo que garantiza que la infraestructura elegida se alinee con los objetivos estratégicos de la organización. ¡Puede utilizar los factores anteriores y las comparaciones para tomar una decisión más informada sobre qué configuración es mejor para usted! ¡Buena suerte!