Microservices: Architecting for Continuous Delivery and DevOps
Author:
- Lianping ChenLCLianping Chen
- 1 April 2018
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 39-397
Abstract
Businesses today need to respond to customer needs at unprecedented speeds. Driven by this need for speed, many companies are rushing to the DevOps movement and implementing Continuous Delivery (CD). I had been implementing DevOps and CD for Paddy Power, a multi-billion-euro betting and gaming company, for four years. I had found that software architecture can be a key barrier. To address the architectural challenges, we tried an emerging architectural style called Microservices. I have observed increased deployability, modifiability, and resilience to design erosion. At the same time, I also observed new challenges associated with the increased number of services, evolving contracts among services, technology diversity, and testing. I share the practical strategies that can be employed to address these new challenges, discuss situations for which Microservices may not be a good choice, and outline areas that require further research.Keywords
This publication has 10 references indexed in Scilit:
- Continuous Delivery: Overcoming adoption challengesJournal of Systems and Software, 2017
- The Intersection of Continuous Deployment and Architecting Process2016
- Microservices Architecture Enables DevOps: Migration to a Cloud-Native ArchitectureIEEE Software, 2016
- Speed, Data, and Ecosystems: The Future of Software EngineeringIEEE Software, 2015
- A systematic literature review on SOA migrationJournal of Software: Evolution and Process, 2015
- Towards Architecting for Continuous Delivery2015
- Continuous Delivery: Huge Benefits, but Challenges TooIEEE Software, 2015
- Toward Design Decisions to Enable Deployability: Empirical Study of Three Projects Reaching for the Continuous Delivery Holy Grail2014
- Towards an Evidence-Based Understanding of Emergence of Architecture through Continuous Refactoring in Agile Software Development2014
- Characterizing Architecturally Significant RequirementsIEEE Software, 2012