Skip to main content

Migrating to Cloud-Native Architectures Using Microservices: An Experience Report

Part of the Communications in Computer and Information Science book series (CCIS,volume 567)

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.

Keywords

  • Cloud migration
  • Microservices
  • Cloud-native architectures
  • Software modernization

This is a preview of subscription content, access via your institution.

Fig. 1.
Fig. 2.
Fig. 3.
Fig. 4.
Fig. 5.
Fig. 6.
Fig. 7.
Fig. 8.

Notes

  1. 1.

    http://www.pegahtech.ir.

  2. 2.

    https://www.ejabberd.im/.

  3. 3.

    http://projects.spring.io/spring-boot.

  4. 4.

    http://projects.spring.io/spring-cloud.

  5. 5.

    http://netflix.github.io.

  6. 6.

    http://www.haproxy.org.

  7. 7.

    https://jenkins-ci.org.

  8. 8.

    https://about.gitlab.com.

  9. 9.

    http://www.jfrog.com/open-source.

  10. 10.

    https://www.docker.com.

  11. 11.

    https://docs.docker.com/registry.

  12. 12.

    https://docs.docker.com/compose.

  13. 13.

    https://coreos.com.

  14. 14.

    http://kubernetes.io.

References

  1. 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

    Google Scholar 

  2. 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

    Google Scholar 

  3. Daigneau, R.: Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and Restful Web Services. Addison-Wesley Professional, Reading (2011)

    Google Scholar 

  4. Evans, E.: Domain-driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley Professional, Reading (2004)

    Google Scholar 

  5. 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

    Google Scholar 

  6. Fowler, M., Lewis, J.: Microservices. http://martinfowler.com/articles/microservices.html. Accessed 15 Jun 2015

  7. Hohpe, G., Woolf, B.: Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley Professional, Reading (2004)

    Google Scholar 

  8. Humble, J., Farley, D.: Continuous delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Addison-Wesley Professional, Reading (2010)

    Google Scholar 

  9. Jamshidi, P., Ahmad, A., Pahl, C.: Cloud migration research: a systematic review. IEEE Trans. Cloud Comput. 1(2), 142–157 (2013)

    CrossRef  Google Scholar 

  10. 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)

    CrossRef  Google Scholar 

  11. Martin, R.: Clean micro-service architecture. http://blog.cleancoder.com/uncle-bob/2014/10/01/CleanMicroserviceArchitecture.html. Accessed 15 June 2015

  12. Mendonca, N.: Architectural options for cloud migration. Computer 47(8), 62–66 (2014)

    CrossRef  Google Scholar 

  13. Newman, S.: Building Microservices. O’Reilly Media, Sebastopol (2015)

    Google Scholar 

  14. Nygard, M.: Release It!: Design and Deploy Production-Ready Software. Pragmatic Bookshelf, Raleigh (2007)

    Google Scholar 

  15. 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

  16. Richardson, C.: Microservices architecture (2014). http://microservices.io/. Accessed 15 June 2015

  17. Borsje, S.: How we build microservices at karma. https://blog.yourkarma.com/building-microservices-at-karma. Accessed 15 June 2015

  18. Stine, M.: Migrating to Cloud-Native Application Architectures. O’Reilly Media, Sebastopol (2015)

    Google Scholar 

  19. Vernon, V.: Implementing Domain-driven Design. Addison-Wesley Professional, Reading (2013)

    Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Abbas Heydarnoori .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)