What exactly is technical debt? When discussing your organization’s technical debt - and possible changes to it - with various audiences, you need to articulate the key issues in plain terms. Here’s expert advice on how to do that.
How to make the case for microservices
Need to convince people, inside and outside IT, of the benefits of the microservices approach? Apply this expert advice
We recently demystified how to explain microservices in plain English so a wide audience can understand. But what if you need to not just explain, but convince? As in: Convince others in your organization, both inside and outside IT, of the benefits of the microservices approach to building and operating software.
If you’re trying to make the case for microservices in your organization, you’ll need to work on your pitch. We rounded up some expert insights on the advantages of microservices and how to evangelize those to your team, the C-suite, and other stakeholders.
[ What is multi-cloud and what can it do for you? See our related article, Multi-cloud vs. hybrid cloud: What's the difference? ]
- Is the interaction with your customers driven (or becoming driven) by software?
- Is the pace of changes needed for those interactions happening faster than before?
"If you answered yes to both or either of those questions, then microservices application architectures will help your business be more response to customer and competitive in the market," Gracely says. Any IT or business executive can relate to a conversation that starts with customer experience and/or speed.
Let’s dive into the most significant potential benefits of microservices. Then we’ll examine how to share that story with others in the organization to increase understanding and buy-in.
5 benefits of microservices
Microservices architecture is essentially about building (or breaking up) an application into smaller, discrete pieces that exist independently from one another. And that fundamental trait of microservices is also the basis of many of its benefits, especially relative to older, monolithic approaches to building and managing enterprise apps. Unsurprisingly, many of these benefits feed off each other:
1. Microservices can reduce risk and improve stability: Decoupling services inherently reduces risk and leads to more efficient troubleshooting and maintenance, and greater stability over the long term. Changes to a monolithic application put the entire system at risk, whereas microservices allow you to isolate services independently.
“Proper separation of services allows for localized changes, and higher confidence in quality and end-to-end regression scenarios,” says Justin Bingham, CTO of Janeiro Digital.
2.Microservices can reduce time to market: In a business environment that increasingly relies on rapid-fire technology change – and a business environment that, let’s face it, often lacks patience – microservices can engender application teams with greater speed and agility when it comes to development, deployment, and ongoing changes.
“Instead of developing, compiling, QA, acceptance testing, and deploying to production the [entire] application each time any change or update is made, you only need to update the service component, which is independently deployable from other services that form the application,” says Kong Yang, Head Geek at SolarWinds.
That’s going to significantly cut down on your time to market, or time to deploy, in software terms – which is essentially what the business seeks. (As we’ll see below, there may be a multiplier effect to this benefit by breaking large software teams into smaller units as well.)
3. Microservices are more scalable: Decoupling the various services that make up your application enables much greater scalability than the monolithic approach, because you can scale individual services as needed rather than the entire application.
“The smaller module services are each individually scalable, which results in maximum use of an enterprise’s computing resources,” says Dr. Ratinder Ahuja, Founder and CEO of ShieldX Networks.
Resource optimization should be music to any IT leader’s ears: Greater scalability as your application needs grow should generally help reduce infrastructure costs. You’re gaining greater flexibility in how you grow, as your needs demand doing so.
“Hardware profiles and horizontal scaling approaches can be tailored to specific services, allowing for the targeted use of valuable resources in the places they are most needed,” says Bingham.
Making updates is no longer a stop-everything project – unlike updates to large legacy applications. Microservices make it “easier to maintain and evolve your system over time by being able to replace or upgrade one service at a time,” says Nic Grange, CTO of Retriever Communications.
4. Microservices enable greater technology flexibility: Because each service is built and operated independently, you’re also better able to make the most of your various technology stacks – something that’s increasingly important in hybrid IT environments. You no longer need to build and run an entire application with the same languages, tools, and platforms for the rather dissatisfying reason that “this is what we built it with.”
“A microservices environment fosters an attitude of using the most appropriate technology for the specific needs of the service,” says Bingham. “Different programming languages, persistence tiers, etc. can peacefully coexist.”
5. Microservices create greater team flexibility: Breaking software into smaller chunks allows you to do the same with your software teams; your large, monolithic enterprise application probably requires a similarly large and monolithic team. Microservices engenders smaller teams that can work independently and nimbly. For Grange, the Retriever Communications CTO, this is the alpha benefit.
“The biggest benefit of microservices is that it allows multiple teams to deploy their changes independently without requiring much coordination between those teams,” Grange says. “This allows a company with a large product or development team to split into smaller teams so each team can release new features at their own rate.”
This connects with several other upsides, too, including technology flexibility and time to deploy.
“Each individual microservice can be independently developed by different teams using the best tools and methodologies to build each module,” says Ahuja. “This provides improved agility and reduced complexity in both development and deployment of applications.”
Evangelizing microservices to a wide audience
So how do your share these benefits in a persuasive manner, both inside the IT department and to the wider organization? You could just copy-paste the bullet points listed above into your next presentation – we won’t tell. But here are some additional ideas on actively evangelizing microservices to a wider audience of stakeholders, especially when communicating outside of the IT department to nontechnical folks.
Describe benefits in terms of business value: Take just about any of the benefits above and put them in the context of your company’s business goals. Explain the value of faster deployment times for new apps and updates, for example, or the customer experience impact of fewer service interruptions.
"Microservices allow your business to think about each challenge as an opportunity to ask if it aligns to a core competency or a chance to partner," says Gracely. "The challenge can be broken down into individual tasks or services (aligned to microservices), and the business can address both paths within slowing down."
"Today's business challenges are changing more rapidly than ever before," Gracely notes. "Sometimes you need more data. Sometimes you need to integrate with a popular third-party service. And other times you need to scale to unexpected levels of demands for a new mobile app." Microservices give the business flexibility to quickly deal with events like a pivot by a rival.
Sell outcomes, not technologies: This one is crucial when making the case for microservices outside of IT: Speak in terms of business outcomes, not underlying technologies.
“Intended outcomes must remain the focus. No technology paradigm is worth implementing if you're not going to get a benefit from the change,” says Michael Ducy, director of product marketing at Chef. “[Using] small independent services to deliver the business requirements helps companies drive speed to market, operate more efficiently, and reduce overall risk of change.”
Yang of SolarWinds shares a few examples of this approach at work: “Microservices mean more application features integrated and delivered faster at scale for customers,” and “The improved customer experience means more time for the application to generate revenue for the company.”
When you can speak about how microservices will make the customer happier and/or increase revenues, you’ll have just about everyone’s attention.
Start with a small project to prove the case: Grange notes that bringing in external case studies and success stories can help make the case for microservices. This can also help from a “lessons learned” standpoint on how to avoid pitfalls. But ultimately, people will want to see why microservices can work for your organization.
“The best way to evangelize is really to use this approach for a small project within your organization, get some quick wins, and then promote the success within the company and also to external stakeholders,” Grange says.
Tell a complete total cost of ownership (TCO) story: Bingham of Janeiro Digital points out that virtually all the above benefits should help you control costs, a story that almost anyone in the business can get behind. Moreover, he points out, it’s not just about reducing costs: Anyone can slash a budget, but not everyone can cut down their spending without sacrificing innovation and quality. That’s part of your pitch here.
“[Microservices’] benefits generally yield a lower TCO due to optimized infrastructure spend as well as more efficient implementations given the reduced risk. [But] IT organizations are generally more interested in how they can reduce risk while continuing to innovate and exceed business stakeholder needs,” Bingham notes. “A solid microservices foundation allows for a bedrock of that innovation without sacrificing stability and scale. Business stakeholders want to get more benefit from their technology investment. Microservices enable a reduction in technology cost while also affording opportunities to parallelize efforts across microservices to more rapidly achieve business outcomes.”
Don’t lose sight of your own team, however. If you’ve been building and operating software a certain way for a long time, microservices may seem like a radical change. Everyone may not immediately get on board. All the above still applies, but Yang shares a parting tip.
“Within an IT organization, there’s no need to schedule downtime for application maintenance because microservices architecture allows upgrades through continuous integration and delivery without affecting the entire development lifecycle,” Yang says. “It also allows you to take a service that’s already been coded and continue to apply it across different applications, which can improve efficiency and allow IT pros to spend their valuable time elsewhere.”
Who doesn’t like less drudge work?