¿Computación sin servidores? ¿Programando sin código? Consideremos estas y otras innovaciones que les permiten a los servicios de nube estar en constante evolución.
“Nube” es una de esas palabras vaporosas que la gente utiliza con firme convicción. Cuando los políticos se meten en aprietos les gusta decir que la solución a un problema es más “educación”. Los médicos siempre tienen a mano la palabra “descanso”. Y durante la última década o más, todos en el departamento de TI (desde el pasante hasta el CIO) saben que la respuesta correcta a cualquier pregunta es “el cloud” y, por extensión. los servicios de nube.
La palabra, sin embargo, esconde una gran complejidad y confusión porque ha significado muchas cosas diferentes a lo largo de los años.
Antes de que se convirtiera en una moda, las empresas de mainframe vendían sistemas de tiempo compartido. Las primeras empresas de colocación alquilaron cuentas en servidores Unix. Empresas como América Online ofrecían servicios de computación y almacenamiento similares a la nube bajo la apariencia de entretenimiento.
Esta evolución de los servicios de nube continuo incluso después de la coronación del término. Las primeras ofertas fueron solo docenas de máquinas virtuales delgadas que se ejecutaban en servidores pesados. Podrías fingir que eres root aunque tu instancia fuera una pequeña fracción de la máquina.
Luego, los servidores FTP fueron rebautizados como cubos y buzones. Desde entonces, los servicios se han disparado y las letras “A-A-S” se han convertido en el sufijo favorito de los creadores de siglas.
La evolución continúa y cada nuevo desarrollo impulsa a los usuarios del cloud a repensar lo que quieren alquilar y lo que esperan obtener por su dinero. Muchas de estos “nuevos” servicios de nube son ideas redescubiertas que han sido reempaquetadas y reinterpretadas.
Otras son soluciones inteligentes que resuelven problemas creados por la anterior generación de soluciones. Todos ellos nos dan la oportunidad de mirar lo que estamos construyendo y, en palabras del poeta, “hacerlo nuevo de nuevo”.
A continuación, se muestran siete formas importantes en las que la nube está innovando y evolucionando… otra vez.
1. Ahorros de dinero por Granularidad en los servicios de nube
La primera generación de computación sin servidor llegó con unidades de medida relativamente grandes. AWS Lambda, por ejemplo, comenzó redondeando todas las llamadas a 100 ms.
Los programadores se dieron cuenta rápidamente de que estaban pagando la misma cantidad de dinero por una prueba de cálculo rápida y sencilla que por otra que, tal vez, fuera 20, 30 o incluso 100 veces mayor. Si no eran tan cuidadosos o implacablemente eficientes, no importaba. La factura era la misma.
Pero esa libertad desprolija se ha ido. A medida que compiten más y más plataformas sin servidor, el tamaño del grano de cálculo más pequeño es cada vez más pequeño.
AWS simplemente dejó de redondear hasta 100 ms y comenzó a facturar en incrementos de 1 ms. Ahora, la limpieza del código y la observación de desvíos lentos se reflejarán en una cuenta más baja.
2. La nube y la dieta en el SO
El sistema operativo moderno es una maravillosa máquina Rube Goldberg, diseñada para combinar bits para trabajos de impresión, videojuegos, edición de documentos y un trillón de otras tareas.
¿Alguna vez se preguntó por qué estaba iniciando sus instancias en la nube con todo el código listo para manejar estas tareas?
Los Unikernels son una forma de eliminar toda esa complejidad. Una vez que tenga su código en ejecución, el compilador creará un paquete mucho más pequeño que vivirá sobre el hipervisor estándar.
Los proponentes no solo exaltan la eficiencia de omitir todas esas bibliotecas adicionales, sino que señalan que la superficie de ataque es mucho más pequeña, lo que las hace más fáciles de proteger.
¿O por qué no obtener su sistema operativo mínimo directamente de AWS o Google? Container-Optimized OS de Google y Bottlerocket de Amazon aplican el paradigma de virtualización tradicional al sistema operativo con contenedores: el SO virtual y un Linux mínimo que desempeña el papel de hipervisor.
Resaltan por envolver microservicios que hacen cosas pequeñas sin comprometer gran parte de la funcionalidad del sistema operativo.
3. Funciones de código abierto
Otra forma de simplificar el trabajo de implementación en la nube es permitir que los desarrolladores escriban una función simple y dejen el resto del trabajo a la propia nube.
En los últimos años, todas las clouds principales revelaron herramientas propias que permiten que le permiten a un pequeño fragmento de código, que una sola función tome algunas decisiones y procese ciertos datos.
Esto generó avances maravillosos, especialmente para las personas que unieron muchos servicios en un gran producto.
El único inconveniente fue el bloqueo del proveedor. Si bien las funciones se pueden escribir en muchos idiomas, la interacción con el marco es propietaria.
Ahora hay una serie de proyectos de código abierto interesantes (OpenWhisk, OpenFaaS, Kubeless, Knative, Fission) que llevan FaaS (Funciones como Servicio) a cualquier máquina de su elección.
4. Arm Chips
Esto no sólo le interesa a los amantes de Mac. Amazon tiene una línea de servidores que ejecutan sus propios chips Gravitron con núcleos Arm que prometen ser un 40% más baratos.
Por supuesto, hay algunas salvedades. Tienes que volver a compilar tus ejecutables para que corran en la plataforma Arm, a menos que estés trabajando en lenguajes de nivel superior como Java, JavaScript (Node.js) o PHP (Drupal, WordPress, etc.).
Un ahorro importante dependerá en gran medida de la naturaleza de su cálculo y de la carga. Algunos puntos de referencia colocan a las máquinas Gravitron en el mismo rango general que las máquinas originales basadas en Intel.
Otros sugieren que las instancias basadas en Arm son un poco menos capaces, más adecuadas para ejecutar código poco usado que permita disfrutar del ahorro de costos sin comprometer más tiempo.
¿Debería hacer el cambio? La única forma de averiguarlo es probar sus propias cargas de trabajo en entornos cercanos a los de producción para ver si pueden – de verdad – obtenerse ahorros.
5. Bases de datos Do-everything
Hace mucho tiempo, los programadores de Fortran vieron cómo este agregaba una nueva y emocionante característica tras otra y bromeaban diciendo que no sabían cuál sería el lenguaje de programación del futuro, pero que se llamaría “Fortran”.
Hoy, lo mismo podría decirse de las bases de datos: la micro función original como capa de servicio. Hace mucho tiempo, las bases de datos almacenaban tablas rectangulares. Ahora hacen casi todo.
Los desarrolladores están empezando a notar cuánto hay debajo del capó. PostgreSQL 11, por ejemplo, tiene su propio JIT para compilar consultas y sus funciones integradas ahora tienen la capacidad de confirmar o deshacer transacciones.
La base de datos habla JSON, por lo que es más fácil que nunca crear un microservicio completo sin salir de ella.
Algunas bases de datos como Azure Cosmos DB combinan SQL, MongoDB, Cassandra y API de gráficos. Otras como Firebase de Google ofrecen la oportunidad de almacenar datos y entregarlos a los clientes a través de la replicación. Fusionan distribución con almacenamiento.
Hay docenas de opciones como éstas que aportan una nueva funcionalidad al término básico y utilitario “base de datos”.
6. Nuevos roles para aplicaciones Office
Las cuadrículas llenas de números, letras y fórmulas son la lengua franca para los Gerentes y analistas contables, no para los codificadores pero, sin embargo, están ganando más respeto como formato de archivo inteligente y una forma de abrir la nube a las masas.
El movimiento “sin código” está sacando a los programadores del círculo y llega, directamente a los macro-jockeys con herramientas que convierten las hojas de cálculo en aplicaciones.
Google, por ejemplo, se ha jactado de que una empresa creó e implementó más de 35 aplicaciones comerciales sin “habilidades de codificación” utilizando AppSheet.
No es solo la hoja de cálculo. El conjunto completo de las suites de oficina ahora albergan más y más aplicaciones personalizadas para las empresa.
En lugar de crear e implementar apps en instancias independientes, algunos codificadores están creando aplicaciones que se integran con los procesadores de texto, los creadores de presentaciones de diapositivas y otras herramientas genéricas en los universos de Google o Microsoft.
Cuando las conexiones están ahí, les facilita la vida a todos aquellos en las empresas que se pasan la mayor parte del tiempo haciendo malabares con los documentos y el correo electrónico.
7. Edge Computing
La nube continúa evolucionando impulsando cada vez más la potencia informática a los límites de la red. Empresas como Cloudflare ofrecen servicios computacionales inteligentes el los cuales es pisible ejecutar JavaScript, Rust, C o C ++, en uno de sus más de 200 centros de datos ubicados lo más cerca posible de los usuarios. También hay bases de datos locales.
El servicio de nube de AWS for the Edge de Amazon ofrece una oportunidad similar para acercar su código a los usuarios. Aquellos que utilizan los servicios de aprendizaje automático de Amazon SageMaker pueden sacarlos de los principales centros de datos para edges.
La empresa ahora también está enfatizando su conexión a las redes celulares 5G emergentes, sin duda esperando que los dispositivos móviles cambien de consumidores ocasionales de datos costosos a los principales portales a través de los cuales las personas navegarán por Internet.
Por su parte, Azure IoT Edge de Microsoft tiene como objetivo la aprovechar dispositivos con características que dependen de la nube. El servicio Custom Vision, por ejemplo, lleva la informática de punta a todas las redes de cámaras en expansión.
Hay decenas de ejemplos como este que se están desarrollando a medida que la nube crece por todas partes. Los servicios de nube estuvieron alguna vez limitados a una colección centralizada de edificios de colocación de datos con instancias rentables, pero ahora se está trasladando a la red.
¿Después? ¿Internet de las cosas? ¿El horno inteligente en la cocina? ¿Las computadoras en nuestros autos? Si la computación y los servicios de nube no fueran tan útiles, sería tentador implementar metáforas de ciencia ficción como Blob o Borg.
Pero siempre que sea más fácil alquilar que poseer, la nube será adoptada por cualquiera que necesite computadoras y almacenamiento de datos para llevar adelante su empresa.