A equipe de DevOps da edX está ocupada trabalhando com a comunidade para tornar o Open edX disponível para todos no mundo. Quase todo o código por trás edx.org is disponibilizado ao público sob uma licença GPL. Além do código fonte da plataforma edx, os scripts de configuração que instalam e atualizam a plataforma estão disponíveis em nosso repositório de configuração. A ferramenta que usamos para configuração é chamada Ansible, uma ferramenta de gerenciamento de configuração baseada em Python que tem o equilíbrio certo de flexibilidade e simplicidade para nossa equipe de operações.
Periodicamente edX lança imagens Vagrant se você quiser instalar o edX no seu PC. Ver nossa documentação para configurar a plataforma localmente em uma máquina virtual.
Embora geralmente nos concentremos na implantação do edX em grandes servidores de produção baseados em nuvem, este post aborda um desafio muito diferente: uma prova de conceito para executar o curso edX e criar software no Raspberry Pi.
O Raspberry Pi é um computador de baixo custo ARM/Linux que pode ser adquirido por cerca de US$ 35. A execução do site do edX em um dispositivo de baixo custo, como o Pi, pode permitir salas de aula portáteis em áreas com acesso limitado à Internet. Isso pode ser feito com o Pi por menos dinheiro do que um laptop ou computador desktop.
Uma configuração mínima do site é funcional no Raspberry Pi, mas ainda não funciona bem o suficiente para ser usada em cursos reais que atendem a vários alunos. A plataforma, no entanto, é funcional para um único aluno, com espaço para melhorias potenciais.
Baixe e instale
- Etapa 1: Baixe a imagem pré-fabricada do Raspberry Pi: edx-raspberrypi-20131228.img.gz
- Etapa 2: Flash do cartão SD
Você pode usar o nome de usuário e a senha padrão para ssh – user: pi senha:framboesa - Etapa 3: Certifique-se de que o supervisor esteja em execução e que o LMS e o CMS estejam em execução:
sudo service supervisor start
sudo /edx/bin/supervisorctl -c /edx/etc/supervisord.conf - Etapa 4: Com seu navegador, conecte-se ao LMS e ao Studio:
LMS on port 18000 - `http://[ip address]:18000 `
Studio on port 18010 - `http://[ip address]:18010`
username: staff@example.com password: edx
O que funciona e o que não funciona
- Criar um novo curso usando o Studio
- Acesse os cursos como aluno
Medindo o tempo de renderização da página usando o Chrome devtools:
- Página de demonstração do LMS ~ 5 segundos
- Página do painel do aluno ~ 5 segundos
Os seguintes recursos ainda não são suportados:
- Fóruns não estão habilitados e provavelmente não são compatíveis com a versão atual do Mongo.
- Os classificadores de código personalizados não estão ativados.
- ORA / Discernir para aprendizado de máquina não estão habilitados.
Configuração edX no Raspberry Pi
Hardware do Raspberry Pi
- Raspberry Pi de 700 MHz / 500 MB
- Cartão SD de 8 GB
Configuração de serviço
Os seguintes serviços serão executados no Raspberry Pi após a instalação:
- Nginx/GunicornGenericName
- Python/Django e todas as bibliotecas Python que dependem dele
- MySQL
- Mongo
- Memcached
Tudo o que o edX requer está localizado em /edx e completamente autocontido em vários ambientes virtuais Python. O Mongo é instalado em /edx/mongo, que é o porta não x86 compilado para ARM. Como compilar tudo para o Raspberry Pi do zero leva dias, há uma imagem pública disponível que servirá como um bom ponto de partida.
Algumas advertências e melhorias são necessárias antes que possa ser usado seriamente:
- Logs estranhos precisam ser eliminados: o nível de log é definido como CRITICAL, mas os logs de rastreamento são gravados no cartão SD.
- O desempenho geral não é o ideal e será difícil melhorar sem configurar um cache mais agressivo ou fazer alterações de código adicionais.
- A atualização do repositório da plataforma edx leva cerca de uma hora.
Configuração com Ansible
Usamos Ansible como a ferramenta de gerenciamento de configuração edX para sistemas de produção. Os mesmos scripts com algumas pequenas modificações funcionarão para o Raspberry Pi.
O Ansible está configurado no Raspberry Pi, facilitando a atualização para novas versões da plataforma edx e alterações de configuração. As atualizações levam cerca de uma hora devido à compilação de ativos (Coffeescript e Sass), embora essa etapa possa ser feita offline, pois não é específica da arquitetura.
Como atualizar o Raspberry Pi para o commit da plataforma edx mais recente
Os comandos a seguir podem ser executados diretamente no Raspberry Pi para atualizar sua configuração ou versão do repositório da plataforma edx:
# Ensure that the configuration repo is on the Raspberry Pi branchsudo /edx/bin/update configuração jarv/raspberrypi
# Execute o manual do Raspberry Pi Ansible
cd /edx/app/edx_ansible/edx_ansible/playbooks/edx-east
/edx/app/edx_ansible/venvs/edx_ansible/bin/ansible-playbook -i localhost, -c local --tags deploy raspberrypi.yml -e "edx_platform_version=master"Ajuda e solução de problemas
Se precisar de ajuda com o edX, junte-se ao nosso lista de discussão da comunidade. Se você tiver dúvidas específicas sobre a execução do edX no Raspberry Pi, lembre-se de que este é apenas um protótipo e não é mantido e suportado oficialmente. Se você conseguir trabalhar no Raspberry Pi ou em outra plataforma, por favor me avise - Eu adoraria ouvir de você!


