¿Computación sin servidores? ¿Programando sin código? Reflexionemos sobre estas y otras innovaciones en la nube en constante evolución.
por Peter Wayner
- ¿Computación sin servidores? ¿Programando sin código? Reflexionemos sobre estas y otras innovaciones en la nube en constante evolución.
- Granularidad para ahorrar dinero
- Una dieta para el SO
- Funciones de código abierto
- Chips de brazo
- Bases de datos para hacer todo
- Nuevos roles para aplicaciones de oficina
- Computación al límite
La palabra “nube” es una de esas palabras nebulosas que la gente utiliza con firme convicción. Cuando los políticos se meten en un aprieto, les gusta decir que la solución a un problema es más “educación”. Los médicos descartan 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 ” la 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 adoptara la palabra de moda, las empresas de mainframe vendían sistemas de tiempo compartido. Las primeras empresas de colocación alquilaron cuentas en servidores Unix. Empresas como America Online ofrecían servicios de computación y almacenamiento similares a la nube bajo la apariencia de entretenimiento.
Esta evolución ha continuado incluso después de la coronación de la palabra. Las primeras ofertas fueron solo docenas de máquinas virtuales delgadas que se ejecutan en servidores pesados. Podrías fingir que eres root aunque tu instancia sea 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 “AAS” 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 de la nube a repensar lo que quieren alquilar y lo que esperan obtener por su dinero. Muchas de estas son ideas redescubiertas que han sido reempaquetadas y reinterpretadas. Muchas son soluciones inteligentes que resuelven los problemas creados por la última 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.
Granularidad para ahorrar dinero
La primera generación de computación sin servidor llegó con unidades de computación 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 o una que tal vez fuera 20, 30 o incluso 100 veces mayor. Si no eran tan cuidadosos o tan implacablemente eficientes, no importaba. La factura era la misma.
Esa libertad perezosa 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 de su código y la observación de desvíos lentos se reflejarán en una factura más baja.
Una dieta para 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 celebran 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? El sistema operativo Container-Optimized de Google y el Bottlerocket de Amazon aplican el paradigma de virtualización tradicional al sistema operativo, con contenedores, el sistema operativo virtual y un Linux mínimo que desempeña el papel de hipervisor. Brillan por envolver microservicios que hacen una pequeña cosa, sin apoyarse en gran parte de la funcionalidad del sistema operativo.
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 dejar el resto del trabajo a la propia nube. En los últimos años, todas las principales nubes revelaron sus propias herramientas que permiten que un pequeño fragmento de código, una sola función, tome algunas decisiones y procese algunos datos. Estos fueron 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 funciones como servicio a cualquier máquina de su elección. Puede leer sobre todas estas opciones de FaaS aquí .
Chips de brazo
No son solo para 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 de ejecutar . Por supuesto, hay algunas salvedades. Debe recompilar sus ejecutables para que se ejecuten en la plataforma Arm, a menos que esté trabajando en lenguajes de nivel superior como Java, JavaScript (Node.js) o PHP (Drupal, WordPress, etc.).
Averiguar si verá un gran ahorro 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, por lo que son más adecuadas para ejecutar código poco usado que puede disfrutar del ahorro de costos sin correr más tiempo.
¿Deberías 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 disfrutar de los ahorros.
Bases de datos para hacer todo
Hace mucho tiempo, los programadores de Fortran vieron cómo Fortran agregaba una nueva y emocionante característica tras característica 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 microfunció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 los límites de la base de datos.
Otras bases de datos como Azure Cosmos DB combinan SQL, MongoDB, Cassandra y API de gráficos. Otros, como Firebase de Google, ofrecen la oportunidad de almacenar los datos y entregarlos a los clientes a través de la replicación. Fusionan distribución con almacenamiento. Hay docenas de nuevas bases de datos como esta que aportan nuevas funciones al término básico y utilitario “base de datos”.
Nuevos roles para aplicaciones de oficina
Las cuadrículas llenas de números, letras y fórmulas son la lengua franca para los contadores y gerentes de frijoles, no para los codificadores, pero están obteniendo 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 llegar 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” usando AppSheet.
No es solo la hoja de cálculo. El conjunto completo de aplicaciones de oficina ahora alberga más y más aplicaciones personalizadas que ejecutan una empresa. En lugar de crear e implementar aplicaciones 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 en la empresa que pasan la mayor parte del tiempo haciendo malabares con los documentos y el correo electrónico.
Computación al límite
La nube continúa evolucionando impulsando cada vez más potencia informática a los límites de la red. Empresas como Cloudflare alguna vez fueron cachés tontos. Ahora ofrecen servicios computacionales inteligentes. Los trabajadores de Cloudflare ejecutarán código 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 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 hasta los límites. Amazon ahora 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.
Azure IoT Edge de Microsoft apunta a la explosión de 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 y se insinúa por todas partes. La nube estuvo alguna vez limitada a una colección centralizada de edificios de colocación de datos con instancias rentables, pero ahora se está moviendo hacia la red. ¿Después? ¿Internet de las cosas? ¿El horno inteligente en la cocina? ¿Las computadoras en nuestros autos?
Si la computación en la nube no fuera tan útil, 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.
Fuente: https://www.infoworld.com/article/3613054/7-ways-the-cloud-is-changing.html