Microservices – some practical applications
In today’s world you need to be able to quickly build and scale large applications – and microservice architecture is a popular way to do that. It lets you break down an application into manageable chunks (services) that can be independently developed and deployed. This modular approach gives significant advantages:
• The individual services can be worked on by separate teams – which speeds up implementation
• Each one has its own encapsulated process and can be coded in a variety of languages – with popular ones being Java, Python, C# and Kotlin
• They can be connected to as many other services (including from third parties) as required – meaning they’re easy to scale
• And they communicate with each other over HTTP via RESTful APIs or messaging – which leads to a lightweight framework
In a recent Global Microservices Trends survey carried out by Dimensional Research (April 2018), 92% of respondents said they had increased their number of microservices in the last year, with the same number expecting to grow their use in the coming year. Agility (82%) and scalability (78%) were the top motivators for using the approach.
It’s important to note, though, that microservices require careful management and are not appropriate for all applications. So what are they best used for? Let’s look here at some examples.
1. Modernising legacy applications
Adding new functionality to legacy systems can be made easier with a microservices approach. Say, for example, you need to extend your system out to new markets or external partners. What you can do is create the new functionality as one or more microservices, and connect them to your legacy system. The new services can then co-exist with your legacy modules.
You can also use this approach to modernise your entire monolithic application, by incrementally replacing modules with new microservices. It’s a low risk approach, and lets you prioritise on specific functionalities without impacting the whole architecture.
2. Big data applications with real-time processing
To get the most from big data, you have to import it, process it and then communicate the results – and a data pipeline architecture is best for that. Microservices naturally fit into that architecture, because each step in the pipeline is a separate task and can have its own microservice.
Microservices also use a publish-subscribe framework, which allows data processing in real-time. So they’re used in applications that require immediate output such as credit card fraud detection, traffic management and adaptive learning.
3. Rapid growth environments
Microservices allow you to re-use code and data, and provide agility and scalability to your applications. So they’re ideal for fast growing environments including social networks, financial services and healthcare organisations. They’re also heavily used in growth sectors involving advanced analytics, machine learning and natural language processing pipelines.
Here at JBI Training, we provide a range of Cloud and DevOps training courses including:
• Microservices Architecture training course (2 days) where you learn to build scalable, highly available and easily maintainable applications – See our Microservices Architecture training course
• Docker training course (2 days) where you learn to build, ship and run distributed applications using Docker – See our Docker training course
• Kubernetes training course (2 days) where you learn to use Kubernetes for automating the deployment, scaling and management of containerized applications – See our Kubernetes training course