SlideShare una empresa de Scribd logo
Chamilo y sistemas distribuidos 
Yannick Warnier 
Líder, Proyecto Chamilo 
- 2014 - 
Twitter: @ywarnier 
Hashtag: #chamiloinfra
Comunidad 
Plataforma 
educativa 
Asociación 
Empleo 
+500 personas 
alrededor del mundo 
Socios 
Software (libre) 
Empresas / universidades 
5 directores en 4 países 
Proyectos 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
Campus libre de Chamilo 
340,000 usuarios
2 características 
Simple de uso 
Liviano 
Twitter: @ywarnier 
Hashtag: #chamiloinfra
Dictar o seguir cursos
Esquema Chamilo
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
Sistemas distribuidos 
● Lo que NO veremos en esta presentación 
● Computación distribuida (supercomputación) 
● Redes virtualizadas 
● Mega-virtualización (Amazon, etc)
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')
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
Alta disponibilidad (fail over) 
● Primer paso 
● Tengo 1 servidor 
● Que pasa si se quema el disco? 
– Necesito un remplazo (de disco) 
Twitter: @ywarnier 
Hashtag: #chamiloinfra
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…
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
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….
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)
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
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
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
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
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: @ywarnier 
Hashtag: #chamiloinfra
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
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
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
Balanceo de carga (load balancer) 
● Un cluster de balanceo y fail-over “mínimo” ?
Balanceo de carga (load balancer) 
● Que servicios? 
corosync 
Load 
Balancer 
corosync 
OCFS2
Balanceo de carga (load balancer) 
● Y Chamilo ? 
Nginx + Config Chamilo 
Nginx 
Responsabilidad: Datacenter 
Archivos Chamilo 
BdD Chamilo
Distribución “suelta” 
● Cuando los requerimientos incluyen mala 
conectividad: Servidores locales 
● Buena conectividad 
● Imposibilidad de control centralizado
Distribución “suelta” 
● A nivel aplicativo, desarrollar sincronización
Distribución de bases de datos 
● Replicación “estándar” 
● 1 master 
● 1 slave 
● Replica todo lo que se hace en el master
Distribución de bases de datos 
● Replicación extendida 
● 1 master 
● + slaves 
● Replicación en cadena
Distribución de bases de datos 
● Soluciones de software libre 
● MariaDB (ex MySQL), pero solo v10 
● Percona 
● PostgreSQL 
● MongoDB 
● CouchDB 
Twitter: @ywarnier 
Hashtag: #chamiloinfra
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
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
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
Contacto 
Yannick Warnier 
Presidente - Asociación Chamilo 
CTO – 
Correo: president@chamilo.org 
Twitter: @ywarnier 
Hashtag: #chamiloinfra
Thanks 
● DigitalOcean for visual resources 
● https://www.digitalocean.com/community/tutorials/ 
5-common-server-setups-for-your-web-application

Más contenido relacionado

La actualidad más candente

Servidores de mapas en alta disponibilidad
Servidores de mapas en alta disponibilidadServidores de mapas en alta disponibilidad
Servidores de mapas en alta disponibilidad
InclamSoft
 
Replicacion Postgresql
Replicacion PostgresqlReplicacion Postgresql
Replicacion Postgresql
jockbrera
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slonyJohanna Mendez
 
Mysql cluster
Mysql clusterMysql cluster
Servidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValleyServidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValley
Alvaro García Loaisa
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...
Software Guru
 
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
EtiCAGNU
 
Servidor de mapas en HA con Jboss, Geoserver y PostGIS.
Servidor de mapas en HA con Jboss, Geoserver y PostGIS.Servidor de mapas en HA con Jboss, Geoserver y PostGIS.
Servidor de mapas en HA con Jboss, Geoserver y PostGIS.
David Tabernero Pérez
 
Sandbox para ejercicios de programación
Sandbox para ejercicios de programaciónSandbox para ejercicios de programación
Sandbox para ejercicios de programación
Mario Garcia-Valdez
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidad
Óscar De Arriba González
 
Fundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLFundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQL
camposer
 
Migrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLMigrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQL
scastell77
 
Postgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_pPostgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_pedvin_marcelo
 
Tomcat y Jboss
Tomcat y JbossTomcat y Jboss
Tomcat y Jboss
Miguel Angel Nieto
 
PostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidadPostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidad
Santiago Zarate
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
Jorge Moratilla Porras
 
Arquitectura e implementación de PostgreSQL 9.3
Arquitectura e implementación de PostgreSQL 9.3Arquitectura e implementación de PostgreSQL 9.3
Arquitectura e implementación de PostgreSQL 9.3
Bryan Rodríguez
 
Requerimientos de PostgreSQL
Requerimientos de PostgreSQLRequerimientos de PostgreSQL
Requerimientos de PostgreSQL
Carlos Gustavo Ruiz
 

La actualidad más candente (20)

Servidores de mapas en alta disponibilidad
Servidores de mapas en alta disponibilidadServidores de mapas en alta disponibilidad
Servidores de mapas en alta disponibilidad
 
Replicacion Postgresql
Replicacion PostgresqlReplicacion Postgresql
Replicacion Postgresql
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Mysql cluster
Mysql clusterMysql cluster
Mysql cluster
 
Servidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValleyServidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValley
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...
 
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
 
Servidor de mapas en HA con Jboss, Geoserver y PostGIS.
Servidor de mapas en HA con Jboss, Geoserver y PostGIS.Servidor de mapas en HA con Jboss, Geoserver y PostGIS.
Servidor de mapas en HA con Jboss, Geoserver y PostGIS.
 
Sandbox para ejercicios de programación
Sandbox para ejercicios de programaciónSandbox para ejercicios de programación
Sandbox para ejercicios de programación
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidad
 
Fundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLFundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQL
 
Migrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLMigrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQL
 
Máquina virtual en java
Máquina virtual en javaMáquina virtual en java
Máquina virtual en java
 
Postgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_pPostgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_p
 
Tomcat y Jboss
Tomcat y JbossTomcat y Jboss
Tomcat y Jboss
 
PostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidadPostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidad
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
 
Arquitectura e implementación de PostgreSQL 9.3
Arquitectura e implementación de PostgreSQL 9.3Arquitectura e implementación de PostgreSQL 9.3
Arquitectura e implementación de PostgreSQL 9.3
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Requerimientos de PostgreSQL
Requerimientos de PostgreSQLRequerimientos de PostgreSQL
Requerimientos de PostgreSQL
 

Similar a Escenarios de Sistemas Distribuidos con Chamilo LMS

Recuperación de desastres y soluciones de alta disponibilidad con SQL Server
Recuperación de desastres y soluciones de alta disponibilidad con SQL ServerRecuperación de desastres y soluciones de alta disponibilidad con SQL Server
Recuperación de desastres y soluciones de alta disponibilidad con SQL Server
SpanishPASSVC
 
High availabitily & Clusters #mootes15
High availabitily & Clusters #mootes15High availabitily & Clusters #mootes15
High availabitily & Clusters #mootes15
Sara Arjona Téllez
 
SO - Administración de Memoria
SO - Administración de MemoriaSO - Administración de Memoria
SO - Administración de Memoria
Luis Eraso
 
DB1 Unidad 8: Replicación
DB1 Unidad 8: ReplicaciónDB1 Unidad 8: Replicación
DB1 Unidad 8: Replicación
Franklin Parrales Bravo
 
Mad scalability (perfomance debugging)
Mad scalability (perfomance debugging)Mad scalability (perfomance debugging)
Mad scalability (perfomance debugging)
Alejandro E Brito Monedero
 
Softonic Labs - Web Escalable
Softonic Labs - Web EscalableSoftonic Labs - Web Escalable
Softonic Labs - Web Escalable
Alex Puig
 
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan PiernasAlmacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Lenin Hernandez
 
Administración de Memoria - Sistemas Operativos
Administración de Memoria - Sistemas OperativosAdministración de Memoria - Sistemas Operativos
Administración de Memoria - Sistemas Operativos
Pablo Macon
 
Actualización Moodle 1.9 a Moodle 2.4: Planificación, consejos y problemas
Actualización Moodle 1.9 a Moodle 2.4:  Planificación, consejos y problemasActualización Moodle 1.9 a Moodle 2.4:  Planificación, consejos y problemas
Actualización Moodle 1.9 a Moodle 2.4: Planificación, consejos y problemas
Elurnet Informatika Zerbituzak
 
Mantener Paquetes Debian en Equipo
Mantener Paquetes Debian en EquipoMantener Paquetes Debian en Equipo
Mantener Paquetes Debian en Equipo
Alejandro Rios Peña
 
Sitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidadSitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidad
Iván Campaña Naranjo
 
Curso de PostgreSQL
Curso de PostgreSQLCurso de PostgreSQL
Curso de PostgreSQL
EQ SOFT EIRL
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
Marcelo Ochoa
 
Desarrollo de aplicaciones altamente escalables
Desarrollo de aplicaciones altamente escalablesDesarrollo de aplicaciones altamente escalables
Desarrollo de aplicaciones altamente escalables
Globant
 
Entonamiento y perfilado de Drupal
Entonamiento y perfilado de DrupalEntonamiento y perfilado de Drupal
Entonamiento y perfilado de Drupal
camposer
 
Spark
SparkSpark
Resilient Distributed Dataset - Analisis paper
Resilient  Distributed Dataset - Analisis paper Resilient  Distributed Dataset - Analisis paper
Resilient Distributed Dataset - Analisis paper
Javier de la Rosa Fernandez
 
Alta disponibilidad con Pacemaker
Alta disponibilidad con PacemakerAlta disponibilidad con Pacemaker
Alta disponibilidad con Pacemaker
Nelson Calero
 

Similar a Escenarios de Sistemas Distribuidos con Chamilo LMS (20)

Recuperación de desastres y soluciones de alta disponibilidad con SQL Server
Recuperación de desastres y soluciones de alta disponibilidad con SQL ServerRecuperación de desastres y soluciones de alta disponibilidad con SQL Server
Recuperación de desastres y soluciones de alta disponibilidad con SQL Server
 
High availabitily & Clusters #mootes15
High availabitily & Clusters #mootes15High availabitily & Clusters #mootes15
High availabitily & Clusters #mootes15
 
SO - Administración de Memoria
SO - Administración de MemoriaSO - Administración de Memoria
SO - Administración de Memoria
 
DB1 Unidad 8: Replicación
DB1 Unidad 8: ReplicaciónDB1 Unidad 8: Replicación
DB1 Unidad 8: Replicación
 
Mad scalability (perfomance debugging)
Mad scalability (perfomance debugging)Mad scalability (perfomance debugging)
Mad scalability (perfomance debugging)
 
Softonic Labs - Web Escalable
Softonic Labs - Web EscalableSoftonic Labs - Web Escalable
Softonic Labs - Web Escalable
 
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan PiernasAlmacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
 
Administración de Memoria - Sistemas Operativos
Administración de Memoria - Sistemas OperativosAdministración de Memoria - Sistemas Operativos
Administración de Memoria - Sistemas Operativos
 
Actualización Moodle 1.9 a Moodle 2.4: Planificación, consejos y problemas
Actualización Moodle 1.9 a Moodle 2.4:  Planificación, consejos y problemasActualización Moodle 1.9 a Moodle 2.4:  Planificación, consejos y problemas
Actualización Moodle 1.9 a Moodle 2.4: Planificación, consejos y problemas
 
Unidad IV
Unidad IVUnidad IV
Unidad IV
 
Mantener Paquetes Debian en Equipo
Mantener Paquetes Debian en EquipoMantener Paquetes Debian en Equipo
Mantener Paquetes Debian en Equipo
 
Sitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidadSitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidad
 
Curso de PostgreSQL
Curso de PostgreSQLCurso de PostgreSQL
Curso de PostgreSQL
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
Desarrollo de aplicaciones altamente escalables
Desarrollo de aplicaciones altamente escalablesDesarrollo de aplicaciones altamente escalables
Desarrollo de aplicaciones altamente escalables
 
Entonamiento y perfilado de Drupal
Entonamiento y perfilado de DrupalEntonamiento y perfilado de Drupal
Entonamiento y perfilado de Drupal
 
Spark
SparkSpark
Spark
 
Resilient Distributed Dataset - Analisis paper
Resilient  Distributed Dataset - Analisis paper Resilient  Distributed Dataset - Analisis paper
Resilient Distributed Dataset - Analisis paper
 
Computacion paralela
Computacion paralelaComputacion paralela
Computacion paralela
 
Alta disponibilidad con Pacemaker
Alta disponibilidad con PacemakerAlta disponibilidad con Pacemaker
Alta disponibilidad con Pacemaker
 

Último

Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
jjfch3110
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
JuanPrez962115
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
DanielErazoMedina
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 

Último (20)

Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 

Escenarios de Sistemas Distribuidos con Chamilo LMS

  • 1.
  • 2. Chamilo y sistemas distribuidos Yannick Warnier Líder, Proyecto Chamilo - 2014 - Twitter: @ywarnier Hashtag: #chamiloinfra
  • 3. Comunidad Plataforma educativa Asociación Empleo +500 personas alrededor del mundo Socios Software (libre) Empresas / universidades 5 directores en 4 países Proyectos 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
  • 4. Campus libre de Chamilo 340,000 usuarios
  • 5. 2 características Simple de uso Liviano Twitter: @ywarnier Hashtag: #chamiloinfra
  • 8. 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
  • 9. Sistemas distribuidos ● Lo que NO veremos en esta presentación ● Computación distribuida (supercomputación) ● Redes virtualizadas ● Mega-virtualización (Amazon, etc)
  • 10. 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')
  • 11. 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
  • 12. Alta disponibilidad (fail over) ● Primer paso ● Tengo 1 servidor ● Que pasa si se quema el disco? – Necesito un remplazo (de disco) Twitter: @ywarnier Hashtag: #chamiloinfra
  • 13. 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…
  • 14. 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
  • 15. 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….
  • 16. 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)
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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: @ywarnier Hashtag: #chamiloinfra
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. Balanceo de carga (load balancer) ● Un cluster de balanceo y fail-over “mínimo” ?
  • 26. Balanceo de carga (load balancer) ● Que servicios? corosync Load Balancer corosync OCFS2
  • 27. Balanceo de carga (load balancer) ● Y Chamilo ? Nginx + Config Chamilo Nginx Responsabilidad: Datacenter Archivos Chamilo BdD Chamilo
  • 28. Distribución “suelta” ● Cuando los requerimientos incluyen mala conectividad: Servidores locales ● Buena conectividad ● Imposibilidad de control centralizado
  • 29. Distribución “suelta” ● A nivel aplicativo, desarrollar sincronización
  • 30. Distribución de bases de datos ● Replicación “estándar” ● 1 master ● 1 slave ● Replica todo lo que se hace en el master
  • 31. Distribución de bases de datos ● Replicación extendida ● 1 master ● + slaves ● Replicación en cadena
  • 32. Distribución de bases de datos ● Soluciones de software libre ● MariaDB (ex MySQL), pero solo v10 ● Percona ● PostgreSQL ● MongoDB ● CouchDB Twitter: @ywarnier Hashtag: #chamiloinfra
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. Contacto Yannick Warnier Presidente - Asociación Chamilo CTO – Correo: president@chamilo.org Twitter: @ywarnier Hashtag: #chamiloinfra
  • 37. Thanks ● DigitalOcean for visual resources ● https://www.digitalocean.com/community/tutorials/ 5-common-server-setups-for-your-web-application