This is the final installment of the six-part series Microservices and PaaS written by John Wetherill.
It seems like forever since I attended Adrian Cockroft's meetup focusing on microservices. It's actually only been a couple of months, but much has happened since then: countless articles, meetups, and conference sessions focusing on microservices have been delivered, many meetings and design efforts at companies moving towards a microservices-based approach have been endured, and five installments of this blog series have been written.
There's no doubt that microservices, like containerization and DevOps, is a trending topic these days. But this raises the question: how many enterprise organizations are actually using microservices architectures in production?
In spite of all the trending interest, the buzz, the hype, the articles, the sessions, the meetings, I submit that the answer is effectively...none are.
I say this, not based on costly analyst research, but from talking to literally hundreds of enterprise IT folks including developers, managers, ops people, sysadmins, architects, marketeers, and PR people, across a wide swath of industries. Based on this informal sampling, I conclude that the percentage of enterprises that have made any significant headway with microservices can reasonably be rounded down to 0%.
Heck, I recently talked to a couple of major enterprises recently who still have Windows XP servers sitting under their POS system in their retail outlets. Every evening, after the store closes, these servers dial home - yes, using a modem - and batch-transfer the day's transactions. I'm talking about well known international brands here, companies that you and I and your friends and my friends have probably patronized in the last few weeks.
And at VMWorld two months ago, a conference that's smack-dab in middle of enterprise cloud technology, there wasn't a single session abstract (among hundreds) that even mentioned microservices.
So while I agree with Adrian, who said at the microservices meetup that "2014 is the year that the enterprise finally gets the cloud," I would argue that 2014 is not that year that the enterprise finally gets microservices. That's still a ways off.
Don't get me wrong: microservices is certainly a significant trend these days, and many forward-thinking organizations are looking at adopting a microservices architecture, but we have a long way to go before many/most medium and large enterprises are able to achieve the benefits promised by microservices.
Get Started Now
OK I've rambled enough. It's time to see all this in practice. A natural first step in building microservices is to get the toolset in place. Stackato is a natural: it provides most of the features and capabilities discussed in this series, and is incredibly easy to setup and use. In fact you can get Stackato running in less time that it took you to read this article.
Check it out: download Stackato now, and see for yourself how simple it is to get a scalable, microservices platform in place, with powerful features such as scaling, load balancing, monitoring, logging, rollback, single signon, and more, instantly available.
What's Better than Best Practices?
I want to close by saying that the patterns and advice presented in this series are not meant to be construed as "best practices" by any stretch. Frankly, I don't particularly like the phrase "Best Practices" for a number of reasons. The term "Best" implies there are no better practices. But practices and technologies are always evolving. Adopting "Best Practices" can actually stifle progress and encourage complacency. Furthermore, there are oftentimes when "Best Practices" aren't really best for the situation at hand. Consider the well known "DRY" (Don't Repeat Yourself) principle, a well-known best practice that at times isn't really always best practice (for example: it's occasionally better to repeat code across multiple microservices instead of creating the additional complexity to abstract it). Finally, Best Practices might work for a particular team and a particular project, but adapting these practices to another team/project might be like fitting a round peg in a square hole, and be more costly than coming up with new, customized practices.
What’s better than Best Practices? Why, No Practices of course! By definition, Best Practices require work: to learn, evangelize, educate, and adopt. But there's a better approach: No Practices. That's where PaaS comes in. Instead of investing in "Best Practices" to scale, or monitor, or rollback, or secure your applications, save the investment and use the tooling instead, which has many of these practices built-in.
That is, let Stackato do your practicing for you. This allows you, your developers and ops teams, and your organization to perform!