escenarios de sistemas distribuidos con chamilo lms

37

Upload: jose-arturo-mora-soto

Post on 14-Feb-2017

479 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Escenarios de Sistemas Distribuidos con Chamilo LMS
Page 2: Escenarios de Sistemas Distribuidos con Chamilo LMS

Chamilo y sistemas distribuidos

Yannick WarnierLíder, Proyecto Chamilo

- 2014 -

Twitter: @ywarnierHashtag: #chamiloinfra

Page 3: Escenarios de Sistemas Distribuidos con Chamilo LMS

Comunidad

Plataformaeducativa

AsociaciónSocios

Empleo

Software (libre)

Empresas / universidades

+500 personas alrededor del mundo

5 directores en 4 paísesProyectos de I+D

8,300,000 usuarios – 16,000 portales(*)

Adaptable / Sin costo de licencia

Desde el 2010

(*) https://version.chamilo.org/stats/, 09/2014

Page 4: Escenarios de Sistemas Distribuidos con Chamilo LMS

Campus libre de Chamilo

340,000 usuarios

Page 5: Escenarios de Sistemas Distribuidos con Chamilo LMS

2 características

Simple de uso

Liviano

Twitter: @ywarnierHashtag: #chamiloinfra

Page 6: Escenarios de Sistemas Distribuidos con Chamilo LMS

Dictar o seguir cursos

Page 7: Escenarios de Sistemas Distribuidos con Chamilo LMS

Esquema Chamilo

Page 8: Escenarios de Sistemas Distribuidos con Chamilo LMS

Sistemas distribuidos

● Definición simple● Sistemas que, por su uso planificado, requieren

tener funcionalidades repartidas entre distintas máquinas físicas– Físicas: aunque esté en la nube, si todo está en la

misma máquina física, la distribución no es ideal

Page 9: Escenarios de Sistemas Distribuidos con Chamilo LMS

Sistemas distribuidos

● Lo que NO veremos en esta presentación● Computación distribuida (supercomputación)● Redes virtualizadas● Mega-virtualización (Amazon, etc)

Page 10: Escenarios de Sistemas Distribuidos con Chamilo LMS

Sistemas distribuidos

● Lo que SÍ veremos● Alta disponibilidad (Fail-Over) (10')● Balanceo de carga (15')● Distribución “suelta” de nodos

(sincronizaciones asíncronas) (10')● Distribución de bases de datos (5')● Distribución de espacio en disco (5')

Page 11: Escenarios de Sistemas Distribuidos con Chamilo LMS

Alta disponibilidad (fail over)

● Fundamento● Si falla cualquier componente, sigue el servicio● Ningún elemento es un punto único de falla● Como grupo de personas en una organización,

entre las cuales existe más de una persona (siempre) que puede hacer una tarea determinada, cubriendo todas las tareas posibles…– Infraestructura duplicada? → puede ser un anillo

Page 12: Escenarios de Sistemas Distribuidos con Chamilo LMS

Alta disponibilidad (fail over)

● Primer paso

● Tengo 1 servidor

● Que pasa si se quema el disco?– Necesito un remplazo (de disco)

Twitter: @ywarnierHashtag: #chamiloinfra

Page 13: Escenarios de Sistemas Distribuidos con Chamilo LMS

Alta disponibilidad (fail over)

● Primer paso

● Tengo 1 servidor con 2 discos

● Que pasa si se quema la RAM?– Necesito un remplazo (de RAM)

● Se puede tener redundancia de RAM?– Sí, pero no es barato…

Page 14: Escenarios de Sistemas Distribuidos con Chamilo LMS

Alta disponibilidad (fail over)

● Primer paso

● Tengo 2 servidores

● Que pasa si se quema la RAM, el CPU, el disco?– Tengo otro servidor :-)– Necesito una configuración especial

● Redundancia, o “fail over”● Tiempo de sustitución: segundos

Page 15: Escenarios de Sistemas Distribuidos con Chamilo LMS

Alta disponibilidad (fail over)

● Primer paso

● Tengo 2 servidores

● Que pasa si se quema la RAM, el CPU, el disco?– Tengo otro servidor :-)

● Segundo paso● Que pasa si se quema el switch que apunta a mis

servidores?– Gnnnnn….

Page 16: Escenarios de Sistemas Distribuidos con Chamilo LMS

Alta disponibilidad (fail over)

● Primer paso

● Tengo 2 servidores

● Que pasa si se quema la RAM, el CPU, el disco?– Tengo otro servidor :-)

● Segundo paso

● Tengo 2 switches

● Que pasa si se quema un switch?– Tengo otro– Necesito material especial (tiempo de sustitución)

Page 17: Escenarios de Sistemas Distribuidos con Chamilo LMS

Alta disponibilidad (fail over)

● Tercer paso

● Tengo 2 servidores y 2 switches

● Que pasa si se me va la conexión internet?– Necesito otra– Necesito dispositivos/servicios especiales

Page 18: Escenarios de Sistemas Distribuidos con Chamilo LMS

Alta disponibilidad (fail over)

● Tercer paso

● Tengo 2 servidores y 2 switches

● Tengo redundancia internet

● Cuarto paso● Que pasa si se me va la luz?

– Necesito redundancia eléctrica– Tiempo de sustitución de fuentes?

● Normal → UPS → grupo electrógeno (gasolina)

– Que duración necesito? (24h? 48h?)● Caso tormenta Nueva York 2013

Page 19: Escenarios de Sistemas Distribuidos con Chamilo LMS

Balanceo de carga (load balancer)

● Primer paso

● Tengo 2 servidores en Fail-Over (y todo lo demás)

● Que pasa si hay sobrecarga de usuarios?– Típico: Los alumnos revisan antes de su examen

Uso típico

1er día exámenes

Page 20: Escenarios de Sistemas Distribuidos con Chamilo LMS

Balanceo de carga (load balancer)

● Primer paso

● Tengo 2 servidores en Fail-Over (y todo lo demás)

● Que pasa si hay sobrecarga?– (1) Usar los 2 servidores a la vez (o más)– (2) Separar las funciones entre distintos servidores– (3) Añadir capas para reducir la carga en recursos clave

Page 21: Escenarios de Sistemas Distribuidos con Chamilo LMS

Balanceo de carga (load balancer)

● Usar los 2 servidores a la vez (o más)?● Balanceadores de carga

– Hardware (costosos y poco configurables)– Software

● Varnish● Nginx● …

Twitter: @ywarnierHashtag: #chamiloinfra

Page 22: Escenarios de Sistemas Distribuidos con Chamilo LMS

Balanceo de carga (load balancer)

● Separar las funciones● Servidor web (procesamiento)

– Apache/Nginx/Cherokee/Lighttpd/...● Base de datos

– MySQL/MariaDB/PostgreSQL/MongoDB/CouchDB/…● Reverse proxy

Page 23: Escenarios de Sistemas Distribuidos con Chamilo LMS

Balanceo de carga (load balancer)

● Añadir capas para reducir la carga en otras● Servidor de “assets” (recursos estáticos)

– Varnish/Nginx/Apache/… en modo “caché” (reverse proxy)● Caché de sesiones● Caché de queries● Caché “opcode” (operation code, machine language)● Caché de variables (“userland”)

● ...hacia la especialización de cada componente

Page 24: Escenarios de Sistemas Distribuidos con Chamilo LMS

Balanceo de carga (load balancer)

● Extra● Duplicación de servidores web => espacio compartido● “Storage” (NAS, SAN, etc)● Criterios en la nube:

– Espacio total– Frecuencia de consultas– Frecuencia de modificaciones

Page 25: Escenarios de Sistemas Distribuidos con Chamilo LMS

Balanceo de carga (load balancer)● Un cluster de balanceo y fail-over “mínimo” ?

Page 26: Escenarios de Sistemas Distribuidos con Chamilo LMS

Balanceo de carga (load balancer)● Que servicios?

corosync

LoadBalancer

corosync

OCFS2

Page 27: Escenarios de Sistemas Distribuidos con Chamilo LMS

Balanceo de carga (load balancer)● Y Chamilo ?

Nginx

Nginx + Config Chamilo

Responsa

bilidad: D

atacenter

Archivos Chamilo

BdD Chamilo

Page 28: Escenarios de Sistemas Distribuidos con Chamilo LMS

Distribución “suelta”

● Cuando los requerimientos incluyen mala conectividad: Servidores locales

● Buena conectividad● Imposibilidad de control centralizado

Page 29: Escenarios de Sistemas Distribuidos con Chamilo LMS

Distribución “suelta”● A nivel aplicativo, desarrollar sincronización

Page 30: Escenarios de Sistemas Distribuidos con Chamilo LMS

Distribución de bases de datos

● Replicación “estándar”● 1 master● 1 slave

● Replica todo lo que se hace en el master

Page 31: Escenarios de Sistemas Distribuidos con Chamilo LMS

Distribución de bases de datos

● Replicación extendida● 1 master● + slaves

● Replicación en cadena

Page 32: Escenarios de Sistemas Distribuidos con Chamilo LMS

Distribución de bases de datos

● Soluciones de software libre● MariaDB (ex MySQL), pero solo v10● Percona● PostgreSQL● MongoDB● CouchDB

Twitter: @ywarnierHashtag: #chamiloinfra

Page 33: Escenarios de Sistemas Distribuidos con Chamilo LMS

Distribución de bases de datos● Replicación fail-over● 2 masters (master-master)● 0 slave● Se replican el uno el otro● No se aconseja usarlos en simultáneo● Si falla uno, el otro retoma● Cuando se levanta el primero, se sincroniza● Requiere sistema de cluster como corosync

● Para que la aplicación sepa donde conectarse

Page 34: Escenarios de Sistemas Distribuidos con Chamilo LMS

Distribución de espacio en disco● Problemáticas

● Repartición de carga requiere espacio común● Sincronización de escrituras simultáneas es un lío● Necesidad de mucho espacio● SAN = $$$$$$

● Necesidades● Alta disponibilidad● Redimensionamiento en caliente● Usar desde cualquier máquina

Page 35: Escenarios de Sistemas Distribuidos con Chamilo LMS

Distribución de espacio en disco

● Soluciones● Distribución del disco entre máquinas

– Necesidad de un “orquestador”● Distribución del disco “como servicio (web)”

– Necesidad de modificaciones en la aplicación

● Software libre:● Ceph, Lustre, OCFS2, GlusterFS, FreeNAS, etc

Page 36: Escenarios de Sistemas Distribuidos con Chamilo LMS

Contacto

Yannick Warnier

Presidente - Asociación Chamilo

CTO –

       Correo: [email protected]

Twitter: @ywarnierHashtag: #chamiloinfra

Page 37: Escenarios de Sistemas Distribuidos con Chamilo LMS

Thanks

● DigitalOcean for visual resources● https://www.digitalocean.com/community/tutorials/

5-common-server-setups-for-your-web-application