Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GraphQL, gRPC o REST - ¿Quién gana ese partido?

GraphQL, gRPC o REST - ¿Quién gana ese partido?

El objetivo de esta conferencia es presentar la evolución de estos modelos, características, ventajas y desventajas, compartiendo experiencias de casos reales de Sensedia en proyectos de sus clientes como Natura, Elo credit card, Edenred, entre otras.

Avatar for Rafael Rocha

Rafael Rocha

April 26, 2019
Tweet

More Decks by Rafael Rocha

Other Decks in Technology

Transcript

  1. ¿Quién soy yo? • Lead Solutions Architect en Sensedia •

    Experto en API, Microservicios y desarrollo de software con más de 18 años de experiencia. • Ponente en eventos internacionales como QCON y APIx!!
  2. APIs Reconocimiento en el Mercado Visionary by Esto es lo

    que hacemos Todos los años organizamos el API Experience 2o más grande evento con enfoque en API en el mundo 1 100 Clientes Enterprise + Presencia en LatAm y Europa SERVICIOS DE CONSULTORIA FULL LIFECYCLE API MANAGEMENT PLATFORM Strong Performer Best in Current Offering API Strategy and Service Providers 2019
  3. La anatomía de una API SERVICIO API JSON XML Políticas

    de Seguridad y Acceso estándar de Mensaje Protocolo de Exposición Reglas de Negocios y Manejo de Datos Modelo Arquitectural HTTP Políticas de transformación y conexión APP
  4. El estándar de API GATEWAY USER SERVICE JSON XML Políticas

    de Seguridad y Acceso Modelo Arquitectural estándar de Mensaje Protocolo de Exposición Políticas de transformación y conexión PRODUCT SERVICE ORDER SERVICE SOAP/XML REST/ JSON DB CONNECTOR Monitoreo y Optimización REST/ JSON gRPC GraphQL ¡Punto único de entrada y observación! SERVERLESS APP MOBILE APP WEB APP STANDALONE APP
  5. Los 3 tipos de APIs #1 Experience APIs • Uso

    en Front-End APPs y experiencias digitales • Menor tiempo de transferencia de datos • Menor tiempo de respuesta • Uso en conjunto con estándar BFF • Menos peticiones para renderización de una pantalla • Nivel mayor de monitoreo
  6. Los 3 tipos de APIs #2 Open APIs • Uso

    en integración con socios y para innovación abierta • Uso más fácil y siguiendo estándares más conocidos • Reuso de APIs • Documentación detallada • Nivel mayor de seguridad • Nivel mayor de gobernanza
  7. Los 3 tipos de APIs #3 Internal APIs • Comunicación

    entre microservicios y integración internas • Compatibilidad con la arquitectura de eventos o arquitectura reactiva • Mejor performance • Mayor escalabilid • Mayor nivel de control y monitoreo
  8. Las Arquitecturas y sus principales diferencias REST GraphQL gRPC •

    Arquitectura muy conocida y popular • Comunicación sincrona sólo en protocolo HTTP • Diseño totalmente basado en HTTP (Status, Methods y URI) • Usa multiplos estándares de especificación (OpenAPI, RAML, etc) • Estándar de tramas es JSON • Arquitectura poco conocida • Comunicación asincrona en protocolo HTTP/2 • Diseño basado en cambio de mensajes • Usa como estándar de especificación protobuf (IDL) • Estándar de tramas es serializado (protobuf) • Arquitectura que está ganando popularidad • Comunicación sincrona/asincrona en multiples protocolos como HTTP, AMQP, MQTT. • Diseño basado en cambio de mensajes • Usa como estándar de especificación Schema Definition (IDL) • Estándar de tramas es JSON
  9. REST Client REST Server GraphQL Client GraphQL Server gRPC Client

    gRPC Server function getAlbum(id); return <Serialized> Album; Las Arquitecturas y sus principales diferencias
  10. Capacidad / Arquitectura REST GraphQL gRPC Trama comprimida 1: gzip

    2: gzip + solo campos requeridos 3: binario Peticiones asincronas 0: HTTP 2: requiere AMQP 3: HTTP/2 Menos peticiones 1: necesita crear una Composite API 3 : solo busca lo que se especifica en query) 2: escriba su función estándar de mercado 3: (muchas herramientas y estándars) 1: uso experimental 1: uso experimental Reuso 3: basada en dominios de negocios 1: función especifica 1: función especifica Compatibilidad con la arquitectura de eventos o reactiva 1: peticiones sincronas 2: sintaxis de mutation y peticiones asincronas 3: llamadas asincrónicas y flexibilidad de sintaxis Parser de trama optimizada 1: serialización JSON 1: serialización JSON 3: serialización binaria SCORE (Ejemplo) 10 12 16 ¡Use una matrix de elegibilidad! ESCALA: 0 - no se aplica; 1- poco aplicable; 2 - medio aplicable; 3: muy aplicable
  11. • Uso en Front-End APPs y experiencias digitales • Menor

    tiempo de transferencia de datos → trama comprimida • Menor tiempo de respuesta → latencia reducida • Uso en conjunto con estándar BFF • Menos peticiones para renderización de una pantalla • Nivel mayor de monitoreo (provido por un APIM) Experience APIs | ¿Qué recomendamos? Capacidad / Arquitectura REST GraphQL gRPC Trama comprimida 1: gzip 2: gzip + solo campos requeridos 3: binario Peticiones asincronas 0: HTTP 2: requieres Websocket 0: HTTP/2 Menos peticiones 1: necesita crear una Composite API 3 : solo busca lo que se especifica en query) 2: escriba su función SCORE (Ejemplo) 2 7 5 ESCALA: 0 - non se aplica; 1- poco aplicable; 2 - medio aplicable; 3: muy aplicable
  12. Necesidad Solución Beneficios Caso de uso de GraphQL como arquitectura

    de APIs para Front-End Tener más flexibilidad para que los desarrolladores de Front-End pudieran consumir las APIs Reducir latencia y número de llamadas de las APIs Creación de APIs GraphQL administradas por la plataforma Sensedia Mejora de la experiencia en el uso de los APPs (menor latencia) Agilidad para crear APPs usando APIs más flexibles El backend (servidor) GraphQL fue responsabilidad de ELO pero el desarrollo fue de Sensedia La compañía nacional de tarjetas de crédito de Brasil, procesa más de 1 millón de transacciones por día, lo que representa un 11%. del mercado de tarjetas de pago del país. CASE | Experience APIs
  13. • Uso en integración con socios y para innovación abierta

    • Uso más fácil y siguiendo estándares más conocidos • Reuso de APIs • Documentación detallada • Nivel mayor de seguridad (provido por un APIM) • Nivel mayor de gobernanza (provido por un APIM) Open APIs | ¿Qué recomendamos? Capacidad / Arquitectura REST GraphQL gRPC estándar de mercado 3: (muchas herramientas y estándars) 1: uso experimental 1: uso experimental Reuso 3: basada en dominios de negocios 1: función especifica 1: función especifica SCORE (Ejemplo) 6 2 2 ESCALA: 0 - no se aplica; 1- poco aplicable; 2 - medio aplicable; 3: muy aplicable
  14. Necesidad Solución Beneficios Open APIs en POS Android (Cielo LIO)

    para creación de APPs disponibles en Cielo Store Facilitar que los socios creen aplicaciones para Cielo LIO (POS Android). Proporcionar a los developers mejor experiencia. Disponibilización del Dev Portal de la plataforma de manera customizada (UX optimizada) y con SDKs Agilidad en la construcción de aplicativos por partners con reducción en el tiempo de desarrollo. Nº de aplicativos salió de cero para +200 apps en poco más de 1 año. 6.000 desarrolladores registrados Cielo es la compañía de sistemas de pago más grande de América Latina y una de las más grandes del mundo, cubre aproximadamente el 99% del territorio brasileño y cuenta con más de 2 millones de tiendas que utilizan el POS de Cielo. CASE | Open APIs
  15. Internal APIs | ¿Qué los recomendamos? Capacidad / Arquitectura REST

    GraphQL gRPC Trama comprimida 1: gzip 2: gzip + solo campos requeridos 3: binario Peticiones asincronas 0: HTTP 2: requieres AMQP 3: HTTP/2 Compatibilidad con la arquitectura de eventos o reactiva 1: peticiones sincronas 2: sintaxis de mutation y peticiones asincronas 3: llamadas asincrónicas y flexibilidad de sintaxis Parser de trama optimizada 1: serialización JSON 1: serialización JSON 3: serialización binaria SCORE (Ejemplo) 3 7 12 ESCALA: 0 - non se aplica; 1- poco aplicable; 2 - medio aplicable; 3: muy aplicable • Cerca de microservicios y integración internas • Compatibilidad con la arquitectura de eventos o reactiva • Mejor performance → Parser de trama optimizada • Mayor escalabilidad → Peticiones asíncronas • Nivel mayor de control y monitoreo (provido por un APIM)
  16. Necesidad Solución Benefícios APIs en gRPC para arquitectura de Microservicios

    de Edenred Hacer una comunicación entre microservicios escalable. Mejorar la latencia de la API del front-end. Hacer peticiones asíncronas(non-blocking ) para optimizar recursos de procesos Alcanzó +100 peticiones por segundo El servicio de pago obtuvo beneficio claro de desempeño Edenred ofrece soluciones para beneficios para empleados, flotas y movilidad y pagos corporativos. Ingresos 1.400 millones de euros. 44 millones de usuarios utilizan los servicios de Edenred en más de 40 países. Utilizar HTTP/2 y Serialización de ProtoBuf CASE | Internal APIs
  17. Análisis, Control & Monitoreo Documentación inteligente Integración & Transformación Design

    y Exposición Escalabilidad Legacy ERP Databases Webservices Cloud Gobernanza Open Innovation & Platforms Experiencias Digitales Arquitectura Ágil Integración con Socios FULL LIFECYCLE API MANAGEMENT PLATFORM API Gateway
  18. API Designer | API Publisher APP Developers | Partner Ecosystem

    APP Clients DEV.PORTAL developers.<you>.com API DESIGN & STUDIO MANAGER ADAPTIVE GOVERNANCE Legado Database Webservices ERP Cloud MONETIZATION Policies API ANALYTICS Cache DB Connector Issue Tracker GATEWAY Authorization Server Alerts API Design
  19. Además, también invitamos a todos los amigos de #APIDAYSMAD19 para

    nuestro evento de APIs en São Paulo, #APIX www.apix.com.br/es
  20. 900 Participantes (2019) 3 Tracks Strategy, Tech & Sensedia API

    Specialists 50+ Speakers Traducción Simultánea APIX: 2da más grande conferencia de APIs en el mundo 2019 - Junio 5 y 6 São Paulo, Brazil Principales presentaciones que estuvieron en APIX Español <> Inglés <> Port
  21. A los amigos aquí en #APIDaysMAD19 ➔ Para hacer download

    de los SLIDES DE LA PRESENTACIÓN ➔ Para ganar 2 entradas FREE PASS - APIX 2019 ➔ Para hacer download del poster (A2) API DESIGN REFERENCE GUIDE Entre en sensedia.com/APIDAYSMAD19
  22. linkedin.com/in/ nicholasgimenes ¿Quiere saber más? A su disposición, aquí en

    el evento también están: Alexandre Gomes Nicholas Gimenes linkedin.com/in/ alexandre-gomes-27598814 con posters para distribuir API DESIGN QUICK REFERENCE
  23. Servicios de Consultoria PLAYBOOK ▪ Architecture Maturity Assessment ▪ Lean

    Inception ▪ API Economy workshop ▪ Cookbook API Design & Security Models ▪ 1st running API ▪ API Platform & Dev Portal Setup ▪ API Jumpstart Skills ▪ API Design, Implementation & Deploy, Documentation ▪ Legacy Leverage & Middleware Integration ▪ API Certification & Hands-On Skill Transfer ▪ API Monitoring (SLA’s) & 24x7 API Platform Support ▪ Developers Experience ▪ API Usage Insights & Business Analytics ▪ Continuous Integration, Versioning & API Governance IGNITION STRATEGY SCALE OPERATION