In a software org at a large tech company that has several services across small teams with various functionality and UIs. Have gotten direction from up above and been assigned the task of being responsible for concentrating all of the different services under a single web service and UI. Think AWS management console for the various AWS tools.

These services are all webservices with different communication protocols (REST, gRPC, etc) and different tech stacks internally, since they were all bootstrapped without a technical playbook in mind. What are some architectural or organizational patterns that I should look into in order to make this happen?

  • v_krishna
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Are they all kubernetes native? I’ve had decent success using a service mesh layer (like istio) to help create a unified service “proxy” layer of sorts, making it simpler for heterogeneous services to all work in concert. I’ve also taken the route of building an actual proxy service for this (esp in the case of fronting gRPC services to a single gateway HTTP ingress) but find that becomes tightly coupled and ends up holding a lot more business logic than routing/request standardization (in part because once you have a full on service for your proxy why not?). Adding this in the mesh keeps it minimal while crafting an experience where your FE all hits some single ingress.yourdomain.com load balancer -> istio ingress, and meanwhile teams can have all the underlying services they want wired up through some prefix matching rules.

  • PriorProject@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    I would look at the patterns used by successful open source projects in this space, or actually use those projects directly.

    https://github.com/Kong/kong works in this space, but there’s like a million of them. I’m not super familiar with the space, but I’d look through a list like this: https://dev.to/apisix/how-to-choose-the-right-api-gateway-3f9i

    And decide if you’re open to a commercial solution, want to directly eval open source options, or if you think you’re genuinely resourced to create something bespoke that’s better and just want want to study the OSS options for inspiration. Nothing in this question makes me think you’ll arrive at a better result through custom code than you would through adopting a mature API gateway, but who knows.