In this post, you’ll get the inside scoop from a microservices veteran on the value, challenges, and what leadership should know. Microservices-based architecture is a strong trend in Enterprises, paving the smart way to move from legacy-based systems to cloud-based, flexible components.
For more background on microservices and an update for 2016, check out my post Microservices for Enterprises – 2016 Opportunities and Challenges.
The microservices engineer interview
I recently had a chance to sit down with Gaurav Malik, who is one of BETSOL‘s lead engineers, specializing in a microservices architecture. He has been able to leverage his expertise across numerous enterprise projects, giving him a huge breadth of insight into how microservices are evolving and impacting companies.
1. What do you see as the key benefits of having a microservices orientation as a company?
I break it down into 7 categories:
- Flexibility – To use different technologies.
- Scalability – Individual services can be scaled independently.
- Resilience – Fault in an individual service can be identified and isolated.
- Productivity – Development, maintenance, and testing cycles are reduced.
- Ease of Development – Smaller units easy to understand and develop.
- Composability – Microservices can be consumed and reused in different ways for different purposes.
- Replaceability – A microservice can be completely replaced by a new implementation without too much fuss.
2. What is the biggest challenge when transitioning to microservices?
I can’t pick one! There are a lot of challenges to delivering. Here’s the breakdown of where the challenges lie:
- Identify components to move first
- Designing and developing an integration between legacy and new stack
- Dealing with distributed transactions spanning multiple independent services
- Establishing operation and infrastructure support for the switch
- Monitoring a large number of components(services)
- Securing the microservices which are using different technologies, frameworks, and operating systems
3. What are the biggest mistakes companies make during these transitions?
Most of the mistakes lie on the process side, not the development end. Having the right consultancy and architecture lead from the start pays. Here are the mistakes I regularly see:
- Not outlining their current challenges clearly
- Rewriting the existing applications as services
- Not defining boundaries, responsibilities, and timeline clearly
- Not starting automation from the beginning
4. How do microservices save companies money?
They are really 4 key areas I see the financial impact coming from-
- Efficiency – The domain and the scope of a given microservice are small, ?so can be owned by a smaller team.
- Time to Market – Microservices increase productivity and deliver products quickly to compete in the market. It helps in staying in front of the demands of the market. We’ve literally been able to bring month-long cycle times down to minutes. In many scenarios, we see 75% faster time to market when operating in a proper microservices environment.
- Availability – Microservices can be easily scaled and maintenance is also easy, bringing close to 100% availability and better performance. This keeps the business running without an outage. [PS – see the staggering costs of downtime in 3 Ways to Benchmark Your Infrastructure Management]
- Infrastructure Cost– Individual services can be scaled up or down which reduces the operational cost.
5. If you were an executive, what would you ask your software delivery team to determine if they are ready to make the transition?
- Does a move from monolithic to microservices address the challenges we are having?
- Are the benefits clear?
- How much of the workload should be moved to microservices?
- How many team members will the transition effect, and do they have the capacity and/or experience to orchestrate a move of this magnitude?
6. What advice would you give to up and coming software engineers interested in a career in microservices?
- Should be willing to learn new technologies and take initiative to experiment with new software frameworks
- Adapts to new environments and changing requirements
- Strong sense of ownership, urgency, and drive
- Experience with cloud platforms like Cloud Foundry, Redhat OpenShift, AWS, Azure, or similar
I want to thank Gaurav Malik for sitting down to discuss with me and provide this great insight into microservices.
If you’re a company looking to graduate your legacy apps…or if you’re an engineer looking to get into microservices, give us a call or contact us in the form below.