
[12/01/2022] Cuando pensamos en la nube pública, a menudo la primera consideración que nos viene a la mente es la financiera: Trasladar las cargas de trabajo de los centros de datos de capacidad cercana a la nube reduce los gastos de capital (CapEx) pero aumenta los gastos operativos (OpEx). Esto puede ser atractivo o no para el director financiero, pero no es precisamente un chiste para los desarrolladores, las operaciones o los que combinan ambas cosas como devops.
Para estas personas, la computación en nube ofrece muchas oportunidades que simplemente no están disponibles cuando los nuevos servicios de software requieren la compra de nuevo hardware de servidor o suites de software empresarial. Lo que tarda seis meses en desplegarse en las instalaciones, puede tardar a veces 10 minutos en la nube. Lo que requiere la firma de tres niveles de gestión para crear en las instalaciones, puede cargarse a una tarjeta de crédito en la nube.
No es solo una cuestión de tiempo y comodidad. La nube también permite una mayor velocidad de desarrollo de software, lo que a menudo conduce a un menor tiempo de comercialización. La nube también puede permitir una mayor experimentación, lo que a menudo conduce a una mayor calidad del software.
Además, existen verdaderas innovaciones en la nube que pueden proporcionar beneficios inmediatos y resolver problemas de larga duración con la informática local. A continuación, presentamos 16 atractivas capacidades de la nube.
Instancias de computación bajo demanda
¿Necesita una nueva base de datos en su propio servidor local? Póngase a la cola y prepárese para esperar meses, si no años. Si puede tolerar tener una máquina virtual (VM) local en lugar de un servidor físico y su empresa utiliza VMware o tecnologías similares, la espera podría durar solo semanas. Pero si quiere crear una instancia de servidor en una nube pública, puede tenerla aprovisionada y funcionando en unos 15 minutos, y podrá dimensionarla según sus necesidades y apagarla cuando no la utilice.
Imágenes de máquinas virtuales preconstruidas
Poder crear una máquina virtual con el sistema operativo de su elección es conveniente, pero luego todavía tiene que instalar y licenciar las aplicaciones que necesita. La posibilidad de crear una máquina virtual con el sistema operativo y las aplicaciones de su elección listas para funcionar no tiene precio.
Servicios sin servidor
"Sin servidor" significa que un servicio o pieza de código se ejecutará bajo demanda durante un breve periodo de tiempo, normalmente en respuesta a un evento, sin necesidad de una máquina virtual dedicada en la que ejecutarse. Si un servicio es sin servidor, normalmente no hay que preocuparse por el servidor subyacente; los recursos se asignan a partir de un grupo mantenido por el proveedor de la nube.
Los servicios sin servidor, actualmente disponibles en todas las principales nubes públicas, suelen contar con escalado automático, alta disponibilidad integrada y un modelo de facturación de pago por valor. Si quiere una aplicación sin servidor, sin estar atado a ninguna nube pública específica, puede utilizar un marco sin servidor de proveedor neutral como Kubeless, que solo requiere un clúster Kubernetes (que está disponible como servicio en la nube; ver más abajo).
Contenedores a la carta
Un contenedor es una unidad ejecutable ligera de software, mucho más ligera que una máquina virtual. Un contenedor empaqueta el código de la aplicación y sus dependencias, como las bibliotecas. Los contenedores comparten el núcleo del sistema operativo de la máquina anfitriona. Los contenedores pueden ejecutarse en Docker Engine o en un servicio Kubernetes. La ejecución de contenedores bajo demanda tiene todas las ventajas de la ejecución de máquinas virtuales bajo demanda, con las ventajas adicionales de requerir menos recursos y costar menos.
Imágenes de contenedores preconstruidas
Un contenedor Docker es una instancia ejecutable de una imagen Docker, que se especifica mediante un Dockerfile. Un Dockerfile contiene las instrucciones para construir una imagen, y a menudo se basa en otra imagen. Por ejemplo, una imagen que contenga Apache HTTP Server puede estar basada en una imagen de Ubuntu. Puede encontrar Dockerfiles predefinidos en el registro de Docker, y también puede construir los suyos propios. Puede ejecutar imágenes Docker en su instalación local de Docker, o en cualquier nube con soporte para contenedores. Al igual que con las imágenes de máquinas virtuales pre-construidas, un Dockerfile puede poner en marcha una aplicación completa rápidamente, pero a diferencia de las imágenes de VM, los Dockerfiles son independientes del proveedor.
Orquestación de contenedores Kubernetes
Kubernetes (K8s) es un sistema de código abierto para automatizar el despliegue, el escalado y la gestión de aplicaciones en contenedores. K8s se basa en la tecnología interna "Borg" de Google. Los clústeres de K8s consisten en un conjunto de máquinas de trabajo, llamadas nodos, que ejecutan aplicaciones en contenedores. Los nodos trabajadores alojan pods, que contienen aplicaciones; un plano de control gestiona los nodos trabajadores y los pods. K8s se ejecuta en cualquier lugar y escala sin límites. Todas las principales nubes públicas tienen servicios K8s; también puede ejecutar K8s en su propia máquina de desarrollo.
Servidores autoescalables
No tiene que contenerizar sus aplicaciones y ejecutarlas bajo Kubernetes para escalarlas automáticamente en la nube. La mayoría de las nubes públicas le permiten escalar automáticamente las máquinas virtuales y los servicios en función del uso, ya sea añadiendo (o quitando) instancias o aumentando (o disminuyendo) el tamaño de la instancia.
Bases de datos planetarias
Las principales nubes públicas y varios proveedores de bases de datos han implementado bases de datos distribuidas a escala planetaria con fundamentos como tejidos de datos, interconexiones redundantes y algoritmos de consenso distribuidos que les permiten trabajar de forma eficiente y con una fiabilidad de hasta cinco nueves (99,999% de tiempo de actividad). Los ejemplos específicos de la nube incluyen Google Cloud Spanner (relacional), Azure Cosmos DB (multimodelo), Amazon DynamoDB (valor clave y documento) y Amazon Aurora (relacional). Los ejemplos de proveedores incluyen CockroachDB (relacional), PlanetScale (relacional), Fauna (relacional/sin servidor), Neo4j (gráfico), MongoDB Atlas (documento), DataStax Astra (columna ancha) y Couchbase Cloud (documento).
Servicios híbridos
Las empresas con grandes inversiones en centros de datos suelen querer ampliar sus aplicaciones y servicios existentes a la nube, en lugar de sustituirlos por servicios en la nube. Todos los principales proveedores de la nube ofrecen ahora formas de lograrlo, tanto mediante el uso de servicios híbridos específicos (por ejemplo, bases de datos que pueden abarcar los centros de datos y las nubes), como de servidores locales y recursos de nube de borde que se conectan a la nube pública, a menudo llamados nubes híbridas.
Entrenamiento y predicción de aprendizaje automático escalable
El entrenamiento del aprendizaje automático, especialmente el aprendizaje profundo, suele requerir importantes recursos informáticos durante horas o semanas. La predicción del aprendizaje automático, por otro lado, necesita sus recursos informáticos durante segundos por predicción, a menos que esté haciendo predicciones por lotes. El uso de recursos en la nube suele ser la forma más conveniente de llevar a cabo el entrenamiento y las predicciones de los modelos.
GPUs, TPUs y FPGAs en la nube
El aprendizaje profundo con modelos de gran tamaño y los grandes conjuntos de datos necesarios para un entrenamiento preciso, a menudo pueden llevar mucho más de una semana en clústeres de CPUs. Las GPUs, TPUs y FPGAs pueden reducir significativamente el tiempo de entrenamiento, y el hecho de tenerlas disponibles en la nube facilita su uso cuando sea necesario.
Servicios de IA preentrenados
Muchos servicios de IA se pueden realizar bien con modelos preentrenados, por ejemplo, la traducción de idiomas, la conversión de texto en voz y la identificación de imágenes. Todos los principales servicios en la nube ofrecen servicios de IA preformados basados en modelos robustos.
Servicios de IA personalizables
A veces los servicios de IA preformados no hacen exactamente lo que usted necesita. El aprendizaje por transferencia, que entrena solo unas pocas capas de redes neuronales sobre un modelo existente, puede proporcionarle un servicio personalizado con relativa rapidez en comparación con el entrenamiento de un modelo desde cero. De nuevo, todos los principales proveedores de servicios en la nube ofrecen aprendizaje de transferencia, aunque no todos lo llaman por el mismo nombre.
Servicios de monitorización
Todas las nubes admiten al menos un servicio de monitorización y facilitan la configuración de los servicios en la nube para su monitorización. Los servicios de monitorización suelen mostrar un panel gráfico y pueden configurarse para notificar las excepciones y los indicadores de rendimiento inusuales.
Servicios distribuidos
Las bases de datos no son los únicos servicios que pueden beneficiarse de la ejecución distribuida. El problema es la latencia. Si los recursos informáticos están lejos de los datos o de los procesos gestionados, se tarda demasiado en enviar y recibir instrucciones e información. Si la latencia es demasiado alta en un bucle de retroalimentación, el bucle puede descontrolarse fácilmente. Si la latencia es demasiado alta entre el aprendizaje automático y los datos, el tiempo que se tarda en realizar el entrenamiento puede dispararse. Para resolver este problema, los proveedores de servicios en la nube ofrecen dispositivos conectados que pueden extender sus servicios a los centros de datos del cliente (nube híbrida) o cerca de las fábricas del cliente (computación de borde).
Computación de borde
La necesidad de acercar geográficamente el análisis y el aprendizaje automático a la maquinaria y otros objetos del mundo real (la Internet de las cosas o IoT) ha dado lugar a dispositivos especializados, como los dispositivos de computación en miniatura con GPU y sensores, y a arquitecturas para apoyarlos, como los servidores de borde, las plataformas de automatización y las redes de entrega de contenidos. En última instancia, todos ellos se conectan a la nube, pero la capacidad de realizar análisis en el borde puede disminuir en gran medida el volumen de datos enviados a la nube, así como reducir la latencia.
La próxima vez que se queje de su gasto en la nube, quizás pueda señalar una de estas 16 ventajas, o una de las características de la nube que le han ayudado a usted o a su equipo. Cualquiera de las innovaciones de la nube que hemos comentado puede justificar su uso. En conjunto, las ventajas son realmente irresistibles.
Basado en el artículo de Martin Heller (InfoWorld) y editado por CIO Perú