Transformando GraphQL: Infraestructura como código para desarrolladores front-end

Rate this content
Bookmark

En esta charla mostraré cómo podemos utilizar una combinación de GraphQL SDL junto con un nuevo DSL (GraphQL Transform) creado por el equipo de Amplify para construir una aplicación en la nube de pila completa directamente desde su esquema de GraphQL. Usando este DSL de GraphQL, recorreremos cómo modelar una base de datos, reglas de autorización, relaciones y patrones de acceso personalizados. Veremos cómo prototipar rápidamente una aplicación de ejemplo y ver algunas demostraciones, incluida una aplicación de votación capaz de manejar más de 100,000 operaciones por segundo.

FAQ

La transformación de GraphQL es un proceso que utiliza directivas específicas para generar automáticamente una infraestructura como código, operaciones CRUD y suscripciones para tipos base en una API de GraphQL. Esto facilita la creación y manejo de APIs robustas sin necesidad de codificar manualmente toda la estructura y lógica subyacente.

AWS Amplify es un conjunto de herramientas y SDK que ayuda a los desarrolladores a crear y desplegar aplicaciones móviles y web rápidamente. Ofrece servicios como hosting con CDN global, una CLI para manejar servicios en la nube, y clientes de biblioteca que interactúan con estos servicios, facilitando a los desarrolladores frontend construir aplicaciones de pila completa.

El modelado de datos en AWS Amplify se realiza definiendo esquemas de GraphQL que incluyen tipos, mutaciones, consultas y suscripciones. Estos esquemas se pueden decorar con directivas como @model, @auth, y @connection para generar automáticamente la infraestructura necesaria, como bases de datos y resolutores, optimizando el desarrollo y mantenimiento de la aplicación.

Una API de GraphQL es una interfaz que permite la consulta y manipulación de datos a través de un esquema que define tipos y operaciones. En AWS Amplify, se implementa definiendo un esquema de GraphQL y utilizando la CLI para generar y desplegar la infraestructura necesaria, lo que incluye la configuración de autorización, autenticación y otras reglas de negocio.

En AWS Amplify, se puede configurar la autenticación para una API de GraphQL utilizando Amazon Cognito User Pools para gestionar usuarios y sesiones, o una API key para un acceso público. Además, se pueden establecer reglas de acceso más granulares con la directiva @auth en el esquema de GraphQL.

La biblioteca de transformación de GraphQL en AWS Amplify permite a los desarrolladores simplificar y automatizar la creación de una API de GraphQL robusta. Facilita la generación de operaciones CRUD, suscripciones y resolutores, y maneja aspectos complejos como la autorización y relaciones entre datos, lo que reduce el tiempo de desarrollo y mejora la calidad del código.

Nader Dabit
Nader Dabit
27 min
18 Jun, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Esta charla trata sobre la construcción de aplicaciones en la nube de pila completa como desarrollador front-end utilizando GraphQL y la biblioteca GraphQL Transform. Cubre las tres partes principales de AWS Amplify: hosting, CLI y bibliotecas de cliente. La biblioteca GraphQL Transform simplifica la construcción de una API de GraphQL al manejar la creación de esquemas, la interacción con la base de datos y el mapeo de resolutores. Demuestra cómo utilizar transformaciones de GraphQL para construir una API de GraphQL con características como reglas de autorización, relaciones y simulación local. También se discuten las consideraciones para el uso de servicios administrados y el futuro de la infraestructura como código con Amplify y otras herramientas.

1. Introducción a la Transformación de GraphQL

Short description:

Esta charla trata sobre cómo construir aplicaciones en la nube de pila completa como desarrollador front-end. Se divide en cuatro partes. Cubriremos el modelado de datos utilizando GraphQL y la biblioteca de transformación de GraphQL, haremos una demostración en vivo de prototipado rápido y mostraremos una aplicación real construida con transformaciones de GraphQL.

Bueno. Hola a todos. Bienvenidos a mi charla. Esto es la transformación de GraphQL, infraestructura de pila completa como código. Y esta charla trata sobre cómo construir aplicaciones en la nube de pila completa como desarrollador front-end. Se divide en cuatro partes. Vamos a hacer una introducción a algunos de los contenidos sobre los que voy a hablar. Vamos a recorrer cómo hacer el modelado de datos utilizando GraphQL y la biblioteca de transformación de GraphQL. Luego haremos una demostración en vivo de prototipado rápido. Y luego les mostraré un ejemplo en vivo de una de las aplicaciones que he construido utilizando estas transformaciones de GraphQL.

2. Introducción a AWS Amplify y Full Stack Cloud

Short description:

Esta parte presenta al ponente, Nader David, quien es un ingeniero de software y autor. Trabaja como defensor del desarrollador en el equipo de AWS Amplify, enfocado en construir herramientas y SDK de nube de pila completa. La charla cubrirá las tres partes principales de Amplify: hosting, CLI y bibliotecas de cliente. El flujo de trabajo de la CLI implica inicializar un proyecto, agregar o actualizar características y implementar actualizaciones. Amplify proporciona infraestructura en la nube e infraestructura local como código.

Entonces mi nombre es Nader David. Soy un ingeniero de software. También soy autor y he hecho muchas cosas de código abierto y otras cosas. Y ahora mismo trabajo como defensor del desarrollador en el equipo de AWS Amplify. El último libro que he publicado se llama Full Stack Serverless. Y está muy relacionado con algunas de las cosas de las que estamos hablando hoy. Está disponible en O'Reilly. Así que si estás interesado en algunas de las cosas de las que estoy hablando, definitivamente recomendaría echar un vistazo a ese libro.

El equipo en el que trabajo, mencioné antes, es el equipo de AWS Amplify. Estamos enfocados en construir herramientas y SDK de nube de pila completa. Y uno de nuestros principales enfoques es atraer a nuevos desarrolladores al ecosistema de la nube, desarrolladores front-end y también mejorar la experiencia de desarrollo de muchas de las cosas que AWS tradicionalmente había hecho de manera diferente. Algunas de las diferentes infraestructuras que a la gente le gustaría usar son las mismas cosas que están utilizando estas grandes empresas a gran escala. Netflix, Airbnb e incluso Amazon están utilizando muchos de los servicios en los que nuestro equipo está tratando de construir abstracciones más fáciles de usar. Y eso es lo que está en el núcleo de algunas de las cosas de las que voy a hablar con la biblioteca de transformación de GraphQL.

Cuando digo herramientas y SDK de nube de pila completa, ¿a qué me refiero exactamente? Bueno, me gustaría comenzar desglosando Amplify y hablando de qué es Amplify. Amplify está compuesto principalmente por tres partes. Tenemos el hosting que tiene un hosting de sitio estático con una CDN global, muy fácil de configurar y ejecutar, y despliegues basados en Git y CI/CD basados en proyectos de Git. También tenemos una CLI que te permite, desde tu aplicación front-end, crear, actualizar y modificar servicios en la nube utilizando un enfoque basado en categorías que veremos en un momento. Y luego, después de crear los servicios a través de la CLI, tenemos un cliente que es, en realidad tenemos diferentes clientes para iOS, Web, React Native, y también tenemos componentes específicos del framework dentro de estas bibliotecas de cliente que te permiten interactuar con esos servicios después de haberlos creado.

Entonces, ¿cómo es el flujo de trabajo de la CLI? Es algo así. Inicializas un nuevo proyecto ejecutando Amplify Init. Agregas una nueva característica o actualizas una característica ejecutando Amplify add o Amplify update. Y cuando estás listo para implementar cualquier actualización, simplemente ejecutas Amplify push. Y luego, después de eso, puedes hacer actualizaciones adicionales ejecutando Amplify update. Y luego, después de haber creado estos servicios, importas los componentes o las diferentes bibliotecas de AWS Amplify. Así que en este ejemplo, tenemos storage, y luego puedes hacer llamadas a tu servicio de almacenamiento o tu servicio de API o cualquier servicio con el que estés trabajando. Entonces, realmente de lo que estamos hablando aquí cuando hablamos de nube de pila completa es que estás utilizando esta CLI y obtienes dos tipos diferentes de, supongo, artefactos de eso. Obtienes la infraestructura en la nube y luego obtienes la infraestructura local como código. Y también obtienes otro código local para cosas como flujos de autenticación y diferentes componentes de interfaz de usuario que también incluimos en nuestras bibliotecas de cliente. Pero realmente la parte principal de la que estamos hablando hoy es la infraestructura en la nube y la parte de infraestructura como código.

QnA

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

Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
Remix es un marco de trabajo web que te ofrece el modelo mental simple de una aplicación de múltiples páginas (MPA) pero el poder y las capacidades de una aplicación de una sola página (SPA). Uno de los grandes desafíos de las SPA es la gestión de la red que resulta en una gran cantidad de indirecciones y código defectuoso. Esto es especialmente notable en el estado de la aplicación que Remix elimina por completo, pero también es un problema en los componentes individuales que se comunican con un punto final de backend de un solo propósito (como una búsqueda de combobox, por ejemplo).
En esta charla, Kent demostrará cómo Remix te permite construir componentes de interfaz de usuario complejos que están conectados a un backend de la manera más simple y poderosa que hayas visto. Dejándote tiempo para relajarte con tu familia o lo que sea que hagas para divertirte.
RedwoodJS: El marco de aplicación React Full-Stack de tus sueños
React Summit Remote Edition 2021React Summit Remote Edition 2021
43 min
RedwoodJS: El marco de aplicación React Full-Stack de tus sueños
Top Content
¿Cansado de reconstruir tu marco de trabajo web basado en React desde cero para cada nuevo proyecto? ¡Estás de suerte! RedwoodJS es un marco de aplicación web de pila completa (piensa en Rails pero para desarrolladores JS/TS) basado en React, Apollo GraphQL y Prisma 2. Nosotros hacemos el trabajo de integración pesada para que tú no tengas que hacerlo. También integramos de manera hermosa Jest y Storybook, y ofrecemos soluciones incorporadas para la obtención de datos declarativa, autenticación, pre-renderizado, registro, a11y y mucho más. Despliega en Netlify, Vercel, o vuelve a la vieja escuela en AWS o metal desnudo. En esta charla aprenderás sobre la arquitectura de RedwoodJS, verás las características principales en acción, y te irás con una sensación de asombro y admiración en tu corazón.
AWS Lambda bajo el capó
Node Congress 2023Node Congress 2023
22 min
AWS Lambda bajo el capó
Top Content
En esta charla explico cómo funciona el servicio AWS Lambda, explicando la arquitectura, cómo escala y cómo un desarrollador debería pensar cuando diseñan su software utilizando funciones Lambda
Patrones de Arquitectura Remix
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Patrones de Arquitectura Remix
Top Content
Remix ofrece una increíble flexibilidad y puede ser desplegado en cualquier lugar donde se ejecute JavaScript. Pero, ¿cómo encaja Remix en el panorama de aplicaciones más amplio de una organización? Remix proporciona una gran utilidad, pero ¿cómo aprovecharla al máximo? ¿Qué cosas deberían manejarse dentro de Remix y qué cosas serían mejor hacer en otro lugar? ¿Deberíamos usar el adaptador express para agregar un servidor WebSocket o debería ser un microservicio independiente? ¿Cómo integrarán las organizaciones empresariales Remix en sus pilas actuales? ¡Hablemos de patrones de arquitectura! En esta charla, quiero compartir mis pensamientos sobre cómo integrar mejor Remix en una pila (empresarial) más grande.
Optimización del rendimiento de AWS Lambda
Node Congress 2024Node Congress 2024
25 min
Optimización del rendimiento de AWS Lambda
¿Alguna vez te has preguntado cómo obtener lo mejor de tus funciones Lambda?Si es así, esta charla revelará los entresijos de uno de los servicios sin servidor más populares y te brindará una guía paso a paso para optimizar tus funciones.En esta sesión, te guiaré a través de la mentalidad para reducir el tiempo de ejecución de tus funciones Lambda. En el ejemplo presentado, pude reducir el tiempo de ejecución en un 95% para el inicio en caliente y más del 50% en los inicios en frío, mejorando también las transacciones por segundo atendidas con esta API.
Desmitificar la DX para funciones Lambda
DevOps.js Conf 2024DevOps.js Conf 2024
30 min
Desmitificar la DX para funciones Lambda
En esta sesión, comparto contigo cómo AWS CDK y AWS Toolkit pueden simplificar la experiencia del desarrollador para ejecutar cargas de trabajo sin servidor en la nubeUna sesión sin diapositivas, solo un IDE y una CLI para implementar una API en la nube, actualizarla rápidamente y recuperar registros sin salir de tu IDE favorito!

Workshops on related topic

Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
JSNation 2023JSNation 2023
174 min
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
Top Content
Featured WorkshopFree
Alba Silvente Fuentes
Roberto Butti
2 authors
Esta masterclass de SvelteKit explora la integración de servicios de terceros, como Storyblok, en un proyecto SvelteKit. Los participantes aprenderán cómo crear un proyecto SvelteKit, aprovechar los componentes de Svelte y conectarse a APIs externas. La masterclass cubre conceptos importantes incluyendo SSR, CSR, generación de sitios estáticos y despliegue de la aplicación usando adaptadores. Al final de la masterclass, los asistentes tendrán una sólida comprensión de la construcción de aplicaciones SvelteKit con integraciones de API y estarán preparados para el despliegue.
Construye y Despliega un Backend con Fastify y Platformatic
JSNation 2023JSNation 2023
104 min
Construye y Despliega un Backend con Fastify y Platformatic
WorkshopFree
Matteo Collina
Matteo Collina
Platformatic te permite desarrollar rápidamente APIs GraphQL y REST con un esfuerzo mínimo. La mejor parte es que también te permite aprovechar todo el potencial de Node.js y Fastify cuando lo necesites. Puedes personalizar completamente una aplicación de Platformatic escribiendo tus propias características y complementos adicionales. En el masterclass, cubriremos tanto nuestros módulos de código abierto como nuestra oferta en la nube:- Platformatic OSS (open-source software) — Herramientas y bibliotecas para construir rápidamente aplicaciones robustas con Node.js (https://oss.platformatic.dev/).- Platformatic Cloud (actualmente en beta) — Nuestra plataforma de alojamiento que incluye características como aplicaciones de vista previa, métricas integradas e integración con tu flujo de Git (https://platformatic.dev/).
En este masterclass aprenderás cómo desarrollar APIs con Fastify y desplegarlas en la nube de Platformatic.
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.
Masterclass de GraphQL en la Nube con Neo4j Aura, Next.js y Vercel
GraphQL Galaxy 2021GraphQL Galaxy 2021
161 min
Masterclass de GraphQL en la Nube con Neo4j Aura, Next.js y Vercel
WorkshopFree
William Lyon
William Lyon
En este masterclass construiremos y desplegaremos una aplicación de GraphQL de pila completa utilizando Next.js, Neo4j y Vercel. Utilizando un grafo de conocimiento de artículos de noticias, primero construiremos una API de GraphQL utilizando las rutas de API de Next.js y la Biblioteca de GraphQL de Neo4j. A continuación, nos enfocaremos en el front-end, explorando cómo utilizar GraphQL para la obtención de datos con una aplicación de Next.js. Por último, exploraremos cómo agregar personalización y recomendación de contenido en nuestra API de GraphQL para servir artículos relevantes a nuestros usuarios, luego desplegaremos nuestra aplicación en la nube utilizando Vercel y Neo4j Aura.

Tabla de contenidos:
- Visión general de Next.js y cómo empezar con Next.js
- Rutas de API con Next.js y construcción de una API de GraphQL
- Utilizando la Biblioteca de GraphQL de Neo4j
- Trabajando con Apollo Client y obtención de datos de GraphQL en Next.js
- Despliegue con Vercel y Neo4j Aura
Construyendo Aplicaciones Serverless en AWS con TypeScript
Node Congress 2021Node Congress 2021
245 min
Construyendo Aplicaciones Serverless en AWS con TypeScript
Workshop
Slobodan Stojanović
Slobodan Stojanović
Este masterclass te enseña los conceptos básicos del desarrollo de aplicaciones serverless con TypeScript. Comenzaremos con una función Lambda simple, configuraremos el proyecto y la infraestructura como código (AWS CDK) y aprenderemos cómo organizar, probar y depurar una aplicación serverless más compleja.
Tabla de contenidos:        - Cómo configurar un proyecto serverless con TypeScript y CDK        - Cómo escribir una función Lambda testeable con arquitectura hexagonal        - Cómo conectar una función a una tabla DynamoDB        - Cómo crear una API serverless        - Cómo depurar y probar una función serverless        - Cómo organizar y hacer crecer una aplicación serverless


Materiales mencionados en el masterclass:
https://excalidraw.com/#room=57b84e0df9bdb7ea5675,HYgVepLIpfxrK4EQNclQ9w
Blog de DynamoDB de Alex DeBrie: https://www.dynamodbguide.com/
Excelente libro para DynamoDB: https://www.dynamodbbook.com/
https://slobodan.me/workshops/nodecongress/prerequisites.html
Construyendo aplicaciones GraphQL de pila completa con Hasura y Vue 3
Vue.js London Live 2021Vue.js London Live 2021
115 min
Construyendo aplicaciones GraphQL de pila completa con Hasura y Vue 3
WorkshopFree
Gavin Ray
Gavin Ray
El ecosistema frontend avanza a un ritmo frenético. Este masterclass tiene como objetivo equipar a los participantes con una comprensión del estado del ecosistema Vue 3 + GraphQL, explorando ese ecosistema - prácticamente y a través del desarrollo de aplicaciones de pila completa.

Tabla de contenidos
- Los participantes utilizarán Hasura para construir una API GraphQL en tiempo real respaldada por Postgres. Juntos recorreremos su consumo desde un frontend y haremos que el frontend sea reactivo, suscrito a los cambios de datos.
- Además, analizaremos las herramientas comúnmente utilizadas en el stack Vue GraphQL (como Apollo Client y Urql), discutiremos algunas alternativas menos conocidas y abordaremos los problemas frecuentemente encontrados al comenzar.
- Se describirán varios patrones para gestionar datos con estado y sus compensaciones durante el masterclass, y se mostrará una implementación básica para cada patrón discutido.
Nivel del masterclass

NOTA: No se requiere experiencia previa con GraphQL, pero puede ser útil para ayudar a la comprensión. Se cubrirán los fundamentos.