Serverless para Frontends

Rate this content
Bookmark

En esta charla, el experto en micro frontends Florian Rappl presentará el patrón de creación de una interfaz de usuario sin servidor. Esta es una interfaz de usuario compuesta por diferentes piezas que pueden desarrollarse de forma independiente y desplegarse sin necesidad de tener o gestionar ningún servidor. Florian te mostrará cómo empezar en este espacio, qué decisiones tomar y qué obstáculos debes evitar.

FAQ

Serverless para Front-ends es un patrón de diseño que permite desarrollar interfaces de usuario sin necesidad de gestionar un tiempo de ejecución, simplificando la publicación y la orquestación de componentes de la aplicación.

Los microservicios son un enfoque de arquitectura de software que consiste en desarrollar una aplicación como un conjunto de pequeños servicios, cada uno ejecutándose de manera autónoma y comunicándose entre sí. Se utilizan comúnmente en aplicaciones web distribuidas para mejorar la modularidad y la escalabilidad.

Los microfrontends se pueden desplegar utilizando diversos métodos, siendo uno de los más comunes el uso de CDN (Red de Distribución de Contenidos). Esto facilita la gestión y orquestación de los componentes de la interfaz de usuario.

Las UI sin lado no requieren tiempo de ejecución, lo que reduce la complejidad de gestión y mantenimiento. Además, se orquestan automáticamente y se integran fácilmente con otras funciones serverless, proporcionando una alta disponibilidad y escalabilidad.

La integración de nuevas funcionalidades en un proyecto con microfrontends involucra desarrollar un nuevo componente y desplegarlo en el entorno existente, donde se orquesta automáticamente con los otros componentes, manteniendo la coherencia y funcionalidad de la aplicación.

Para desarrollar y desplegar nuevas funcionalidades en microfrontends se utilizan herramientas como npm para inicializar proyectos, IDEs estándar para el desarrollo, y sistemas de CI/CD para la automatización del despliegue, como se vio en la demostración.

Una UI sin lado en aplicaciones serverless actúa como un componente que se despliega en un punto fijo de aprovisionamiento, sin necesidad de gestión del tiempo de ejecución, y se orquesta automáticamente con otras funcionalidades serverless para formar parte integral de la aplicación.

Florian Rappl
Florian Rappl
8 min
25 Mar, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Bienvenidos a mi sesión sobre Serverless para Frontends. Las funciones sin servidor eliminan la necesidad de un tiempo de ejecución y se encargan de la orquestación por ti. Los micro frontends requieren un tiempo de ejecución y orquestación, pero las interfaces de usuario sin servidor proporcionan una solución sin tiempo de ejecución. En la demostración, un nuevo equipo agrega funcionalidad a una aplicación y la publica fácilmente. Construir y desplegar aplicaciones es rápido y sencillo con micro aplicaciones y PowerCLI, ofreciendo un acoplamiento flexible real y disponibilidad instantánea sin un tiempo de ejecución.

Available in English: Serverless for Frontends

1. Introducción a Serverless para Front-ends

Short description:

Bienvenidos a mi sesión, Serverless para Front-ends. Soy un arquitecto de soluciones en SmartPyat, principalmente trabajando con aplicaciones web distribuidas y microservicios. Los microservicios requieren un tiempo de ejecución integrado, orquestación y despliegue. En cambio, las funciones sin servidor eliminan la necesidad de un tiempo de ejecución y se encargan de la orquestación por ti. Los microfrontends en el front-end también requieren un tiempo de ejecución y orquestación, pero las UI sin lado proporcionan una solución sin tiempo de ejecución.

¡Hola a todos! Bienvenidos a mi sesión, Serverless para Front-ends. Mi nombre es Florian Rapper. Soy un arquitecto de soluciones en SmartPyat. Principalmente nos dedicamos a aplicaciones web distribuidas, lo que significa que también trabajamos mucho con microservicios.

Ahora, como saben, los microservicios vienen con un tiempo de ejecución integrado. Por lo tanto, necesitas tener eso para que funcione, ¿verdad? Eres responsable de todo el stack. También necesitas tener un lugar donde desplegarlos, ya sea una máquina virtual o una máquina real o simplemente dentro, por ejemplo, un clúster de Kubernetes. Pero necesitas asignarlo y potencialmente también necesitas administrarlo. Y lo más importante, requieren alguna orquestación. Entonces, cuando creas un nuevo microservicio, necesitas hacer espacio, necesitas hacer que los otros microservicios sean conscientes de eso.

Ahora, en contraste, existe este patrón de funciones sin servidor donde no hay tiempo de ejecución, ¿verdad? Todo ya está allí en un punto fijo de aprovisionamiento. Ahí es también donde publicas al final. Este es un punto que no necesitas mantener. Simplemente está ahí. Pero, por supuesto, necesitas ser consciente de ello. Al final, ese punto también se encarga de la orquestación por ti. Entonces, cada vez que publicas algo allí, ya está conectado con las otras funciones sin servidor que tienes.

Ahora, compara eso con el front-end. En resumen, lo que queremos es tener un patrón que reduzca el alcance para enfocarnos casi exclusivamente en la funcionalidad del dominio, ¿verdad? En el front-end, existe el patrón de microfrontends, muy similar a los microservicios. También necesitan tener un tiempo de ejecución. Por supuesto, si ejecutas microfrontends en un modo de orquestación del lado del servidor, entonces es bastante obvio. Pero también si los combinas en el front-end, necesitarías un tiempo de ejecución. Piensa en iframes, por ejemplo, u otros mecanismos. También necesitas tener una forma de cómo desplegarlos. Eso podría ser tan fácil como un CDN en algún lugar. Pero luego nuevamente requieres alguna orquestación. ¿Cómo haces que toda la aplicación sea consciente de este nuevo microfrontend?

Ahí es donde entran las UI sin lado. No requieren ningún tiempo de ejecución. Simplemente se pueden publicar en un punto fijo como hemos visto con sin servidor.

2. Demo de Agregar Funcionalidad

Short description:

Y también se orquestan automáticamente. Veamos la demostración para ver cómo se ve eso. Un nuevo equipo se integra para crear una funcionalidad. Agregan un botón Sorpréndeme en la barra de menú con una página que muestra una selección aleatoria de películas. Reúnen todo en la función de configuración y ejecutan la aplicación. Ahora puedes agregar toda la funcionalidad existente a través de la extensión del navegador. La siguiente etapa es publicarla.

Y también se orquestan automáticamente. ¿Verdad? Entonces, cada vez que implementas algo nuevo, simplemente se aprovisiona automáticamente y es parte de tu aplicación.

Pero veamos la demostración para ver cómo se ve eso. Aquí tenemos un pequeño clon de Netflix. Es completamente interactivo. Por supuesto, no es el Netflix completo. Pero puedes ver que puedes navegar por él. Puedes tener tus favoritos allí y todo funciona.

Supongamos que un nuevo equipo debe integrarse para crear una funcionalidad. Podría comenzar en una línea de comandos, como puedes ver aquí. Simplemente ejecuta un comando inicializado por npm. Luego solo necesita decir dónde está la fuente de la aplicación. En este caso, estamos usando nuestra aplicación de demostración. Han elegido un bundler, ESBuilt. Y quieren tenerlo todo en un nuevo directorio, yendo allí, yendo a VS Code. Este equipo ahora comienza a codificar felizmente. Quieren agregar un botón Sorpréndeme en la barra de menú, con una página que simplemente muestra una selección aleatoria de películas. Agregan todo el código en React. Aquí no hay magia. Luego reúnen todo en la función de configuración. Allí, conectan todos los componentes que han escrito con partes de la aplicación. También utilizan una funcionalidad común llamada movie tile aquí. O si quieren ver la aplicación, simplemente la ejecutan. Esto funciona completamente localmente, por lo que también se puede hacer en un avión cuando estás sin conexión. Como puedes ver, la estructura de la aplicación está ahí, pero está vacía. Bueno, eso se debe a que solo hay uno de estos applets aquí que se llaman pilotos.

Ahora puedes agregar, por supuesto, toda la funcionalidad existente, que se hace a través de esta extensión del navegador. Y ¡ta-da!, la cosa simplemente funciona. La selección está ahí, también la aplicación ahora está completamente poblada. Tienes la página de navegación y nuestro botón sorpréndeme ya funciona. Ahora, la siguiente etapa para este equipo es, por supuesto, publicarla.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Vue: Actualizaciones de Características
Vue.js London 2023Vue.js London 2023
44 min
Vue: Actualizaciones de Características
Top Content
El creador de Vue js da una actualización sobre las nuevas características de la tecnología.
Elevando Monorepos con los Espacios de Trabajo de npm
DevOps.js Conf 2022DevOps.js Conf 2022
33 min
Elevando Monorepos con los Espacios de Trabajo de npm
Top Content
Aprenda más sobre cómo aprovechar las características predeterminadas de los espacios de trabajo de npm para ayudarlo a administrar su proyecto monorepo, mientras también explora algunas de las nuevas características de npm cli.
Automatizando Todo el Código y las Pruebas con GitHub Actions
React Advanced Conference 2021React Advanced Conference 2021
19 min
Automatizando Todo el Código y las Pruebas con GitHub Actions
Top Content
Las tareas de código como linting y pruebas son partes críticas del flujo de trabajo de un desarrollador que nos ayudan a mantenernos cuerdos, como prevenir problemas de sintaxis o estilo y fortalecer nuestra lógica de negocio central. Hablaremos de cómo podemos usar GitHub Actions para automatizar estas tareas y ayudar a mantener nuestros proyectos funcionando sin problemas.
Ajustando DevOps para las Personas sobre la Perfección
DevOps.js Conf 2022DevOps.js Conf 2022
33 min
Ajustando DevOps para las Personas sobre la Perfección
Top Content
La demanda de DevOps ha aumentado en los últimos años a medida que más organizaciones adoptan tecnologías nativas de la nube. La complejidad también ha aumentado y una mentalidad de "cero a héroe" deja a muchas personas persiguiendo la perfección y FOMO. Esta sesión se centra en cambio en por qué tal vez no deberíamos adoptar una práctica tecnológica y cómo a veces los equipos pueden lograr los mismos resultados priorizando a las personas sobre la automatización y controles de operaciones. Veamos las cantidades y el ajuste fino de todo como código, solicitudes de extracción, DevSecOps, Monitoreo y más para priorizar el bienestar del desarrollador sobre la perfección de la optimización. Puede ser una decisión válida desplegar menos y dormir mejor. Y finalmente examinaremos cómo la práctica manual y la disciplina pueden ser la clave para productos y experiencias superiores.
¿Por qué es tan lento el CI?
DevOps.js Conf 2022DevOps.js Conf 2022
27 min
¿Por qué es tan lento el CI?
Todos nos hemos preguntado esto mientras esperamos una eternidad a que termine nuestro trabajo de CI. Un CI lento no solo arruina la productividad del desarrollador, rompiendo nuestra concentración, sino que también cuesta dinero en tarifas de computación en la nube y desperdicia enormes cantidades de electricidad. Vamos a adentrarnos en por qué ocurre esto y cómo podemos solucionarlo con herramientas mejores y más rápidas.
No sabes cómo hacer SSR
DevOps.js Conf 2024DevOps.js Conf 2024
23 min
No sabes cómo hacer SSR
Un recorrido por la evolución del SSR en los últimos doce años. Cubriremos cómo han cambiado las técnicas, los problemas típicos, las herramientas que puedes utilizar y diversas soluciones, todo desde el punto de vista de mi experiencia personal como consumidor y mantenedor.

Workshops on related topic

IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Despliegue de aplicaciones React Native en la nube
React Summit 2023React Summit 2023
88 min
Despliegue de aplicaciones React Native en la nube
WorkshopFree
Cecelia Martinez
Cecelia Martinez
Desplegar aplicaciones React Native manualmente en una máquina local puede ser complejo. Las diferencias entre Android e iOS requieren que los desarrolladores utilicen herramientas y procesos específicos para cada plataforma, incluidos los requisitos de hardware para iOS. Los despliegues manuales también dificultan la gestión de las credenciales de firma, las configuraciones de entorno, el seguimiento de las versiones y la colaboración en equipo.
Appflow es la plataforma de DevOps móvil en la nube creada por Ionic. Utilizar un servicio como Appflow para construir aplicaciones React Native no solo proporciona acceso a potentes recursos informáticos, sino que también simplifica el proceso de despliegue al proporcionar un entorno centralizado para gestionar y distribuir tu aplicación en múltiples plataformas. Esto puede ahorrar tiempo y recursos, permitir la colaboración, así como mejorar la confiabilidad y escalabilidad general de una aplicación.
En este masterclass, desplegarás una aplicación React Native para su entrega en dispositivos de prueba Android e iOS utilizando Appflow. También aprenderás los pasos para publicar en Google Play y Apple App Stores. No se requiere experiencia previa en el despliegue de aplicaciones nativas, y obtendrás una comprensión más profunda del proceso de despliegue móvil y las mejores prácticas para utilizar una plataforma de DevOps móvil en la nube para enviar rápidamente a gran escala.
Despliegue de Aplicación MERN Stack en Kubernetes
DevOps.js Conf 2022DevOps.js Conf 2022
152 min
Despliegue de Aplicación MERN Stack en Kubernetes
Workshop
Joel Lord
Joel Lord
Desplegar y gestionar aplicaciones JavaScript en Kubernetes puede volverse complicado. Especialmente cuando una base de datos también debe formar parte del despliegue. MongoDB Atlas ha facilitado mucho la vida de los desarrolladores, sin embargo, ¿cómo se integra un producto SaaS con su clúster de Kubernetes existente? Aquí es donde entra en juego el Operador de MongoDB Atlas. En este masterclass, los asistentes aprenderán cómo crear una aplicación MERN (MongoDB, Express, React, Node.js) localmente y cómo desplegar todo en un clúster de Kubernetes con el Operador de Atlas.
Azure Static Web Apps (SWA) con Azure DevOps
DevOps.js Conf 2022DevOps.js Conf 2022
13 min
Azure Static Web Apps (SWA) con Azure DevOps
WorkshopFree
Juarez Barbosa Junior
Juarez Barbosa Junior
Las Azure Static Web Apps se lanzaron a principios de 2021 y, de forma predeterminada, pueden integrar su repositorio existente y implementar su aplicación web estática desde Azure DevOps. Este masterclass demuestra cómo publicar una Azure Static Web App con Azure DevOps.
Seguimiento de errores y ralentizaciones en Node + JavaScript utilizando Sentry
Node Congress 2022Node Congress 2022
53 min
Seguimiento de errores y ralentizaciones en Node + JavaScript utilizando Sentry
WorkshopFree
Neil Manvar
Neil Manvar
Repasaremos la configuración de Sentry paso a paso para obtener visibilidad en nuestro frontend y backend. Una vez integrado, rastrearemos y solucionaremos errores y transacciones que se muestren en Sentry desde nuestros servicios para comprender por qué/dónde/cómo ocurrieron errores y ralentizaciones en nuestro código de aplicación.