As enterprises introduce containers and microservices to update their IT infrastructures, one thing they want to know as they deploy and begin using them is what it’s going to cost to add microservices to the mix.
So far, though, figuring out these costs ahead of time has been proving to be a challenge. Much of this is because the costs are very dependent on what enterprises want to do, how their existing infrastructures are built, and a myriad of other questions which will affect the final costs and estimates.
Yet figuring out the costs of microservices, from integration to operations, is critical to determining whether they are worthwhile, as well as figuring out if they should be used to migrate existing applications or to build new ones.
To try to refine the pricing possibilities around microservices, The New Stack spoke with several IT consultants, industry analysts and even some microservices companies to get a range of advice about how enterprises can try to gauge what the technology will cost to use over the long term.
Even they admit they don’t have all the answers at this point.
Why Microservices Can Be Worth the Pricing Headaches
The lure of microservices is that they can simplify the complex problems of trying to make changes in large, unwieldy monolithic IT systems that are built from a wide assortment of components, technologies and applications. By sectioning off services and processes within the monolithic system using containers and microservices, smaller application components can operate individually and be self-sufficient and self-contained, allowing them to be used without affecting other related code. By using microservices, IT administrators don’t have to worry about problems arising through changes to existing architecture as the changes only happen inside the smaller subsystems, or microservices set up in the containers.
This is also why it’s hard to quantify the costs, said Chris Priest, a senior consultant with U.K.-based cloud consultancy Amido. “It just depends hugely on what you are doing,” he said. “The ongoing costs for microservices are far less than it would be for a monolith-based system. I think your costs could go down easily by up to 90 percent less. It depends on how bad it was in the first place.”
But the savings don’t just come by using container systems such as Kubernetes, said Priest. The savings also come through changes in the culture involving developers.
With a monolithic infrastructure, a company can have 100 developers working on the same code, which can be a nightmare because their changes don’t jibe with those of others, adding to complexity and problems, he said. But under a microservices approach, developers can be independently working on different parts of the code, which allows more to be completed with less overlap and complication, he said.
“Switching the team to a microservices way of work, you can get much more productive,” said Priest, but again, it is hard to estimate the savings of such a beneficial move.
Robert Starmer, a cloud advisor and founding partner of Kumulus Technologies, a Las Vegas-based cloud consultancy, said one place to start when trying to determine microservices costs is to look at microservices as part of DevOps and then break down those costs to derive estimates. Begin with the company’s development environment, he said.
“If you already have containers, you should have an idea of how your system scales, so that can help with figuring microservices costs,” said Starmer. “We’ve done that with a couple of companies.”
Next, look at the fixed costs of what each developer needs in terms of access to testing and development servers or virtual machines, then add in other related development costs, he said. “You can actually model it,” based on the scale of the application, how many developers are going to work on the problem and other factors.
Ultimately, though, most IT leaders don’t take these steps, he said.
“And that’s part of the reason that the consensus is that it’s hard to say what a microservices deployment on Kubernetes is going to cost because of the lack of rigor in going through an application planning process,” said Starmer.
To help make these calculations easier, Starmer said he is working on developing an application that could be used in the future to give these kinds of estimates to IT leaders as they eye the benefits of microservices inside their operations.
Suzanne Panoplos, marketing director for container platform vendor, Docker, said the costs for running microservices with Docker is dictated by the size of a company’s server and compute infrastructure, and not based on the number of containers being used.
“It is up to the customer to have as many or few containers as needed for their application,” she said. “The Docker Enterprise Edition platform does not differentiate in pricing from legacy or microservices containers running on the environment as it supports both application types.”
Good Advice: Start Small
Another good way to begin tracking and gauging the costs of microservices, said Beda, Heptio’s CTO and co-founder, is to start small and proceed with an open mind.
“Breaking off one or two services will help understand the trade-offs for that particular application and environment,” he said. “As that is understood, it will become much more reasonable to further invest in microservices.”
Also smart is to avoid creating services that are too micro, he added. “There is overhead for each new service and that should be taken into account and balanced against the benefits in terms of velocity of decoupling the architecture. Tools like Kubernetes can help reduce that overhead and complements a microservices approach.”
Meanwhile, using a container platform rather than just raw virtual machines can also increase efficiency and reduce costs, he said. “This isn’t microservices, per se, but is often paired with that type of architecture. It isn’t unusual to see utilization go from less than 10 percent to less than 50 percent. This can drive huge savings from reduced hardware, data center or cloud usage, as well as reduced administrative costs.”
At the same time, be sure to keep in mind the cost-saving benefits of a microservices-based architecture, which allows developers to move faster, said Beda. “This means faster time to market for applications, happier and more productive developers, and improved competitive positioning.”
Ask Vendors for Customer References
“The obvious questions would involve locating accounts from the vendor that are like yours and then asking to interview them to learn from their experiences,” he said. “In the end, with microservices, the IT shop owns the eventual solution and needs to have both the requisite skill set to build it and the tolerance for the lack of another throat to choke, other than their own, if the project goes south.”
In the end, when it comes to using microservices correctly and effectively it comes down to the core skills in the IT group, said Enderle. “If you don’t know the questions to ask, you likely don’t have the core skills needed to make microservices work and would be far better with complete solutions. It reminds me of folks asking about building their own car. If they have the skills, they know the questions to ask. If they don’t, a book of questions won’t get them to the skills they need.”
Read the next article in this series, The Role of Site Reliability Engineering in Microservices.
Feature image via Pixabay.