ML
    • Recent
    • Categories
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Microservices - any real world examples?

    Scheduled Pinned Locked Moved IT Discussion
    14 Posts 5 Posters 1.5k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • stacksofplatesS
      stacksofplates
      last edited by

      You can abstract this away even a little further with space based architecture where you have a central db but the services don't talk directly to it. They use in memory database like Ignite, Hazelcast, Aerospike, etc and then the data is replicated back to the central db at some point.

      1 Reply Last reply Reply Quote 1
      • M
        marcinozga @stacksofplates
        last edited by

        @stacksofplates said in Microservices - any real world examples?:

        Bitwarden isn't a microservice based architecture. It's just a service based. If you're using a shared database, it's not a microservice. Microservices each have their own database and then either through your API gateway, service discovery, message broker, etc each service queries the other service for the data it needs.

        That’s a false statement. Microservices can share single database. In perfect world each microservice would have each own, but we’re far from perfect.

        stacksofplatesS 1 Reply Last reply Reply Quote 0
        • stacksofplatesS
          stacksofplates @marcinozga
          last edited by

          @marcinozga said in Microservices - any real world examples?:

          @stacksofplates said in Microservices - any real world examples?:

          Bitwarden isn't a microservice based architecture. It's just a service based. If you're using a shared database, it's not a microservice. Microservices each have their own database and then either through your API gateway, service discovery, message broker, etc each service queries the other service for the data it needs.

          That’s a false statement. Microservices can share single database. In perfect world each microservice would have each own, but we’re far from perfect.

          No it's not. That's what defines it as a microservice. If the services all talk to the same database, it's just a service based architecture.

          M 1 Reply Last reply Reply Quote 0
          • stacksofplatesS
            stacksofplates
            last edited by

            Here's a diagram for each from Mark Richards and Neal Ford.

            Service Based:
            22536a1b-8ddf-44ff-9177-8c45c9c34823-image.png

            Microservices:
            2a897d79-fc8d-4380-918b-8005ed921c32-image.png

            And here's a Tweet from Kelsey on a funny name for service based:

            66497bea-693d-4862-83dc-a6d253b1e1e3-image.png

            There's quite a few architecture designs, and they can be similar but specific things define them, like where they write and get data from. There's a distinction between monoliths as well. There's a normal monolith, and then there's a micro-kernel. Obviously the monolith has everything, but the micro-kernel is still a monolith, but has API hooks for plugins to the monolithic core.

            1 Reply Last reply Reply Quote 2
            • stacksofplatesS
              stacksofplates
              last edited by stacksofplates

              There's kind of a push now to move back towards monoliths (or other more sensible designs). Mainly because of the complexity and performance loss.

              As with anything a ton of places heard microservices were the future, jumped on, and started using it without actually researching. It's good for some use cases, and not for a lot of them.

              1 Reply Last reply Reply Quote 2
              • M
                marcinozga @stacksofplates
                last edited by

                @stacksofplates said in Microservices - any real world examples?:

                @marcinozga said in Microservices - any real world examples?:

                @stacksofplates said in Microservices - any real world examples?:

                Bitwarden isn't a microservice based architecture. It's just a service based. If you're using a shared database, it's not a microservice. Microservices each have their own database and then either through your API gateway, service discovery, message broker, etc each service queries the other service for the data it needs.

                That’s a false statement. Microservices can share single database. In perfect world each microservice would have each own, but we’re far from perfect.

                No it's not. That's what defines it as a microservice. If the services all talk to the same database, it's just a service based architecture.

                No, because there’s really no single definition of microservices.
                https://en.wikipedia.org/wiki/Microservices

                Also https://microservices.io/patterns/data/shared-database.html

                stacksofplatesS scottalanmillerS 2 Replies Last reply Reply Quote 0
                • stacksofplatesS
                  stacksofplates @marcinozga
                  last edited by

                  @marcinozga said in Microservices - any real world examples?:

                  @stacksofplates said in Microservices - any real world examples?:

                  @marcinozga said in Microservices - any real world examples?:

                  @stacksofplates said in Microservices - any real world examples?:

                  Bitwarden isn't a microservice based architecture. It's just a service based. If you're using a shared database, it's not a microservice. Microservices each have their own database and then either through your API gateway, service discovery, message broker, etc each service queries the other service for the data it needs.

                  That’s a false statement. Microservices can share single database. In perfect world each microservice would have each own, but we’re far from perfect.

                  No it's not. That's what defines it as a microservice. If the services all talk to the same database, it's just a service based architecture.

                  No, because there’s really no single definition of microservices.
                  https://en.wikipedia.org/wiki/Microservices

                  Also https://microservices.io/patterns/data/shared-database.html

                  That doesn't really show anything. From that same site:

                  Screenshot_20200919-141528_Chrome.jpg

                  Again, if they aren't loosely coupled, all encompassing services they aren't microservices. Just as wikipedia says, the consensus is they are loosely coupled. If they are tied to a single database they are by definition, not loosely coupled.

                  1 Reply Last reply Reply Quote 0
                  • F
                    flaxking
                    last edited by

                    I wouldn't consider microservices as desirable in a deploy-it-yourself end user situation. Unless you are setting up something you really need to be able to scale, it adds IT overhead. A Docker image is an abstraction, but docker/k8s config files are most just configuration as code, so it's not like it's just deploy and go to use a config file from a third-party on your cluster.

                    However, as we get more open source based images for complete drop-in APIs for developers to use instead of building things from scratch, we'll probably see more of it.

                    1 Reply Last reply Reply Quote 0
                    • 1
                      1337
                      last edited by 1337

                      Microservice architecture was really a means to an end and not the goal itself.

                      When you have large teams of developers, you simply have to start divide things up into smaller chunks - one way or the other. If you think about the practical problems of trying to maintain and develop a big piece of software while it's running 24/7 with zero interruptions, it's hard to imagine any other way of doing it.

                      If you don't have those constraints, then using that type of architecture doesn't make as much sense.

                      scottalanmillerS 1 Reply Last reply Reply Quote 1
                      • scottalanmillerS
                        scottalanmiller @marcinozga
                        last edited by

                        @marcinozga said in Microservices - any real world examples?:

                        Microservices have been all the hype in the past few years, but has anyone actually seen any real applications that use microservices architecture? I'm not talking about Amazon, Netflix or Uber, I'm interested in something you can deploy yourself.

                        Modern software techniques are rarely things you "buy and deploy", they are for your engineering teams to utilize in your designs. Since it is an "under the hood" artefact in software, even if you were deploying it, you wouldn't generally know.

                        1 Reply Last reply Reply Quote 0
                        • scottalanmillerS
                          scottalanmiller @1337
                          last edited by

                          @Pete-S said in Microservices - any real world examples?:

                          Microservice architecture was really a means to an end and not the goal itself.

                          Exactly

                          1 Reply Last reply Reply Quote 0
                          • scottalanmillerS
                            scottalanmiller @marcinozga
                            last edited by

                            @marcinozga said in Microservices - any real world examples?:

                            @stacksofplates said in Microservices - any real world examples?:

                            @marcinozga said in Microservices - any real world examples?:

                            @stacksofplates said in Microservices - any real world examples?:

                            Bitwarden isn't a microservice based architecture. It's just a service based. If you're using a shared database, it's not a microservice. Microservices each have their own database and then either through your API gateway, service discovery, message broker, etc each service queries the other service for the data it needs.

                            That’s a false statement. Microservices can share single database. In perfect world each microservice would have each own, but we’re far from perfect.

                            No it's not. That's what defines it as a microservice. If the services all talk to the same database, it's just a service based architecture.

                            No, because there’s really no single definition of microservices.
                            https://en.wikipedia.org/wiki/Microservices

                            Also https://microservices.io/patterns/data/shared-database.html

                            I'd take Neal Ford's word over Wikipedia 🙂

                            1 Reply Last reply Reply Quote 0
                            • 1 / 1
                            • First post
                              Last post