Universidade Federal de Santa Catarina - UFSCSuperintendência de Governaça Eletrônica e Tecnologia da Informação e Comunicação - SeTICDepartamento de Sistemas de Informação - DSI
O Moodle na UFSC(infra-estrutura de TI)
Daniel Neis Araujo
Agenda
Visão geral dos projetos Hardware Software
Apache MySQL Redmine e gitorious Cacti– Backups
Agenda Moodle
Tradução Auth/db Import/export roles Delete section Copy groups and members Roles capabilities report Espinha de Peixe Patches aceitos
Visão geral dos projetos UAB - ead.moodle.ufsc.br
Universidade Aberta do Brasil Desde 2007 12 cursos de graduação (1 a 3 edições por curso) 8 cursos de especialização 5 mil usuários ativos 512 cursos moodle em paralelo
UNASUS - unasus.moodle.ufsc.br Universidade Aberta do SUS 2 cursos de especialização 2.5 mil usuários ativos 61 cursos moodle em paralelo
Visão geral dos projetos
Presencial - moodle.ufsc.br Apoio aos cursos presenciais Disponível para todos os professores e turmas da graduação e pós-
graduação 379 cursos utilizando 36 mil usuários ativos 3400 cursos moodle em paralelo 160 mil inscrições em curso
Visão geral dos projetos
Hardware
Banco de Dados Intel(R) Xeon(R) CPU E5450 @ 3.00GHz (quad-core) 16GB RAM 900GB hard-drive (4 discos em RAID 10)
Servidor Web Máquina virtual sobre VMWare Intel(R) Xeon(R) CPU X7350 @ 2.93GHz (quatro núcleos virtuais) 12GB RAM 900GB hard-drive (expansible external storage)
Apache Tunnings
ServerLimit 600 MaxClients 600 Enable mod_info Enable mod_status Php.ini
memory_limit = 1536M max_execution_time = 90
APC (Advanced PHP Cache) http://php.net/manual/en/book.apc.php http://pecl.php.net/package/APC
Apache
MySQL
InnoDB 64Bits UTF-8 Versão 5.5
Tunnings max_connections = 600 max_heap_table_size = 2G tmp_table_size = 2G thread_cache_size = 550
MySQL Mais tunning
innodb_buffer_pool_size = 8G read_buffer_size = 512M sort_buffer_size = 512M
MySQL Referências
– http://dev.mysql.com/doc/refman/5.5/en/ http://mysqlperformanceblog.com High Performance MySQL, Second Edition
Redmine
GiteGitorious
Cacti
Backups Solução desenvolvida sob medida, pela própria equipe Características
Backup diário da base de dados e moodledata “Point in time” recovery Recuperar um ou mais cursos Recuperar partes do curso (dados ou base de dados)
Ferramentas Rsync OpenSolaris ZFS Snapshots
Tradução – lang.moodle.org
Tradução – lang.moodle.org
Auth/db Motivação
Sincronizar dados de usuários entre Moodle e controles acadêmicos da UFSC Centralizar a autenticação dos Moodles da UFSC
Necessidades Diminuir o tempo de cadastro, atualização e remoção de usuários
Originalmente +2 horas para 35K usuários Permitir alterar senha a partir de qualquer Moodle
Como Usando tabelas temporárias no BD ao invés de arrays no PHP Baixando todos os dados de uma vez para evitar 1 select + 1 update / campo / usuário
Resultado: Atualização/inclusão/remoção para 35K usuários em 3 minutos
Histórico e votação: http://tracker.moodle.org/browse/MDL-25373 http://tracker.moodle.org/browse/MDL-25372
Código: 1.9 - http://tracker.moodle.org/secure/attachment/23584/mdl25372-1.9.diff 2.x – https://github.com/danielneis/moodle/compare/master...MDL-25372.diff
Auth/db
Importar e exportar papéis
Motivação Testar permissionamento em ambiente de desenvolvimento Clonar papéis entre instalações dos Moodles UFSC
Necessidades Exportar 1 ou mais papéis para XML– Possibilidade substituir papéis existentes na importação
Como Fazendo um patch para o Moodle, o menos intrusivo possível Utilizar API de backup Utilizar todo o código já existente
Resultado Um bugfix para o Moodle 1.9.7 (restaurar descrições de papéis)
http://tracker.moodle.org/browse/MDL-21708 Um patch para o Moodle 1.9 (com a importação e exportação)
http://tracker.moodle.org/browse/MDL-17081 Código do 2.x “de graça”, desenvolvido por um membro da
comunidade Nicholas Koeppen https://github.com/glennansley/moodle-report_rolesmigration
Importar e exportar papéis
Excluir sessões de cursos Motivação
As pessoas erram... e também desistem de grande parte do trabalho feito... “Preciso remover uma sessão de um curso e todo seu conteúdo” Mover para o final e esconder não é tão legal assim...
Como Incluindo um “botão” perto das setas que movem as sessões Formatos de curso: Weekly e Topics Com e sem AJAX
Resultado Patch para o Moodle (1.9 e 2.x)
http://tracker.moodle.org/browse/MDL-10405 Sinalização positiva da comunidade
• http://moodle.org/mod/forum/discuss.php?d=186801
Copiar grupos e seus membros Motivação
Facilitar a gerência de grupos Grupos que nossa sincronização com o controle acadêmico não controla
Pois eles não são definidos lá Assuntos “de sala de aula” ficam no Moodle
Necessidades Uma vez definidos os grupos em um curso Moodle, importá-lo em outros Copiar grupos novos Adicionar e remover membros dos grupos Apenas usuários inscritos nos dois cursos
Como Estendendo a interface de importação do Moodle
Na versão original, importa grupos a partir de arquivo CSV Implementar a importação a partir de outro curso Patch para o Moodle 1.9
http://tracker.moodle.org/browse/MDL-23186 Versão para 2.x em breve
Relatório de permissões dos papéis Motivação
Comparar as definições de diversos papéis dos Moodles UFSC Permitir que usuários não administradores tenham acesso a essas
informações
Como Desenvolvendo um relatório administrativo para o Moodle
Resultado Admin report: Roles capabilites
• http://moodle.org/mod/data/view.php?d=13&rid=3304 Aceito como projeto “Contrib”
• http://tracker.moodle.org/browse/CONTRIB/component/10595
Relatório de permissões dos papéis
Espinha de peixe
Motivação Curso de Especialização em Gestão de Assistência
Farmaceutica da UNASUS Diversas atividades utilizando Diagrama de Ishikawa /
Espinha de Peixe Nenhum módulo fácil de utilizar no Moodle
Resultado Um novo módulo de atividades para o Moodle 1.9 https://github.com/danielneis/moodle-mod-ishikawa Em breve versão para 2.x
Espinha de peixe
Patches aceitos
MDL-17392: Moodle doesn't send 'forgot password' emails to users that have
disabled the email
MDL-18800: Sort courses on profile
MDL-19364: Create new category in tree doesn't check for advanced grade_item
fields
MDL-19404: New grade category don't load grade item defaults and don't validate
min and max grades
MDL-19429: Can't set grademax, grademin and gradepass to zero while editing a
grade category
MDL-19567: Ordering of the courses don't follow the sortorder on course import
MDL-20123: Course Section's 0 can became invisible or "highlighted" if using
AJAX
MDL-19233: Backup routine doesn't check for permission before create new roles
MDL-20626: The function sync_metacourse doesn't sync the hidden field
Patches aceitos
O que vimos hoje...
Moodle Tradução Auth/db Import/export roles Delete section Copy groups and members Roles capabilities report Espinha de Peixe Patches aceitos
Visão geral dos projetos Hardware Software
Apache MySQL Redmine e gitorious Cacti Backups
Top Related