back to article Microservices are not the same thing as components

Mention cloud, mention DevOps and it won’t be long before microservices enters the discussion. But what is, or are, microservices? The name implies something small – but what? Is it a part of a bigger thing or a piece of discrete functionality? And how are microservices different to application components? And why should we …

  1. Camilla Smythe Silver badge

    Stay with me please.

    At this point I dropped straight to the comments. Perhaps someone else would care to summarise because I got a bad feeling that the article was descending into Microrrhea2.0. Was there a Microrrhea1.0?

    1. Warm Braw Silver badge

      Re: Stay with me please.

      tldr: Man rediscovers the subroutine.

    2. Anonymous Coward
      Coat

      Re: Stay with me please.

      RE: Camilla Smythe

      Same here. Got about half way and gave up.

      Felt like marketing BS for rental plan software components.

  2. AMBxx Silver badge
    FAIL

    minus the typical reliance on Enterprise Service Bus

    Does this mean they're unreliable or just insecure?

    Love the bit about updating many times per day - test much?

  3. Anonymous Coward
    Anonymous Coward

    'Architects' can bitch with each other about terminology until the cows come home

    Me, I just get things done. There will be different faddish terminology along next year.

    Do one thing and do it well isn't a bad way to approach things, though.

    1. Anonymous Coward
      Anonymous Coward

      Re: 'Architects' can bitch with each other about terminology until the cows come home

      Sure, but why give it a silly name ?

      1. RyokuMas Silver badge
        Trollface

        Re: 'Architects' can bitch with each other about terminology until the cows come home

        To keep their jobs?

      2. Dinsdale247

        Re: 'Architects' can bitch with each other about terminology until the cows come home

        Because you can't disrupt the incumbent and still call what you're doing the same thing that they called it, even though that's all you're doing.

  4. Anonymous Coward
    Anonymous Coward

    EJB 2 anyone ?

    Hmmm sounds familiar to anyone who has architected CORBA/EJB2/etc... solutions or any other contained service originated architecture, what is the difference between a micro-service and a service?

    Deploy many times a day, assuming the micro-service interface requirements don't change, your stack supports rolling deploys, the service have no other dependency (i.e. Enterprise DB) and your QA cycle (I would hope for full TDD and BDD automation) is up to the task? All do-able in a small green field site, but enterprise software in a team distributed across the globe, with real business requirements ...

    1. Black Road Dude
      Flame

      Re: EJB 2 anyone ?

      EJB 2 ??? You must be some sort of time traveller from the distant past welcome we have beer!

      The whole idea of docker and micro services is that it fits into a automated build/unit test/integration testing pipeline and you can spin up your entire environment from database to front end UI/UX with one command (see docker compose). And in fact this should be utilised as part of the end to end automated testing as that is huge leap forward.

      Yes it will take some work to break up monolithic "Enterprise" applications that are tightly coupled to "Enterprise" databases that are not easy to spin up or put inside a container and not easy to test. But once your on that road you will see that maybe the old way was the problem and maybe these "Enterprise" DBs are just creating problems for application developers not solving them.

      Im not even sure if its legally possible to create a container that contains something like Oracle DB. Every instance would need some kind of licence I assume. In a world where I spin up an instance of the DB populate it run tests against it multiple times in every build these types of DB are essentially ruled out.

      And to be fair Im not even sure these types of DB are a good fit for software maybe there is some data warehouse type role these leviathans can play. But is there anything Oracle can do that MySQL, MariaDB, ElasticSearch, Neo4j, MongoDB, Cassandra or any number of other licence free databases cannot. I think no. But other opinions also exist.

      But thats not to say there is any conflict with using micro service architecture alongside these "Enterprise" databases or even if you decide to create a container that runs some old tech like EJB2 its all up to you,

  5. pinkmouse

    PR techno-b0ll0cks. I really hope this isn't a sign of things to come...

  6. Valerion

    IMHO

    You can use microservices instead of components.

    Microservices may well use components.

  7. jonnychen

    "We replaced our monolith with micro services so that every outage could be more like a murder mystery."

    https://twitter.com/honest_update/status/651897353889259520

  8. John Smith 19 Gold badge
    Unhappy

    So if I've got this straight

    Instead of designing a system with 1 external API you build dozens of little systems each with it's own API (which you're designing as part of the overall system).

    I think someone should send him a copy of the collected works of Glenford Myers.

    He seems to have re packaged "composite design"

    1. Black Road Dude

      Re: So if I've got this straight

      yes each with its own non public facing internal api. such as the api used to talk to a reational db.

      that does not mean you need more external apis.

      it also means you can look at making each micro service independently horizontally scalable for performance, resilience HA etc.

      1. John Smith 19 Gold badge
        Unhappy

        "yes each with its own non public facing internal api. "

        Irrelevant.

        Pretty much all the data indicates a lot of trouble is caused at the "unit" level due to misunderstandings between different units and the amount of coupling between them (like Windows handle-to-windows passing a shedload of data between lots of functions, each of which can mess with any field (not just the ones they are designed to alter) to create interesting bugs to find.

        So let's multiply the number of interfaces in the system and grow the testing time exponentially

        Yay, I'm loving it already

  9. Dinsdale247

    Oh, for the love of Pete!

    Container and Microservices... too funny. Can we just bring back time shared mainframes and be done with it? Seriously, they were doing this in the 1970's and someone said: "Hey, wouldn't it just be easier to run all the pieces in one instance and make it easier to debug and more reliable?"

    1. Black Road Dude

      Re: Oh, for the love of Pete!

      they did say that but it turns out it wasn't.

  10. Ken 16 Silver badge
    Childcatcher

    Bloody software engineers

    I learned that it's possible to model components at any level of granularity so a micro-service could be a component or it could be an application using a number of components, one of which provides a system interface.

    Personally, I'd model a micro-service as a deployable unit because I come from the operational side of the house and I'd let the software people do the component mapping because they enjoy that sort of thing.

  11. Anonymous Coward
    Anonymous Coward

    I seen this movie before..

    and it was called CORBA ... those who don't learn from the past are doomed to repeat it.

    1. Robert Grant

      Re: I seen this movie before..

      Doesn't look like CORBA, although microservices can be distributed.

      Not that I'm sure they're a good idea, but we still have to object to bad objections.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Biting the hand that feeds IT © 1998–2019