Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6
| Autor(a) principal: | |
|---|---|
| Data de Publicação: | 2024 |
| Tipo de documento: | Trabalho de conclusão de curso |
| Idioma: | por |
| Título da fonte: | Repositório Institucional do IFPE |
| Texto Completo: | https://repositorio.ifpe.edu.br/xmlui/handle/123456789/1491 |
Resumo: | Este trabalho teve como objetivo realizar uma análise comparativa de desempenho de APIs RESTful desenvolvidas com Node.js, .NET e Go, utilizando a ferramenta k6 para medir o tempo de resposta em diferentes cenários de carga. A metodologia adotada foi de caráter experimental, com a implementação das APIs em cada uma das tecnologias mencionadas e a execução de testes controlados em um ambiente estável. Os resultados obtidos mostraram que o ASP.NET Core apresentou o melhor desempenho sob altas cargas de requisições, enquanto o Node.js foi eficiente em cenários de menor carga. A tecnologia Go, por sua vez, demonstrou um equilíbrio entre desempenho e simplicidade, sendo adequada para aplicações que exigem escalabilidade moderada. Conclui-se que a escolha da tecnologia para o desenvolvimento de APIs RESTful deve considerar o contexto específico de uso e a demanda de requisições simultâneas, uma vez que cada plataforma possui vantagens distintas em termos de desempenho e escalabilidade. |
| id |
IFPE_00d680a27850e7e90c8ba8de9cc4aab8 |
|---|---|
| oai_identifier_str |
oai:repositorio.ifpe.edu.br:123456789/1491 |
| network_acronym_str |
IFPE |
| network_name_str |
Repositório Institucional do IFPE |
| repository_id_str |
|
| spelling |
2025-01-29T18:33:14Z2025-01-29T18:33:14Z2024-12-06https://repositorio.ifpe.edu.br/xmlui/handle/123456789/1491Este trabalho teve como objetivo realizar uma análise comparativa de desempenho de APIs RESTful desenvolvidas com Node.js, .NET e Go, utilizando a ferramenta k6 para medir o tempo de resposta em diferentes cenários de carga. A metodologia adotada foi de caráter experimental, com a implementação das APIs em cada uma das tecnologias mencionadas e a execução de testes controlados em um ambiente estável. Os resultados obtidos mostraram que o ASP.NET Core apresentou o melhor desempenho sob altas cargas de requisições, enquanto o Node.js foi eficiente em cenários de menor carga. A tecnologia Go, por sua vez, demonstrou um equilíbrio entre desempenho e simplicidade, sendo adequada para aplicações que exigem escalabilidade moderada. Conclui-se que a escolha da tecnologia para o desenvolvimento de APIs RESTful deve considerar o contexto específico de uso e a demanda de requisições simultâneas, uma vez que cada plataforma possui vantagens distintas em termos de desempenho e escalabilidade.This work aimed to perform a comparative analysis of the performance of RESTful APIs developed with Node.js, .NET, and Go, using the k6 tool to measure response times in different load scenarios. The adopted methodology was experimental, involving the implementation of the APIs in each of the mentioned technologies and the execution of controlled tests in a stable environment. The results showed that ASP.NET Core exhibited the best performance under high request loads, while Node.js was efficient in lower load scenarios. Go, on the other hand, demonstrated a balance between performance and simplicity, making it suitable for applications that require moderate scalability. It is concluded that the choice of technology for developing RESTful APIs should consider the specific usage context and the demand for simultaneous requests, as each platform has distinct advantages in terms of performance and scalability.86f.ARAÚJO, Maria Gabrielly de Almeida. tcc-codes. 2024. Disponível em: https://github.com/mgGabrielly/tcc-codes.git. Acesso em: 01 out. 2024. BITTENCOURT, André Luiz de Moura Ramos. Uma comparação de performance entre arquitetura GraphQL e REST. Brasília: Universidade de Brasília, 2021. 54 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – Instituto de Ciências Exatas, Departamento de Ciência da Computação, Universidade de Brasília, 2021. Disponível em: https://bdm.unb.br/bitstream/10483/31169/1/2021_AndreLuizRamosBittencourt_tcc.pdf. Acesso em: 17 ago. 2024. CAMPBELL, Donald T; STANLEY, Julian C. Experimental and quasi-experimental designs for research. [S.l.]: Ravenio Books, 2015. Disponível em: https://www.sfu.ca/~palys/Campbell&Stanley-1959-Exptl&QuasiExptlDesignsForResearch.p df. Acesso em: 23 jun. 2024. CARMO, Klayver Ximenes. Um estudo comparativo entre tecnologias de back-end: Node.js, Django REST Framework e ASP.NET Core. 2023. 106 f. Trabalho de conclusão de curso (Graduação em Engenharia de Computação) Universidade Federal do Ceará, Campus de Sobral, Sobral, 2023. Disponível em: http://repositorio.ufc.br/handle/riufc/77574. Acesso em: 14 ago. 2024. CHIMUCO, Pedro Ventura Lucunde; BARBOSA, Ana Claudia Garcia. Validação de carga em testes de desempenho de APIs de cadastro de usuários: Garantindo qualidade e eficiência com Docker e K6. 2024. Trabalho de Conclusão de Curso (Graduação em Engenharia de Software) – Universidade do Extremo Sul Catarinense, Criciúma, 2024. Disponível em: http://repositorio.unesc.net/handle/1/10988. Acesso em: 26 ago. 2024. CHINA, Chrystal R. GraphQL vs. REST API: What’s the difference? IBM Blog, 29 mar. 2024. Disponível em: https://www.ibm.com/blog/graphql-vs-rest-api. Acesso em: 14 ago. 2024. COZBY, P. Métodos de Pesquisa em Ciências do Comportamento. 5. ed. São Paulo: Editora Atlas S.A., 2012. Disponível em: https://edisciplinas.usp.br/pluginfile.php/7920584/mod_resource/content/3/Cozby_P._C._200 3_._Metodos_de_pesquisa_e.pdf. Acesso em: 24 jun. 2024. DALBARD, Axel; ISACSON, Jesper. Comparative study on performance between ASP.NET and Node.js Express for web-based calculation tools. 2021. Trabalho de Conclusão de Curso (Graduação em Engenharia da Computação) – Jönköping University, Jönköping, 2021. Disponível em: https://www.diva-portal.org/smash/record.jsf?pid=diva2%3A1572101&dswid=1215. Acesso em: 17 set. 2024. DEMIR, Dennis; NILSSON, Edward. Performance comparison of REST vs GraphQL in different web environments: Node.js and Python. Västerås: Mälardalen University, 2023. 29 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – School of Innovation, Design and Engineering, Mälardalen University, 2023. Disponível em: https://urn.kb.se/resolve?urn=urn:nbn:se:lnu:diva-121877. Acesso em: 22 ago. 2024. DHALLA, H. K. A performance comparison of RESTful applications implemented in Spring Boot Java and MS.NET Core. Journal of Physics: Conference Series, v. 1933, p. 012041, 2021. Disponível em: https://doi.org/10.1088/1742-6596/1933/1/012041. Acesso em: 22 jun. 2024. ECHO. Echo Documentation. [s.d.]. Disponível em: https://echo.labstack.com/. Acesso em: 17 set. 2024. EHSAN, A.; ABUHALIQA, M. A. M. E.; CATAL, C.; MISHRA, D. RESTful API testing methodologies: rationale, challenges, and solution directions. Applied Sciences, v. 12, n. 9, p. 4369, 2022. DOI: 10.3390/app12094369. Disponível em: https://doi.org/10.3390/app12094369. Acesso em: 17 ago. 2024. FIELDING, Roy et al. Hypertext Transfer Protocol–HTTP/1.1. 1999. Disponível em: https://www.rfc-editor.org/rfc/rfc2616?data1=dwnsb4B&data2=abmurltv2b. Acesso em: 18 ago. 2024. FIELDING, Roy Thomas. Architectural styles and the design of network-based software architectures. 2000. Tese (Doutorado em Ciência da Computação) — University of California, Irvine, 2000. Disponível em: https://ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf. Acesso em: 10 ago. 2024. GO. GO FOR WEB DEVELOPMENT. 2019. Disponível em: https://go.dev/solutions/webdev. Acesso em: 17 set. 2024. GOLMOHAMMADI, A.; ZHANG, M.; ARCURI, A. Testing RESTful APIs: a survey. ACM Transactions on Software Engineering and Methodology, v. 33, n. 1, Art. 27, p. 1-41, nov. 2023. DOI: 10.1145/3617175. GOODWIN, Michael. O que é uma API (interface de programação de aplicativos)? IBM, 09 abr. 2024. Disponível em: https://www.ibm.com/br-pt/topics/api. Acesso em: 12 ago. 2024. GRAFANA. Grafana k6. [s.d.]. Grafana Documentation. Disponível em: https://grafana.com/docs/k6/latest/. Acesso em: 26 ago. 2024. GRAY, D. E. Pesquisa no mundo real. 2. ed. Porto Alegre: Penso, 2012. Disponível em: https://www.academia.edu/24859386/Livro_Pesquisa_no_Mundo_Real_David_E_Gray. Acesso em: 23 jun. 2024. JONSSON, Max; QVARNSTRÖM, Eric. A performance comparison on REST-APIs in Express.js, Flask and ASP.NET Core. Västerås, Sweden: Mälardalen University, 2022. 40 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – School of Innovation, Design and Engineering, Mälardalen University, 2022. Disponível em: https://www.diva-portal.org/smash/get/diva2:1669487/FULLTEXT01.pdf. Acesso em: 17 ago. 2024. KARLSSON, Oliver. A performance comparison between ASP.NET Core and Express.js for creating Web APIs. 2021. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) – Jönköping University, Jönköping, 2021. Disponível em: https://www.diva-portal.org/smash/record.jsf?pid=diva2%3A1586295&dswid=-8074. Acesso em: 17 set. 2024. KRYLOV, Georgiy; PATROU, Maria; DUECK, Gerhard W.; SIU, Joran. The Evolution of Garbage Collection in V8: Google’s JavaScript Engine. In: 2020 9th Mediterranean Conference on Embedded Computing (MECO), 8-11 junho 2020, Budva, Montenegro. IEEE, 2020. p. 1-8. Disponível em: https://www.doi.org/10.1109/MECO49872.2020.9134326. Acesso em: 22 ago. 2024. LEITE, Gabriel. Saiba o que é JSON e como utilizar. Alura, 05 set. 2023. Disponível em: https://www.alura.com.br/artigos/o-que-e-json. Acesso em: 18 ago. 2023. LOUZADA, Vinícius; CARVALHO, Caroline; LARANJA, Emerson. API: o que é, para quê serve e qual é a sua importância. Alura, 01 mar. 2024. Disponível em: https://www.alura.com.br/artigos/api. Acesso em: 14 ago. 2024. MAIOR, Milton José Vieira Souto. Análise Comparativa de Performance de Frameworks para APIs Rest. 2023. 55 f. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) – Centro de Informática, Universidade Federal de Pernambuco, 2023. Disponível em:https://repositorio.ufpe.br/bitstream/123456789/50396/9/TCC_MiltonJoseVieiraSoutoMai or_mjvsm.pdf. Acesso em: 18 ago. 2024. MARCONI, M. d. A.; LAKATOS, E. M. Metodologia do trabalho científico. 8ª. ed. São Paulo-SP: Editora Atlas, 2017. Disponível em: https://edisciplinas.usp.br/pluginfile.php/7237618/mod_resource/content/1/Marina%20Marco ni%2C%20Eva%20Lakatos_Fundamentos%20de%20metodologia%20cient%C3%ADfica.pd f. Acesso em: 24 jun. 2024. MASO, Nicolas Nascimento. Comparativo entre arquiteturas de APIs - REST, GraphQL e gRPC. 2024. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) – Universidade Federal de Santa Catarina, Florianópolis, 2024. Disponível em: https://repositorio.ufsc.br/bitstream/handle/123456789/255699/TCC%20-%20Nicolas%20Nas cimento%20Maso.pdf?sequence=1&isAllowed=y. Acesso em: 28 ago. 2024. MIAZAKI, Alison. GraphQL, REST, RPC e SOAP? Medium, 19 mar. 2021. Disponível em: https://alisonmiazaki.medium.com/graphql-rest-rpc-e-soap-79a361e1a59e. Acesso em: 14 ago. 2024. MICROSOFT. Overview of ASP.NET Core. 2024. Disponível em: https://learn.microsoft.com/en-us/aspnet/core/introduction-to-aspnet-core?view=aspnetcore-8. 0. Acesso em: 17 set. 2024. MORAES, Edmilson. K6 x JMeter: comparativo de ferramentas para testes de carga. Blog Vericode, 29 ago. 2023. Disponível em: https://blog.vericode.com.br/ferramentas-teste-de-carga-k6-jmeter/. Acesso em: 26 ago. 2024. MOZILLA. Uma visão geral do HTTP. Disponível em: https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Overview. Acesso em: 18 ago. 2024. NESTJS. Nestjs Documentação. [s.d.]. Disponível em: https://docs.nestjs.com/. Acesso em: 22 ago. 2024. PEREIRA, Caio Ribeiro. Aplicações web real-time com Node.js. São Paulo: Casa do Código, 2014. 202 p. PEROVANO, Dalton Gean. Manual de metodologia da pesquisa científica. 1. ed. Curitiba: Intersaberes, 2016. E-book. Disponível em: https://plataforma.bvirtual.com.br. Acesso em: 24 jun. 2024. PETROSYAN, A. Global number of internet users 2005-2023. Statista, 22 maio 2024. Disponível em: https://www.statista.com/statistics/273018/number-of-internet-users-worldwide/. Acesso em: 18 set. 2024. PROVDANOV, C. C.; FREITAS, E. C. de. Metodologia do trabalho científico: métodos e técnicas da pesquisa e do trabalho acadêmico. Novo Hamburgo: Feevale, 2013. Disponível em: https://doi.org/10.1017/CBO9781107415324.004. Acesso em: 24. jun. 2024. RAZA, Syed Muhammad Ali. API (Application Programming Interfaces) Types. DEV Community, 10 set. 2023. Disponível em: https://dev.to/syedmuhammadaliraza/api-application-programming-interfaces-types-k3g. Acesso em: 14 ago. 2024. SABO, Mario. NestJS. Osijek, Croácia: Josip Juraj Strossmayer University of Osijek, 2020. 42 f. Trabalho de Conclusão de Curso (Bacharelado em Matemática e Ciência da Computação) – Departamento de Matemática, Josip Juraj Strossmayer University of Osijek, 2020. Documento em croata. Disponível em: https://zir.nsk.hr/islandora/object/mathos:441. Acesso em: 21 ago. 2024. SEVERINO, A. J. Metodologia do Trabalho científico. São Paulo: Cortez Editora, 2017. ISBN 978- 8524925207. Disponível em: https://plataforma.bvirtual.com.br. Acesso em: 24 jun. 2024. SHKODRA, Endrit; JAJAGA, Edmond; SHALA, Mehmet. Development and performance analysis of RESTful APIs in Core and Node.js using MongoDB database. In: Proceedings of the 17th International Conference on Web Information Systems and Technologies (WEBIST 2021), SciTePress, p. 227-234, 2021. Disponível em: https://www.scitepress.org/Papers/2021/106212/106212.pdf. Acesso em: 18 set. 2024. SOUZA, Estêvão Henrique Cangussú de et al. Estudo comparativo de desempenho entre API desenvolvida com Spring WebFlux e Node.js. II Worktec - Workshop de Tecnologia da Fatec Ribeirão Preto, [S. l.], v. 1, p. 1-2, 3 ago. 2020. Disponível em: http://www.fatecrp.edu.br/WorkTec/edicoes/2020-2/index.html. Acesso em: 13 ago. 2024. SRIVASTAVA, Anushka. CRUD API. 2023. Trabalho de Conclusão de Curso (Bacharelado em Engenharia da Computação) – Jaypee University of Information Technology, Himachal Pradesh, 2023. Disponível em: http://www.ir.juit.ac.in:8080/jspui/handle/123456789/9864. Acesso em: 17 set. 2024. TELLES, Diego. Princípios de uma API REST. 2023. Disponível em: https://unicorncoder.medium.com/princ%C3%ADpios-de-uma-api-rest-c8e08c2ba331. Acesso em: 18 ago. 2024. TROCHIM, W.; DONNELLY, J. P. The Research Methods Knowledge Base: Types of designs. 2020. WebRef. Disponível em: https://faculty.cengage.com/titles/9781133954774. Acesso em: 25 jun. 2024. Yin, R. K. Estudo de caso: planejamento e métodos. Syria Studies, v. 7, n. 1, 2004. Disponível em: http://maratavarespsictics.pbworks.com/w/file/fetch/74304716/3-YIN-planejamento_metodol ogia.pdf. Acesso em: 25 jun. 2024An error occurred on the license name.An error occurred getting the license - uri.info:eu-repo/semantics/openAccessCIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAODesenvolvimento de SoftwareAplicações web - desempenhoTecnologia da informaçãoSistemas de informaçãoAnálise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisNascimento, Jobson Tenório dohttp://lattes.cnpq.br/0354768265096456Torres, Elton BezerraSilva, José Fernando dahttp://lattes.cnpq.br/0943345989607946http://lattes.cnpq.br/5610501420140902http://lattes.cnpq.br/4963392179808067Araújo, Maria Gabrielly de AlmeidaBrasilBelo Jardimporreponame:Repositório Institucional do IFPEinstname:Instituto Federal de Educação, Ciência e Tecnologia de Pernambuco (IFPE)instacron:IFPEORIGINALAnálise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6.pdfAnálise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6.pdfapplication/pdf9177639https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/1/An%c3%a1lise%20comparativa%20de%20desempenho%20de%20APIs%20RESTful%20em%20Node.js%2c%20.NET%20e%20Go%20com%20K6.pdf5c4eb72d8c3ecf3ab394e0867be5b4a8MD51open accessCC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-80https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/2/license_rdfd41d8cd98f00b204e9800998ecf8427eMD52open accessLICENSElicense.txtlicense.txttext/plain; charset=utf-81748https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/3/license.txt8a4605be74aa9ea9d79846c1fba20a33MD53open accessTEXTAnálise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6.pdf.txtAnálise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6.pdf.txtExtracted texttext/plain154370https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/4/An%c3%a1lise%20comparativa%20de%20desempenho%20de%20APIs%20RESTful%20em%20Node.js%2c%20.NET%20e%20Go%20com%20K6.pdf.txt0de94087ffc31d2f63595b4aac33a52eMD54open accessTHUMBNAILAnálise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6.pdf.jpgAnálise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6.pdf.jpgIM Thumbnailimage/jpeg4858https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/5/An%c3%a1lise%20comparativa%20de%20desempenho%20de%20APIs%20RESTful%20em%20Node.js%2c%20.NET%20e%20Go%20com%20K6.pdf.jpg25648b9908b2cc8916ef6274924ce862MD55open access123456789/14912025-01-30 03:01:30.344open accessoai:repositorio.ifpe.edu.br:123456789/1491Tk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=Repositório InstitucionalPUBhttps://repositorio.ifpe.edu.br/oai/requestrepositorioifpe@reitoria.ifpe.edu.bropendoar:2025-01-30T06:01:30Repositório Institucional do IFPE - Instituto Federal de Educação, Ciência e Tecnologia de Pernambuco (IFPE)false |
| dc.title.pt_BR.fl_str_mv |
Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6 |
| title |
Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6 |
| spellingShingle |
Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6 Araújo, Maria Gabrielly de Almeida CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO Desenvolvimento de Software Aplicações web - desempenho Tecnologia da informação Sistemas de informação |
| title_short |
Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6 |
| title_full |
Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6 |
| title_fullStr |
Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6 |
| title_full_unstemmed |
Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6 |
| title_sort |
Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6 |
| author |
Araújo, Maria Gabrielly de Almeida |
| author_facet |
Araújo, Maria Gabrielly de Almeida |
| author_role |
author |
| dc.contributor.advisor1.fl_str_mv |
Nascimento, Jobson Tenório do |
| dc.contributor.advisor1Lattes.fl_str_mv |
http://lattes.cnpq.br/0354768265096456 |
| dc.contributor.referee1.fl_str_mv |
Torres, Elton Bezerra |
| dc.contributor.referee2.fl_str_mv |
Silva, José Fernando da |
| dc.contributor.referee1Lattes.fl_str_mv |
http://lattes.cnpq.br/0943345989607946 |
| dc.contributor.referee2Lattes.fl_str_mv |
http://lattes.cnpq.br/5610501420140902 |
| dc.contributor.authorLattes.fl_str_mv |
http://lattes.cnpq.br/4963392179808067 |
| dc.contributor.author.fl_str_mv |
Araújo, Maria Gabrielly de Almeida |
| contributor_str_mv |
Nascimento, Jobson Tenório do Torres, Elton Bezerra Silva, José Fernando da |
| dc.subject.cnpq.fl_str_mv |
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
| topic |
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO Desenvolvimento de Software Aplicações web - desempenho Tecnologia da informação Sistemas de informação |
| dc.subject.por.fl_str_mv |
Desenvolvimento de Software Aplicações web - desempenho Tecnologia da informação Sistemas de informação |
| description |
Este trabalho teve como objetivo realizar uma análise comparativa de desempenho de APIs RESTful desenvolvidas com Node.js, .NET e Go, utilizando a ferramenta k6 para medir o tempo de resposta em diferentes cenários de carga. A metodologia adotada foi de caráter experimental, com a implementação das APIs em cada uma das tecnologias mencionadas e a execução de testes controlados em um ambiente estável. Os resultados obtidos mostraram que o ASP.NET Core apresentou o melhor desempenho sob altas cargas de requisições, enquanto o Node.js foi eficiente em cenários de menor carga. A tecnologia Go, por sua vez, demonstrou um equilíbrio entre desempenho e simplicidade, sendo adequada para aplicações que exigem escalabilidade moderada. Conclui-se que a escolha da tecnologia para o desenvolvimento de APIs RESTful deve considerar o contexto específico de uso e a demanda de requisições simultâneas, uma vez que cada plataforma possui vantagens distintas em termos de desempenho e escalabilidade. |
| publishDate |
2024 |
| dc.date.issued.fl_str_mv |
2024-12-06 |
| dc.date.accessioned.fl_str_mv |
2025-01-29T18:33:14Z |
| dc.date.available.fl_str_mv |
2025-01-29T18:33:14Z |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
| format |
bachelorThesis |
| status_str |
publishedVersion |
| dc.identifier.uri.fl_str_mv |
https://repositorio.ifpe.edu.br/xmlui/handle/123456789/1491 |
| url |
https://repositorio.ifpe.edu.br/xmlui/handle/123456789/1491 |
| dc.language.iso.fl_str_mv |
por |
| language |
por |
| dc.relation.pt_BR.fl_str_mv |
ARAÚJO, Maria Gabrielly de Almeida. tcc-codes. 2024. Disponível em: https://github.com/mgGabrielly/tcc-codes.git. Acesso em: 01 out. 2024. BITTENCOURT, André Luiz de Moura Ramos. Uma comparação de performance entre arquitetura GraphQL e REST. Brasília: Universidade de Brasília, 2021. 54 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – Instituto de Ciências Exatas, Departamento de Ciência da Computação, Universidade de Brasília, 2021. Disponível em: https://bdm.unb.br/bitstream/10483/31169/1/2021_AndreLuizRamosBittencourt_tcc.pdf. Acesso em: 17 ago. 2024. CAMPBELL, Donald T; STANLEY, Julian C. Experimental and quasi-experimental designs for research. [S.l.]: Ravenio Books, 2015. Disponível em: https://www.sfu.ca/~palys/Campbell&Stanley-1959-Exptl&QuasiExptlDesignsForResearch.p df. Acesso em: 23 jun. 2024. CARMO, Klayver Ximenes. Um estudo comparativo entre tecnologias de back-end: Node.js, Django REST Framework e ASP.NET Core. 2023. 106 f. Trabalho de conclusão de curso (Graduação em Engenharia de Computação) Universidade Federal do Ceará, Campus de Sobral, Sobral, 2023. Disponível em: http://repositorio.ufc.br/handle/riufc/77574. Acesso em: 14 ago. 2024. CHIMUCO, Pedro Ventura Lucunde; BARBOSA, Ana Claudia Garcia. Validação de carga em testes de desempenho de APIs de cadastro de usuários: Garantindo qualidade e eficiência com Docker e K6. 2024. Trabalho de Conclusão de Curso (Graduação em Engenharia de Software) – Universidade do Extremo Sul Catarinense, Criciúma, 2024. Disponível em: http://repositorio.unesc.net/handle/1/10988. Acesso em: 26 ago. 2024. CHINA, Chrystal R. GraphQL vs. REST API: What’s the difference? IBM Blog, 29 mar. 2024. Disponível em: https://www.ibm.com/blog/graphql-vs-rest-api. Acesso em: 14 ago. 2024. COZBY, P. Métodos de Pesquisa em Ciências do Comportamento. 5. ed. São Paulo: Editora Atlas S.A., 2012. Disponível em: https://edisciplinas.usp.br/pluginfile.php/7920584/mod_resource/content/3/Cozby_P._C._200 3_._Metodos_de_pesquisa_e.pdf. Acesso em: 24 jun. 2024. DALBARD, Axel; ISACSON, Jesper. Comparative study on performance between ASP.NET and Node.js Express for web-based calculation tools. 2021. Trabalho de Conclusão de Curso (Graduação em Engenharia da Computação) – Jönköping University, Jönköping, 2021. Disponível em: https://www.diva-portal.org/smash/record.jsf?pid=diva2%3A1572101&dswid=1215. Acesso em: 17 set. 2024. DEMIR, Dennis; NILSSON, Edward. Performance comparison of REST vs GraphQL in different web environments: Node.js and Python. Västerås: Mälardalen University, 2023. 29 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – School of Innovation, Design and Engineering, Mälardalen University, 2023. Disponível em: https://urn.kb.se/resolve?urn=urn:nbn:se:lnu:diva-121877. Acesso em: 22 ago. 2024. DHALLA, H. K. A performance comparison of RESTful applications implemented in Spring Boot Java and MS.NET Core. Journal of Physics: Conference Series, v. 1933, p. 012041, 2021. Disponível em: https://doi.org/10.1088/1742-6596/1933/1/012041. Acesso em: 22 jun. 2024. ECHO. Echo Documentation. [s.d.]. Disponível em: https://echo.labstack.com/. Acesso em: 17 set. 2024. EHSAN, A.; ABUHALIQA, M. A. M. E.; CATAL, C.; MISHRA, D. RESTful API testing methodologies: rationale, challenges, and solution directions. Applied Sciences, v. 12, n. 9, p. 4369, 2022. DOI: 10.3390/app12094369. Disponível em: https://doi.org/10.3390/app12094369. Acesso em: 17 ago. 2024. FIELDING, Roy et al. Hypertext Transfer Protocol–HTTP/1.1. 1999. Disponível em: https://www.rfc-editor.org/rfc/rfc2616?data1=dwnsb4B&data2=abmurltv2b. Acesso em: 18 ago. 2024. FIELDING, Roy Thomas. Architectural styles and the design of network-based software architectures. 2000. Tese (Doutorado em Ciência da Computação) — University of California, Irvine, 2000. Disponível em: https://ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf. Acesso em: 10 ago. 2024. GO. GO FOR WEB DEVELOPMENT. 2019. Disponível em: https://go.dev/solutions/webdev. Acesso em: 17 set. 2024. GOLMOHAMMADI, A.; ZHANG, M.; ARCURI, A. Testing RESTful APIs: a survey. ACM Transactions on Software Engineering and Methodology, v. 33, n. 1, Art. 27, p. 1-41, nov. 2023. DOI: 10.1145/3617175. GOODWIN, Michael. O que é uma API (interface de programação de aplicativos)? IBM, 09 abr. 2024. Disponível em: https://www.ibm.com/br-pt/topics/api. Acesso em: 12 ago. 2024. GRAFANA. Grafana k6. [s.d.]. Grafana Documentation. Disponível em: https://grafana.com/docs/k6/latest/. Acesso em: 26 ago. 2024. GRAY, D. E. Pesquisa no mundo real. 2. ed. Porto Alegre: Penso, 2012. Disponível em: https://www.academia.edu/24859386/Livro_Pesquisa_no_Mundo_Real_David_E_Gray. Acesso em: 23 jun. 2024. JONSSON, Max; QVARNSTRÖM, Eric. A performance comparison on REST-APIs in Express.js, Flask and ASP.NET Core. Västerås, Sweden: Mälardalen University, 2022. 40 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – School of Innovation, Design and Engineering, Mälardalen University, 2022. Disponível em: https://www.diva-portal.org/smash/get/diva2:1669487/FULLTEXT01.pdf. Acesso em: 17 ago. 2024. KARLSSON, Oliver. A performance comparison between ASP.NET Core and Express.js for creating Web APIs. 2021. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) – Jönköping University, Jönköping, 2021. Disponível em: https://www.diva-portal.org/smash/record.jsf?pid=diva2%3A1586295&dswid=-8074. Acesso em: 17 set. 2024. KRYLOV, Georgiy; PATROU, Maria; DUECK, Gerhard W.; SIU, Joran. The Evolution of Garbage Collection in V8: Google’s JavaScript Engine. In: 2020 9th Mediterranean Conference on Embedded Computing (MECO), 8-11 junho 2020, Budva, Montenegro. IEEE, 2020. p. 1-8. Disponível em: https://www.doi.org/10.1109/MECO49872.2020.9134326. Acesso em: 22 ago. 2024. LEITE, Gabriel. Saiba o que é JSON e como utilizar. Alura, 05 set. 2023. Disponível em: https://www.alura.com.br/artigos/o-que-e-json. Acesso em: 18 ago. 2023. LOUZADA, Vinícius; CARVALHO, Caroline; LARANJA, Emerson. API: o que é, para quê serve e qual é a sua importância. Alura, 01 mar. 2024. Disponível em: https://www.alura.com.br/artigos/api. Acesso em: 14 ago. 2024. MAIOR, Milton José Vieira Souto. Análise Comparativa de Performance de Frameworks para APIs Rest. 2023. 55 f. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) – Centro de Informática, Universidade Federal de Pernambuco, 2023. Disponível em:https://repositorio.ufpe.br/bitstream/123456789/50396/9/TCC_MiltonJoseVieiraSoutoMai or_mjvsm.pdf. Acesso em: 18 ago. 2024. MARCONI, M. d. A.; LAKATOS, E. M. Metodologia do trabalho científico. 8ª. ed. São Paulo-SP: Editora Atlas, 2017. Disponível em: https://edisciplinas.usp.br/pluginfile.php/7237618/mod_resource/content/1/Marina%20Marco ni%2C%20Eva%20Lakatos_Fundamentos%20de%20metodologia%20cient%C3%ADfica.pd f. Acesso em: 24 jun. 2024. MASO, Nicolas Nascimento. Comparativo entre arquiteturas de APIs - REST, GraphQL e gRPC. 2024. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) – Universidade Federal de Santa Catarina, Florianópolis, 2024. Disponível em: https://repositorio.ufsc.br/bitstream/handle/123456789/255699/TCC%20-%20Nicolas%20Nas cimento%20Maso.pdf?sequence=1&isAllowed=y. Acesso em: 28 ago. 2024. MIAZAKI, Alison. GraphQL, REST, RPC e SOAP? Medium, 19 mar. 2021. Disponível em: https://alisonmiazaki.medium.com/graphql-rest-rpc-e-soap-79a361e1a59e. Acesso em: 14 ago. 2024. MICROSOFT. Overview of ASP.NET Core. 2024. Disponível em: https://learn.microsoft.com/en-us/aspnet/core/introduction-to-aspnet-core?view=aspnetcore-8. 0. Acesso em: 17 set. 2024. MORAES, Edmilson. K6 x JMeter: comparativo de ferramentas para testes de carga. Blog Vericode, 29 ago. 2023. Disponível em: https://blog.vericode.com.br/ferramentas-teste-de-carga-k6-jmeter/. Acesso em: 26 ago. 2024. MOZILLA. Uma visão geral do HTTP. Disponível em: https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Overview. Acesso em: 18 ago. 2024. NESTJS. Nestjs Documentação. [s.d.]. Disponível em: https://docs.nestjs.com/. Acesso em: 22 ago. 2024. PEREIRA, Caio Ribeiro. Aplicações web real-time com Node.js. São Paulo: Casa do Código, 2014. 202 p. PEROVANO, Dalton Gean. Manual de metodologia da pesquisa científica. 1. ed. Curitiba: Intersaberes, 2016. E-book. Disponível em: https://plataforma.bvirtual.com.br. Acesso em: 24 jun. 2024. PETROSYAN, A. Global number of internet users 2005-2023. Statista, 22 maio 2024. Disponível em: https://www.statista.com/statistics/273018/number-of-internet-users-worldwide/. Acesso em: 18 set. 2024. PROVDANOV, C. C.; FREITAS, E. C. de. Metodologia do trabalho científico: métodos e técnicas da pesquisa e do trabalho acadêmico. Novo Hamburgo: Feevale, 2013. Disponível em: https://doi.org/10.1017/CBO9781107415324.004. Acesso em: 24. jun. 2024. RAZA, Syed Muhammad Ali. API (Application Programming Interfaces) Types. DEV Community, 10 set. 2023. Disponível em: https://dev.to/syedmuhammadaliraza/api-application-programming-interfaces-types-k3g. Acesso em: 14 ago. 2024. SABO, Mario. NestJS. Osijek, Croácia: Josip Juraj Strossmayer University of Osijek, 2020. 42 f. Trabalho de Conclusão de Curso (Bacharelado em Matemática e Ciência da Computação) – Departamento de Matemática, Josip Juraj Strossmayer University of Osijek, 2020. Documento em croata. Disponível em: https://zir.nsk.hr/islandora/object/mathos:441. Acesso em: 21 ago. 2024. SEVERINO, A. J. Metodologia do Trabalho científico. São Paulo: Cortez Editora, 2017. ISBN 978- 8524925207. Disponível em: https://plataforma.bvirtual.com.br. Acesso em: 24 jun. 2024. SHKODRA, Endrit; JAJAGA, Edmond; SHALA, Mehmet. Development and performance analysis of RESTful APIs in Core and Node.js using MongoDB database. In: Proceedings of the 17th International Conference on Web Information Systems and Technologies (WEBIST 2021), SciTePress, p. 227-234, 2021. Disponível em: https://www.scitepress.org/Papers/2021/106212/106212.pdf. Acesso em: 18 set. 2024. SOUZA, Estêvão Henrique Cangussú de et al. Estudo comparativo de desempenho entre API desenvolvida com Spring WebFlux e Node.js. II Worktec - Workshop de Tecnologia da Fatec Ribeirão Preto, [S. l.], v. 1, p. 1-2, 3 ago. 2020. Disponível em: http://www.fatecrp.edu.br/WorkTec/edicoes/2020-2/index.html. Acesso em: 13 ago. 2024. SRIVASTAVA, Anushka. CRUD API. 2023. Trabalho de Conclusão de Curso (Bacharelado em Engenharia da Computação) – Jaypee University of Information Technology, Himachal Pradesh, 2023. Disponível em: http://www.ir.juit.ac.in:8080/jspui/handle/123456789/9864. Acesso em: 17 set. 2024. TELLES, Diego. Princípios de uma API REST. 2023. Disponível em: https://unicorncoder.medium.com/princ%C3%ADpios-de-uma-api-rest-c8e08c2ba331. Acesso em: 18 ago. 2024. TROCHIM, W.; DONNELLY, J. P. The Research Methods Knowledge Base: Types of designs. 2020. WebRef. Disponível em: https://faculty.cengage.com/titles/9781133954774. Acesso em: 25 jun. 2024. Yin, R. K. Estudo de caso: planejamento e métodos. Syria Studies, v. 7, n. 1, 2004. Disponível em: http://maratavarespsictics.pbworks.com/w/file/fetch/74304716/3-YIN-planejamento_metodol ogia.pdf. Acesso em: 25 jun. 2024 |
| dc.rights.driver.fl_str_mv |
An error occurred on the license name. An error occurred getting the license - uri. info:eu-repo/semantics/openAccess |
| rights_invalid_str_mv |
An error occurred on the license name. An error occurred getting the license - uri. |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
86f. |
| dc.publisher.country.fl_str_mv |
Brasil |
| dc.publisher.department.fl_str_mv |
Belo Jardim |
| dc.source.none.fl_str_mv |
reponame:Repositório Institucional do IFPE instname:Instituto Federal de Educação, Ciência e Tecnologia de Pernambuco (IFPE) instacron:IFPE |
| instname_str |
Instituto Federal de Educação, Ciência e Tecnologia de Pernambuco (IFPE) |
| instacron_str |
IFPE |
| institution |
IFPE |
| reponame_str |
Repositório Institucional do IFPE |
| collection |
Repositório Institucional do IFPE |
| bitstream.url.fl_str_mv |
https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/1/An%c3%a1lise%20comparativa%20de%20desempenho%20de%20APIs%20RESTful%20em%20Node.js%2c%20.NET%20e%20Go%20com%20K6.pdf https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/2/license_rdf https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/3/license.txt https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/4/An%c3%a1lise%20comparativa%20de%20desempenho%20de%20APIs%20RESTful%20em%20Node.js%2c%20.NET%20e%20Go%20com%20K6.pdf.txt https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/5/An%c3%a1lise%20comparativa%20de%20desempenho%20de%20APIs%20RESTful%20em%20Node.js%2c%20.NET%20e%20Go%20com%20K6.pdf.jpg |
| bitstream.checksum.fl_str_mv |
5c4eb72d8c3ecf3ab394e0867be5b4a8 d41d8cd98f00b204e9800998ecf8427e 8a4605be74aa9ea9d79846c1fba20a33 0de94087ffc31d2f63595b4aac33a52e 25648b9908b2cc8916ef6274924ce862 |
| bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 |
| repository.name.fl_str_mv |
Repositório Institucional do IFPE - Instituto Federal de Educação, Ciência e Tecnologia de Pernambuco (IFPE) |
| repository.mail.fl_str_mv |
repositorioifpe@reitoria.ifpe.edu.br |
| _version_ |
1844170748930818048 |