Projecting Microservices: A Study over Asynchronous Queues to Achieve Reactive Design

Authors

  • Jonathan Lincoln Brilhante Universidade Federal da Paraíba (UFPB)
  • Rostand Costa Universidade Federal da Paraíba (UFPB) http://orcid.org/0000-0003-2057-6536
  • Tiago Maritan Universidade Federal da Paraíba (UFPB)

DOI:

https://doi.org/10.5753/isys.2019.391

Keywords:

Microsserviços, Sistemas Distribuídos, Programação Reativa, Filas Assíncronas, Análise de Sistemas

Abstract

Microsserviços (MS) são uma nova abordagem com o intuito de incrementar a escalabilidade e flexibilidade em grandes aplicações. Um dos maiores desafios com a abordagem de MS está em como desenvolver adequadamente um único serviço em termos do seu escopo, eficiência e confiabilidade. Neste trabalho é proposto um modelo arquitetural para estruturar internamente um microsserviço, inspirada em conceitos da programação reativa. Este modelo é coordenado internamente por filas assíncronas, que preservam a compatibilidade com a maioria dos componentes legados(monolíticos). Um estudo comparativo entre a abordagem tradicional e a arquitetura proposta foi executado afim de medir os impactos que desta estratégia em termos de desempenho, elasticidade e resiliência.

Downloads

Download data is not yet available.

Author Biography

Jonathan Lincoln Brilhante, Universidade Federal da Paraíba (UFPB)

Bacharel em ciências da computação pela Universidade Federal de Campina Grande e Mestrando na área de sistemas distribuídos pela Universidade Federal da Paraíba.

References

Alshuqayran, N., Ali, N., and Evans, R. (2016). A systematic mapping study in microservice architecture. In Service-Oriented Computing and Applications (SOCA), pages 44–51. IEEE.

Anderson, C. (2015). Docker. IEEE Software, 32(3).

Atul Shukla, R. T. (2014). Architecting reactive applications on aws.

Balakrishnan, K. (1996). Exponential distribution: theory, methods and applications. CRC press.

Balalaie, A., Heydarnoori, A., and Jamshidi, P. (2015). Microservices migration patterns. Technical report, Tech. Rep. TR-SUTCE-ASE-2015-01, Automated Software Engineering Group, Sharif University of Technology, Tehran, Iran.

Bass, L., Weber, I., and Zhu, L. (2015). DevOps: A Software Architect’s Perspective. Addison-Wesley Professional.

Boner, J. (2016). Reactive microservices architecture.

Bonér, J., Farley, D., Kuhn, R., and Thompson, M. (2014). The reactive manifesto.

Brilhante, J., Silva, B., Maciel, P., and Zimmermann, A. (2014). Eucabomber 2.0: A tool for dependability tests in eucalyptus cloud infrastructures considering vm life-cycle. In Systems, Man and Cybernetics (SMC), 2014 IEEE International Conference on, pages 2669–2674. IEEE.

Compton, B. T. and Withrow, C. (1990). Prediction and control of ada software defects. Journal of Systems and Software, 12(3):199–207.

Curry, E. (2004). Message-oriented middleware. Middleware for communications, pages 1–28.

Daniel, F. and Pernici, B. (2006). Insights into web service orchestration and choreography. International Journal of E-Business Research (IJEBR), 2(1):58–77.

Daniel, F. and Pernici, B. (2007). Web service orchestration and choreography: Enabling business processes on the web. E-Business Models, Services, and CommunicationsAdvances in E-Business Research Series, 2:251–274.

Dragoni, N., Giallorenzo, S., Lafuente, A., et al. (2016). Microservices: yesterday, today, and tomorrow. arXiv preprint arXiv:1606.04036.

El Emam, K., Benlarbi, S., Goel, N., et al. (2002). The optimal class size for objectoriented software. IEEE Transactions on software engineering, 28(5):494–509.

Esposito, C., Castiglione, A., and Choo, K.-K. R. (2016). Challenges in delivering software in the cloud as microservices. IEEE Cloud Computing, 3(5):10–14.

Falcao, E., Maritan, T., Duarte, A., and Pessoa, J. (2014). Deaf accessibility as a service: uma arquitetura elástica e tolerante a falhas para o sistema de tradução vlibras.

Fazio, M., Celesti, A., Ranjan, R., et al. (2016). Open issues in scheduling microservices in the cloud. IEEE Cloud Computing, pages 81–88.

Fowler, M. and Lewis, J. (2014). Microservices a definition of this new architectural term. URL: http://martinfowler.com/articles/microservices.html.

Gouigoux, J.-P. and Tamzalit, D. (2017). 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, pages 62–65. IEEE.

Gupta, A. (2015). Microservice design patterns. http://blog.arungupta.me/microservice-design-patterns/.

Gutierrez, F. (2017). Microservices. In Spring Boot Messaging, pages 179–192. Springer.

Halili, E. H. (2008). Apache JMeter: A practical beginner’s guide to automated testing and performance measurement for your websites. Packt Publishing Ltd.

Hassan, S. and Bahsoon, R. (2016). Microservices and their design trade-offs: A self adaptive roadmap. In Services Computing (SCC), 2016 IEEE International Conference on, pages 813–818. IEEE.

Hatton, L. (1997). Reexamining the fault density component size connection. IEEE software, pages 89–97.

Johanson, A., Flögel, S., Dullo, C., and Hasselbring, W. (2016). Oceantea: Exploring ocean-derived climate data using microservices.

Kecskemeti, G., Marosi, A. C., and Kertesz, A. (2016). The entice approach to decompose monolithic services into microservices. In High Performance Computing & Simulation (HPCS), 2016 International Conference on, pages 591–596. IEEE.

Levcovitz, A., Terra, R., and Valente, M. T. (2016). Towards a technique for extracting microservices from monolithic enterprise systems. arXiv preprint arXiv:1605.03175.

Malhotra, M. and Trivedi, K. S. (1995). Dependability modeling using petri-nets. IEEE Transactions on reliability, 44(3):428–440.

Namiot, D. and Sneps-Sneppe, M. (2014). On micro-services architecture. International Journal of Open Information Technologies, 2(9):24–27.

Newman, S. (2015). Building microservices. "O’Reilly Media, Inc.".

Richardson, C. (2015). Introduction to microservices. URL: https://www.nginx.com/blog/introduction-to-microservices.

Saarimäki, N., Lomio, F., Lenarduzzi, V., and Taibi, D. (2019). Does migrate a monolithic system to microservices decreases the technical debt? arXiv preprint arXiv:1902.06282.

Sill, A. (2016). The design and architecture of microservices. IEEE Cloud Computing, pages 76–80.

Thönes, J. (2015). Microservices. IEEE Software, pages 116–116.

Videla, A. and Williams, J. J. (2012). RabbitMQ in action: distributed messaging for everyone. Manning.

Villamizar, M., Garcés, O., et al. (2015). Evaluating the monolithic and the microservice architecture pattern to deploy web applications in the cloud. In Computing Colombian Conference (10CCC), 2015 10th, pages 583–590. IEEE.

Vohra, D. (2017). Scheduling pods on nodes. In Kubernetes Management Design Patterns, pages 199–236. Springer.

Published

2019-05-03

How to Cite

Brilhante, J. L., Costa, R., & Maritan, T. (2019). Projecting Microservices: A Study over Asynchronous Queues to Achieve Reactive Design. ISys - Brazilian Journal of Information Systems, 12(2), 117–153. https://doi.org/10.5753/isys.2019.391

Issue

Section

Systems and prototypes, and their application cases