Metodología GitOps para despliegue de aplicaciones basadas en microservicios

Maderuelo Riesco, Francisco (2021). Metodología GitOps para despliegue de aplicaciones basadas en microservicios. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. de Sistemas Informáticos (UPM), Madrid.

Description

Title: Metodología GitOps para despliegue de aplicaciones basadas en microservicios
Author/s:
  • Maderuelo Riesco, Francisco
Contributor/s:
  • Mingo López, Luis Fernando de
Item Type: Final Project
Degree: Grado en Tecnologías para la Sociedad de la Información
Date: May 2021
Subjects:
Freetext Keywords: DevOps; Integración continua (CI); Entrega continua (CD); Microservicios
Faculty: E.T.S.I. de Sistemas Informáticos (UPM)
Department: Sistemas Informáticos
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img] PDF - Users in campus UPM only - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (2MB)
[img] Archive (ZIP) - Users in campus UPM only
Download (389kB)

Abstract

Durante mucho tiempo la mayor parte del software ha sido desarrollado mediante la conocida como "arquitectura monolítica", donde todo el código necesario se compila en un único paquete o monolito. No obstante, en los últimos años la tendencia es usar un modelo basado en microservicios, consistente en dividir el código en servicios independientes más pequeños que se comunican entre ellos. Esta estructura es mucho más ágil y se adapta muy bien al modelo de integración y entrega continua (CI/CD) que siguen en la actualidad la mayor parte de desarrollos de software. A partir del año 2017 se empieza a hablar de GitOps, un concepto que intenta actualizar el proceso de CI/CD a las tecnologías que han ido apareciendo en los últimos años: microservicios, contenedores, orquestadores de contenedores, computación en la nube, etc. Con el objeto de mostrar esta metodología, en este trabajo de fin de grado se va a desplegar un clúster de Kubernetes en un entorno virtual, alojado en un ordenador portátil, que servirá como marco para mostrar este nuevo proceso de despliegue de aplicaciones y proporcionará un laboratorio para experimentar con estas tecnologías en auge. Para desplegar el entorno se usarán técnicas DevOps tales como la gestión de infraestructura como código y la automatización. Estas prácticas, cada vez más demandadas por las empresas, están orientadas a minimizar en lo posible el error humano y aumentar la eficiencia, resiliencia y agilidad, tanto de las aplicaciones como de las infraestructuras. Por último se mostrará, de forma teórica, cómo implementar esta solución en un entorno real productivo bajo un proveedor de nube pública. Se ha elegido el modelo de Kubernetes gestionado de Amazon Web Services (EKS) para llevar a cabo esta tarea. Abstract: For many years, most software has been developed using the "monolithic architecture", where all code is combined into a single program or monolith. Nevertheless, software development is steadily moving towards a microservices based model, which basically consists in breaking down applications into smaller components connected all together. This structure is more agile and suits perfectly with continuous integration and continuous delivery (CI/CD) model that most part of modern software developments have adopted. The term GitOps has become more popular since it was introduced in 2017. This concept tries to update CI/CD process using modern technologies like containers, orchestration or cloud computing. The purpose of this dissertation is to show how GitOps methodology works, by deploying a Kubernetes cluster in a virtual environment within a personal laptop where these techniques will be implemented. It would also provide a way to easily create a personal laboratory to practice with these new technologies. DevOps techniques, such as infrastructure as code or automation, will be used for deployment of this environment. These practices, highly demanded by companies nowadays, are oriented to minimize human error and increase efficiency, resilience, and agility of both applications and infrastructures. Lastly, a theoretical approach of this implementation in a real production environment, within a public cloud provider, will be shown. Kubernetes managed service from Amazon Web Services (EKS) has been chosen to elaborate this task.

More information

Item ID: 67264
DC Identifier: https://oa.upm.es/67264/
OAI Identifier: oai:oa.upm.es:67264
Deposited by: Biblioteca Universitaria Campus Sur
Deposited on: 27 May 2021 10:18
Last Modified: 27 May 2021 10:18
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM