fititnt / cplp-aiops

AIOps para Comunidade dos Países de Língua Portuguesa, 2019/01. [Foco atual: servidores comunitário e gratuito para iniciantes em programação e ciência de dados]
The Unlicense
5 stars 0 forks source link

Gerenciador de versões Anaconda / Espaço em disco de Pacotes de Data Science (discussão geral) #27

Open fititnt opened 5 years ago

fititnt commented 5 years ago

Aplica-se ao #5. Como pode requerer muito espaço em disco, pode valer a pena explicitamente não ser instalado em aguia-pescadora-alpha mas somente em aguia-pescadora-bravo #16


Uma das ideias de ter uma máquina compartilhada remota seria dar apoio ao que não poderia ser feito em computadores menos potentes.

Inicialmente foi por causa de procurar 1) soluções para contornar o que seria complexo demais até fazer hello world em Android <5 sem fazer root (ou seja, problema do software) (vide comentário https://github.com/fititnt/cplp-aiops/issues/5#issue-444705255, links para post na comunidade do Facebook). Então temos em casos bem especiais, como compilar APKs de Android 2) potencial limitação de memória RAM no momento exato da compilação (esse problema afetaria até Androids 9.0 sem muita RAM. Um terceiro eventual problema, 3) custo alto de internet via 3G e/ou (para data science) custo alto até pra quem tem conexão fixa mas ainda não ideal.

Uma solução positiva aqui é que, os desafios 1, 2 e 3 creio que a gente conseguiu contornar com as especificações do #16. Ok que isso pode exigir uma alta disciplina e ensinar as pessoas a usarem de forma bem otimizada, mas conseguindo isso, estamos falando de por um valor que até eu mesmo tiraria do meu bolso por mês, que é de 14 USD, a VPS da OVH eu não me importaria de deixar de graça para geral (e nem mesmo aceitar doações ou algo do tipo).

Captura de tela de 2019-05-19 23-42-41

Porém tudo isso agora traz um novo desafio: 4) otimizar espaço de uso de arquivos em disco no servidor de trabalho.

Para referência futura de quem estiver lendo isso, sem que a gente eventualmente migre para servidor maior (Nota: mesmo se houvesse dinheiro, não tem demanda suficiente para justificar alugar algo maior) se fosse para aumentar apenas mais um pouco o espaço em disco, valeria mais a pena alugar uma secunda Bravo. O preço de 100GB de disco adicional é o mesmo de um disco de 80GB que já venha com outra máquina de 2 vCPUs e 8GB de RAM. E eu vou ser bem sincero com vocês que se eu nem com clientes meus deixo gastarem dinheiro a revelia com hardware, não seria com dinheiro meu, para projeto voluntário, que eu deixaria de procurar ser tão ou mais custo-eficiente.

Se estiver fazendo diferença e sendo usado por muita gente, eu estaria até OK de, para ter mais 80GB a mais de espaço, a gente ter uma Aguia Pescadora Charlie, mas nem *** adicionaria pagaria o mesmo preço por um disco extra. Fora que talvez o disco extra poderia ser mais lento do que os SSDs atuais em RAID.

Então depois desse meu desabafo é que vem a questão de otimizar o uso de disco do Anaconda. Usando o miniconda, todo mundo instala exatamente os pacotes que precisa, porém isso (considerando a hipótese de dar contas gratuitas para muita gente) poderia implicar em acabar espaço em disco rápido.

Outro ponto é que boa parte das pessoas que faria "olá mundo" usando bibliotecas de data science, chuto eu talvez uns 80~95% do nosso publico alvo, talvez estaria OK em ter bibliotecas mais padrões instaladas.

Então esse issue aqui acaba sendo em uma estratégia de otimizar economizar muito espaço para esses 80-95% e, para usuários mais especiais (que na prática seria qualquer pessoa que pediria para instalar algo novo que quebraria para os demais) é mais eficiente dar até um ambiente separado para eles poderem fazer livremente.

fititnt commented 5 years ago

Em tempo

Links de minha pesquisa prévia sobre uso de conda/anaconda para múltiplos usuários (aka talvez deem ideia de como otimizar esse espaço em disco):

betafcc commented 5 years ago

Use pyenv pra gerir as instalações e versões dos interpretadores de python e pipenv pra projetos e instalações de packages.

Posso descorrer sobre os motivos se tiver interessando, mas o ponto é que esse é o tooling oficial atualmente

fititnt commented 5 years ago

Essa questão gerenciadores de versão da linguagem + de pacotes extras se tornou comum em praticamente todos os ambientes de programação mais populares. Então parte (mas não todo) o problema pode ser comum a várias delas.

Aqui a gente tem algumas peculiaridades:

Talvez uma forma da gente pensar esse experimento de servidor comunitário seria o seguinte:

No começo de 2018, eu iniciei um projeto que acabou sendo inspiração para esse aqui, o ChatOps for non-DevOps people Working Group 2018/01. Ele ficou com servidores ativos até mais do que o tempo planejado inicialmente (e até hoje tem um privado que mantenho com colega). Uma das ideias desse AIOps para Comunidade dos Países de Língua Portuguesa, 2019/01 é procurar ser mais amigável para quem é iniciante e que fala português também para permitir mais gente que possa ajudar a manter ativo.

E sim, sim sim, deixei esse texto aqui não só pra você, Brendon, mas porque nessas próximas semanas vou ver com mais gente também como otimizar a ideia toda. E mesmo que os servidores públicos não fiquem ligados, pelo menos toda documentação de como recriar eles é pública.