How to get microservices right

Commentary: Though everyone is now dabbling with microservices, a recent O'Reilly survey reveals ways to ensure success.

microservices stamp

Image: iStockphoto/Aquir

As the world steadily moves toward cloud computing, microservices make a lot of sense. Instead of monolithic applications, you can break applications down into distinct services that are independently deployable, allowing different teams to use their preferred programming language, tooling, database, etc. Small wonder, then, that some surveys reveal as much as 84% of enterprises embracing microservices.

This doesn't tell us, however, whether they're finding success with microservices. Or how.

For that, it's worth digging into new microservices survey results from O'Reilly, which polled over 1,502 people on its mailing lists. Given that the O'Reilly crowd tends to be more technical than most (and over a quarter of respondents work in the Software industry), these results may be a leading indicator of microservices success, rather than an indication of where the market is today. Even so, with 92% of respondents claiming at least "some success" with microservices, the future looks bright.

But how to make it brighter? That's a question of organization and containers.

SEE: Microservices: The foundation of tomorrow's enterprise applications (free PDF) (TechRepublic)

Betting big on microservices and getting results

Though just 10% of respondents report "complete success" with their microservices investments, roughly 55% were at least "mostly successful." This is perhaps not surprising given that the individuals surveyed work for companies where microservices are somewhat mature. Approaching one-third (28%) of respondents have been using microservices for at least three years within their organizations; more than three-fifths (61%) of the respondents have been using microservices for a year or more.

For the most part, then, the survey respondents aren't microservices newbies. Nor are they holding back. Twenty-nine percent of respondents say their employers are migrating or implementing a majority of their systems (over 50%) using microservices, according to the report. Given the amount of work required to decompose monolithic applications into microservices, this suggests the payoffs have been big.

For those who find the most success with microservices, does the O'Reilly data reveal anything? According to the authors of the report, Mike Loukides and Steve Swoyer, the key to success comes down to having development teams own the entire development cycle (i.e., building, testing, deployment, and maintenance). Of this cohort, roughly 49% were "mostly successful" with microservices, with another 10% of those reporting "complete success" coming from this group. This group shows success rates 18% higher than the baseline tally for the survey audience as a whole. 

In other words, it pays microservices dividends to own the entire development cycle. 

That's not the whole story, however, because of those surveyed, close to 75% of respondents work for companies where development teams own development cycle end-to-end. Again, given the generally advanced crowd on the O'Reilly mailing lists, this should perhaps be read as an aspirational state for the industry: More teams owning the full development cycle, leading to more microservices success. 

SEE: Kubernetes security guide (free PDF) (TechRepublic)

Containerized success

One other significant contributing factor to microservices success is containers. Intriguingly, most of the survey respondents (58%) use something other than containers to instantiate microservices. There are good reasons for this (sometimes, given technical debt or other factors, it's simply easier/faster to instantiate microservices at the level of the virtual machine, the report authors note). 

But for those who do go the containers route, they have a much higher likelihood of success. According to the report, "A higher than average proportion of respondents who report success with microservices opt to instantiate them using containers; conversely, a much higher proportion of respondents who describe their microservices efforts as 'Not successful at all' do not instantiate them in containers." As an example, 49% of those who report "complete success" with microservices also instantiate most of their microservices (75-100%) in containers, which is 5x the baseline. And for those who report their microservices projects as "not successful at all," they overwhelmingly report they hardly use containers for microservices, which is 11x the baseline. 

This number should dwindle, and potentially much faster than we expect. In an interview with Diamanti CEO Tom Barton, he estimated that while we may be at 5% adoption of containers today, we may well get close to 100% in half the time (six years) it took for virtual machines to reach similar levels of adoption. Why? Because the industry has standardized on common tooling like Kubernetes.

The takeaway? If you want to have a higher likelihood of success with microservices, it helps to have the development team own the development process end-to-end, and to use containers. The latter increasingly seems like a sure bet, but ensuring you're organized to take advantage of it all? That's a corporate decision to be made...now.

Disclosure: I work for AWS, but the views expressed herein are mine and don't reflect those of my employer.

Also see