News for hackers. Stuff that matters.
Re:Faster, cheaper, and better: A story of breaking a monolith by trishume on Wednesday July 17, 2019 @05:56PM (#20464448)
It seems like most or all of the benefits listed in this post could have been achieved just as easily by changing code in their monolith. Like the ElasticSearch optimizations and the decoupling from the relational database.

Similarly the benefits they do tie explicitly to microservices like scoped errors and tests can also be achieved in monoliths with simple filters on the errors and tests being run, without all the work of splitting out the service.

Re:Faster, cheaper, and better: A story of breaking a monolith by seperman on Wednesday July 17, 2019 @06:20PM (#20464622)
I do not disagree with your comment. As I mentioned in the article the main reasons to break into micro-services are:

1. Independent releases 2. Easier for on-boarding new engineers 3. Scale micro-services independently

The rest of the article is about how to use the breakout opportunity to make major changes to the code and the data-structure. The goal is for the users of the service to have an aha moment of "Search is so much faster after the breakout!".

Re:Faster, cheaper, and better: A story of breaking a monolith by gitgud on Wednesday July 17, 2019 @08:19PM (#20465418)
Microservices are almost completely opposed to agile development. They require a strong architecture before implementation and are much harder to reconfigure regardless of versioning. The running system is also hard to manage.
Re:Faster, cheaper, and better: A story of breaking a monolith by BurningFrog on Wednesday July 17, 2019 @11:44PM (#20466498)
Microservices are typically an organizational rather than technical feature.

If each team are given their own microservice to manage the way they choose, things can work smoothly.

Re:Faster, cheaper, and better: A story of breaking a monolith by seperman on Wednesday July 17, 2019 @08:27PM (#20465461)
Not sure if I agree with you regarding the agile part. If each team owns their "micro-service", then they can have their own "sprints".
Re:Faster, cheaper, and better: A story of breaking a monolith by gitgud on Wednesday July 17, 2019 @10:43PM (#20466237)
Yes in very large systems that's true. But in the other systems, there's huge overheads which restrict systems from changing.

- Multiple execution environments

- Complexity in communication between services

- Managing the versioning of each service and it's dependent services.

Although services are easily to scale and change independently, they are hard to reconfigure globally, which means the application as a whole is hard to change...

Re:Faster, cheaper, and better: A story of breaking a monolith by seperman on Thursday July 18, 2019 @12:39AM (#20466757)
There are pros and cons to the micro-services architecture. To your point it is not a black or white solution. Our systems are fairly large and over-engineered.

Often switching to microservices means reducing the complexity of communication between teams at the expense of increasing the complexity of communication between services.

Re:Faster, cheaper, and better: A story of breaking a monolith by budabudimir on Wednesday July 17, 2019 @08:50PM (#20465596)
What is the difference between each team owning a microservice and owning a part of the monolith?

There is common release process, but with proper infra in place, that shouldn't be a problem.

Re:Faster, cheaper, and better: A story of breaking a monolith by sheeshkebab on Thursday July 18, 2019 @07:19AM (#20468618)
It all comes down to coordination and regression, which are quite complex in monoliths.

Suppose you'd like to push code change to production for your monolith - how do you know that someone else's change 1) is ready to to production together with yours 2) does not affect your module. Typically these can't be answered easily - and so release process is converted to manual testing and scheduled (and often slow) releases.

Re:Faster, cheaper, and better: A story of breaking a monolith by seperman on Wednesday July 17, 2019 @09:04PM (#20465676)
I was just disagreeing with "Microservices are almost completely opposed to agile development". You can be agile in both monolith architecture and micro-services. I don't see why microservices can be opposed to agile.
Re:Faster, cheaper, and better: A story of breaking a monolith by novaleaf on Thursday July 18, 2019 @01:02PM (#20471775)
I think the only reason it might be hostile to agile is if your interface keeps changing (api other things contact it with, or what it contacts others via)

But if those things are constantly in flux, it really isn't a good candidate for splitting into a microservice in the first place.

Re:Faster, cheaper, and better: A story of breaking a monolith by simplify on Wednesday July 17, 2019 @09:16PM (#20465732)
How is it easier to on-board new engineers? You mentioned but did not explain this point.
Re:Faster, cheaper, and better: A story of breaking a monolith by fouc on Wednesday July 17, 2019 @10:00PM (#20466021)
Easier to on-board in the sense of limiting what new engineers can see, only giving them smaller pieces of access.

Otherwise it's probably the opposite, takes a lot longer for new engineers to understand the full system. Perhaps even reduces the bus factor, since less people understand all the moving parts.

Re:Faster, cheaper, and better: A story of breaking a monolith by seperman on Thursday July 18, 2019 @12:26AM (#20466698)
Exactly. I could not have explained it better than you.
Re:Faster, cheaper, and better: A story of breaking a monolith by accnumnplus1 on Thursday July 18, 2019 @08:38AM (#20469106)
That can be done with libraries.
Re:Faster, cheaper, and better: A story of breaking a monolith by seperman on Thursday July 18, 2019 @12:57PM (#20471720)
We do use libraries as much as possible. However we avoid putting business logic into libraries.
Re:Faster, cheaper, and better: A story of breaking a monolith by drbojingle on Wednesday July 17, 2019 @07:34PM (#20465131)
How many engineers do you have and what's your growth in manpower like?
Re:Faster, cheaper, and better: A story of breaking a monolith by ryan_j_naughton on Wednesday July 17, 2019 @09:42PM (#20465914)
Our entire product, engineering, data science, design org is around 80-90. Engineering is about 50-65% of that.

But search/merchandising is a small fraction of the team. We have 2 dedicated backend engineers on the search team.

We are growing rapidly. We are aiming to double the size of the eng org in the next 8 months.

Re:Faster, cheaper, and better: A story of breaking a monolith by drbojingle on Thursday July 18, 2019 @07:26AM (#20468656)
Cool, thanks for sharing. So is your micro-service architecture you described in your article for the 2 engineers or the 40? Asking because 40+ doubling to 80+ seems like a great fit for Micro-services, but 2 people, eh, not so much, IMO.
Re:Faster, cheaper, and better: A story of breaking a monolith by ryan_j_naughton on Wednesday July 17, 2019 @06:14PM (#20464586)
I don't disagree.

Micro-services to us roughly translate to k8/kubernetes deployments. By splitting the monolith into separate deployments we had more granularity in responding to web traffic vs inventory processing pipeline traffic.

In our case we did happen to have a new repository for it, but the same could have been achieved with better separation of concerns and refactoring within a monorepo/monolith.

But if you are already separating concerns to that level (e.g. only some parts of a service's code base are allowed to talk to X data store and other parts are only allowed to talk to Y data store), then why not break them out into separate services.

You get follow on benefits of the service separation including different teams can worry about fewer moving parts and can more easily work independently. Having well defined service boundaries implies properly versioned APIs. This is in stark contrast to having implicit APIs internal to a single service that often result from object oriented access patterns.

Re:Faster, cheaper, and better: A story of breaking a monolith by socialist_coder on Wednesday July 17, 2019 @06:15PM (#20464589)
Totally.

It does seem like they had a good reason for splitting out search though: "We needed to release search updates independently and changes were frequent."

But yeah, I'm not sure why they are attributing the perf gains to the microservices. Very curious...

Re:Faster, cheaper, and better: A story of breaking a monolith by seperman on Wednesday July 17, 2019 @06:27PM (#20464674)
The performance gains of the API were not the by-product of cutting into micro-services. Basically this article is about "We had some issues with the monolith, we cut it into micro-services and also did these other changes along the way that saved us money and gave us performance boost. Changes that we could have done in the monolith but they were less risky and easier to do in the micro-service in comparison to doing them in the monolith."
Re:Faster, cheaper, and better: A story of breaking a monolith by mattmanser on Wednesday July 17, 2019 @07:54PM (#20465280)
It's titled faster, cheaper, better:... microservices, implying they were all due to splitting into microservices. But as usual it turns out refactoring was the saviour and microservices achieved jack-squat apart from having something nice to put on his CV.
Re:Faster, cheaper, and better: A story of breaking a monolith by seperman on Wednesday July 17, 2019 @08:31PM (#20465485)
Lol, Mirco-service architecture is a vehicle that can make it easier to achieve those goals. It is not a black or white solution. There are pros and cons.
Re:Faster, cheaper, and better: A story of breaking a monolith by flukus on Wednesday July 17, 2019 @08:10PM (#20465376)
Did they explain what was stopping them from releasing search updates quickly from a stable branch of the monolith? Not that I disagree with the approach, deployment units are the best place to put application boundaries, but it doesn't seem like a good enough reason to re architect an application.
Re:Faster, cheaper, and better: A story of breaking a monolith by Marinlemaignan on Wednesday July 17, 2019 @06:45PM (#20464798)
Looking for some buzzy headline maybe ?
Re:Faster, cheaper, and better: A story of breaking a monolith by seperman on Wednesday July 17, 2019 @06:55PM (#20464867)
So far it has worked I guess!