Anda di halaman 1dari 19

Optimización en el proceso de desarrollo, despliegue y escalabilidad de

aplicaciones bancarias en línea de consulta y pago de servicios de terceros,

utilizando arquitectura Serverless


Índice

Introducción ........................................................................................................................ 4

Antecedentes del Tema ....................................................................................................... 7

Supuestos y expectativas del tema .................................................................................. 7

Justificación del Tema ......................................................................................................... 8

Planteamiento del problema ................................................................................................ 9

Alcances y Limites........................................................................................................ 10

Definición de la Muestra ............................................................................................... 10

Hipótesis ............................................................................................................................11

Diseño o tipo de investigación ...........................................................................................11

Variables e Indicadores ..................................................................................................... 12

Variable Independiente: ................................................................................................ 12

Variables dependientes: ................................................................................................. 12

Objetivos de la Investigación ............................................................................................ 13

Índice Provisional ............................................................................................................. 14

Alcance de la investigación a realizar ............................................................................... 16

Cronograma y recursos tentativos de actividades ............................................................. 17

Bibliografía ....................................................................................................................... 19

2
“Nuestra industria no respeta la tradición, sólo respeta la
innovación”1

Satya Nadella

1 Satya Nadella, Director Ejecutivo de Microsoft, tomado del artículo “El ingeniero indio dispuesto a cambiar Microsoft” de: URL
(http://www.elmundo.es/economia/2014/02/04/52f0fef7ca4741c8038b456c.html)

3
Introducción

Es increíble ver como con el pasar de los días surgen nuevas tecnologías las cuáles

revolucionan la industria del software, tal es el caso actual de la computación en la nube2, la cual

tiene como característica principal brindar servicios de computación a través de internet. Tal es el

caso de Software como servicio (por sus siglas en inglés SaaS - Software as a Service),

Plataforma como servicio (por sus siglas en inglés PaaS - Platform as a Service), Infraestructura

como servicio (por sus siglas en inglés IaaS - Infraestructure as a Service), Funciones como

servicio (por sus siglas en inglés FaaS - Functions as a Service)3, etc. Toda esta gama de

servicios ha marcado un antes y después en el mundo tecnológico. A raíz de esto han surgido

nuevos modelos y arquitecturas de software como Serverless4, que han hecho a su vez la

necesidad de crear nuevos modelos de desarrollo de software, necesarios para adaptarse a las

características inherentes a la computación en la nube.

La reconocida empresa de consultoría e investigación de las tecnologías de la

información “Gartner Inc.”, mejor conocida como “Gartner”, publicó en octubre de 2016 las diez

tendencias en tecnología para el año 2017, siendo una de ellas la arquitectura Serverless. Dicho

estudio también expresa que, aprovechando las capacidades de la arquitectura mencionada, así

como también las tecnologías en la nube y contenedores, las empresas podrán ofrecer soluciones

modulares, flexibles y dinámicas, ya que podrán admitir múltiples usuarios con múltiples roles, Comentado [HH1]:

usando diferentes dispositivos y comunicándose a través de múltiples redes.

2 La computación en la nube (del inglés Cloud Computing) conocida también como servicios en la nube, informática en la nube, nube de cómputo, nube
de conceptos o simplemente "la nube", es un paradigma que permite ofrecer servicios de computación a través de una red, que usualmente es Internet.
3 "Understanding the Cloud Computing Stack: SaaS, PaaS, IaaS," Rackspace, October 22, 2013.
4 Arquitecturas sin servidor (del inglés Serverless) se refieren a las aplicaciones que dependen significativamente de servicios de terceros.

4
El valor de construir aplicaciones utilizando la arquitectura Serverless aplica para

empresas de diferentes sectores y tamaños. Para una empresa que posee cientos de aplicaciones

de software, el costo de mantenimiento e infraestructura puede ser de millones de dólares al año,

estos costos pueden abarcar mantenimiento físico de servidores, enrutadores, sistemas físicos de

seguridad en un Data Center5, servicios de respaldo y restauración de datos, enlaces dedicados,

zonas desmilitarizadas para los servidores de acceso al público, etc.

Debido a los grandes costos que actualmente requiere una o varias aplicaciones de

software, la prestigiosa empresa multinacional de bebidas Coca-Cola, está usando la arquitectura

Serverless para reducir costos y tener la ventaja competitiva de poder implementar servicios en la

nube de manera más rápida de lo que actualmente lo hacen. Este es un caso típico de una

empresa que busca reducir sus costos mediante la innovación y el uso de tecnologías modernas, a

simple vista se puede notar que el uso de la arquitectura Serverless es una solución para

disminuir los costos de mantenimiento e infraestructura en una empresa. Sin embargo, el alcance

es mucho mayor debido a que el tiempo de desarrollo de software también disminuye dado que

los programadores de software no tienen que preocuparse por servidores de aplicaciones,

máquinas virtuales, contenedores, infraestructura, escalabilidad y otros atributos de calidad. En

lugar de ello, los programadores escriben funciones las cuales son ejecutadas en un ambiente

preparado con infraestructura de nube.

5 Centro de procesamiento de datos (del inglés Data Center), es un espacio de gran tamaño donde se emplaza el equipamiento electrónico que guarda
toda la información de una organización.

5
Fig. 1 - Cuadro de Evolución de Tecnología de Información

En la figura 1 se muestran dos tipos de arquitecturas. En la parte de arriba del diagrama

se puede apreciar un sistema de software basado en la arquitectura monolítica, muy común

inclusive hoy en día. Por otro lado, en la parte de abajo del diagrama se muestra un sistema de

software basado en la arquitectura Serverless. Tal y como se puede notar, la principal diferencia

entre las dos arquitecturas es el desacoplamiento de las funciones de negocio del sistema y la

utilización de componentes externos (ej. servicio de autenticación) proporcionados por el

proveedor de nube que se utilice.

Es en estas dos arquitecturas en las que la presente investigación se centrará.

6
Antecedentes del Tema

El estudio “Service Oriented Computing and Applications” (2017) realizado por Mario

Villamizar, Oscar Garcés, Lina Ochoa, Harold Castro, Lorena Salamanca, Mauricio Verano,

Rubby Casallas… Mery Lang, el cual se basó en la comparación de una aplicación web

desarrollada y ejecutada usando los mismos escenarios de escalabilidad con tres diferentes

enfoques: 1) una arquitectura monolítica, 2) una arquitectura de microservicios operada por el

cliente en la nube, y 3) una arquitectura de microservicio operada por el proveedor de nube. El

resultado de la prueba determinó que la arquitectura basada en microservicios puede ayudar a

reducir costos de infraestructura en comparación con la arquitectura monolítica. Además, el uso

de servicios específicamente diseñados para ejecutarse y escalarse utilizando la arquitectura

Serverless, reducen el costo de infraestructura por 70% o más.

La estadística anterior suena muy convincente para cualquier persona que tenga como

responsabilidad la migración de una aplicación monolítica existente con el fin de reducir costos

dentro de la empresa. La intención de este estudio es demostrar que no solamente el costo puede

ser minimizado, sino también el tiempo de desarrollo del software, tiempo de escalabilidad y

tiempo de despliegue.

Supuestos y expectativas del tema

Se espera que con el presente estudio las personas encargadas del desarrollo e

implementación de software en entidades bancarias, tal como arquitectos y administradores,

reconozcan las características de la arquitectura Serverless, así como el tiempo de desarrollo,

7
tiempo de despliegue y tiempo de escalabilidad en comparación con la arquitectura monolítica,

con el fin de tener un panorama más amplio al momento de elegir el tipo de arquitectura a

implementar tomando como base los resultados de este estudio.

Se espera también que las entidades bancarias puedan tener una opción más de

infraestructura para sus aplicaciones, ya que con la arquitectura Serverless dichas empresas no

tendrán la necesidad de comprar equipo para el servidor de aplicaciones, servidor de base de

datos, así como componentes de red inherentes a estos los cuales comúnmente se encuentran en

un Data Center, ya que en un ambiente Cloud, el proveedor se encarga de brindar la

infraestructura necesaria para que las aplicaciones de software puedan ejecutarse de manera

óptima con un alto grado de disponibilidad.

Justificación del Tema

Actualmente en Guatemala existen escasos datos o estudios que muestren las ventajas de

la utilización de la arquitectura Serverless sobre la arquitectura Monolítica6, tanto para la fase de

desarrollo como para la fase de implementación y mantenimiento en aplicaciones bancarias. Por

lo que es necesario realizar este estudio para llenar ese vació de conocimiento que actualmente

existe en el país en este ámbito, para que los profesionales de las diferentes ramas del área de TI

puedan afrontar los nuevos retos que aparecen con la evolución de la tecnología, como tal es el

caso de la computación en la nube.

6 El autor revisó los títulos de tesis de los últimos 5 años de las principales Universidades de Guatemala (Universidad Mariano Gálvez, Universidad de
San Carlos, Universidad Galileo, Universidad del Valle, Universidad Rafael Landívar) y no se encontró ninguna tesis de Ingeniería en Sistemas relacionada con el
tema.

8
El principal beneficio que se obtendrá con este estudio es medir el porcentaje y tiempo

necesario que se puede minimizar en un proyecto al utilizar la arquitectura Serverless, de este

modo las entidades bancarias podrían ahorrar costos y replantear su estrategia de TI al momento

de crear nuevos proyectos de software o realizar migraciones de tecnologías monolíticas u

obsoletas.

Las implicaciones que pueden tener los resultados de la presente investigación son: la

migración de los sistemas monolíticos de software públicos de las entidades bancarias a la nube,

el cambio en el contenido del pensum de estudios de Ingeniería en Sistemas y la forma de

diseñar, desarrollar e implementar software nuevo en entidades financieras.

Los beneficiarios de los resultados de este estudio serán los profesionales en Sistemas de

Información y las empresas u organizaciones en las cuales su forma de negocio les permita

ejecutar software utilizando la computación en la nube.

Planteamiento del problema

Utilizar la arquitectura monolítica para el desarrollo de un sistema de software bancario

en línea, representa más esfuerzo en comparación con la arquitectura Serverless, ya que en la

arquitectura monolítica además de los componentes de negocio se deben construir componentes

adicionales los cuáles en un ambiente de Nube ya existen y son proporcionados por el proveedor,

tal es el caso de la autenticación, balanceo de carga, etc. Además de esto, el tiempo de despliegue

de un sistema utilizando la arquitectura monolítica suele ser lento, debido a que generalmente

estos sistemas se ejecutan en servidores de aplicaciones en donde el tiempo de despliegue puede

llegar a incrementarse. Otro problema es la escalabilidad de un sistema desarrollado utilizando la

9
arquitectura monolítica, ya que generalmente en este tipo de sistemas la habilidad de crecimiento

suele acarrear la duplicidad de todo el sistema, base de datos, servidores, etc., por lo que el

tiempo de escalabilidad de un sistema también suele incrementarse en comparación con un

sistema ejecutado en la Nube.

Alcances y Limites

Este estudio se centrará únicamente en medir los tiempos de desarrollo, despliegue y

escalabilidad de las dos diferentes arquitecturas previamente mencionadas. Para ello se

desarrollarán dos sistemas iguales, uno utilizando la arquitectura monolítica y otro utilizando la

arquitectura Serverless, ambos se desarrollarán utilizando el lenguaje de programación JAVA.

Para analizar las comparaciones entre los dos sistemas, se usará hardware o sistemas

virtualizados con las mismas características para minimizar el sesgo estadístico en los resultados

obtenidos en las mediciones de los tiempos, también se aplicarán métricas para validar el

porcentaje de los resultados como lo es el cálculo de puntos de función.

Aunque se adjuntará un detalle de los costos monetarios realizados en el estudio de cada

arquitectura, no serán analizados utilizando algún modelo de análisis costo beneficio o similar.

Definición de la Muestra

Debido a la naturaleza del estudio se utilizará el tipo de muestra intencional de tipo no

probabilística, ya que para el desarrollo del sistema se estima una duración tentativa aproximada

de dos meses por cada tipo de arquitectura.

10
Hipótesis Comentado [HH2]: Si la hipótesis plantea una
mejora en rendimiento, debe incluir un porcentaje
o algún valor contra el cual se medirán los
El tiempo de desarrollo, despliegue y escalabilidad de aplicaciones bancarias en línea resultados del trabajo, para validar o negar la
hipótesis
puede reducirse en un 25% ó más utilizando la arquitectura Serverless, en comparación con la
arquitectura monolítica.

Diseño o tipo de investigación

La presente investigación será un estudio de tipo experimental. Los estudios

experimentales son de los más utilizados en la investigación científica, una de sus complejidades

es el control estricto de todas las variables involucradas, también tratan de probar una relación

causal entre dichas variables siguiendo las bases del método científico.

El tipo de diseño empleado en la investigación es Factorial 2 x 3. El primer parámetro (2)

hace referencia a la variable Tipo de arquitectura, la cual tomará 2 valores posibles: Arquitectura

Monolítica y Arquitectura Serverless. El segundo parámetro es la variable Tiempo de Fase, que

puede tener el valor de los siguientes 3 valores posibles:

 El tiempo total de desarrollo del sistema de software.

 El tiempo total de escalabilidad del sistema.

 El tiempo total de despliegue del sistema.

Luego de obtener el valor de los diferentes tiempos se procederá a graficar los resultados

para observar de manera estadística cuál es la diferencia y que tipo de arquitectura ayudará a

minimizar los tiempos de las diferentes etapas.

El tratamiento experimental consiste en dos experimentos.

11
Experimento 1

Se realizará el desarrollo de un sistema bancario en línea de consulta y pago de servicios

de terceros, tomando como base un modelo de casos de uso utilizando la arquitectura monolítica.

Al finalizar el desarrollo del sistema se obtendrá el tiempo de desarrollo. Luego se procederá a

implementar una estrategia de escalabilidad, para tener dos instancias del software ejecutándose

simultáneamente. Al finalizar la implementación se obtendrá el tiempo de escalabilidad del

sistema. Por último, se procederá a ejecutarlo para obtener el tiempo de despliegue de este.

Experimento 2

Este experimento es muy similar al experimento anterior, con la diferencia de que la fase

de desarrollo se realizará utilizando la arquitectura Serverless.

Variables e Indicadores

Variable Independiente:

 Tipo de arquitectura para desarrollo de software

Variables dependientes:

 Tiempo de desarrollo del sistema

 Tiempo de escalabilidad del sistema

 Tiempo de despliegue del sistema

12
Objetivos de la Investigación

General

Determinar la arquitectura que reduce las fases de desarrollo y puesta en producción de

una aplicación bancaría en línea.

Específicos

1. Determinar el tiempo de desarrollo de un sistema utilizando la arquitectura monolítica y

Serverless.

2. Determinar el tiempo de escalabilidad de un sistema utilizando la arquitectura monolítica

y Serverless.

3. Determinar el tiempo de despliegue de un sistema utilizando la arquitectura monolítica y

Serverless.

4. Existe alguna relación entre las variables.

13
Índice Provisional

CAPÍTULO 1: ANTECEDENTES

1.1 Antecedentes

1.2 Planteamiento del Problema

1.3 Objetivos

1.3.1 General

1.3.2 Específico

1.4 Hipótesis

1.5 Supuestos

1.6 Indicadores

1.7 Alcances

1.8 Conclusiones

1.9 Recomendaciones

CAPÍTULO 2: ARQUITECTURA MONOLÍTICA

2.1 Conceptos generales

2.2 Servidores de aplicaciones

2.3 Balanceo de carga

2.4 Seguridad

2.5 Conclusiones

2.6 Recomendaciones

CAPÍTULO 3: ARQUITECTURA SERVERLESS

3.1 Conceptos generales

3.2 Funciones como servicios

14
3.3 Balanceo de carga

3.4 Seguridad

3.5 Conclusiones

3.6 Recomendaciones

CAPÍTULO 4: ANÁLISIS DE SOFTWARE PARA EXPERIMENTOS

4.1 Definición del sistema

4.2 Requerimientos

4.3 Casos de uso

4.4 Conclusiones

4.5 Recomendaciones

CAPÍTULO 5: EJECUCIÓN DE EXPERIMENTOS

5.1 Desarrollo de software basado en arquitectura monolítica

5.1.1 Diseño de software

5.1.1.1 Diseño de base de datos

5.1.1.2 Diagramas de secuencia

5.1.1.3 Diagramas de clases

5.1.2 Desarrollo del software

5.1.3 Pruebas unitarias

5.2 Desarrollo de software basado en arquitectura serverless

5.2.1 Diseño de software

5.2.1.1 Diseño de base de datos

5.2.1.2 Diagramas de secuencia

5.2.1.3 Diagramas de clases

15
5.2.2 Desarrollo del software

5.2.3 Pruebas unitarias

5.3 Ejecución y medición

5.4 Conclusiones

5.5 Recomendaciones

CAPÍTULO 6: ANÁLISIS DE RESULTADOS

6.1 Resultados de software basado en arquitectura monolítica

6.2 Resultados de software basado en arquitectura serverless

6.3 Comparación de resultados

6.4 Conclusiones

6.5 Recomendaciones

Alcance de la investigación a realizar

La presente investigación se iniciará como experimental. Se medirá el tiempo de

desarrollo, tiempo de escalabilidad y tiempo de despliegue en cada uno de los experimentos

previamente mencionados. Además, se demostrará si existe una relación causal entre dichas

variables.

Cuadro 1 dependencias de variables; 1

Variable Independiente Variables Dependientes


Tipo de arquitectura para desarrollo de Tiempo de desarrollo del sistema
software Tiempo de escalabilidad del sistema
Tiempo de despliegue del sistema

16
Cronograma y recursos tentativos de actividades

Debido a que todavía no ha sido asignado un asesor de tesis, el siguiente cronograma


estará sujeto a su revisión y por lo tanto a posibles cambios.

Actividad Recurso Fecha Estimada

Aprobación de Marzo 2018


anteproyecto

Presentación de Marzo 2018


anteproyecto

Asignación de asesor de Q. 1,100.00 Marzo 2018


tesis

Creación de ambientes para Q. 2,000.00 Abril 2018


experimentos utilizando
Amazon AWS

Desarrollo experimento 1 Abril 2018

Desarrollo experimento 2 Mayo 2018

Análisis de resultados Junio 2018

Emitir conclusiones y Junio 2018


recomendaciones

Elaborar informe final Julio 2018

Presentar informe final Julio 2018

17
Pago terna examinadora Q. 1,300.00 Agosto 2018

Imprimir informe final Q. 3,000.00 Agosto 2018

TOTAL Q. 7,400.00

18
Bibliografía

Martin Fowler. (04/08/2016). Serverless Architectures. Recuperado de:

https://martinfowler.com/articles/serverless.html

Kasey Panneta. (18/10/2016). Gartner’s Top 10 Strategic Technology Trends for 2017.

Recuperado de: https://www.gartner.com/smarterwithgartner/gartners-top-10-technology-trends-

2017/

Mario Villamizar, Oscar Garcés, Lina Ochoa, Harold Castro, Lorena Salamanca, Mauricio

Verano, … Mery Lang. (27/04/2017). Cost comparison of running web applications in the cloud

using monolithic, microservice, and AWS Lambda architectures. Recuperado de:

https://link.springer.com/article/10.1007/s11761-017-0208-y

Rackspace. (14/07/2014). Understanding the cloud computing stack: SaaS, PaaS, IaaS.

Recuperado de: https://support.rackspace.com/how-to/understanding-the-cloud-computing-stack-

saas-paas-iaas/

Amazon AWS. (01/12/2016). Coca-Cola: Running Serverless Applications with Enterprise

Requirements. Recuperado de: https://aws.amazon.com/es/serverless/videos/video-lambda-coca-

cola/

María Ramírez. (05/02/2014). El Ingeniero indio dispuesto a cambiar Microsoft. Recuperado de:

http://www.elmundo.es/economia/2014/02/04/52f0fef7ca4741c8038b456c.html

19

Anda mungkin juga menyukai