Flexibility and agility are the two current watchwords in digital fitness. What’s behind this is often, but not entirely, cost. Nobody wants to spend a fortune on infrastructure or software that could be out of date in a very short space of time. Instead, it is all about being able to scale rapidly, both up and down, using only what you need at time of execution.
Cloud applications are a big factor in this move, alongside platform- and infrastructure-as-a-service. Together these have transformed IT to ensure that companies large and small have flexibility, and more or less equal access to high quality hardware and software, on demand. Being cloud-native means three things:
- Packaging applications and software in specially-designed containers that isolate them and enable them to run more efficiently
- Dynamic management of systems and machines, to improve efficiency and resource utilization, and reducing the cost of operations and maintenance
- A move towards microservices, or ‘app-lets’ within overall applications. Loosely coupled services with explicitly described dependencies.
The business context of microservices
Microservices do more or less exactly what it says on the tin: each one does just one thing, but does it really well. “Micro”, does not refer to the size of the application, but rather the size of the responsibility. They are single application modules, each of which manages one particular part or operation within an application very well. Unlike the old monolith-type structure, where everything was bound tightly together, microservices are loosely coupled and allow for a more modular architecture which is both scalable and disposable.
There are several reasons behind the move to microservices, and the breaking down of big monolithic set-ups. Micro-updates mean continuous delivery is possible. This, in turn, results in faster innovation and better services. The mix-and-match approach is flexible, and the modular nature is also very partner-friendly. Just like the move towards Open Source for containers, it is all about the interfaces. Vendor microservices can easily be integrated with your own developed services in an eco system that fits the need of your business.
You could say that microservices were a bit like Minions in the Despicable Me animated movies. There are a lot of them, all with their own role and characteristics. They can be updated independently, scaled to the need of the problem, and the focus is very definitely on ‘small’.
The implications of microservices
There are arguments that the rise of microservices means that some of the traditional tools used in enterprises also need updating. Microservices may be more flexible, but they also increase the complexity of the situation by a considerable degree. It is very hard to get a picture of the system’s totality and overall performance. There are huge numbers of paths that any application takes through the micro-services involved, and the one chosen can vary for any number of reasons.
The growing number of services, and services becoming obsolete because new and improved services have taken over the task also adds to maintenance complexity. Do you spend time on retiring services or do you just let them be there until they are never used again?
The added complexity may be something of a drawback, but the increased flexibility is a real win for microservices. Teams can work quite independently on developing their part of the solution, and IT(operators) can ensure an optimal resource usage and scaling up/down. Microservices also allow developers more options to plug in different app-lets at different points. It has therefore become possible, for example, to integrate business intelligence and analytics into other applications, rather than making it a stand-alone (and therefore more expensive) application.#Microservices allow developers more options to plug in different app-lets at different points. Increased flexibility is a real win. Click To Tweet
Analytical models can be developed, tuned, challenged and maintained in a central platform that integrates via microservice/API’s into the backend, frontend, CRM systems, mobile apps, etc. instead of embedding the analytical model(code) directly into each of the applications itself. This minimizes the risk of implementing an analytical model differently dependent of which channel(s) a customer enters your business. This also brings an agility to the analytical lifecycle when a challenger model with better performance then can be promoted to all the channels in the production environment with the click-of-a-button (or even totally automated).
And perhaps that is the best thing about microservices. It is fair to say that most users will not need to understand them, or even know that they are there. But their existence will ensure that apps run more smoothly, and that organizations and users are able to access the flexibility they need to be more business-centric and responsive to their business demands and ensure a high degree of time-to market.
Deriving insights from more, and growing numbers of, data sources is possible at sensible cost and timeframes. Enterprise-wide analytics is within reach, providing you have a high data management quotient. Test it here.