Microservices has been making waves among forward-thinking application development organizations since the term was first coined in 2011. A few short years later, microservices is on the verge of going mainstream, as, according to a recent survey from Nginix, 36 percent of enterprises surveyed are currently using microservices, with another 26 percent in the research phase. But what exactly is microservices architecture, and is it right for your organization’s culture, skills, and needs?
Here we take a look at seven reasons you should consider microservices for your next application development project — and five hurdles you’ll have to clear to be successful.
The case for microservices
A variant of service-oriented architecture (SOA), microservices is an architectural style in which applications are decomposed into loosely coupled services. With fine-grained services and lightweight protocols, microservices offers increased modularity, making applications easier to develop, test, deploy, and, more importantly, change and maintain.
No doubt your organization is still strapped with applications developed in the monolithic era, when centralized, multi-tier architectures were used to create entire applications on a single codebase. That client-service model was an excellent choice when desktops ruled IT. But with the rise of mobile devices and the cloud, back-end data must always be available for a wide range of devices, and that monolithic architecture isn’t going to make it easy on you , as whenever a change is made, the entire application has to be updated, opening up the possibility of new bugs every time you try to add a feature or adjust to a new context. Worse, with everything tied to a single codebase, you can’t scale a specific function or service; you have to scale up the entire application, leading to vastly higher costs.
With microservices, your code is broken into independent services that run as separate processes. Output from one service is used as an input to another in an orchestration of independent, communicating services. Microservices is especially useful for businesses that do not have a pre-set idea of the array of devices its applications will support. By being device- and platform-agnostic, microservices enables businesses to develop applications that provide consistent user experiences across a range of platforms, spanning the web, mobile, IoT, wearables and fitness tracker environments. Netflix, PayPal, Amazon, eBay, and Twitter are just a few enterprises currently using microservices.
Walmart Canada, for example, refactored its software architecture to microservices in 2012. The company, which had not been able to handle the 6 million page views per minute it was getting at the time, realized instant results with a significant increase in its conversion rate overnight. Downtime was minimized, too, and the company was able to replace expensive commodity hardware with cheaper virtual x86 servers, resulting in an overall cost savings between 20 and 50 percent.
Sign up for Computerworld eNewsletters.