Aplicación cloud native en el contexto de una ingeniería de software continua
Resumen
Una aplicación cloud native es un tipo de software que ha sido diseñado específicamente para ejecutarse en la nube, con enfoque distribuido, elástico, escalado horizontal y compuesto de microservicios con implementación autónoma. Asimismo, se diseñan con arquitecturas web cloud native, operan en una plataforma elástica de autoservicio y se caracterizan por su resiliencia y elasticidad. La ingeniería de software continua es un proceso que busca articular la ingeniería de requisitos, el desarrollo y las operaciones en un bucle continuo, con una retroalimentación recíproca, con la finalidad de producir un software de calidad. En ese contexto, el presente trabajo propone el diseño e implementación de una aplicación cloud native en una perspectiva de ingeniería de software continua, aplicada al caso de estudio SIGCON. Usa el modelo de servicio cloud CaaS, aplica el patrón BFF en la construcción del software, realiza contenedorización del frontend, backend y almacenamiento, y expone los resultados.
Descargas
Citas
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
Esta obra está bajo licencia internacional Creative Commons Reconocimiento 4.0.
Los autores/as que publiquen en esta revista aceptan las siguientes condiciones:
Los autores/as conservan los derechos de autor y ceden a la revista el derecho de la primera publicación, con el trabajo registrado con la licencia de atribución de Creative Commons, que permite a terceros utilizar lo publicado siempre que mencionen la autoría del trabajo y a la primera publicación en esta revista.
Los autores/as pueden realizar otros acuerdos contractuales independientes y adicionales para la distribución no exclusiva de la versión del artículo publicado en esta revista (p. ej., incluirlo en un repositorio institucional o publicarlo en un libro) siempre que indiquen claramente que el trabajo se publicó por primera vez en esta revista.
Se permite y recomienda a los autores/as a publicar su trabajo en Internet (por ejemplo en páginas institucionales o personales) antes y durante el proceso de revisión y publicación, ya que puede conducir a intercambios productivos y a una mayor y más rápida difusión del trabajo publicado (vea The Effect of Open Access).
Última actualización: 03/05/21