Además del pago por uso, la nube pública está repleta de las últimas herramientas de desarrollo e IA para crear apps mejores y con mayor rapidez.
Por Martín Heller
Original de IDGN
Cuando pensamos en la nube pública, a menudo la primera consideración que nos viene a la mente es financiera: mover 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).
Eso puede o no ser atractivo para el CFO, pero no es exactamente una trampa para los desarrolladores, operaciones o aquellos que combinan los dos como desarrolladores.
Para estas personas, la computación en la nube ofrece muchas oportunidades que, simplemente, no están disponibles cuando los nuevos servicios de software requieren la compra de un nuevo hardware de servidor o conjuntos de software empresarial.
Lo que tarda seis meses en implementarse en las instalaciones, a veces, puede tardar 10 minutos en la nube.
Lo que requiere firmas de tres niveles de administración para crear en las instalaciones se puede cargar a una tarjeta de crédito en el cloud.
No es solo una cuestión de tiempo y comodidad. Los entornos cloud también permiten una mayor velocidad para el 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 suele conducir a una mayor calidad del software.
Además, existen innovaciones reales en la computación de nube que pueden proporcionar beneficios inmediatos y resolver problemas de larga data en la informática local.
Aquí presentamos 16 atractivas capacidades en el cloud computing.
1. Instancias informáticas bajo demanda
¿Necesita una nueva base de datos en su propio servidor local? Póngase en fila y prepárese para esperar meses, si no años.
Si puede tolerar tener una máquina virtual (VM) en las instalaciones en lugar de un servidor físico y su empresa usa VMware o tecnologías similares, su espera puede llevar solo semanas.
Pero si desea crear una instancia de servidor en una nube pública, puede aprovisionarla y ejecutarla en aproximadamente 15 minutos. También podrá adaptarla a sus necesidades y apagarla cuando no la esté usando.
2. Imágenes de máquinas virtuales preconstruidas
Es conveniente abrir una VM con el sistema operativo de su elección pero, aún, necesita instalar y licenciar las aplicaciones que necesita.
El poder abrir una máquina virtual con el sistema operativo y las aplicaciones de su elección listas para ejecutarse no tiene precio.
3. Servicios sin servidor
Cuando decimos “Sin servidor” significa que un servicio o pieza de código se ejecutará bajo demanda durante un breve período de tiempo, generalmente en respuesta a un evento, sin necesidad de una máquina virtual dedicada para ejecutarse.
Si un servicio está en tal modalidad, normalmente no necesita preocuparse por el servidor subyacente en absoluto: los recursos se asignan de un grupo mantenido por el proveedor de la nube.
Los servicios sin servidor – actualmente disponibles en todas las principales nubes públicas – generalmente cuentan con:
- Escalado automático
- Alta disponibilidad integrada
- Yun modelo de facturación de pago por valor
Si desea una aplicación sin servidor sin estar bloqueado en ninguna nube pública específica, puede usar un marco sin servidor independiente del proveedor, como Kubeless, que solo requiere un clúster, disponible como un servicio en la nube.
4. Contenedores a pedido
Un contenedor es una unidad de software ejecutable ligera, 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 kernel del sistema operativo de la máquina host.
Los contenedores pueden ejecutarse en Docker Engine o en un servicio de Kubernetes. Ejecutar contenedores bajo demanda tiene todas las ventajas de ejecutar máquinas virtuales bajo demanda, con las ventajas adicionales de requerir menos recursos y costar menos.
5. Imágenes de contenedores preconstruidas
Un contenedor de Docker es una instancia ejecutable de una imagen de Docker, que se especifica mediante un Dockerfile.
Un Dockerfile contiene las instrucciones para crear una imagen y, a menudo, se basa en otra imagen. Por ejemplo, una imagen que contenga Apache HTTP Server podría estar basada en una imagen de Ubuntu.
Puede encontrar Dockerfiles predefinidos en el registro de Docker y también puede crear los suyos propios.
Puede ejecutar imágenes de Docker en su instalación local de Docker o en cualquier nube compatible con contenedores.
Al igual que con las imágenes de máquinas virtuales preconstruidas, un Dockerfile puede mostrar una aplicación completa rápidamente, pero a diferencia de las imágenes de máquinas virtuales, los Dockerfiles son independientes del proveedor.
6. Orquestación de contenedores de Kubernetes
Kubernetes (K8s) es un sistema de código abierto para automatizar la implementación, el escalado y la gestión de aplicaciones en contenedores.
K8s se basó en la tecnología interna “Borg” de Google. Los clústeres de K8 consisten en un conjunto de máquinas de trabajo, llamadas nodos, que ejecutan aplicaciones en contenedores.
Los nodos de trabajo alojan pods que contienen aplicaciones: un plano de control gestiona los nodos de trabajo y los pods.
K8s funciona en cualquier lugar y escala sin límites. Todas las principales nubes públicas tienen servicios K8.
También puede ejecutarse en su propia máquina de desarrollo.
7. Servidores de escalado automático
No tiene que contener sus aplicaciones y ejecutarlas en 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 hacia arriba (o hacia abajo) según el uso, ya sea agregando (o restando) instancias o aumentando (o disminuyendo) el tamaño de la instancia.
8. Bases de datos planetarias
Las principales nubes públicas y varios proveedores de bases de datos (BdD) han implementado BdD distribuidas a escala planetaria, con fundamentos como estructuras de datos, interconexiones redundantes y algoritmos de consenso distribuidos que les permiten trabajar de manera eficiente y con una confiabilidad de hasta cinco 9 (99,999 % de tiempo de actividad).
Los ejemplos específicos de la nube incluyen:
- Google Cloud Spanner (relacional)
- Azure Cosmos DB (multimodelo)
- Amazon DynamoDB (clave-valor 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)
9. Servicios híbridos
Las empresas con grandes inversiones en centros de datos a menudo desean extender sus aplicaciones y servicios existentes a la nube en lugar de reemplazarlos con servicios en la nube.
Todos los principales proveedores de la nube ahora ofrecen formas de lograrlo, tanto mediante el uso de servicios híbridos específicos (por ejemplo, bases de datos que pueden abarcar centros de datos y nubes) como servidores en las instalaciones y recursos de la nube perimetral que se conectan a la nube pública, a menudo llamada nube híbrida.
10. Entrenamiento y predicción de aprendizaje automático escalable
La capacitación en aprendizaje automático, especialmente el aprendizaje profundo, a menudo requiere recursos informáticos sustanciales durante horas o semanas.
La predicción de 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 lograr el entrenamiento y las predicciones del modelo.
11. GPU, TPU y FPGA en la nube
El aprendizaje profundo con modelos grandes y los conjuntos de datos muy grandes necesarios para un entrenamiento preciso a menudo puede llevar mucho más de una semana en grupos de CPU.
Las GPU, TPU y FPGA pueden reducir significativamente el tiempo de capacitación, y tenerlas disponibles en la nube facilita su uso cuando sea necesario.
12. Servicios de IA preentrenados
Muchos servicios de IA se pueden realizar bien con modelos previamente entrenados, por ejemplo, traducción de idiomas, texto a voz e identificación de imágenes.
Todos los principales servicios en la nube ofrecen servicios de inteligencia artificial preentrenados basados en modelos robustos.
13. Servicios de IA personalizables
A veces, los servicios de IA preentrenados no hacen exactamente lo que necesita.
El aprendizaje de transferencia, que entrena solo unas pocas capas de red neuronal sobre un modelo existente, puede brindarle un servicio personalizado relativamente rápido en comparación con entrenar un modelo desde cero.
Una vez más, todos los principales proveedores de servicios en la nube ofrecen transferencia de aprendizaje, aunque no todos lo llaman por el mismo nombre.
14. Servicios de monitoreo
Todas las nubes admiten al menos un servicio de monitoreo y le facilitan la configuración de sus servicios en la nube para el monitoreo.
Los servicios de monitoreo a menudo le muestran un panel gráfico y se pueden configurar para notificarle sobre excepciones e indicadores de rendimiento inusuales.
15. 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 bajo gestión, 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 salirse fácilmente de control.
Si la latencia es demasiado alta entre el aprendizaje automático y los datos, el tiempo que lleva realizar el entrenamiento puede explotar.
Para resolver este problema, los proveedores de servicios en la nube ofrecen dispositivos conectados que pueden extender sus servicios a los centros de datos de un cliente (nube híbrida) o cerca de las plantas de producción de un cliente (computación de borde).
16. Computación perimetral
La necesidad de acercar geográficamente el análisis y el aprendizaje automático a la maquinaria y otros objetos del mundo real (el Internet de las cosas o IoT) ha dado lugar a dispositivos especializados, como dispositivos informáticos en miniatura con GPU y sensores, y arquitecturas que los admiten omo como:
- Servidores perimetrales
- Plataformas de automatización
- Y redes de entrega de contenido
En última instancia, todos estos se conectan de nuevo a la nube, pero la capacidad de realizar análisis en el borde puede disminuir en gran medida el volumen de datos enviados al cloud, así como reducir la latencia.
La próxima vez que se sienta afligido por sus gastos en la nube, tal vez pueda señalar uno de estos 16 beneficios, o una de las características del cloud que lo hayan ayudado a usted o a su equipo.
Cualquiera de las innovaciones en la nube que hemos discutido puede justificar su uso. En conjunto, los beneficios son realmente irresistibles.