News for hackers. Stuff that matters.
Re:The Death of Microservice Madness in 2018 by shitloadofbooks on Sunday January 21, 2018 @06:22PM (#16200703)
I think "microservices" is so appealing because so many Developers love the idea of tearing down the "old" (written >12 months ago), "crusty" (using a language they don't like/isn't in vogue) and "bloated" (using a pattern/model they don't agree with) "monolith" and turning it into a swarm of microservices.

As an Infrastructure guy, the pattern I've seen time and time again is Developers thinking the previous generation had no idea what they were doing and they'll do it way better. They usually nail the first 80%, then hit a new edge case not well handled by their architecture/model (but was by the old system) and/or start adding swathes of new features during the rewrite.

In my opinion, only the extremely good developers seem to comprehend that they are almost always writing what will be considered the "technical debt" of 5 years from now when paradigms shift again.

Re:The Death of Microservice Madness in 2018 by dreamcompiler on Sunday January 21, 2018 @10:45PM (#16201739)
I call this the painting problem. Painting the walls of a room seems easy to an amateur: You just buy a few gallons at Home Depot and slap it on. But a professional knows that prep, trim, and cleanup are 80% of the job and they take skill. Anybody can slap paint onto the middle of a wall. What's difficult and time-consuming are making the edges sharp and keeping paint off the damn carpet.
Re:The Death of Microservice Madness in 2018 by cortesoft on Sunday January 21, 2018 @11:42PM (#16201978)
So you are saying edge and corner cases are the most difficult?
Re:The Death of Microservice Madness in 2018 by d0mine on Monday January 22, 2018 @10:17AM (#16204929)
They are also most common: «the high-dimensional unit hypercube can be said to consist almost entirely of the "corners" of the hypercube, with almost no "middle".» https://en.wikipedia.org/wiki/Curse_of_dimensionality#Distan...
Re:The Death of Microservice Madness in 2018 by chairmanwow on Monday January 22, 2018 @12:00AM (#16202052)
In fault-tolerant distributed systems, yes; undoubtedly.
Re:The Death of Microservice Madness in 2018 by metahost on Monday January 22, 2018 @12:06AM (#16202074)
Great pun!
Re:The Death of Microservice Madness in 2018 by kazagistar on Monday January 22, 2018 @10:25AM (#16205001)
Not sure if it's a pun, or the literal etymology of the phrase.
Re:The Death of Microservice Madness in 2018 by marcosdumay on Monday January 22, 2018 @10:36AM (#16205116)
Keep the stuff from spilling all over the place is also between the most difficult things.
Re:The Death of Microservice Madness in 2018 by warrenm on Friday January 26, 2018 @03:40PM (#16242694)
Keeping your buckets sorted is definitely important
Re:The Death of Microservice Madness in 2018 by brisance on Monday January 22, 2018 @12:07AM (#16202076)
This is Parkinson's Law of Triviality. https://en.wikipedia.org/wiki/Law_of_triviality
Re:The Death of Microservice Madness in 2018 by SOLAR_FIELDS on Monday January 22, 2018 @06:38AM (#16203625)
It is frightening to see bikeshedding in practice. I used to work for a regional transportation authority that would administer hundreds of millions of dollars in federal/state/local road projects. Local leaders would monthly come in and sit at a huge round table (40-50 cities/counties/regional leaders) and vote on projects. 800 million dollar projects would sail through with almost no questions in the first five minutes, but then the leaders would spend the next two hours of the meeting debating about the $100,000 pilot project to help the homeless.
Re:The Death of Microservice Madness in 2018 by tomtimtall on Monday January 22, 2018 @07:54AM (#16203978)
I once sat in the board of a student organisation management a $3mil investment fund. Which was rapidly declining as funds where being withdrawn to cover budget deficits. At the same meeting where no-one could explain, and no-one seemed to care about a 100,000$ transaction listed as “assorted expenses”, people spend 1,5 hours debating whether the coffee-shop should keep buying newspapers for 200$ a year...
Re:The Death of Microservice Madness in 2018 by carlmr on Monday January 22, 2018 @10:31AM (#16205067)
I think it's also kind of an effect that humans don't have an intuitive grasp of big numbers. Add to that the effect that humans think more about what they can imagine. You can kind imagine spending $200 on newspaper in your everyday life. You seldom make $100,000 decisions. Big one-time transactiosn seem intuitively less impactful than many smaller ones.

As Programmers we deal with numbers a lot more often, so this effect is minimized. But still there.

Re:The Death of Microservice Madness in 2018 by versk on Monday January 22, 2018 @11:23AM (#16205550)
I'm skeptical 800 million dollar projects would pass through local government at that level in 5 minutes, unless everyone who voted in favor had already been canvassed or taken part in intense debates at other meetings or were rubber stamping a special committee decision etc. What regional authority was it where 800 million dollar projects happened so regularly?
Re:The Death of Microservice Madness in 2018 by SOLAR_FIELDS on Tuesday January 23, 2018 @06:46AM (#16212784)
This was a transportation authority for a large metro region. CTRMA (Central Texas Regional Mobility Authority) is an example that works with large projects like this all the time, though it wasn’t the one I worked for.
Re:The Death of Microservice Madness in 2018 by crdoconnor on Monday January 22, 2018 @07:52AM (#16203966)
Why? Do some of them have something against helping the homeless on principle?
Re:The Death of Microservice Madness in 2018 by SOLAR_FIELDS on Monday January 22, 2018 @08:36AM (#16204200)
In that case it was a jobs program (to help construct roads) and the rationale against it was that they were extending beyond their purview of what the commission was meant to do.
Re:The Death of Microservice Madness in 2018 by philipodonnell on Monday January 22, 2018 @01:30PM (#16206641)
Isn't that sort of rational then?
Re:The Death of Microservice Madness in 2018 by warrenm on Friday January 26, 2018 @03:43PM (#16242713)
Definitely rational

I think (at least, I hope) what OP was trying to get at was the relative irrationality of something 1/8000th the cost of the very expensive item taking a very long time to debate through (especially when $100,000 is most probably far less than many of those board members earn as a salary every year)

Re:The Death of Microservice Madness in 2018 by danieltillett on Monday January 22, 2018 @06:07AM (#16203470)
My experience is a careful amateur painter is 1000% better than an average professional. Professionals are certainly a lot faster, but if you look carefully at their work it is in the main very shoddy.

If you want a good result don’t skimp on the tools. Buy good quality brushes, rollers, filler, throws and paint. Also buy an edger to cut in the walls and ceilings. One final tip buy some of the disposable plastic liners for the roller tray so you don’t have to spend time washing out the tray at the end of the day.

Re:The Death of Microservice Madness in 2018 by ska on Monday January 22, 2018 @09:53AM (#16204722)
I think there are two things at work here.

1 - there are very good professionals, but they aren't cheap and have all the work they need

2 - an amateur can always decide to take economically irrational amounts of time on a project; a professional can't.

So the result is that as a careful amateur you can end up with a job you probably wouldn't be able to convince yourself to pay for.

We can probably all agree that the worst case is the careless amateur....

Re:The Death of Microservice Madness in 2018 by danieltillett on Monday January 22, 2018 @04:21PM (#16208023)
Here where I live (Australia) it is near impossible to find good professional tradesmen. While it might be irrational on a financial level to spend my time painting or other trades, I get the quality I want by doing it myself.

Even on the financial level tradesmen here in Australia are so overpaid (compared to everyone else) that it makes sense even for me to do it myself. My house was painted by "professionals" just before we moved in (purple??) and it cost the previous owner $20,000. My wife and I repainted it white (this required 5 coats of paint) and it took us two weeks including the time I had to spend getting the purple paint off the windows and floors and patching all the holes that had been painted over.

Tip. If you are selling your home don't paint it some unusual color. I managed to buy my home $200K under its actual market value and quite a bit of this was due to the crazy way the place has been painted.

Re:The Death of Microservice Madness in 2018 by Nomentatus on Thursday January 25, 2018 @05:04PM (#16235128)
Next time two (or at most three) coats - the first coverup coat should be black, since the purple (or red or whatever) won't show through black.
Re:The Death of Microservice Madness in 2018 by danieltillett on Saturday January 27, 2018 @12:05AM (#16244938)
I think black to white is going to take more than two coats of white.

I have used gray before to go from red to yellow as it seems to work in fewer steps.

Re:The Death of Microservice Madness in 2018 by marcosdumay on Monday January 22, 2018 @10:43AM (#16205187)
> economically irrational

I am not sure that description is apt. Underdelivering is only rational for the painter because the client won't be on the market long enough to gather sufficient information. The client is getting cheated, and it creates a lemons market, the fact that it is a Nash equilibrium does not make avoiding the entire thing irrational.

And the entire thing has parallels on software development...

Re:The Death of Microservice Madness in 2018 by ska on Monday January 22, 2018 @10:57AM (#16205312)
I meant it in a similar sense to that in which some hobbies are often irrational if you consider them only for market value. I probably could have chosen a better term.

An amateur painter will often spend far more time than any reasonable estimation of the market value of that job would justify. Part of this is lack of efficiency and experience, but another part is doing things with sharply diminishing returns. For example, you might apply expensive techniques to inexpensive materials, in a way that would not make for a viable business.

Put it another way - amateurs can easily arrive at a finished job (of painting, in this case) that they would never be able to convince themselves to pay market rate for. This is irrational in certain restricted senses.

For what it's worth I don't believe that "lemons market" is accurate for painters in general, but I'm guessing there is a segment of it that meets your description.

Re:The Death of Microservice Madness in 2018 by philipodonnell on Monday January 22, 2018 @01:28PM (#16206621)
> amateurs can easily arrive at a finished job (of painting, in this case) that they would never be able to convince themselves to pay market rate for.

If you're looking at it from a economic standpoint, to be considered irrational, the tradeoff between the value of time vs the cost of hiring a professional would have to assume that the value of the time is greater than the value of the professional.

I always hear this compared to "what is your hourly rate in your job" or "my time is worth more than that", but I think for most people this just isn't a fair comparison. Just because I can spend 10 hours painting my room and I make $x/hour and it would cost <$x to pay a professional, does not mean I would be able to actually generate an _incremental_ $x per hour by not painting and hiring the professional.

For most people on a salary (where your pay is fixed no matter how much time you put in), their time outside of the job is, in a very real sense from an economic standpoint, valueless, and it would be perfectly rational to spend that time yourself, no matter how cheaply a professional could do it.

Re:The Death of Microservice Madness in 2018 by ska on Monday January 22, 2018 @11:37PM (#16211039)

   If you're looking at it from a economic standpoint, to be considered irrational, the tradeoff between the value of time vs the cost of hiring a professional would have to assume that the value of the time is greater than the value of the professional.
That’s an oversimplification, and not the argument I was attempting.

For what it’s worth, I don’t think we are really disagreeing much.

Re:The Death of Microservice Madness in 2018 by philipodonnell on Tuesday January 23, 2018 @09:29AM (#16213758)
Not at all, merely pointing out an aspect of this trade-off that I often hear described as irrational based on the exact oversimplification that you pointed out. Consider my comment an addendum to yours. :-)
Re:The Death of Microservice Madness in 2018 by pluma on Monday January 22, 2018 @08:05AM (#16204035)
Not sure where you're from but in Germany there are industry standards professionals have to adhere to. Sure, there are sloppy professionals like in any other job too but if they adhere to the industry standards, the result will be pretty much what you expect and they're not allowed to take shortcuts that result in lower quality work.

On the other hand, coming from a country that takes its trades extremely serious, I was shocked about what I observed every time I visited the UK. It seems the expectations vary drastically between different countries (though I'm sure there are quality professionals in the UK too).

Re:The Death of Microservice Madness in 2018 by hoopladler on Tuesday January 23, 2018 @06:23AM (#16212684)
It doesn't make too much sense to do quality work in the UK, on the whole.

House price / rent value is basically dependent on location. Money spent on fitting is generally wasted.

There are a lot of great craftsmen in the UK, but they tend to work on a subset of jobs - restoration, passion projects, really high-end stuff.

PS: This is also a direct result of ever-rising house prices. If land/house prices are consistently rising, it often makes more sense to let lots stay empty, rather than building (which is always a massive risk). It also makes sense to do any repair or upkeep work as cheaply as possible - since in a rising market, the only way you can lose money is by expensive development costs.

Re:The Death of Microservice Madness in 2018 by pluma on Tuesday January 30, 2018 @06:27AM (#16264431)
That explains a lot. Thank you.
Re:The Death of Microservice Madness in 2018 by danieltillett on Monday January 22, 2018 @04:07PM (#16207912)
I am in the land of the shonky tradesman - Australia. Not only are they massively overpaid, they make the UK tradesmen look like gods.
Re:The Death of Microservice Madness in 2018 by skate22 on Monday January 22, 2018 @06:28AM (#16203551)
Quality cleaning solution and sand paper so your high quality paint doesnt peel 2 years later.
Re:The Death of Microservice Madness in 2018 by danieltillett on Monday January 22, 2018 @06:35AM (#16203608)
Yes I agree especially the cleaning part. The kitchen and the rooms close to the kitchen it is critical to clean and clean and clean. The prep should take longer than the painting.

On the sand paper front make sure to spend money there. Cheap sandpaper last 2 nanoseconds and does a terrible job.

Re:The Death of Microservice Madness in 2018 by kuschku on Monday January 22, 2018 @03:15AM (#16202749)
That may be a bad analogy, considering painting your own apartment is something a great deal of people do, and often with good success.

My parents (not in any way experts on that field) painted their entire house themselves, except for two rooms that were painted by a professional painter, and the professional painter left much worse corners than my parents. This was the paid-for result (ignore the dark corner at the bottom, that’s caused by the flash): https://i.imgur.com/s1VHV2W.jpg

Re:The Death of Microservice Madness in 2018 by misio on Monday January 22, 2018 @04:12AM (#16203011)
Analogies don't always have to apply to your parents.
Re:The Death of Microservice Madness in 2018 by kuschku on Monday January 22, 2018 @04:17AM (#16203038)
My argument is that painting is a much smaller skill difference between a hobbyist and a mediocre professional.

Actually good software engineering is a much larger skill difference.

Re:The Death of Microservice Madness in 2018 by warrenm on Friday January 26, 2018 @03:44PM (#16242732)
>much smaller skill difference between a hobbyist and a mediocre professional. >Actually good software engineering is a much larger skill difference.

Based on my years across various companies, the difference between "hobbyist" and "mediocre professional" developer/programmer is close to nil

Re:The Death of Microservice Madness in 2018 by vanderZwan on Monday January 22, 2018 @04:31AM (#16203091)
Aside from the "sample size of one"-issue: how much time did your parents take, and how much effort and preparation time, and how did that compare to the time and effort the professional needed? It could be a trade-off issue there.

Also, note that this thread started with a comment about how many developers don't appreciate what the actual hard problems in their own line of work are, and how that produces poor results because of that. I expect that to be true of any profession that doesn't have some kind of rigorously enforced standard.

Re:The Death of Microservice Madness in 2018 by nostrademons on Monday January 22, 2018 @06:23AM (#16203530)
My family painted about half our house ourselves when I was about a pre-teen. My mom just hired a painter to paint her new house. The painter didn't take an appreciably shorter time period than a couple pre-teens did. IIRC, it took us about a week for about 800 square feet worth, and it took the professional 3 weeks for 2400 square feet. And yeah, we did the whole masking-tape, dropcloth, and primer routine as well, and our corners were just as good. (I was gonna say we probably took more cajoling, but given the number of times my mom had to call the painter to make sure he showed up and would have it all done by move-in, I'm not sure that's true.)

Painting isn't a profession with a particularly high return on experience. You hire a painter for comparative-advantage reasons. It may take him just as long as it takes you, and several thousand dollars more, but chances are you can make more than several thousand dollars in the time you would've spent painting your house. (If you can't, you may want to re-think hiring a professional, and instead go into business as a painter yourself...)

Re:The Death of Microservice Madness in 2018 by ensignavenger on Monday January 22, 2018 @11:13AM (#16205474)
When you weigh hiring a professional versus DIY, you have to consider the impact of income taxes, not just what you earn/hr versus pay/hr. You have to pay the pro with post-taxed earnings, and then the pro has to pay tax on what you pay them before they can do anything with it. Whereas, if you DIY, you aren't taxed for it. (Also, many people can't just 'work ore hours' to get paid more).
Re:The Death of Microservice Madness in 2018 by pixl97 on Monday January 22, 2018 @10:29AM (#16205045)
Have your parents start painting houses every day aND youll find they get far worse at it.
Re:The Death of Microservice Madness in 2018 by markatkinson on Monday January 22, 2018 @02:18AM (#16202493)
Great analogy. I tried to paint my own flat. Was a disaster.
Re:The Death of Microservice Madness in 2018 by WalterBright on Monday January 22, 2018 @04:44AM (#16203155)
I've tried to hang sheet rock. How hard could it be? It certainly looks easy. A disaster for me, too.
Re:The Death of Microservice Madness in 2018 by sokoloff on Monday January 22, 2018 @08:17AM (#16204094)
I'm a die-hard DIYer. I hire out drywall and blueboard/skimcoat work. Two guys who do that work everyday can do in a 6-hour day and ~$800 what it would take me two weeks and $300 in materials and their job looks 4x better than mine.
Re:The Death of Microservice Madness in 2018 by moreless on Monday January 22, 2018 @06:59AM (#16203722)
For us non-english speakers - "sheetrock" == drywall.

I find I can do most such works better than (average) professionals, but it takes a lot of time to learn, prepare, execute (+ sometimes re-execute) and clean. It all depends on when you are satisfied with the result.

Re:The Death of Microservice Madness in 2018 by Jaruzel on Monday January 22, 2018 @07:46AM (#16203943)
I recently came across 'sheetrock' as a term and had to google it...

For UK natives it's actually three steps:

"sheetrock" == drywall == Plasterboard

Re:The Death of Microservice Madness in 2018 by logfromblammo on Monday January 22, 2018 @11:57AM (#16205860)
I have also heard it as "gypsum wallboard", which is certainly most descriptive.

I'm not certain whether the water-resistant, mold-resistant variety typically hung behind tiles in bathrooms is ever referred to as "wetwall" or if they still call it "drywall".

Nor am I aware of whether anyone calls the foil-backed, glass-reinforced, fire-resistant variety "firewall" instead of "drywall".

I wouldn't be surprised if obsolete and inapplicable names still attach to items with the same function. If we ever move to polyethylene film panels sandwiched with phase-change material for our walls, it might still be called "plasterboard" somewhere.

Re:The Death of Microservice Madness in 2018 by marme on Monday January 22, 2018 @02:19PM (#16207065)
it is called dry wall because it is installed while already dry. Unlike the old technique of lath and plaster where you build up the wall with multiple layers of wet plaster https://en.wikipedia.org/wiki/Lath_and_plaster
Re:The Death of Microservice Madness in 2018 by fl0wenol on Monday January 22, 2018 @12:18PM (#16206042)
Sheetrock is USG's trade name for a line of drywall products. Sounds like it's going the way of Kleenex, Band-aid, or Hoover.
Re:The Death of Microservice Madness in 2018 by at-fates-hands on Monday January 22, 2018 @10:23AM (#16204980)
I used to work for a home theater company. We were regularly working on newer mansion in the suburbs. If you ever want to see some dudes that work faster than fast, go hang out with a drywall crew.

I remember showing up on a site, and the drywall guys had just started carting in a ton of drywall. By the time we left in the afternoon, they had cut, hung, taped and mudded over 3,000 sq feet of home, it was insane.

Re:The Death of Microservice Madness in 2018 by juanmirocks on Monday January 22, 2018 @09:55AM (#16204738)
I feel you.

I managed to paint my walls, but it took me much more time than expected and my flat was chaos for some weeks thereafter.

Re:The Death of Microservice Madness in 2018 by madshiva on Monday January 22, 2018 @05:27AM (#16203332)
A real hacker can fix is car, paint that wall, and can code too.

There is no problem painting for me and many others who know how to use their hand.

Is amazing when you talk to people and they are like: Did you do that? How do you know how to do that?

Learn, try and you can do anything. As people did at every step.

Re:The Death of Microservice Madness in 2018 by logfromblammo on Monday January 22, 2018 @12:16PM (#16206006)
The hardest part is knowing when it is a better use of your time to hire someone else to do it for you.

You can just follow all the same steps as you usually do:

1. Define the problem.

2. Determine the desired outcome.

3. Measure the existing state.

4. Note the foreseeable failure modes.

5. Plot the path from existing state to desired outcome as a series of reasonable steps, avoiding the failure modes.

6. Recursively analyze the steps, breaking them down into smaller steps if necessary.

7. Rework your plan as additional failure modes become evident.

In my experience, yes, you can do anything, as long as you ignore costs. You can't, for instance, justify buying a specialized tool to finish just one job. The hardest part is really step 2.

Re:The Death of Microservice Madness in 2018 by warrenm on Friday January 26, 2018 @03:46PM (#16242756)
>You can't, for instance, justify buying a specialized tool to finish just one job

You must be new to DIY :)

Re:The Death of Microservice Madness in 2018 by JamesBarney on Sunday January 21, 2018 @07:16PM (#16200916)
I really think microservices are a process win not a technical win. It's easier and better to have 5 teams of 10 managing 5 services. Then having one team of 50 managing a one super service.

When I see a team of 7 deciding to go with microservices for a new project I know they're gonna be in for a world of unnecessary pain.

Re:The Death of Microservice Madness in 2018 by brandonbloom on Sunday January 21, 2018 @08:55PM (#16201355)
I agree that it's _easier_ for teams to have their own little fiefdoms, but not necessarily _better_. Shipping the org-chart is often a symptom of a leadership problem. When natural service boundaries exist, good leadership may choose to ship the org-chart, but too often extrinsic factors such as the arrangement of dev's desks dictates the architecture.
Re:The Death of Microservice Madness in 2018 by bmer on Sunday January 21, 2018 @10:07PM (#16201582)
> ...but too often extrinsic factors such as the arrangement of dev's desks dictates the architecture.

hahaha

Do you know if there are some well chronicled cases of this happening? I find it very believable, but you know, would love to read something "actual".

Re:The Death of Microservice Madness in 2018 by quodlibetor on Sunday January 21, 2018 @10:57PM (#16201802)
I believe this is a paraphrase of Conway's law. The Wikipedia article lists three studies in favor of it, so there's that.

https://en.wikipedia.org/wiki/Conway%27s_law

Re:The Death of Microservice Madness in 2018 by bonesss on Monday January 22, 2018 @06:33AM (#16203592)
[Disclaimer: I've never worked for MS or Amazon, working solely off of reported info here...]

A kinda-random example off the top of my head of "shipping the org chart" would be the historical gaps between Windows, Development, and Office at Microsoft. Ie Office is getting a new ribbon, but no development can't supply those icons or any components because they're an "office thing", or the internal API/VBA battles along the same lines.

On the opposite side, as reported in the press, Amazon has used this effect to create manageable teams and build up their own SOA: the two-pizza rule for teams means that teams can only really make targeted self-contained services. In this case Amazon worked backwards and re-structured their teams so that 'shipping their org chart' created the desired architecture.

Re:The Death of Microservice Madness in 2018 by maxsilver on Monday January 22, 2018 @01:27PM (#16206613)
My favourite Microsoft 'ship the org chart' example is their app store.

Microsoft has an app store built into every Windows 10 computer worldwide. And of course, you can not download Microsoft Office from it. However, it does helpfully tell you to get Office by heading to 'MicrosoftStore.com'.

It's all sort of head scratching. A normal person might ask a lot of totally reasonable questions about this, like:

- Why does Microsoft's App Store not have Microsoft's own Apps in it? Office isn't the only missing app, Visual Studio is missing too (even the free 'Code' electron editor).

- Why does the phrase 'Microsoft Store' refer to something 100% different (in products and functions) than 'MicrosoftStore.com'?

- Why does the Office team have their own app updating utility, when there's already supposed to be one 'blessed' place for App Updates inside the Store? (Same question for Visual Studio Code).

---

Anyway, I know a lot of the above is org chart related, or enterprise needs / backwards compatibility related. But they are all reasonable questions despite that.

And stuff like this is part of the reason why reasonable people still fall for phishing schemes. The above sounded to me like some weird popup advertisement trick, until I saw it first hand.

Re:The Death of Microservice Madness in 2018 by warrenm on Friday January 26, 2018 @03:49PM (#16242784)
Definitely a broken "app store" vs, say, Apple's model - where you can get any Apple software you want from it for your Apple devices.

(Isn't it the only way to get Apple software for your Apple devices, even?)

Re:The Death of Microservice Madness in 2018 by woolvalley on Monday January 22, 2018 @02:41AM (#16202583)
Just go work somewhere that is big enough for that to happen. Usually large tech cos with the amount of devs larger than dunbars number by about 2x or greater.
Re:The Death of Microservice Madness in 2018 by asfdsfggtfd on Monday January 22, 2018 @02:57AM (#16202663)
Isn't the idea to decide the architecture then update the org-chart to reflect this?

Not that this actually happens-or would be a particularly good idea if it did for other reasons (like breaking up teams etc).

Re:The Death of Microservice Madness in 2018 by stctgion on Monday January 22, 2018 @03:08AM (#16202712)
Happens where I work quite frequently, and yes it does have the effects you describe
Re:The Death of Microservice Madness in 2018 by zenonu on Sunday January 21, 2018 @08:29PM (#16201211)
The key to microservices is a framework and tooling around them to make them work for you. Release management, AuthN/AuthZ, compilation, composition, service lookup, etc. should all be "out-of-the-box" before microservices should ever be considered. Otherwise the O(n) gains you get in modularity turn into O(n) FML.
Re:The Death of Microservice Madness in 2018 by charlieflowers on Monday January 22, 2018 @01:33AM (#16202333)
Would love to hear some peoples' thoughts on good contenders in each of these areas. What are some good boxes to get these out of in 2018?
Re:The Death of Microservice Madness in 2018 by sametmax on Monday January 22, 2018 @06:21AM (#16203521)
Crossbar.io is currently an interesting approach IMO.

It does have a single point of failure that is also a bottleneck (the router) and it's a lot of work to load balance / failover it.

But other than that, it provides a fantastic way to make microservices:

- anything is a client of the crossbar router. Your server code is a client. The db can be a client. The web page JS code is a client. And they all talk to each others.

- A client can expose any function to be called remotely by giving it a name. Another client can call this function by simply providing the name. Clients don't need to know each others. Routed RPC completly decoupled the clients from each others.

- A client can subscribe to a topic at any time and be notified when anothe client publishes a message on that topic. Quick, easy and powerful PUB/SUB with wildcard.

- A client can be written in JS (node and browser), Python, C#, Java, PHP, etc. Clients from other languages can talk to each others transparently. They all just receive JSON/msgpack/whatever and error are propagated and turn into the native language error handling mechanisme transparently.

- The API is pretty simple. If you tried SOAP or CORBA before, this is way, way, way simpler. It feels more like using redis.

- It uses websockets, which mean it works anywhere HTTP works. Including a web page or behind a NAT or with TLS.

- Everything is async. The router handles 6000 msg / s to 1000 clients on a small Raspberry Pi.

- The router can act as a process manager and even a static / wsgi web server.

- you can load balance any clients, hot swap them, ban them, get meta event about the whole system, etc.

- you can asign clients permissions, authentications, etc. Sessions are attached to each connexion, so clients knows what other clients can do.

Re:The Death of Microservice Madness in 2018 by scarface74 on Monday January 22, 2018 @06:49AM (#16203679)
Release Management. It's not what the cool kids are doing but Microsoft's Visual Studio Team Services is the easiest CI/CD solution I've ever used.

Service Lookup - Hashicorp's Consul.

Authorization/Authentication - I've played with Hashicorp's Vault. It seems overly complicated but the advantage is that it doesn't tie you to a single solution and it can use almost anything as a back end. I haven't had to solve that problem yet.

Re:The Death of Microservice Madness in 2018 by antonp on Monday January 22, 2018 @04:30AM (#16203084)
Would like to echo this request.

Had to implement a micro-service architecture in python about a year ago and was jealous of my Java colleagues who (so I heard) have great ecosystem for enterprise service discovery, messaging etc.

Re:The Death of Microservice Madness in 2018 by ivan_gammel on Monday January 22, 2018 @05:23AM (#16203310)
Yes, we do. The ecosystem is great and microservice architecture may be manageable even in small teams, but it's always a process that defines the success. From my own experience, the biggest technical problem of microservices in Java can be the performance of the whole system (in a monolith there's much less logging and state management, no network latencies and mismatching parallelism settings). Discovery, auth, messaging, configuration management etc are solved.
Re:The Death of Microservice Madness in 2018 by mgkimsal on Sunday January 21, 2018 @10:14PM (#16201615)
> When I see a team of 7 deciding to go with microservices for a new project I know they're gonna be in for a world of unnecessary pain.

Faced this a couple of years ago, and I was the lone dissenting voice suggesting this was not going to go well. Then I learned that "microservice" in reality just meant everything was going to be one nodejs process running endpoints, with ios and android clients hitting it, which... didn't really fit my understanding of "microservice"; that's just "service".

Re:The Death of Microservice Madness in 2018 by asfdsfggtfd on Monday January 22, 2018 @02:55AM (#16202652)
If you are slightly careful and put this service behind a load-balancer/reverse-proxy you can take any given set of end points and turn them into a micro-service when you need to. Sounds perfect for a small team.
Re:The Death of Microservice Madness in 2018 by mgkimsal on Monday January 22, 2018 @07:54AM (#16203979)
you could. in this particular case, if memory serves, we had an existing set of endpoints functioning, but people deemed it in need of rewrite to node, because 'microservice'. Instead of putting the code we had behind proxy then migrating, we had to start over. because 'scale' and 'microservice'. and 'lambda'.

Also, the same team spent several hours in meetings deciding whether or not to allow email signup, or facebook signup, or both, or neither, in the mobile app. Then had the same discussions/arguments a few weeks later when a couple new people joined the team.

I realize I sound a bit bitter. I got pushback because I'd used the 'microservice api' in a "we don't like that" language. consuming the api (which I'd understood to be part of the reason of having a central API vs just hitting db tables directly) by anything that wasn't also node was outside the groupthink, and caused problems.

I left the project.

They've got their microservice architecture, but no userbase (yet?) to be concerned about scaling issues.

I understand it's reasonable to be concerned about potential scaling problems, the team/project spent far too much time chasing architectural perfection (and really... 'shiny new stuff') vs executing a marketing plan. It's easier for a group that is tech-folk-heavy to focus on that; I get it. But it didn't solve any problems at hand. But when the mythical "2 million users in an hour" problem happens, it'll probably hold up, unless it doesn't.

Re:The Death of Microservice Madness in 2018 by scarface74 on Monday January 22, 2018 @06:33AM (#16203574)
I'm the dev lead for a largish company with a small development shop 4-9 people (contractors come and go). I went for a microservice like hub and spoke model where a bunch of small services integrate with a central Mongo database where all of the CRUD is managed via an API and validation is done via the API. Also cross cutting concerns like configuration (a wrapper around Consul), logging (structured logging via Serilog), and job scheduling (Nomad) is done via a common package.

I chose this approach because the developers who were already there were relatively new to C#, and I knew we were going to have to ramp up contractors relatively fast.

Our dev ops process revolves around creating build and release processes by simply cloning an existing build and release pipeline in Visual Studio Team Services - the hosted version of Team Foundation Services - and changing a variable. Every service is a separate repo. Each dev is responsible for releasing their own service.

The advantages:

1. All green field development for a new dev. They always start with an empty repo when creating a new service.

2. Maintenance is easier. You know going in all you have to do is use a few documented Postman calls to run your program if you need to make changes. Also, it's easy to see what the program does and if you make a mistake, it doesn't affect too many other people if you keep the interface the same.

3. The release process is fast. Once we get the necessary approvals, we can log on to VSTS from anywhere and press a button.

4. Bad code doesn't infest the entire system. The permanent junior employees are getting better by the month and we are all learning what works and doesn't work as we build out the system. Each service is taking our lessons learned into account. We aren't forced to keep living with bad decisions we made earlier and building on top of it.

A microservice strategy only works if you have the support system around it.

In our case, an easy to use continuous integration, continuous deployment system (VSTS), easy configuration (Consul), service discovery and recovery (Consul with watches), automated unit and integration tests, a method to standardize cross cutting concerns

And finally, Hashicorp's Nomad has been a god send for orchestration. Our "services" are really just a bunch of apps. Nomad works with shell scripts, batch files, Docker containers, and raw executables. It was much easier to set up and configure than kubernetes.

Re:The Death of Microservice Madness in 2018 by pjmlp on Monday January 22, 2018 @12:53AM (#16202212)
They can manage those teams by writing libraries, no need for microservices.
Re:The Death of Microservice Madness in 2018 by ivan_gammel on Monday January 22, 2018 @05:26AM (#16203329)
It's much harder to deploy a library fix to production (producing a new build of integrated app in large team is a big deal), than a microservice.
Re:The Death of Microservice Madness in 2018 by coldtea on Monday January 22, 2018 @07:19AM (#16203818)
You'd be surprised. With a microservice you still need to coordinate the release with other consumers of it.
Re:The Death of Microservice Madness in 2018 by ivan_gammel on Tuesday January 23, 2018 @01:52PM (#16216223)
I'm well aware of that. This type of coordination is much easier, than producing a new build in a complex corporate environment. The delivery of microservice is limited in most cases to the change in environment inventory file and integration testing. The delivery of the build requires source code management (you'll need to push the dependency change in the right branch), probably, full application SQA cycle (to make sure there's no side effects, e.g. due to transitive dependency update) and only then - deployment and integration testing.
Re:The Death of Microservice Madness in 2018 by McP on Monday January 22, 2018 @05:39AM (#16203381)
Re:The Death of Microservice Madness in 2018 by sokoloff on Monday January 22, 2018 @09:06AM (#16204383)
It shouldn't, but in practice sometimes is. It's not the pushing of bits that's hard; it's the ensuring that the library got everywhere it needed to go and that the new release of the other users of that library didn't introduce any bugs.

Imagine you have a library that implements the serialization and deserialization of something in your system (or anything else where the library implements two "halves" of some functionality). You might (or might not, depending on the change) need to push out that library to other apps to effect the fix you're working on. That new proposed library change may be in a queue behind another pending change that's in development, etc.

Re:The Death of Microservice Madness in 2018 by marcosdumay on Monday January 22, 2018 @11:00AM (#16205344)
> it's the ensuring that the library got everywhere it needed to go and that the new release of the other users of that library didn't introduce any bugs.

And guess what, you have to do the same thing with microservices. You must ensure that all its clients are pointing to the correct version, and you must ensure that the new version didn't add any bugs in the clients.

Adaptations for new service versions will also get into the release queue, and can also get blocked by other stuff.

Re:The Death of Microservice Madness in 2018 by beamatronic on Sunday January 21, 2018 @09:09PM (#16201415)
What if you expect the team of 7 to grow to 20 or more.. In a larger context almost any company would hire more developers if they could find them and hire them.
Re:The Death of Microservice Madness in 2018 by bigiain on Monday January 22, 2018 @12:07AM (#16202075)
Premature optimisation...

YAGNI is almost always the right approach.

Re:The Death of Microservice Madness in 2018 by scarface74 on Monday January 22, 2018 @06:46AM (#16203664)
I don't think you should always go with a microservice approach first, but you should always separate different domains/features into well defined modules/projects even within a monolith.

There have been plenty of times where I've taken a project out of a monolith and created a separate shippable package to be consumed by another monolith in a separate repo.

There were also occasions where I had to rip out a feature in a monolithic API that either needed to scale independently or be released independently and then just created a facade in the originally API that proxies the "microservice".

Re:The Death of Microservice Madness in 2018 by bigiain on Monday January 22, 2018 @04:58PM (#16208347)
Completely agree.

I mostly tell my people "We aren't going to do that yet - or possibly ever - but keep in mind that we might have to if we ever win the user growth hockey-stick graph lottery, so when choosing between options of how to architect things, prefer very narrow focus that _could_ be pulled apart into microservices more easily if practical"

I've also been known to stand up duplicated instances on a monolith with path routing on the load balancer as a "pretend microservices" scaling or upgrade trick.

Re:The Death of Microservice Madness in 2018 by bonesss on Monday January 22, 2018 @06:38AM (#16203619)
Those growth points, and their associated market knowledge and budgetary constraints, would become perfect transition points into a friendlier architecture for the team... Plan for change, moreso than trying to plan against change.

Decomposing and fragmenting an established service into smaller clones of itself should be reasonably straightforward. In most languages with a component story (ie java), library reuse across microservices should make your service architecture orthogonal to your application logic. This kind of approach also eases a lot of pain of cross-service issues.

Re:The Death of Microservice Madness in 2018 by ohyes on Sunday January 21, 2018 @07:46PM (#16201033)
Jesus, 10 people on a team? What are you doing that you need 10 people to work on it? I manage like 8 services by myself.
Re:The Death of Microservice Madness in 2018 by always_good on Sunday January 21, 2018 @08:09PM (#16201126)
Well, I've also worked for places where I'm on call for some service maintained by one person that's built their little impregnable abstraction castle because nobody else had to work on it so they could just yak-shave and bike-shed with their self.

These days I kinda wince at "I run 8 services myself."

Re:The Death of Microservice Madness in 2018 by jblow on Sunday January 21, 2018 @09:01PM (#16201375)
Those of us who have been around since the 80s-90s are astonished by the low productivity of today's programmers.

If it takes 1 person to run 1 microservice, we are all doomed.

Re:The Death of Microservice Madness in 2018 by learc83 on Sunday January 21, 2018 @10:59PM (#16201811)
It's because that 1 micro-service has 300 dependencies.

Higher levels of abstraction makes it easier to get something up and running fast, but at some point you need to be able to look under the hood and understand what's going on, and many programmers today can't do that.

That being said I think the drop in average skill is mostly a product of the growth in the number of programmers. I imagine that if the ability to sculpt a basic statue suddenly became really valuable, the skill level of the average working sculptor would plummet.

Re:The Death of Microservice Madness in 2018 by sedachv on Monday January 22, 2018 @02:33AM (#16202550)
> Higher levels of abstraction makes it easier to get something up and running fast

More layers of indirection in a system and more dependencies on external libraries and tooling does not necessarily get you any abstractions. To take a contemporary example, there is no "abstraction" in being driven to use Docker because your dependencies have gotten unmanageable otherwise.

Re:The Death of Microservice Madness in 2018 by smaddox on Monday January 22, 2018 @10:11AM (#16204868)
Docker is an abstraction...
Re:The Death of Microservice Madness in 2018 by sedachv on Monday January 22, 2018 @08:05PM (#16209885)
No it's not. OS-level virtualization is the abstraction. Docker is a set of tools to manage Linux containers and virtual filesystems. You can argue that libvirt is an abstraction because it does actually work over several different virtualization technologies.
Re:The Death of Microservice Madness in 2018 by spraak on Sunday January 21, 2018 @10:16PM (#16201622)
You really think that the productivity of today's programmers is less? What evidence and data do you have for that?
Re:The Death of Microservice Madness in 2018 by nurettin on Sunday January 21, 2018 @11:40PM (#16201969)
Warning: all anecdotes. While I don't think that productivity has decreased, what was notepad, a compiler, some dlls and a debugger before turned into a thousand little packages, several configuration files, a bunch of servers you have to run on your dev. computer, which is also 10x more capable, yet everything feels so sluggish.

I also feel that ceteris paribus, the meetings got longer, project management tools now consume a lot of input from programmers, and I need to communicate with a lot more people to get something done.

Re:The Death of Microservice Madness in 2018 by chrisweekly on Monday January 22, 2018 @07:35AM (#16203882)
>"ceteris paribus" Latin for "all things equal".
Re:The Death of Microservice Madness in 2018 by mauritzio on Sunday January 21, 2018 @11:55PM (#16202032)
Sounds for me like productivity went down...
Re:The Death of Microservice Madness in 2018 by bigiain on Monday January 22, 2018 @12:14AM (#16202100)
I think the complexity of solutions has gone up (especially in webdev), it seems to me perhaps complexity has gone up way further than actual requirements or new features would suggest...

Which seems to end up meaning productivity has gone down when measured by "things end users of websites can do", even though modern FE devs end up creating much more code and html and css than "the old days". (Admittedly, if you include privacy invasion, user tracking, and various other requirements of surveillance capitalism, dev productivity has probably skyrocketed...)

Re:The Death of Microservice Madness in 2018 by mauritzio on Monday January 22, 2018 @12:48AM (#16202190)
..eh yes producing mindless importing stuff, generating code, tracking garbadge burocratic stuff went up. Just importing energy consuming crap. Not personal 'productivity' imho but 'work simulation' by click, giving 'reason'. 'solutions' for 'no problems' p.e. A subscription modell for automated driving.. If easy money is to be made the crazyness starts...

Complex? We still call a function with a return value on a stackmachine.

Sorry for the negativity.

Re:The Death of Microservice Madness in 2018 by alenmilk on Tuesday January 23, 2018 @03:57AM (#16212030)
In the old days if you managed to create a website it was great. Now people compare everything with Google and Facebook. If you just put something together fast people would just laugh at you. So everything takes a lot longer. The effect is that you get to solve less problems.
Re:The Death of Microservice Madness in 2018 by tyfon on Monday January 22, 2018 @12:24PM (#16206105)
"even though modern FE devs end up creating much more code and html and css than "the old days""

And yet, most homepages today can't be viewed without javascript. You are correct, for the end user the complexity has absolutely not resulted in better homepages but worse.

Re:The Death of Microservice Madness in 2018 by dagw on Monday January 22, 2018 @04:30PM (#16208097)
On the other hand, I can now easily write web pages that let people query and view the results of large CFD simulations in interactive 3d.
Re:The Death of Microservice Madness in 2018 by ohyes on Sunday January 21, 2018 @11:31PM (#16201940)
That’s valid, there are times I wish we had some bench depth.
Re:The Death of Microservice Madness in 2018 by anfedorov on Sunday January 21, 2018 @08:11PM (#16201136)
That's nothing. I once ran 20 services before breakfast.
Re:The Death of Microservice Madness in 2018 by paulddraper on Sunday January 21, 2018 @11:32PM (#16201946)
Well, my pre-breakfast routine consists of

    seq 21 | while read port; do
        python2 -m SimpleHTTPServer 80$port &
    done
Re:The Death of Microservice Madness in 2018 by majewsky on Monday January 22, 2018 @06:43AM (#16203651)

  seq 21 | while read port; do
    python3 -m http.server 80$port &
  done
FTFY
Re:The Death of Microservice Madness in 2018 by st3fan on Sunday January 21, 2018 @08:08PM (#16201122)
Why was this downvoted? I think this is a valid argument. There are plenty of small teams or individuals who have been managing a bunch of small services. Before this was called microservices.
Re:The Death of Microservice Madness in 2018 by HelloMcFly on Sunday January 21, 2018 @08:27PM (#16201201)
I downvoted because without context this just seems like the typical know-it-all statement from someone who has yet to realize how little they really know. There's no attempt to even try to appreciate how their situation may be different, just the default disdain so typical from some professionals incapable of thinking outside of their own perspective.
Re:The Death of Microservice Madness in 2018 by Clubber on Sunday January 21, 2018 @08:48PM (#16201324)
10 people managing a single "micro service" does raise a red flag to me as well. It may be normal based on the complexity, but my first thought is, why is the codebase require so many people to maintain and add features to? Are they just adding features like mad, or something squirrelly in there where most modifications take a lot of man hours?
Re:The Death of Microservice Madness in 2018 by jblow on Sunday January 21, 2018 @09:01PM (#16201377)
How micro can it possibly be if it takes 10 people to deal with it? Seriously.
Re:The Death of Microservice Madness in 2018 by bonesss on Monday January 22, 2018 @06:43AM (#16203645)
"Micro" in this case relates to the services scope, not its operational footprint.

So if Netflix has a "User logon" service, and a "payment processing" service, used across their clients clients you might be looking at a couple of "microservice"s with hundreds of related employees. Imagine services for Googles search autocomplete, ML, or analytics...

As the article states the "micro" aspect is mostly in terms of deployment responsibility, freeing those 10-1000 employees from thinking about the totality of Googles/Netflixes' operations before rolling out a patch :)

Re:The Death of Microservice Madness in 2018 by snowwrestler on Monday January 22, 2018 @02:10AM (#16202464)
If "micro" refers to the scope of the service (i.e. very limited feature set), you might still need a team to run it, if the service has to handle a very high volume of transactions or provide very low latency, or both.
Re:The Death of Microservice Madness in 2018 by sbov on Sunday January 21, 2018 @11:31PM (#16201941)
The scope of a microservice is commonly a bounded context in DDD. So depending upon the problem you might be talking about a lot of code.
Re:The Death of Microservice Madness in 2018 by sameline on Monday January 22, 2018 @02:54AM (#16202645)
It’s not unreasonable to imagine that any of the examples provided in the source post could require a team larger than 10 people.
Re:The Death of Microservice Madness in 2018 by BatFastard on Sunday January 21, 2018 @10:35PM (#16201695)
Cause it's not very micro?
Re:The Death of Microservice Madness in 2018 by jiggunjer on Sunday January 21, 2018 @08:49PM (#16201326)
I think he is literally asking for the other perspective? "I run 8 services myself" can be read as arrogant, OR it can be read as "I do things very differently", which is how I read it initially.
Re:The Death of Microservice Madness in 2018 by ohyes on Sunday January 21, 2018 @11:49PM (#16202008)
That’s how I meant it, that the advantage of microservices is bite size pieces of work, so 10 people on the same service sounds like they’d step on each other’s toes. I run a bunch of services but they’re each debugged enough to be fairly low maintenance and small enough that the edges are well defined.

It’s 8 or so but it’s possible for me to handle it all. If we add features they’re going to be new services, so adding big features to the services I manage is unlikely. It is more likely that I get a new service on my plate in 6 months time than getting additional members of the engineering team to work on already completed services.

I’m obviously not entirely alone... I’ll ask for help if I need it, and I help out with other people’s stuff too, but I am primarily in charge of them and I am responsible for keeping everything working well.

Re:The Death of Microservice Madness in 2018 by foo101 on Sunday January 21, 2018 @10:04PM (#16201572)
I think the context is pretty clear: microservices.

If it takes 10 people to manage one service, it is not a microservice by definition. It is more like a 10x-microservice or a macroservice.

Re:The Death of Microservice Madness in 2018 by bonesss on Monday January 22, 2018 @06:51AM (#16203688)
It's not the number of people that are micro, it's the scope of the service... So what is the right level of manpower for a scoped service with unspecified operational demands? Unknowable.

The definition isn't small teams, per se, it's a small area of responsibility with singular focus. A lego block instead of duplo. That lends itself very well to small teams, but you could reasonably have 100 people working on a service and call it "micro".

Reason being: if those 100 people weren't working on their scoped 'microservice' they would be part of a much, much, much larger pool working on the shared 'product', 'platform', or 'service' that contains that exact same functionality, only without the clarity/scalability of application boundaries surrounding the individual service components.

That's not to say microservices are ideal, just that the size of "micro" is highly relative to ongoing operations.

Re:The Death of Microservice Madness in 2018 by JamesBarney on Monday January 22, 2018 @01:17AM (#16202275)
While 10 is more than many recommend it's not that much more than Amazon's rule of < 7.
Re:The Death of Microservice Madness in 2018 by zimpenfish on Monday January 22, 2018 @03:34AM (#16202840)
I suppose it depends if those 10 people are purely developers or include the other teams you'd need - monitoring, devops, etc. For a critical, high-performance microservice, I can easily see it needing the involvement of 2+ devs (at least one senior), product owner, project manager, QA, devops, monitoring, etc.
Re:The Death of Microservice Madness in 2018 by adbachman on Sunday January 21, 2018 @08:37PM (#16201254)
Because it's not a "valid argument", it's snark. The contempt is unnecessary and uninformed.
Re:The Death of Microservice Madness in 2018 by ohyes on Sunday January 21, 2018 @11:28PM (#16201930)
It’s not snark, it’s also not any argument. It’s genuine incredulity. I seriously cannot imagine the situation where 10 people work on the same minimal function piece of code.
Re:The Death of Microservice Madness in 2018 by isaacremuant on Monday January 22, 2018 @02:43PM (#16207257)
I get both why people downvoted you and why people defended you.

One developer can certainly be responsible for coding many microservices and even maintaining them depending on the scope, number of users, etc.

Sometimes people might even rotate with a core architect coordinating how they all interact and if they are consistent with each other.

Discussing about microservices can be very confusing if people are thinking about different things and, as always, when there's a good idea implemented in a specific context and people who don't use it get exposed to it as a silver bullet we'll end up with a huge backlash like in this article.

Re:The Death of Microservice Madness in 2018 by nstj on Sunday January 21, 2018 @08:30PM (#16201220)
Putting the I back in Microservices :)
Re:The Death of Microservice Madness in 2018 by NicoJuicy on Monday January 22, 2018 @03:45AM (#16202888)
I have a web app with a "file store" ( eg. simple dropbox over API) that i manage. I haven't touched it in a year and it uploads files, proxies them, resizes, ...

And it's just one of many.

Re:The Death of Microservice Madness in 2018 by hajile on Monday January 22, 2018 @08:14PM (#16209953)
Real-world business servers are complicated even when you tease apart the different elements.
Re:The Death of Microservice Madness in 2018 by meddlepal on Sunday January 21, 2018 @06:27PM (#16200732)
I think it has to do with control. I've written microservices and microservices tooling now for a long time... so long when I started we were just calling it something like (isolated-responsibility) SOA and we didn't have a fancy buzzword.

Developers want to own their thing. Microserivces desire springs up because of a lack of communication culture and desire for siloification in a companies organization to keep various interests from bothering the developers. Those almost always point to a failure of management in my mind rather than a technical failure.

Re:The Death of Microservice Madness in 2018 by bri3d on Sunday January 21, 2018 @07:45PM (#16201032)
Is this truly a management failure?

If a few things are true, I could see this as a win:

* I can isolate my developers from outside interests using microservices. * My developers are more effective in each dimension (quality, retention/happiness, velocity) because they are isolated from outside interests. * My software is easier to operate and more reliable because it is a microservice.

If any of these three things aren't true, then I agree. But I'm not sure that a "communication culture" can scale to a large organization and I'd like to see a truly large company (1000+ developers) successfully doing so. I've seen more success come from separation of concerns and well-deployed microservices seem to be fairly effective to this end.

Re:The Death of Microservice Madness in 2018 by cookiecaper on Sunday January 21, 2018 @08:48PM (#16201318)
Microservice architectures [usually] represent a management failure because they usually don't work well in the real world. It's easy to concoct a paper-only, theoretical version of an idealized microservice architecture, since you can gloss over all the real-world details and practicalities. Mapping that theory into the real physical world is a whole different ball game.

Conway's Law might as well be renamed "The Law of Microservices". Per Wikipedia [0], it states:

> "organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations."

"Microservices" are on a tear because they make a perfect cover for the blatant and bare expression of unbridled Conway's Law.

Such unbridled expression is much easier in the course of greenfield development, because it lets the core team of 2-3 people per service go about their development work without consulting anyone external. It lets them throw away any overriding convention or cultural concerns, and it avoids the difficulties of cross-group coordination. But it leads to a completely unmaintainable wreck when things transition into production.

This is not to say that no one will have a successful microservice deployment or that it's always a bad choice, but it usually goes way off the rails.

[0] https://en.wikipedia.org/wiki/Conway%27s_law

Re:The Death of Microservice Madness in 2018 by bri3d on Sunday January 21, 2018 @09:15PM (#16201442)
This I can entirely agree with - framing my point around Conway's law works well and I think I can reframe my question as "is the expression of Conway's law a management failure, or is it the mis-structuring of the organization causing the expression to be harmful?"

The parent post I was replying to seemed to simplify things down to "let your developers communicate and they'll build a more coupled system that works, instead of a morass of microservices that don't." That's another thing that looks good on paper but doesn't scale, at least in my experience.

Re:The Death of Microservice Madness in 2018 by meddlepal on Sunday January 21, 2018 @10:13PM (#16201613)
I think my point was misunderstood, probably because I did a poor job of explaining it as I was cramming a hamburger in my facehole and watching the Pats win the AFC :)

I think in many cases microservice architectures appeal to engineering organizations with poor communication and cooperation skills where developers desire to be strongly independent because of the lack of management creating a cooperative and coordinated dev and work environment. I think that's actually saying something very similar to the Conway Law idea brought up by the other poster.

Re:The Death of Microservice Madness in 2018 by tyingq on Sunday January 21, 2018 @07:00PM (#16200855)
I wouldn't dismiss the effect of résumé based development either. Even if subconscious, having the latest buzzwords on your CV is a motivator.
Re:The Death of Microservice Madness in 2018 by maxxxxx on Monday January 22, 2018 @12:26AM (#16202128)
For me that'a conscious motivator :-)
Re:The Death of Microservice Madness in 2018 by somberi on Monday January 22, 2018 @02:39AM (#16202575)
" Microserivces desire springs up because of a lack of communication culture and desire for siloification" - Would have upvoted this more than once if possible.
Re:The Death of Microservice Madness in 2018 by raspie on Sunday January 21, 2018 @07:48PM (#16201042)
To put it in an even less flattening way, the real problem are developers, not the paradigm. Your company's code will be as good as your developers are regardless of the paradigm.

Microservices will not help you if your developers have the same level of skill and foresight as whoever wrote the monolith, which is probably true if those devs were selected by the same hiring process that your company has today, subject to the same organizational effectiveness, etc.

Re:The Death of Microservice Madness in 2018 by realityenigma on Sunday January 21, 2018 @09:55PM (#16201550)
I think you actually have hit the proverbial nail with the hammer. I've seen firsthand the terrible talent pool, at least here in the south-west US. We've done ourselves a disservice trying to get everyone and their brother to become a programmer because...economy! and more accurately, I want more money.
Re:The Death of Microservice Madness in 2018 by iamdave on Sunday January 21, 2018 @10:30PM (#16201671)
They haven't hit the proverbial nail with the hammer, they've hit the railroad spike with a sledge; IMO it's 100% about your environment and the demands and obligations your development team has against it's own obligations to deliver. I'm not going to say microservices are the cornucopia, smoking gun or even smoldering slingshot, but much of the dissent in this thread seems predicated on the idea that they are the end result and not merely an optional path to take for desired outcomes of deliverability.
Re:The Death of Microservice Madness in 2018 by tabtab on Monday January 22, 2018 @11:49AM (#16205786)
Re: ...the real problem are developers, not the paradigm. Your company's code will be as good as your developers are regardless of the paradigm.

Indeed! Good developers/architects spot repetition or weaknesses in current techniques and can often devise solutions that can be added to the stack or shop practices with minimal impact. You don't necessarily need paradigm or language overhauls to improve problem-areas spotted. Poor developers/architects will screw up the latest and greatest also.

Re:The Death of Microservice Madness in 2018 by qaq on Sunday January 21, 2018 @11:38PM (#16201964)
"Your company's code will be as good as your developers" as good as your companies nn% of worst developers
Re:The Death of Microservice Madness in 2018 by humanrebar on Sunday January 21, 2018 @08:00PM (#16201081)
> In my opinion, only the extremely good developers seem to comprehend that they are almost always writing what will be considered the "technical debt" of 5 years from now when paradigms shift again.

I've also seen really bad developers with that attitude: it's all crap, so just ship whatever already.

The good developers write code that can be replaced, rewritten, or rescaled later. Though, charitably, both monolithic service and microservice people are trying to do exactly that. It's just what sort of scale they're thinking about and what part of the software development lifecycle they think will be especially difficult going forward.

Re:The Death of Microservice Madness in 2018 by elgenie on Sunday January 21, 2018 @08:35PM (#16201243)
The critical distinction between "it's all crap, so just ship whatever already" and what the grandparent wrote is that "technical debt" doesn't reside in easily disposable code/components, but rather as may-need-to-be-rectified-but-maybe-not-right-now downsides in what is enormously useful and producing value.

Good developers create code that's prepared for the possibility of being modified repeatedly and becoming foundational; on the other hand, preparing for code/components to be thrown away is a no-op.

Re:The Death of Microservice Madness in 2018 by humanrebar on Sunday January 21, 2018 @11:00PM (#16201818)
> ...preparing for code/components to be thrown away is a no-op.

You might be agreeing, but I find that the bad code that sticks around is bad code that is hard to get rid of. So in that sense, code that is removable isn't a no-op. It takes some effort, for instance, to keep a clear dividing line between two components so that either may be replaced someday.

Re:The Death of Microservice Madness in 2018 by foo101 on Sunday January 21, 2018 @10:27PM (#16201660)
> The good developers write code that can be replaced, rewritten, or rescaled later.

You make a very good point.

Over the years, I learnt that almost nobody except the developer and maybe one or two peer-developers cares about good quality code. The management just wants to ship services/products. They don't care how good the code is. All they care is that they can meet their deadlines. Of course, good quality code can increase the chance of meeting deadlines, but working long hours can also increase the chance of meeting deadlines. Management does not understand code, but they understand working long hours.

If I ignore this and still care enough to write good quality code, in nearly all projects, I am not going to be the only one to work on the code. There is going to be a time, when someone else has to work on the code (because responsibilities change, or because I am busy with some other project). As per my anecdata, the number of people who do not care about code quality far exceeds those who do. So this new person would most likely start developing his features on the existing clean code in a chaotic manner without sufficient thought or design. So any carefully written code also tends to become ugly in the long term.

In many cases, you know that you yourself would move out the project/organization to another project/organization in a year or so, and the code would become ugly in the long term no matter what you do, so why bother writing good code in the first place!

It is very disappointing to me that the field of programming and software development that I once used to love so much out of passion has turned out to be such a commercial, artless, and dispassionate field. How do you retain your motivation to be a good developer in such a situation?

Re:The Death of Microservice Madness in 2018 by dkersten on Monday January 22, 2018 @06:51AM (#16203687)
> I learnt that almost nobody except the developer and maybe one or two peer-developers cares about good quality code.

No, but they do care that this seemingly (to them) trivial change a year later takes two weeks instead of half a day.

> How do you retain your motivation to be a good developer in such a situation?

I honestly don’t know. I’m currently taking a little time out from work, but I’m dreading going back in a month because right now, I am completely disinterested in computers and especially software, things I used to love and be incredibly passionate about. Now with stuff like meltdown and spectre, technology just seems like this dumb house of cards and I have no energy for this BS. I’m pretty sure its burnout and it will pass eventually, but I just hope it does so soon as I don’t know how else to pay the bills.

On the plus side, I’ve spent a lot less time at the computer these last few weeks and spent time on other interests, including learning sleight of hand and card magic. :-P

Re:The Death of Microservice Madness in 2018 by virgilp on Monday January 22, 2018 @02:09AM (#16202459)
> good quality code can increase the chance of meeting deadlines, but working long hours can also increase the chance of meeting deadlines.

No, that's not true, except in a very superficial sense. Yes long hours _can_ increase the chance of meeting deadlines... but often, it doesn't - or more precisely, it only works if the code quality is decent.

"Code quality" is not about following whatever patterns are en vogue today, or using the latest dev language. It is mostly about simplicity - dealing with few things at a time, and making those things explicit. If you need to understand the entire solution, and the entire domain model, and all the edge cases before making the tiniest of modifications - long hours are not going to help you.

To go back to microservices: many companies claim to build microservices, but actually build a distributed monolith. This doesn't help productivity, it actively harms it.

Re:The Death of Microservice Madness in 2018 by dkersten on Monday January 22, 2018 @06:50AM (#16203682)
As peopleware says, overtime is never free. Yes, it definitely can help you meet deadlines if its done every so often, but if its a regular thing, then “normal” productivity will be much lower, so it can’t sustainably help meet deadlines again and again and again.
Re:The Death of Microservice Madness in 2018 by mauritzio on Monday January 22, 2018 @12:22AM (#16202122)
Maybe go to where hardcore stuff is done? Compilers or Spaceships satellites airplanes? I've no idea... :/ Tell me if you find one. I just stopped it and started drawing again at least anyone can 'see' it. Well modern art is a lot of bullshit too ;)
Re:The Death of Microservice Madness in 2018 by brain5ide on Monday January 22, 2018 @12:51AM (#16202201)
I think that's a problem of money flooding the gates. Until just recently I was afraid of the tech bubble popping, but with seeing people, who never cared or understood tech entering the field I'm afraid it may never pop. Of course, if I was any good I shouldn't care about that and be working my own way, but that's not the case.
Re:The Death of Microservice Madness in 2018 by BatFastard on Sunday January 21, 2018 @10:50PM (#16201772)
There are good organizations out there, at least teams that are good. Problem is most organizations are just in it for the short term...
Re:The Death of Microservice Madness in 2018 by Anchor on Monday January 22, 2018 @05:01AM (#16203217)
Management acts this way because they have no way of evaluating the effects of maintaining code quality. Only developers with significant experience are able to evaluate the long-term impact of each technical decision (and even we are still not very good at that).

<rant target="not you">

And why should management be able to evaluate technical decisions and code quality in the first place? That's our job! The problem is that we have given management the false choice of lower quality + faster shipping vs. higher quality + slower shipping, when in fact we should not have given them any say in the matter. And before we hit me with the but we have to be first to the market and fix it later line, I need to point out that companies don't die because they were not first to the market, they die because their operations and development became so slow and costly that they could not compete anymore.

What we should do as developers is to stop talking about code quality to our managers! When we are asked for an estimate, we give them as accurate estimate as possible with the code quality that we feel is sufficient for long-term maintainability of the system. And we don't negotiate on quality anymore, and especially we don't negotiate on estimates! Only functionality (MVP and all that). Then we don't need to ask for refactoring time, rewrite time, code polish time, stabilization time on our systems (that we hardly ever get anyway), because it is all in there in the original estimate.

Management expects stable productivity, they base their estimates of operational costs and investment costs on the number of people working on the system, not on the age of the codebase (why should an old codebase cost more to work with? they ask). If we give them false hope on the productivity of the team by producing crap fast in the beginning, the whole business case may collapse when we produce the same crap slower and slower and slower later. Management is in no position to evaluate the effects of bad code on the business case, because they don't understand that. We do. The only thing we can do as developers, is to remove the option of low quality code altogether.

And we say that it is so slow to create quality code? And estimation is hard?

We learn it. We can write high quality code as fast as the usual junk we see in most systems. We keep track on our estimates and evaluate how well we did, and improve. But it takes effort. All I can say is that it is our responsibility.

</rant>

On a positive note, the solution to this on a personal level is to find a place to work where technical excellence is built in the development culture (and there are such places), and cultivate that culture especially with the new hires (mentoring, pairing, etc.).

Re:The Death of Microservice Madness in 2018 by simias on Monday January 22, 2018 @04:20AM (#16203046)
The #1 thing they should teach in any engineering school (or maybe any school period) is "you shouldn't remove/replace/change something until you've understood why it was done that way in the first place". Or maybe a somewhat equivalent version: "you're not as clever as you think you are and the people who came before you were not as dumb as you think they were".
Re:The Death of Microservice Madness in 2018 by dancek on Monday January 22, 2018 @05:26AM (#16203330)
This principle is commonly known as Chesterton's fence. https://en.wikipedia.org/wiki/Wikipedia:Chesterton%27s_fence
Re:The Death of Microservice Madness in 2018 by ZeroGravitas on Monday January 22, 2018 @04:47AM (#16203168)
Would those graduates be rewarded or penalised for their professionalism? I would guess penalised in a depressing number of situations.
Re:The Death of Microservice Madness in 2018 by stult on Monday January 22, 2018 @07:12AM (#16203788)
>"you shouldn't remove/replace/change something until you've understood why it was done that way in the first place".

That only works until you encounter something for which there was no rational reason in the first place.

Re:The Death of Microservice Madness in 2018 by artimaeis on Monday January 22, 2018 @09:37AM (#16204612)
I've yet to encounter anything erected for no reason at all. But there are plenty of projects where rationality didn't have much a role in their choice of creation. Examples like that can usually be tied to a previous dev/engineer wanting to pad their resume with a new project, maybe with a new framework. Or a manager who wanted their team to have more completed work to look better on some miscalculated performance metric. Failing those options - it could be a bored employee who just wanted to make _something_.

That is to say - most people are acting rationally, but their context to an outsider may not appear rational. Maybe there's something to be said for a general relativity of rationality?

Re:The Death of Microservice Madness in 2018 by kbuchanan on Sunday January 21, 2018 @10:24PM (#16201652)
A little over two years ago my little team of three (gasp!) succumbed to the allure of microservices. After six months of writing custom solutions for problems I'd created, I bagged it. The _one_ upside of our microservice architecture was how simple it was to consolidate back into a single app. Only took a couple months. I believe the theoretical benefits of microservices, namely, hard domain boundaries, remain compelling, but geez, I also learned its benefits are extremely circumstantial.
Re:The Death of Microservice Madness in 2018 by cookiecaper on Monday January 22, 2018 @12:16PM (#16206010)
Props to you for realizing you were going down a bad path and cutting your losses. Many people are unwilling to honestly evaluate their projects until they've been in the rear view mirror for a long time. A great deal of software is driven by ego and fads, and it's great to see someone make a decision to change pace based on practicalities.
Re:The Death of Microservice Madness in 2018 by WalterBright on Monday January 22, 2018 @04:43AM (#16203143)
I've been writing code since the 70's. The further back in time one looks, the worse my code is. The good news, I suppose, is that one is never finished learning how to write code better. Until they plant me, that is.
Re:The Death of Microservice Madness in 2018 by rtpg on Sunday January 21, 2018 @09:18PM (#16201451)
Do you legit think that people are all just doing this as a fad?

There's legitimate arguments for looking at these patterns, the big one being "isolation of concerns". The biggest counterargument is that the ops cost is much higher than assumed, of course.

The idea that the existing code base could have problems shouldn't be a surprise to anyone. Amazon almost fell over because of their code base. Twitter too. And its not even not doing it right, but simply that scales change. Or patterns change.

And in new companies, it _could_ be that people don't get it.

"Microservices as mass delusion" discounts a lot of people who are really thinking hard about how to handle the pros and the cons of things.

Re:The Death of Microservice Madness in 2018 by lmm on Monday January 22, 2018 @06:05AM (#16203459)
> Do you legit think that people are all just doing this as a fad?

Yes. That's been my experience.

> The idea that the existing code base could have problems shouldn't be a surprise to anyone. Amazon almost fell over because of their code base. Twitter too.

Most organisations aren't Amazon. Most organisations aren't Twitter. And even these web-scale organisations aren't as all-in as the microservice advocates. (I worked at last.fm for a time and while we did many things that could be classed as "microservices" from a certain perspective, we didn't blindly "microservice all the things")

> "Microservices as mass delusion" discounts a lot of people who are really thinking hard about how to handle the pros and the cons of things.

Most fads start from a core of sensible design. The web really did revolutionise commerce, but many "x, but on the web" companies of the late '90s really were dumb.

Re:The Death of Microservice Madness in 2018 by nucleardog on Sunday January 21, 2018 @11:17PM (#16201883)
> Do you legit think that people are all just doing this as a fad?

As you say there are a lot of pros and cons to any architecture or paradigm, which is why we're still talking about it and saying things like "right tool for the job" and not just using the One True Method(TM).

I legit think that a lot of people using the new hotness as a form of cargo cult programming with no understanding of the methods they're considering or how they apply to the problems they're trying to solve.

It's not just microservices that are improperly applied. I've been in the industry long enough to see dozens of languages, technologies, paradigms, processes, and everything else hailed as the second coming of christ and applied inappropriately all over the place until the shinyness wore off.

And I mean... When we start talking about developing for Amazon scale, we're already talking about situations that don't apply to 99% of developers. Not a great argument that their cases aren't inappropriate applications of the pattern.

Re:The Death of Microservice Madness in 2018 by philwelch on Monday January 22, 2018 @12:02AM (#16202061)
The ops cost of not using microservices is a lot higher than you'd think, too. At some point, when you have hundreds of engineers and your monolith is compiled together from libraries written by a dozen different teams and you have to try and make one heroic release per week, except half the time it fails and you have to go back and fix it, and absolutely no one in the company can ship a new feature because you're blocked.
Re:The Death of Microservice Madness in 2018 by lmm on Monday January 22, 2018 @06:09AM (#16203474)
You don't need microservices to fix that, you need CI and maybe some release processes for your libraries.

There will come a point where you can't scale a monolith, sure, but that point is thousands rather than hundreds of engineers.

Re:The Death of Microservice Madness in 2018 by GordonS on Monday January 22, 2018 @01:29PM (#16206635)
Also, there is a nice place between microservices and a monolith
Re:The Death of Microservice Madness in 2018 by philwelch on Monday January 22, 2018 @03:10PM (#16207467)
I'm gonna just be honest here and say that I don't really know the difference between "microservices" and "service-oriented architecture" except for the notion that "microservices" implies breaking up your services before they get too big and hairy, which kind of seems obvious.

If some companies go completely nuts and deploy 5 microservices per developer, then yes, that is madness. If all of those microservices are REST/JSON microservices, that's madness squared because you're wasting half your time in serialization/deserialization. If you're managing all of this stuff with Kubernetes because it's trendy rather than because it's actually necessary for your use case, then you're probably making a bad call.

But ultimately, services give development teams ownership over features in a complete, end-to-end way that is fundamentally impossible with monoliths once you're past a certain size.

Re:The Death of Microservice Madness in 2018 by Izkata on Monday January 22, 2018 @08:58PM (#16210226)
> I'm gonna just be honest here and say that I don't really know the difference between "microservices" and "service-oriented architecture" except for the notion that "microservices" implies breaking up your services before they get too big and hairy, which kind of seems obvious.

The impression I get - and this could be totally wrong - is that the difference is how the services relate to each other.

In this post's example, 5 of the 6 microservices look like something that would be exposed to the user in some way. I would call this a microservice architecture; they're networked together in a way where no one thing orchestrates the others. They likely all touch the same data storage, but the overall structure is mostly flat.

In a service-oriented architecture, there'd be a tree-like or graph-like hierarchy. To an end user, it would look monolithic, but the monolith would, behind the scenes, delegate to the "user-facing" services such as Upload and Download. Upload and Download would then use the Transcode service as appropriate. But the important part is that this would all be one way: Transcode isn't allowed to contact Upload or Download, just return the result to whatever called it.

Re:The Death of Microservice Madness in 2018 by rb808 on Monday January 22, 2018 @12:08AM (#16202081)
> the pattern I've seen time and time again is Developers thinking the previous generation had no idea what they were doing and they'll do it way better. They usually nail the first 80%, then hit a new edge case not well handled by their architecture/model

Perfect, I've seen this happen many times as well. I think you're generous on the 80% part. Usually they nail the first 50%, but they time they get to 80% its getting just as messy and some of the developers are planning another rewrite again.

Re:The Death of Microservice Madness in 2018 by ibejoeb on Sunday January 21, 2018 @07:27PM (#16200956)
It's not exclusive to inheritance, though. There are lots of times that the original principal decides that he could have done it better and winds up in exactly the same place. It could be progress, too, if it trades on set of failure modes for another that is less severe or less frequent.

This is why a team needs access to good architect who's seen the paradigms shift, or even cycle. You're almost never starting from scratch, so you really need someone who's able to incorporate better or more suitable tech without throwing out the baby.

If you're microservices-based, that last part is easier, even if it falls into one of the described pitfalls, e.g., system-of-systems.

Re:The Death of Microservice Madness in 2018 by Cthulhu_ on Monday January 22, 2018 @04:56AM (#16203195)
This is not wrong; this is I think also the reason behind the "framework of the month" craze in JS that seemed to be a thing last year / year before. Implementing business value is boring; working with new technology is cool and fun. I'm not impervious to that either. I mean I'm writing a HN comment while I should be building a feature :p
Re:The Death of Microservice Madness in 2018 by warrenm on Friday January 26, 2018 @03:39PM (#16242690)
You need to be keeping a ledger on technical debt, the same way any and all other "debt" is tracked - http://www.hydrick.net/?p=2394

"Here’s the thing, most of the time we do something that incurs technical debt, we know it then. It’d be nice if there’s a way for us to log the decisions we made, and the debt we incurred so we can factor it into planning and regular development work, instead of trying to pay it off when there’s no other alternative."

Re:The Death of Microservice Madness in 2018 by mstade on Friday January 26, 2018 @04:24PM (#16243018)
I was wondering how such a ledger might work, given that it should be about as difficult to quantify this kind of debt as it may be to estimate the time and effort required to implement certain changes in general. Later on in the post, there's this nugget of gold:

    So how would this ledger work? Well, for starters it has to
    track what we can’t do because of current technical debt.
    It should also be updatable to note any complications to 
    subsequent work or things you can’t do yet because for old 
    design decisions. At this point, you’re tracking the 
    “principle” (the original design decision causing technical 
    debt) and interest (the future work that was impacted by 
    the debt).
That's it, isn't it? You need to define the principle and the interest, and these two are actual tangible things in the form of specific decisions (principle) and things that are now adversely affected by them (interest.) If these are linkable, then it should become trivial to compute a number to this debt, whether it is simply just the number of things adversely affected or some other kind of aggregate like the combined estimated effort of those adversely affected things. This debt could probably be calculated in many different ways, but the fact that you can properly quantify it should make decisions on whether to tackle or ignore the debt much more informed.

This was an eye opener for me – thanks for sharing!

Re:The Death of Microservice Madness in 2018 by warrenm on Monday February 05, 2018 @05:55PM (#16313011)
Figuring how to link the “principal” and “interest” is definitely the lynchpin ... but if you’re not even noting there is principal and interest, you’ll never be able to recover
Re:The Death of Microservice Madness in 2018 by chillidoor on Monday January 22, 2018 @05:55AM (#16203432)
While I'm not arguing with you, I have had a different experience working with developers and microservices, perhaps because the teams have been more seasoned/experienced and there is more of a collaborative environment.

I found that a lot of the time developers start moving towards microservices when they find that a monolithic app becomes too difficult to work on. For example, multiple teams working on the same codebase will often have accidental code conflicts. Plus, scaling a monolithic app because one part of it is under load isn't always cost effective or logical. So, teams will start to break off components into microservices to make development easier and less painful. Naturally this has to be weighed up as microservices bring a different set of challenges, 'gotchas', etc, etc but in my experience the teams have done a proper job discussing the pros and cons.

Re:The Death of Microservice Madness in 2018 by bonesss on Monday January 22, 2018 @06:57AM (#16203717)
I think that kind of process, slow decomposition based on performance and requirements, is the only sane approach.

It's also reflected in how we manage code at the micro-level: collecting related logic into a module until it becomes unwieldy and then separating out independent sub-functionality into their own modules and dependencies as they grow...

There is no right size for a class. Smaller is better, but the ideal is "right sizing". What's right? Well, that's tricky, but whatever doesn't hurt is pretty ok.

There's no right size for a service. Smaller is better, but...

Re:The Death of Microservice Madness in 2018 by chillidoor on Monday January 22, 2018 @08:31AM (#16204164)
Yep, there is no real "one size fits all" to microservices
Re:The Death of Microservice Madness in 2018 by efa on Monday January 22, 2018 @12:47PM (#16206288)
I 100% agree. I even catch myself thinking I didn't know what I was doing when looking at code I wrote years before. I'll jump into rewriting it and discover it was written that way for a reason. I've learned to trust my former self wasn't an idiot.
Re:The Death of Microservice Madness in 2018 by tboyd47 on Monday January 22, 2018 @09:25AM (#16204518)
That's absolutely true, but it's not specific to microservices. The pendulum could very well swing back the other way

I've come to view microservices in the context of Conway's Law. If you have a team of developers working on a project who don't like to communicate or work with each other, do not understand version control, and all have different programming styles and technology choices, the only feasible architecture is one service per person.

I have no trouble believing that this is what's really behind Netflix's adoption of microservices. From what I've heard it's a sociopathogenic work culture, and if I worked there I would probably want to just disappear from everybody too.

Re:The Death of Microservice Madness in 2018 by corpMaverick on Monday January 22, 2018 @09:42AM (#16204646)
You do have to use Conway's Law to your advantage. At least be very aware of its effects.
Re:The Death of Microservice Madness in 2018 by pweissbrod on Sunday January 21, 2018 @08:37PM (#16201253)
The monolith first approach has always served me well. Nascent projects benefit from portability because they need higher amounts of flux. As they mature let's assume they grow in scale and integrations and somewhere along the line it becomes sensible to break off pieces into services.

To me the big benefit of microservices is scaling out components into flexible independent release cadences but the trouble comes with employing them too early.

https://martinfowler.com/bliki/MonolithFirst.html

Re:The Death of Microservice Madness in 2018 by maga_2020 on Sunday January 21, 2018 @10:56PM (#16201794)
I think these are appealing for 2 reasons:

1. There is a believe, that component isolation (taken to extreme by microservices) enables better productivity of the development department.

That is more features, more prototypes, more people can be moved in and out a given role. So that those 5 crusty programmers are not a bottleneck for the 'next great idea' that a Product manager or CIO reads up on.

2. There is a constant battle for the crown of "I am modern" (eg data science, micro services, big data ) That is going on in every development or technology organization. Where the closer you are in your 'vision' to google or Netflix, the more 'modern' you are.

The rest of the folks is 'legacy'. So you get budgets, you get to hire, you get to 'lead'. Micro-services is the enabler to help to win this battle (although, probably, for a short term).

---

I personally, do not believe that microservices bring anything new compared to previously used methods of run-time modularization :

  Plugins
  Web services
  RPC
  N-tier architectures

I do not think they replace the standards like CORBA, although I think they will end up eventually replicating it, with better thought out standards and tools.
Re:The Death of Microservice Madness in 2018 by jlg23 on Monday January 22, 2018 @09:49AM (#16204697)
I don't think microservices are loved by developers so much because they are technically superior but because they allow for quicker/safer decision-making on management level - just like "agile development" imho only helps trainee-devs but shines in providing clear communication strategies between management and developers (read: keeps mgmt off dev's back for at leat 6h a day).

Abstractly spoken, I don't care whether you call f(x) directly, via IPC, RPC or as a microservice. In my preferred programming languages there is not much of a difference anyway.

Re:The Death of Microservice Madness in 2018 by tehlike on Sunday January 21, 2018 @08:59PM (#16201367)
If something isn't broken, do not fix. I think part of it is that large companies can keep engineers happy by giving them rewrites. Otherwise, not enough projects to keep everyone entertained.
Re:The Death of Microservice Madness in 2018 by deepsun on Monday January 22, 2018 @12:36PM (#16206202)
Well, the best architectured project I've ever worked on in Google was actually rewritten 4 times from scratch. I believe rewriting is always good for the project. Not always for business, though. Fortunately, Google had resources to allow rewrites to happen.

Rewrites also serve as thorough code review and security audit.

Re:The Death of Microservice Madness in 2018 by tehlike on Monday January 22, 2018 @11:41PM (#16211053)
Were the previous ones not getting the job done? 4 rewrites over what time period?

I am more in the camp of "let's do something useful" than "let's rewrite this because previous guy didn't do it good, or it no longer meets our demands". Because whatever you do it will get rewritten again, and it's imho useful to resist the urge.

Ps: also a googler.

Re:The Death of Microservice Madness in 2018 by jrs95 on Monday January 22, 2018 @08:11AM (#16204064)
This is usually true but I’ve recently been introduced to a legacy codebase which is so bad it can hardly be modified.

Mixed tabs and spaces, sometimes one space indentation or no indentation at all, 1000+ line Java methods, meaningless variable names, no comments or documentation. SQL transactions aren’t used, the database is just put into a bad state and hopefully the user finishes what they’re doing so it doesn’t stay that way. That’s just the server. The UI is just as bad and based on Flash (but compiled to HTML5 now)

Re:The Death of Microservice Madness in 2018 by tvanantwerp on Monday January 22, 2018 @10:00AM (#16204779)
An important piece of advice I was given when embarking on my technical career:

> You don't solve problems. You take the problems you have, and exchange them for a different set of problems. If you're doing your job, the new problems won't be as bad as the old problems. That's all you can really do.

Re:The Death of Microservice Madness in 2018 by gadders on Monday January 22, 2018 @12:51PM (#16206316)
Re:The Death of Microservice Madness in 2018 by fulafel on Monday January 22, 2018 @01:18AM (#16202279)
The reinvention and re-discovery of the problems can be very good for the new developers who are taking over a slice of the monolith's functionality. And it an happen rapidly, on the new developers' own terms. Depends on the case.
Re:The Death of Microservice Madness in 2018 by deepGem on Monday January 22, 2018 @05:30AM (#16203349)
I wonder why. Isn't it so unproductive to keep tearing down stuff and rebuilding them with the next shiniest tool ? I mean, you are making very little progress on product features.
Re:The Death of Microservice Madness in 2018 by sply on Monday January 22, 2018 @07:58AM (#16204001)
But in fact, K8s provides more robustness than old good kinda monolith Pacemaker
Re:The Death of Microservice Madness in 2018 by amrx101 on Monday January 22, 2018 @12:58AM (#16202224)
Damn, you described my manager.