In today's world where Software development is evolving and where deployments are increasingly cloud based and clients are increasingly mobile based, MicroServices is a trend to focus on.
A microservice is:
A small problem domain
Built and deployed by itself
Runs in its own process
Integrates via well-known interfaces
Are not stateless
Should own their data storage
They are easier to write. They are easier to change. Developers, application groups, and business units are excited about the potential for faster functionality rollouts, more frequent updates, and the ability for different development groups to work and release independently.
Basic Web App V/s Microservice App
There is nothing wrong with the basic web application. A large monolith might be so complicated that it is hard to reason about certain behaviours.If your application is growing larger in features and functionality than you expected then you should start breaking features off into services and perhaps microservices.
So once built, if your requirements change such that your bounded contexts adjust, the correct solution might be to throw way two current services and create three to replace them, but it’s often easier to simply attempt to modify one or both. This means microservices can be easy to change in the small, but require more oversight to change in the large.
Not every application has scalability concerns or the same types of scalability concerns. If you're writing a department level application and you may not need to use microservices. In the end, the goal is to provide business value and ROI for your company. Not every tool or architecture fits every application.
Microservice Architecture for Mobile Apps
One of the major influences to microservices architecture is the mobile web and the proliferation of native mobile applications.
- We can use these services in multiple mobile devices ranging from smart phones to tablets etc.
- Supports Continuous integration and continuous delivery.
- Support different operating systems like- iOS, Android etc from same Microservice.
- Support multiple versions of software. Eg. Multiple iOS and Android versions can be supported with the same backend Microservice.
- You are free to change the implementation of Microservice without worrying about its impact on the Mobile app.
- Offers App Security features as functionality shielding, faster distribution of security patches.
In upcoming Webinar on "Building Scalable Apps with Microservice Architecture" we will share DronaHQ's experience with MSA for some client apps. We will also shed light on best practices for Service discovery, API management & Hybrid Integration. We gained lots of technical benefits around scalability, reliability and ease of modification. It improves business time-to-market tremendously.