We need to talk about Microservices... (And how NATS.io can simplify things)

Поділитися
Вставка
  • Опубліковано 1 лип 2024
  • In this video, Jeremy goes addresses the current state of overwhelm when building micro-service architectures, and how a technology like NATS.io can help solve many of the current requirements for microservices within a single piece of infrastructure.
    00:00 - Intro
    01:15 - Rethinking Microservices
    02:44 - Location Transparency
    04:18 - API Gateway
    05:32 - Load Balancing
    07:29 - Service Discovery
    09:36 - Services Demo
    14:19 - Canary Deployments
    17:40 - Logging
    21:03 - Monitoring and Observability
    23:07 - Tracing
    25:22 - Authentication and Authorization
    27:23 - Config management
    29:25 - Data Store
    31:01 - Deployment
    33:00 - Closing Remarks
    NATS Decentralized Auth:
    • How to set up Decentra...
    Don't want to host NATS yourself? Sign up for Synadia Cloud for free: cloud.synadia.com/
    NATS is a connective technology powering modern distributed systems, unifying Cloud, On-Premise, Edge, and IoT.
    Join the NATS Community on Slack: slack.nats.io
    Learn More about NATS at docs.nats.io/
  • Наука та технологія

КОМЕНТАРІ • 49

  • @wayneeseguin
    @wayneeseguin 3 місяці тому +3

    This is absolutely fantastic. I am looking forward to the next episodes. ❤

  • @GabrielPozo
    @GabrielPozo 2 місяці тому +1

    Great video! Thanks for teaching with this video series!

  • @crownstupid
    @crownstupid 3 місяці тому +9

    I'd like to see an example of users being registered and using jwts from the web browser. Like a chat room maybe. Similar to your tutorial on the sketch board but with authentication.

    • @SynadiaCommunications
      @SynadiaCommunications  3 місяці тому +1

      Now that we have something like docs.nats.io/running-a-nats-service/configuration/securing_nats/auth_callout I can see that being a really great video

  • @oyx-sm4bc
    @oyx-sm4bc 2 місяці тому +1

    awesome series! I am a new of nats。As a student from China,nats is my first messages system I come across。I feel fortunate to be able to learn and use this technology.

  • @EKwisnek
    @EKwisnek 3 місяці тому

    Nice one, Jeremy!

  • @JasonMcCallister84
    @JasonMcCallister84 3 місяці тому +2

    This is great, the logging example got me thinking about a better way to handle logs in our system and I passed a Jetstream as io.Writer to the slog and it worked awesome!

    • @dandogamer
      @dandogamer 3 місяці тому

      Gotta love the beauty of the io.Writer interface

    • @gedw99
      @gedw99 3 місяці тому

      true. Piping like Unix style@@dandogamer

    • @SynadiaCommunications
      @SynadiaCommunications  3 місяці тому

      You aren't the first! We've had a couple Synadians write a slog interface for NATS :)

  • @MarkusK-zi6dr
    @MarkusK-zi6dr 3 місяці тому

    Thanks for that. I love it.

    • @SynadiaCommunications
      @SynadiaCommunications  3 місяці тому

      It's pretty cool stuff. Now if we can convince everyone to ditch their complicated setups....

  • @gedw99
    @gedw99 3 місяці тому

    looking forward to NEX !!!! Seems to be part of the Derek masterplan :)

    • @SynadiaCommunications
      @SynadiaCommunications  3 місяці тому

      First we rethink connectivity, then data, and workloads are the last bit of the triad :)

  • @tikiatua
    @tikiatua 3 місяці тому +1

    Thank you for another awesome video. Do you have any recommendations on how to handle input validation if one is to use nats as the API-gateway? Do you colocate validation and further processing in a micro service or would you first validate the input, then publish another message wit the validated input?

    • @SynadiaCommunications
      @SynadiaCommunications  3 місяці тому

      So that's definitely one way to do it. You can also have a service that can forward a message and it's reply subject to execute some form of validation.
      When the validation service successfully validates the request, it can send a new message to the destination service, and set the REPLY subject to the original reply subject of the request. That way the requestor doesn't need to have knowledge of the validation service and the request/reply functionality works as it always has

  • @stevexuereb
    @stevexuereb 3 місяці тому

    Thank you for this amazing content!
    What presentation tool do you use?

  • @khanakia
    @khanakia 3 місяці тому +1

    It was helpful

  • @JulienBis
    @JulienBis 3 місяці тому

    The part "Deployment with NEX" is definitely super interesting, especially with canary release. I would love to see how much work is required to achieve that :D

    • @JulienBis
      @JulienBis 3 місяці тому

      Great overview by the way, much appreciated.

    • @SynadiaCommunications
      @SynadiaCommunications  3 місяці тому +1

      NEX is still in prerelease and in active development. I've played with it though and the general concept is pretty easy to get up and running. Simply run a node, have it connect to a NATS server and now you can start deploying apps to it via the CLI.
      When it's a bit more mature I'll start covering it in more videos

  • @mzck5y-totoro
    @mzck5y-totoro 3 місяці тому

    Great presentation. I love NATS, we use it as event broker in of our architectures. one question is this microservices framework implemented in the C# NATS client?

    • @SynadiaCommunications
      @SynadiaCommunications  3 місяці тому

      It sure is!: github.com/nats-io/nats.net/tree/main/src/NATS.Client/Service

  • @suikast420
    @suikast420 3 місяці тому

    33:59 a session about subject mapping coul be very cool- Espacially how can I do deterministic partitioning programatically with jeststream configuration ?

    • @SynadiaCommunications
      @SynadiaCommunications  3 місяці тому +1

      Already planning on doing a full subject mapping video soon. Including all the new goodies in jetstream and subject mapping

    • @suikast420
      @suikast420 3 місяці тому

      @@SynadiaCommunications I really appreciate it

  • @MarkusK-zi6dr
    @MarkusK-zi6dr 2 місяці тому

    Could you elaborate on implementing an API Gateway using exclusively a NATS cluster, including how authentication and authorization are handled? Additionally, how would you recommend setting up the NATS cluster to interact securely as an isolated cluster with a separate microservices cluster?

    • @SynadiaCommunications
      @SynadiaCommunications  Місяць тому +1

      Authn and authz are definitely their own video topics that I’ll cover more in the future.
      For your second question. Look at NATS leaf nodes

  • @selvaKumaresra
    @selvaKumaresra 5 днів тому

    is it fully opensource or has strings attched to Synadia cloud? those that only works with Synadia?

    • @SynadiaCommunications
      @SynadiaCommunications  4 дні тому

      NATS is fully open source, not open core. Synadia cloud is a hosted version of NATS with some extra tooling around monitoring and management. So no strings attached here

  • @ritsaerthornstra7929
    @ritsaerthornstra7929 3 місяці тому

    Is the code you demoed in this episode available online? I'd love to browse through the code for ideas. 😁

    • @SynadiaCommunications
      @SynadiaCommunications  3 місяці тому +1

      I got you! github.com/synadia-io/rethink_connectivity/tree/main/17-microservices-architectures

  • @suikast420
    @suikast420 3 місяці тому

    I am usiig nats more and more and replace kafka with it. But one feature i am missing. The transactional write and avoid the consumers read uncommited messages what kafka have. this can significantly improve the performacne, The akternative is push events sync one by one.

    • @hendrikmartina3552
      @hendrikmartina3552 3 місяці тому

      I think they have that feature with Jetstream

    • @SynadiaCommunications
      @SynadiaCommunications  3 місяці тому +2

      Yeah this is something we are considering

    • @suikast420
      @suikast420 3 місяці тому

      @@hendrikmartina3552 Nope. They have not

    • @suikast420
      @suikast420 3 місяці тому

      @@SynadiaCommunications Is that scheduled for a release or only in draft ?

  • @appology9102
    @appology9102 2 місяці тому +1

    When IPO? 😅

  • @meyou118
    @meyou118 3 місяці тому

    pwning the backend... ;)

  • @glebbondarenko67
    @glebbondarenko67 2 дні тому

    How reliable is NATS? looks like a single point of failure