8 CONCLUSIONS
It should be noted that migrating a legacy application
rarely can be performed without significant effort. It
is often entails hard and complex work. To the best
of our knowledge, there are frameworks that can be
used to support practitioners during the development
(forward engineering) of microservice-based systems,
such as Spring Cloud
5
and Hystrix
6
, just to name a
few. However, none of them provides full support to
the three migration phases. To contribute to filling this
gap, this paper presents the lessons learned to support
this kind of migration. We believe that the availabi-
lity these lessons learned can support and encourage
practitioners from the industry and academia to per-
form them.
The lessons learned were based on our experience
on the two-phase study reported in this paper. We also
plan to conduct a survey with practitioners from the
industry. Among other things, we wish to collect opi-
nions their perceptions regarding the challenges that
are faced during this type of migration, learn about
the requirements and characteristics for suitable pro-
cesses.
REFERENCES
Balalaie, A., Heydarnoori, A., and Jamshidi, P. (2016). Mi-
croservices architecture enables devops: migration to
a cloud-native architecture. IEEE Software, 33(3):42–
52.
Coplien, J. O. and Schmidt, D. C. (1995). Pattern langua-
ges of program design. ACM Press/Addison-Wesley
Publishing Co.
Dragoni, N., Giallorenzo, S., Lafuente, A. L., Mazzara, M.,
Montesi, F., Mustafin, R., and Safina, L. (2017). Mi-
croservices: yesterday, today, and tomorrow. In Pre-
sent and Ulterior Software Engineering, pages 195–
216. Springer.
Evans, E. (2004). Domain-driven design: tackling comple-
xity in the heart of software. Addison-Wesley Profes-
sional.
Gamma, E. (1995). Design patterns: elements of reusable
object-oriented software. Pearson Education India.
Kalske, M., Mäkitalo, N., and Mikkonen, T. (2017). Chal-
lenges when moving from monolith to microservice
architecture. In Current Trends in Web Engineering,
pages 32–47. Springer, Cham.
Leymann, F., Breitenbücher, U., Wagner, S., and Wettinger,
J. (2016). Native cloud applications: Why monolithic
virtualization is not their foundation. In Cloud Com-
puting and Services Science, pages 16–40. Springer,
Cham.
5
http://projects.spring.io/spring-cloud/
6
https://github.com/Netflix/Hystrix
Martin, R. C. (2002). The single responsibility principle.
The principles, patterns, and practices of Agile Soft-
ware Development, 149:154.
McLarty, M. Designing a microservice system.
Millett, S. (2015). Patterns, Principles and Practices of
Domain-Driven Design. John Wiley & Sons.
Nadareishvili, I., Mitra, R., McLarty, M., and Amundsen,
M. (2016). Microservice Architecture: Aligning Prin-
ciples, Practices, and Culture. "O’Reilly Media, Inc.".
Newman, S. (2015). Building microservices: designing
fine-grained systems. "O’Reilly Media, Inc.".
Ossher, H. and Tarr, P. (2002). Multi-dimensional separa-
tion of concerns and the hyperspace approach. In Soft-
ware Architectures and Component Technology, pages
293–323. Springer.
Richardson, C. (2014a). Microservices: Decomposing ap-
plications for deployability and scalability.
Richardson, C. (2014b). Pattern: Monolithic architecture.
Posje´ceno, 15:2016.
Seaman, C. B. (1999). Qualitative methods in empirical
studies of software engineering. IEEE Transactions
on software engineering, 25(4):557–572.
Silva, H., Carneiro, G., and Monteiro, M. (2019). An expe-
rience report from the migration of legacy software
systems to microservice based architecture. In In-
formation Technology-New Generations (ITNG 2019),
pages 159–165. Springer.
Singleton, A. (2016). The economics of microservices.
IEEE Cloud Computing, 3(5):16–20.
Taibi, D., Lenarduzzi, V., and Pahl, C. (2017). Processes,
motivations, and issues for migrating to microservices
architectures: An empirical investigation. IEEE Cloud
Computing, 4(5):22–32.
Toffetti, G., Brunner, S., Blöchlinger, M., Spillner, J., and
Bohnert, T. M. (2017). Self-managing cloud-native
applications: Design, implementation, and experi-
ence. Future Generation Computer Systems, 72:165–
179.
Wolff, E. (2016). Microservices: Flexible Software Archi-
tecture. Addison-Wesley Professional.
Towards a Roadmap for the Migration of Legacy Software Systems to a Microservice based Architecture
47