It is easy to look at the unicorn companies of our world, most notably Netflix, and say, "That's it! That's how we should be doing it". Whether it's DevOps or Microservices, they seem to have it nailed. Most people assume that to get there is a matter of following a few simple steps and picking up and few new tools.
Companies that are already there, or rather getting there, didn't get to where they are overnight. Like most "overnight successes", it involves a lot of hard work over many years. It also takes a commitment from the entire organization to redefine the structure of that organization, to consume (or define) best-practices, break things and take risks.
Smart organizations, those adopting DevOps, are not focused on getting from A-to-B, they are focused on velocity. "How can we improve velocity?" is a much more powerful focus. What happens when you iteratively increase your velocity? Well, we call that acceleration.
Math quiz: How long does it take for an object moving at constant velocity to catch up with an object that is accelerating?
There still needs to be a series of steps in order to move to a mode of iteratively increasing velocity without tripping over. Organizations are still figuring this out now and the larger the organization the more logistics is getting in the way.
In selling Stackato, we talk with large enterprises who do want to adopt DevOps, but the intangibility of this new concept makes it difficult. Our focus on DevOps is that we are a Cloud technology vendor with a strong focus on PaaS. We see where this fits in with DevOps. It empowers Developers with self-service. It's a common platform for Operations and Developers. It does away with many of the support tickets required for providing software stacks. It provides a consistent environment, from development to production, in which to run software. All these things dramatically increase the velocity of a software-defined organization. The increase of velocity, collaboration between Dev and Ops, and the ability to get code into production faster is at the core of DevOps. This is how we, ActiveState, talk about what DevOps means to us.
This conversation continues as we move to higher-level concerns and begin to talk about things such as, "How should I build my application to get the most benefit from PaaS?" For a long time, and still, we have discussed Twelve Factor-Apps. This is a manifesto outlined by Heroku and has become the bible of building individual cloud applications, whether they run on a PaaS platform or in a Docker container.
Composition of applications comes next and when ActiveState started talking about Microservices, we realized its concepts were largely what we had been talking about for a long time. Like DevOps, some see Microservices as just another buzzword, but like DevOps, if you scrape away the layers of marketing noise then you find that this really is bringing dramatic increases in velocity to organizations. And like the road to DevOps, the road to Microservices is not for the faint of heart. In fact, you will find far fewer companies who have embraced Microservices, than those that tell you they have embraced DevOps.
In discussing Microservices with enterprises, we have found that it is much more tangible than DevOps, but it is so intertwined with DevOps that it provides a bridge for organizations to actually understand and consume DevOps, if they choose to go this route. Although, it's certainly not for everyone.
How do we move from an A-to-B company to a velocity-focused, accelerating, company? DevOps is ultimately the answer, but I think tangible concepts such as Microservices provides a path to this. I hope we see many more DevOps patterns like this emerge in the near future.