Logo PTI
Polish Information Processing Society
Logo FedCSIS

Annals of Computer Science and Information Systems, Volume 16

Position Papers of the 2018 Federated Conference on Computer Science and Information Systems

A Model-Driven Approach to Microservice Software Architecture Establishment

, , ,

DOI: http://dx.doi.org/10.15439/2018F370

Citation: Position Papers of the 2018 Federated Conference on Computer Science and Information Systems, M. Ganzha, L. Maciaszek, M. Paprzycki (eds). ACSIS, Vol. 16, pages 7380 ()

Full text

Abstract. In this positional paper we propose a model-driven approach which addresses challenges related to modeling, development and deployment of software applications that follow the microservice architecture (MSA) design principles. We argue in favor of a model-driven tool which can be used to resolve challenges from the MSA establishment domain by providing a domain-specific language for MSA modeling and code generators for producing: (i) program and configuration code for MSA implementation; and (ii) program procedures for MSA building, packaging and installation. We give a brief description of two approaches to software application development which emerged in the last decade: the monolithic architecture approach and the MSA approach. We focus on challenges related to MSA establishment and argue that our model-driven approach could be suitable for their resolution. We also propose a plan of research activities aimed at improving our approach and which will lead to the final implementation of a model-driven tool to support such an approach.

References

  1. A. Balalaie, H. Abbas, and J. Pooyan. "Migrating to cloud-native architectures using microservices: an experience report," In European Conference on Service-Oriented and Cloud Computing, pp. 201-215. Springer, Cham, 2015.
  2. A. Levcovitz, R. Terra, and M. Tulio Valente. "Towards a technique for extracting microservices from monolithic enterprise systems," arXiv preprint https://arxiv.org/abs/1605.03175 (2016).
  3. J.P. Gouigoux, and D. Tamzalit. "From Monolith to Microservices: Lessons Learned on an Industrial Migration to a Web Oriented Architecture," In Software Architecture Workshops (ICSAW), 2017 IEEE International Conference on, pp. 62-65. IEEE, 2017.
  4. “Open Services Gateway initiative” [Online], Available: https://en.wikipedia.org/wiki/OSGi [Accessed: 27-Jun-2018].
  5. M. Villamizar, O. Garcés, H. Castro, M. Verano, L. Salamanca, R. Casallas, and S. Gil. "Evaluating the monolithic and the microservice architecture pattern to deploy web applications in the cloud," In Computing Colombian Conference (10CCC), 2015 10th, pp. 583-590. IEEE, 2015.
  6. M. Villamizar, O. Garces, L. Ochoa, H. Castro, L. Salamanca, M. Verano, R. Casallas. "Infrastructure cost comparison of running web applications in the cloud using AWS lambda and monolithic and microservice architectures," In Cluster, Cloud and Grid Computing (CCGrid), 2016 16th IEEE/ACM International Symposium on, pp. 179-182. IEEE, 2016.
  7. E. Daniel, D. Cárdenas, R. Amarillo, E. Castro, K. Garcés, C. Parra, and R. Casallas. "Towards the understanding and evolution of monolithic applications as microservices," In Computing Conference (CLEI), 2016 XLII Latin American, pp. 1-11. IEEE, 2016.
  8. N. Dragoni, G. Saverio, A. L. Lafuente, M. Mazzara, F. Montesi, R. Mustafin, and L. Safina. "Microservices: yesterday, today, and tomorrow," In Present and Ulterior Software Engineering, pp. 195-216. Springer, Cham, 2017.
  9. T. Johannes. "Microservices." IEEE Software 32, no. 1 (2015): 116-116.
  10. N. Dragoni, I. Lanese, S. T. Larsen, M. Mazzara, R. Mustafin, and L. Safina. "Microservices: How to make your application scale," In International Andrei Ershov Memorial Conference on Perspectives of System Informatics, pp. 95-104. Springer, Cham, 2017.
  11. D. S. Linthicum. "Practical use of microservices in moving workloads to the cloud." IEEE Cloud Computing 3, no. 5 (2016): 6-9.
  12. K. Bakshi. "Microservices-based software architecture and approaches," In Aerospace Conference, 2017 IEEE, pp. 1-8. IEEE, 2017.
  13. J. Bogner, and A. Zimmermann. "Towards integrating microservices with adaptable enterprise architecture," In Enterprise Distributed Object Computing Workshop (EDOCW), 2016 IEEE 20th International, pp. 1-6. IEEE, 2016.
  14. “Awesome Microservices” [Online], Available: https://github.com/mfornos/awesome-microservices. [Accessed: 03-Jun-2018].
  15. “Microservices Martin Fowler and James Levis” [Online], Available: https://www.martinfowler.com/articles/microservices.html [Accessed: 03-Jun-2018].
  16. G. Kecskemeti, A. C. Marosi, and A. Kertesz. "The ENTICE approach to decompose monolithic services into microservices." In High Performance Computing & Simulation (HPCS), 2016 International Conference on, pp. 591-596. IEEE, 2016.
  17. “Netflix OSS” [Online], Available: https://netflix.github.io/ [Accessed: 03-Jun-2018].
  18. “Adopting Microservices at Nerflix” [Online], Available: https://netflix.github.io/ [Accessed: 03-Jun-2018].
  19. I. Lukovic, S. Ristic, S. Aleksic, A. Popovic. "An application of the MDSE principles in IIS* Case," Model Driven Software Engineer-ing-Transformations and Tools (2008): 85.AS
  20. J. Porubän, M. Sabo, J. Kollár, and M. Mernik. "Abstract syntax driven language development: Defining language semantics through aspects." In Proceedings of the International Workshop on Formalization of Modeling Languages, p. 2. ACM, 2010.
  21. A. Rodriguez. “Restful web services: The basics. IBM developerWorks”. 2008 Nov 6:33.
  22. R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, and T. Berners-Lee. “Hypertext transfer protocol--HTTP/1.1”. No. RFC 2616. 1999.
  23. “Communication between the microservices” [Online], Available: https://dzone.com/articles/communicating-between-microservices [Accessed: 03-Jun-2018].
  24. “Maven” [Online], Available: https://maven.apache.org/ [Accessed: 03-Jun-2018].
  25. “Gradle” [Online], Available: https://gradle.org/ [Accessed: 03-Jun-2018].
  26. “JAR file” [Online], Available: https://docs.oracle.com/javase/tutorial/deployment/jar/basicsindex.html [Accessed: 03-Jun-2018].
  27. “Docker” [Online], Available: https://www.docker.com/what-docker [Accessed: 03-Jun-2018].
  28. “Aws Multicontainer Docker Configuration” [Online], Available: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_v2config.html [Accessed: 03-Jun-2018].
  29. C. Esposito, A. Castiglione, and K.-K Raymond Choo. "Challenges in delivering software in the cloud as microservices." IEEE Cloud Computing 3, no. 5 (2016): 10-14.
  30. B. Terzić, V. Dimitrieski, S. Kordić, G. Milosavljević, and I. Luković. "Development and evaluation of MicroBuilder: A Model-Driven tool for the specification of REST Microservice Software Architectures," Enterprise Information Systems (2018): 1-24.
  31. “Netflix Turbine” [Online], Available: https://github.com/Netflix/Turbine [Accessed: 03-Jun-2018].
  32. “Spring Cloud Dashobard” [Online], Available: https://github.com/VanRoy/spring-cloud-dashboard [Accessed: 03-Jun-2018].
  33. “EMF” [Online], Available: http://www.eclipse.org/modeling/emf/ [Accessed: 03-Jun-2018].
  34. “Ecore” [Online], Available: http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/ecore/package-summary.html [Accessed: 03-Jun-2018].
  35. Eysholdt, Moritz, and Heiko Behrens. "Xtext: implement your language faster than the quick and dirty way." In Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, pp. 307-309. ACM, 2010.
  36. “Sirius” [Online], Available: https://www.eclipse.org/sirius/ [Accessed: 03-Jun-2018].
  37. “Xtend” [Online], Available: http://www.eclipse.org/xtend/ [Accessed: 03-Jun-2018].
  38. “Apache Kafka” [Online], Available: https://kafka.apache.org/ [Accessed: 03-Jun-2018].
  39. “IBM Container Service” [Online], Available : https://www.ibm.com/cloud/container-service [Accessed: 03-Jun-2018].
  40. “Aws Multicontainer Docker Configuration” [Online], Available: https://www.ibm.com/cloud/ [Accessed: 03-Jun-2018].
  41. “Netflix Spinnaker” [Online], Available: https://www.spinnaker.io/ [Accessed: 03-Jun-2018].
  42. G. Sousa, W. Rudametkin, and L. Duchien. "Automated setup of multi-cloud environments for microservices applications," In Cloud Computing (CLOUD), 2016 IEEE 9th International Conference on, pp. 327-334. IEEE, 2016.
  43. F. Rademacher, J. Sorgalla, S. Sachweh, and A. Zündorf. "Towards a Viewpoint-specific Metamodel for Model-driven Development of Microservice Architecture," arXiv preprint https://arxiv.org/abs/1804.09948 (2018).
  44. J. Sorgalla. "Ajil: A graphical modeling language for the development of microservice architectures," In Extended Abstracts of the Microservices 2017 Conference. 2017.
  45. “Slaying Monoliths at Netflix with Node.js” [Online], Available: https://www.linux.com/news/event/nodejs/2017/3/slaying-monoliths-netflix-nodejs/ [Accessed: 03-Jun-2018].
  46. “Node.js” [Online], Available: https://nodejs.org/en/ [Accessed: 03-Jun-2018].
  47. “Apache Zookeeper” [Online], Available: https://nodejs.org/en/ [Accessed: 03-Jun-2018].
  48. “Nerflix Eureka” [Online], Available: https://github.com/Netflix/eureka [Accessed: 03-Jun-2018].