Should You Develop a Microservice?
As an organization starts to focus on adopting new technology, there are overarching new concepts that begin to be implemented. When you think about faster deployments and quicker delivery, you can’t keep thinking of massive projects and products but instead break it down into microservices. Microservices allow for faster deployments because you are able to successfully deploy portions of an application and helps bring to light any points of failure. New applications can use previously developed microservices, so there is one less thing to deploy.
The definition of microservice can be taken literally, as it is a smaller process/service that is part of a larger product. You can think of a microservice as being just the tip of the whole product delivered. There are quite a few reasons to develop with microservices and here are just a few:
Reasons to develop microservice
- Reduces the amount of code created
- Increases efficiency by reusing services
- Reduces time to delivery when parts are completed
- Can help grow a community of people sharing knowledge and actionable items
All these reasons tie into making delivery faster by being able to deploy sections or being able to reuse pieces in another application.
There are important considerations, when deciding if you should develop microservices or a monolithic application. You don’t want to over engineer — not everything should be a microservice (think about reusability and compartmentalizing). As always, you need to think about the solution as a whole and what the architecture should be, before building a bunch of microservices.
New offering(s) mean new exposure
As your technology stack evolves, so should your risk process and testing needs. It becomes uncharted territory for all involved and it is important for teams to work together to understand any changes, making communication critical. Teams are learning together, so adjustments need to happen accordingly. With the potential for adjustments to be made continuously, mistakes can be made, but teams will need to pivot and fix accordingly.
Share what you did AND what you learned
One of the benefits received from communicating the initial microservice, is feedback on enhancements and bugs. You may find that your colleagues are excited to have something they can reuse and they will react positively with points of improvement. Developing microservices can be quicker in the short term, and if done properly, allow for stronger code long term.
We adopted this process within the Lab of Forward Thinking (LOFT), the innovation lab within Manulife / John Hancock. We used internal social media to announce the service and maintain a repository in our document management site. The groups can be siloed in a company and it is important to make sure it is shared broader. At the LOFT, we try to stress communication of our efforts with the broader organization
Have you deployed a microservice in your organization? What were some of the benefits and improvements you found or, what were some of the obstacles you may have had to overcome?