News for hackers. Stuff that matters.
Re:Microservices? Please Don't by api on Tuesday December 13, 2016 @10:51AM (#13167658)
Microservices always struck me as a reinvention of service oriented architecture from the 90s and early 2000s. This was done using RPC protocols like Java RMI or CORBA, while microservices are normally done with http(s) or event/pubsub systems.

Basically you're re-inventing linking and weak/lazy binding across a system or container boundary. That's it. This is not a new idea. It has some advantages in areas like scaling and modularity, but it also has disadvantages of increased latency, complexity, and all the weird edge case failure modes introduced by the fact that the network is not reliable.

One of the fun things about being developer-old (over 25) is seeing the same things get reinvented over and over and over again by every new generation of developers.

Re:Microservices? Please Don't by jamestenglish on Tuesday December 13, 2016 @12:09PM (#13168389)
I am an older dev that did a lot of "SOA" work back in the 2000's and I disagree that microservices are a "reinvention". In my opinion they are a further refinement of those SOA ideas (which is a good thing to keep moving forward as an industry).

A lot of the SOA work I did was putting REST/SOAP interfaces on various monolithic APIs. This was generally a good step forward and decoupled things (especially the front-end) but it was far from perfect. You still had the monolith and a lot of the code-smell that gets built into a monolith of spaghetti dependencies making it hard to write new features and move forward.

Now the argument is always "well if you and your team were just better coders and more disciplined that wouldn't happen" but in the real world it is shown to be incredibly difficult to actually have a team that is that disciplined and microservices give a real hard barrier to enforce that discipline.

I very rarely see things that are truly reinvented, and I think that is some serious ego bias essentially saying: back in my day we did it right and you dummies are just figuring it out.

Instead I see every new generation of developers refining good ideas over and over again which improves our industry and products.

Re:Microservices? Please Don't by lmm on Tuesday December 13, 2016 @12:27PM (#13168586)
> Now the argument is always "well if you and your team were just better coders and more disciplined that wouldn't happen" but in the real world it is shown to be incredibly difficult to actually have a team that is that disciplined and microservices give a real hard barrier to enforce that discipline.

I agree that you need enforcement. But by having a multi-module project in a good build system you can enforce decoupling at build time, without the overhead of a network bourdary.

Re:Microservices? Please Don't by jamestenglish on Tuesday December 13, 2016 @01:00PM (#13168885)
Very true, but decoupling is only 1 of the benefits of microservice. Polygot environments, scalability, etc also come with microservices vs modules.

As with everything its about the right tool for the job and a lot of organizations are more than happy to trade network overhead for the other bullet points microservices offer.

Re:Microservices? Please Don't by lmm on Tuesday December 13, 2016 @01:15PM (#13169022)
Polyglot I've concluded is more trouble than it's worth - you always end up wanting to reuse code between modules, so a good general-purpose language for everything is much better than multiple languages. Scaling is a nice problem to have - it makes sense to split out services when you need to do so to scale, but it's not worth the overhead until you need it (particularly if you have enforced decoupling already, because that ensures that you will be able to cleanly factor out services when the time comes).

The more experience I get the more I think "right tool for the job" is bad advice. It makes it sound like tool choice is always 50-50, whereas actually in a lot of cases it's more like 95-5. I've worked at a number of organizations using various architectures, but the one that was most gung-ho for microservices was by far the least successful, I think as a direct result of their approach to microservices.

Re:Microservices? Please Don't by justinhj on Tuesday December 13, 2016 @11:36AM (#13168094)
I'm around the developer age you call old and I actively work with microservices. I agree with your comment but I don't think there's anything wrong with reinvention as long as the new techniques, libraries and frameworks are actually advancing the idea and not relearning by making the mistakes of the past. There's no reason why we can't make up new words for evolved or subsets of technologies if that gives the industry a common vocabulary to use.
Re:Microservices? Please Don't by jsudhams on Tuesday December 13, 2016 @12:15PM (#13168453)
Agree, I think unlike past now micro service (Or unit/piece of software or service) can be packaged, deployed and scaled well in loosely coupled manner and combine that with Agile and DevOps then you got great shop to deliver features without having to worry about other.
Re:Microservices? Please Don't by user5994461 on Tuesday December 13, 2016 @12:02PM (#13168340)
It's not even "re-invented". There isn't anything changed between service oriented architecture and micro-services.

Well, except the A in SOA indicated that it's something that's thought of in the design phase.

Maybe we should say micro services architecture to make it clearer.

Re:Microservices? Please Don't by UK-AL on Tuesday December 13, 2016 @12:11PM (#13168420)
You'll find most Microservices experts will say microservices is a specific implementation of SOA.

A lot of the early SOA architectures used huge middleware applications. Modern microservices keeps the stuff inside the microservices themselves.

Re:Microservices? Please Don't by dragonwriter on Tuesday December 13, 2016 @12:12PM (#13168431)
> Microservices always struck me as a reinvention of service oriented architecture from the 90s and early 2000s. This was done using RPC protocols like Java RMI or CORBA

It's not really a reinvention, it's just a continuation of SOA as an architectural style. The new name mostly, I think, is to get away from the attachment to particular technologies which became associated with SOA in the general consciousness.

I've always thought the connection was obvious and intentional.

Re:Microservices? Please Don't by tyingq on Tuesday December 13, 2016 @11:28AM (#13168021)
Interesting, as the author claims SOA expertise "including turning several legacy applications into a modern service-based architecture" https://www.linkedin.com/in/smattkelly