![]() ![]() The Sparkle Pro Team did a great job clearing our gutters and the price was reasonable. There are a number of purported benefits of microservices.Steve and his crew are FANTASTIC! This is the second time that we have used Sparkle Pro's services, especially for our all glass sunroom, which is not an issue task to clean. The problem isn’t so much that microservices don’t provide these benefits. Rather they aren’t addressed exclusively by microservices. Most, if not all, of these things can be achieved, to some extent, with a monolith. When someone lays out the pros of a microservice architecture, the implication is that in order to solve these problems, you must adopt a microservice model. The reality is that microservices allow you to buy into an additional layer and degree of flexibility to address these concerns. They are notoriously expensive to build and maintain. If you need that additional flexibility? Great. Maybe that additional cost, on balance, is going to pay off. Maybe you should consider them seriously. If you don’t? Well, you just over-engineered your stack and have seriously hampered your team's ability to deliver value to customers. Let’s look at some of the most commonly put forward benefits of microservices and consider how we can mitigate against these concerns with a monolith. Running microservices means each function of your application is running on its own resources that can be scaled independently of each other. Of course, this is going to give you a high level of control over exactly how many and precisely which type of resources are assigned to each function.īut do you really need that level of control?ĭo the different functions of your application experience different levels of load?ĭo they tend to scale at different rates?ĭo they have different requirements in terms of CPU, memory, storage, and GPU? Throw Boxes at Itįor a lot of teams, it is going to be cheaper to cover the disparities in these resourcing concerns by simply increasing the size or number of boxes available across the board. ![]() Most of the time, it is more cost-effective to not optimize infrastructure to within an inch of its life. Odds are it is easier to resolve performance issues and bottlenecks in your monolith than it is to transition to a new architecture pattern. The details of this are stack specific, but you shouldn’t have to go too far to find ideas on how to tighten up your app. Route Traffic to Independently Scalable Clusters If you have more than a single server, you are going to be running some kind of load balancer in front of it. ![]() You can use the configuration of this load balancer to route traffic to independently scalable clusters of your app instance. You can also pull asynchronous tasks into background jobs with independently scalable queues. Ensure that you have enough queues to give you the granularity of control over the number of boxes necessary to keep your queues down and your infrastructure costs reasonable. The ability for a single feature of your application to go down without taking the rest down with it is a big bonus of a properly designed microservices architecture. The idea of routing different kinds of traffic to clusters for scale can also provide a measure of protection against faults. Think about where most of your historical faults come from. This will give you an indication of how to best route your traffic. If you struggle with “noisy neighbors”, you might want to route based on account ID. If you have a brittle but secondary function that has a habit of bringing everything down, maybe route its endpoint to its own cluster of app instances. If you have problematic background jobs, stick them in their own queue that doesn’t impact the other jobs. If you can prevent or at least lower the number of faults, you have to worry a lot less about isolating them. Nurturing a healthy test culture to ensure confidence in the quality of what you are shipping is key. Not only in its ability to reliably deliver the required functionality. Programming Language and Technology Agnostic But also in its ability to do so under load in production. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |