Diseño De Solución Tecnológica En La Nube Para La Entrega Inmediata Y .

Transcription

Universidad de San Carlos de GuatemalaFacultad de IngenieríaEscuela de Estudios de PostgradoMaestría en Artes en Tecnologías de la Información y laComunicaciónDISEÑO DE SOLUCIÓN TECNOLÓGICA EN LA NUBE PARA LA ENTREGAINMEDIATA Y CONFIABLE DE UN SISTEMA DE GESTIÓN DEOPERACIONES PARA FREELANCERSIng. Jorge Raúl Orozco SantolinoAsesorado por la Inga. Ma. Gabriela María Díaz DomínguezGuatemala, septiembre de 2018

UNIVERSIDAD DE SAN CARLOS DE GUATEMALAFACULTAD DE INGENIERÍADISEÑO DE SOLUCIÓN TECNOLÓGICA EN LA NUBE PARA LA ENTREGAINMEDIATA Y CONFIABLE DE UN SISTEMA DE GESTIÓN DEOPERACIONES PARA FREELANCERSTRABAJO DE GRADUACIÓNPRESENTADO A JUNTA DIRECTIVA DE LAFACULTAD DE INGENIERÍAPORJORGE RAÚL OROZCO SANTOLINOASESORADO POR LA ING. MA. GABRIELA MARÍA DÍAZ DOMÍNGUEZAL CONFERÍRSELE EL TÍTULO DEMAESTRO EN ARTES EN TECNOLOGÍAS DE LA INFORMACIÓN Y LACOMUNICACIÓNGUATEMALA, SEPTIEMBRE DE 2018

UNIVERSIDAD DE SAN CARLOS DE GUATEMALAFACULTAD DE INGENIERÍANÓMINA DE JUNTA DIRECTIVADECANOIng. Pedro Antonio Aguilar PolancoVOCAL IIng. Ángel Roberto Sic GarcíaVOCAL IIIng. Pablo Christian de León RodríguezVOCAL IIIIng. José Milton de León BranVOCAL IVBr. Oscar Humberto Galicia NúñezVOCAL VBr. Carlos Enrique Gómez DonisSECRETARIAInga. Lesbia Magalí Herrera LópezTRIBUNAL QUE PRACTICÓ EL EXAMEN GENERAL PRIVADODECANOMtro. Ing. Pedro Antonio Aguilar PolancoEXAMINADORMtro. Ing. Murphy Olympo Paiz RecinosEXAMINADORMtro. Ing. Marlon Antonio Pérez TürkEXAMINADORAMtra. Inga. María Elizabeth Aldana DíazSECRETARIAMtra. Inga. Lesbia Magalí Herrera López

HONORABLE TRIBUNAL EXAMINADOREn cumplimiento con los preceptos que establece la ley de la Universidad de SanCarlos de Guatemala, presento a su consideración mi trabajo de graduacióntitulado:DISEÑO DE SOLUCIÓN TECNOLÓGICA EN LA NUBE PARA LA ENTREGAINMEDIATA Y CONFIABLE DE UN SISTEMA DE GESTIÓN DEOPERACIONES PARA FREELANCERSTema que me fuera asignado por la Dirección de la Escuela de Estudios dePostgrado, con fecha 25 de agosto de 2017.Jorge Raúl Orozco Santolino

ACTO QUE DEDICO A:DiosPor darme la vida y la motivación necesaria paraculminar este ciclo.Mi madrePor todas sus enseñanzas, apoyo, paciencia y amorbrindado en cada una de las etapas de mi vida.Mi armesuesfuerzolasymejoresoportunidades.Mis hermanosPor ser ejemplos de vida, porque cada dificultad a laque se han afrontado, han sabido salir adelante.Mi hermanaPor su cariño, atención y paciencia incondicional.Mis amigosPor brindarme su apoyo en las diferentes etapas de mivida y todos esos momentos especiales compartidos.

AGRADECIMIENTOS A:Inga. Maria AldanaPor su apoyo, dedicación y tiempo brindado durante eldesarrollo del presente trabajo de graduación, ya queha sido mi guía para completar cada una de las etapasrequeridas.Inga. Gabriela DíazPor haberme brindado la oportunidad de asesoríapara este trabajo de graduación, por su apoyoincondicional en cada uno de los entregables que mepermitieron agilizar el proceso.Ing. Estuardo ZapetaPor el apoyo brindado durante la realización delprotocolo, por la motivación brindada para seguiradelante con el presente trabajo de graduación.Mis compañerosPor el compañerismo, amistad y esfuerzo realizado encada uno de los cursos de maestría, que permitió saliradelante y concluir la primera etapa de este camino.

ÍNDICE GENERALÍNDICE DE ILUSTRACIONES . VLISTA DE SÍMBOLOS . IXGLOSARIO . XIRESUMEN . XVIIPLANTEAMIENTO DEL PROBLEMA Y PREGUNTAS DE INVESTIGACIÓN XXIOBJETIVOS . XXVMARCO METODOLÓGICO . XXVIIINTRODUCCIÓN . XXXIII1.ANTECEDENTES . 11.1. Evolución de freelancing . 11.2. Inicios de on-premise y transición a SaaS . 21.3. Arquitectura isolated tenancy. 31.4. Soluciones existentes . 42.JUSTIFICACIÓN . 73.ALCANCES . 93.1. Perspectiva investigativa . 93.2. Perspectiva técnica . 93.3. Resultados esperados . 10I

4.MARCO TEÓRICO . 134.1. Modelo on-premise . 144.2. Modelo SaaS . 164.2.1. Arquitectura de una solución SaaS . 174.2.2. Seguridad en soluciones SaaS . 234.2.3. Modelos de negocio SaaS . 295.PRESENTACIÓN DE RESULTADOS . 335.1. Arquitectura de solución . 335.1.1. Componentes principales. 335.1.2. Componentes clave adicionales . 355.1.3. Recomendaciones de arquitectura . 375.2. Procedimiento de aprovisionamiento de recursos . 385.2.1. Arquitectura multi-tenant con uso de subdominio . 385.2.2. Evaluación de disponibilidad de subdominio (cliente) . 435.2.3. Asignación de subdominio (cliente) . 455.2.4. Evaluación de recursos computacionales . 475.2.5. Definición de proceso de auto escalamiento. 495.3. Cumplimiento de estándares de seguridad . 565.3.1. Comunicación cifrada mediante HTTPS . 565.3.2. Seguridad a nivel de aplicación . 585.3.3. Diseño de red de servidores . 685.3.4. Seguridad a nivel de base de datos . 785.3.5. Política de privacidad . 835.4. Modelo de negocio . 845.4.1. Identificación del modelo de negocio . 846.DISCUSIÓN DE RESULTADOS . 91II

6.1. Procedimientos de aprovisionamiento . 916. 2. Controles de seguridad . 956.3. Rentabilidad . 966.3.1. Margen neto . 976.3.2.Tasa interna de retorno . 100CONCLUSIONES . 107RECOMENDACIONES . 109REFERENCIAS BIBLIOGRÁFICAS. 111ANEXOS . 115Política de privacidad. 115III

IV

ÍNDICE DE ILUSTRACIONESFIGURAS1. Costo con sistemas on-promise . 152. Costo con soluciones SaaS . 173. Arquitectura multi-tenant simple . 194. Arquitectura multi-tenant múltiple . 215. Base de datos de arquitectura multi-tenant múltiple . 226. Diagrama de infraestructura para soluciones web públicas. 267. Arquitectura de solución . 358. Configuración de de NAT Gateway . 379. Arquitectura de base de datos . 3910. Creación de cuenta . 4211. Evaluación de disponibilidad de subdominio . 4412. Asignación de subdominio . 4613. Medición de utilización de CPU . 4814. Componentes de autoescalamiento . 5215. Creación de plantilla de máquina virtual (AMI) . 5416. Control de acceso basado en roles . 6217. Filtros para cross-site scripting . 6718. Filtros para inyección SQL. 6719. Configuración de Web Application Firewall . 6820. Creación de VPC . 6921. Configuración de firewall público . 7322. Configuración de firewall privado backend . 7523. Configuración de firewall privado base de datos . 7624. Tabla de ruteo de subred pública . 7725. Tabla de ruteo de subred privada backend . 7726. Propiedades de base de datos . 80V

27. Especificaciones de instancia . 8128. Propiedades de respaldo . 8329. Autoescalamiento Amazon AWS . 94VI

TABLASI.Variables de estudio . XXVIIIII.Fases del estudio . XXIXIII.Arquitecturas Multi-tenant . 18IV.Ventajas y desventajas de arquitectura multi-tenant simple . 20V.Ventajas y desventajas de arquitectura multi-tenant múltiple . 22VI.Servicios que ofrece Zendesk . 31VII.Estructura de tabla de tenants . 39VIII.Estructura de tablas de aplicación . 40IX.Elementos de URL de clientes . 40X.Límites para incrementar el escalamiento horizontal . 49XI.Límites para reducir el escalamiento horizontal. 49XII.Configuraciones en AWS Route 53 . 58XIII.Elementos de autenticación. 59XIV.Propiedades de Amazon ElastiCache . 64XV.Configuración de AWS WAF . 66XVI.Grupo de subred. 70XVII.Subredes de solución . 71XVIII.Configuración de firewall público . 73XIX.Configuración de firewall privado backend . 74XX.Configuración de firewall privado base de datos . 76XXI.Propiedades de red y seguridad de base de datos . 78XXII.Propiedades de encriptación . 79XXIII.Especificaciones de instancia . 81XXIV.Propiedades de respaldo . 83XXV.Comparativo on-premise y SaaS . 84XXVI.Planes de suscripción . 89XXVII.Plan de almacenamiento de documentos . 89XXVIII.Recursos evaluados por procedimientos de aprovisionamiento . 92VII

XXIX.Aspectos cubiertos por los controles de seguridad . 95XXX.Margen bruto, año 1 (USD ) . 99XXXI.Estado de resultados proyectado, año 1 (USD ) . 101XXXII.Estado de resultado proyectado, año 2 (USD ) . 101XXXIII.Estado de resultados proyectado, año 3 (USD ) . 102XXXIV.Gastos proyectados, año 1 . 103XXXV.Gastos proyectados, año 2 . 103XXXVI.Gastos proyectados, año 3 . 104XXXVII.Cálculo de TIR al año 3 . 105VIII

LISTA DE SÍMBOLOSSímboloSignificadoAWSAmazon Web ServicesPYMESPequeñas y medianas empresasSSLSecurity Socket LayerSaaSSoftware as a ServiceCRMCustomer Relationship ManagementNATNetwork Address TranslationRDSRelational Database ServiceAMIAmazon Machine ImageHTTPSHypertext Transfer Protocol SecureWAFWeb Application FirewallACLAccess Control ListVPCVirtual Private CloudSSHSecure ShellRDPRemote Desktop ProtocolAWS EFSAmazon Web Service Elastic File SystemDDoSDistributed Denial of ServiceIX

X

GLOSARIOAlgoritmoConjunto ordenado y finito de operaciones quepermite hallar la solución de un problema.AplicaciónConjunto de algoritmos preparado para unautilización específica ejecutado en un computador.ArquitecturaConjunto de diagramas que representan el diseñode un sistema en el cual se incluye la interacciónde los diversos componentes.AutenticaciónAcción y efecto de autorizar el acceso a unsistema, mediante la validación de credencialescomo usuario y contraseña.AutoescalamientoAcción y efecto de aumentar de forma automáticael número de servidores que dan respuesta a laspeticiones de los clientes.BackendCapa de una aplicación de software que identificaaquellos procesos que se ejecutan en el trasfondode sus operaciones.Balanceador de cargaDispositivo que se encarga de la distribución depeticiones de los usuarios hacia diferentesservidores web, para mejorar el tiempo derespuesta.Base de datosConjuntodedatosqueseencuentranrelacionados entre sí y se almacenan de formasistemática, para el uso de una aplicación desoftware.XI

Certificado de seguridadHerramienta de validación y encriptación que seencarga de asegurar la información que setraslada entre un servidor web y el cliente.Cloud ComputingConjunto de tecnologías que permiten prestarservicios de computación como: servidores, basesde datos, almacenamiento, etc., a través deinternet sin necesidad de alguna descarga.Cross-site scriptingInseguridad informática de una aplicación web quepermite a un tercero inyectar código malicioso enun sitio web.DisponibilidadCualidad o condición de encontrar disponible unsistema informático para su uso.EncriptaciónCorresponde al procedimiento de cifrado deinformación importante, mediante claves paraimpedir su legibilidad.EscalabilidadCualidad que identifica la posibilidad de escalar deun sistema informático.FirewallDispositivo físico o virtual que bloquea el accesono autorizado a terceras personas.FrontendCapa de presentación de una aplicación desoftware que se encarga de la interacción directacon el usuario.HardwareConjunto de dispositivos físicos que componen unequipo de computación.ImplementaciónProceso de configuración de una aplicación desoftware para su puesta en marcha.XII

InfraestructuraConjunto de dispositivos e instalaciones quepermiten la prestación de servicios informáticos.InstanciaCorresponde a un servidor lógico alojado enAmazon Web Services, que se compone tanto derecursos computacionales virtuales como desistema operativo.Inyección SQLTécnica de introducción de código malicioso, através de los campos de formulario de unaaplicación para explotar la base de datos.LicenciaConvenio entre el dueño de una solución desoftware y el usuario que hace uso de syeconómicos.Modelo quieredelaaquelcompracompleta de un software, siendo este instalado yadministrado por el cliente en sus servidores.Máquina virtualSoftware que simula un computador real con todossusdispositivosparael esoftwarequetienecomofundamento proveer de un servicio a múltiplesclientes utilizando un solo servidor de software.Procedimiento deProceso encargado de evaluar y suministrar másaprovisionamientorecursos a una solución de software de acuerdo asu demanda.XIII

Protocolo de redConjunto de reglas que delimitan la comunicaciónen una red de computadoras.RedConjunto de dispositivos relacionados entre sí, porun canal de comunicación que permite latransferencia de información, entre ellos.ReplicaciónProceso de copia y actualización de datos en unservidor de base de datos secundario, pudiéndoseeste alojar en instalaciones separadas al servidorprimario.RespaldosCopias de seguridad de datos, realizadas a partirde datos originales, con el objeto de disponer deun medio de restauración en caso de pérdida delos datos originales.Security groupConjunto de reglas definidas en Amazon WebServices, para permitir el acceso a un servidor enpuertos específicos.Servidor webAplicación web encargada de recibir, procesar yresponder a las peticiones de un cliente.SoftwareConjunto de componentes lógicos responsablesde realizar tareas específicas ejecutadas en uncomputador.SubdominioSubgrupo de nombres de dominio clasificadocomo un dominio de segundo nivel, utilizado paraacceder a un sitio web específico.XIV

SubredSubconjunto lógico de una red de inistración.Tablas de ruteoArchivo electrónico que almacena todas las rutasposibles entre los diferentes nodos de una red.Variables de sesiónConjunto de variables que identifican de maneraúnica, la sesión de un usuario en una aplicaciónpara agilizar su interacción.XV

XVI

RESUMENLos ideales de los trabajadores han cambiado durante los últimos años,pasando de buscar estabilidad y trabajos permanentes, trabajos que les brindenmayor flexibilidad de horario, independencia y oportunidad de aprendizaje. A estenuevo modelo de trabajo, se le conoce como freelancing, en donde lostrabajadores laboran de forma independiente para diversas empresas y/oindustrias. Por tal razón, se hace conveniente proveer de una solucióntecnológica lo suficientemente flexible para adaptarse a cualquier modelo denegocio en cualquier industria.En este estudio, se presenta el diseño de una solución en la nube comoSoftware as a Service, que sea capaz de proveer un sistema para freelancers.Este diseño permite confirmar, mediante el uso de tecnologías en la nube comoAmazon Web Services, y utilizando controles de seguridad en cada una de lascapas de la solución, se puede prestar un servicio tecnológico que, mediantediversos modelos de suscripción sea accesible para los diversos freelancers.Para esto, en el estudio se plantean tres objetivos fundamentales, siendo elprimero de ellos un enfoque en los procedimientos de aprovisionamiento derecursos para los nuevos clientes. Como parte de dicho objetivo, se buscaidentificar todos aquellos procedimientos o métodos, los cuales se puedaresponder de forma inmediata a la asignación de recursos que permitansatisfacer la demanda de los clientes, prestando de esta manera un servicio desoftware ininterrumpido y estable.Los procedimientos de aprovisionamiento identificados se enfocan en laevaluación del rendimiento promedio de los servidores incluidos en lainfraestructura de la solución, se procede con las acciones correspondientes, queXVII

siendo el caso de un rendimiento bajo, se añadirían más servidores a la soluciónpara mejorar la experiencia de usuario y evitar cualquier interrupción del sistema.A este proceso se le denomina como autoescalamiento, que utilizando losservicios de Amazon Web Services, se puede automatizar para disminuir elriesgo de una caída en la solución.Adicionalmente, la solución considera que el servicio se prestará a losclientes, a través de la creación de un subdominio que estará directamenterelacionado con él, de tal manera que, el cliente podrá reservar su subdominio yutilizarlo para futuros accesos a la solución. Por lo tanto, se identifican procesosque permitan evaluar la disponibilidad de un subdominio para su correspondienteasignación al cliente que está creando su cuenta.Por otro lado, el segundo objetivo del estudio se enfoca en la identificaciónde todos aquellos controles de seguridad que permitan entregar una soluciónmás confiable a los clientes. Para ello, se han considerado cada una de las capasde una solución de software: comunicación, aplicación, servidores y bases dedatos.En cada una de ellas, se identificaron los elementos, procesos y mejoresprácticas que permiten que la solución de software sea más segura en cuanto ala información almacenada y a la disponibilidad del servicio. De esta manera, seasegura que la información registrada por los usuarios de la aplicación, resida enun ambiente con bajas probabilidades de sufrir algún ataque informático, ya quese reducen las vulnerabilidades de la solución, y al mismo tiempo se asegura queel usuario sea capaz de acceder a su información en todo momento, dada su altadisponibilidad.Finalmente, se realiza un análisis de las diferentes variables que puedenllegar a impactar en los costos de la solución, con el objetivo de identificar elmodelo de negocio más rentable que permita a freelancers hacer uso de lamisma. Llegando de esta manera a determinar que el modelo de negocio másXVIII

rentable y efectivo para los clientes es, el modelo de Software as a Service,mediante una suscripción mensual pagada por los clientes, se permite el uso dela solución. Este modelo tiene muchas ventajas respecto a una solución onpremise, ya que los costos de administración y mantenimiento de la solución, sereducen en gran manera representando beneficios económicos para el cliente.Además, se definen los planes de suscripción para ajustarse a cada uno delos tipos de freelancers que pueden presentarse, desde una persona individual,hasta una pequeña oficina. En cualquier de los casos, se plantea un costo desuscripción atractivo y accesible para que la probabilidad de captar clientes seamás alta. Teniendo el modelo de negocio y planes de suscripción identificados,se hace el análisis correspondiente para determinar si el negocio es rentable, através de indicadores financieros como el margen bruto y la tasa interna deretorno.XIX

XX

PLANTEAMIENTO DEL PROBLEMA Y PREGUNTAS DE INVESTIGACIÓNProblema socialDesde inicios de la presente década, la fuerza laboral está cambiando,presentando una fuerte tendencia hacia la independencia, en la que las personasoptan más por un trabajo independiente que por un trabajo a tiempo completo.En el año 2014, se contaban 53 millones de freelancers (trabajadoresindependientes) en Estados Unidos, que representaban el 34 % de toda la fuerzalaboral del país; en la Unión Europea al año 2013, se tenían 8.9 millones defreelancers, presentando un crecimiento de 45 % desde el 2004 al 2013. Lafuerza laboral está cambiando rápidamente y no existen sistemas de informaciónque les permita a los freelancers gestionar sus operaciones de forma fácil, seguray adaptable a cualquier tipo de industria en la que estén involucrados.Soluciones tecnológicas y debilidades detectadasActualmente existen algunas soluciones tecnológicas que se enfocan en lagestión de operaciones de pequeños negocios, PYMES, permitiéndoles laidentificación de actividades a sus proyectos/casos, identificación de losinvolucrados y de gastos incurridos en cada una de ellas; facilitando laadministración de su negocio; sin embargo, no son completamente adaptables almercado de los freelancers, o bien, algunas de estas soluciones están orientadasa industrias específicas, por ejemplo: MyCase, Clio, Abacus, Cosmo Lex: soluciones enfocadas en la industria legal. Salus, QuicDoc, PsytechSolutions: soluciones enfocadas en la industria demedicina.XXI

Por otro lado, la mayoría de estas soluciones tienen costos demasiado altos,que resultan ser inaccesibles para los freelancers, o incluso, muchas veces paralos pequeños negocios. Debido a que el mercado objetivo de las solucionesmencionadas previamente son las PYMES, muchas veces ellas tienen comoprioridad la seguridad de la información, resultando en implementaciones en sitiosobre los servidores de los clientes, aumentando los costos de los mismos, yaque eso implica la compra de hardware, compra de software, mantenimiento yadministración de los servidores, conlleva así contratación temporal de personalcalificado.Problema tecnológicoDadas las circunstancias anteriores, la implementación de una soluciónpara un freelancer o un pequeño negocio, resulta ser más compleja de lo quedebería y de lo que ellos quisieran que fuera, obligándolos a utilizar herramientasno convencionales para gestionar sus operaciones, por ejemplo, Excel, Access uotras herramientas. Por lo cual, en algún momento los puede llevar a ladescentralización de la información, a la pérdida de información valiosa, y a lafalta de seguimiento de sus clientes.Siendo todo esto ocasionado por la falta de herramientas tecnológicas queofrezcan soluciones adaptables para las diferentes industrias de los freelancers,confiables (mediante el uso de técnicas informáticas como cifrados SSL ysubdominios), y fáciles de instalar/configurar para su uso inmediato.Pregunta central¿Cómo se puede crear una solución en la nube que permita la entrega inmediatay confiable de un sistema de gestión de operaciones para freelancers?XXII

Preguntas auxiliares ¿Cómo se puede aprovisionar computación, memoria, networking yalmacenamiento en disco que permita la implementación inmediata y100% funcional de un software como servicio? ¿Qué componentes son necesarios para la creación de una infraestructura enla nube que cumpla con estándares de seguridad? ¿Cuál será el modelo de negocio a utilizar que capte la mayor cantidad deusuarios para crear una solución rentable?XXIII

XXIV

OBJETIVOSGeneralDiseñar una solución tecnológica en la nube que permita la entrega inmediata yconfiable de un sistema de gestión de operaciones para freelancers.Específicos1. Diseñar los procedimientos de aprovisionamiento de computación, memoria,networking y almacenamiento en disco que permita la implementacióninmediata y 100% funcional de un software como servicio.2. Identificar los componentes necesarios para la creación de una infraestructuraen la nube que cumpla con estándares de seguridad.3. Definir el modelo de negocio a utilizar que capte la mayor cantidad deusuarios, para crear una solución rentable.XXV

XXVI

MARCO METODOLÓGICOTipo de estudio: cualitativoEl estudio tendrá como variable principal el diseño de la solución, querequerirá de investigación tecnológica tomando como base soluciones existentesen la industria, las cuales demuestren que el uso de tecnologías en la nubepermite el aprovisionamiento de recursos de forma auto

ACTO QUE DEDICO A: Dios Por darme la vida y la motivación necesaria para culminar este ciclo. Mi madre Por todas sus enseñanzas, apoyo, paciencia y amor brindado en cada una de las etapas de mi vida. Mi padre Por todos sus consejos, por su esfuerzo y perseverancia para brindarme las mejores