8 ms·
The term "Monolith" was devised by people who wanted to brand microservices as newer and superior. It's almost as if in order to succeed these days you need to
by winternett 5y ago
The term "Monolith" was devised by people who wanted to brand microservices as newer and superior.
It's almost as if in order to succeed these days you need to discredit and disparage your competition rather than simply having a better product, and that's why I don't buy into buzz words at all.
If it's not broken, don't fix it... Microservices are relatively new and unproven. The way the world has rushed to dive into microservice infrastructure only highlights reckless spending and waste that is characteristic of overpriced goods and high taxes that are constantly in turn thrust upon us, as consumers.
Microservice architecture is also inherently designed to lock a customer into very specific tools that make future migration to any other platform a very costly decision in most cases... Thereby locking a customer into platform-specific dependency. Microservices architecture also introduces the ability for providers to charge for each specific service as a utility... Instead of being charged for one single server annually, on microservices you can be charged for many individual components that run your app independently, and when usage skyrockets, it's a sticker shock that you can only stop by going offline.
We have also seen enough failures and pain points within microservice and even cloud architectures over the past two years alone to raise questions about whether or not it it indeed a better solution.
We need to stop disparaging traditional (non-cloud) hosting and solutions that aren't obsolete at all in this manner, and focus on what works, what is secure, and what is cost effective in order to stay sustainable into the future.
The more we allow marketing minds to take control of our IT decisions over reasonable technical minds, the more costly it will be to us all over time, no matter what salary we make. Bog tech firms will hate me for saying this, but any human in the chain can tell that reckless drive for weak/vulnerable/costly/and over-complex IT solutions cannot be sustained as a viable long-term business sales strategy anyway.
- glintik 5y ago> Microservices are relatively new and unproven. They are so old, buddy, actually. Splitting monolith into services(not always been micro) is a natural evolution for any software.
- Clubber 5y agoIt was SOA (Service Oriented Architecture) where you would split them up, that predates Microservices by quite a bit. I remember doing that in the early 2000s. What I think he is saying is that Microservices people pitch their service against monolith as better, but monolith hasn't been in vogue for 20 years. I saw the same tactic with scrum people pitching against waterfall which hadn't been in vogue for quite a while either.
- deleted 5y ago[deleted]
- deleted 5y ago[deleted]
- hdjjhhvvhga 5y agoWell, SOA is such a broad term. If you include CORBA, you could say it's terrible. On the other hand, gRPC is a pleasure to work with if you need to deal with different environments.
- xtracto 5y ago> On the other hand, gRPC is a pleasure to work with if you need to deal with different environments. I remember doing RPC via Java RMI and Jini at some point early in my career in the late 90s. It was really nice and gRPC reminded me of that.
- jbverschoor 5y agoAlthough clunky to implement, EJB had really well thought out concepts, architecture and roles
- pjmlp 5y agoI miss dealing with Websphere every time I am fixing Kubernetes spaghetti.
- throwaway894345 5y ago
- deleted 5y ago[deleted]
- ozim 5y agoThat is how you get to it. If you are noname rapper you start dissing bigger guys so they diss you back and you get notoriety because someone noticed you. As a politician you have to say others are the worst and broke everything but you have plan to fix everything that is broken now. In the end all the swearing is posturing and all "great plans" turn out not possible in reality. While yes you can do nice stuff with microservices, it is not a silver bullet.
- duxup 5y agoI don’t even know what anyone means by monolith or micro services. I’m somewhat sure everyone is somewhere in between depending on who you ask.
- staticassertion 5y agoISBN-13: 978-1491950357 ISBN-10: 1491950358 Here you go, you can read this book and it explains.
- duxup 5y agoI know what the terms means, but I think in common language people mean different things when you find out what they are doing.
- staticassertion 5y agoOh, sure. People are wrong a lot.
- ryan_j_naughton 5y ago> Microservice architecture is also inherently designed to lock a customer into very specific tools that make future migration to any other platform a very costly decision in most cases... Thereby locking a customer into platform-specific dependency Can you elaborate on this? Examples? Thanks!!
- fendy3002 5y agoLooks like OP talked about serverless / google cloud run, where rather than traditional server deployment, it use specific provider's implementation. Additionally it may also means CI/CD pipeline where usually it's different between provider.
- winternett 5y agoI'd need days to detail it all specifically enough, but I'll give you a simple example... A "monolithic" solution usually relies on a basic (e.g. LAMP) stack that can all be run on one server if the need arises... Your web and database server can be migrated from AWS to Azure much easier if pretty much all of the functionality relies on a close-knit local server architecture that can have a less complicated security, code, and endpoint design as well. If you create an app that works based on a highly distributed architecture, suddenly, migrating a solution is far more complex - Platforms like AWS and Azure do not run all of the same services, and those services often require lots of refactoring to work properly with your prior data, you'll also need to do many test cycles after migrating to ensure that solution integrity is maintained.... At that point, a simple migration might as well be a total refactor. After implementing policies like zero trust and working out whitelisting, if your solution is complicated or large-scale, you also have to deal with service-specific nuances in your code and in your architecture design that don't translate well to the completely different tools available on an alternate cloud hosting platform, because usually they have completely different nuances and conventions on their service architectures. To put it simply, it's like buying a ford pickup truck and installing an aftermarket 6.34 x 9.85ft camper top (and other ford-specific aftermarket parts) on it, and then trying to install that custom Ford camper top and the other Ford aftermarket parts onto a Toyota which only fits a 5.77 x 8.34ft camper later on... It usually doesn't work out well, and usually provides very unexpected results and more financial loss than using a universally sized 5.55 x 8.20ft camper (The monolithic option that fits in both trucks, albeit not perfectly). Each platform is very specialized in their own way... Just as with Ford any Toyota pick up trucks, they have completely different build dimensions, and that's why the parts aren't interchangeable between the two trucks. Monolithic solutions were originally designed to work agnostic of platforms, so they can work on either provided that they are implemented correctly... Ultimately, the business need should be carefully evaluated by an experienced architect to determine which architecture fits the need best, and then other factors should be reviewed (like if you'll need to migrate any time in the future for example) to make the final call.
- Graffur 5y ago> The term "Monolith" was devised by people who wanted to brand microservices as newer and superior. I am interested in hearing more history on this
- drewcoo 5y agoWell, back in the oughts, I think maybe 2001 . . . https://2001.fandom.com/wiki/Monolith https://2001.fandom.com/wiki/Monolith
- staticassertion 5y ago> It's almost as if in order to succeed these days you need to discredit and disparage your competition rather than simply having a better product, and that's why I don't buy into buzz words at all. Meh. In order to sound smart on HN it's easiest to point at something and call it "hype". > Microservices are relatively new and unproven SOA is old as fuck. Microservices are also fairly old, but especially when you consider they're really just SOA + dogma. > Microservice architecture is also inherently designed to lock a customer into very specific tools that make future migration to any other platform a very costly decision in most cases... No? Not at all. > Instead of being charged for one single server annually, on microservices you can be charged for many individual components that run your app independently, and when usage skyrockets, it's a sticker shock that you can only stop by going offline. Alternatively phrased: If you only use one service you only pay for it, not for the whole suite of features you don't need or want. > We have also seen enough failures and pain points within microservice and even cloud architectures over the past two years alone to raise questions about whether or not it it indeed a better solution. And plenty of success stories. > We need to stop disparaging traditional (non-cloud) hosting and solutions that aren't obsolete at all in this manner, and focus on what works, what is secure, and what is cost effective in order to stay sustainable into the future. Microservices work, are secure, and are cost effective. Honestly your post contains no useful information and is satirically close to a "return to traditional family values!" speech.
- throwaway894345 5y agoThat’s exactly what Big Microservices wants you to think.
- serial_dev 5y agoMicroservices make sense in some scenarios. I work at a large retail company with who knows how many developers. We have different teams for payment, promotions, product search, account, shipping and more. All of them working on a single codebase with coordinated deployments would be a nightmare. Previously, I joined a startup (previous coworkers of mine), a developer and a business guy. The developer "drank the microservices kool-aid", and came up with (in theory) super scalable solutions and like a dozen of microservices. It was difficult to keep things in mind, the tech stack was way too complicated for two developers. It was also less performant and more costly. The added complexity was totally unnecessary, especially because we never got neither tons of users, nor more developers. The business guy trusted the developer, so the company never worked enough on their product and USP. I guess the developer just didn't want to accept that the fancy tech solutions won't bring success. Yet another time, we were a small team (5-ish devs, product owner, and a designer). We started with a monolith and we paid attention to software design and moved quickly. Also, for some reason it's often overlooked, that you can make your monolith modular and design it so that when the day comes, you can split it up into smaller services. You don't need to start with microservices, you can start with a monolith and figure out later how to split it up (if necessary). Microservices and "monoliths" have their place, you just need to know when to use which.
- winternett 5y agoThis is agreeably congruent with my original statement, The main problem I have with microservice marketing: It is often promoted to clients that do not have applications that are large or critical enough to warrant leveraging them. That buyers often are properly warned about their inability to easily migrate if they invest in platform-specific microservices too heavily. And clients are often not aware of the operational costs that can rise over time for each component of the distributed architecture. "Monolithic" solutions have also not stagnated... They can be run in distributed methods, they can leverage microservices in parts, they can also leverage containers, they are far from obsolescence because they are using the same languages that microservice architectures use, just with less distribution overall. The term monolithic is often used to indicate that less-distributed solutions are somehow "out of date", "obsolete" and "not innovating" inaccurately, when the real story is that the business case usually dictates which solution will fit best.
- Melatonic 5y agoPretty sure "Monolith" was originally designed by a weird team of space aliens who left one on the Moon and Europa :-)
- fendy3002 5y agoWell if the problem domain and scope is very-very well defined, developing a service as microservice is good / better than monolith. I can't imagine google map API to be developed inside the monolith app instead of running as their own service. The problem that many developers fall on is sometimes some problem domains feel like they're well separated. However in practice those domains are tightly coupled into each other, that merging them together is better.
- throwaway894345 5y agoMonoliths are pretty great, and there are tons of valid criticisms of microservices; however, this comment managed to steer clear of all of them. :) > The term "Monolith" was devised by people who wanted to brand microservices as newer and superior. Not everything is a conspiracy. Sometimes it’s just useful to have a word to describe a particular architecture. In this particular case, “monolith” isn’t even disparaging, so if Big Microservices we’re trying to disparage monolithic architectures, why wouldn’t they use a term with a negative connotation? > If it's not broken, don't fix it... Microservices are relatively new and unproven. The microservices people would argue that monoliths are broken for many use cases. In particular, individual teams can’t deploy their code without coordinating with every other team, which yields long user feedback loops and a bunch of other knock-on effects. Microservices exist to support nimble organizations by helping to remove technical coupling between teams. This is all 101-level stuff but the microservices critics always ignore it in their criticism. > Microservice architecture is also inherently designed to lock a customer into very specific tools that make future migration to any other platform a very costly decision in most cases... Thereby locking a customer into platform-specific dependency. I don’t think you could be more incorrect :). Microservices are almost universally built atop containers, and the whole purpose of containers is to decouple the application from the platform. > We have also seen enough failures and pain points within microservice and even cloud architectures over the past two years alone to raise questions about whether or not it it indeed a better solution. Microservices are typically more robust than monoliths if only because components are isolated—a failure in a superficial component doesn’t bring the whole app down. Moreover, monoliths are less secure as well because there’s no way to regulate permissions within the process—anything one component can do, the whole system can do. > The more we allow marketing minds to take control of our IT decisions over reasonable technical minds Literally laughing out loud at the idea that marketing people are behind microservices.
- patrick451 5y ago> Not everything is a conspiracy. Sometimes it’s just useful to have a word to describe a particular architecture. In this particular case, “monolith” isn’t even disparaging, so if Big Microservices we’re trying to disparage monolithic architectures, why wouldn’t they use a term with a negative connotation? This isn't the reality on the ground. Where I currently work, "Monolith" is absolutely used as a pejorative by those advocating for microservices.
- dpark 5y ago> that's why I don't buy into buzz words at all. Clearly you do, because this is mostly nonsense driven by your knee jerk reaction to “microservices”. Very little you’ve written here is substantive. It’s all emotional appeal covering ignorance. > If it's not broken, don't fix it... But it is broken. Engineers often experience significant pain from monoliths so they look for a solution. They often also experience significant pain from microservices so the pendulum returns. Hopefully during all of this we learn enough that at least some pain is reduced, whether we land on microservices or monoliths or hybrid solutions. > We need to stop disparaging … and focus on what works Here I agree. Focus on what works and stop engaging in low value attacks on solutions that clearly work for some. > The more we allow marketing minds to take control of our IT decisions… What “marketing minds” are making decisions about service architecture? This seems like an imaginary issue.
- tomc1985 5y ago> What “marketing minds” are making decisions about service architecture? This seems like an imaginary issue. It is hard to hold this comment in a generous light (per HN rules) when some of my most poignant experiences in dealing with tech vendor salespeople at conferences is (and I paraphrase), "well, it's working great for $MEGACORP, you do want to be like $MEGACORP dont you?" One time I asked one of those salespeople point blank if that line actually works on people. Apparently it does. And those people for whom that line works with make big expensive tech decisions.
- dpark 5y agoDid you become a marketing mind because they were pitching you? I did not say that marketing isn’t making pitches. I said they aren’t making the decisions. Any company allowing marketing to choose the technical platform for the engineers is going to be very short lived. This is not a real issue.
- mrbungie 5y agoYou're assuming engineers can't be victims of cargo cult, and we all know that's not globally true as it's been discussed multiple times on HN. Marketing teams know that as well, and they exploit that as much as they can.
- deleted 5y ago[deleted]