Continuous Software Engineering of a Cloud-Native Application
DOI:
https://doi.org/10.26439/interfases2024.n19.7038Keywords:
Cloud Native Application, Cloud Service Models, BFF Pattern, Continuous Software EngineeringAbstract
A cloud-native application is a software specifically designed to run in the cloud, focusing on distributed, elastic, horizontally scaled, and microservice-based architecture with autonomous deployment. These applications are designed with cloud-native web architectures, operate on an elastic self-service platform, and stand out because of their resilience and elasticity. Continuous software engineering integrates requirements engineering, development, and operations in a continuous loop with reciprocal feedback to produce quality software. The present work proposes to design and implement a cloud-native application applied to the SIGCON case study from a continuous software engineering perspective. It uses the CaaS cloud service model, applies the BFF pattern in software construction, containerizes the frontend, backend, and storage, and presents the results.
Downloads
References
Almuairfi, S., & Alenezi, M. (2020). Security controls in infrastructure as code. Computer fraud & security, 2020(10), 13-19. https://doi.org/10.1016/S1361-3723(20)30109-3
Balalaie, A., Heydarnoori, A., & Jamshidi, P. (2016). Microservices architecture enables DevOps: migration to a Cloud-Native architecture. IEEE Software, 33(3), 42-52. https://doi.org/10.1109/MS.2016.64
Brown, K., & Woolf, B. (2016, octubre). Implementation patterns for microservices architectures. [presentación de paper]. PLoP’16: Proceedings of the 23rd Conference on pattern languages of programs, 1-35. https://www.hillside.net/plop/2016/papers/proceedings/papers/brown.pdf
Buchanan, I. (2024). Infrastructure as code. How infrastructure as code (IaC) manages complex infrastructures. Atlassian. https://www.atlassian.com/microservices/cloud-computing/infrastructure-as-code
Casa Grande. (2023, 12 de mayo). Reglamento de convivencia de edificios y condominios. https://www.administracionedificiosperu.com/2020/09/reglamento-de-convivencia-de-edificios.html
Docker (2024). Use containers to build, share and run your applications. https://www.docker.com/resources/what-container/
Duan, Y., Fu, G., Zhou, N., Sun, X., Narendra, N. & Hu, B. (2015). Everything as a service (Xaas) on the cloud: origins, current and future trends. CLOUD’15: proceedings of the 2045 IEEE 8th International conference on cloud computing, 621-628. https://doi.org/10.1109/CLOUD.2015.88
Eramo, R., Tucci, M., Di Pompeo, D., Cortellessa, V., Di Marco, A., & Taibi, D. (2024). Architectural support for software performance in continuous software engineering: a systematic mapping study. Journal of systems and software, 207, 111833. https://doi.org/10.1016/j.jss.2023.111833
Espinoza, C. (2020, 22 de febrero). Crecimiento urbano y ciudades del futuro. El Peruano. https://elperuano.pe/noticia/90177-crecimiento-urbano-y-ciudades-del-futuro
Flask. (s. f.). Flask. User’s guide. https://flask.palletsprojects.com/en/3.0.x/
FlaskSQLalchemy. (s. f.). Flask SQLalchemy. User guide. https://flask-sqlalchemy.palletsprojects.com/en/3.1.x/
Habala, O., Bobák, M., Šeleng, M., Tran, V., & Hluchý, L. (2023). Architecture of a function-as-a-service application. Computing and informatics, 42(4), 878-895. https://doi.org/10.31577/cai_2023_4_878
Hussein, M. K., Mousa, M. H., & Alqarni, M. A. (2019). A placement architecture for a container as a service (CaaS) in a cloud environment. Journal of cloud computing, 8, 7. https://doi.org/10.1186/s13677-019-0131-1
Kratzke, N., & Quint, P-C. (2017). Understanding cloud-native applications after 10 years of cloud computing. A systematic mapping study. Journal of systems and software, 126, 1-16. https://doi.org/10.1016/j.jss.2017.01.001
Larman, C. (1999). UML y patrones: una introducción al análisis y diseño orientado a objetos. Prentice Hall.
Mell, P., & Grance, T. (2012). The NIST definition of cloud computing. National Institute of Standards and Technology. https://doi.org/10.6028/NIST.SP.800-145
Merelli, I., Fornari, F., Tordini, F., D’Agostino, D., Aldinucci, M., & Cesini, D. (2019). Exploiting Docker containers over grid computing for a comprehensive study of chromatin conformation in different cell types. Journal of parallel and distributed computing, 134, 116-127. https://doi.org/10.1016/j.jpdc.2019.08.002
SQLAlchemy. (s. f.). The Python SQL toolkit and object relational mapper. https://www.sqlalchemy.org/
Stine, M. (2015). Migrating to cloud-native application architectures. O’Reilly Media.
Toffetti, G., Brunner, S., Blöchlinger, M., Spillner, J., & Bohnert, T. (2017). Self-managing cloud-native applications: design, implementation, and experience. Future generation computer systems, 72, 165-179. https://doi.org/10.1016/j.future.2016.09.002
Vega, É. (2021, 5 de mayo). Crecimiento inmobiliario vertical de Lima muestra comportamientos diferenciados. El Comercio. https://elcomercio.pe/economia/negocios/crecimiento-inmobiliario-vertical-de-lima-muestra-comportamientos-diferenciados-mercado-inmobiliario-capeco-tinsa-ncze-noticia/?ref=ecr
Downloads
Published
Issue
Section
License
Authors who publish with this journal agree to the following terms:
Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under an Attribution 4.0 International (CC BY 4.0) License. that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal.
Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal.
Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access).
Last updated 03/05/21