martes, 9 de junio de 2015

Presentación de trabajos de los alumnos. Lunes 8 de junio

El lunes 8 de junio, en las sesiones de teoría y de prácticas, se presentaron los siguientes trabajos realizados por los alumnos de la asignatura:

"DMZ Doble"

El objetivo del trabajo es montar una configuración DMZ Doble (DMZ con Dual Firewall) para proteger los servidores de accesos indebidos a través de la red interna y externa. Se han configurado 6 máquinas virtuales, 2 clientes, 2 firewall (que además funcionarán como router) y 2 servidores. Cada máquina pertencerá a una subred distinta por lo que es necesario definir algunas reglas de enrutamiento para poder tener conectividad. Para finalizar, realizamos la configuración de los firewall a través de iptables que será lo que deniegue o permita el acceso de redes externas o internas a nuestra noza segura (red de servidores).

La memoria está en:
 https://github.com/Ariacus/DMZ-Dual-Firewall


"Instalación y configuración de un servidor NFS en Ubuntu Server"

El trabajo se presenta como una guía concisa explicando en qué consiste el protocolo NFS (Network File System) y cómo implementar su funcionamiento en tres máquinas. De esta forma se sincronizan directorios entre dos clientes y un servidor, sirviendo además de muestra en la compatibilidad de diferentes sistemas operativos funcionando bajo ésta tecnología.

La memoria está en:
 https://github.com/mpvillafranca/swap1415/tree/master/Teoria/Trabajo


"Creando una REST en Node.js"

Este trabajo versa sobre la filosofía REST, y  pretende arrojar un poco de luz sobre sus conceptos, además de dar un ejemplo práctico de una API REST simple hecha con NodeJS, express y mongoDB, que tendrá como funcionalidad gestionar las asignaturas cursadas en una carrera universitaria.

La memoria está en:
 https://github.com/NAEL1/SWAP2015/tree/master/trabajo_SWAP
 https://docs.google.com/presentation/d/1zg3bfa5bl6oVRVxyH3mMYdlThQXXNagAfObId2D1fBA/edit?usp=sharing



"Hardware y Software de Twitter"

En éste trabajo se presentan las herramientas hardware y software utilizadas en Twitter desde su inicio hasta la actualidad, así como los cambios que ha ido realizando para tener mejoras de tiempo (nuevos lenguajes de programación, nuevas bases de datos, software para otras funcionalidades).

La memoria está en:
 https://github.com/cesar2/swap1415/blob/master/Trabajo/Trabajo_Hardware_software_Twitter.md
La presentación está en:
 https://github.com/cesar2/swap1415/blob/master/Trabajo/Presentaci%C3%B3n%20Twitter.pptx


"Openshift"

En este trabajo se presenta OpenShift, explicando qué es, cual es el concepto de PaaS, comentando algunas ventajas, características y sus componentes principales. Además, se ofrece un ejemplo detallado de aplicación web en PHP con almacenamiento de datos en una BD en MySQL.

La memoria está en:
 https://github.com/JesGor/SWAP2015/tree/master/openshift
 

"Despliegue de aplicaciones web Django usando Nginx"

En este trabajo se explican brevemente algunos conceptos sobre Django, Nginx, Gunicorn (wsgi server), Filezilla, Pip. A continuación se detalla, paso a paso, una aplicación montada en local usando los diferentes servicios nombrados, de forma que cualquiera pueda ir montando sus aplicaciones web en un servidor VPS, crear varios virtualhosts, etc.

La memoria está en:
 https://github.com/jesusgn90/SWAP2015/blob/master/Teoria/TrabajoDespliegueVPS.pdf


"Balanceadores de Carga y Algoritmos de Balanceo "

Se han estudiado diferentes balanceadores de carga que están a disposición del usuario como software libre. En este caso se ha usado Nginx, ZenLoader y Octopus, realizándose pruebas con diferentes algoritmos en cada uno de ellos y evaluando el resultado obtenido. Además se comentan las diferencias que existen entre ellos.

La memoria está en:
 https://github.com/javiergarridomellado/SWAP2015/tree/master/TrabajoFinalSWAP
 https://github.com/mabarrbai/swap1415/tree/master/Trabajo%20final


"Conecta tu app iOS con tu servidor"

Este trabajo aborda las particularidades y características de la conexión un servidor con una aplicación para iPhone OS. Se exponen muestras de código y se explica el procedimiento de configuración del servidor para el correcto funcionamiento de la comunicación dispositivo-servidor, tanto en base de datos y código de lado servidor como de lado cliente. El ejemplo con el que se ha realizado el trabajo es una aplicación móvil que gestiona la información que trata otra aplicación móvil destinada al turismo. Contiene la funcionalidad de crear, modificar, editar y borrar los datos, que están ubicados en una base de datos en el servidor.

La memoria está en:
 https://github.com/nicovalero/SWAP


"Seguridad en Apache"

Este trabajo aborda el tema de la seguridad en Apache, tratando las directivas fundamentales tanto en funcionamiento como en demostración, y finalmente detallando cómo hacer uso de la encriptación en apache.

La memoria está en:
 https://github.com/lorenmanu/swap1415

lunes, 8 de junio de 2015

Presentación de trabajos de los alumnos. Lunes 1 y martes 2 de junio

El lunes 1 y el martes 2 de junio, en las sesiones de teoría y de prácticas, se presentaron los siguientes trabajos realizados por los alumnos de la asignatura:

"Configuración de nginx y haproxy"

El objetivo es configurar nginx y haproxy con distintos algoritmos de carga y comparar su rendimiento
utilizando herramientas como apache benchmark y siege.

La memoria está en:
 https://github.com/acasadoquijada/swap1415
 https://github.com/srmf9/SWAP/tree/master/TrabajoSWAP


"OpenShift: Plataforma abierta como servicio"

En este trabajo se detalla el proceso de creación y despliegue de una aplicación web completa en la plataforma OpenShift.

La memoria está en:
 https://github.com/makelele29/SWAP/tree/master/Trabajo
 https://github.com/cr13/SWAP2015/tree/master/Trabajo%20(OpenShift)
 https://github.com/insua1990/SWAP/tree/master/Openshift


"Montar un cluster con raspberry"

Este trabajo consiste en la creación de una granja web con tres raspberrys-pi-2. En él se trata el tema de la instalación del servidor web, el balanceador, la réplica de los archivos y las bases de datos, así como las pruebas de rendimiento. Finalmente se explica la configuración IP para su correcto acceso de forma local y externa, y una pequeña demostración real instalando un CMS donde se muestra el reparto de carga y la réplica de información tanto de ficheros como de las tuplas almacenadas en las bases de datos de cada servidor.

La memoria está en:
 https://github.com/jfranguerrero/SWAP/tree/master/TrabajoFinal


"Granja web en equipos reales"

Se ha configurado una granja web usando 15 equipos reales, de los cuales 12 hacen de servidores web con entorno LAMP + Joomla y los 3 restantes equipos hacen de balanceadores de carga. Uno de ellos es el principal con Nginx, el cual sirve las peticiones a otros 2 balanceadores con HAProxy y Nginx, en los que cada uno envía las peticiones a 6 servidores web finales. Hemos hecho tests de estrés tanto a los servidores web como a los balanceadores con Siege y Apache benchmark.

La memoria está en:
 https://github.com/antoniocordonie/SWAP2015/tree/master/TrabajoFinal
 https://github.com/alexrodriguezlop/swap2015/tree/master/TrabajoFinal


"Granjas Web en Windows"

El uso de granjas web para dar servicio web a los clientes es de vital importancia, por la escalabilidad, la redundancia y la alta disponibilidad que ofrecen. En este trabajo se presenta el desarrollo de parte de las tareas de las prácticas de la asignatura utilizando en este caso las tecnologías de Microsoft. Concretamente, en el trabajo se ha usado Windows Server con IIS en lugar de Apache.

La memoria está en:
 https://github.com/azpe/SWAP_practicas/tree/master/Trabajo%20Teor%C3%ADa%20(Granja%20Web%20en%20Windows)
 

"Windows Azure"

Windows Azure proporciona un entorno gestionado para la ejecución y despliegue de aplicaciones y servicios en la nube. En este trabajo tratamos los servicios que, a nuestro parecer, son los más interesantes para un usuario medio. Se realiza una pequeña introducción seguida de una demostración de la instalación a modo de tutorial de aplicaciones Web, máquinas virtuales (tanto desde la interfaz web que nos ofrece azure como desde nuestra propia máquina a través de la terminal), servicios móviles, servicios en la nube, bases de datos SQL, servicios de almacenamiento y, por último, servicios multimedia.

La memoria está en:
 https://github.com/mortega87/SWAP2015/tree/master/Trabajo_Final


"Configuración de una Base de datos Maestro-Maestro en MYSQL"

En este trabajo se han montado dos servidores de Base de Datos para hacer una configuración maestro-maestro con MySQL. De esta forma, cualquier cambio que realicemos en una de las BD, (ya sea inserción, borrado, actualización, creación de nuevas tablas...), se replicará automáticamente en la otra máquina. Por lo tanto, tendremos siempre todos los datos replicados en nuestros servidores, lo que proporciona alta disponibilidad.

La memoria está en:
 https://github.com/aserranogomez/SWAP14-15/tree/master/Trabajo%20Teoria
 https://github.com/manolotello7/SWAP14-15/tree/master/Trabajo


"Instalación en máquina virtual en Azure de servidor XMPP y muestra con clientes"

Son muchas las posibilidades de sacar rendimiento a un servidor en la nube, y una de las mejores plataformas para ello es Azure, desde la cuál podemos montar un servidor a nuestro gusto. Ua de las posibilidades para ese servidor es el poder instalar un servicio como Ejabber para interconectar clientes y poder tener nuestro propio servicio tipo "Skype". Así podemos ofrecer llamadas, videollamadas, chats, conferencias, etc.

La memoria está en:
 https://github.com/RaulSFuentes/SWAP2015/blob/master/trabajo/trabajo.md
 https://www.powtoon.com/show/g3f1Br8sZvF/swap/#/


"iptables y firewall"

Este trabajo presenta la herramienta iptables, el complemento de netfilter. Se han descrito la sintaxis y las órdenes básicas así como algunos ejemplos de bloqueos, de prerouting, y del mantenimiento de archivos log.

La memoria está en:
 https://github.com/migueib17/SWAP2015/tree/master/TRABAJO


"Qué es memcached y demo de cómo usarlo"

Este trabajo presenta la herramienta Memcached, que se emplea para el almacenamiento en cache de datos u objetos en la memoria RAM, reduciendo así las necesidades de acceso a un origen de datos externo. Funciona mediante una arquitectura cliente-servidor, tanto en un mismo ordenador como en varios, organizados por algoritmos hash que se encargan de la organización de memoria. Se incluye una demo detallando cómo usar la herramienta.

La memoria está en:
 https://github.com/reyic/SWAP1415/tree/master/Trabajo%20Memcached


"Replicación de máquinas virtuales usando la herramienta Amazon EC2"

En este trabajo se presenta el uso de la plataforma Amazon EC2 para la virtualización de servidores en la nube con el objetivo de crear y gestionar granjas web. También se explican las características de esta plataforma, se enseña cómo crear una cuenta y finalmente se presenta un caso práctico: crear una granja de servidores localizada en Irlanda sobre la que aplicamos algunos de los conocimientos adquiridos en las prácticas.

La memoria está en:
 https://docs.google.com/presentation/d/1XF0Nm-N7MLAiIFSDUFpJN_BTXyOo_hkbX6itO8uxtcU/edit?usp=sharing


"haproxy – heartbeat – nginx"

Este trabajo trata acerca de cómo montar una granja web con alta disponibilidad con balanceo de carga en Ubuntu Server 12.04 utilizando HAProxy, HeartBeat y Nginx. Para ello utilizaremos dos balanceadores con HAProxy en los que uno estará funcionando y el otro no. En el momento en que uno de los servidores falle, el otro lo detecta por medio del servicio Heartbeat y pasa a ser el que controle el balanceo.

La memoria está en:
 https://github.com/leocastillo/swap1415/tree/master/Trabajo_haproxy%20%E2%80%93%20heartbeat%20%E2%80%93%20nginx
 https://github.com/juaneml/SWAP2015/tree/master/TRABAJO


"Comparación del hardware para servidores web IBM, HP, Dell y Fujitsu"

En este trabajo se lleva a cabo una comparación del hardware para servidores web de altas prestaciones de las siguientes empresas: Fujitsu, DELL, IBM, HP. En el trabajo se realiza una comparativa de los principales productos de estos fabricantes y se analiza el hardware usado por diferentes empresas de hosting en España.

La memoria está en:
 https://github.com/MigueSantiago/Trabajo_Swap


"Asegurar Apache"

Este trabajo consiste en asegurar un servidor web con el software Apache, concretamente con la versión 2.2, usando las herramientas nos ofrece para hacerlo más seguro. Primero se estudian varios conceptos de la configuración del servidor (Usuarios, directorio raíz, módulos del servidor). Después se utilizan varias directivas de configuración que nos ofrece Apache para la implementación de seguridad. Se profundiza en los siguientes temas: Archivos de configuración, Ocultar información del servidor, Control de acceso, Autenticación. Por último, se introducen las directivas más importantes para la seguridad ante ataques DOS y se comenta cómo configurar las conexiones SSL en Apache.

La memoria está en:
 https://github.com/alvaro-gr/SWAP2015/tree/master/Trabajo_Clase/Trabajo


"Análisis y comparación de algoritmos de balanceo con Nginx y HAProxy"

En este trabajo se presenta un estudio comparativo de diversas estrategias de balanceo de carga con Nginx y HAProxy. A partir de un entorno simulado, compuesto por máquinas virtuales con servidores web Apache y diferentes características de hardware, se genera un volumen elevado de peticiones para analizar el efecto resultante de cada algoritmo de balanceo de carga en los tiempos de respuesta y otras métricas relevantes.

La memoria está en:
 https://github.com/paul21/swap2015/tree/master/presentacion

miércoles, 3 de junio de 2015

Presentación de trabajos de los alumnos. Viernes 29 de mayo

El viernes 29 de mayo, en la sesión de prácticas, se presentaron los siguientes trabajos realizados por los alumnos de la asignatura:

"Memcached y demo de cómo utilizarlo"

Memcached es un sistema de alto rendimiento para el almacenamiento de objetos en caché, pensado principalmente para acelerar aplicaciones web dinámicas, aliviando así la carga de las bases de datos. Utiliza la biblioteca libmemcached para proveer a la API que usemos de comunicación con servidores de memcached. Es una gran herramienta usada por varios de los sitios más activos y visitados de la red, lo que refleja su gran utilidad a pesar de su simpleza. Además de indagar en su funcionamiento y sus ventajas, así como en qué sitios web las usan, mostramos los pasos necesarios para la instalación y un ejemplo sencillo de uso.

La memoria está en:
 https://github.com/MariaOrgaz/swap1415/tree/master/trabajo
 https://github.com/CarmenArcos/swap1415/tree/master/trabajo


"node.js"

node.js representa a toda una nueva generación de tecnologías web que, basadas en el uso de JavaScript en el lado del servidor, están facilitando e impulsando la creación de nuevas herramientas de desarrollo. Este trabajo sirve como introducción a node.js, desarrollando algunos aspectos técnicos de su construcción pero sobre todo explicando su funcionamiento desde un punto de vista a más alto nivel, haciendo hincapié en sus ventajas y en las posibilidades de uso que proporciona. Se referencian varios benchmarks que lo comparan con otras tecnologías como Java EE o Apache+PHP y, finalmente, se presentan algunos ejemplos de código.

La memoria está en:
 https://github.com/agarciamontoro/swap1415/tree/master/Trabajo


"Microsoft Azure"

En este trabajo se lleva a cabo una introducción a la plataforma Microsoft Azure. Vemos sus principales características y los servicios más interesantes que ofrece. En un apartado más práctico realizamos la configuración y creación de una aplicación web con Visual Studio Express y posteriormente mostramos el mantenimiento de las aplicaciones creadas.

La memoria está en:
 https://github.com/Yujadeh/swap1415/tree/master/Trabajo


"Configurar un hosting Web"

En este trabajo se describe cómo instalar un host web casero, partiendo de un PC que ya tengamos y con costo prácticamente nulo (la electricidad que consuma) y a continuación se ofrecen unos consejos muy útiles para resolver una serie de problemas que se nos plantearán una vez tengamos el host en marcha.

La memoria está en:
 https://github.com/neon520/SWAP/tree/master/Trabajo
 https://github.com/asolisi/swap1415/tree/master/Trabajo
 

"Sistema de archivos Lustre"

Lustre es un sistema de ficheros paralelo, que es eficiente, escalable y transparente al cliente. Por ello, es ampliamente utilizado en supercomputadores y empresas con la necesidad de tener sistemas de archivos distribuidos (meteorología, finanzas, etc). En este trabajo se presentan las propiedades del sistema de archivos Lustre y se detalla cómo realizar la instalación.

La memoria está en:
 https://github.com/cparadela/swap1415/tree/master/TrabajoSWAP


Presentación de trabajos de los alumnos. Jueves 28 de mayo

El jueves 28 de mayo, en la sesión de teoría, se presentaron los siguientes trabajos realizados por los alumnos de la asignatura:

"High Availability, Load Balancing y Replication con PostgreSQL"

En este trabajo se muestra cómo realizar replicación de bases de datos entre un servidor maestro y otro servidor esclavo con PostgreSQL. Basándose en lo realizado en la práctica 5 con MySQL, se han creado y configurado dos máquinas virtuales conectadas entre sí por medio de una red interna. A continuación se ha creado una base de datos en la máquina maestro con una serie de datos para después replicarla en la máquina esclavo. De esta forma, cualquier cambio que se realice en el maestro se verá reflejado automáticamente en el esclavo.

La memoria está en:
 https://github.com/juanvelascogomez/swap1415/tree/master/Trabajo_Final
 https://github.com/msmaldonado/swap1415/tree/master/Trabajo_Final


"Computación Acelerada por GPU y OpenCL"

En este trabajo se presenta qué es la computación acelerada por GPU, cómo usarla, a qué está destinada y cuándo realmente es útil. Además, se ofrece un tutorial para aprender el funcionamiento de OpenCL mediante la programación del algoritmo daxpy aprovechando el potencial de cálculo de la GPU para la tarea, viendo así las ventajas de ésta para operaciones de cálculos pequeños pero exhaustivos.

La memoria está en:
 https://github.com/Darth-ATA/swap1415/tree/master/Trabajo


"Wireshark"

En este trabajo se proporciona al lector una primera aproximación a Wireshark, mostrando sus principales funcionalidades y uso básico, como una guía de iniciación a la herramienta. Para alcanzar este objetivo usaremos Wireshark para distintas tareas: robar una contraseña, detectar un ataque de denegación de servicio o ver los mensajes que se envían las máquinas virtuales para poner en funcionamiento las distintas tareas que hemos llevado a cabo en las prácticas de SWAP. Así se ven más claramente cómo funcionan aquellas conexiones, balanceadores o configuración maestro-esclavo que se han desarrollado en las prácticas de la asignatura.

La memoria está en:
 https://github.com/LuisSuall/swap1415/tree/master/Trabajo_Wireshark


"Software y Hardware de Google"

En este trabajo se presenta un estudio sobre el hardware y software de Google. En primer lugar se recorre en el tiempo la evolución del hardware que ha ido empleando la empresa. Se analizan las mejoras que se han ido incorporando y el porqué las realizan. También se muestra un catálogo de los distintos dispositivos que han desarrollado en Google. Finalmente, se presenta un estudio sobre el software, estudiando las características principales.

La memoria está en:
 https://github.com/cristinazuhe/swap1415/tree/master/trabajo