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.