Abstract
Migration to the cloud has been a popular topic in industry and academia in recent years. Despite many benefits that the cloud presents, such as high availability and scalability, most of the on-premise application architectures are not ready to fully exploit the benefits of this environment, and adapting them to this environment is a non-trivial task. Microservices have appeared recently as novel architectural styles that are native to the cloud. These cloud-native architectures can facilitate migrating on-premise architectures to fully benefit from the cloud environments because non-functional attributes, like scalability, are inherent in this style. The existing approaches on cloud migration does not mostly consider cloud-native architectures as their first-class citizens. As a result, the final product may not meet its primary drivers for migration. In this paper, we intend to report our experience and lessons learned in an ongoing project on migrating a monolithic on-premise software architecture to microservices. We concluded that microservices is not a one-fit-all solution as it introduces new complexities to the system, and many factors, such as distribution complexities, should be considered before adopting this style. However, if adopted in a context that needs high flexibility in terms of scalability and availability, it can deliver its promised benefits.
Notes
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
References
Ardagna, D., di Nitto, E., Mohagheghi, P., Mosser, S., Ballagny, C., D’Andria, F., Casale, G., Matthews, P., Nechifor, C.S., Petcu, D., Gericke, A., Sheridan, C.: Modaclouds: a model-driven approach for the design and execution of applications on multiple clouds. In: 4th International Workshop on Modelling in Software Engineering (MISE), pp. 50–56, June 2012
Bergmayr, A., Bruneliere, H., Canovas Izquierdo, J., Gorronogoitia, J., Kousiouris, G., Kyriazis, D., Langer, P., Menychtas, A., Orue-Echevarria, L., Pezuela, C., Wimmer, M.: Migrating legacy software to the cloud with artist. In: 17th European Conference on Software Maintenance and Reengineering (CSMR), pp. 465–468, March 2013
Daigneau, R.: Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and Restful Web Services. Addison-Wesley Professional, Reading (2011)
Evans, E.: Domain-driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley Professional, Reading (2004)
Fehling, C., Leymann, F., Ruehl, S., Rudek, M., Verclas, S.: Service migration patterns - decision support and best practices for the migration of existing service-based applications to cloud environments. In: 6th IEEE International Conference on Service-Oriented Computing and Applications (SOCA), pp. 9–16, December 2013
Fowler, M., Lewis, J.: Microservices. http://martinfowler.com/articles/microservices.html. Accessed 15 Jun 2015
Hohpe, G., Woolf, B.: Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley Professional, Reading (2004)
Humble, J., Farley, D.: Continuous delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Addison-Wesley Professional, Reading (2010)
Jamshidi, P., Ahmad, A., Pahl, C.: Cloud migration research: a systematic review. IEEE Trans. Cloud Comput. 1(2), 142–157 (2013)
Jamshidi, P., Pahl, C., Chinenyeze, S., Liu, X.: Cloud migration patterns: a multi-cloud service architecture perspective. In: Toumani, F., et al. (eds.) Service-Oriented Computing - ICSOC 2014 Workshops. LNCS, vol. 8954, pp. 6–9. Springer, Switzerland (2015)
Martin, R.: Clean micro-service architecture. http://blog.cleancoder.com/uncle-bob/2014/10/01/CleanMicroserviceArchitecture.html. Accessed 15 June 2015
Mendonca, N.: Architectural options for cloud migration. Computer 47(8), 62–66 (2014)
Newman, S.: Building Microservices. O’Reilly Media, Sebastopol (2015)
Nygard, M.: Release It!: Design and Deploy Production-Ready Software. Pragmatic Bookshelf, Raleigh (2007)
Calçado, P.: Building products at soundcloud. https://developers.soundcloud.com/blog/building-products-at-soundcloud-part-1-dealing-with-the-monolith. Accessed 15 June 2015
Richardson, C.: Microservices architecture (2014). http://microservices.io/. Accessed 15 June 2015
Borsje, S.: How we build microservices at karma. https://blog.yourkarma.com/building-microservices-at-karma. Accessed 15 June 2015
Stine, M.: Migrating to Cloud-Native Application Architectures. O’Reilly Media, Sebastopol (2015)
Vernon, V.: Implementing Domain-driven Design. Addison-Wesley Professional, Reading (2013)
Acknowledgments
The work of Pooyan Jamshidi has been supported by the Irish Centre for Cloud Computing and Commerce (IC4) and by the Horizon 2020 project no. 644869 (DICE).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Balalaie, A., Heydarnoori, A., Jamshidi, P. (2016). Migrating to Cloud-Native Architectures Using Microservices: An Experience Report. In: Celesti, A., Leitner, P. (eds) Advances in Service-Oriented and Cloud Computing. ESOCC 2015. Communications in Computer and Information Science, vol 567. Springer, Cham. https://doi.org/10.1007/978-3-319-33313-7_15
Download citation
DOI: https://doi.org/10.1007/978-3-319-33313-7_15
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-33312-0
Online ISBN: 978-3-319-33313-7
eBook Packages: Computer ScienceComputer Science (R0)