Upload
others
View
13
Download
0
Embed Size (px)
Citation preview
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERÍA EN NETWORKING Y
TELECOMUNICACIONES
PLATAFORMA DE AULA VIRTUAL DE LA DIRECCIÓN DE ADMISIÓN Y
NIVELACIÓN DE LA UNIVERSIDAD DE GUAYAQUIL: GESTIÓN
DE IMPLEMENTACIÓN TOPOLÓGICA DE RED DE UN
SISTEMA PILOTO LMS MOODLE EN LA UNIDAD
DE ADMISIÓN Y NIVELACIÓN DE LA
UNIVERSIDAD DE GUAYAQUIL
PROYECTO DE TITULACIÓN
Previa a la obtención del Título de:
INGENIERO EN NETWORKING Y
TELECOMUNICACIONES
AUTORES:
RONALDO ANDRE VERGARA LLIVICURA
DANIEL FERNANDO ORELLANA FIERRO
TUTOR:
HARRY JACINTO LUNA AVEIGA
GUAYAQUIL – ECUADOR
2020
II
REPOSITORIO NACIONAL EN CIENCIAS Y TECNOLOGÍA
FICHA DE REGISTRO DE TESIS
TITULO: Plataforma de Aula Virtual de la Dirección de Admisión y Nivelación de la
Universidad de Guayaquil: Gestión de Implementación topológica de Red de un Sistema
piloto LMS Moodle en la Unidad de Admisión y Nivelación de la Universidad de Guayaquil
REVISORES:
INSTITUCIÓN: Universidad de Guayaquil FACULTAD: Ciencias Matemáticas y Físicas
CARRERA: Ingeniería en Networking y Telecomunicaciones
FECHA DE PUBLICACIÓN: N° DE PÁGS.:
ÁREA TEMÁTICA: Desarrollo de software
PALABRAS CLAVES: Computación en la nube, alta disponibilidad, Moodle.
RESUMEN:
N° DE REGISTRO: N° DE CLASIFICACIÓN: Nº
DIRECCIÓN URL:
ADJUNTO PDF SI
NO
CONTACTO CON AUTOR:
Ronaldo Andre Vergara Llivicura
Daniel Fernando Orellana Fierro
TELÉFONO:
0960153400
0968216668
E-MAIL:
CONTACTO DE LA INSTITUCIÓN:
NOMBRE: Ab. Juan Chávez Atocha
TELÉFONO: 230729
X
III
APROBACION DEL TUTOR
En mi calidad de Tutor del trabajo de titulación, “PLATAFORMA DE AULA
VIRTUAL DE LA DIRECCIÓN DE ADMISIÓN Y NIVELACIÓN DE LA
UNIVERSIDAD DE GUAYAQUIL: GESTIÓN DE IMPLEMENTACIÓN
TOPOLÓGICA DE RED DE UN SISTEMA PILOTO LMS MOODLE EN LA
UNIDAD DE ADMISIÓN Y NIVELACIÓN DE LA UNIVERSIDAD DE
GUAYAQUIL” elaborado por el Sr. RONALDO ANDRE VERGARA LLIVICURA y
el Sr. Daniel Fernando Orellana Fierro Alumnos no titulados de la Carrera de
Ingeniería en Networking y Telecomunicaciones, Facultad de Ciencias
Matemáticas y Físicas de la Universidad de Guayaquil, previo a la obtención del
Título de Ingeniero en Networking y Telecomunicaciones, me permito declarar que
luego de haber orientado, estudiado y revisado, la Apruebo en todas sus partes.
Atentamente
____________________________________________
Ing. HARRY JACINTO LUNA AVEIGA, M. Sc
TUTOR
IV
DEDICATORIA
El presente trabajo de titulación es
dedicado a toda mi familia los cuales
han estado pendientes de mí y me
han apoyado en todas mis
decisiones.
A mis padres quienes han sido un
pilar fundamental durante toda mi
vida y en mi periodo de estudios,
siempre pendientes y dispuestos a
brindarme su apoyo y
recomendaciones cada día.
Daniel Fernando Orellana Fierro
V
DEDICATORIA
El presente trabajo de titulación es
dedicado en primer lugar a Dios por
la oportunidad brindada en su infinita
misericordia de alcanzar este punto
en mi vida.
A mis padres, quienes han sido parte
fundamental en este proceso de
estudio, siendo mi motivo e
inspiración.
Ronaldo Andre Vergara Llivicura.
VI
AGRADECIMIENTO
Agradezco a Dios por darme
fortalezas para completar todas las
metas que me he planteado y poder
superar todos los obstáculos que se
han presentado.
A mis docentes quienes han sido de
inspiración para mí por todo el
esfuerzo realizado y la dedicación
brindada durante el transcurso de
sus clases, a mi tutor por la guía
desde el inicio hasta el fin del
desarrollo del proyecto y a mis
compañeros de grupo.
Daniel Fernando Orellana Fierro
.
VII
AGRADECIMIENTO
A Dios todopoderoso por brindarme
la capacidad de adquirir los
conocimientos y habilidades
necesarias para cumplir esta meta.
A mis padres, hermanos, familiares,
amigos y docente que de alguna u
otra forma participaron de forma
positiva con guía, orientación y
consejos, durante el transcurso de
mis actividades académicas.
Ronaldo Andre Vergara Llivicura.
.
VIII
TRIBUNAL PROYECTO DE TITULACIÓN
Ing. Fausto Cabrera Montes, M.Sc.
DECANO DE LA FACULTAD
CIENCIAS MATEMATICAS Y
FISICAS
Ing. Abel Alarcón Salvatierra, Mgs
DIRECTOR DE LA CARRERA DE
INGENIERÍA EN NETWORKING Y
TELECOMUNICACIONES
Nombres y Apellidos
PROFESOR REVISOR
TRIBUNAL
Nombre y Apellidos
PROFESOR DEL ÁREA TRIBUNAL
Nombre y Apellidos
PROFESOR TUTOR DEL PROYECTO
DE TITULACION
Ab. Juan Chávez Atocha, Esp.
SECRETARIO (E) FACULTAD
IX
DECLARACIÓN EXPRESA
“La responsabilidad del contenido de este
Proyecto de Titulación, me corresponden
exclusivamente; y el patrimonio intelectual de
la misma a la UNIVERSIDAD DE
GUAYAQUIL”
Daniel Fernando Orellana Fierro
Ronaldo Andre Vergara Llivicura
X
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERIA EN NETWORKING Y
TELECOMUNICACIONES
PLATAFORMA DE AULA VIRTUAL DE LA DIRECCIÓN DE ADMISIÓN Y
NIVELACIÓN DE LA UNIVERSIDAD DE GUAYAQUIL: GESTIÓN
DE IMPLEMENTACIÓN TOPOLÓGICA DE RED DE UN
SISTEMA PILOTO LMS MOODLE EN LA UNIDAD
DE ADMISIÓN Y NIVELACIÓN DE LA
UNIVERSIDAD DE GUAYAQUIL
Proyecto de Titulación que se presenta como requisito para optar por el título de
INGENIERO EN NETWORKING Y TELECOMUNICACIONES
Autores: Ronaldo Andre Vergara Llivicura
C.I: 0953024825
Daniel Fernando Orellana Fierro
C.I: 0930499074
Tutor: Ing. Harry Jacinto Luna Aveiga, MSc.
Guayaquil, 24 de febrero del 2020
XI
CERTIFICADO DE ACEPTACIÓN DEL TUTOR
En mi calidad de Tutor del proyecto de titulación, nombrado por el Consejo
Directivo de la Facultad de Ciencias Matemáticas y Físicas de la Universidad de
Guayaquil.
CERTIFICO:
Que he analizado el Proyecto de Titulación presentado por los estudiantes
Ronaldo Andre Vergara Llivicura y Daniel Fernando Orellana Fierro, como
requisito previo para optar por el título de Ingeniero en Networking y
Telecomunicaciones cuyo problema es:
PLATAFORMA DE AULA VIRTUAL DE LA DIRECCIÓN DE ADMISIÓN Y
NIVELACIÓN DE LA UNIVERSIDAD DE GUAYAQUIL: GESTIÓN
DE IMPLEMENTACIÓN TOPOLÓGICA DE RED DE UN
SISTEMA PILOTO LMS MOODLE EN LA UNIDAD
DE ADMISIÓN Y NIVELACIÓN DE LA
UNIVERSIDAD DE GUAYAQUIL
Considero aprobado el trabajo en su totalidad.
Presentado por:
Vergara Llivicura Ronaldo Andre C.I: 0953024825
Orellana Fierro Daniel Fernando C.I: 0930499074
Tutor: Ing. Harry Jacinto Luna Aveiga, MSc.
Guayaquil, 24 de febrero del 2020
XII
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERIA EN NETWORKING Y TELECOMUNICACIONES
Autorización para Publicación de Proyecto de Titulación en
Formato Digital
1. Identificación del Proyecto de Titulación
Nombre Alumno: Ronaldo Andre Vergara Llivicura
Dirección: Durán, Cdla. Ana María de Olmedo Mz: 34 V:14
Teléfono: 04 2196253 E-mail: [email protected]
Nombre Alumno: Daniel Fernando Orellana Fierro
Dirección: Alborada X, Mz 305 V. 11
Teléfono: 04 4602527 E-mail: [email protected]
Título del Proyecto de titulación: Plataforma de Aula Virtual de la Dirección
de Admisión y Nivelación de la Universidad de Guayaquil: Gestión de
Implementación topológica de Red de un Sistema piloto LMS Moodle en la
Unidad de Admisión y Nivelación de la Universidad de Guayaquil
2. Autorización de Publicación de Versión Electrónica del Proyecto de
Titulación
A través de este medio autorizo a la Biblioteca de la Universidad de Guayaquil y a
la Facultad de Ciencias Matemáticas y Físicas a publicar la versión electrónica de
este Proyecto de titulación.
Facultad: Ciencias Matemáticas y Físicas
Carrera: Ingeniería en Networking y Telecomunicaciones
Proyecto de titulación al que opta: Ingeniero en Networking y
Telecomunicaciones
Profesor tutor: Ing. Harry Jacinto Luna Aveiga, M. Sc
Tema del Proyecto de Titulación: Implementación de una plataforma piloto de
alta disponibilidad en la nube.
XIII
Publicación electrónica:
Inmediata X Después de 1 año
Firma Alumnos:
Ronaldo Andre Vergara Llivicura Daniel Fernando Orellana Fierro
3. Forma de envío:
El texto del proyecto de titulación debe ser enviado en formato Word, como archivo
.Doc. O .RTF y. Puf para PC. Las imágenes que la acompañen pueden ser: .gif,
.jpg o .TIFF.
DVDROM X CDROM
XIV
INDICE GENERAL
APROBACION DEL TUTOR .......................................................................... III
DEDICATORIA ............................................................................................... IV
DEDICATORIA ................................................................................................ V
AGRADECIMIENTO....................................................................................... VI
AGRADECIMIENTO...................................................................................... VII
DECLARACIÓN EXPRESA ............................................................................ IX
INDICE GENERAL ...................................................................................... XIV
ABREVIATURAS ........................................................................................ XIX
SIMBOLOGÍA .............................................................................................. XX
INDICE DE CUADROS ............................................................................... XXI
INDICE DE GRÁFICOS ............................................................................. XXII
RESUMEN ................................................................................................ XXIII
ABSTRACT ............................................................................................... XXIV
INTRODUCCIÓN ............................................................................................ 1
CAPÍTULO I .................................................................................................... 3
Ubicación del Problema en un contexto ................................................... 3
Situación conflicto nudos críticos ............................................................. 4
Causas y consecuencias del problema .................................................... 5
Delimitación del Problema ........................................................................ 6
Formulación del Problema ....................................................................... 6
Evaluación del Problema .......................................................................... 6
Variables .................................................................................................. 8
OBJETIVOS ................................................................................................ 8
Objetivo general ....................................................................................... 8
Objetivos específicos ............................................................................... 8
ALCANCE DEL PROBLEMA ....................................................................... 9
XV
JUSTIFICACIÓN E IMPORTANCIA ........................................................... 11
METODOLOGÍA DEL PROYECTO ........................................................... 11
CAPÍTULO II ................................................................................................. 12
MARCO TEÓRICO ....................................................................................... 12
ANTECEDENTES DEL ESTUDIO ................................................................. 12
FUNDAMENTACIÓN TEÓRICA ................................................................ 12
Plataformas E-learning o LMS................................................................ 12
Cloud Computing ................................................................................... 14
Arquitectura de alta disponibilidad para servidores ................................ 17
Balanceo de carga ................................................................................. 20
Servidores de aplicaciones .................................................................... 23
Lenguajes de programación web ........................................................... 24
Granjas de servidores ............................................................................ 24
Bases de datos ...................................................................................... 25
Administración de servidores ................................................................. 25
Seguridad en servidores ........................................................................ 26
MOODLE ............................................................................................... 29
HA Proxy ................................................................................................ 30
Apache ................................................................................................... 31
PHP ....................................................................................................... 32
MySQL ................................................................................................... 33
FUNDAMENTACIÓN LEGAL .................................................................... 34
CONSTITUCIÓN DE LA REPÚBLICA DEL ECUADOR ......................... 34
LEY ORGÁNICA DE EDUCACIÓN SUPERIOR ..................................... 36
CÓDIGO ORGÁNICO INTEGRAL PENAL ............................................. 39
DECRETO EJECUTIVO NO. 1425 ........................................................ 39
XVI
CÓDIGO ORGÁNICO DE LA ECONOMÍA SOCIAL DE LOS
CONOCIMIENTOS, CREATIVIDAD E INNOVACIÓN ................................. 40
PREGUNTA CIENTÍFICA A CONTESTARSE ........................................... 42
DEFINICIONES CONCEPTUALES ........................................................... 42
FUNDAMENTACIÓN CONTEXTUAL ........................................................ 43
Datos demográficos de las provincias más grandes del Ecuador ........... 43
Universidades más grandes del Ecuador ............................................... 43
Universidad de Guayaquil ...................................................................... 44
CAPÍTULO III ................................................................................................ 46
PROPUESTA TECNOLÓGICA ..................................................................... 46
ANÁLISIS DE FACTIBILIDAD ................................................................... 47
Factibilidad Técnica ............................................................................... 48
Factibilidad Operacional ......................................................................... 49
Factibilidad Legal ................................................................................... 49
Factibilidad Económica .......................................................................... 50
ETAPAS DE LA METODOLOGÍA DEL PROYECTO ................................. 52
CRITERIOS DE LA VALIDACIÓN DE LA PROPUESTA............................ 64
ENTREGABLES DEL PROYECTO ........................................................... 65
HIPÓTESIS ............................................................................................... 65
TIPO DE INVESTIGACIÓN ....................................................................... 65
POBLACIÓN.............................................................................................. 65
MUESTRA ................................................................................................. 67
Cálculo de la muestra ............................................................................ 67
UNIDAD DE ANÁLISIS .............................................................................. 68
ENCUESTA ............................................................................................... 68
PROCESAMIENTO Y TABULACIÓN ........................................................ 68
ANÁLISIS .................................................................................................. 76
XVII
CAPÍTULO IV ................................................................................................ 78
CRITERIOS DE ACEPTACIÓN DEL PRODUCTO O SERVICIO .................. 78
CONCLUSIONES ...................................................................................... 79
RECOMENDACIONES .............................................................................. 80
BIBLIOGRAFÍA ............................................................................................. 82
ANEXOS ....................................................................................................... 85
ANEXO I ....................................................................................................... 85
Modelo de Encuestas ................................................................................ 85
ANEXO 2 ...................................................................................................... 87
Contenido ...................................................................................................... 88
SERVICIO WEB ............................................................................................ 90
Topología de red propuesta ....................................................................... 90
Creación Droplets en Digital Ocean ........................................................... 90
SERVICIO DE NOMBRE DOMINIO .............................................................. 96
Creación de un nombre de dominio ........................................................... 96
Configurar dominio en Digital Ocean ....................................................... 100
SERVIDOR BALANCEADOR DE CARGA .................................................. 103
Instalación de HAProxy ........................................................................... 103
Configuración Certificado SSL en balanceador de carga ......................... 103
Configuración de servicios ....................................................................... 106
Configuración archivo hosts ..................................................................... 107
Configuración de HAProxy....................................................................... 107
SERVIDOR DE BASE DE DATOS .............................................................. 110
Instalación de MySQL 5.6 ........................................................................ 110
Configuración base de datos MySQL ................................................... 112
Configuración archivo hosts ..................................................................... 113
Configuración de servicios ....................................................................... 113
XVIII
SERVIDORES DE APLICACIONES ............................................................ 114
Moodle 3.7 ............................................................................................... 114
Prerrequisitos .......................................................................................... 114
Configuración archivo hosts ..................................................................... 115
Configuración apache en los servidores .................................................. 115
Prevenir mensaje advertencia al reiniciar servicio apache ................... 116
Instalación PHP 7.1 ................................................................................. 117
Instalación complementos extras ......................................................... 118
Configuración de servicios ....................................................................... 118
Instalación de Moodle ................................................................................. 118
CONFIGURACIONES ADICIONALES ........................................................ 128
Configuración adicional servicio SSH ...................................................... 128
Configuración HTTPS en los servidores apache ...................................... 129
Convertir plataforma web a HTTPS ......................................................... 131
Instalación PHPMYADMIN ...................................................................... 132
Configuración phpMyAdmin ..................................................................... 133
Configuración de Firewalls ....................................................................... 135
Recurso compartido SAMBA ................................................................... 138
Instalación samba en nodo principal .................................................... 138
Compartir moodledata en samba server .............................................. 139
Montar carpeta compartida en nodos samba cliente ............................ 139
Paquetes necesarios para utilizar samba ............................................. 139
Posibles errores al intentar montar recursos con samba: ..................... 140
Proceso de copias de seguridad de la plataforma ................................... 140
XIX
ABREVIATURAS
ABP Aprendizaje Basado en Problemas
UG Universidad de Guayaquil
FTP Archivos de Transferencia
g.l. Grados de Libertad
Html Lenguaje de Marca de salida de Hyper Texto
http Protocolo de transferencia de Hyper Texto
Ing. Ingeniero
CC.MM.FF Facultad de Ciencias Matemáticas y Físicas
ISP Proveedor de Servicio de Internet
Mtra. Maestra
M.Sc. Máster
URL Localizador de Fuente Uniforme
www world wide web (red mundial)
XX
SIMBOLOGÍA
n Tamaño de la muestra
N Tamaño de la población
Z Nivel de confianza
p Probabilidad de éxito
q Probabilidad de fracaso
d Margen de error
XXI
INDICE DE CUADROS
Cuadro 1. Causas y consecuencias ............................................................. 5
Cuadro 2. Cuadro de la delimitación del problema ..................................... 6
Cuadro 3. Características de 2 servicios de Cloud Computing ............... 17
Cuadro 4. Número de habitantes y tamaño de superficie provinciales ... 43
Cuadro 5. Número de estudiantes matriculados en universidades del
Ecuador ............................................................................................................ 44
Cuadro 6. Número de estudiantes matriculados en la universidad de
Guayaquil ......................................................................................................... 45
Cuadro 7. Recursos de Hardware .............................................................. 48
Cuadro 8. Recursos de Software ............................................................... 49
Cuadro 9. Recursos Económicos para la implementación de la topología
de red ................................................................................................................ 50
Cuadro 10. Tabla Cotización de Servidores de Producción en Google
Cloud ................................................................................................................ 51
Cuadro 11. Proyección de la demanda ...................................................... 66
Cuadro 12. Cantidad de Cupos Ofertados por Facultad........................... 66
Cuadro 13. Resultados de la pregunta 1 de la encuesta .......................... 68
Cuadro 14. Resultados de la pregunta 2 de la encuesta .......................... 69
Cuadro 15. Resultados de la pregunta 3 de la encuesta .......................... 70
Cuadro 16. Resultados de la pregunta 4 de la encuesta .......................... 71
Cuadro 17. Resultados de la pregunta 5 de la encuesta .......................... 72
Cuadro 18. Resultados de la pregunta 6 de la encuesta .......................... 73
Cuadro 19. Resultados de la pregunta 7 de la encuesta .......................... 74
Cuadro 20. Resultados de la pregunta 8 de la encuesta .......................... 75
XXII
INDICE DE GRÁFICOS
Gráfico 1. Logotipo de Amazon Web Service ............................................ 15
Gráfico 2. Logotipo de Digital Ocean ......................................................... 16
Gráfico 3. Implementación de la Seguridad Perimetral mediante un
cortafuegos ...................................................................................................... 29
Gráfico 4. Logotipo de Moodle ................................................................... 29
Gráfico 5. Funcionamiento de HAProxy .................................................... 30
Gráfico 6. Topología de red propuesta ...................................................... 47
Gráfico 7. Cotización de Servidores de Producción en Amazon EC2 ..... 52
Gráfico 8. Product Backlog ........................................................................ 53
Gráfico 9. Sprint 1 ....................................................................................... 54
Gráfico 10. Detalles del Sprint 1 ................................................................. 54
Gráfico 11. Sprint 2 ..................................................................................... 57
Gráfico 12. Detalles del Sprint 2 ................................................................. 57
Gráfico 13. Sprint 3 ..................................................................................... 60
Gráfico 14. Detalles del Sprint 3 ................................................................. 61
Gráfico 15. Sprint 4 ..................................................................................... 62
Gráfico 16. Detalles del Sprint 4 ................................................................. 62
Gráfico 17. Sprint 5 ..................................................................................... 63
Gráfico 18. Detalles del Sprint 5 ................................................................. 63
Gráfico 19. Resultados de la pregunta 1 ................................................... 69
Gráfico 20. Resultados de la pregunta 2 ................................................... 70
Gráfico 21. Resultados de la pregunta 3 ................................................... 71
Gráfico 22. Resultados de la pregunta 4 ................................................... 72
Gráfico 23. Resultados de la pregunta 5 ................................................... 73
Gráfico 24. Resultados de la pregunta 6 ................................................... 74
Gráfico 25. Resultados de la pregunta 7 ................................................... 75
Gráfico 26. Resultados de la pregunta 8 ................................................... 76
Gráfico 27. Aceptación del Producto ......................................................... 78
XXIII
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERIA EN NETWORKING Y TELECOMUNICACIONES
PLATAFORMA DE AULA VIRTUAL DE LA DIRECCIÓN DE ADMISIÓN Y
NIVELACIÓN DE LA UNIVERSIDAD DE GUAYAQUIL: GESTIÓN
DE IMPLEMENTACIÓN TOPOLÓGICA DE RED DE UN
SISTEMA PILOTO LMS MOODLE EN LA UNIDAD
DE ADMISIÓN Y NIVELACIÓN DE LA
UNIVERSIDAD DE GUAYAQUIL
RESUMEN
El presente proyecto de titulación consiste en la implementación de una plataforma
piloto MLS para la Unidad de Nivelación y Admisión de la Universidad de
Guayaquil. Misma que hará uso de una de las plataformas de enseñanza virtual
más populares del mundo: Moodle, y que se ejecutará en servidores virtuales en
la nube. La infraestructura que permitirá esto se basa en tecnologías actuales que
permiten aplicar conceptos como la alta disponibilidad y la escalabilidad. Estas
características son fundamentales para cualquiera plataforma web moderna que
vaya a soportar una inmensa cantidad de usuarios simultáneos, y que son posibles
gracias a una topología de red jerárquica. Los componentes de la infraestructura
son software de código abierto, los cuales permiten su uso sin la necesidad de
recurrir a algún tipo de pago por su uso. La metodología empleada será de tipo
scrum, esta permite dividir el trabajo en partes (sprints) diseñados previamente y
controlados, garantizando de esa manera realizar un trabajo eficiente. La
implementación de esta plataforma permitirá que todos los estudiantes que hagan
uso de ella pueden desarrollar sus actividades académicas sin interrupciones, así
mismo, junto a una buena experiencia de navegación, se garantizan un
aprendizaje adecuado.
Palabras Claves: Moodle, LMS, topología, disponibilidad, escalabilidad, Software,
servidores, nube.
Autores: Ronaldo Andre Vergara Llivicura
Daniel Fernando Orellana Fierro
Tutor: Ing. Harry Jacinto Luna Aveiga, MSc.
O
XXIV
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERIA EN NETWORKING Y TELECOMUNICACIONES
PLATAFORMA DE AULA VIRTUAL DE LA DIRECCIÓN DE ADMISIÓN Y
NIVELACIÓN DE LA UNIVERSIDAD DE GUAYAQUIL: GESTIÓN
DE IMPLEMENTACIÓN TOPOLÓGICA DE RED DE UN
SISTEMA PILOTO LMS MOODLE EN LA UNIDAD
DE ADMISIÓN Y NIVELACIÓN DE LA
UNIVERSIDAD DE GUAYAQUIL
ABSTRACT
This degree project consists of the implementation of an MLS pilot platform for the
Leveling and Admission Unit of the University of Guayaquil. Same that will make
use of one of the most popular virtual teaching platforms in the world: Moodle, and
that will run on virtual servers in the cloud. The infrastructure that will allow this is
based on current technologies that allow applying concepts such as high
availability and scalability. These features are essential for any modern web
platform that will support an immense number of simultaneous users, and that are
possible thanks to a hierarchical network topology. The infrastructure components
are open source software, which allow their use without pay for their use. The
methodology used will be scrum type, this allows the work to be divided into
previously designed and controlled parts (sprints), thus guaranteeing efficient
work. The implementation of this platform will allow all students who make use of
it can develop their academic activities without interruptions, likewise, together with
a good browsing experience, adequate learning is guaranteed.
Keywords: Moodle, LMS, topology, availability, scalability, Software, servers,
cloud.
Autores: Ronaldo Andre Vergara Llivicura
Daniel Fernando Orellana Fierro
Tutor: Ing. Harry Jacinto Luna Aveiga, MSc.
O
1
INTRODUCCIÓN
La Universidad de Guayaquil es una de las universidades públicas más
importantes de la ciudad de Guayaquil y también del Ecuador, fue fundada en
1867 ofertando varias carreras de tercer nivel. Actualmente, en la Universidad se
están llevando a cabo varias reformas administrativas y académicas, esto se debe
a la intervención del gobierno, los cambios en la infraestructura y la administración
han sido evidentes y han permitido una restructuración para mejor la calidad de
enseñanza de la Universidad de Guayaquil.
Varias universidades públicas y privadas se encuentran impulsando la modalidad
de educación a distancia, la cual ha permitido que las personas puedan acceder
a una carrera universitaria sin la necesidad de recurrir presencialmente a centros
de estudios. Los estudiantes serán los beneficiarios directos de la nueva
modalidad gozando de estudio desde la comodidad de sus hogares, solventando
también los problemas de elevados gastos de movilización de los estudiantes cuyo
domicilio se encuentre ubicado en otras ciudades o a grandes distancias de la
Universidad.
Debido a la constante evolución de las tecnologías de Internet ya no se requiere
la implementación de equipos físicos necesarios para la topología de red de una
plataforma virtual en las instalaciones de un edificio, mediante el uso de un nuevo
paradigma de computación, es posible rentar por ciclos mensuales o anuales los
mismos equipos que sean necesarios, pero de forma virtual, evitando de esa
manera los gastos en mantenimiento y recursos de electricidad, internet, entre
otros.
La implementación de una topología que ofrezca alta disponibilidad beneficia a los
estudiantes de los Cursos de Nivelación de la Universidad de Guayaquil, quienes
tendrán una experiencia transparente y no experimentaran problemas generados
por la saturación de los servidores causado por un gran número de estudiantes
conectados de manera simultánea durante ciertos periodos de tiempo.
A continuación, se presenta los capítulos desarrollados en el presente proyecto
de titulación:
2
• Capítulo I: El desarrollo en el primer capítulo plantea el problema del
proyecto junto con las causas y consecuencias del mismo, los objetivos
generales y específicos de la plataforma de aula virtual, y también se
detalla la justificación y la importancia del proyecto de titulación.
• Capitulo II: En el Marco Teórico se describen los antecedes de estudio del
proyecto de una plataforma de aulas virtuales, la fundamentación teórica,
legal, contextual, la hipótesis o pregunta científica a contestarse y las
definiciones conceptuales del proyecto planteado.
• Capitulo III: La propuesta tecnológica contiene el análisis de las
factibilidades técnicas, económicas, legales y operacionales para llevar a
cabo la implementación de la plataforma de la Universidad de Guayaquil.
Una explicación de la metodología aplicada en el proyecto de titulación y
las diferentes fases para completar el desarrollo de la plataforma de los
distintos equipos en el grupo de trabajo.
• Capitulo IV: En la culminación del proyecto se detallan las conclusiones
que se obtuvieron al finalizar el proyecto de titulación y cuáles son las
recomendaciones sugeridas para mejorar la plataforma y mantener una
tolerancia a fallos muy baja.
3
CAPÍTULO I
EL PROBLEMA
PLANTEAMIENTO DEL PROBLEMA
Ubicación del Problema en un contexto
La Universidad de Guayaquil es una de las instituciones de educación superior
más grande que existen en la República del Ecuador, cuya ciudadela universitaria
se encuentra ubicada en el centro de la ciudad de Guayaquil, esta está
conformada por 18 facultades, mismas que ofertan 48 carreras de tercer nivel y
varios programas de cuarto nivel.
En la actualidad, la Universidad de Guayaquil ha tenido un crecimiento sostenido
de personas que desean obtener un título de tercer nivel, los aspirantes deben
realizar los cursos de Nivelación para así tener la posibilidad de ingresar a una de
las carreras ofertadas por la institución de educación superior. La Dirección de
Admisión y Nivelación actualmente tiene a la disposición de los estudiantes de los
cursos de nivelación un aula virtual, dicha plataforma se encuentra implementada
en una Infraestructura de equipos físicos en las instalaciones de la universidad.
La gran acogida que ha tenido actualmente el desarrollo de aulas virtuales a nivel
mundial tanto en universidades públicas como en privadas se debe a que se brinda
acceso al estudio a la población que no lo tenía debido a motivos económicos,
laborales o de movilización. La Universidad Estatal de Milagro (UNEMI) se ha
posicionado como una de varias instituciones de educación superior del país que
se encuentran en la vanguardia en la oferta de educación en línea.
Con estos antecedentes, el proyecto busca implementar una topología de clúster
de servidores web de alta disponibilidad y escalabilidad mediante el uso de los
servicios de las empresas que ofrecen la computación en la nube. La
infraestructura estas empresas brindan una mayor cantidad de beneficios que el
poseer todos los equipos requeridos de manera local.
4
Situación conflicto nudos críticos
El problema surge en el Departamento de Nivelación y Admisión de la
Universidad de Guayaquil, la plataforma de aula virtual a desarrollar será para el
uso de los estudiantes que se encuentren en el curso de Nivelación de algunas de
las distintas carreras universitarias, estos son ofertadas por la institución de
educación superior que es capaz de albergar una gran cantidad de aspirantes a
títulos universitarios de tercer nivel.
La actual plataforma de aula virtual se encuentra implementada en una
infraestructura local en las instalaciones de la Universidad de Guayaquil. Su
funcionamiento es sumamente costoso debido a su mantenimiento y
configuración, el elevado costo se debe al gasto inicial de la adquisición de
equipos de servidores, un computador normal no puede ser utilizado como
servidor por lo que se debe recurrir a los equipos especializados para este fin.
Además, se deben planificar los gastos de uno o varios componentes en caso de
que estos llegaran a tener algún tipo defectos o se deban actualizar debido a que
ya se encuentran muy descontinuados. Todos estos gastos no son necesarios
cuando se utiliza la computación en la nube, solo es necesaria la cotización de los
pagos mensuales o anuales según se contrate y tampoco se requiere un equipo
de soporte en caso de existir alguna falla física, pues este es parte del servicio.
La topología de red de la infraestructura tecnológica actual no contempla una
solución de alta disponibilidad que garantice la tolerancia a fallas y seguridad para
proteger la integridad de la información y los datos personales de todos los
estudiantes, profesores y directivos. La infraestructura debe ser capaz de tolerar
un gran volumen y grandes cantidades de peticiones concurrentes de los distintos
estudiantes que posee la Universidad de Guayaquil.
Para alcanzar las características deseadas en el rendimiento de la plataforma es
necesario usar un modelo topológico de redundancia, balanceo y alta
disponibilidad, tecnología posible mediante el uso de varios servidores, mismos
que se distribuyen y dedican a diferentes tareas.
5
Para desarrollar la plataforma de aulas virtuales se opta por implementar la
topología de red propuesta del ambiente de desarrollo del proyecto en varios VPS
(Virtual Private Server), tecnología que permite cambiar las características de
hardware de nuestros servidores, estas pueden aumentar o disminuir en función
de la necesidad del rendimiento de la plataforma en fase de desarrollo, dicha
tecnología es accesible gracias a varios proveedores que existen en internet.
Causas y consecuencias del problema
Cuadro 1. Causas y consecuencias
Causas Consecuencias
Uso de equipos de computación con
componentes descontinuados y
arquitecturas básicas.
Saturación y bajo rendimiento de la
plataforma con una gran cantidad de
usuarios activos. Costes de
componentes corren por cuenta de la
universidad.
Mantenimiento y soporte a los
servidores de la plataforma.
Disponer de un equipo de soporte
físico para el mantenimiento y
configuración de los equipos.
Uso de servidores en instalaciones
de la universidad.
Elevados costes de electricidad e
internet.
El espacio físico que puede ser
utilizado para otras tareas.
Falta de documentación de
configuración de servicios e
información de los servidores.
La fiabilidad de la Plataforma se verá
afectada por falla en los servicios y un
elevado tiempo para restablecer el
correcto funcionamiento de los
servicios.
Elaboración: Daniel Fernando Orellana Fierro
Fuente: Datos de la investigación
6
Delimitación del Problema
Cuadro 2. Cuadro de la delimitación del problema
Campo Infraestructura IT
Área Curso de Nivelación de Carrera
Aspecto Implementación topológica de la infraestructura de alto rendimiento
Tema
Plataforma de Aula Virtual de la Dirección de Admisión y Nivelación
de la Universidad de Guayaquil: Gestión de Implementación
topológica de Red de un Sistema piloto LMS Moodle en la Unidad
de Admisión y Nivelación de la Universidad de Guayaquil
Elaboración: Daniel Fernando Orellana Fierro
Fuente: Datos de la investigación
Formulación del Problema
En la actualidad existe un aumento del uso de plataformas de aulas virtuales
por parte de instituciones de educación superior en todo el mundo. La Universidad
de Guayaquil, consiente de brindar una educación de excelencia, busca ofrecer
una nueva modalidad de estudio a todos los estudiantes de la Unidad de Admisión
y Nivelación, que, en la actualidad se viene realizando de forma presencial para
sus estudiantes.
¿Es posible brindar una alta disponibilidad en los servicios de la plataforma LMS
con la masiva cantidad de postulantes en la Unidad de Nivelación de la
Universidad de Guayaquil?
¿Cómo favorecerá las ventajas que brindan los servicios web en la nube a la
Universidad de Guayaquil mediante la implementación de la plataforma de aulas
virtuales con una topología de servidores distribuidos?
Evaluación del Problema
Delimitado
La configuración de la topología clúster y el levantamiento de la plataforma
piloto LMS para la Unidad de Admisión y Nivelación de la Universidad de
7
Guayaquil debe realizarse en un plazo no mayor a 3 meses, esto incluye la
configuración de las características físicas (hardware) de los servidores virtuales
en la nube del proveedor seleccionado, así como la implementación de los
servicios y seguridades necesarias para el correcto funcionamiento de la
plataforma.
Claro
Brindar una solución de alta disponibilidad a la plataforma piloto LMS, con el
objetivo de garantizar el correcto funcionamiento y desempeño para afrontar la
masiva cantidad de estudiantes en los Cursos de Nivelación de la institución de
manera concurrente.
Evidente
La topología de red implementada en el proyecto se enfoca en brindar una
tolerancia a fallos y minimizar los mismo garantizando un servicio transparente a
los usuarios los cuales no serán afectados y podrán continuar el aprendizaje en
los cursos sin afectaciones o contratiempos.
Concreto
Brindar una documentación y una serie de manuales para la una correcta
configuración de servicios necesarios para él un sistema piloto LMS basado en
Moodle que permita albergar una gran cantidad de usuarios concurrentes
garantizado un buen desempeño.
Relevante
Ofrecer a los estudiantes de Nivelación que aspiran a estudiar una carrera de
tercer nivel educación en línea mediante el uso de aulas virtuales minimizando
inconvenientes que no permitan al estudiante acceso al estudio ya se por motivos
laborales, económicos o familiares.
Factible
La implementación de la topología es factible debido a que existe una amplia
variedad de servicios web en la nube permiten el desarrollo de una plataforma e-
learning basado en el LMS de código abierto Moodle, el cual es apoyado por una
8
amplia comunidad activa de usuarios que crean y desarrollan extensiones, y del
cual se disponen de manuales de configuración.
Variables
Variable Independiente
Diseño y configuración de una topología de red de alta disponibilidad,
balanceando la carga de usuarios en distintos servidores.
Variable Dependiente
La variable dependiente corresponde a la configuración de una plataforma que
soporte y tolere la gran cantidad de peticiones concurrentes de estudiantes de la
Unidad de Nivelación de la Universidad de Guayaquil.
OBJETIVOS
Objetivo general
Desarrollar y aplicar una topología de alta disponibilidad para la red del Sistema
piloto LMS Moodle en la Unidad de Admisión y Nivelación de la Universidad de
Guayaquil, estableciendo las seguridades necesarias para garantizar la integridad
de la información del sistema, y evaluando el rendimiento de este para establecer
su funcionamiento.
Objetivos específicos
• Implementar un modelo de alta disponibilidad en la topología de la red del
Sistema piloto LMS Moodle en la Unidad de Admisión y Nivelación de la
Universidad de Guayaquil.
• Determinar los softwares más adecuados para construir la infraestructura
de la plataforma
• Establecer las características necesarias de los equipos de la
infraestructura en un ambiente de computación en la nube.
9
ALCANCE DEL PROBLEMA
Para la Universidad de Guayaquil, una de las universidades más grandes e
importantes del Ecuador, es importante brindar a los aspirantes al curso de
nivelación una experiencia de estudio virtual de calidad, logrando de esta manera
la posibilidad de ofrecer acceso a la educación superior a un mayor número de
estudiantes y que ellos obtengan mayores beneficios y oportunidades. Se ha
propuesto el desarrollo de una plataforma de aulas virtuales de la Unidad de
Nivelación y Admisión, para de esta forma renovar la modalidad de estudio
presencial que actualmente se utiliza.
La implementación de la plataforma estará basada en uno de los sistemas e-
learning más utilizados en distintas universidades a nivel mundial, este tiene por
nombre “Moodle”, la cual es una herramienta de código libre altamente
configurable y personalizable, se encuentra respaldada por una gran comunidad
de desarrolladores activos involucrados en el desarrollo de esta herramienta y de
distintas extensiones las cuales amplían la calidad de uso.
Se utilizará una infraestructura de servidores en la nube para el desarrollo de la
plataforma de aulas virtuales, la cual soluciona inconvenientes relacionados con
los altos costos de equipos utilizados como servidores y todos los gastos eléctricos
y de internet que implican en su utilización. Otro factor para utilizar uno de estos
proveedores es debido a que se requiere que los equipos involucrados en la
plataforma tengan acceso al sitio web a cualquier hora del día sin depender de la
disponibilidad de otros.
El esquema topológico propuesto está conformado por un servidor que se
encargara del balanceo de carga 2 servidores que alojarán el sitio web de la
plataforma. El clúster de servidores web garantizará una alta fiabilidad del servicio
a los estudiantes gracias a que, durante los periodos de alta concurrencia de
usuarios, los mismos serán repartidos entre distintos servidores. El ultimo servidor
de la infraestructura será una base de datos que será accedida por los distintos
servidores web a la vez, y debido a la gran cantidad de estudiantes que posea la
Unidad de Nivelación de la institución configuro en un servidor distinto y que sirva
a las peticiones de los sitios web.
10
La infraestructura tecnológica planteada consta de un diseño topología de red de
alta disponibilidad, la cual será posible gracias a la segmentación de los servicios
requeridos por la plataforma en distintos servidores. Para mejorar el rendimiento
y la experiencia de los otros equipos de estudiantes involucrados en la plataforma
se utilizará un nombre de dominio “.tk” de nivel superior geográfico (ccTLD) del
territorio dependiente Tokelau de Nueva Zelanda, los cuales son de modalidad
gratuita. Se optó por esta clase de dominios al ser un proyecto en ambiente de
desarrollo.
La plataforma web debe disponer de todas las medidas de seguridad
recomendadas en la actualidad por lo que se utiliza una versión actualizada y
estable de la herramienta Moodle, la revisión de puertos abiertos e innecesarios
en los servidores de prueba, el uso de ip privadas entre servidores del lado del
back-end para asegurar la integridad de la información y los datos del sitio web.
Para agregar mayor robusteza a la conexión con los servidores remotos e
incrementar la seguridad actual que poseen, se debe recurrir al uso de dos tipos
de claves ssh, las de clase privadas y las públicas, junto con la especificación de
un puerto único y no el que viene por defecto o predeterminado para acceder
remotamente a los servidores virtuales de la plataforma. Todos los servidores
serán configurados con políticas de seguridad en sus firewalls y para evitar acceso
no autorizados y ataques DDoS a la plataforma.
Se espera que la solución a implementarse sea escalable en el tiempo durante los
próximos años y garantizar una correcta configuración de los servidores utilizados
en la topología de red, la mayor ventaja de una red escalable es que no se necesita
realizar cambios y actualizaciones al diseño para que tolere una mayor cantidad
de usuarios, por lo cual el diseño topológico se mantiene y por ende las
configuraciones de los equipos. Por otra parte, la principal limitante es el costo de
implantación de la arquitectura del Clúster, ya que se necesitan múltiples
servidores conectados en red, lo cual implica altos costos.
11
JUSTIFICACIÓN E IMPORTANCIA
La forma tradicional de adquirir y usar servidores ha sido la de comprar un
equipo físico, los precios de estos equipos son muy altos y requieren
mantenimientos que se traducen en otros costos varios, algunos de estos son las
reparaciones de hardware, reguladores de voltaje, respaldos de energía eléctrica,
respaldos de información y el fin de la vida útil que nos a obliga a renovar un
servidor para que este no se vuelva lento.
El nuevo método de empleo de servidores consiste en contratar un servicio en la
nube, los proveedores de este servicio proporcionan un servidor en forma de
software, de esta forma, los dueños de un servidor en una plataforma de servicios
de computación en la nube solo deben preocuparse por la configuración y
mantenimiento de sus servidores a nivel de software. Para la Unidad de Nivelación
es importante brindar a la comunidad universitaria una experiencia cómoda,
eficiente y tolerante a fallos en el uso de los servicios de la plataforma piloto
propuesta, de esta forma, la mejor opción para implementarla es un servicio en la
nube debido a los múltiples beneficios que este otorga.
Ya que el costo del mantenimiento a nivel de hardware corre por cuenta de los
administradores del servicio se minimizan varios costos de operación, por ejemplo,
ya no se requiere personal especializado para monitorear los servidores, estos no
consumen electricidad de forma local y tampoco hay que reemplazar partes de
hardware en caso de que estas fallen. Hacer uso del método tradicional daría
como resultado un costo de implementación, operación y mantenimiento mucho
más elevado que el propuesto.
METODOLOGÍA DEL PROYECTO
Para la elaboración del proyecto de titulación se utilizó metodología SCRUM,
la cual es un método de gestión de proyectos que permite un trabajo ágil y eficaz
en un ambiente colaborativo incrementado la productividad por parte de todos los
integrantes del equipo y permitiendo obtener los resultados planteados y
propuesto por los mismos integrantes del grupo en corto tiempo.
12
CAPÍTULO II
MARCO TEÓRICO
ANTECEDENTES DEL ESTUDIO
El Gobierno Ecuatoriano ha impulsado una campaña para que los cursos en
aulas virtuales sean posibles en las distintas Universidades del país, la Senescyt
ahora oferta cupos para el estudio no presencial en distintas carreras de algunas
Universidades, mismas que han empezado la implementación de sus propias
plataformas de aulas virtuales para impartir clases a estudiantes, que por
diferentes motivos, como la distancia y el costo de movilización, no pueden realizar
sus estudios de manera presencial en aulas de clases.
La Universidad Estatal de Milagro (UEMI) es una de las universidades del Ecuador
que más cupos oferta en sus clases semipresenciales en el ambiente virtual, esto
permite que los estudiantes desde la comodidad de sus hogares puedan acceder
a los contenidos de estudios, clases de los profesores y tareas, todo desde un
dispositivo conectado a internet.
Pero la UEMI no es la única universidad que brinda acceso a la educación superior
de manera virtual, otras universidades como la Universidad de las Fuerzas
Armadas (ESPE) y la Universidad Central del Ecuador, ambas de Quito, de la
misma manera brindan cupos para los estudiantes que rinden el examen Ser
Bachiller y desean obtener un cupo para una de sus carreras universitarias.
FUNDAMENTACIÓN TEÓRICA
Plataformas E-learning o LMS
A lo largo de los años, junto con el avance de la tecnología, los procesos de
enseñanza y aprendizaje han ido evolucionando, esto puede evidenciarse en el
surgimiento de nuevos entornos de aprendizajes que dieron lugar a nuevas
oportunidades. En años anteriores la educación a distancia era vista como algo
extraño, pues se creía que carecía de veracidad, sin embargo, la tecnología ha
permitido que este tipo de educación adquiera cada vez más valor, esto se debe
13
al surgimiento de plataformas de “Sistemas de Gestión de Aprendizajes” también
conocidas como “LMS” (Learning Management System) por sus siglas en inglés.
Estas plataformas son espacios virtuales que ayudan a las empresas,
organizaciones e instituciones educativas a instituir, monitorear y administrar sus
propios bosquejos de e-learning, poseen características y beneficios que pueden
ser aprovechados en la era moderna de forma eficiente.
“Los beneficios del e-learning son:
• Reducción de costos permitiendo disminuir y/o eliminar los gastos de
traslado, alojamiento, material didáctico, etc.
• Rapidez y agilidad mediante el uso de Internet.
• Acceso en tiempo real a los contenidos educativos desde cualquier parte
del mundo.
• Flexibilidad de la agenda al no requerir que un grupo de personas
coincidan en tiempo y espacio.” (González Célleri, 2015)
Actualmente existen una gran variedad de plataformas E-Learning, una parte de
estas son comerciales (de paga) y otras son de código libre (gratuitas), estas se
diferencian por sus características, mantenimiento y capacidad, entre otras cosas.
Para implementar una de estas plataformas es necesario contemplar un
presupuesto con factores como el costo de instalación, licencias, tarifas que
pudieran generarse por el número de usuarios o cursos, el mantenimiento
continuo y otros costos que pueden incrementarse como resultado de los
requerimientos necesarios para que el sistema pueda funcionar correctamente.
Con respecto a las soluciones de LMS gratuitas o de código abierto tenemos las
siguientes opciones:
• Coggno
• CourseSites (Blackboard for Business)
• iTunes U
• LatitudeLearning
• Myicourse
• Schoology
14
• Atutor
• Dokeos
• Forma LMS
• Moodle
• Sakai CLE
Con respecto a las soluciones LMS comerciales, estas se dividen en 2 grupos
dependiendo de la forma de pago:
• Plataformas e-learning de pago por uso (en la nube): los costos se generan
con respecto al uso que se le da a la plataforma como el número de
usuarios activos, número de cursos y módulos, etc.…
• Plataformas e-learning de pago por licencia: se paga por el tiempo que se
vaya a hacer uso del software, puede ser un pago mensual o anual
dependiendo de las opciones que disponga la plataforma.
Las plataformas e-learning comerciales más conocidas a nivel mundial son las
siguientes:
• BlackBoard
• eDucativa
• FirstClass
• Saba
• NEO LMS
Cloud Computing
Para una mejor experiencia en un ambiente de desarrollo de proyectos
colaborativos se aconseja el uso los servicios de Cloud Computing en lugar de
virtualización local de servidores debido a las ventajas que dichos servicios
ofrecen en comparación con la elaboración del proyecto en un ambiente con
equipos físicos. En la implementación de la plataforma de aulas virtuales para la
Unidad de Nivelación de la Universidad de Guayaquil, se planea la utilización de
los servicios que brindan empresas dedicadas al Cloud Computing.
15
Gráfico 1. Logotipo de Amazon Web Services
Elaboración: Amazon Web Services
Fuente: aws.amazon.com
Lobato (2019) señala que Netflix una de las plataformas de streaming más popular
hoy en día dejó de utilizar sus propios servidores en Estados Unidos, y fue
migrando paulatinamente a los servidores en la nube de Amazon Web Services.
Grandes empresas migran sus centros de datos a la nube debido a que sus
infraestructuras no les permiten seguir escalando a medida que incrementan sus
números de usuarios, y los servicios de computación en la nube tienen como
principales ventajas la fácil escalabilidad en infraestructuras, e inclusive ofrecer
servidores localizados en distintos países para una mejor rendimiento a los
usuarios locales, todo estos beneficios no serían posibles si se tuviera toda la
infraestructura de manera local.
Los líderes indiscutibles que dominan el mercado mundial hoy en día en lo
referente a todo el paradigma de Cloud Computing son empresas como Google
con Google Cloud, Amazon con AWS (Amazon Web Services) y Microsoft el cual
nos ofrece Azure, todas estas empresas tienen soluciones para cualquier tipo de
usuario, desde estudiantes que desean desarrollar su aplicaciones en la nube,
medianas empresas que migran su pequeños centros de datos a servidores en
internet, hasta grandes empresas que desean minimizar costos en su
infraestructura TI.
“Aunque el cliente paga por el uso de los servicios que ofrecen los proveedores,
podemos convenir en que también gana dinero al no tener que realizar grandes
inversiones iniciales en software y hardware, y reducir a medio plazo el coste
de propiedad (Total Cost of Ownership o TCO) de la infraestructura tecnológica
que utiliza.” (Beltrán Pardo & Sevillano Jaén, 2013)
16
Los usuarios pueden acceder a precios que se ajustan las soluciones que se
deseen implementar, desde equipos con componentes fijos los cuales son
ofrecidos en paquetes de diferentes precios dependiendo de las características
que se requieran, hasta grandes soluciones que utilizan machine learning para
predecir e inclusive cambiar un componente cuando este se encuentre defectuoso
o se llegara a dañar.
La utilización de estas soluciones es sencilla, se debe seleccionar las
características que requieran para los servidores propuestos en la topología, a
continuación, el sistema operativo que será instalado en él servidor, luego la
ubicación más cercana al país de origen, como también el nombre para identificar
la instancia, una vez finalizado el proceso de configuración se le otorga al cliente
un usuario y contraseña para acceder remotamente al equipo mediante el uso de
una ip pública.
Digital Ocean es un proveedor estadounidense de VPS (Virtual Private Server),
este ha tenido un incremento en su popularidad debido a una gran campaña de
marketing y precios que se ajustan al presupuesto de proyectos de desarrollo, sin
embargo, sus soluciones son lo suficientemente robustas para albergar servidores
de producción de medianas y grandes startups, las cuales demandan de
escalabilidad para poder brindar a sus usuarios una experiencia de calidad.
Gráfico 2. Logotipo de Digital Ocean
Elaboración: Digital Ocean
Fuente: www.digitalocean.com
El proveedor ha tenido un gran crecimiento en la actualidad en el ámbito del
desarrollo de aplicaciones web de mejor escala, sin embargo, no solo se limita a
brindar soluciones a pequeñas aplicaciones, sino que tiene el potencial para ser
utilizado en ambientes más robustos y demandaste.
17
Ofrece desplegar fácilmente aplicaciones sin demasiada complejidad, basta con
escoger en pocos clics el tamaño de discos, especificaciones, ubicación, nombres
para tener un servidor virtual funcional y configurado por defecto. Un amplio
catálogo de especificaciones para distintos proyectos de diferentes tamaños, una
tienda amplia con Docker creados y con servicios configurados para evitar la
complejidad de configuraciones iniciales. Un punto desfavorable es que no posee
servidores en América del Sur, pese a esto las conexiones con los centros de
datos en Estados Unidos son rápidas.
Cuadro 3. Características de 2 servicios de Cloud Computing
Autor: Daniel Orellana
Fuente: Datos de la investigación
Como se puede observar en el cuadro comparativos de precios el costo de VPS
es muy similar con prestaciones casi similares. Pero se optó por utilizar Digital
Ocean debido a poseer una interfaz sencilla y más amigable que su contraparte
brindada por Amazon.
Arquitectura de alta disponibilidad para servidores
Las arquitecturas de alta disponibilidad han adquirido un valor indispensable
para el desarrollo de la web, estas sirven para mantener un sistema en
funcionamiento y sus archivos accesibles en caso de ocurriera problemas con la
infraestructura de una plataforma web, esto involucra una operación sin
interrupciones por medio de la existencia de una o varias conexiones alternativas.
Características Digital Ocean Lightsail (Amazon)
Memoria 2 GB 2 GB
Procesador 1 núcleo 1 núcleo
Disco Duro SSD 50 GB 60 GB
Transferencia 2 TB 3 TB
Costo $ 10 $ 10
18
Este tipo de arquitectura provee un diseño de red redundante, para de esta
manera anticipar fallas y reducir el tiempo de inactividad. El tiempo de inactividad
de una plataforma o sitio web puede traducirse en las perdidas de dinero para las
empresas o instituciones que trabajan con ellas.
Existen dos tipos de tiempo de inactividad:
• Programados: son aquellas interrupciones inevitables que son necesarias
para realizar mantenimientos preventivos a un sistema, estos pueden ser
tanto de hardware como de software.
• No programados: estos son el resultado de un evento imprevisto, como
una falla de software o hardware. No son deseados y tratan de ser evitados
a toda costa, por lo tanto, no se toman en cuenta para realizar cálculos de
rendimiento de un sistema informático.
Eventualmente, es normal que algún evento cause una interrupción en un sistema,
el objetivo de la alta disponibilidad es que este vuelva a funcionar lo más rápido
posible, aunque bien la intervención huma podrá solucionar el inconveniente, la
automatización hace posible que la gran mayoría de problemas sean resueltos de
forma mucho más rápida, siempre que esto se pueda lograr.
Para lograr este tipo de arquitecturas son necesarias ciertas prácticas que
permitan distribuir la carga de trabajo, minimizar tiempo de esperas optimizando
recursos, entre otras cosas:
• Múltiples servidores de aplicaciones:
Cuando un servidor se sobrecarga puede presentar fallas o incluso bloquearse,
esto provoca que el servidor deba reiniciarse y conduce a un tiempo de inactividad.
Tener múltiples servidores permitirá que una aplicación funcione de manera
eficiente y genere la sensación de estar siempre operativo, aunque uno o varios
servidores hayan dejado de funcionar.
• Escalar los procesos:
Las bases de datos y las aplicaciones deben manejarse en diferentes servidores
físicos, esto debido a que diferentes tareas requieren diferentes recursos.
19
La escalabilidad indica que un sistema debe estar listo para crecer sin limitaciones,
un servidor de aplicaciones con miles de peticiones por segundos puede necesitar
escalar su procesador y su memoria RAM, por otra parte, un servidor de base de
datos con miles de registros puede necesitar escalar principalmente su disco duro,
de allí que cada servidor es una pieza esencial en el rompecabezas final.
• Extender ubicación geográfica
“La recuperación ante desastres (DR) implica un conjunto de políticas,
herramientas y procedimientos para devolver un sistema, una aplicación o un
centro de datos completo a pleno funcionamiento después de una interrupción
catastrófica. Incluye procedimientos para copiar y almacenar los datos
esenciales de un sistema instalado en una ubicación segura, y para recuperar
esos datos para restaurar la normalidad de la operación.” (Vadivelu &
Patrocinio, 2019)
Para los gigantescos sistemas web, es necesario que los servidores de red
centrales se encuentren ubicados en distintas zonas geográficas, contar con una
red de servidores de respaldo ubicados en una zona geográfica distinta pueden
significar la diferencia entre volver a operar en unos cuantos minutos o en varios
días.
• Sistema de respaldo en línea
Mantener copias de seguridad en la nube siempre es una buena opción como
alternativa a extender la ubicación geográfica o como un agregado, estas copias
sirven para proteger información esencial de eventos como desastres naturales
corrupción de archivos y sabotaje interno por parte de malos empleados.
• Virtualización
La virtualización nos permite que varias piezas de hardware o software funcionen
como si fuesen una sola, de esta forma se pueden realizar mantenimientos
programados o recuperación de errores de forma más eficiente.
20
Balanceo de carga
“Para evitar este problema existen los sistemas de balanceo de carga,
encargados de repartir el tráfico de datos para impedir que el servidor se
colapse. Este servicio puede ser brindado tanto con un enrutador como con un
ordenador con dos placas de red y un software específico.” (Carvajal
Palomares, 2016)
Los balanceadores de carga son un tipo de arquitectura que funcionan
distribuyendo el tráfico entrante de forma uniforme entre un grupo de servidores,
también es posible administrar esta distribución para enviar más tráfico a los
servidores que nosotros elijamos. Distribuir estas cargas de trabajo nos ofrece la
ventaja de escalar los recursos de los servidores, la disponibilidad de la aplicación
y la gestión del sistema.
“Estos son los conceptos básicos de cómo funciona un equilibrador de carga:
• Un cliente, como una aplicación o un navegador, recibe una solicitud e intenta
conectarse con un servidor.
• Un equilibrador de carga recibe la solicitud y, según los patrones
preestablecidos del algoritmo, dirige la solicitud a uno de los servidores de un
grupo de servidores (o granja).
• El servidor recibe la solicitud de conexión y responde al cliente a través del
equilibrador de carga.
• El equilibrador de carga recibe la respuesta y hace coincidir la IP del cliente
con la del servidor seleccionado. Luego reenvía el paquete con la respuesta.
• Cuando corresponde, el equilibrador de carga maneja la descarga SSL, que
es el proceso de descifrar datos utilizando el protocolo de encriptación
Security Socket Layer, para que los servidores no tengan que hacerlo.
• El proceso se repite hasta que finaliza la sesión.” (International Business
Machines Corporation, 2019)
Aunque existen varios conceptos más aplicados, esta es la teoría fundamental de
su funcionamiento.
21
“La ventaja de usar un balanceador de carga en comparación con el uso de
round robin DNS, es que este se encarga de la carga de los nodos del servidor
web, a la vez que dirige las peticiones a la estación con menos carga, y se
encarga de las conexiones y/o sesiones.” (Gisbert Vercher, 2015)
En una topología de red redundante de una plataforma se requiere de un
balanceador de carga para los distintos nodos que tendrá el clúster de servidores
web. El balanceo de carga utilizado a nivel de DNS no suele ser el más eficiente,
esto se debe a que para su correcto funcionamiento es necesario tener un
conjunto de direcciones IP.
Generalmente, estos balanceadores se ubican detrás de un firewall y antes de los
servidores de fondo. Existen muchas formas en la que un balanceador de carga
elige cuál de los servidores de fondo será el encargado de atender las solicitudes
entrantes, algunos de los algoritmos servidores incluyen:
• Round Robin:
Cada conexión se pasa al siguiente servidor. “Round Robin es sin dudar un de los
algoritmos más utilizados. Es fácil de implementar y de entender. Digamos que tú
tienes dos servidores esperando por peticiones de un balanceador. Cuando llegue
la primera petición el balanceador de carga enviara la petición al primer servidor.
Luego la segunda petición será enviada al segundo servidor.” (Villanueva, 2015)
Su funcionamiento es sencillo cada nueva conexión que se genere será distribuida
entre la cantidad de servidores que se tenga en el clúster. Es uno de los más
utilizados, pero no es la solución perfecta para todo tipo de soluciones. Por
ejemplo, si se cuenta con servidores de distintas especificaciones de hardware, el
balanceador puede llegar a saturar un servidor teniendo otro con mayores
recueros disponibles. El problema anterior se puede solucionar utilizando un
sistema de pesos que se asignan a los servidores dependiendo de la capacidad
de este, para de esa manera poder soportar la cantidad de peticiones adecuadas.
• Least connections:
El servidor que actualmente tiene la menor cantidad de conexiones de red.
22
“Puede haber instancias cuando, inclusive si dos servidores en un clúster tienen
las mismas configuraciones, uno de los servidores puede estar saturándose
considerablemente más rápido que otros. Una de las posibles razones es
debido a que los conectados en el servidor 2 se quedan más tiempo que los
que están conectados al servidor 1.” (Villanueva, 2015)
Por lo que el uso del algoritmo de menos conexiones es el más recomendable si
el tipo de aplicación o servicio que se brinde genere que los usuarios pasen mucho
tipo conectados a un servidor. Cada vez que se genere una nueva conexión el
balanceador enviara la conexión al servidor que tenga menos conexiones en ese
momento.
• Fastest response:
Se supervisa la respuesta de cada aplicación de servidor y se selecciona el
servidor de fondo que responde más rápido.
• Server health:
El estado del servidor se supervisa con varias técnicas y se selecciona el servidor
más saludable.
• Server loading:
La carga del servidor se supervisa con varias técnicas y se selecciona el servidor
menos cargado.
• Traffic Steering:
Las políticas de Dirección de tráfico y Control de red se utilizan para calcular y
seleccionar el servidor de fondo.
• Custom Scripting:
Los productos SLB avanzados tienen tecnologías para analizar paquetes y
reenviar productos basados en la lógica o los scripts proporcionados por el
cliente.”
23
Para mantener el control de las sesiones de los usuario es necesario el uso de
“sticky sessions” o “sesiones pegajosas” en la configuración del balanceador de
carga. Mantener las sesiones en una tabla del balanceador permite que cuando
un usuario inicie sesión en la plataforma web y este se encuentre en un servidor,
al momento de volver a conectarse la plataforma no sea redireccionado a otro
servidor. Si se llegara a redireccionar al usuario a otro servidor del clúster, su inicio
de sesión y todos los progresos realizados en la plataforma se perderian.
Otra forma de mantener las sesiones de los usuarios entre todos los nodos del
clúster es mediante el uso compartido de la carpeta Moodle data, la cual almacena
cierta información de cache del sitio web y las sesiones de los usuarios iniciados
en el servidor. Al usar un solo directorio para almacenar la toda la información de
la plataforma, los diferentes nodos pueden acceder a la información compartida y
estar en diferentes servidores con la misma información.
Servidores de aplicaciones
“Su función es gestionar la seguridad, configuración y entrega de las
aplicaciones de usuario instaladas en el servidor. Es el rol principal del sistema
y por lo tanto normalmente es el que tiene mayor número de unidades. Al
conjunto de máquinas que desempeñan esta función se le denomina granja de
servidores.” (Marañón Martín, 2013)
Los servidores de aplicaciones forman parte de una aplicación de 3 niveles, esta
consta de un servidor con interfaz de usuario (GUI), un servidor de aplicaciones
que almacena y ejecuta programas (lógica de negocios) y un servidor de base de
datos que contiene la información del sistema.
Actualmente existen varios tipos de servidores de aplicaciones, estos se
diferencian por el tipo de tecnología en el que están basados. El tipo más utilizados
son aquellos que implementan arquitectura “J2EE 7” hechos con tecnología Java,
esto se debe a que se garantiza una multiplataformidad.
Por ejemplo:
• GlassFish
24
• Geronimo
• IBM WebSphere
• Jetty
• JOnAS
• JBoss
• Oracle application server
Lenguajes de programación web
Este tipo de programación es usada para desarrollar aplicaciones que puedan
ejecutarse a través del internet, se divide en varios aspectos como: programación
de video juegos, programación de bases de datos, programación de aplicaciones
móviles, etc. Los principales lenguajes de programación web son:
• Python: fue creado en 1989. Con el tiempo se ha convertido en un lenguaje
muy popular y la comunidad de usuarios de diferentes idiomas es muy
grande. El aprendizaje automático, la inteligencia artificial (IA), Big Data y
la robótica dependen en gran medida de Python.
• Java: fue creado en 1991 y hoy en día es el lenguaje web más popular del
mundo y uno de los mejor pagados. Es utilizado por 9 millones de
desarrolladores y se ejecuta en más de 7 mil millones de dispositivos en
todo el mundo.
• Javascript: Es el número 1 en GitHub. Gran cantidad de los sitios web
modernos trabajan con JavaScript.
• C ++: Con una historia de más de 30 años, es un lenguaje de programación
muy conocido entre los desarrolladores del mundo.
• C #: Este se basa en C y C ++, pero es más cómodo de usar. Es un
lenguaje de programación orientado a objetos desarrollado por Microsoft,
trabaja en la plataforma .NET, que se utiliza para crear aplicaciones y
juegos en Windows.
Granjas de servidores
“Una granja de servidores es un grupo de servidores idénticos a los que se
accede a través de la tecnología de equilibrio de carga de hardware o software.
25
Todos los servidores están activos, brindan el mismo conjunto de servicios y son
efectivamente intercambiables. Un equilibrador de carga distribuye las solicitudes
de clientes entrantes a través de los servidores del grupo.” (International Business
Machines Corporation, 2016)
En general, todos los servidores que componen una granja son idénticos entre sí,
de esta forma se permite una mejor disponibilidad y escalabilidad. Con la
presencia de un balanceador de carga, cuando uno de los servidores falla, este
se encarga de redirigir las solicitudes del usuario a otro servidor disponible.
Bases de datos
“Una base de datos es una colección organizada de información estructurada,
o datos, típicamente almacenados electrónicamente en un sistema informático.
Una base de datos generalmente está controlada por un sistema de gestión de
bases de datos (DBMS). Juntos, los datos y el DBMS, junto con las aplicaciones
que están asociadas con ellos, se denominan un sistema de base de datos, a
menudo acortado a solo una base de datos.” (Oracle Corporation, 2019)
La información dentro de una base de datos es almacenada en forma de filas y
columnas en una serie de temas, de esta manera el procesamiento de y la
consulta de información se torna más eficiente. La información de una base de
datos se puede acceder, actualizar, modificar, controlar, gestionar y organiza.
Para realizar estas acciones, por lo general se hace uso de un lenguaje de
consultas llamado SQL.
Administración de servidores
Los proveedores de servidores en la actualidad ofrecen una amplia variedad
de sistemas operativos y distintas prestaciones que pueden o no estar incluidas
cuando se alquila un VPS. Los sistemas operativos que suelen utilizarse para
equipos de servidores son las versiones de Windows Servers y cualquier
distribución de Linux.
26
Para el proyecto se decidió utilizar la versión de CentOS 6, la cual es una
distribución de Red Hat, muy diferente a otras distribuciones muy conocidas como
Ubuntu o Debian.
“Community Enterprise Operating System, comúnmente conocido como
CentOS, es rápido, estable y una distribución Linux empresarial de código libre
usado en laptops, computadoras de escritorio, y servidores. Es derivado del
código fuente de Red Hat Enterprise Linux (RHEL), el cual es desarrollado y
mantenido por la comunidad CentOS.” (Kalkhanda, 2018)
El sistema operativo CentOS es unas de las distribuciones más robustas que
existen para servidores, múltiples empresas y compañías lo utilizan a nivel
mundial. Existe una amplia variedad de tutoriales y documentos sobre la mayoría
de las configuraciones necesarias para ejecutar correctamente varios servicios en
un equipo utilizando CentOS y las posibles soluciones si llegara a presentar algún
inconveniente o error en el servidor.
CentOS 6 es la distribución más estable de Red Hat para servidores y por el mismo
motivo es que se lo escogió para ser instalado en todas las instancias que se
requieren de la topología de red de la plataforma. Muy seguro contra incidentes y
ataques de usuarios mal intencionados y dicha versión no es propensa a sufrir de
inconvenientes o bugs causados por los servicios instalados.
Seguridad en servidores
Cuando el proveedor de computación en la nube termina todas las
configuraciones necesarias solicitadas para el servidor virtual, se envía por correo
un nombre de usuario y una contraseña temporal que debe ser cambiada en el
primer inicio de sesión del servidor por seguridad. Un servidor virtual alquilado en
la nube es un equipo al cual uno no tiene acceso físico ni tampoco cuenta con un
monitor, teclado, o ratón. La única forma en la que el usuario puede acceder a las
configuraciones del servidor es por medio de conexiones SSH para tener una
terminal del equipo y poder realizar todas las configuraciones por medio de
comandos.
27
La mayoría de las versiones de servidores de las distintas distribuciones de Linux
que existen en la actualidad no poseen una interfaz gráfica o GUI como se le
conoce, no es necesario debido a que no se interactúa con el servidor de manera
frecuente, salvo por los casos cuando se deben realizar las configuraciones
iniciales, o cuando se debe solventar cualquier inconveniente que el servidor
tenga.
“Tradicionalmente, el acceso administrativo remoto de los routers se
configuraba mediante Telnet en el puerto TCP 23. Sin embargo, Telnet se
desarrolló en un tiempo en el que la seguridad no era un problema. Por este
motivo, todo el tráfico de Telnet se envía en forma de texto sin cifrar.” (Valdivia
Miranda, 2015)
Debido a que se desaconseja el uso de Telnet en los servidores, el puerto TCP 23
que por defecto se utiliza para este servicio debe estar bloqueado y el servicio de
telnet debe estar deshabilitado del servidor. Todos los equipos permiten crear una
conexión SSH a otro equipo, basta con usar el comando ssh y enviar como
parámetro un usuario seguido de un símbolo arroba y la ip de la maquina remota
que se desea administrar.
“Generalmente se describe a un sistema en el que varios procesos se
comunican entre ellos con la metáfora cliente/servidor. El servidor es el
programa que toma y ejecuta los pedidos que provienen de un cliente. Es el
cliente el que controla la operación, el servidor no tiene iniciativa propia.”
(Hertzong & Mas, 2015)
En la actualidad ninguna persona utiliza telnet para acceder a sus equipos de
manera remota, la mayoría acceden por conexión SSH como sus siglas en ingles
lo dice Secure Shell o interprete de ordenes seguras en español. Las conexiones
SSH brindan encriptación en el tráfico que se envía entre el cliente y el servidor.
“Cada vez que alguien inicia sesión a través de SSH, el servidor pide una
contraseña para autenticar al usuario. Esto puede ser problemático si desea
automatizar la conexión o si utiliza una herramienta que necesita conexiones
frecuentes sobre SSH, es por esto que SSH ofrece un sistema de autenticación
basada en llaves.” (Hertzong & Mas, 2016)
28
Los servidores deben tener deshabilitado el inicio remoto por medio del usuario
root, esta es una brecha de seguridad que debe ser controlada para agregarle
mayor robustez a la seguridad de nuestros servidores. Para tener una mejor
experiencia con las conexiones remotas a los servidores y no tener que ingresar
la contraseña cada vez que se inicia sesión, es aconsejable el uso de llaves
privadas y públicas entre nuestros servidores y los equipos que utilizamos de
manera local para acceder a dichos servidores.
Basta con generar las claves en el equipo que utiliza el usuario para acceder a los
servidores y copiar la clave publica en los servidores, para que los servidores
puedan autenticar la sesión al estar utilizando las llaves privadas y públicas
correctas.
Al emplear un cortafuegos todo el tráfico entrante o saliente a través de la
conexión corporativa debe pasar por una única máquina, por lo que el
administrador puede permitir o denegar el acceso a Internet y a los servicios de
la empresa de manera selectiva. Se consigue, de este modo, que todo el tráfico
de la organización pueda ser filtrado por esta máquina, obligando a los
usuarios, tanto internos como externos, a cumplir las restricciones que se
hayan impuesto. (Vieites, 2014)
Una de las configuraciones más necesarias para servidores es el uso de Firewalls
o cortafuegos ya sea en el equipo mismo como en la red que se está
administrando o configurando. Los cortafuegos no deniegan el acceso a la red por
parte de un equipo, más vienen es un conjunto de reglas y definidas por los
administradores de los servidores para que sean verificadas en la entrada como
en la salida a la red de un equipo y dependiendo de la configuración que este,
dicho firewall se encarga de bloquear o permitir el tráfico de datos.
29
Gráfico 3. Implementación de la Seguridad Perimetral mediante un cortafuegos
Elaboración: Logan Vadivelu & Eduardo Patrocinio
Fuente: Alta disponibilidad y recuperación ante desastres para su aplicación local
MOODLE
“Moodle es una plataforma de aprendizaje diseñada para proporcionar a los
educadores, administradores y alumnos un único sistema robusto, seguro e
integrado para crear entornos de aprendizaje personalizados. Puede descargar
el software en su propio servidor web o pedirle ayuda a uno de nuestros socios
expertos de Moodle.” ( Moodle Partners, 2019)
Gráfico 4. Logotipo de Moodle
Elaboración: Moodle Partners
Fuente: moodle.org
Esta plataforma fue creada por Martin Dougiamas, este nació en Australia en la
década de los 70, la primera versión de Moodle se lanzó oficinalmente en el año
2002 con el propósito de proveer aprendizaje en línea en un sistema
personalizable que permita la exploración, interacción y colaboración.
Actualmente, Moodle no solo es utilizado por la comunidad educativa, también es
usado por organizaciones diversas como empresas, organizaciones y hospitales.
Entre los usos más comunes tenemos:
30
• Cursos en línea
• Capacitación y gestión basada en competencias
• Entrenamientos de seguridad laboral
• Lanzamientos de productos y servicios
HA Proxy
HAProxy es una solución gratuita, muy rápida y confiable que ofrece alta
disponibilidad, equilibrio de carga y proxy para aplicaciones basadas en TCP y
HTTP. Es especialmente adecuado para sitios web de mucho tráfico y alimenta
a muchos de los más visitados del mundo. Con los años se ha convertido en el
equilibrador de carga de código abierto estándar de facto, ahora se distribuye
con la mayoría de las distribuciones de Linux convencionales y, a menudo, se
implementa de forma predeterminada en plataformas en la nube. Como no se
anuncia solo, solo sabemos que se usa cuando los administradores lo informan.
(HAProxy Community Edition, 2008)
HAProxy o “Proxy de alta disponibilidad” fue desarrollado por HAProxy
Technologies LLC, este es un proxy de balanceador de carga y se puede utilizar
para distribuir cargas de trabajo en computadoras, CPU y unidades en disco
colocados en red. Viene incluido en muchas distribuciones de Linux y es uno de
los estándares líderes en balanceadores.
Gráfico 5. Funcionamiento de HAProxy
Elaboración: HAProxy Community Edición
Fuente: HAProxy El equilibrador de carga TCP / HTTP confiable y de alto
rendimiento
31
Para soluciones con mucha más concurrencia de usuarios es aconsejable el uso
un clúster de balanceadores de carga, los nodos del clúster comparten
especificaciones y configuraciones similares, uno de ellos estará activo mientras
el otro está en estado inactivo en espera de funcionar si el nodo principal falla o
sufre algún problema.
El uso de balanceadores de carga es una solución para evitar el zero-downtime el
cual garantiza la total disponibilidad sin caídas o fallas de un sitio web.
Apache
“Una alternativa importante clara al servidor web IIS, incluido con Windows
2000 Server es el servidor web Apache; este servidor web es actualmente el
más implantado entre los distintos servidores que ofertan servicios web.
Además, Apache, servidor originalmente pensado para el entorno Linux. Una
de las principales motivaciones para utilizar el servidor web Apache es su
condición de aplicación libre y descargable de forma gratuita de la web.”
(Palomares Ortega, 2012)
Es un software de código abierto gratuito, fue desarrollado por Apache Software
Foundation, es rápido, confiable y seguro, por lo que actualmente se ejecuta en el
67% de todos los servidores web alrededor del mundo, también es personalizable
mediante extensiones y módulos.
Es ampliamente utilizado para cualquier clase de proyecto que se esté
desarrollando desde el ambiente de desarrollo, por parte de entusiastas del
desarrollo web, hasta para soluciones de producción de proyectos más
ambiciosos.
Otro factor diferencial de la utilización de Apache como servidor web es la amplia
documentación que este posee y la sencilla configuración que necesita para
funcionar de manera óptima y correcta. Apache al igual que otros servidores web
permiten el uso de Virtual Host para poder tener múltiples sitios web en un solo
equipo. Varios dominios pueden apuntar a una sola ip del servidor, pero cada
página será completamente diferente debido a que la carpeta raíz donde se
encuentra alojado el sitio web no es la misma.
32
Ventajas de Apache
Las ventajas de Apache son:
• Su licencia: Esta es de código abierto del tipo BSD que permite el uso
comercial y no comercial de Apache.
• Una talentosa comunidad de desarrolladores siguiendo un proceso
abierto de desarrollo.
• Arquitectura modular. Los usuarios de Apache pueden adicionar
fácilmente funcionalidad a sus ambientes específicos.
• Portabilidad. Apache trabaja sobre todas las versiones recientes de
UNIX y Linux, Windows, BeOs, mainframes.
• Es robusto y seguro. (Márquez Díaz, Sampedro, & Vargas, 2002)
PHP
“PHP (acrónimo recursivo de PHP: Hypertext Preprocessor) es un lenguaje de
código abierto muy popular especialmente adecuado para el desarrollo web y que
puede ser incrustado en HTML.” (The PHP Group, 2019)
Entre las características más destacadas de este lenguaje de programación
podemos destacar:
• Gran cantidad de documentación
• Variedad de herramientas de aprendizaje
• Demandada de ofertas laborales
• Admite la programación orientada a objetos
• Pueden usarse módulos externos para mejorar la aplicación web
• La estructura puede separarse
Toda la herramienta Moodle está desarrollada en el lenguaje PHP, por lo que
cualquier cambio que se requiera para ya sea personalizar el sitio, o ajustar alguna
extensión con funciones que no traer por defecto deben de ser realizadas en PHP.
Para garantizar el correcto funcionamiento del sitio web es aconsejable revisar la
documentación de Moodle sobre que versión de PHP debe estar instala en los
33
servidores que almacenaran los sitios web, dado que hay ocasiones en donde no
es aconsejable el uso de la versión más actualizada de PHP con una versión
anterior de Moodle.
MySQL
“MySQL es el sistema de administración de bases de datos (Database
Management System, DBMS) más popular, desarrollado y proporcionado por
MySQL AB. Es un sistema de gestión de base de datos relacional, multihilo y
multiusuario.” (Pérez García, 2007)
Originalmente fue escrito en C y C++, pero es capaz de adaptarse a diferentes
entornos de desarrollo, lo que le permite trabajar con lenguajes de programación
muy utilizados como PHP, Perl y Java, además de correr en distintos sistemas
operativos.
Los procesos generales que se llevan a cabo dentro de esta base de datos son
los siguientes:
• Se crea una base de datos compuesta por varias para poder almacenar y
manipular datos, se definen las relaciones de cada tabla entre sí.
• Los usuarios realizan solicitudes en forma de instrucciones SQL.
• El servidor contestará estas peticiones presentando la información
solicitada delante de los usuarios.
Importantes empresas a nivel mundial hacen uso de esta base de datos, esto
gracias a las características que esta posee:
• Flexible y fácil de usar: Se puede modificar el código fuente para
personalizar la base de datos de acuerdo con nuestras necesidades.
• Alto rendimiento: Es escalable y soporte gigantescas cantidades de
información.
• Seguro: Es muy difícil de vulnerar, por lo que los datos estarán seguros
almacenados dentro de las bases de datos.
34
Para garantizar el correcto funcionamiento y una alta disponibilidad de los datos,
un único servidor en la topología tendrá el servicio el gestor de base de datos.
Para asegurar la integridad de la información de los estudiantes registrados en la
plataforma, se aconseja deshabilitar el acceso remoto por medio de todos los
usuarios que no sean el que Moodle utiliza para acceder a la base de datos.
La conexión entre los servidores web y la base de datos se realiza por medio de
direccionamiento privado para no divulgar la dirección ip del servidor y evitar de
esa manera accesos no autorizados. Además, del uso del direccionamiento
privado, es importante configurar reglas en el firewall de servidor de base de datos
para únicamente el acceso al puerto que utiliza MySQL por defecto TCP 3306 solo
a los tres servidores web con Moodle instalado.
FUNDAMENTACIÓN LEGAL
CONSTITUCIÓN DE LA REPÚBLICA DEL ECUADOR
TITULO VII REGIMEN DEL BUEN VIVIR
Capítulo primero Inclusión y equidad
Art. 344.- El sistema nacional de educación comprenderá las instituciones,
programas, políticas, recursos y actores del proceso educativo, así como acciones
en los niveles de educación inicial, básica y bachillerato, y estará articulado con el
sistema de educación superior.
El Estado ejercerá la rectoría del sistema a través de la autoridad educativa
nacional, que formulará la política nacional de educación; asimismo regulará y
controlará las actividades relacionadas con la educación, así como el
funcionamiento de las entidades del sistema.
Art. 345.- La educación como servicio público se prestará a través de instituciones
públicas, fiscomisionales y particulares.
En los establecimientos educativos se proporcionarán sin costo servicios de
carácter social y de apoyo psicológico, en el marco del sistema de inclusión y
equidad social.
35
Art. 346.- Existirá una institución pública, con autonomía, de evaluación integral
interna y externa, que promueva la calidad de la educación.
Art. 347.- Será responsabilidad del Estado:
1. Fortalecer la educación pública y la coeducación; asegurar el
mejoramiento permanente de la calidad, la ampliación de la cobertura, la
infraestructura física y el equipamiento necesario de las instituciones
educativas públicas.
2. Garantizar que los centros educativos sean espacios democráticos de
ejercicio de derechos y convivencia pacífica. Los centros educativos serán
espacios de detección temprana de requerimientos especiales.
3. Garantizar modalidades formales y no formales de educación.
4. Hay que asegurar que todas las entidades educativas impartan una
educación en ciudadanía, sexualidad y ambiente, desde el enfoque de
derechos.
5. Garantizar el respeto del desarrollo psicoevolutivo de los niños, niñas y
adolescentes, en todo el proceso educativo.
6. Erradicar todas las formas de violencia en el sistema educativo y velar por
la integridad física, psicológica y sexual de las estudiantes y los
estudiantes.
7. Erradicar el analfabetismo puro, funcional y digital, y apoyar los procesos
de post-alfabetización y educación permanente para personas adultas, y
la superación del rezago educativo.
8. Incorporar las tecnologías de la información y comunicación en el proceso
educativo y propiciar el enlace de la enseñanza con las actividades
productivas o sociales.
9. Garantizar el sistema de educación intercultural bilingüe, en el cual se
utilizará como lengua principal de educación la de la nacionalidad
respectiva y el castellano como idioma de relación intercultural, bajo la
rectoría de las políticas públicas del Estado y con total respeto a los
derechos de las comunidades, pueblos y nacionalidades.
10. Asegurar que se incluya en los currículos de estudio, de manera
progresiva, la enseñanza de al menos una lengua ancestral.
36
11. Garantizar la participación activa de estudiantes, familias y docentes en los
procesos educativos.
12. Garantizar, bajo los principios de equidad social, territorial y regional que
todas las personas tengan acceso a la educación pública.
Art. 348.- La educación pública será gratuita y el Estado la financiará de manera
oportuna, regular y suficiente. La distribución de los recursos destinados a la
educación se regirá por criterios de equidad social, poblacional y territorial, entre
otros.
El Estado financiará la educación especial y podrá apoyar financieramente a la
educación fiscomisional, artesanal y comunitaria, siempre que cumplan con los
principios de gratuidad, obligatoriedad e igualdad de oportunidades, rindan
cuentas de sus resultados educativos y del manejo de los recursos públicos, y
estén debidamente calificadas, de acuerdo con la ley. Las instituciones educativas
que reciban financiamiento público no tendrán fines de lucro.
La falta de transferencia de recursos en las condiciones señaladas será
sancionada con la destitución de la autoridad y de las servidoras y servidores
públicos remisos de su obligación.
LEY ORGÁNICA DE EDUCACIÓN SUPERIOR
Título I ámbito, objeto, fines y principios del sistema de educación superior
Capítulo 2 fines de la educación superior
Art. 4.- Derecho a la Educación Superior. - El derecho a la educación superior
consiste en el ejercicio efectivo de la igualdad de oportunidades, en función de los
méritos respectivos, a fin de acceder a una formación académica y profesional con
producción de conocimiento pertinente y de excelencia.
Las ciudadanas y los ciudadanos en forma individual y colectiva, las comunidades,
pueblos y nacionalidades tienen el derecho y la responsabilidad de participar en
el proceso educativo superior, a través de los mecanismos establecidos en la
Constitución y esta Ley.
37
Art. 5.- Derechos de las y los estudiantes. - Son derechos de las y los estudiantes
los siguientes:
a) Acceder, movilizarse, permanecer, egresar y titularse sin discriminación
conforme sus méritos académicos;
b) Acceder a una educación superior de calidad y pertinente, que permita
iniciar una carrera académica y/o profesional en igualdad de
oportunidades;
c) Contar y acceder a los medios y recursos adecuados para su formación
superior; garantizados por la Constitución;
d) Participar en el proceso de evaluación y acreditación de su carrera;
e) Elegir y ser elegido para las representaciones estudiantiles e integrar el
cogobierno, en el caso de las universidades y escuelas politécnicas;
f) Ejercer la libertad de asociarse, expresarse y completar su formación bajo
la más amplia libertad de cátedra e investigativa;
g) Participar en el proceso de construcción, difusión y aplicación del
conocimiento;
h) El derecho a recibir una educación superior laica, intercultural,
democrática, incluyente y diversa, que impulse la equidad de género, la
justicia y la paz;
i) Obtener de acuerdo con sus méritos académicos becas, créditos y otras
formas de apoyo económico que le garantice igualdad de oportunidades
en el proceso de formación de educación superior; y,
j) A desarrollarse en un ámbito educativo libre de todo tipo de violencia.
Art. 8.- Fines de la Educación Superior. - La educación superior tendrá los
siguientes fines:
a) Aportar al desarrollo del pensamiento universal, al despliegue de la
producción científica, de las artes y de la cultura y a la promoción de las
transferencias e innovaciones tecnológicas;
b) Fortalecer en las y los estudiantes un espíritu reflexivo orientado al logro
de la autonomía personal, en un marco de libertad de pensamiento y de
pluralismo ideológico;
38
c) Contribuir al conocimiento, preservación y enriquecimiento de los saberes
ancestrales y de la cultura nacional;
d) Formar académicos y profesionales responsables, en todos los campos
del conocimiento, con conciencia ética y solidaria, capaces de contribuir al
desarrollo de las instituciones de la República, a la vigencia del orden
democrático, y a estimular la participación social;
e) Aportar con el cumplimiento de los objetivos del régimen de desarrollo
previsto en la Constitución y en el Plan Nacional de Desarrollo;
f) Fomentar y ejecutar programas de investigación de carácter científico,
tecnológico y pedagógico que coadyuven al mejoramiento y protección del
ambiente y promuevan el desarrollo sustentable nacional en armonía con
los derechos de la naturaleza constitucionalmente reconocidos,
priorizando el bienestar animal;
g) Constituir espacios para el fortalecimiento del Estado Constitucional,
soberano, independiente, unitario, intercultural, plurinacional y laico;
h) Contribuir en el desarrollo local y nacional de manera permanente, a través
del trabajo comunitario o vinculación con la sociedad;
i) Impulsar la generación de programas, proyectos y mecanismos para
fortalecer la innovación, producción y transferencia científica y tecnológica
en todos los ámbitos del conocimiento;
j) Reconocer a la cultura y las artes como productoras de conocimientos y
constructoras de nuevas memorias, así como el derecho de las personas
al acceso del conocimiento producido por la actividad cultural, y de los
artistas a ser partícipes de los procesos de enseñanza en el Sistema de
Educación Superior;
k) Desarrollar, fortalecer y potenciar el sistema de educación intercultural
bilingüe superior, con criterios de calidad y conforme a la diversidad
cultural; y,
l) Fortalecer la utilización de idiomas ancestrales y expresiones culturales,
en los diferentes campos del conocimiento.
39
CÓDIGO ORGÁNICO INTEGRAL PENAL
SECCIÓN TERCERA Delitos contra la seguridad de los activos de los
sistemas de información y comunicación
Artículo 229.- Revelación ilegal de base de datos. - La persona que, en provecho
propio o de un tercero, revele información registrada, contenida en ficheros,
archivos, bases de datos o medios semejantes, a través o dirigidas a un sistema
electrónico, informático, telemático o de telecomunicaciones; materializando
voluntaria e intencionalmente la violación del secreto, la intimidad y la privacidad
de las personas, será sancionada con pena privativa de libertad de uno a tres
años.
Si esta conducta se comete por una o un servidor público, empleadas o empleados
bancarios internos o de instituciones de la economía popular y solidaria que
realicen intermediación financiera o contratistas, será sancionada con pena
privativa de libertad de tres a cinco años.
Artículo 234.- Acceso no consentido a un sistema informático, telemático o de
telecomunicaciones. - La persona que sin autorización acceda en todo o en parte
a un sistema informático o sistema telemático o de telecomunicaciones o se
mantenga dentro del mismo en contra de la voluntad de quien tenga el legítimo
derecho, para explotar ilegítimamente el acceso logrado, modificar un portal web,
desviar o redireccionar de tráfico de datos o voz u ofrecer servicios que estos
sistemas proveen a terceros, sin pagarlos a los proveedores de servicios
legítimos, será sancionada con la pena privativa de la libertad de tres a cinco años.
DECRETO EJECUTIVO NO. 1425
El decreto ejecutivo fue emitido por el presidente de la República del Ecuador el
22 de mayo del 2017 durante su mandato, en el cual establece varios artículos
dirigidos exclusivamente al Sector Publico con varios puntos referentes a la
adquisición y uso del Software de Código Abierto por parte de las instituciones
educativas y gubernamentales.
40
Articulo 1.- Ente Regulador. – La Secretaria Nacional de la Administración
Pública, será el ente regulador en materia de Gobierno Electrónico para las
entidades que conformen el sector público.
Articulo 5.- Adquisición de software internacional (cuarta y quinta clase de
prelación) En el Caso de adquisición de software internacional, la entidad
requirente deberá incluir en los términos de referencia o especificaciones técnicas,
condiciones de transferencia tecnológica en las modalidades y niveles que
determine el Servicio Nacional de Contratación Pública.
CÓDIGO ORGÁNICO DE LA ECONOMÍA SOCIAL DE LOS
CONOCIMIENTOS, CREATIVIDAD E INNOVACIÓN
Apartado Segundo De las tecnologías libres y formatos abiertos
Artículo 142.- Tecnologías libres. - Se entiende por tecnologías libres al software
de código abierto, los estándares abiertos, los contenidos y el hardware libres. Los
tres primeros son considerados como Tecnologías Digitales Libres.
Se entiende por software de código abierto al software en cuya licencia el titular
garantiza al usuario el acceso al código fuente y lo faculta a usar dicho software
con cualquier propósito. Especialmente otorga a los usuarios, entre otras, las
siguientes libertades esenciales:
• La libertad de ejecutar el software para cualquier propósito;
• La libertad de estudiar cómo funciona el software, y modificarlo para
adaptarlo a cualquier necesidad. El acceso al código fuente es una
condición imprescindible para ello;
• La libertad de redistribuir copias; y,
• La libertad de distribuir copias de sus versiones modificadas a terceros.
Artículo 144.- Uso de tecnologías digitales libres en los sistemas de educación. -
Las instituciones del sistema nacional de educación y del sistema de educación
superior, únicamente para su funcionamiento administrativo, deberán usar
software siguiendo el esquema de prelación y criterios establecidos en el artículo
148.
41
No obstante, lo anterior, las instituciones del Sistema de Educación Superior no
estarán obligadas a usar exclusivamente tecnologías digitales libres en el ejercicio
de la libertad de cátedra y de investigación, pero deberá garantizarse una
enseñanza holística de soluciones informáticas independientemente de su tipo de
licenciamiento.
Artículo 145.- Migración a software de fuente abierta. - Las Instituciones del sector
público deberán realizar una evaluación de factibilidad de migrar sus tecnologías
digitales a tecnologías digitales libres con los criterios establecidos en el
reglamento correspondiente. Se evaluará la criticidad del software, debiendo
considerar los siguientes criterios:
• Sostenibilidad de la solución;
• Costo de oportunidad;
• Estándares de seguridad;
• Capacidad técnica que brinde el soporte necesario para el uso del
software.
Artículo 146.- Localización de datos. - Cuando las entidades del sector público
contraten servicios de software u otros que impliquen la localización de datos,
deberán hacerlo con proveedores que garanticen que los datos se encuentren
localizados en centros de cómputo que cumplan con los estándares
internacionales en seguridad y protección conforme las siguientes reglas:
a) Los datos relacionados con seguridad nacional y sectores estratégicos se
deben encontrar en centros de cómputo ubicados en territorio ecuatoriano;
b) Los datos de relevancia para el Estado que no se encuentren contenidos
en el literal a) de este artículo se deben encontrar de forma preferente en
centros de cómputo ubicados en territorio ecuatoriano o en países con
normas de protección de datos iguales o más exigentes que los
establecidos en el Ecuador; y,
c) Los datos que no se encuentren contenidos en los literales a y b del
presente artículo se deben encontrar de forma indistinta en centros de
cómputo ubicados en territorio ecuatoriano o extranjero.
42
PREGUNTA CIENTÍFICA A CONTESTARSE
¿Con la propuesta de la topología de red para la implementación de una
plataforma de aulas virtuales que proporcione una experiencia estable y de gran
desempeño a los estudiantes de los Cursos de Nivelación de la Universidad de
Guayaquil, se dispondrá de una red escalabre y de alta disponibilidad?
DEFINICIONES CONCEPTUALES
Código Abierto: Los desarrolladores ofrecen sus aplicaciones y programas a los
usuarios sin costo alguno y permiten el acceso al código fuente de todo su
desarrollo ya se para aprender de su funcionamiento o para agregar o mejorar
algunas características que no vienen por defecto.
Protocolos de internet: Existen varios tipos de protocolos para la navegación en
Internet, pero para el uso de sitios web se utilizan los protocolos HTTP y su
variante HTTPS la cual por medio de un certificado permite validad la veracidad
del sitio y comprobar que no sea un sitio web fraudulento.
Balanceo de carga: El balanceo de carga tiene muchas utilidades ya sea en una
red de equipos, así como también para los servidores de aplicaciones web,
mediante la configuración de ciertos parámetros se logra distribuir a los usuarios
en distintos nodos para no saturar y de esa manera evitar el congestionamiento o
bajo desempeño de un servidor.
Computación en la nube: Es un paradigma el cual es muy implementado en la
actualidad debido a ventajas que otorga evitando el uso de equipos y reducir
costos de mantenimiento, configuración de servidores, disponibilidad de un
espacio físico y algunos servicios básicos como una conexión a Internet o un punto
de conexión a la red eléctrica.
Seguridad: Todo sistema es vulnerable, es casi imposible hablar de una total
seguridad en un ambiente de servidores, lo que se puede es evitar y restringir
ciertos accesos a usuarios no autorizados, mediante el cambio de puertos y
configuraciones predeterminados, uso de cortafuegos, y el monitoreo de una red
para el análisis de uso de red.
43
Escalabilidad: Una infraestructura de tecnología debe ser escalable con el tiempo
para permitir una fácil evolución y administración a futuro de un sitio web y de sus
servidores.
FUNDAMENTACIÓN CONTEXTUAL
Datos demográficos de las provincias más grandes del Ecuador
Según datos del Instituto Nacional de Estadísticas y Censo “INEC” al mes de
diciembre de 2019 en el Ecuador hay un total de 17’374.245 habitantes, estos se
encuentran repartidos en un total de 24 provincias y en una extensión de 283.560
km cuadrados. Las 3 provincias más grandes del ecuador en número de
habitantes y extensión de terreno son:
Cuadro 4. Número de habitantes y tamaño de superficie provinciales
Provincia Habitantes Superficie Población activa
económicamente
Guayas 3,6 millones 15.430 km 1,6 millones
Pichincha 2,5 millones 9.535,91 km 1,3 millones
Manabí 1,4 millones 18.939,6 km 527.000
Elaboración: Ronaldo Vergara
Fuente: Instituto Nacional de estadística y censos
Según los datos del INEC, la provincia más grande en habitantes es la provincia
del Guayas, seguida de la provincia de Pichincha y en tercer lugar la provincia de
Manabí.
Universidades más grandes del Ecuador
Aunque existen un gran número de universidades en el país a continuación se
enlistan las 15 universidades con mayor cantidad de estudiantes matriculados
entre los años 2015 y 2016:
44
Cuadro 5. Número de estudiantes matriculados en universidades del Ecuador
Nombre de la UES 2015 2016
Universidad de Guayaquil 64.841 64.413
Universidad Técnica Particular de Loja 51.521 48.927
Universidad Central del Ecuador 47.706 45.332
Universidad Politécnica Salesiana 28.066 29.667
Pontificia Universidad Católica del Ecuador 22.955 23.458
Universidad Metropolitana 6.131 20.541
Universidad Católica de Santiago de Guayaquil 19.586 20.536
Universidad de Cuenca 16.925 20.391
Universidad Laica Eloy Alfaro de Manabí 19.790 19.951
Universidad de las Américas 18.346 17.980
Escuela Superior Politécnica de Chimborazo 15.902 17.536
Universidad Técnica de Manabí 14.908 16.577
Universidad Tecnológica Equinoccial 18.262 16.062
Universidad de las Fuerzas Armadas (ESPE) 16.332 15.110
Universidad Católica de Cuenca 11.608 13.217
Elaboración: Ronaldo Vergara
Fuente: Senescyt - Secretaría de Educación Superior, Ciencia, Tecnología e Innovación
Según la Secretaría de Educación Superior, Ciencia, Tecnología e Innovación
(SENESCYT). Entre los años 2015 y 2016 las 3 universidades que más
estudiantes matriculados registraron son la Universidad de Guayaquil, la
Universidad Técnica Particular de Loja y la Universidad Central del Ecuador, por
lo que son las universidades con mayor población estudiantil del Ecuador.
Universidad de Guayaquil
La Universidad de Guayaquil fue fundada el 1 de diciembre del año 1867, por el
Congreso Nacional a cargo de Pedro Carbo, la primera facultad en instalarse fue
la de Jurisprudencia.
“Es así como Guayaquil, la mayor ciudad del Ecuador, tiene hoy la primera
Universidad del país con diecisiete Facultades que ofertan 31 carreras de
pregrado, 7 a nivel tecnológico con diferentes especializaciones y 8 carreras
cortas, de uno y dos años, cuenta con 6 Extensiones Universitarias en la Costa, y
provincia de Galápagos, 14 centros de estudios a distancias, 5 Institutos
45
Superiores de Postgrado, y 18 Institutos de Investigaciones; además cuenta con:
laboratorios, talleres, consultorios, bibliotecas, farmacia, librería, comedores
estudiantiles; también, grupos artísticos, equipos deportivos y otros servicios a la
comunidad.” (Universidad de Guayaquil, 2019)
A continuación, se muestran el número de estudiantes matriculados por año al 26
de noviembre del 2018.
Cuadro 6. Número de estudiantes matriculados en la universidad de Guayaquil
Año Estudiantes
2015 63.856
2016 64.477
2017 80.308
2018 73.511
Elaboración: Universidad de Guayaquil
Fuente: Sitio web de la Universidad de Guayaquil - www.ug.edu.ec
La Universidad de Guayaquil es la universidad más grande del Ecuador, tanto en
número de estudiantes como de infraestructura.
46
CAPÍTULO III
PROPUESTA TECNOLÓGICA
En el desarrollo de este capítulo se procederá a la configuración de las
características recomendadas para cada servidor de la topología de red de la
plataforma de aula virtual, de esta manera se asegura una alta disponibilidad
mediante el uso de la computación en la nube se busca ofrecer una alta
disponibilidad y seguridad para que la infraestructura obtenga escalabilidad,
redundancia y jerarquía con el objetivo de garantizar una experiencia confiable y
segura a los estudiantes de los cursos de Nivelación de la Universidad de
Guayaquil.
Para la creación de la plataforma de aulas virtuales se utilizará la herramienta de
código abierto Moodle desarrollada en su totalidad en el lenguaje de programación
PHP, a continuación, se mencionan los servidores necesarios para el correcto
funcionamiento de la plataforma:
• Balanceador de carga
• Servidores web
• Base de Datos
En este proyecto tecnológico se aplicará la topología de red propuesta con los
respectivos servidores y los servicios necesarios, instalados y configurados
adecuadamente para un correcto funcionamiento y desempeño de la plataforma
de aulas virtuales.
Además, se presentan las ventajas y desventajas del uso de los servicios de
computación en la nube para la implementación de la topología de red de la
plataforma de aulas virtuales indicando la razón de porque se propone el uso de
este paradigma en lugar del tradicional uso de servidores físicos en las
instalaciones de la Universidad de Guayaquil.
47
Gráfico 6. Topología de red propuesta
Elaboración: Ronaldo Vergara
Fuente: Datos de la investigación
Según el grafico No. 6 las peticiones de los usuarios que utilizaran la plataforma
de aulas virtuales serán filtradas por el cortafuegos perimetral de Digital Ocean
configurado de manera que los usuarios no autorizados solo tengan acceso a los
servicios web y el resto de los servicios sean transparentes para los usuarios, el
servidor con el servicio HAProxy distribuirá equitativamente la carga a los nodos
del clúster de servidores web los cuales tendrán la herramienta Moodle
configurada en ellos y un servidor de base de datos aparte para soportar todas las
peticiones de los usuarios recurrentes del sitio web y prevenir de esa manera un
bajo desempeño de la plataforma.
ANÁLISIS DE FACTIBILIDAD
Para la implementación de la topología de red propuesta se consideró la
distribución de los servicios requeridos por la plataforma en distintos servidores
con el fin de reducir el congestionamiento de los servidores, evitar que el excesivo
consumo de memoria y procesamiento debido a un alto grupo de peticiones
recurrentes derivadas de la gran cantidad de estudiantes inscritos en los cursos
de Nivelación de la Universidad de Guayaquil afecte el rendimiento del sistema.
48
También se considera la aplicación de políticas y técnicas de seguridad que
permiten asegurar los servidores y servicios de posibles ataques de usuarios no
autorizados que provoquen inestabilidad de la plataforma, vulneración de archivos
y notas, o el robo de información de los estudiantes. De esta manera se obtendrá
una topología de red de alta disponibilidad tolerante a fallos, redundancia y
escalabilidad de la infraestructura tecnológica.
Factibilidad Técnica
En la factibilidad técnica del proyecto de titulación en desarrollo se detallan las
especificaciones técnicas de los servidores virtuales contratados a una empresa
de computación en la nube, como lo es Digital Ocean, a su vez se describe los
recursos de software y servicios que serán requeridos para la implementación de
la plataforma de aula virtual de Moodle.
Cuadro 7. Recursos de Hardware
Servidor Descripción
Balanceador de Carga HAProxy 1.5
2 servidores de Aplicación Web
Apache PHP 7.1 Samba
Python 3 Complementos
PHP ZIP
Base de Datos MYSQL 5.6
PHPMYADMIN
Autor: Daniel Orellana Fierro
Fuente: Trabajo de Investigación
La topología de red propuesta para la implementación de la plataforma está
compuesta 4 servidores con el sistema operativo CentOS 6.9 x64 instalado en
ellos. Al ser un ambiente de desarrollo en el cual se implementó la plataforma
piloto las especificaciones propuestas no son recomendadas para los servidores
de producción de la plataforma de aula virtuales de la Universidad de Guayaquil
debido al gran número de estudiantes inscritos en los Cursos de Nivelación.
49
A continuación, dentro de la factibilidad técnica, se detalla los servicios de código
abierto los cuales serán configurados en los servidores de la plataforma del
proyecto de titulación.
Cuadro 8. Recursos de Software
Servidor Servicio(s)
Balanceador de Carga HAProxy 1.5
2 servidores de Aplicación Web
Moodle 3.7.2 Apache PHP 7.1 Samba Python 3 Complementos PHP ZIP
Base de Datos MYSQL 5.6 PHPMYADMIN
Autor: Daniel Orellana Fierro
Fuente: Trabajo de Investigación
Factibilidad Operacional
Se cuenta con el apoyo para el desarrollo del proyecto de titulación por parte
de la Unidad de Admisión y Nivelación de la Universidad de Guayaquil, ya que
actualmente disponen con una plataforma de aula virtual para las Carreras de
Nivelación con equipos físicos en las instalaciones de la universidad. Por ello se
planea la implementación de una nueva plataforma de aulas virtuales, la cual este
diseñada para soportar una alta afluencia de usuarios recurrentes conectados de
manera simultánea.
Factibilidad Legal
Para la implementación del proyecto de titulación existen varias leyes de
Gobierno Ecuatoriano que promueven el libre uso de programas de código abierto,
garantizando un buen uso de las tecnologías de la información para el desarrollo
de proyectos en instituciones del sector público como lo es la Universidad de
Guayaquil. También se regulan leyes que protegen los sistemas informáticos ante
los ataques no autorizados a los equipos o el robo de información sensible en
bases de datos.
50
Factibilidad Económica
En la factibilidad económica del proyecto de titulación se detalló los costos y
gastos de la implementación de la plataforma en un ambiente de desarrollo y
presupuestos de los servidores para el funcionamiento en un ambiente de
producción con la calculadora de costos de dos de los más conocidos proveedores
de computación en la nube.
Cuadro 9. Recursos Económicos para la implementación de la topología de red
Servidor Costo Mensual
Balanceador de Carga $ 5
Servidor de Aplicación $ 10
Servidor de Aplicación $ 10
Base de Datos $ 15
Nombre de Dominio $ 0
Total $ 40
Autor: Daniel Orellana Fierro
Fuente: Trabajo de Investigación
Para los servidores de producción de la plataforma de aula virtual de los Cursos
de Nivelación de la Universidad de Guayaquil se realizaron dos cotizaciones en
con los proveedores de Cloud Computing de Google Cloud y EC2 de Amazon Web
Services los cuales son las opciones más utilizadas en la actualidad debido a los
grandes beneficios que ofrecen desde las pequeñas y medianas empresas o
instituciones hasta proyectos para grandes organizaciones como lo es una
plataforma de nivelación para todos los estudiantes que se inscriben
semestralmente a la Universidad de Guayaquil.
51
Cuadro 10. Tabla Cotización de Servidores de Producción en Google Cloud
Cantidad Servidor Descripción Precio
(Mensual)
1 Balanceador
de Carga
730 hours per month
VM class: regular
Instance type: n2-custom-4-16384
Region: Northern Virginia
Total SSD space 1x375 GB
Commitment term: 3 Years
$83,27
2 Servidor de
Aplicación
1,460 hours per month
VM class: regular
Instance type: n2-custom-8-49152
Region: Northern Virginia
Total SSD space 1x375 GB
Commitment term: 3 Years
$350,74
1 Servidor de
Aplicación
730 hours per month
VM class: regular
Instance type: n2-custom-4-8192
Region: Northern Virginia
Total SSD space 1x375 GB
Commitment term: 3 Years
$71,36
1 Base de
Datos
730 hours per month
VM class: regular
Instance type: n2-custom-10-81920
Region: Northern Virginia
Total SSD space 6x375 GB
Commitment term: 3 Years
$320,25
1
Cloud
Storage
(Video)
Northern Virginia
Amount of Storage: 7,168 GB $164,75
Costo Mensual $990,37
Costo Estimado (3 años) $35.653,32
Autor: Daniel Orellana Fierro
Fuente: Google Cloud
52
Gráfico 7. Cotización de Servidores de Producción en Amazon EC2
Elaboración: Daniel Orellana Fierro
Fuente: Amazon Web Services
Costo estimado mensual: USD 2.157,25
Costo estimado 3 años: USD 77.661
ETAPAS DE LA METODOLOGÍA DEL PROYECTO
Elección del Scrum Master
Por medio de una votación en de todos los integrantes del grupo se designó a
un responsable del cual guiara al resto y delegara responsabilidades para que el
desarrollo del proyecto se lleve con eficacia.
Planificación de Reuniones y Sprint
Se escogió un horario conveniente para todos los integrantes del grupo del
proyecto de 2 horas cada día de la semana de martes a viernes para la elaboración
de la plataforma durante el transcurso de todas las reuniones en los servidores del
proveedor de Cloud Computing. Se procedió a compartir información sobre las
actividades y delegar tareas para los diferentes integrantes de cada equipo de
trabajo.
53
Desarrollo de la plataforma
El Product Backlog desarrollado para la plataforma responde a las necesidades
cubiertas a lo largo del proceso, esto con el fin de realizar el mejor trabajo posible.
Este se encuentra dividido en 5 Sprints que describen las tareas generales que
deben realizarse.
Gráfico 8. Product Backlog
Elaboración: Ronaldo Vergara
Fuente: Datos de la investigación
54
Gráfico 9. Sprint 1
Elaboración: Daniel Orellana, Ronaldo Vergara
Fuente: Datos de hora de trabajo del desarrollo del Proyecto
Gráfico 10. Detalles del Sprint 1
Elaboración: Ronaldo Vergara
Fuente: Datos de la investigación
Este sprint es la fase experimental del desarrollo de la plataforma, se divide en 3
fases que se ejecutan en un entorno con servidores virtuales en un ambiente
virtual de forma local.
TareaHoras
estimadasHoras Dia 1 Horas Dia 2 Horas dia 3 Horas dia 4 Horas dia 5 Total Horas
Estudio de Plataforma LMS Moodle 10 2 2 2 2 2 10
Creacion de maquina Virtuales 10 2 2 5 3 0 12
Conectividad IP 10 2 3 4 5 1 15
Instalacion de moodle entorno Local 7 2 2 2 1 0 7
Creacion de cursos de prueba 7 3 2 2 0 0 7
Carga de videos de prueba 7 4 2 1 0 0 7
Configuracion de tema moodle 7 2 4 1 0 0 7
Instalacion / configuracion de juegos moodle local 3 1 2 1 0 0 4
Instalacion de plugins (asistencia, dedicacion) 5 0 0 2 3 0 5
Creacion de banco de preguntras 5 3 2 0 0 0 5
Creacion de banco de Examen unificado 6 2 1 0 0 0 3
Horas Restantes 77 54 32 12 -2 -5
Horas estimadas 77 61,6 46,2 30,8 15,4 0
55
Levantamiento de información de la plataforma MLS
En esta etapa se recopiló la información esencial para definir las necesidades y el
alcance del proyecto. Se realizó el estudio profundo de los elementos involucrados
en la implementación de la plataforma, este se dividió en 4 temas:
Plataformas LMS: Se verificaron los conceptos que rodean a estas plataformas,
así como la información de la herramienta a utilizar. La versión de Moodle elegida
para el proyecto de titulación es la 3.7.2 debido a ser una de las versiones más
estables de Moodle actualmente y varios bugs no se encuentran presentes o
fueran corregidos de sus versiones anteriores. Por lo cual para un ambiente más
estable y sin inconvenientes se escogió esta versión en lugar de otras en estado
beta.
Servidores: Se estudiaron los diferentes tipos se servidores dedicados, así como
el procedimiento de instalación y configuración propia y en red. El sistema CentOS
6 es uno de los sistemas operativos de servidores más utilizados en la actualidad
debido a la gran cantidad de usuarios que posee, al ser de código libre y al tener
una comunidad muy grande de soporte ante fallas. La versión 6 del sistema
operativo es una de las más estables en comparación con versiones más actuales
que posee la distribución.
Clúster de servidores: Se estudiaron las diferencias entre los servidores físicos
y los virtuales, así como también las herramientas para compartir archivos, cache
y sesiones entre los servidores. Para un ambiente de producción donde se espera
una gran afluencia recurrente de usuarios es aconsejable el uso de clúster de
servidores para que distintos servidores soporten todas las transacciones de los
usuarios y ofrecer un ambiente estable y transparente al usuario el cual puede
realizar una misma tarea desde cualquier servidor en el que se encuentre.
Diseño de la topología de red propuesta: Se realizó el diseño de la topología
de la red, se concluyó hacer uso de 4 servidores: 1 servidor de balanceo de carga
para distribuir todo el tráfico que generan los estudiantes en distintos servidores
de back-end y permitir una mejor escalabilidad a futuro, 2 servidores de
aplicaciones web los cuales tendrán duplicada la configuración en ellos, salvo uno
el cual servirá como servidor maestro para almacenar el cache, sesiones y
56
archivos temporales de la plataforma web la cual será compartida con el resto de
nodos, teniendo de esa forma la misma configuración en ambos y 1 servidor de
base de datos para mejorar el rendimiento de las consultas de información.
El criterio utilizado es la carga principal de los servidores se encontrará en el propio
uso de la plataforma, que soportará a miles de estudiantes conectados al mismo
tiempo, de esta forma, son los servidores de aplicaciones que recibirán dicha
carga; un solo servidor de balanceo de carga puede abarcar toda la demanda de
usuarios, por otra parte, se eligió un servidor de base de datos por que la
información en estos permanecerá constante a lo largo del tiempo, los únicos
nuevos registros serán las calificaciones, los datos de los usuarios nuevos que se
registren y pequeños cambios que puedan realizarse. Los videos y las tareas se
almacenarán en servicios de terceros.
Instalaciones y configuraciones en ambiente local
Para experimentar la implementación de esta infraestructura se utiliza el sistema
de virtualización por software “VMware”, en este se crearon los 4 servidores
virtuales.
Instalación de servidores virtuales: Se realizó la instalación de los servidores
con sistema operativo CentOS 6, la distribución de Linux destinada a servidores.
Conexión en red LAN de los servidores: Correcta comunicación entre los
servidores conectados a una misma red LAN.
Configuración de servidores virtuales: Instalación de los diferentes softwares
de código abierto necesarios para un correcto funcionamiento de la plataforma
Moodle. Se procedió con la configuración del balanceador de carga para soportar
el tráfico con los 2 servidores de aplicación web que tendrán configurado Moodle
en ellos.
Instalación de Moodle: Se instaló la plataforma de aulas virtuales configurando
la base de datos para ser operada y utilizada.
Configuración de cursos de prueba: Se crearon cursos para probar el
funcionamiento de la plataforma.
57
Gráfico 11. Sprint 2
Elaboración: Daniel Orellana, Ronaldo Vergara
Fuente: Datos de hora de trabajo del desarrollo del Proyecto
Gráfico 12. Detalles del Sprint 2
Elaboración: Ronaldo Vergara
Fuente: Datos de la investigación
TareaHoras
estimadasHoras Dia 1 Horas Dia 2 Horas dia 3 Horas dia 4 Horas dia 5 Total Horas
Creación servidor 1 Digital Ocean 1 1 0 0 0 0 1
Creación servidor 2 Digital Ocean 1 1 0 0 0 0 1
Creación servidor 3 Digital Ocean 1 1 0 0 0 0 1
Creación servidor 4 Digital Ocean 1 1 0 0 0 0 1Conectividad IP en topologia CLOUD 1 1 0 0 0 0 1
Configuracion de apache en servidor moodle 1 6 1 2 2 0 1 6
Configuracion de apache en servidor moodle 2 6 2 3 1 0 0 6
Creación de moodle en servidor 1 4 1 1 0 1 1 4
Creación de moodle en servidor 2 4 3 1 0 0 0 4Instalacion /configuracion servidor balanceador HAPROXY 3 2 1 0 0 0 3
Instalacion /configuracion servidor base de datos MYSQL 5 2 1 0 3 0 6
Configuracion dominio del servidor 2 2 0 0 0 0 2
Configuracion de tema de moodle 1 1 0 0 0 0 1
Horas Restantes 82 49 30 17 8 0
Horas estimadas 82 65,6 49,2 32,8 16,4 0
58
Selección del proveedor Cloud Computing
Elección del proveedor: Los dos proveedores que fueron seleccionados y
evaluados para su posible contratación fueron los servicios de Digital Ocean y los
servicios EC2 de Amazon Web Services. A continuación, las características de
ambos proveedores que fueron consideradas:
El servicio EC2 que oferta Amazon Web Services a diferencia de Digital Ocean es
algo más complejo en la configuración inicial para crear una instancia, desde la
elección de la ubicación, especificaciones, crear reglas y políticas de seguridad
para la nueva instancia y otras configuraciones necesarias. Amazon posee centros
de datos más grandes y en muchas más ubicaciones que otros proveedores, los
precios suelen variar dependiendo de la ubicación que se escoja. Posee una
infraestructura mucho más grande que otros proveedores para aplicaciones
empresariales de alta disponibilidad.
La Digital Ocean fue el proveedor es cual se escogió debido a que se tenía
experiencia trabajando con el proveedor en otros proyectos y tener una buena
relación de precios por las especificaciones que ofrece en sus servidores virtuales.
Se debe crear una cuenta en la página de Digital Ocean, agregando una tarjeta
de crédito de la cual se debitará mensualmente el costo de los servidores
adquiridos para el proyecto. Después de la creación y confirmación de la cuenta
se procede a crear varios droplets para que las instancias de los servidores se
configuren y se envíen las credenciales para el acceso remoto al correo
electrónico de la cuenta.
Servidor de balanceo de carga
Instalación y configuración de HAProxy: El servicio utilizado en la topología de
red para el balanceo de carga es HAProxy, el cual es un software de código libre
que gracias a su gran reputación y desempeño se ampliamente utilizado en todo
tipo de soluciones para los distintos tipos de aplicaciones web que requieran el
uso de varios nodos para soportar una gran afluencia de usuarios y ofrecer una
alta disponibilidad en caso de alguna falla.
59
Para una correcta configuración del servicio se requiere de más de 1 servidor de
back-end, el servidor de balanceo de carga recibirá peticiones y debe
redireccionar a los usuarios mediante el protocolo HTTPS a los diferentes nodos
dependiendo de la cantidad de usuarios que posean en ese momento.
Configuración Certificado SSL en balanceador de carga: Moodle al ser una
plataforma de aula virtual la cual requiere de inicio de sesión y de una alta
integridad de los datos de los usuarios se recomienda el uso de las conexiones a
páginas web seguras por medio del protocolo HTTPS el cual comprueba un
certificado SSL para verificar la autenticidad de un sitio web y no ser uno
fraudulento el cual haya sido creado para el robo de información de los estudiantes
del curso de Nivelación de la Universidad de Guayaquil.
Servidor de base de datos
Instalación y configuración de MySQL 5.6: La herramienta Moodle requiere de
una base de datos para el almacenamiento de la información, cursos y de los datos
de los usuarios. Se puede utilizar cualquier base de datos relacional existente,
MySQL es muy utilizado en la actualidad y tiene una gran cantidad de
desarrolladores que le dan soporte al servicio. Para asegurar la integridad de los
datos el acceso por medio del usuario administrador a la base de datos se
realizará de manera local y no tendrá permitido acceso remoto salvo al usuario
especial creado para la configuración de Moodle.
El servidor tendrá dos bases de datos una para el formulario de registro masivo
de estudiantes de nivelación creado por otro equipo del grupo del proyecto de la
plataforma piloto LMS de Aula Virtual y la propia base de datos de la plataforma
la cual es creada el propio instalador de Moodle.
Servidores de aplicaciones
Configuración apache en los servidores: El servidor web a utilizar para levantar
la plataforma web es Apache un software de código abierto en su versión de
CentOS el cual es llamado httpd. Para incrementar la seguridad de los 2 servidores
web se debe deshabilitar el acceso a los directorios raíz del sitio web.
60
Instalación PHP 7.1 y sus complementos: Moodle es desarrollado en su
totalidad con el lenguaje de programación web PHP, por lo que la instalación del
servicio en los servidores de aplicación es requerida. Durante la instalación de
Moodle se revisa que se encuentre instalado la versión de PHP mínima y
recomendada dependiendo de la versión de la herramienta, así como también
varios complementos necesarios para su correcto funcionamiento. Moodle trae
una herramienta para subir archivos, pero por defecto PHP trae una configuración
que no permite la subida de archivos de gran tamaño, restricción la cual es
importante cambiar para prevenir conflictos o errores en la plataforma.
Instalación de Moodle 3.7: Moodle se puede descargar desde el sitio oficial y
descomprimir la carpeta en la ubicación que se haya configurad durante la
instalación del servidor web. La instalación se Moodle se puede realizar de manera
gráfica, así como también por consola, solo con la modificación del archivo de
configuraciones de Moodle con algunos parámetros requerido para su instalación
como lo son credenciales de la base de datos, nombre del dominio del sitio web y
duras de instalación de Moodle.
Gráfico 13. Sprint 3
Elaboración: Daniel Orellana, Ronaldo Vergara
Fuente: Datos de hora de trabajo del desarrollo del Proyecto
TareaHoras
estimadasHoras Dia 1 Horas Dia 2 Horas dia 3 Horas dia 4 Horas dia 5 Total Horas
Organización de carpetas plataforma VIMEO 3 2 1 0 0 0 3
organización de carpetas plataforma google Drive 1 0 0 0 1 0 1
Configuracion vista general de cursos en moodle 5 0 0 2 3 0 5
Configuracion de plugin asistencia 2 2 0 0 0 0 2
Creacion de formulario Login( matriculacion masiva) 5 1 4 0 0 0 5
Creacion de Cohortes (matriculacion masiva) 6 1 1 2 2 0 6
Asignacion de roles a usuarios 2 2 0 0 0 0 2
Configuracion de la base de datos moodle para matriculacion masiva 5 2 3 0 0 0 5
Creacion de curso Lenguaje 5 2 2 1 0 0 5
Carga de contenido Curso Lenguaje 4 0 2 2 0 0 4
Carga de videos Curso Lenguaje 6 3 3 0 0 0 6
Configuracion de juegos curso lenguaje 5 3 2 0 0 0 5
Configuracion de idioma en correos de verificacion 2 0 0 0 2 0 2
Configuracion de google Analytics en curso Lenguaje 5 3 2 0 0 0 5
Recuperacion de contraseña de usuarios 2 0 0 0 0 2 2
Configuracion sitio moodle HTTPS y scripts de respaldos 3 0 3 0 0 0 3
Horas Restantes 37 24 7 4 2 0
Horas estimadas 37 29,6 22,2 14,8 7,4 0
61
Gráfico 14. Detalles del Sprint 3
Elaboración: Ronaldo Vergara
Fuente: Datos de la investigación
Configuración base de datos para matriculación masiva
Creación de base de datos registro usuarios: Para el registro masivo se solicitó
la creación una nueva base de datos para el formulario de registro y una nueva
credencial para la conexión con la base de datos.
Instalación y configuración de phpMyAdmin: Para la implementación del
formulario de registro de matriculación masiva de estudiantes en la plataforma se
solicitó la instalación del servicio phpMyAdmin para la creación de una nueva base
de datos y a configuración de la base.
Configuraciones de la plataforma
Configuración HTTPS en los servidores apache: Después de que la plataforma
función correctamente se debe instalar el complemento SSL para que se habilite
el acceso seguro a la plataforma por el protocolo HTTPS a los servidores de
ampliación web. Dado que se configurará la navegación segura como Moodle
aconseja el servidor de balanceo de carga tendrá el certificado SSL configurado
en él y se redireccionará a los servidores de aplicaciones los cuales no requiere
un certificado SSL individual.
62
Convertir plataforma web a HTTPS: La plataforma web se encontrará
configurada para navegar por medio del protocolo HTTPS, pero es necesario
utilizar la característica en la sección de Administración del Moodle para convertir
todos los enlaces y no existan errores en la carga de la plataforma de aula virtual.
Proceso de copias de seguridad de la plataforma
Creación y configuración de scripts: Para realizar respaldos de los servidores
de Moodle, sus configuraciones y de las bases de datos, se creó varios scripts en
todos los servidores que realizan distintas funciones.
Las funciones se detallan mejor en el manual técnico del proyecto de titulación,
pero las tareas que realizan los scripts son: Respaldo de la carpeta Moodle donde
se almacena los archivos web de la plataforma y la carpeta moodledata la cual
almacena archivos temporales, cache y sesiones, las cuales pueden ser
exportadas y restauradas en los nodos secundarios del clúster de servidores. El
script también realiza copias de seguridad de las bases de datos para poder migrar
si fuera el caso o si se existiera alguna falla en el servidor de base de datos.
Gráfico 15. Sprint 4
Elaboración: Daniel Orellana, Ronaldo Vergara
Fuente: Datos de hora de trabajo del desarrollo del Proyecto
Gráfico 16. Detalles del Sprint 4
Elaboración: Ronaldo Vergara
Fuente: Datos de la investigación
TareaHoras
estimadasHoras Dia 1 Horas Dia 2 Horas dia 3 Horas dia 4 Horas dia 5 Total Horas
Creacion / Modificacion de manuales de la plataforma moodle UG 10 2 2 2 2 2 10
Horas Restantes 10 8 6 4 2 0
Horas estimadas 10 8 6 4 2 0
63
Manual técnico
Documentación de procedimientos técnicos: En este proceso se procedió a
recopilar y unir todas las capturas y tutoriales realizados en los sprints anteriores
durante la instalación y la posterior configuración de todos los servidores y
servicios requeridos para el correcto funcionamiento de la plataforma de aula
virtual. Durante la elaboración del manual se adjuntó todos los pasos completos
de los procesos que se realizaron en los servidores.
Gráfico 17. Sprint 5
Elaboración: Daniel Orellana, Ronaldo Vergara
Fuente: Datos de hora de trabajo del desarrollo del Proyecto
Gráfico 18. Detalles del Sprint 5
Elaboración: Ronaldo Vergara
Fuente: Datos de la investigación
TareaHoras
estimadasHoras Dia 1 Horas Dia 2 Horas dia 3 Horas dia 4 Horas dia 5 Total Horas
Revision de cursos 7 1 1 3 2 0 7
Revision de plataforma vimeo 7 1 3 2 1 0 7
Revision de tareas google drive 7 1 1 4 1 0 7
Revision de Juegos 7 2 2 0 0 3 7
Revision de Examen general / lecciones 7 3 2 2 0 0 7
Revision de la infraestructura 7 4 2 1 0 0 7
Revision de plugins 7 2 4 1 0 0 7
0
Horas Restantes 49 35 20 7 3 0
Horas estimadas 49 39,2 29,4 19,6 9,8 0
64
Revisión de la infraestructura
Revisión de balanceador: Se recomienda comprobar que el balanceador de
carga distribuya fe manera eficaz el tráfico de usuarios cuando este reciba varias
peticiones al mismo tiempo y evitar la saturación de los servidores mucho uso.
Revisión de Moodle: Para comprobar un correcto funcionamiento de Moodle en
la sección de administración del sitio hay una pestaña de Notificaciones para
validar que el proceso en segundo plano se ejecute periódicamente y se tenga
actualizado Moodle a su última versión.
Revisión de base de datos: El acceso a la base de datos debe ser única y
exclusivamente a los servidores de aplicaciones web por lo que los accesos por
otros medios o equipos debe ser validado para proteger la integridad de la
información de los estudiantes y los exámenes y clases de la plataforma.
Revisión de seguridad: Se llevó a cabo una comprobación de las políticas de
seguridad aplicadas en el cortafuegos del proveedor Digital Ocean verificar la
eficacia de estas y de esa manera tener resguardado los datos de los servidores
y los accesos no autorizados.
CRITERIOS DE LA VALIDACIÓN DE LA PROPUESTA
La propuesta se desarrolló en base a la investigación realizada con respecto a
los servidores de Cloud Computing en alta disponibilidad, varios de los autores
anteriormente citados recomiendan utilizar este tipo de topología para asegurar
una operación ininterrumpida de un sistema web. Se determinó que hacer uso de
esta tecnología es la mejor solución para la plataforma piloto MLS Moodle de la
Unidad de Admisión y Nivelación de la Universidad de Guayaquil, de esta forma,
la plataforma no asegura solo su constante operación, también se garantiza la
capacidad de aumentar su capacidad, o de ser necesario reducir la misma, esto
presenta una oportunidad de ahorro de dinero.
65
ENTREGABLES DEL PROYECTO
Los entregables del proyecto son el desarrollo una plataforma de aulas virtuales
implementando la herramienta Moodle, a continuación, se detalla la
documentación:
• Anexo de las preguntas de la encuesta
• Manual técnico del proyecto
HIPÓTESIS
¿Con un diseño de alta disponibilidad para la plataforma de aulas virtual de los
Cursos de Nivelación, se puede disminuir el tiempo de conexión al sitio web,
ofrecer un gran desempeño y transparencia de tolerancia a fallos para una grata
experiencia de los usuarios?
TIPO DE INVESTIGACIÓN
El tipo de investigación a utilizar en el presente trabajo es la cuasi experimental.
son esquemas de investigación no aleatorios. Según (Cabré, 2013) “Son
esquemas de investigación no aleatorios. Dado la no aleatorización, no es posible
establecer de forma exacta la equivalencia inicial de los grupos, como ocurre en
los diseños experimentales”
POBLACIÓN
La población elegida para la presente investigación fueron los estudiantes de
nivelación pertenecientes a la Facultad de Ciencias, Matemáticas y Físicas de la
Universidad de Guayaquil, el criterio utilizado para esta conclusión es que ellos
serán los usuarios finales de la plataforma. Según datos del Departamento de
Admisión y nivelación de la Universidad de Guayaquil los estudiantes matriculados
hacia el periodo 2018 CI fue un total de 7604. También se proyecta la demanda
de cupos correspondiente a los 5 ciclos de estudio siguientes.
66
Cuadro 11. Proyección de la demanda
Proyección 2018 CI 2019 CI 2019 CII 2020 CI 2020 CII
Población de Postulantes a
una Carrera 7604 8190 8822 9503 10237
Elaboración: Dirección de Admisión y Nivelación
Fuente: Estructura general para la presentación de programas y proyectos de
inversión
Para el periodo que se está desarrollando en la actualidad (2019 CII), la
proyección de estudiantes matriculados en nivelación es de 8822, esto se traduce
en un crecimiento del 16 % con respecto al periodo 2018 CI.
Otra tabla nos permite observar los cupos ofertados por facultad:
Cuadro 12. Cantidad de Cupos Ofertados por Facultad
FACULTAD 2018 CI 2018 CII 2019 CI
Arquitectura y Urbanismo 282 220 250
Ciencias Administrativas 1490 1760 1556
Ciencias Agrarias 160 160 160
Ciencias Matemáticas 745 700 772
Ciencias Médicas 750 760 855
Ciencias Naturales 132 120 120
Ciencias Químicas 184 180 180
Economía 288 315 320
Filosofía, Letras y Ciencias de la Educación 931 1276 1295
Ingeniería Industrial 400 780 755
Ingeniería Química 428 310 330
Jurisprudencia y Ciencias Sociales y Políticas 565 500 365
Psicología 280 210 225
Total 7734 8548 8313
Autor: Dirección de Admisión y Nivelación (2019)
Fuente: Estructura general para la presentación de programas y proyectos de
inversión
67
Como la población total serán los estudiantes de la Facultad de Ciencias,
Matemáticas y Físicas se tomará número de cupos ofertados en dicha facultad en
el ciclo más reciente del que se tienen datos, esto debido a que es el aproximado
de estudiante que tendrán algún tipo de experiencia con la nivelación de la
universidad. El total de la población es a utilizar es 772.
MUESTRA
El método de muestreo utilizado para la presente investigación es el no
probabilístico, esto se debe a que no se encuentra con una lista de alumnos de la
población elegida; de esta forma es necesario que se realice un levantamiento de
información al azar de los estudiantes de nivelación de la Facultad de Ciencias,
Matemáticas y Físicas.
Para determinar el cálculo del número de la muestra se debe utilizar una fórmula
ya determinada, y establecer el margen de error que se usará en los cálculos.
Cálculo de la muestra
Para realizar el cálculo se utiliza una fórmula definida por la probabilidad y
estadísticas:
𝑛 =N ∗ 𝑍2 ∗ p ∗ q
𝑑2 ∗ (𝑁 − 1) + 𝑍2 ∗ 𝑝 ∗ 𝑞
En donde:
n = tamaño de la muestra
N = tamaño de la población = 772
Z = nivel de confianza = 90% = 1.65
p = probabilidad de éxito = 50%
q = probabilidad de fracaso = 50%
d = margen de error = 10%
Realizando el cálculo:
𝑛 =772 ∗ 1.652 ∗ 0.5 ∗ 0.5
0.12 ∗ (772 − 1) + 1.652 ∗ 0.5 ∗ 0.5
68
𝑛 =506,5092
8,390625
𝑛 = 62.62 ≅ 63
El número de estudiantes a quienes se les recopilará información es de 63.
UNIDAD DE ANÁLISIS
La unidad de análisis elegida para la investigación son los estudiantes de
nivelación. Miles de ellos serán los usuarios finales de la plataforma web, por lo
que es importante conocer su opinión con respecto al desempeño que debe tener
la misma.
ENCUESTA
El método utilizado para recolectar la información fue el uso de encuestas. Se
diseñaron 8 preguntas nos permitirán conocer la perspectiva de los estudiantes
con respecto a las plataformas web como método de educación y la importancia
de su operación ininterrumpida.
Las preguntas utilizadas se cargaron en la plataforma de Google Forms para ser
enviadas a los estudiantes de nivelación.
PROCESAMIENTO Y TABULACIÓN
Pregunta #1.- ¿En qué rango se encuentra su edad?
Cuadro 13. Resultados de la pregunta 1 de la encuesta
RESPUESTA CANTIDAD PORCENTAJE
16 - 19 años 10 14.7%
20 - 23 años 29 42.6%
24 - 27 años 22 32.4%
más de 27 años 7 10.3%
TOTAL 68 100%
Autor: Ronaldo Vergara
Fuente: Datos de la encuesta
69
Gráfico 19. Resultados de la pregunta 1
Elaboración: Ronaldo Vergara
Fuente: Datos de la encuesta
Siendo un total de 68 estudiantes encuestados se puede observar que, el
14.7% tienen entre 16 y 19 años, 42.6% tienen entre 20 y 23 años, 32.4% tienen
entre 24 y 27 años y por último 10.3% tienen más de 27 años.
Pregunta #2.- ¿Considera que la modalidad de enseñanza virtual es necesaria
en la actualidad?
Cuadro 14. Resultados de la pregunta 2 de la encuesta
RESPUESTA CANTIDAD PORCENTAJE
Sí 56 82.4%
No 5 7.4%
Tal vez 7 10.3%
TOTAL 68 100%
Autor: Ronaldo Vergara
Fuente: Datos de la encuesta
70
Gráfico 20. Resultados de la pregunta 2
Elaboración: Ronaldo Vergara
Fuente: Datos de la encuesta
Con un total de 68 estudiantes encuestados, el 82.4% piensa que es la
modalidad de enseñanza virtual es necesaria, un 7.4% piensa que no es necesaria
y un 10.3% no está seguro si es necesaria o no.
Pregunta #3.- ¿Cree usted que es necesario que las instituciones de educación
superior implementen aulas virtuales?
Cuadro 15. Resultados de la pregunta 3 de la encuesta
RESPUESTA CANTIDAD PORCENTAJE
Sí 55 80.9%
No 6 8.8%
Tal vez 7 10.3%
TOTAL 68 100.0%
Autor: Ronaldo Vergara
Fuente: Datos de la encuesta
71
Gráfico 21. Resultados de la pregunta 3
Elaboración: Ronaldo Vergara
Fuente: Datos de la encuesta
Con un total de 68 estudiantes encuestados, el 80.9% cree que es necesario
que las universidades e institutos de educación superior comiencen a implementar
aulas virtuales, un 8.8% no cree que sea necesario y un 10.3% no está seguro de
si deba o no implementarse.
Pregunta #4.- ¿Cuántas plataformas de cursos virtuales de instituciones de
educación superior conoce o ha usado?
Cuadro 16. Resultados de la pregunta 4 de la encuesta
RESPUESTA CANTIDAD PORCENTAJE
0 8 11.8%
1 20 29.4%
2 19 27.9%
3 9 13.2%
4 5 7.4%
5 4 5.9%
Más de 6 3 4.4%
TOTAL 68 100%
Autor: Ronaldo Vergara
Fuente: Datos de la encuesta
72
Gráfico 22. Resultados de la pregunta 4
Elaboración: Ronaldo Vergara
Fuente: Datos de la encuesta
Siendo un total de 68 estudiantes encuestados, el 11.8% no conoce ningún
aula virtual existente, el 29.4% conoce 1 aula virtual existente, el 27.9% conoce 2
aulas virtuales existentes, el 13.2% conoce 3 aulas virtuales existentes, el 7.4%
conoce 4 aulas virtuales existentes, el 5.9% conoce 5 aulas virtuales existentes y
por último solo el 4.4% conoce más de 6 aulas virtuales existentes.
Pregunta #5.- ¿Alguna vez ha tenido problemas con una página web porque
no se encuentra operativa (está colapsada)?
Cuadro 17. Resultados de la pregunta 5 de la encuesta
RESPUESTA CANTIDAD PORCENTAJE
Sí 59 86.8%
No 9 13.2%
TOTAL 68 100%
Autor: Ronaldo Vergara
Fuente: Datos de la encuesta
73
Gráfico 23. Resultados de la pregunta 5
Elaboración: Ronaldo Vergara
Fuente: Datos de la encuesta
Con un total de 68 estudiantes encuestados, se sabe que el 86.8% alguna vez
tuvo problemas con una página web “caída” y el 13.2% indica nunca haber tenido
este tipo de problemas.
Pregunta #6.- Según su experiencia, ¿qué tan importante es que una página
web esté siempre operativa?
Cuadro 18. Resultados de la pregunta 6 de la encuesta
RESPUESTA CANTIDAD PORCENTAJE
No es importante 3 4.4%
Poco importante 1 1.5%
Indiferente 5 7.4%
Importante 18 26.5%
Muy importante 41 60.3%
TOTAL 68 100%
Autor: Ronaldo Vergara
Fuente: Datos de la encuesta
74
Gráfico 24. Resultados de la pregunta 6
Elaboración: Ronaldo Vergara
Fuente: Datos de la encuesta
Con un total de 68 estudiantes encuestados, un 4.4% piensan que no es
importante que una página web esté siempre operativa, un 1.5% piensa que es
poco importante, un 7.5% se muestra indiferente, un 7.4% piensa que es
importante y por último un 60.3% piensa que es muy importante.
Pregunta #7.- ¿Considera que es mejor el usar servidores virtuales en lugar
de servidores físicos en las instalaciones de la universidad?
Cuadro 19. Resultados de la pregunta 7 de la encuesta
RESPUESTA CANTIDAD PORCENTAJE
Sí 41 60.3%
No 6 8.8%
Tal vez 21 30.9%
TOTAL 68 100%
Autor: Ronaldo Vergara
Fuente: Datos de la encuesta
75
Gráfico 25. Resultados de la pregunta 7
Elaboración: Ronaldo Vergara
Fuente: Datos de la encuesta
Con un total de 68 estudiantes encuestados, un 60.3% piensa que sí es mejor
opción usar servidores virtuales en lugar de servidores físicos, un 8.8% piensa que
no es mejor y un 30.9% no sabe si es mejor o no.
Pregunta #8.- ¿Qué servicios de Cloud Computing conoce usted?
Cuadro 20. Resultados de la pregunta 8 de la encuesta
RESPUESTA CANTIDAD PORCENTAJE
Amazon Web Services 32 27.1%
Azure 21 17.8%
VM Cloud Suite 21 17.8%
Digital Ocean 13 11.0%
OpSource 14 11.9%
IBM 11 9.3%
Ninguno 4 3.4%
Microsoft 1 0.8%
Dropbox 1 0.8%
TOTAL 118 100%
Autor: Ronaldo Vergara
Fuente: Datos de la encuesta
76
Gráfico 26. Resultados de la pregunta 8
Elaboración: Ronaldo Vergara
Fuente: Datos de la encuesta
Con un total de 68 estudiantes encuestados se obtuvieron 118 respuestas
sobre plataformas de Cloud Computing conocidos, el 27.1% de las respuestas
corresponden a Amazon Web Services, el 17.8% corresponden a Azure, otro
17.8% corresponden a VM Cloud Suite, el 11% corresponden a Digital Ocean, el
11.9% corresponden a OpSource, el 9.3% corresponden a IBM, el 3.4%
corresponden a ninguna plataforma, el 0.8% corresponde a “Microsoft” lo cual
puede ser añadido al porcentaje de Azure y el 0.8% se descarta por no ser una
respuestas válida.
ANÁLISIS
En base a las encuestas realizadas se puede observar que existe una
tendencia de que la mayor parte de los encuestados se encuentra dentro de un
rango de edad de entre 20 y 23 años. Al ser esta muestra un reflejo de la población
total, podemos percibir que esta es la edad de la mayoría de los jóvenes en el
proceso de nivelación actual.
Siguiendo con la investigación sobre la enseñanza virtual es necesaria en la
actualidad y si las instituciones de educación superior deberían empezar a
implementarlas, podemos suponer que los jóvenes de 20 a 23 años de los de 24
a 27 años (que se constituyen el segundo grupo mayor en edades) están de
acuerdo con que estas prácticas son necesarias. Así mismo, podemos suponer
que la gran mayoría solo conoce entre 2 y 3 plataformas virtuales, esto puede
77
deberse a experiencias pasadas con otros centros de estudios, el número por sí
mismo es bastante bajo para un país con varios millones de habitantes.
Por otra parte, el 86.8% de los jóvenes de afirman haber tenido problemas con
una página web no operativa, y el 60.3% opina que es realmente importante que
estas no se caigan, por lo que podemos suponer que en la actualidad y para el
modelo de plataforma piloto que se está diseñando es de vital importancia que
pueda estar siempre operativa, sin interferencias y a disposición de los estudiantes
que deseen hace uso de ella.
Por último, más de la mitad de los estudiantes parece conocer el concepto de
computación en la nube, una pequeña parte parece no conocerla y otro tercio de
porción podría o no conocerla, entre los servicios que estos conocen se
encuentran Amazon Web Services, Azure y VM Cloud Suite. Si bien esto podría
deberse a un trabajo publicitario, el hecho es que, en algún punto de su vida, los
estudiantes de nivelación han tenido contacto con este tipo de tecnología.
78
CAPÍTULO IV
CRITERIOS DE ACEPTACIÓN DEL PRODUCTO O
SERVICIO
Se debe cumplir con todos las tareas de los 5 sprints realizados para determinar
el correcto funcionamiento de la plataforma virtual. Durante el desarrollo de cada
sprint se verifico que los cambios agregados no desestabilicen el funcionamiento
de la plataforma, por lo cual se determinaron los criterios de aceptación del
producto detallados a continuación:
Gráfico 27. Criterios de Aceptación del Producto
Nº Requerimiento Criterio de Aceptación Cumplimiento
1 Alta disponibilidad
antes errores
El sistema es capaz de
permanecer operativo a pesar
de sufrir un percance
100%
2 Escalabilidad
El sistema es capaz de
aumentar su capacidad ya sea
agregando más servidores o
aumentando sus características
virtuales.
100%
3 Respaldos de
seguridad
El script diseñado para
respaldar la información
funciona de forma correcta.
100%
4 Tolerancia ante
ataques
El cortafuegos ofrecido por el
proveedor de Cloud Computing
protege de forma correcta ante
los intentos de introducción de
100%
5
Entrega del
manual de
implementación y
configuración
El manual técnico detalla todos
los componentes que hacen
parte de la plataforma
100%
Autor: Ronaldo Vergara, Daniel Orellana
Fuente: Datos de la investigación
79
CONCLUSIONES
• La alta disponibilidad y la escalabilidad son características indispensables
en este tipo de plataformas que pretenden soportar a miles de usuarios al
mismo tiempo, a su vez, estas se ven fortalecidas cuando se combina con
los servidores virtuales que ofrecen la tecnología de computación en la
nube.
• En la actualidad existe una variedad de software de paga dedicados a
realizar las tareas de los servidores, no obstante, los programas de código
abierto que hacen estas mismas tareas son muy poderosos y pueden ser
perfectamente utilizados para implementar una plataforma web de gran
capacidad, con notables ventajas como que las más populares poseen una
gran comunidad que les provee soporte y la posibilidad de modificar el
código fuente de ser necesario.
• Las plataformas de Computación en la Nube son idóneas para realizar
proyectos de pequeña y gran escala, gracias a su excelente característica
de poder cambiar las especificaciones de hardware de los servidores
virtuales, una plataforma web puede contar con especificaciones limitadas
durante su fase de desarrollo e inmediatamente migrar a especificaciones
superiores al momento de su liberación, esto impacta directamente en el
precio a pagar por los servidores, que va acorde a las características
necesitadas y no existe la problemática de adquirir costoso equipos desde
el inicio de un proyecto cuando aún no genera su respectiva ganancia.
80
RECOMENDACIONES
Para la implementación de la plataforma de aulas virtuales para la Dirección de
Admisión y Nivelación de la Universidad de Guayaquil se utilizó Moodle, la cual es
una herramienta ampliamente utilizada en múltiples universidades alrededor del
mundo para la gestión de cursos impartidos en aulas virtuales. Su instalación y
configuración es relativamente fácil y sencilla, pero si ya se habla de un ambiente
de producción para una gran cantidad de estudiantes recuentes se deben tener
varias consideraciones en cuenta.
El Internet evoluciona constantemente, muchas personas lo utilizan en la
actualidad y el cambio más evidente que se llevara a capo es la implementación
a direccionamiento IPV6 por lo que la plataforma de la Universidad de Guayaquil
debe soportar de forma nativa el direccionamiento IPV6 y evitar de esa manera
complicaciones a futuro y no influir en el desempeño de la plataforma.
La topología de red está diseñada soportar la afluencia de usuarios de forma
masiva y recurrente ofreciendo una alta disponibilidad y un rápido desempeño,
pero para tener mayor tolerancia a errores y ofrecer una transparencia total a los
estudiantes si un servidor llegara a fallar, es altamente recomendable la
implementación de dos clústeres más de servidores para reducir los puntos de
falla de la red.
Los servidores que tienen la plataforma Moodle instalada comparte la carpeta
moodledata, debido a que en dicha carpeta se almacena la cache, sesiones y
archivos temporales de la plataforma cuando se hacen modificaciones o se
accede a ella, la carpeta no puede ser distinta entre los nodos del clúster, para
asegurar todos los puntos de falla de la topología, los creadores de Moodle
recomiendan tener un servidor NAS diferente a los nodos del clúster.
Uno de los servidores y posiblemente el más importante es el de la base de datos,
el cual en la topología actual no posee redundancia, sin un servidor de respaldo
el cual sea una réplica del original, una falla en dicho servidor generaría que la
plataforma no se encuentre operativa y con una posibilidad de perder información
personal de los estudiantes, los cursos creados y todo el desarrollo de las
actividades. El otro servidor al cual también se le debe considerar agregar
81
redundancia es el balanceador de carga, debido a que una falla en el ocasionaría
que la conectividad a los servidores de aplicaciones no sea accesible.
Con el objetivo de abarcar el grupo de estudiantes los cuales tienen más a
disposiciones dispositivos móviles en vez de computadoras o laptops, se debe
habilitar el acceso desde la aplicación móvil en dispositivos con sistemas
operativos Android y también IOS a la plataforma de aula virtual. Como último
punto se debe considerar guardar los archivos de respaldo de la plataforma y de
la base de datos no solo en un equipo remoto sino también en un equipo local.
82
BIBLIOGRAFÍA
Moodle Partners. (2019). moodle. Obtenido de Sobre Moodle:
https://docs.moodle.org/37/en/About_Moodle
Beltrán Pardo, M., & Sevillano Jaén, F. (2013). Cloud Computing, tecnología y
negocio. Madrid: Parainfo.
Bono Cabré, R. (2013). DISEÑOS CUASI-EXPERIMENTALES Y
LONGITUDINALES. Universidad de Barcelona. Obtenido de
http://diposit.ub.edu/dspace/bitstream/2445/30783/1/D.%20cuasi%20y%2
0longitudinales.pdf
Carvajal Palomares, F. (2016). Manual, Administración y auditoría de los servicios
Web. Madrid: CEP.
Dirección de Admisión y Nivelación de la Universidad de Guayaquil. (2019).
Dirección de Admisión y Nivelación. Obtenido de
http://www.admision.ug.edu.ec/aula-virtual/
Gisbert Vercher, B. (2015). UF1272 - Administración y auditoría de los servicios
web. ic.
González Célleri, J. G. (2015). Adaptación del módulo de titulación del aula virtual
moodle de la universidad de guayaquil a los nuevos modelos de titulación
descritos en el reglamento de régimen académico vigente. Obtenido de
http://repositorio.ug.edu.ec/handle/redug/11820
HAProxy Community Edition. (2008). HAProxy. Obtenido de
http://www.haproxy.org/#desc
Hertzong, R., & Mas, R. (2015). El manual del Administrador de Debian.
Instituto Nacional de Estadística y Censos. (2019). INEC. Obtenido de Contador
poblacional: https://www.ecuadorencifras.gob.ec/estadisticas/
Instituto Nacional de Estadística y Censos. (2019). INEC. Obtenido de Población
y Demografía: https://www.ecuadorencifras.gob.ec/censo-de-poblacion-y-
vivienda/
International Business Machines Corporation. (2016). IBM. Obtenido de
https://www.ibm.com/support/knowledgecenter/es/SSGLW6_5.2.1/com.ib
m.p8.sysoverview.doc/p8pha007.htm
International Business Machines Corporation. (2019). IBM. Obtenido de Balanceo
de Carga: https://www.ibm.com/cloud/learn/load-balancing
83
Kalkhanda, S. (2018). CentOS Quick Start Guide: Get up and running with CentOS
server administration. Mumbai: Packt.
Marañón Martín, J. M. (2013). Implementación de una plataforma de servidores
de aplicaciones. Obtenido de
https://ddd.uab.cat/pub/trerecpro/2014/hdl_2072_231945/MaranonMartinJ
oseMaria-ETISa2012-13.pdf
Márquez Díaz, J., Sampedro, L., & Vargas, F. (2002). Instalación y configuración
de Apache,un servidor Web gratis. Obtenido de
https://www.researchgate.net/publication/28201149_Instalacion_y_config
uracion_de_Apache_un_servidor_Web_gratis
Oracle Corporation. (2019). Oracle. Obtenido de
https://www.oracle.com/database/what-is-database.html
Palomares Ortega, M. Á. (2012). Manual Práctico. Servicios de Redes de Área
Local. Madrid: Vision Libros.
Pérez García, A. A. (2007). Desarrollo de herramientas web de gestión docente.
Obtenido de
http://repositorio.upct.es/bitstream/handle/10317/179/pfc2475.pdf
Robert, K. (2018). a10networks. Obtenido de
https://www.a10networks.com/blog/server-load-balancing/
Secretaría de Educación Superior, Ciencia, Tecnología e Innovación. (2019).
Senescyt. Obtenido de Registro de matrícula en universidades y escuelas
politécnicas 2015-2016: https://www.educacionsuperior.gob.ec/cuadros-
estadisticos-indice-de-tabulados-sobre-los-datos-historicos-de-educacion-
superior-a-nivel-nacional-incluye-registro-de-titulos-oferta-academica-
matriculados-docentes-becas-y-cupos/
The PHP Group. (2019). PHP. Obtenido de https://www.php.net/manual/es/intro-
whatis.php
Universidad de Guayaquil. (2018). Informe de rendición de cuentas. Obtenido de
http://www.ug.edu.ec/rendicion_cuentas/2018/PDI_INFORME_RC_UG_2
018_INTERVENCION_CIFI2_20MAR2019.pdf
Universidad de Guayaquil. (2019). UG. Obtenido de Historia:
http://www.ug.edu.ec/historia/
Universidad de Guayaquil. (2019). UG. Obtenido de Nosotros:
http://www.ug.edu.ec/nosotros/
84
Vadivelu, L., & Patrocinio, E. (2019). IBM. Obtenido de Alta disponibilidad y
recuperación ante desastres para su aplicación local:
https://www.ibm.com/garage/method/practices/manage/hadr-on-
premises-app/
Valdivia Miranda, C. (2015). Redes telemáticas. Madrid: Paraninfo.
Vieites, Á. G. (2014). Seguridad en Equipos Informáticos. Madrid: RA-MA, S.A.
Villanueva, J. C. (28 de 06 de 2015). JSCAPE. Obtenido de
https://www.jscape.com/blog/load-balancing-algorithms
85
ANEXOS
ANEXO I
Modelo de Encuestas
Pregunta #1: ¿En qué rango se encuentra su edad?
16 - 19 años
20 - 23 años
24 - 27 años
más de 27 años
Pregunta #2: ¿Considera que la modalidad de enseñanza virtual es necesaria en
la actualidad?
Sí
No
Tal vez
Pregunta #3: ¿Cree usted que es necesario que las instituciones de educación
superior implementen aulas virtuales?
Sí
No
Tal vez
Pregunta #4: ¿Cuántas plataformas de cursos virtuales de instituciones de
educación superior conoce o ha usado?
0
1
2
3
4
5
Más de 6
86
Pregunta #5: ¿Alguna vez ha tenido problemas con una página web porque no se
encuentra operativa (está colapsada)?
Sí
No
Pregunta #6: Según su experiencia, ¿qué tan importante es que una página web
esté siempre operativa?
No es importante
Poco importante
Indiferente
Importante
Muy importante
Pregunta #7: ¿Considera que es mejor el usar servidores virtuales en lugar de
servidores físicos en las instalaciones de la universidad? *
Sí
No
Tal vez
Pregunta #8: ¿Qué servicios de Cloud Computing conoce usted? *
Amazon Web Service
Azure
VM Cloud Suite
Digital Ocean
OpSource
IBM
Otro:
87
ANEXO 2
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y
FÍSICAS
CARRERA DE INGENIERÍA EN NETWORKING
Y TELECOMUNICACIONES
MANUAL TECNICO - IMPLEMENTACIÓN
TOPOLÓGICA DE RED DE UN SISTEMA PILOTO
LMS MOODLE EN LA UNIDAD DE ADMISIÓN Y
NIVELACIÓN DE LA UNIVERSIDAD DE
GUAYAQUIL
INTEGRANTES:
VERGARA LLIVICURA RONALDO ANDRE
ORELLANA FIERRO DANIEL
88
Contenido
SERVICIO WEB ............................................................................................ 90
Topología de red propuesta ....................................................................... 90
Creación Droplet en Digital Ocean ............................................................. 90
SERVICIO DE NOMBRE DOMINIO .............................................................. 96
Creación de un nombre de dominio ........................................................... 96
Configurar dominio en Digital Ocean ....................................................... 100
SERVIDOR BALANCEADOR DE CARGA .................................................. 103
Instalación de HAProxy ........................................................................... 103
Configuración Certificado SSL en balanceador de carga ......................... 103
Configuración de servicios ....................................................................... 106
Configuración archivo hosts ..................................................................... 107
Configuración de HAProxy....................................................................... 107
SERVIDOR DE BASE DE DATOS .............................................................. 110
Instalación de MySQL 5.6 ........................................................................ 110
Configuración base de datos MySQL ................................................... 112
Configuración archivo hosts ..................................................................... 113
Configuración de servicios ....................................................................... 113
SERVIDORES DE APLICACIONES ............................................................ 114
Moodle 3.7 ............................................................................................... 114
Prerrequisitos .......................................................................................... 114
Configuración archivo hosts ..................................................................... 115
Configuración apache en los servidores .................................................. 115
Prevenir mensaje advertencia al reiniciar servicio apache ................... 116
Instalación PHP 7.1 ................................................................................. 117
Instalación complementos extras ......................................................... 118
Configuración de servicios ....................................................................... 118
89
Instalación de Moodle ................................................................................. 118
CONFIGURACIONES ADICIONALES ........................................................ 128
Configuración adicional servicio SSH ...................................................... 128
Configuración HTTPS en los servidores apache ...................................... 129
Convertir plataforma web a HTTPS ......................................................... 131
Instalación PHPMYADMIN ...................................................................... 132
Configuración phpMyAdmin ..................................................................... 133
Configuración de Firewalls ....................................................................... 135
Recurso compartido SAMBA ................................................................... 138
Instalación samba en nodo principal .................................................... 138
Compartir moodledata en samba server .............................................. 139
Montar carpeta compartida en nodos samba cliente ............................ 139
Paquetes necesarios para utilizar samba ............................................. 139
Posibles errores al intentar montar recursos con samba: ..................... 140
Proceso de copias de seguridad de la plataforma ................................... 140
90
SERVICIO WEB
Topología de red propuesta
Creación Droplets en Digital Ocean
Como primer paso se debe crear un proyecto nuevo en la cuenta de Digital
Ocean. Se recomienda tener los servidores y de más servicios contratados en un
mismo proyecto para tener una mejor gestión a futuro. Se procede a seleccionar
un nombre.
91
Agregamos una breve descripción al proyecto y el tipo de proyecto que se está
realizando.
Una vez creado el proyecto nuevo se debe dar clic en el botón verde y
seleccionar la opción Crear Droplet.
Una vez abierta la nueva página se escoge un sistema operativo, en nuestro
caso CentOS 6.9.
92
Dependiendo de la topología de servidores requeridos en el proyecto se debe
elegir las características de estos. En caso de ser necesario mayor
almacenamiento se debe escoger Add Volume.
Es importante escoger la ubicación de los servidores más cercanos a nosotros.
En nuestro caso se seleccionó San Francisco.
93
Para acceder más rápido al servidor el tipo de autenticación debe ser por
contraseña. Mas adelante se bloqueará el acceso mediante el usuario root y se
empleará el uso de claves ssh privadas y públicas.
Se debe esperar a que el servidor se encienda por primera vez y se configure
correctamente.
94
Al correo utilizado para registrarse en Digital Ocean van a llegar las
contraseñas, direcciones ip y usuarios de los servidores que se vallan creando.
Solo queda agregar la dirección ip a un cliente SSH en nuestro caso utilizamos
Putty Client para Windows. La primera vez que se accede al servidor va a mostrar
95
una advertencia para agregar la huella digital del equipo a al archivo de equipos
confiables.
Como se accede por una contraseña predeterminada se debe cambiar en el
primer inicio de sesión por una más compleja. Se recomienda agregar una
contraseña con minúsculas, mayúsculas, números y caracteres especiales.
En el panel de gestión del proyecto se puede tener acceso a todos los
servidores que se tengan activos en la cuenta de Digital Ocean.
96
SERVICIO DE NOMBRE DOMINIO
Creación de un nombre de dominio
Para el acceso más fácil a las ip de los servidores provistos por Digital Ocean
se utilizará un dominio .TK sin costo del sitio web FREENOM. Es posible arrendar
el dominio por un tiempo límite de 12 meses.
97
Se debe apuntar el domino a la ip del balanceador de carga.
Una vez elegido el dominio se debe completar el pedido.
98
Para acceder a los dominios contratados se debe ir a la sección Mis Dominios.
En el panel de Mis Dominios se puede configurar distintos parámetros.
99
En el apartado del minio se debe seleccionar Servidores de nombres en la
sección de Herramientas de Gestión.
Se debe configurar los 3 servidores de nombre que provee Digital Ocean los
cuales son:
ns1.digitalocean.com
100
ns2.digitalocean.com
ns3.digitalocean.com
Configurar dominio en Digital Ocean
Una vez obtenido el dominio y se encuentre funcionando correctamente, para
una mejor administración del dominio se recomienda agregar para la creación de
subdominios directamente desde el panel de configuración de Digital Ocean.
Se debe crear un registro de los subdominios www y * para acceder a la página
web por con el dominio www.tesisug.tk así como también tesisug.tk.
101
Panel de control para administrar los subdominios creados.
Ejemplo de subdominios agregados para el proyecto de la plataforma Moodle.
tesisug.tk Servidor de Balanceador
s1.tesisug.tk Servidor Web 1 de Moodle
s1.tesisug.tk Servidor Web 2 de Moodle
102
db.tesisug.tk Servidor de Base de Datos
103
SERVIDOR BALANCEADOR DE CARGA
Instalación de HAProxy
1. Utilizar el comando para tener instalado el servicio de balanceo de carga
en el servidor.
yum install haproxy
Configuración Certificado SSL en balanceador de carga
1. Utilizar los siguientes comandos. Sitio web recomendado por el foro de
Moodle para obtener certificados SSL válidos y gratuitos por cortos
periodos para servidores de prueba. https://certbot.eff.org/lets-
encrypt/centos6-haproxy
Comandos
wget https://dl.eff.org/certbot-auto
sudo mv certbot-auto /usr/local/bin/certbot-auto
sudo chown root /usr/local/bin/certbot-auto
sudo chmod 0755 /usr/local/bin/certbot-auto
104
2. Instalar el certificado. sudo /usr/local/bin/certbot-auto certonly –standalone
3. Anadir los parámetros solicitados. Correo electrónico, Aceptar los términos
y condiciones, y por último agregar el dominio para obtener el certificado.
4. Para el correcto funcionamiento el servicio apache debe estar
deshabilitado para evitar el siguiente error.
105
5. Utilizar el siguiente comando para agregar al crontab una nueva condición
de renovación automática del certificado.
6. Instalación correcta del certificado con el servicio apache deshabilitado.
sudo yum httpd stop.
7. Crear una carpeta en el directorio raíz de haproxy.
8. Utilizar el siguiente comando para agrupar dos archivos del certificado en
un solo certificado.
mkdir /etc/haproxy/certs/
DOMAIN='www.proyectoug.tk' sudo -E bash -c 'cat
/etc/letsencrypt/live/$DOMAIN/fullchain.pem
/etc/letsencrypt/live/$DOMAIN/privkey.pem >
/etc/haproxy/certs/$DOMAIN.pem'
9. Editar el archivo haproxy con la siguiente configuración al final.
nano /etc/haproxy/haproxy.cfg
106
10. Una vez finalizado es necesario reiniciar el servicio haproxy con.
service haproxy restart
Una vez instalado el certificado SSL es necesario comprobar el correcto
funcionamiento entrado a nuestro sitio web con https.
Configuración de servicios
Es necesario configurar los servicios para que estos se inicien
automáticamente cada vez que se reinicie el servidor.
107
• Servicio de HAProxy.
Configuración archivo hosts
Configuramos el archivo de host para que el servidor trabaje con los nombres
que le proporcionaremos a los demás servidores en lugar de las direcciones IP.
1. Utilizamos el comando:
nano /etc/hosts
2. Realizamos la siguiente configuración:
# The following lines are desirable for IPv4 capable hosts 127.0.0.1 balanceador balanceador 127.0.0.1 localhost.localdomain localhost 127.0.0.1 localhost4.localdomain4 localhost4 10.132.204.21 moodle1 10.132.80.113 moodle2 10.132.219.130 mysql # The following lines are desirable for IPv6 capable hosts ::1 balanceador balanceador ::1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6
Configuración de HAProxy
Para realizar el equilibrio de carga entre los servidores de aplicaciones se
realiza la siguiente configuración:
#--------------------------------------------------------------------- # Example configuration for a possible web application. See the # full configuration options online. # # http://haproxy.1wt.eu/download/1.4/doc/configuration.txt # #--------------------------------------------------------------------- #--------------------------------------------------------------------- # Global settings #--------------------------------------------------------------------- global # to have these messages end up in /var/log/haproxy.log you will # need to:
chkconfig --level 345 haproxy on
108
# # 1) configure syslog to accept network log events. This is done # by adding the '-r' option to the SYSLOGD_OPTIONS in # /etc/sysconfig/syslog # # 2) configure local2 events to go to the /var/log/haproxy.log # file. A line like the following can be added to # /etc/sysconfig/syslog # # local2.* /var/log/haproxy.log # log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon tune.ssl.default-dh-param 2048 # turn on stats unix socket stats socket /var/lib/haproxy/stats #--------------------------------------------------------------------- # common defaults that all the 'listen' and 'backend' sections will # use if not designated in their block #--------------------------------------------------------------------- defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 #---------------------------------------------------------------------
109
# main frontend which proxys to the backends #--------------------------------------------------------------------- #frontend main *:5000 # acl url_static path_beg -i /static /images /javascript /stylesheets # acl url_static path_end -i .jpg .gif .png .css .js # # use_backend static if url_static # default_backend app #--------------------------------------------------------------------- # static backend for serving up images, stylesheets and such #--------------------------------------------------------------------- #--------------------------------------------------------------------- # round robin balancing between the various backends #--------------------------------------------------------------------- frontend localhost bind *:80 bind *:443 ssl crt /etc/haproxy/certs/tesisug.tk.pem mode http http-request redirect scheme https unless { ssl_fc } default_backend nodes backend nodes # mode http balance roundrobin option forwardfor option httpchk HEAD / HTTP/1.1\r\nHost:localhost server web01 moodle1:80 check server web02 moodle2:80 check http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
110
SERVIDOR DE BASE DE DATOS
Instalación de MySQL 5.6
Fuente: https://sharadchhetri.com/2013/12/26/install-mysql-server-5-6-in-
centos-6-x-and-red-hat-6-x-linux/
NOTA: Los siguientes comandos deben ser utilizados desde el usuario “root”,
si no posee los permisos necesarios para usar dicho usuario consulte a su
administrador.
Paso 1. Después de iniciar sesión, instale el programa “wget”, necesario para
descargar otros programas desde la web.
Paso 2. Descargue el paquete rpm que contiene MySQL.
Paso 3. Instale el paquete rpm descargado.
Paso 4. Instale el servidor MySQL.
# yum -y install wget
wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
rpm -ivh mysql-community-release-el6-5.noarch.rpm
111
Paso 5. Inicie el servicio de MySQL.
Otra opción de este comando es:
Paso 6. Debido a que se acaba de instalar el servidor MySQL, la contraseña
“root” se encuentra en blanco, para realizar la configuración inicial use el siguiente
comando:
Siga las instrucciones:
Escriba “y” (sin comillas) y presione la tecla “Enter”.
Introduzca su nueva contraseña y presione “Enter”.
Vuelva a introducir su nueva contraseña y presione “Enter”.
Escriba “y” (sin comillas) y presione la tecla “Enter”.
Escriba “n” (sin comillas) y presione la tecla “Enter”.
Escriba “y” (sin comillas) y presione la tecla “Enter”.
Escriba “y” (sin comillas) y presione la tecla “Enter”.
Paso 7. Instalamos el editor “nano”.
Paso 8. Ingresamos al archivo “my.cnf”
Paso 9. Editamos y escribimos las siguientes líneas:
Antes:
yum -y install mysql-server
service start mysqld
/etc/init.d/mysqld start
mysql_secure_installation
Set root password? [Y/n]
New password:
Re- enter new password:
Remove anonymous users? [Y/n]
Disallow root login remotely? [Y/n]
Remove test database and Access to it? [Y/n]
Reload privilege tables now? [Y/n]
yum -y install nano
nano /etc/my.cnf
112
Después:
Para guardar los cambios presione “ctrl” + “o” y luego presione “Enter”.
Para salir presione “ctrl” + “x”.
Paso 10. Añadir el servicio de MySQL para que se inicie automáticamente
cuando se reinicie el servidor.
Configuración base de datos MySQL
Paso 1. Ingresar al servidor MySQL (introduzca su contraseña root
previamente establecida).
Paso 2. Crear la base de datos.
Donde:
“dbmoodle” es el nombre de la base de datos.
Paso 3. Crear usuario y contraseña vinculado a la base de datos creada en el
paso anterior.
Donde:
“admin” es el nombre del usuario.
“%” permite que dicho usuario pueda ser accedido desde cualquier host.
mysql -u root -p
CREATE DATABASE dbmoodle CHARSET 'utf8mb4';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY
TABLES, DROP, INDEX, ALTER ON dbmoodle.* TO admin@'%' IDENTIFIED BY
'M@@dle19';
chkconfig --level 345 mysqld on
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld]
.
.
.
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
113
“M@@dle19” es la contraseña del usuario.
Paso 4. Refrescar la tabla de los privilegios.
Paso 5. Salir del servidor.
Configuración archivo hosts
Configuramos el archivo de hosts para que el servidor trabaje con los nombres
que le proporcionaremos a los demás servidores en lugar de las direcciones IP.
1. Utilizamos el comando:
nano /etc/hosts
2. Realizamos la siguiente configuración:
# The following lines are desirable for IPv4 capable hosts 127.0.0.1 balanceador balanceador 127.0.0.1 localhost.localdomain localhost 127.0.0.1 localhost4.localdomain4 localhost4 10.132.204.21 moodle1 10.132.80.113 moodle2 10.132.91.155 balanceador # The following lines are desirable for IPv6 capable hosts ::1 balanceador balanceador ::1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6
Configuración de servicios
Es necesario configurar los servicios para que estos se inicien
automáticamente cada vez que se reinicie el servidor.
• Servicio de MySQL.
FLUSH PRIVILEGES;
quit
chkconfig --level 345 mysqld on
114
SERVIDORES DE APLICACIONES
Moodle 3.7
Para la instalación de la plataforma Moodle es necesaria la instalación de otras
aplicaciones como bases de datos, servidores de aplicaciones, entre otros y
configurar el archivo de configuraciones de moodle.
Prerrequisitos
Para la instalación de Moodle 3.7 es necesaria la instalación de los siguientes
programas y complementos con anticipación:
• MySQL 5.6 (servidor de base de datos)
• Apache o HTTPD
• PHP 7.1
• ZIP
• XML
• XMLRPC
• SOAP
115
Configuración archivo hosts
Para las configuraciones de parámetros de servicios dentro de los servidores
se emplea el uso de nombres más fáciles de recordar en vez de todas las
direcciones IP de los servidores.
1. Abrir el archivo hosts
nano /etc/hosts
2. La correcta configuración es: IP nombre; 192.168.1.10 servidor1
3. Se recomienda el uso de las direcciones ip privadas para una mayor
seguridad. A continuación, un Ejemplo de cómo debería agregarse nuevas
líneas al archivo hosts.
# The following lines are desirable for IPv4 capable hosts
127.0.0.1 moodle1 moodle1
127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost4.localdomain4 localhost4
10.132.80.113 moodle2
10.132.219.130 mysql
10.132.91.155 balanceador
# The following lines are desirable for IPv6 capable hosts
::1 moodle1 moodle1
::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
Configuración apache en los servidores
1. Solo es necesario utilizar el comando para instalar apache si es que no
vino instalado por defecto.
116
Prevenir mensaje advertencia al reiniciar servicio apache
Cuando se reinicia el servicio de apache en CentOS es común que salga una
advertencia de nombre no valido.
1. Editar el archivo httpd.conf
2. Utilizar el atajo Control + W
3. Buscar ServerName y dar ENTER
4. Des comentar la línea y utilizar un nombre diferente a localhost
5. Verificar la ausencia de la advertencia reiniciando el servicio apache.
117
Instalación PHP 7.1
Fuente: https://www.sololinux.es/instalar-php7-en-centos6/
Paso 1. Descargamos e instalamos Epel.
Paso 2. Instalamos el editor “nano”.
Paso 3. Ingresamos al archivo “epel.repo”
Paso 4. En la cuarta línea cambiamos "https" por "http":
Antes:
Después:
Para guardar los cambios presione “ctrl” + “o” y luego presione “Enter”.
Para salir presione “ctrl” + “x”.
Paso 5. Instalar las utilidades.
Paso 6. Habilitar el repositorio yum de PHP.
Paso 7. Instalar PHP 7.1 con el siguiente comando.
yum -y install http://rpms.remirepo.net/enterprise/remi-release-6.rpm
yum -y install nano
nano /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
yum -y install yum-utils
yum-config-manager --enable remi-php71
yum -y install php71 php71-php php71-php-pear php71-php-bcmath php71-php-pecl-jsond-
devel php71-php-mysqlnd php71-php-gd php71-php-common php71-php-fpm php71-php-intl
php71-php-cli php71-php php71-php-xml php71-php-opcache php71-php-pecl-apcu php71-
php-pecl-jsond php71-php-pdo php71-php-gmp php71-php-process php71-php-pecl-imagick
php71-php-devel php71-php-mbstring
118
Paso 8. Instalar otras dependencias de PHP:
NOTA: el siguiente comando pertenece a https://linuxize.com/post/install-php-
7-on-centos-7/#configuring-php-7-x-to-work-with-nginx
Paso 9. Verificar la versión de PHP.
La salida debe ser:
Instalación complementos extras
• Instalar PECL ZIP.
• Instalar XML.
• Instalar XMLRPC.
• Instalar SOAP.
Configuración de servicios
Es necesario configurar los servicios para que estos se inicien
automáticamente cada vez que se reinicie el servidor.
• Servicio de Apache.
Instalación de Moodle
Paso 1. Descargar Moodle desde el sitio oficial https://moodle.org/
yum -y install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysql
php -v
PHP 7.1.33 (cli) (built: Oct 23 2019 07:37:51) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.1.33, Copyright (c) 1999-2018, by Zend Technologies
yum -y install php71-php-pecl-zip.x86_64
yum -y install php71-php-xml
yum -y install php71-php-xmlrpc
yum -y install php71-php-soap
chkconfig --level 345 httpd on
119
Puede descargar la última versión de Moodle en https://download.moodle.org/
O puede elegir una de las versiones anteriores en
https://download.moodle.org/releases/supported/
120
Paso 2. Verificamos la dirección donde se ha guardado la descarga
Paso 3. Usaremos un servidor SFTP, en este caso “FileZilla”.
Podemos descargarlo de https://filezilla-project.org/download.php
Instalamos y abrimos.
121
Paso 4. Desde la consola accedemos en el servidor hasta la ruta /var/www/
Paso 5. Creamos la carpeta “moodledata”.
Paso 6. Otorgar permisos de escritura a la carpeta.
Paso 7. Ingresar al servidor mediante FileZilla, colocamos la ip del servidor, el
nombre del usuario, la contraseña y el puerto
cd /var/www/
mkdir moodledata
chmod 777 moodledata
122
Paso 8. Ingresamos y accedemos hasta la ruta /var/www/html
Paso 9. Arrastramos el archivo comprimido de moodle hasta la carpeta html
123
Paso 10. Desde la consola accedemos en el servidor hasta la ruta
/var/www/html/
Paso 11. Descomprimimos el archivo comprimido de Moodle.
Paso 12. Otorgar permisos de escritura a la carpeta.
Paso 13. Desde el navegador accedemos a la interfaz del instalador de Moodle
escribiendo la ip del servidor y la ruta del instalador de Moodle, en este caso es:
http://167.172.231.142/moodle/install.php
Damos clic en “next”
Paso 14. Verificamos que las direcciones correspondan y damos clic en “next”.
tar -xzvf moodle-latest-37.tgz
chmod 777 moodle
cd /var/www/html/
124
Paso 15. Elegimos el driver de la base de datos.
Paso 16. Desde la consola accedemos en el servidor hasta la ruta
/var/www/html/moodle
Paso 17. Creamos una copia de la plantilla de configuración inicial de Moodle:
Paso 18. Ingresamos a editar el archivo config.php y configuramos de la
siguiente manera:
cd /var/www/html/moodle
cp config-dist.php config.php
nano config.php
125
Antes:
Después:
Para guardar los cambios presione “ctrl” + “o” y luego presione “Enter”.
Para salir presione “ctrl” + “x”.
Paso 19. Volvemos al navegador y damos clic en next.
$CFG->dbtype = 'pgsql'; // 'pgsql', 'mariadb', 'mysqli', 'sqlsrv' or 'oci' $CFG->dblibrary = 'native'; // 'native' only at the moment $CFG->dbhost = 'localhost'; // eg 'localhost' or 'db.isp.com' or IP $CFG->dbname = 'moodle'; // database name, eg moodle $CFG->dbuser = 'username'; // your database username $CFG->dbpass = 'password'; // your database password
$CFG->dbtype = 'mysqli'; // 'pgsql', 'mariadb', 'mysqli', 'sqlsrv' or 'oci' $CFG->dblibrary = 'native'; // 'native' only at the moment $CFG->dbhost = '165.227.100.152'; // eg 'localhost' or 'db.isp.com' or IP $CFG->dbname = 'dbmoodle'; // database name, eg moodle $CFG->dbuser = 'admin'; // your database username $CFG->dbpass = 'M@@dle19'; // your database password
126
Paso 20. Leemos los términos y damos clic en continuar.
Paso 21. Comprobamos que los requisitos estén listos.
127
Paso 22. Continuamos y procedemos a instalar.
Paso 23. Introducimos los datos de administración de la plataforma
128
Paso 24. Tenemos acceso a la administración del sitio.
CONFIGURACIONES ADICIONALES
Para acceder a la configuración se puede utilizar vim o nano, por lo que algún
editor de texto debe estar instalado.
Configuración adicional servicio SSH
1. Abrir el archivo de configuración de ssh
nano /etc/ssh/sshd_config
2. Configurar la línea Port para cambiar el Puerto por defecto 22 de ssh a uno
diferente como parámetros extras de seguridad.
129
3. La línea PermitRootLogin no
4. Para finalizar hay que reiniciar el servicio de SSH.
Configuración HTTPS en los servidores apache
Para la navegación más segura con HTTPS y por el puerto 443 es necesario
instalar en los nodos web que tengan instalados apache el módulo ssl.
1. Utilizar el comando para instalar el complemento.
130
2. Reiniciar el servicio de apache en CentOS.
3. Navegar a la dirección ip del servicio web utilizando https en la url en vez
de http que es utilizado por defecto.
4. Una vez acetado la advertencia de un certificado no valido, validar si la
página web se carga correctamente.
131
Convertir plataforma web a HTTPS
Para evitar problemas en la navegación de la plataforma con HTTPS es
recomendable utilizar la herramienta HTTPS del propio moodle para que la
plataforma admita correctamente la navegación segura.
1. Es necesario ir a la sección de administración de moodle y en el
buscador poner HTTPS, y seleccionar la herramienta de conversión a
HTTPS. La opción también se encuentra en la categoría de seguridad de
la Administración del sitio.
2. Una vez ingresado a la herramienta se debe dar clic en Continuar.
132
3. Finalizado la carga de todos los enlaces de la plataforma se debe confirmar
el cambio a HTTPS dando clic en el botón.
4. Por último, dar clic en Continuar para finalizar la conversión del sitio web.
Instalación PHPMYADMIN
Previamente se debe tener instalado apache o httpd, así como También el
módulo de PHP en el servidor.
cd ~
133
wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-
8.noarch.rpm
sudo rpm -ivh epel-release*
1. Nota: El segundo comando requiere que tenga instalado wget, si la
consola indica que no reconoce este comando, puede instalarlo
usando: yum install wget
2. Configure Apache con SSL, de manera que sus contraseñas no sean
enviadas sobre texto plano. Para hacerlo, debe seguir el tutorial
de Certificados SSL con Apache en CentOS.
3. Instale el módulo PHP mycrypt:
4. sudo yum install php-mcrypt
5. Reinicie Apache:
sudo service httpd restart
Instale phpMyAdmin ejecutando el siguiente comando:
sudo yum install phpMyAdmin
Configuración phpMyAdmin
Por defecto, phpMyAdmin está configurado para solo permitir el acceso desde
el localhost (127.0.0.0.1). Usted deberá agregar la dirección IP de su computador
con el fin de poder acceder.
1. Tome nota de la dirección IP externa que está siendo usada por el
computador de su trabajo u hogar. Puede visitar el siguiente sitio web para
hacerlo: What is my IP?.
2. Edite la configuración del archivo ubicado
en /etc/httpd/conf.d/phpMyAdmin.conf, remplazando las cuatro
instancias de 127.0.0.1 con la dirección IP anotada en el paso anterior.
3. sudo service httpd restart
4. Modificar el archivo /etc/httpd/conf.d/phpMyAdmin.conf
<Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require all granted Require ip 127.0.0.1 Require ip ::1 </RequireAny> </IfModule> <IfModule !mod_authz_core.c>
134
# Apache 2.2 Order Deny,Allow #Deny from All Allow from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory> <Directory /usr/share/phpMyAdmin/setup/> <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require all granted Require ip 127.0.0.1 Require ip ::1 </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow #Deny from All Allow from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory>
135
Configuración de Firewalls
Para crear un grupo de nuevas reglas de firewall se debe ir a la pestaña Networking de
Manage.
Una vez dar clic en Create Firewall.
En la configuración de los grupos de políticas puede ir a la sección droplets para agregar
los servidores que utilizaran esa configuración.
136
Balanceador
El balanceador es el servidor al cual tendrán acceso los usuarios y por ende deben estar
habilitados los puertos TCP 80 y 443 utilizados por defecto para conexiones HTTP y
HTTPS.
Servidores Web
137
Los nodos del clúster de servidores web deben compartir la misma configuración de
Firewall. Por lo que se pueden agrupar varios dobles a una sola configuración de
cortafuegos.
Puertos permitidos de entrada: 80 y 443 HTTPS (permitido solo al balanceador)
139, 445, 137 Servicio Samba (permitido solo a servidores
web)
6122 servicio web moodle 1 (cualquier ip)
6222 servicio web moodle 2 (cualquier ip)
Base de Datos
138
Las reglas de entrada del firewall de la base de datos deben permitir conexión en el
puerto TCP por defecto de mysql 3306 solo a los servidores web por motivos de seguridad
y no tener los datos accesibles a todo el mundo.
El puerto TCP 80 es utilizado por el servicio phpMyAdmin de interfaz grafico
desarrollando en PHP para administrar bases de datos. Recomendable cambiar el puerto
por defecto a uno completamente diferente.
Recurso compartido SAMBA
Para compartir la carpeta moodledata entre los distintos nodos, se utilizó el servicio samba para
compartir el directorio de un nodo principal con los secundarios.
Instalación samba en nodo principal
1. Primero se debe instalar el paquete "samba":
# yum install samba
2. Una vez instalado se inicia el servicio smbd:
# service smb start
139
Compartir moodledata en samba server
La carpeta moodledata almacena información necesaria como sessions, cache, temp
importante para los usuarios y la correcta visualización de la plataforma por lo que es
altamente recomendable compartir la carpeta para que todos los nodos de la plataforma
sean lo más semejante posible y la navegación en la plataforma sea transparente para
el usuario desde cualquier servidor web.
1. Como prueba se puede crear una carpeta que apunte al directorio
/var/www/moodledata, agregando las siguientes líneas en el archivo: nano
/etc/samba/smb.conf
[moodle]
comment = Moodledata
path = /var/www/moodledata
public = no
writable = yes
printable = no
2. Para reflejar el cambio es necesario reiniciar el servicio smbd
# service smb restart
Listo la carpeta moodledata ya se encuentra compartida.
Montar carpeta compartida en nodos samba cliente
En GNU/Linux es posible montar una carpeta desde la consola utilizando "mount" y
el tipo de sistema de archivos "cifs" de la siguiente forma:
1. Crear la carpeta moodledata vacía en /var/www/moodledata
$ mkdir /var/www/moodledata
2. Montar la carpeta compartida en un directorio del nodo maestro.
$ mount -t cifs //moodle1/moodle -o username=apache, password=moodle
/var/www/moodledata
Paquetes necesarios para utilizar samba
Seguramente recibiremos algún error si no tenemos instalados los paquetes
siguientes:
–> nfs-common
–> smbclient (Cliente SMB que puede comunicarse con el servidor SMB)
–> cifs-utils Así que los instalaremos para poder realizar el montaje del recurso compartido
sudo apt-get install nfs-common (para evitar el error mount: wrong fs type ...)
sudo apt-get install smbclient
140
sudo apt-get install cifs-utils
Posibles errores al intentar montar recursos con samba:
Uno de los errores que puede aparecer (si no hemos instalado el paquete nfs-
common) :
mount: wrong fs type, bad option, bad superblock on …
Proceso de copias de seguridad de la plataforma
Para realizar los respaldos de seguridad de las carpetas moodle, moodledata y las
bases de datos, se debe seguir los siguientes pasos. Todos los archivos script .sh debe
de tener permisos de ejecución con el comando “chmod +x archiv.sh”
Servidor Web Principal
El script se llama bkcopy.sh, se desactiva apache durante realización de la copia de
seguridad. El primer paso es ir a la ruta donde esta almacenado moodle agregar
permisos de escritura y comprimir la carpeta en un archivo zip llamado moodle.zip
ubicado en la carpeta backups. Lo mismo se realiza con la carpeta moodledata. Una vez
finalizado la copia se inicializa el servicio apache, después accede por ssh al servidor
de la base de datos para ejecutar el script bkdb.sh. El último paso del script es acceder
y ejecutar el script copy.sh en los servidores web secundarios para descomprimir las
copias de seguridad.
cd /scripts/backups/ rm -rf * #service httpd stop #Respaldar moodle echo Respaldando moodle cd /var/www/html/ chmod -R 777 moodle chmod 777 moodle zip -r /scripts/backups/moodle.zip moodle/ #Respaldar moodledata echo Respaldando moodledata cd /var/www/ chmod -R 777 moodledata chmod 777 moodledata zip -r /scripts/backups/moodledata.zip moodledata/ #service httpd start echo Limpiando caches php /var/www/html/moodle/admin/cli/purge_caches.php echo Cargando pagina
141
curl -s -w "\nConnect time: %{time_connect} Time to first byte: %{time_starttransfer} Total time: %{time_total} \n" -o /dev/null 'https://tesisug.tk/moodle/theme/styles_debug.php?theme=boost&type=scss'
#Respaldar database echo Respaldando base de datos ssh root@mysql -p 443 /scripts/bkdb.sh ls /scripts/backups/ #Copiar en moodle2 echo Copiando en moodle2 ssh root@moodle2 -p 6222 /scripts/copy.sh
El archivo bkonly realiza la misma función del script anterior salvo porque este
descomprime los respaldos en los servidores web secundarios.
cd /scripts/backups/
rm -rf *
#service httpd stop
#Respaldar moodle
echo Respaldando moodle
cd /var/www/html/
chmod -R 777 moodle
chmod 777 moodle
zip -r /scripts/backups/moodle.zip moodle/
#Respaldar moodledata
echo Respaldando moodledata
cd /var/www/
chmod -R 777 moodledata
chmod 777 moodledata
zip -r /scripts/backups/moodledata.zip moodledata/
#service httpd start
echo Limpiando caches
php /var/www/html/moodle/admin/cli/purge_caches.php
echo Cargando pagina
curl -s -w "\nConnect time: %{time_connect} Time to first byte:
%{time_starttransfer} Total time: %{time_total} \n" -o /dev/null
'https://tesisug.tk/moodle/theme/styles_debug.php?theme=boost&type=scss'
#Respaldar database
echo Respaldando base de datos
ssh root@mysql -p 443 /scripts/bkdb.sh
ls /scripts/backups/
Servidores Web Secundarios
142
Script que se encarga de detener el servicio apache, copiar la copia de seguridad
del nodo principal mediante sftp con el comando scp, para descomprimir la copia de
seguridad en el servidor actual. Luego agrega los permisos de escritura y lectura a la
carpeta moodle. Para luego habilitar el servicio apache de nuevo.
cd /scripts/backups/
rm -rf *
#service httpd stop
echo Copiando carpeta moodle
scp -P 6122 root@moodle1:/scripts/backups/moodle.zip
/scripts/backups/moodle.zip
echo Descomprimiendo moodle
unzip /scripts/backups/moodle.zip -d /var/www/html/
ls /scripts/backups/
cd /var/www/html/
chmod -R 777 moodle
chmod 777 moodle
#service httpd start
echo Limpiando caches
php /var/www/html/moodle/admin/cli/purge_caches.php
echo Cargando pagina
curl -s -w "\nConnect time: %{time_connect} Time to first byte:
%{time_starttransfer} Total time: %{time_total} \n" -o /dev/null
'https://tesisug.tk/moodle/theme/styles_debug.php?theme=boost&type=scss'
Base de datos
Script para respaldar en la carpeta backups las copias de seguridad de la base de
datos de moodle y de la base de datos del registro de nuevos estudiantes a la
plataforma.
cd /script/backups/
mysqldump -h localhost -u root -p'moodle' -C -Q -e --create-options dbmoodle
> dbmoodle.sql
mysqldump -h localhost -u root -p'moodle' -C -Q -e --create-options
moodle_students > moodle_students.sql
ls