$30 off During Our Annual Pro Sale. View Details »

Cloud-Gateways mit Symfony

Cloud-Gateways mit Symfony

In modernen Webanwendungen wird die Integration verschiedener Services - externe wie interne - immer wichtiger. Inkonsistente Schnittstellen, unklare Verfügbarkeiten und weitere Probleme sind die Folge. Eine Möglichkeit diese Probleme abzufangen sind Gateway Architektur-Patterns. Für Web- & Mobile Apps sieht ein Gateway wie eine typische API aus, aber bei der Entwicklung gibt es besondere Herausforderungen wenn eine Symfony-Anwendung "zwischen den Stühlen" operiert und sowohl den Frontends Komplexität abnehmen soll aber gleichzeitig flexibel auf die angebundenen Schnittstellen reagieren muss.

Typische Aufgaben sind die Orchestrierung komplexer Abläufe über mehrere Dienste oder das Offloading gemeinsamer Funktionalitäten in einen zentralen Punkt, aber auch die Harmonisierung von Routing und Daten spielen eine wichtige Rolle.

In meinem Talk gehe ich kurz auf typische Gateway-Konzepte ein, um dann zu zeigen ob und wann PHP & Symfony sich für die Umsetzung eignen. Anschließend gucken wir uns gemeinsam einige der besonderen Herausforderungen an, die eine Anwendung hat, die zwischen Clients und anderen APIs vermittelt. Der Fokus liegt dabei auf typische Anforderungen an ein Gateway: Schnelle Antwortzeiten & schnelle Reaktion auf angepasste Services.

Ziel des Talks ist es, zu vermitteln welche typischen Herangehensweisen an APIs in Symfony, für Gateways weniger geeignet sind.

Denis Brumann

June 20, 2023
Tweet

More Decks by Denis Brumann

Other Decks in Programming

Transcript

  1. Cloud-Gateways mit Symfony
    Denis Brumann

    View Slide

  2. Cloud Architecture Patterns

    View Slide

  3. Orchestration Anti-Corruption Layer Ambassador
    Gateway Aggregation Gateway Of
    fl
    oading Gateway Routing

    View Slide

  4. Was ist eine Gateway-App?

    View Slide

  5. Acme E-Commerce
    Acme Storefront
    Payment
    Address


    Veri
    fi
    cation
    Customer

    Support
    Marketing
    PIM
    ERP
    CRM
    Logistics
    Frontend

    View Slide

  6. Address


    Veri
    fi
    cation
    Payment
    Customer

    Support
    Frontend
    PIM
    ERP
    CRM
    Logistics
    Marketing
    Gateway
    + Acme


    Storefront

    View Slide

  7. Acme


    Storefront


    Monolith
    Acme E-Commerce
    Gateway

    View Slide

  8. Cloud Native Gateways

    View Slide

  9. View Slide

  10. Cloud Native App
    Kubernetes
    schlüsselfertig
    standard-basiert
    Tiefere Integration möglich
    “Start where you are”
    Hybrid (App + Gateway)
    Features

    View Slide

  11. Vom Monolith zum Cloud Gateway

    View Slide

  12. Orchestrator

    View Slide

  13. Gateway Of
    fl
    oading

    View Slide

  14. Gateway Routing

    View Slide

  15. Migrationsstrategien

    View Slide

  16. View Slide

  17. Acme E-Commerce
    Monolith
    Gateway Domain Logic

    View Slide

  18. Mögliche Stolperfallen

    View Slide

  19. Gateway delegiert per

    HTTP-Client/SDK und hat

    kaum eigene Persistenz?
    Gateway-Aggregation


    erfordert Mapping

    View Slide

  20. JSON

    (Request)
    Array/DTO
    Schema Validation
    Entity/Model
    Input Validation Domain Validation

    View Slide

  21. JSON

    (Request)
    Array/DTO
    Schema Validation
    Entity/Model
    Input Validation Domain Validation
    Serializer + Validator ?

    View Slide

  22. View Slide

  23. JSON

    (Request)
    Array/DTO Entity/Model
    Schema + Input


    Validation
    Domain Validation

    View Slide

  24. Schema Validation

    View Slide

  25. Gateway

    View Slide

  26. Gateway

    View Slide

  27. Gateway

    View Slide

  28. Wie viel Kontrolle über

    angeschlossene APIs?
    Was passiert, wenn die API

    einen neuen Case anbietet?

    View Slide

  29. Zusammenfassung

    View Slide

  30. Cloud Native App
    Kubernetes
    schlüsselfertig
    standard-basiert
    Tiefere Integration möglich
    “Start where you are”
    Hybrid (App + Gateway)
    Features

    View Slide

  31. View Slide

  32. Gateway Aggregation

    View Slide

  33. Frontend
    PIM
    Logistics
    Gateway
    Product Info
    Expected Delivery Dates

    View Slide

  34. View Slide

  35. Gateway Of
    fl
    oading

    View Slide

  36. Frontend Gateway
    Address


    Veri
    fi
    cation
    Payment
    Customer

    Support
    PIM
    ERP
    CRM
    Logistics
    Marketing
    AuthN/AuthZ
    Rate Limits

    View Slide

  37. View Slide

  38. Gateway Routing

    View Slide

  39. Frontend Gateway
    Address


    Veri
    fi
    cation
    Payment
    Customer

    Support
    PIM
    ERP
    CRM
    Logistics
    Marketing
    /orders/{id}
    warehouse.internal/{id}

    View Slide

  40. View Slide

  41. Orchestration

    View Slide

  42. Frontend Gateway
    Address


    Veri
    fi
    cation
    Payment
    Customer

    Support
    PIM
    ERP
    CRM
    Logistics
    Marketing

    View Slide

  43. View Slide

  44. Anti-Corruption Layer

    View Slide

  45. Gateway
    External

    Service
    Internal Service
    Other Service

    View Slide

  46. View Slide