¿Qué es sin servidor con Java?

Durante décadas, las empresas han estado desarrollando aplicaciones críticas para el negocio en varias plataformas, incluidos servidores físicos, máquinas virtuales y entornos de nube. Lo único que estas aplicaciones tienen en común en todas las industrias es que deben estar disponibles continuamente (24x7x365) para garantizar la estabilidad, la confiabilidad y el rendimiento, independientemente de la demanda. Por lo tanto, toda empresa debe ser responsable de los altos costos de mantenimiento de una infraestructura (por ejemplo, CPU, memoria, disco, red, etc.) incluso si el uso real de los recursos es inferior al 50%.

La arquitectura sin servidor se desarrolló para ayudar a resolver estos problemas. Serverless permite a los desarrolladores crear y ejecutar aplicaciones bajo demanda, lo que garantiza una alta disponibilidad sin tener que administrar servidores en entornos híbridos y de múltiples nubes. Detrás de escena, todavía hay muchos servidores en la topología sin servidor, pero están abstraídos del desarrollo de aplicaciones. Por el contrario, los proveedores de servicios en la nube utilizan servicios sin servidor para la gestión de recursos, como el aprovisionamiento, el mantenimiento, la creación de redes y el escalado de instancias de servidor.

Debido a su eficacia, el modelo de desarrollo sin servidor ahora es un requisito para las empresas que desean lanzar sus aplicaciones comerciales bajo demanda en lugar de ejecutarlas continuamente.

Se han creado muchos proyectos de código abierto para administrar aplicaciones sin servidor en clústeres de Kubernetes con el paquete contenedor de Linux en máquinas virtuales. El El panorama sin servidor interactivo de CNCF es una guía de proyectos, herramientas, marcos y plataformas de nube pública de código abierto que permiten a los equipos de DevOps administrar aplicaciones sin servidor.

Los desarrolladores pueden escribir código y luego implementarlo rápidamente en varios entornos sin servidor. Luego, la aplicación sin servidor responde la pregunta y automáticamente cambia de tamaño según sea necesario.

Quizás se pregunte qué lenguaje de programación y tiempo de ejecución son los más adecuados para desarrollar aplicaciones sin servidor para integrarlas con las tecnologías de la figura anterior. No solo hay una respuesta a esta pregunta, sino que demos un paso atrás para analizar el tiempo de ejecución de aplicaciones más popular para el desarrollo de aplicaciones comerciales en entornos de producción empresarial: Java.

Segundo Economía de los desarrolladoresA partir del tercer trimestre de 2020, más de 8 millones de desarrolladores empresariales todavía usan Java para cumplir con sus requisitos comerciales. Sin embargo, según un Encuesta NewRelic 2020, Java (con un 6 %) claramente no es la mejor opción para los desarrolladores con visión de futuro que utilizan un popular servicio en la nube.

La utilización de recursos, los tiempos de respuesta y la latencia son fundamentales en el desarrollo sin servidor. Las ofertas sin servidor de los proveedores de nube pública generalmente se miden según la demanda, se cobran solo cuando una aplicación sin servidor está activa, utilizando un modelo de ejecución basado en eventos. Por lo tanto, las empresas no pagan nada cuando una aplicación sin servidor se cae o se reduce a cero.

Índice

    El estado de Java con contenedores

    Con este fondo de pantalla, te estarás preguntando: "Cómo no los desarrolladores intentan usar el Pila de Java para desarrollar aplicaciones sin servidor Dado que ¿Es probable que las aplicaciones empresariales existentes se basen en tecnologías Java?"

    Esta es la verdad oculta: es difícil optimizar las aplicaciones Java en la nueva infraestructura inmutable, también conocida como plataformas de contenedores (p. ej., Kubernetes).

    Este diagrama ilustra las diferencias en la utilización de recursos de memoria entre un proceso de Java y los lenguajes y marcos de la competencia, como Nodo.js Y ir. Java HotSpot tiene la huella más grande, que incluye memoria en montón asignada por instancia de Java Virtual Machine (JVM). La parte central muestra cuán pequeño es cada proceso en Node.js en comparación con Java. Y finalmente, Go es un lenguaje compilado popular en la nube debido a su bajo consumo de memoria.

    Como puede ver, obtiene una mayor densidad a medida que avanza de izquierda a derecha en este diagrama. Esta es la razón por la cual los desarrolladores evitan Java (incluyendo Bota de primavera, un supuesto marco de Java para microservicios) al escribir aplicaciones sin servidor en la nube, contenedores y Kubernetes.

    ¿Que sigue?

    Las empresas pueden obtener beneficios significativos al implementar aplicaciones sin servidor, pero los problemas de densidad de recursos significan que evitan usar la pila de Java para desarrollar aplicaciones sin servidor en Kubernetes. Pero elegir un idioma diferente supone una carga para millones de desarrolladores de Java en todo el mundo. Por lo tanto, en el próximo artículo de esta serie, lo guiaré sobre cómo comenzar con las funciones sin servidor de Java en lugar de elegir un idioma diferente.

    Artículos de interés

    Subir