Live data from Hacker News

Microservices Are Something You Grow Into, Not Begin With

nickjanetakis.com

81–90 of 159 posts

Re: Microservices Are Something You Grow Into, Not Begin With

#81
post #37

Bottom line is that it's all a case by case basis. However I'll always warn against slicing microservices too thin. Each slice is a moving part outside of the machine and therefore brings in additional risk. I recently refactored/rewrote a monolithic project into a few fairly chunky services. Each one is sliced by a broad context. The only reason I did it was because the monolithic app required separate physical depl…

The term used before "microservices" got trendy was "service-oriented architecture," or SOA.

So this isn't exactly a new idea. ;)

Re: Microservices Are Something You Grow Into, Not Begin With

#82

Microservices, test driven development, Agile, 4GL and so on. It's all the same thing: a technique that is applicable some of the time but not all of the time that ends up getting a bad rap because the people promoting them tend to come from the theoretical side of the street, and they see the subject matter as their new revenue stream. They will then promote it to be used even when it isn't applicable. A web based s…

>It's all the same thing: a technique that is applicable some of the time but not all of the time that ends up getting a bad rap because the people promoting them tend to come from the theoretical side of the street, and they see the subject matter as their new revenue stream.

Also because we've created an industry where everyone must stay up-to-date, so if anything gets traction, suddenly people start getting worried that those things are not on their resumes.

Re: Microservices Are Something You Grow Into, Not Begin With

#83

Earlier quoted context omitted.

Nah, your job is to lead the team in the most effective direction in order to fulfil business objectives, not build resumes.

Your job is whatever you agreed to when accepting that job. Some companies require managers to aid in the technical development of employees, some don't. Some provide a lot of latitude in how that's done, some don't.

> Some companies require managers to aid in the technical development of employees, some don't.

It's not about what a company "requires". It's about the moral duty you take on when you manage people.

Re: Microservices Are Something You Grow Into, Not Begin With

#84

Earlier quoted context omitted.

This sounds sanctimonious and rife with the exact same inexperience and overly brittle purist attitudes you are criticizing. It really is true that huge monolith legacy systems might prevent dev teams focused on product growth from even being capable of doing their jobs, let alone meeting aggressive deadlines. It doesn’t always mean microservices or heavy re-architecture is the right choice, but sometimes it absolute…

To be fair, here is a direct quote from the parent: »In the end, it's absolutely the case that a movement to microservices is something that should be evolutionary, and in direct need to technical requirements.« I would argue that what you did is exactly that. Perhaps with the caveat that it should have been done earlier. I'm not reading tha parent arguing that one should stick with a monorepo/monolith until the end…

[deleted]

Re: Microservices Are Something You Grow Into, Not Begin With

#85
post #18
post #11

I agree that microservices is the new "must have" technology but actually it isn't a great deal different from a monolith. The monolith can have separation between services and still requires interfaces to work between them. As others have said, microservices bring a lot of baggage that you might never have seen before (i.e. big learning curve) and the myth of isolated changes is just that, a myth. Unless it is some…

Indeed. It just replaces internal calls between services of your monolith with flaky and slower network calls.

Counterpoint: if network calls weren’t flaky and slow would it make a difference in deciding whether to separate modules via a physical machine boundary?

Re: Microservices Are Something You Grow Into, Not Begin With

#86

Most of the time, I've found a push to microservices within an organization to be due to some combination of: 1) Business is pressuring tech teams to deliver faster, and they cannot, so they blame current system (derogatory name: monolith) and present microservices as solution. Note, this is the same tired argument from years ago when people would refer to legacy systems/legacy code as the reason for not being able t…

I don't believe it os reasonable to portray microservices as the result of incompetence and blame-shifting. Microservices are actually a very basic and fundamental principle of software engineering: separation of concerns. If your system is extensive enough so that it covers multiple independent concerns and your team is large and already organized into teams focused on each concerns then it makes technical and organ…

[deleted]

Re: Microservices Are Something You Grow Into, Not Begin With

#87
We are finishing up a 2 year migration out of a data center to Aws and a complete rewrite of a Frankenstein Soa (of sorts) to a couple of monoliths.I was basically in charge of choosing the tech selection (we wanted to minimize tech stacks until we could get a handle on it) and the “how.”

A monolith made perfect sense as there was nothing salvageable, and I mean nothing. And the traffic requirements were definable, growing predictably and not that large. Pretty bag for a medium-sized enterprise.

Picture a company that has no tests, little documentation, 4500 line stored procedures (2000 sPROCS in total containing all the business logic), one data center and no dr, and they would deploy once every 8 days...in 2016! Oh, while making 300M a year with 600 employees.

We are weeks away from turning off the data-centers, have great test coverage, ci/cd; we deploy hundreds of times a week, site is much faster. We were able to combine our front end react tech to gives 99% code reuse in desktop/mobile web and native mobile.

The company makes more money than ever and we have made huge conversion wins by getting our shit together and doing normal, smart product things, while redoing the culture, software and infrastructure.

I hated fighting with these “do-nothing” people that had read articles about SOA/uServices/message passing arch/etc. the worst are the ones that can’t avtually do anything. They are usually the loudest.

In reality we use three different architectures, but the core business and logic is in one single backend DB and rails backend and it’s beautiful.

We have about 100 developers. We had a couple of issues with people stepping on each other at first, but with some structural changes to our app and some automated process (oh and letting 40ish people go while hiring new people) we solved it.

I can’t wait to burn the old servers to the ground. I’m leaving our so much detail. One day I’m going to write the whole story along with my two other partners who really spearheaded the change.

* front end monolith talking to a backend over REST apis. We have internal monolithic applications to help us get our job done. And We have a message passing system called Wormhole and a single uService. Simple...

Re: Microservices Are Something You Grow Into, Not Begin With

#88
post #17

There's trade-off's. They are using a fairly complex CI while with micro-services you release each service individually. It's hard to turn a monolith architecture into a architecture with micro-services. So it all depends on what works best for you. The idea with micro-services is that with a much smaller service - development is faster and cheaper, you can for example rewrite the entire service, use different softwa…

Why do you believe development would be faster and cheaper? Because the individual services are smaller? Come on. The system is as large and as complex as will be necessary. Separating components with network calls doesn't make them any less interdependent.

There's a saying that if it takes one man one year to build a wall, you hire 20,000 workers and the wall would get built in a couple of seconds. That's the monolith thinking. Now if we make several small teams, and each team build a very tiny wall anywhere they like, each team could iterate faster, and quickly rebuild that tiny wall if needed, that's the thinking of micro-services. The later plan is of course not so smart if the wall is intended to stop people from entering, so not all systems are a perfect match for micro-services.

Re: Microservices Are Something You Grow Into, Not Begin With

#89
I am in the middle of implementing a POC/MVP of a greenfield micro services architecture that I was assigned to do at work.

My background is more monolithic and some SOA, so I have had to adapt my thinking to try to make this work.

I am an open minded architect and always willing to explore what the good and bad takeaways are from a given approach.

I think that microservice architecture gives us a chance to think about what would happen if we thought of an ecosystem of applications fully decomposed into a fabric of services.

The first and hardest thing I have encountered so far, was trying to understand the right decomposition into ideal smaller units, something that is nearly impossible without understanding the requirements in full up front. I am not sure you can easily identify your service/domain contexts and boundaries (a la DDD) perfectly enough when you are doing agile development and the microservice architecture is intended to be used by many applications.

However, there is a caveat- if you build modules to be smaller it is easier to reason about what each one does by itself. So that part actually fits in with Agile well.

Also, if you, for a minute, imagine that network / machine boundaries didn’t have implications (latency, retries, etc.) and were as reliable as service calls, and if you imagine that we had reliable distributed two phase commit (it can be done, but all subsystems involved have to understand transactions and someone has to coordinate it)... I at least can start to see a picture that works.

I believe microservice as simply to be an old idea (build in a modular small form) in a new light, and I think it is part of us trying to evolve our system development and architecture further.

Don’t look at microservice as a panacea nor fad. Look at the problems it raises as opportunities to improve the problems it highlights, and then suddenly all of this might make sense as a scaled up architecture that can start small and scale smoothly to big in the future.

I believe it’s all part of the same journey we all have been on, developing systems that go from local, to global and maybe someday, beyond.

Re: Microservices Are Something You Grow Into, Not Begin With

#90

I am in the middle of implementing a POC/MVP of a greenfield micro services architecture that I was assigned to do at work. My background is more monolithic and some SOA, so I have had to adapt my thinking to try to make this work. I am an open minded architect and always willing to explore what the good and bad takeaways are from a given approach. I think that microservice architecture gives us a chance to think abo…

To add, one other problem that still needs solved in this picture is data federation - and if you solve the network problem and IO limitations fall away, you might actually be able to do crazy things like make joins across distributed systems work, as well as distributed transactions. We already do this with some planet-scale databases, but we are early in this - and it might need to work in the application layer outside of databases too.
Post reply on HN