Empujando los Límites hacia el Edge

Rate this content
Bookmark

Mientras la tecnología avanza cada vez más, el desarrollo web intenta acercarse más al usuario. Las CDNs y los servidores web están evolucionando, y ahora nos ofrecen la posibilidad de ejecutar lógica del lado del servidor sin depender de un único centro de datos ubicado en un lugar específico del mundo. Presentemos el concepto de The Edge. Veremos cómo funciona, y hablaremos sobre las Edge Functions. Discutiremos por qué los principales proveedores de alojamiento están introduciendo esta tecnología, y por qué diferentes frameworks de JavaScript están modelando sus enfoques basados en la computación Edge.

This talk has been presented at React Summit US 2023, check out the latest edition of this React Conference.

FAQ

Facundo Giuliani es Gerente de Relaciones con Desarrolladores en Storyblok y organizador de React Buenos Aires y Dev Summit Argentina.

React Buenos Aires es la mayor comunidad de React en Argentina, organizando encuentros mensuales para los desarrolladores.

En los años 90, los sitios web funcionaban mediante un servidor web que procesaba solicitudes, generaba el contenido y lo enviaba al usuario, operando desde una ubicación única.

El modelo tradicional puede sobrecargarse fácilmente si múltiples usuarios envían solicitudes simultáneamente, además de que el tiempo de viaje de la información puede afectar el rendimiento y la carga de la página.

Una CDN (Red de Entrega de Contenido) consiste en servidores distribuidos geográficamente que aceleran la entrega de contenido web acercando los datos a los usuarios, mejorando el rendimiento y reduciendo el consumo de ancho de banda.

Las CDNs están optimizadas principalmente para contenido estático. Para contenido dinámico o personalizado, todavía se requiere acceder al servidor de origen, lo que puede reintroducir problemas de rendimiento.

El Edge es una arquitectura de red distribuida que procesa datos lo más cerca posible de los usuarios, integrando aspectos de las CDNs y funciones serverless para ejecutar lógica del lado del servidor de manera eficiente y segura.

La computación Edge se puede utilizar para personalización basada en el usuario, geolocalización, pruebas A/B y seguridad mejorada a través de autenticación y autorización en el nivel de acceso a los datos.

Los desarrolladores de React pueden usar funciones Edge en frameworks como Next.js y Remix, que permiten ejecutar lógica de servidor distribuida para optimizar la entrega de contenido y la interactividad del usuario.

Facundo Giuliani
Facundo Giuliani
21 min
15 Nov, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Las CDNs se introdujeron para mejorar el rendimiento del sitio web acercando el contenido web a los usuarios. El concepto de edge aborda las limitaciones de las CDNs procesando los datos del cliente cerca de la fuente. The edge combina funciones sin servidor y CDNs, permitiendo la ejecución de lógica del lado del servidor sin configuración del servidor web. Los casos de uso para the edge incluyen personalización, entrega de contenido basada en geolocalización, pruebas AV e implementación de lógica de seguridad.
Available in English: Pushing Boundaries to the Edge

1. Introducción a Edge y CDNs

Short description:

Hoy hablaremos sobre Edge y cómo se creaban los sitios web en los años 90. Los sitios web funcionaban enviando una solicitud a un servidor web, que generaba y enviaba el contenido de vuelta. Sin embargo, este enfoque tenía problemas con la sobrecarga del servidor y el rendimiento debido a la ubicación del servidor y a múltiples usuarios accediendo a él. Para resolver esto, se introdujeron las redes de entrega de contenido (CDNs). Las CDNs son servidores distribuidos geográficamente que acercan el contenido web a los usuarios, mejorando la velocidad de entrega.

Hola a todos. Mi nombre es Facundo, y hoy hablaremos sobre Edge. Primero que nada, quiero presentarme. Como dije, mi nombre es Facundo, Facundo Giuliani. Soy de Argentina. Soy Gerente de Relaciones con Desarrolladores. Soy el gerente del equipo de Relaciones con Desarrolladores en Storyblok. También soy uno de los organizadores de React Buenos Aires. React Buenos Aires es la mayor community de React en Argentina, y organizamos encuentros mensuales, y también soy uno de los organizadores de Dev Summit Argentina, otra community de desarrolladores en el país.

Así que para hoy quería empezar un poco con algo de ambiente de los 90. Quería discutir cómo se creaban los sitios web cuando se veían como este, el sitio web de Space Jam. Si ustedes van a Internet, pueden ver que todavía está en funcionamiento y se ve así. Pero en esa época, en los 90, los sitios web funcionaban y todavía funcionan de esta manera. Tienes un navegador web en tu dispositivo móvil o tu computadora. Envías una solicitud a un servidor web, ese servidor web ejecuta la solicitud, genera el contenido, y luego envía el contenido después de procesar tu solicitud y generar todos los data y el contenido que necesitas para ver la página que estás solicitando. De hecho, este servidor web es una computadora real que vive en algún lugar del mundo. Así que esta es una imagen del pasado, de los años 90, pero solía ser así. Quiero decir, una computadora que si apagas, esa computadora, tu sitio web ya no está en funcionamiento, así que tienes que tener cuidado con los cables y cosas así. Pero, sí, quiero decir, esa es la forma básica de funcionamiento de un servidor web y los sitios web. Esta forma de trabajar tiene un problema, aunque, y el problema es que tenemos nuestro servidor web en una ubicación única donde la gente está enviando su solicitud y esperando que ese servidor web procese su solicitud y envíe los data. Lo que significa es que si tenemos a varias personas, digamos miles de personas solicitando el contenido o enviando al mismo tiempo, podríamos estar sobrecargando este servidor web. Y no solo eso, otra cosa que tenemos que considerar es que estas solicitudes que estamos enviando desde cualquier parte del mundo, tienen que viajar a esta ubicación única donde está ubicado el servidor web. Y entonces todo ese tiempo que tarda en llegar desde tu ubicación hasta el servidor web, afectará el performance y el tiempo de carga de tu página web. Así que esos son algunos problemas que tiene una lógica básica de renderizado en el lado del servidor. Las múltiples personas accediendo al mismo servidor web, y también las diferentes partes del mundo donde esa gente está solicitando la página. Así que para resolver este escenario, o para ver una solución para este caso particular, después de los años se definió un nuevo concepto, el concepto de red de entrega de contenido, este es un grupo de servidores distribuidos geográficamente que te ayuda a acelerar la entrega de contenido web, acercando ese contenido a donde están los usuarios. Básicamente, lo que tenemos con estas CDNs, como se les llama, es que tenemos diferentes servidores, como los servidores web que mencionábamos antes. Tenemos diferentes servidores web en diferentes partes del mundo y estos servidores web están mejorados para entregar contenido estático a los usuarios. Básicamente, lo que tendremos en estos diferentes nodos, como se les llama en esta red, son activos estáticos como imágenes, videos, pero también archivos HTML, archivos CSS y archivos JavaScript. Así que van a ser alojados y almacenados en caché en estos diferentes nodos de nuestra red.

2. Introducción a las CDNs y el Edge

Short description:

Cuando un usuario solicita recursos, la solicitud viaja al nodo más cercano de la red, reduciendo el consumo de ancho de banda y mejorando el rendimiento. Las CDNs trabajan con activos estáticos, requiriendo un servidor de origen para contenido dinámico. El concepto del edge aborda las limitaciones de las CDNs, procesando los datos del cliente cerca de la fuente. Las redes edge tienen diferentes servidores de origen en varias ubicaciones, replicando el servidor de origen y procesando las solicitudes de los usuarios. El edge no es lo mismo que una función sin servidor, ya que ofrece beneficios como servidores gestionados y precios de pago por uso.

Y cuando un usuario quiere solicitar uno de estos recursos, la solicitud que están enviando viajará al nodo más cercano de la red. Así que digamos que vivo en Argentina y tengo uno de los nodos de esta red en Brasil. En lugar de enviar mi solicitud y tener que ir a un servidor web ubicado en el Reino Unido, digamos, mi solicitud viajará al nodo de Brasil de la red y luego obtendré todos los recursos de ese nodo. Esto ayuda a reducir el consumo de ancho de banda porque no estaremos accediendo a todos los usuarios o a todos los visitantes al mismo servidor web, y tendremos un mejor performance debido a esto y porque la solicitud tiene que viajar menos, digamos, yendo al nodo más cercano de la red. Quiero decir, dependiendo de tu ubicación, dependiendo de dónde la red tenga estos nodos, y habrá más security porque en lugar de acceder al origen de los data o el contenido, tu solicitud viajará a diferentes nodos sin tener que saber cuál es el servidor web real que aloja tu sitio web.

Porque una cosa que mencioné y tienes que considerar es que estas CDNs, trabajan con activos estáticos. Eso significa que si necesitamos generar contenido o activos dinámicos, o necesitamos generar estos activos de forma dinámica, de alguna manera basados en una lógica que depende del usuario, todavía necesitaremos el servidor de origen para hacer eso. Así que como mencioné, estas CDNs trabajan con contenido estático. Por eso se desarrolló un nuevo término con los ERs, la generación de sitios estáticos. Puedes estar familiarizado con frameworks como Gatsby o NGJS donde puedes generar activos estáticos en tiempo de construcción, archivos JavaScript, archivos CSS y archivos HTML. La idea de esto es que puedes crear un sitio web que puede ser alojado en estas CDNs, por lo que no dependes de un servidor de origen. Y teniendo la misma idea en mente, se desarrolló el concepto de la JAMstack, donde la idea era centrar la mayor parte de la lógica de tus sitios web en los activos estáticos y gestionar los datos dinámicos con diferentes enfoques como APIs, funciones serverless, o pequeños fragmentos de código que se ejecutan en el lado del servidor, pero no todo tu sitio web vive en el servidor web o tiene que esperar a que cada solicitud sea procesada para devolver o entregar este contenido. Pero como puedes ver, hay otro problema ahora. Y el problema es que solo podemos gestionar contenido estático con las CDNs. Así que como mencioné antes, si necesitamos algunos datos dinámicos, o necesitamos generar un cierto activo, que no está viviendo o no está en caché en los nodos de la CDN, tendremos que enviar la solicitud al servidor de origen. Y ahí es donde los problemas de performance empiezan a aparecer de nuevo. Estamos perdiendo la security y la performance que tenemos con una CDN. Así que teniendo este problema en mente y otras ideas y enfoques y siempre tratando de mejorar la situación, por supuesto, la industria de TI llegó con un nuevo concepto, el concepto del edge. El edge es básicamente una architecture de red distribuida donde los data del cliente se procesan lo más cerca posible de la fuente de origen. Así que eso significa que si vamos a usar algunos data que vienen de nuestros usuarios o algún contexto de nuestros usuarios, podemos obtener ese contexto lo más cerca posible de ellos la lógica del lado del servidor más cerca de ellos, en lugar de tener que enviar la solicitud y toda esa información a un servidor de origen y esperar el procesamiento. Así que en este caso, lo que tendremos es básicamente usando la misma distribución que teníamos para una CDN, tendremos diferentes servidores de origen en las diferentes ubicaciones. Así que si necesito procesar data que vienen de los usuarios y tengo un usuario de Argentina que quiere solicitar un cierto recurso o enviar una solicitud, esa solicitud será procesada en el nodo más cercano de mi red edge, que en este caso podría ser de nuevo, Brasil, digamos, en lugar de tener que enviar esa solicitud a un único servidor de origen que está viviendo en una ubicación particular del mundo. Así que en este caso, tendremos nuestro servidor de origen replicado en diferentes partes del mundo, procesando todas las solicitudes que vienen de los diferentes usuarios. Una cosa que tienes que tener en cuenta es que cuando hablamos del edge, no es lo mismo el edge que una función serverless, porque aunque que tendremos algunos de los beneficios que tenemos con las funciones serverless, como que no necesitaremos DevOps porque los servidores van a ser gestionados por el proveedor y solo vamos a pagar por lo que usamos. Quiero decir, en lugar de tener que pagar por un servidor web dedicado, tendremos nuestro tiempo de procesamiento definiendo cuánto vamos a pagar por eso. Así que eso significa que no tendremos subutilización de los servidores web porque el único procesamiento que tendremos es cuando las solicitudes están llegando y están siendo procesadas y ejecutadas. Quiero decir, todos estos son aspectos que podemos identificar y considerar en las funciones serverless. La cosa es que el Edge no es solo esto porque una función serverless puede ser desplegada en un servidor web centralizado. Y si ese es el caso, vamos a tener el mismo problema que teníamos antes con el servidor de origen. Quiero decir,

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

Nuxt en el Edge
Vue.js London 2023Vue.js London 2023
30 min
Nuxt en el Edge
Nuxt is a web framework with many features including server-side rendering, client-side rendering, static site generation, edge site rendering, and more. The Edge is a limited environment running on CDN nodes, such as Cloudflare network. Database options on the Edge include Postgre with Neon, Versel on Neon, Superbase, MySQL with plan scale, HyperDB, and KV with redis and Cloudflare storage. The speaker demonstrates creating a demo with a votes table, handling API requests, adding authentication, saving votes, and displaying results. The roadmap to a full stack Nuxt 3 with an edge-first experience is in progress. Copilot is a helpful tool for developers. Integrating SSO with GitHub and improving the developer experience are important considerations for Nuxt 3.
Deno 2.0
Node Congress 2023Node Congress 2023
36 min
Deno 2.0
Top Content
The Talk discusses forced optimization with Node and Deno, with Deno aiming to pursue the same goals in a more expansive and modern way. Deno has built-in support for NPM and enforces security constraints. It also has a key-value database called Deno KV, which will be a core part of the Deno 2 API. Deno Deploy is a serverless Edge Functions platform powered by FoundationDB, optimized for fast reading and ideal for building eCommerce sites or application servers at the edge. Deno 2.0 is coming soon with more features under development.
Sitios web estáticos primero con Cloudflare Workers
Node Congress 2022Node Congress 2022
30 min
Sitios web estáticos primero con Cloudflare Workers
The Talk covers the historical landscape of web development, the rise of static site generators, the serverless revolution, edge computing, and using Cloudflare services to enhance static websites. It explores the challenges of early web development, the shift to static sites and client-side rendering, and the advantages of server-side and client-side rendering. It also discusses Cloudflare services like Cloudflare workers, KV, durable objects, and HTML rewriter for building fast and minimal hosting solutions. The Talk highlights the use of DurableObjects for analytics and integration, dynamic content on static sites, JAMstack, and the advantages of using Cloudflare Workers for automatic deployment, multiple language support, and combining static pages with JavaScript functions. It introduces the concept of edge computing and the difference between Cloudflare Pages and Workers. It also touches on error handling and the use of HTML rewriter, Cloudflare KVstore, and DurableObjects for managing state and storing dynamic data.
Construyendo aplicaciones full-stack en el Edge
React Advanced Conference 2022React Advanced Conference 2022
9 min
Construyendo aplicaciones full-stack en el Edge
This Talk explores building full stack applications on the edge and the blurring line between front end and back end development. It discusses the benefits of using the JAMstack and APIs for scalable web development. The Talk also highlights the improvements in edge technology, such as serverless functions and efficient data storage, and the deployment of functions and durable objects on the edge network. Overall, the Talk emphasizes the importance of delivering high-quality experiences with low latency through edge computing.
El Edge y las Bases de Datos: Todo en Todas Partes al Mismo Tiempo
Node Congress 2023Node Congress 2023
26 min
El Edge y las Bases de Datos: Todo en Todas Partes al Mismo Tiempo
This talk discusses working with databases on the Edge, the challenges of serverless and databases, and the challenges of working with databases on the Edge. It explores solutions such as using proxy connections and globally replicated data stores. The talk also highlights the use of Prisma for caching data and the considerations for edge migration. Additionally, it mentions the caching strategy with SWR and the availability of edge solutions for caching.
La Nueva Frontera: Comercio Electrónico en el Edge
Remix Conf Europe 2022Remix Conf Europe 2022
19 min
La Nueva Frontera: Comercio Electrónico en el Edge
Today's Talk discusses the new frontier of e-commerce at the edge, focusing on headless commerce and the benefits it offers. The edge, an intermediate server, can improve website loading by rendering HTML on the server and reducing latency. Venger, an open-source headless e-commerce framework, is introduced as a solution to cache API responses at the edge and improve performance. The Venger online shop demonstrates excellent performance, highlighting the benefits of headless and edge computing in e-commerce.

Workshops on related topic

Revelando la Salsa Secreta de Next.js en el Edge
React Summit 2024React Summit 2024
48 min
Revelando la Salsa Secreta de Next.js en el Edge
Workshop
Mustafa Azim
Mustafa Azim
Next.js en el Edge con su nueva salsa secreta para una mejor experiencia de usuario y alto rendimiento. Revelaremos la salsa secreta de Next.js y la forma de trabajar para ofrecer la mejor experiencia de usuario en la red Edge y las nuevas características, incluyendo la pre-renderización parcial. Cómo aprovechar el componente del servidor y su alto rendimiento en la red Edge.
Tabla de contenidos:- Introducción a la red Edge- Tiempo de ejecución en el Edge con V8- Casos de uso de las funciones en el Edge- Desplegar un servicio en la red Edge