Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ÁREA TÉCNICA
TRABAJO DE TITULACIÓN
Autor (a): Hurtado Duarte, Jorge Alcivar - Rosero Soto, Jonathan Andrés
LOJA - ECUADOR
2022
2
Dedicatoria
A mis padres Jorge Hurtado y Elsa Duarte, quienes me han acompañado durante mi etapa
de crecimiento personal y profesional.
A mi querida compañera Ariana, por toda la alegría y paciencia desde el momento que me
acompañó mi vida.
Jorge Hurtado
Le dedico este trabajo completamente a mi madre Maritza Maribel Soto Carrión, fuiste y
siempre serás la persona más importante de mi vida. Ojalá hubieses podido estar aquí
para leer este trabajo de titulación ya que sin tus enseñanzas sobre responsabilidad y
dedicación esto no hubiese sido posible.
Jonathan Rosero
3
AGRADECIMIENTOS
Agradezco…
A mis colegas y amigos Bruno, Jonathan, Luis, Ricardo y Ariana con los cuales tuve la
fortuna de coincidir y compartir.
Jorge Hurtado
Agradezco…
Al Mgtr, Armando Cabrera, director del trabajo de titulación quien nos tuvo paciencia y nos
supo guiar durante todo este proceso.
A mi padre Carlos Rosero por su apoyo incondicional, con tu ayuda he podido culminar
esta etapa de mi vida, eres el mejor papa que me pudo tocar.
A mis hermanas Ainoha Rosero, Cristina Rosero y Leia Rosero, ustedes han sido la luz
que a alumbrado mi vida en los momentos más difíciles de la misma.
Al equipo de Ascendere a María Isabel Loaiza, Nuve Briceño y Angie Salazar, gracias a su
confianza en nosotros logramos desarrollarnos como profesionales.
4
A mis amigos de toda esta etapa de mi vida Bruno Esparza, Luis Ortiz, Ricardo Arrobo y
por sobre todo a Jorge Hurtado tu has sido como un hermano y sin ti no hubiese podido
realizar este trabajo yo solo, siempre te estaré agradecido por esto. Y a todos mis amigos
que se mantuvieron pendientes de mí, dándome su cariño y apoyo.
Por último, agradezco a mi compañera de vida Jessica Caraguay por haber estado desde
el principio hasta el fin de este trabajo de titulación, apoyándome durante todo el
desarrollo, por la paciencia que tuviste, por los consejos y por impulsarme a superarme y
seguir mis sueños.
Jonathan Rosero
5
ÍNDICE DE CONTENIDO
Dedicatoria 1
Agradecimientos 3
Índice de Contenido 4
Resumen 7
Abstract 8
Introducción 9
Capítulo uno 11
Generalidades 11
Problemática 11
Justificación 12
Objetivos 12
Objetivos Específicos 12
Metodología 13
Resultados de la investigación 13
Actividades de la Investigación 13
Resultados de la investigación 13
Capítulo dos 15
Proyecto Ascendere 15
Innovación Docente 15
Proyectos de innovación 16
Buenas Prácticas 16
Semestre Ascendere 16
Formación Docente 17
Evaluación Docente 17
Laboratorio de Investigación e Innovación Docente (LiiD) 17
Capítulo tres 19
Marco teórico 19
Gestión de proyectos 19
Proyectos 19
Importancia de la gestión de proyectos 20
Estándares para la gestión de proyectos 21
ISO 21500:2012 21
6
Ecosistemas digitales 24
Características y beneficios de los ecosistemas digitales 25
Evolución de los ecosistemas digitales 26
Apertura de los ecosistemas 27
Grupos y dominios de los ecosistemas 29
Aplicaciones CLOUD. 30
Características esenciales de la computación en nube 30
Modelos de servicios en la nube 31
Aplicaciones Tradicionales frente a aplicaciones nativas en la nube 32
Principios de las aplicaciones nativas de la nube 33
Microservicios 34
Arquitecturas orientadas a servicios 35
Características de los microservicios 36
Desafíos de los microservicios 36
Beneficios de los microservicios 36
Cuando utilizar la arquitectura de microservicios 37
Kubernetes 37
Arquitectura de Kubernetes 37
Componentes de Kubernetes 39
Capítulo cuatro 41
Diseño de la solución 41
Metas y limitaciones arquitectónicas 41
Análisis de la plataforma 41
Cadena de valor 42
Mapa de capacidades 42
Esquema de desarrollo 43
Arquitectura de la plataforma 44
Casos de Uso 45
Gestión de convocatorias 46
Gestión de postulación 48
Requerimientos de Usuario 51
Relación entre historias épicas y diagramas de caso de uso. 51
Historias épicas 52
Diagramas de Clase 53
Microservicio de Usuarios 54
Microservicio de Inventario 54
Microservicio de Convocatoria 55
Microservicio de Postulación 56
Microservicio de Proyectos 57
7
Capítulo cinco 59
Desarrollo 59
Tecnologías empleadas 59
Canalización de DevOps 59
Clúster de kubernetes 60
Servidores multi nube 62
Desarrollo de la Plataforma 62
Diseño de la Plataforma 62
Desarrollo de la canalización de DevOps 64
Desarrollo de microservicios 67
Implementación WSO2 68
Capítulo seis 70
Resultados y conclusiones 70
Plataforma Ascendere 70
Convocatorias 70
Postulaciones 71
Recursos 72
Implementación de microservicios 73
API Manager 74
Conclusiones 74
Capítulo siete 76
Trabajos Futuros 76
Referencias 77
8
RESUMEN
ABSTRACT
Taking into consideration that in the current business market, staying competitive
implies adopting the best architectural practices and operating systems in a safe, reliable,
efficient, profitable and sustainable manner, this paper aims to address and implement the
issues of ecosystems and digital platforms within the Ascendere Project, belonging to the
Universidad Técnica Particular de Loja. The work focused on the analysis of the
Ascendere. The analysis used the life cycle of projects and groups of processes as
recommended by ISO 21500. Based on the analysis, to implement the platform and ensure
Finally, to ensure platform performance, service level agreements are defined to evaluate
platform performance.
INTRODUCCIÓN
Las tecnologías digitales han revolucionado las formas de cómo se crea valor en
las empresas y sectores verticales, incluyendo la educación. En los últimos años, una
extensión de la revolución de la creación de valor en las empresas ha sido la aparición de
plataformas y ecosistemas digitales. Los ecosistemas digitales son un grupo
interdependiente de empresas, personas y/o cosas que comparten plataformas digitales
estandarizadas con un propósito mutuamente beneficioso, como el beneficio comercial, la
innovación o el interés común (Avramakis et al., 2019). Mientras que las plataformas
digitales incluyen plataformas globales que permiten construir una gama de productos
sobre ellas.
impulsan esta tendencia son diversas y dispares. Algunas son empresas nativas digitales,
otras son gigantes de la economía digital. Otras, aún, son empresas tradicionales que se
están adaptando a un mundo digital más amplio adoptando una plataforma activa y una
estrategia de ecosistema.
CAPÍTULO UNO
GENERALIDADES
procesos y actividades utilizados para llevar a cabo el seguimiento y control del desarrollo
1.1 PROBLEMÁTICA
innovación docente.
1.2 JUSTIFICACIÓN
ocasionando dificultades para seguir el ritmo de trabajo que se realiza cada semestre. En
línea con esto, el aumento de proyectos y propuestas que buscan mejorar el nivel
1.3 OBJETIVOS
plataforma digital.
1.4 METODOLOGÍA
Actividades de la Investigación
● Método, definir el conjunto de pasos (un algoritmo o directriz) que se utilizarán para
CAPÍTULO DOS
PROYECTO ASCENDERE
un enfoque tradicionalista.
A partir del año 2015, se propone la implementación del Proyecto Ascendere, una
iniciativa que acoge aquellos proyectos que potencian las competencias pedagógicas de
metodologías de educación y uso de las TIC (Salazar et al., 2016). El nombre nace de la
Semper”, cuyo significado es “Recuerda Superarte Siempre”. Una premisa que reafirma el
miembros de la comunidad educativa (Salazar et al., 2016). Para cumplir con el propósito
se busca crear como eje principal a la comunicación entre docentes y estudiantes dentro y
profesionales.
convocatoria para que los docentes participen con sus propuestas de proyectos enfocados
Potenciando el uso creativo de diferentes herramientas dentro y fuera del aula, implicando
La propuesta del Semestre Ascendere se desarrolla a partir del año 2019 y tiene
como objetivo diseñar “asignaturas que trabajen en forma integral” cuya finalidad es
formación pedagógica (Loaiza et al., 2018). Por esto, Ascendere crea el programa de
Dota sólidas bases teóricas para que se apliquen y traduzcan en el desarrollo de buenas
de la UTPL. Por lo que, una vez realizado el proceso, se analizan todas las actividades
todos los investigadores que quieran explorar nuevas formas de trabajo científico
prototipos y más actividades relacionadas a cumplir con los objetivos antes mencionados.
20
CAPÍTULO TRES
MARCO TEÓRICO
El presente capítulo constituye la base conceptual del proyecto, abordando los temas
aplicados a Ascendere, por último, tenemos los temas relacionados con los cuatro
gestión de proyectos.
3.1.1. Proyectos
El estándar ISO (2021) define un proyecto como un conjunto único de procesos que
realizadas para lograr los objetivos del proyecto. Adicionalmente el Management Institute
Project (2017) detalla a un objetivo como un resultado hacia el cual se debe dirigir el
trabajo, una posición estratégica a ser alcanzada, un propósito a ser logrado, un resultado
Los proyectos surgen como respuesta a una necesidad, pueden estar enfocados a
(Moreno Monsalve et al., 2016). Por eso, los proyectos dentro de las organizaciones
competencias a un proyecto, e incluye la integración de las diversas fases del ciclo de vida
Los beneficios que aporta una gestión eficaz y eficiente de proyectos tanto a
Mientras que las cosas típicas que pueden salir mal en un proyecto, debido a la mala
(2017) son:
22
● Sobrecostos,
● Mala calidad,
● Retrabajo,
Internacional de Normalización (ISO por sus siglas en inglés). A nivel nacional, se trata de
Organismos Nacionales de Normalización (NSB por sus siglas en inglés) que son
miembros de la ISO (por ejemplo, Instituto Nacional Estadounidense de Normas (ANSI por
sus siglas en inglés), Instituto Británico de Normas (BSI por sus siglas en inglés), Instituto
Nacional de Normas Alemán (DIN, del nombre alemán Deutsches Institut für Normung)).
En algunas áreas, las normas europeas (EN, del nombre alemán Europäische Norm)
también son importantes. La ventaja de las normas ISO es que se extienden por todo el
mundo.
El estándar ISO 21500 es la base para desarrollar una serie de nuevos estándares
es tan general que debería ser aplicable a una amplia variedad de estilos, tamaños y
internacionales. El objetivo no era crear una norma para fines especiales como por
23
ejemplo, capacitación y certificación o cumplir con los requisitos para el nivel de trabajo de
Ascendere.
orientación para que las organizaciones puedan adoptar y mejorar la gestión de proyectos
(ISO, 2021). En consecuencia, el estándar provee una visión general y de alto nivel que
Ciclo de vida del proyecto. Abarca el período desde el inicio del proyecto hasta su
finalización. Las fases están divididas por puntos de decisión, que pueden variar según el
entorno organizacional. Los puntos de decisión facilitan la gobernanza del proyecto. Al final
de la última fase, el proyecto debería haber proporcionado todos los entregables. Ver
Figura 1.
Figura 1
aplicables a cualquier fase o proyecto del proyecto. Estos procesos, definidos con más
en la Tabla 1. Los grupos de procesos son independientes del área de aplicación o del
enfoque de la industria.
Tabla 1
Nota. Adaptado de Project management processes cross-referenced to process and subject groups,
en el entorno de Ascendere.
interacción entre los miembros. Como lo menciona Jacobides las empresas plataformas
(Jacobides et al., 2019). Las empresas logran este crecimiento gracias a un fenómeno
denominado “efecto de red”, donde cada nuevo participante aporta nuevos datos y eso
aumenta el valor de la red para los participantes existentes. (Avramakis et al. 2019)
La ley de Metcalfe recae en dos supuestos implícitos: 1) Cada usuario agrega valor
habilidad para comunicarse entre los usuarios no es afectada por el ingreso de nuevos
27
Entorno colaborativo abierto. Para que las empresas mejoren el valor de los
inglés).
ecosistemas se basan en las relaciones de los interesados para mejorar el valor de estas.
empresas compartir sus recursos e información para solventar las necesidades de los
clientes.
que cada miembro de su ecosistema digital es un jugador valioso que puede impulsar el
socios y proveedores cambian también lo hacen las necesidades de los clientes. Los
28
clientes, pueden adaptarse a mayor velocidad a los cambios que sufran los clientes.
Figura 2
Nota. Adaptado de Digital ecosystems: extending the boundaries of value creation in insurance por
Etapa Inicial. Un modelo tradicional parte de una cadena de valor que empieza por
modelo básico de centro y radio, en el que la empresa plataforma, conecta las entidades y
recopila comentarios sobre las necesidades de los miembros. (Avramakis et al. 2019).
la interacción, lo que le confiere un alto grado de control. De esta forma se eliminan los
29
esta etapa Ascendere adquiere el rol de patrocinador gestionando la interacción entre los
Evaluación.
etapa, los miembros colaboran entre sí más libremente, pero en un entorno cerrado
(Avramakis et al. 2019). En esta etapa Ascendere permite la comunicación entre los
Etapa de Madurez. En este punto del ecosistema digital, aparecen nuevos servicios
empresas, herramientas de software, entre otras (Avramakis et al. 2019). En esta etapa
misma que define las reglas de interacción entre los miembros. Entre las reglas que
existen se determina la apertura que hay para participar. Las reglas de gobernanza o
contenido web, o una cliente y otro cliente; estas participaciones crean un nuevo valor al
Los ecosistemas según la apertura hacia las partes interesadas se pueden dividir en
Figura 3
Nota. Adaptado de Digital ecosystems: extending the boundaries of value creation in insurance por
clientes (candado verde). (Avramakis et al. 2019). Las otras partes interesadas se filtran
datos compartidos. Para este caso se da mayor libertad al uso de datos por parte de
mientras que se privan de ciertos privilegios de acceso a las otras partes interesadas,
31
como podría ser, la imposibilidad de revisar el historial docente por parte de otras
universidades.
Apertura a los socios. En este escenario, las otras partes interesadas pueden
acceder al ecosistema, mientras que a los proveedores se les crean altas barreras de
entrada. (Avramakis et al. 2019). En este caso se priva de acceso a los departamentos de
datos del ecosistema a otras partes interesadas, como lo sería el departamento financiero
teniendo libre acceso al historial docente, lo que ayudaría a evaluar la financiación de los
proyectos de innovación.
interfaces para el ecosistema y llevan a los usuarios. Sin embargo, el patrocinador del
la propiedad intelectual. (Avramakis et al. 2019). Este escenario es el más favorable para
transaccional online (Skilton, 2016). Esta perspectiva ha sido descrita por los modelos de
32
colaboración empresa a empresa (B2B por sus siglas del inglés), empresa a consumidor
Esta modificación de los modelos de comercio y mercado funciona gracias a que los
(Avramakis et al. 2019). Ascendere tras avanzar en las etapas de evolución, aprovecha su
relación y experiencia del trabajo con los docentes, para trazar sus servicios a nuevos
Figura 4
Nota. Adaptado de Digital ecosystems: extending the boundaries of value creation in insurance por
Con esto las empresas que comenzaron en segmentos B2C han empezado a
expandirse hacia usuarios B2B, ya que los productos orientados al consumidor a menudo
también se pueden implementar en el contexto B2B (Avramakis et al. 2019). Esto provoca
33
que los ecosistemas puedan crear productos y servicios más fáciles de adoptar a todos los
entornos disponibles.
El software es cada vez más importante para las empresas por la manera en que
desarrollo y de entrega de aplicaciones (Red Hat, 2019). Para lograr satisfacer el mercado
con un ritmo acelerado de cambios y construir plataformas óptimas es necesario optar por
Peter y Timothy (2011) del Instituto Nacional de Estándares y Tecnología (NIST por
el proveedor de servicios.
Para Red Hat (2019) en cambió una aplicación nativa en la nube es una aplicación
consumidor de comprar, desplegar y cerrar los servicios sin ninguna ayuda del
proveedor de servicios.
siempre activa y accesible, los usuarios tienen acceso inmediato a todos los
los recursos.
servicios en la nube, estos son: Software como servicio (SaaS por sus siglas en inglés),
35
Plataforma como Servicio (PaaS por sus siglas en inglés) e Infraestructura como Servicio
(IaaS por sus siglas en inglés). Cada uno de estos modelos está destinado a resolver
continuación, veremos detalladamente cada uno de los modelos, descritos por Peter y
Timothy (2011):
SaaS. SaaS ofrece el mayor nivel de abstracción en la nube. Este modelo permite
un acceso rápido a las aplicaciones listas para usar basadas en la nube. En otras
almacenamiento y servidores, con un alto grado de control sobre estos recursos. En IaaS,
recursos utilizados de forma flexible y pagar sólo por los recursos utilizados.
36
una arquitectura en la que todos los módulos relevantes se empaquetan juntos como una
única unidad de ejecución desplegable. Utiliza un diseño en capas, con capas separadas
para la interfaz de usuario, la lógica de la aplicación y el acceso a los datos. (Lavann et al.,
2021)
largos ciclos de desarrollo significaban que había poca ventaja en descomponer las
aplicaciones más allá de unos pocos niveles, un cambio en cualquier servicio de aplicación
2016)
partida para una aplicación. Los monolitos suelen ser el camino más rápido para crear una
prueba de concepto o un producto mínimo viable (Lavann et al., 2021). Sin embargo, a
construir, depurar o modificar. En este punto, una aplicación nativa en la nube proporciona
agilidad a largo plazo lo que facilita crear aplicaciones basadas en servicios que se pueden
Tabla 2
37
nube.
las aplicaciones debe conllevar cuatro principios básicos, para Red Hat (2019) estos
principios son:
modulares y poco acoplados. Entre las arquitecturas basadas en servicios más populares
tenemos:
38
se encarga de todos los demás aspectos de la ejecución (Crane & Lin, 2017).
los microservicios en que mantienen una misma base de datos en vez de bases de
datos separadas por cada micro. Suelen utilizarse para integrar aplicaciones
Comunicación basada en API. Los servicios son expuestos a través de API ligeras
disponibles entre varias aplicaciones, al mismo tiempo que garantiza que las aplicaciones
podemos definir con un “director de orquesta”, donde cada uno de los elementos a dirigir
nube utiliza los métodos y principios de DevOps; cabe aclarar que DevOps es una cultura
trabajar juntos para ofrecer software de alta calidad a un ritmo acelerado. El proceso
DevOps tiene como objetivo cerrar la brecha entre los equipos de desarrollo y operación,
para que puedan trabajar como uno solo (Red Hat, 2019).
prácticas a lo largo del ciclo de vida de las aplicaciones. Algunas de estas prácticas
ayudan a agilizar, automatizar y mejorar una fase específica (Azure Docs, 2019), como es
- Implementación continua. Los cambios de código que pasan los dos pasos
adaptado a sus necesidades en cada fase del ciclo de vida de las aplicaciones. (Azure
Docs, 2019)
3.4. MICROSERVICIOS
nativas en la nube, el primer principio nos habla del uso de arquitecturas basadas en
objetivo de ser más competitivos y poder dar respuesta en el tiempo oportuno a las
cambios ágiles y una rápida iteración de cada microservicio, ya que se pueden cambiar
Figura 5
Nota. Adaptado de .NET Microservicies Architecture for Containerized .NET Applications por (de la
Como lo menciona Vettor & Smith (2021) los microservicios comparten las siguientes
características:
independientemente.
42
● Cada uno se ejecuta en su propio proceso y se comunica con los demás utilizando
Vettor & Smith (2021) nos recalca los beneficios y los desafíos del uso de la
tecnológica, también plantean muchos desafíos nuevos. Para Vettor (2021) los desafíos
e independientes
● La complejidad operativa.
empresa y valorar tanto los beneficios como los desafíos al desarrollar esta arquitectura.
tipos de aplicaciones son adecuados para las aplicaciones basadas en microservicios, por
ello Wasson & Narumoto (2017) nos recomienda aplicar la arquitectura de microservicios
cuanto tenemos:
de los servicios; y como habíamos detallado con anterioridad al existir gran cantidad de
Docker que se ejecutan en modo enjambre. Cada uno de estos hosts cumplen una
al kernel de linux, corre en cada máquina del clúster y provee diferentes servicios
44
con API 's para la administración y programación de elementos entre todos los
Agrupa los contenedores que conforman una aplicación en unidades lógicas para
3.5. KUBERNETES
automatización y administre las cargas de trabajo y servicios. Es por ello que en 2014
entender su funcionamiento.
en pods, y los pods a su vez se pueden juntar en nodos. El conjunto de nodos formará un
Figura 6
Arquitectura de Kubernetes
45
Kubernetes.
comparten los mismos recursos. Es por ello por lo que se entiende que un pod es un host
lógico dentro de un clúster. Al pertenecer los contenedores a un mismo host lógico, estos
se alcanzan entre sí dado que comparten una dirección IP creando una red privada
(Nogués, 2018).
Nodos. Como detallamos anteriormente los pods se agrupan en una misma máquina
(un ordenador local o una máquina virtual). Moreno Monsalve (2016) nos explica que si
bien se suele entender que en clúster (conjunto de nodos) es donde se ejecutan las
46
Los nodos se dividen en dos tipos: los nodos esclavos y los nodos máster o panel de
control.
Nodo máster. Los nodos máster son aquellos encargados de administrar y planificar
los pods que se encuentran ejecutando en los nodos del clúster, esto se realiza mediante
conjunto de varios nodos incluyendo al nodo máster. Esto permite que la aplicación
funcione como una sola unidad orquestada por el máster, evitando instalar una aplicación
estructura de un clúster formada como mínimo por dos nodos y una serie de componentes
Componentes del nodo máster. Los componentes que se encuentran en este nodo
son los encargados de tomar decisiones globales sobre todo el clúster, detectando y
● etcd: es el almacén de datos del clúster de Kubernetes, aquí se guardan todos los
encarga de asignar los pods en los nodos en los que serán ejecutados.
Componentes del nodo. Cada nodo cuenta con componentes que se encargan del
un proxy de red que administra las comunicaciones de red dentro y fuera del clúster
CAPÍTULO CUATRO
DISEÑO DE LA SOLUCIÓN
Las plataformas digitales pueden ser variadas y complejas, desde simples mercados
y sistemas de redes sociales hasta entornos más complejos, donde los desarrolladores de
aplicaciones pueden crear y vender sus productos digitales (Zutshi & Grilo, 2019). Para
uso.
construir una plataforma atractiva para los usuarios, se incluye el diseño de experiencias
los actores del ecosistema. Se considera cada una de las motivaciones de los actores para
construir una propuesta de valor que permita crear una plataforma sostenible y escalable
clientes (aplicaciones móviles, páginas web, etc.) mediante la exposición de sus datos
gracias a APIs, esto también permite que desarrolladores terciarios puedan crear APIs y
Innovación Docente, Buenas Prácticas y Retos. Estos son proyectos elaborados por los
Figura 7
Nota. Cadena de valor de los procesos y subprocesos de Innovación Docente aplicando los
Figura 8
Mapa de capacidades
Figura 8.1
Figura 8.2
Figura 8.3
Figura 8.4
los desarrolladores que les permitan crear productos de manera productiva, escalar la
desarrollo.
Figura 9
y Postulaciones.
de API Management que permita la creación de nuevas APIs por parte de otros
clientes. A esto le sumamos que la lógica de Ascendere estará descrita mediante una
requerir de una gran escalabilidad, hace necesario el uso de una arquitectura multi nube.
Figura 10
nube. Este Nodo llamado Panel de control nos ayuda a servir mediante un API la
automático de los Nodos utilizando los Replicasets que son un conjunto de instrucciones
para mantener tres pods funcionando en todo momento, así como un balanceador de
procesos del apartado de Innovación Docente de Ascendere, estos son nodos esclavos
manejados por los nodos Maestro de cada cluster, cada Nodo se encuentra en un
proveedor de nube distintos para aprovechar los servicios otorgados por DigitalOcean y
Google Cloud.
Los casos de uso son una excelente manera de proporcionar un proceso paso a
En base al mapa de capacidades se estructuran los casos de uso por cada módulo,
- Gestión de convocatorias
- Gestión de postulación
Figura 11
Tabla 3
Tabla 4
Tabla 5
Figura 12
registra el acta del proyecto con los elementos iniciales del proyecto. En la tabla 6 se
Tabla 6
Actores Docente
docente.
Tabla 7
Tabla 8
de la plataforma.
Se considera necesario las historias de usuario ya que nos facilita desarrollar cada
requisito funcional dentro de un entorno ágil, permitiendo añadir más detalle de desarrollo
presente proyecto hemos optado por diagramas de casos de uso debido a la correlación
de los casos de uso desarrollados en la sección anterior, donde se pueden ver la división
Cómo usuario
Quiero postear información
Para compartir hechos y datos con la
comunidad de usuarios
Cómo usuario
Quiero seguir a otro usuario
Para obtener información de otros usuarios
Cómo docente
Quiero poder realizar un pedido
Para hacer uso de los recursos del
laboratorio
Cómo docente
Quiero visualizar mis planes de gestión del
proyecto que formó parte
Para poder gestionarlos
uso.
64
Figura 15
Figura 16.
Figura 16
Figura 13
Figura 14
CAPÍTULO CINCO
DESARROLLO
Tabla 9
Tabla 10
70
Ascendere.
usar un esquema de múltiples nubes que soporten todos los procesos. En la Tabla 11 se
Tabla 11
Ascendere.
plataforma.
gestión del departamento de Innovación Docente y en los docentes que harán uso de la
nombre en inglés), donde se mapean los flujos de actividades que podrán realizar tanto el
usuario.
docentes.
Los elementos básicos de diseño son establecidos por parte de Ascendere, determinando
Figura 15
Inicialmente se crea cada uno de los repositorios del proyecto en GitHub, en este
caso un repositorio para la aplicación web/móvil y para cada uno de los microservicios,
workflows en la ruta .github del repositorio, que almacena cada uno de los flujos de
74
trabajo. Dentro de la carpeta podemos agregar los flujos de trabajo que sean necesarios.
de los microservicios en cambio tenemos un flujo para realizar los test (test.yml) y otro
en la Figura 17.
Figura 16.
Figura 17.
nombre y después de la palabra “on” definimos que eventos de control del repositorio
después de la palabra “env” (Ver Figura 18). Posteriormente estableceremos los trabajos
que queremos que realice el flujo, para esto utilizaremos la palabra “jobs”, en este flujo de
trabajo creamos dos trabajos, uno para el registro de la imagen en Docker Hub y otro para
que tendrá que seguir el trabajo (steps). Los pasos pueden ejecutar comandos, tareas de
trabajo del despliegue del microservicio a la nube definen los siguientes pasos:
1. Accedemos al repositorio.
3. Ingresamos las credenciales de Google Kubernetes Engine (GKE por sus siglas
en inglés).
(Ver Figura 21). El primer archivo nos permite crear el servicio que expondrá
pods en ejecución.
Figura 18.
Figura 19.
Figura 20.
Archivo service.yml
77
Figura 21.
Archivo deployment.yml
78
flujos de trabajo por cada uno de los repositorios, siguiendo la estructura del flujo de
implementados:
1. Acceder al repositorio
Figura 18
1. Acceder al repositorio
Figura 19
1. Acceder al repositorio
2. Instalar Doctl
5. Verificar el despliegue
Figura 20
Figura 21
Canalización de testing de Go
81
conexiones con la base de datos, models en esta carpeta se guardan las clases creadas
para cada micro, routers esta carpeta está diseñada para almacenar el código que
permite realizar peticiones http y crear los endpoints de acceso, middlew aquí se
encuentran todos los middlewares (un middleware es una función que toma una función y
retorna otra función, de esta forma podemos encapsular varias funciones en una sin que
ninguna de estas funciones conozca el estado de las otras); por último existe la carpeta
cuerpos de respuesta, además de almacenar una asignación entre las rutas de URL
predefinidas.
Una vez definido el sistema de archivos se procede a instanciar las librerías que se
van a usar, en nuestro caso al usar el lenguaje GO, se debe crear un archivo denominado
go.mod en el cual se escribe el link desde el cual se extraerán las librerías necesarias.
Cabe destacar que al utilizar GO con la librería gorilla-mux (Ver Figura 22) nos ahorramos
el uso de Frameworks para el desarrollo de Backend, esto permite que el código pueda
Figura 22
Importación de librerías en GO
82
diagrama de clase especificado para cada microservicio, GO como tal no tiene un sistema
momento de crear una estructura se puede definir el cómo vendrán los datos de la base de
datos (en este caso al usar MongoDB como base de datos el formato de los datos es
bson) y el formato con el que expondremos los datos (json), tal cual se evidencia en la
Figura 23.
Figura 23
Modelo de Convocatoria en GO
83
las conexiones a la base de datos, aunque en GO no existan como tal las clases si se
mantiene la programación orientada a objetos incluyendo los principios que rodean este
paradigma. Por ello se optó por mantener dichos principios creando archivos por cada
función de crear, buscar, actualizar y eliminar (CRUD por sus siglas en inglés), de esta
apreciar la conexión con la base de datos para el registro del tipo de proyectos, cómo se
optó por el uso de MongoDB no se obtienen tablas sino colecciones de datos, ya que los
84
Figura 24
enrutamientos, estas son funciones HTTP a las que les llegarán una petición con datos
desde el Header o el Body y enviarán una respuesta de igual manera mediante el Header
o el Body. Es en este momento en el que se describen los códigos de error como el 404 o
Figura 25
necesarios para validar los Tokens de acceso y chequear que exista una conexión a la
base de datos, al crear los middleware podemos reutilizar el código y usar nuestras
se muestra el middleware para validar el Token de acceso, este recibe como parámetro
cualquier función (las funciones routers creadas anteriormente), y devuelve una función
Figura 26
Handler que contiene cada ruta que se expondrá, conectado a la función del paquete
router correspondiente y el valor del puerto por el cual saldrá la información. Ver Figura 27.
Figura 27
creados.
Figura 28
servidores de Heroku, el cual nos permite probar uno a uno los microservicios, de esta
Figura 29
iniciar sesión del microservicio del usuario, en este caso no se envía nada por el Header
en este caso el Token del usuario y un código 200, en caso de tener un error se enviará un
Figura 30
procedió a unir los cambios con los de la rama principal del repositorio, una vez se envían
en DigitalOcean, la imágen oficial del API Manager. Cabe destacar que para el correcto
para nuestro caso usamos una instancia de CPUs compartida para reducir los costos de
desarrollo.
para la publicación de APIs (sistema publisher) y el tercero es el que permite usar las APIs
(sistema devportal).
90
En el sistema carbon se pueden crear nuevos usuarios y asignar roles o crear roles
mediante la cantidad de permisos que se quiera conferir al ecosistema. Entre los roles por
- Developer: el usuario con este rol puede crear aplicaciones que harán uso de las
endpoint de los pods. Esto nos genera un nuevo endpoint con la url del API Manager, el
puerto de exposición, el nombre del microservicio y la versión actual. Al publicar una API
este caso se decidió mantener el uso de los servicios gratuitos y la cantidad de llamadas
ilimitadas. En la figura 22 se puede apreciar las APIs publicadas dentro del ecosistema de
Ascendere.
Figura 22
mediante el cual se creó una aplicación denominada innovacion-docente. Una vez creada
publicación. Al estar suscrito se genera un token de la aplicación que será usado por los
Figura 23
se uso flutter se consumio los apis conectandose al api manager con manejo de json web
tokens para autenticar el inicio de sesión y los permisos de acceso al api, etc
93
CAPÍTULO SEIS
Consta de dos versiones, una orientada para los administradores, y otra dirigida a
los docentes.
6.1.1. Convocatorias
administrativos, así como la visualización de las convocatoria vigente para la versión de los
docentes.
Figura 24
6.1.2. Postulaciones
Figura 25
Figura 26
6.1.3. Recursos
tal manera que facilita la distribución de los mismos para el desarrollo de los proyectos
Figura 27
la Tabla 12 se detallan los resultados obtenidos dentro del periodo activo de los mismos.
Tabla 12
visualizar en la figura 26, listo para el consumo de terceros, ofreciendo los servicios
apartado de Ascendere permite definir valores y costos limitando el acceso a los servicios
Figura 26
Servicio (SLA por sus siglas en inglés) en conjunto con el director de Innovación,
gestores y docentes que harán uso de la plataforma, este contrato vendría a ser un SLA de
Figura 27
Tabla 13
100% de disponibilidad a la multiplicación de los errores totales por cien y esa cantidad
sesiones realizadas es diez mil, esto se debe a que cada usuario realizó veinte sesiones y
redondeado a dos cifras nos devuelve un 99.99% de disponibilidad cumpliendo con el SLA
6.2. CONCLUSIONES
construcción del ecosistema Ascendere mediante una plataforma digital. Para esta primera
ecosistemas digitales en las empresas y los beneficios que éstas les otorgan, para su
y ecosistemas digitales benefician a las empresas que quieran movilizar sus procesos
por ello por lo que el presente estudio sienta las bases para futuras investigaciones sobre
Evaluación Docente. Esto con el afán de que pueda ser utilizado para futuros trabajos y
mejoramiento de la plataforma.
planteado la abertura del ecosistema para que futuros trabajos permitan el acoplamiento
El último objetivo de este trabajo fue el de establecer un SLA que permita evaluar el
la plataforma, a pesar del uso de una máquina virtual administrada manualmente con bajos
proceso de desarrollo, sin presentar fallas o errores que los hagan re construirse.
6.3. RECOMENDACIONES
102
arquitectura híbrida, utilizando los microservicios para los procesos de mayor demanda y
CAPÍTULO SIETE
TRABAJOS FUTUROS
sino que además, posee una gran capacidad de adaptación en diversos entornos de
REFERENCIAS
Arango Serna, M., Londoño Salazar, J., & Zapata Cortés, J. (2010). Arquitectura orientada
Avramakis, E., Anchen, J., & Raverkar, A. K. (2019). Digital ecosystem: extending the
https://www.swissre.com/dam/jcr:e1f92bbd-0557-487a-87c5-c2f94ac6b32a/SRI _
https://azure.microsoft.com/es-mx/overview/what-is-devops/#devops-overview
Crane, M., & Lin, J. (2017). An exploration of serverless architectures for information
retrieval. ICTIR 2017 - Proceedings of the 2017 ACM SIGIR International Conference
https://doi.org/10.1145/3121050.3121086
de la Torre, C., Wagnwer, B., & Rousos, M. (2020). .NET Microservicies Architecture for
Delgado Pedraza, L., & Pineda Parra, O. D. (2019). MODELO PARA LA ORQUESTACIÓN
ISO. (2021). ISO 21500: Project, programme and portfolio management — Context and
Jacobides, M. G., Sundararajan, A., & Van Alstyne, M. W. (2019). Designing digital
13–18. www.weforum.org
https://kubernetes.io/es/docs/concepts/overview/what-is-kubernetes/
1–13.
http://jlarrosa.tripod.com/files/metcalfe.pdf%5Cnhttp://es.wikipedia.org/wiki/Ley_de_M
etcalfe
https://docs.microsoft.com/en-us/azure/architecture/microservices/migrate-monolith
Loaiza, M. I., Acosta, S., Andrade, P. S., & Salazar, A. del C. (2018). Proyecto Ascendere.
Loaiza, M. I., Nuve, B. P., Salazar, A. D. C., & Colindres, D. I. (2020). PROYECTO
http://library1.nida.ac.th/termpaper6/sd/2554/19755.pdf
BODY OF KNOWLEDGE.
Moreno Monsalve, N. A., Sánchez Ayala, L. M., & Velosa García, J. D. (2016). Introducción
Newman, D. (2016). That Creating A Digital Ecosystem That Benefits Your Business.
Forbes.
106
https://www.forbes.com/sites/danielnewman/2016/12/20/creating-a-digital-ecosystem-t
hat-benefits-your-business/?sh=795ee3076f01
https://e-archivo.uc3m.es/handle/10016/29528
Peter, M., & Timothy, G. (2011). The NIST Definition of Cloud Computing. NIST, 7.
Red Hat. (2019). El camino a las aplicaciones nativas de la nube. 8 pasos para guiar su
http://www.comoves.unam.mx/numeros/articulo/164/el-camino-a-las-percepciones
https://www.redhat.com/es/topics/containers/kubernetes-architecture
Microsoft Docs.
https://azure.microsoft.com/en-us/blog/microservices-an-application-revolution-powere
d-by-the-cloud/
https://doi.org/10.4995/inred2016.2016.4299
Architectures. https://doi.org/10.1057/9781137554123
Vettor, R., & Smith, S. (2021). Architecting Cloud-Native .NET Apps for Azure.
Wasson, M., & Narumoto, M. (2017). Cloud Application Architecture Guide. Microsoft
Zutshi, A., & Grilo, A. (2019). The Emergence of Digital Platforms: A Conceptual Platform
Apéndice