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.

Raspberry Pi

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

  • Passo 1: Baixe a imagem pré-fabricada do Raspberry Pi: edx-raspberrypi-20131228.img.gz
  • Passo 2Flash do cartão SD
    Você pode usar o nome de usuário e a senha padrão para ssh – user: pi senha:framboesa
  • Passo 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
  • Passo 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

Página Criar novo curso

  • Acesse os cursos como aluno

Visão do Aluno do Novo Curso

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

  • 700MHz Raspberry Pi / 500MB
  • 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 branch

sudo /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ê!

 1,245 visualizações totais