"Microservices" is fast becoming one of the newest buzzwords that IT decision makers need to know as DevOps redefines modern software application delivery. Here's a primer on what microservices mean and how the concept is affecting the channel.
If you're a programmer, you're probably already familiar with the idea of microservices. As the term implies, the concept centers around breaking down software into small parts that interact with one another in modular ways.
If that sounds like the design principles behind Unix-like operating systems, or object-oriented programming, it's because it is. Microservices are really just an expansion of these programming practices into a broader context.
But now, in the modern, DevOps-centric application delivery landscape, microservices are at the center of everything.
Microservices and the Channel
So that's what microservices mean if you're a programmer. But what about people who simply work with software but don't write it?
For the channel as a whole, microservices introduce a new calculus to the way companies develop and integrate software. In particular, microservices mean that:
- Software components are more interchangeable than ever. Gone are the "monolithic" software architectures of the past, which made integration difficult. With microservices, it's easy for vendors to break software down into small parts and arrange those parts in different combinations in order to build integrated products.
- Software delivery is faster. One of the chief selling points of a microservices architecture (and of DevOps in general) is that it speeds up software development and delivery by making it continuous. The result is an expectation on the part of partners and customers that products will be released early and often, rather than according to the lengthy, delay-prone development schedules associated with "waterfall" software development.
- Partners have more choices. Because microservices break software stacks down into many small, interchangeable parts, organizations have more choice than ever when deciding which partners and products to work with. If you're designing a vertical product offering, you can easily build in a database from one partner and a Web server from another, for example. Plus, by using Continuous Integration platforms, you can quickly change which languages or frameworks you work in or support, without revamping your entire product.
Like the cloud (a concept that has existed since the days of virtual terminals) or IoT (also not a new idea), microservices are not at all a new concept. But they have become crucial to the way software is built and delivered. And they fuel a more flexible channel landscape, in which partner opportunities are not constrained by rigid software design.