Don’t be a background character in your own life
—and don’t be an NPC within your own business.
Last week we discussed the slow draw towards businesses becoming middleware.
Now that we’ve built out the concept, let’s cover a few ways to stop the process.
The first step toward building a resilient business—let’s call it ‘conscious commerce’—is recognizing the risks of over-reliance on microservices.
While microservice architecture offers undeniable benefits, it’s important to balance these with strategies that mitigate potential vulnerabilities (and keep the ball in your court).
You should always feel like you have autonomy to do your own work.
Here are some ways to make sure you’re running your own business:
Plan for the Worst:
Assume that at some point, something everything will go wrong.
Develop disaster recovery and business continuity plans that outline how your organization will respond in the event of a service failure.
You might think that this is unnecessary, but even pilots use checklists during emergencies!
Who are you responding to first? Do you respond at all until you have a plan? Who is picking up the phone?
This plan includes having clear communication protocols, predefined roles, and a prioritized list of actions to take in an emergency.
Thoughtfully Build Redundancies:
Once you’ve done the above, you’ll probably want to make sure you have backup plans.
Intentionally introduce redundancies within your architecture. Avoid putting all your eggs in one basket by relying on multiple service providers or developing in-house alternatives for critical functions.
Yes, I know that ‘business’ and ‘redundancy’ might set off alarm bells in your head, but it’s an important hedge against future risk.
Do keep the additional cost considerations in mind, but it really is a balance.
Monitor and Test:
Regularly monitor the performance and health of your microservices to detect potential issues before they escalate.
This might mean setting up and running end-to-end tests.
Testing doesn’t have to be complicated. Consider starting a timer when you order something from a supplier and time how long it takes to get onto a waiting customer’s cart.
If you can, add stress tests. (Not by stressing your employees!)
By stress-testing your system under various failure scenarios, you can identify weak points and strengthen them before they become actual problems.™
Design Around Real People.
Design processes that play to human strengths. Don’t expect humans to be fleshy computers—especially when they’re under a lot of stress.
Simplify the interfaces and workflows that your teams use to manage microservices, reducing the cognitive load on human operators.
Designing interfaces that represent things your team is used to can make disaster recovery a lot easier.
What would be easier to quickly understand and troubleshoot? A skeuomorphism1 of a pipe layout with a red box or a bitstream of data?
Ensure that your teams have the training and tools they need to quickly understand and address issues when they arise.
A longer-lasting outage because your team can’t troubleshoot quickly will wipe out any ‘savings’ on cheaper tools almost instantly.
Cross Train
Encourage a culture that values flexibility and quick adaptation.
This means that you need to cross-training teams. People should understand how their work interacts with others’.
By promoting a broader understanding of how different services interact, you can better prepare your organization to handle unexpected disruptions.
(You just might make people appreciate each other more too)
Conclusion
Microservice architecture has revolutionized the way businesses build and scale their operations, offering unparalleled flexibility and efficiency.
“Microservice Myopia” is a reminder that in our pursuit of specialization, we must not lose sight of the bigger picture.
By focusing too narrowly on specialization, we risk creating systems that are fragile and prone to catastrophic failures when things go wrong.
By implementing these strategies, businesses can continue to leverage the benefits of microservice architecture without falling prey to its potential drawbacks.
If you have a clear plan, good monitoring, and a high bus factor, you’re probably not going to be the next Crowdstrike. CRWD 0.00%↑
You should aim for a balanced approach where the speed and efficiency of specialized services are matched by the resilience and adaptability of a well-prepared human team.
Ultimately, the key (to almost any business problem) is balance.2
Embrace the advantages of microservice architecture, but do so with an awareness of the potential pitfalls.
By diversifying your dependencies, building redundancies, and designing human-centric processes, you can create a system that not only thrives in the best of times but also the storms that come.
Build your business like a ginko—with an eye to the long future:
Ask yourself: Are we prepared for the unexpected?
Do we have the right balance between specialization and generalization?
Can we weather the storm?
Scary looking word, but actually a really useful term
Sorry for the consulting sterotype—BUT IT REALLY IS TRUE!