DevOps, Ubuntu

Selecionando o repositório mais próximo do Ubuntu via linha de comando

Existem vários casos de uso em que você desejaria trocar a lista de repositórios para um repositório local mais próximo de você.

Em uma instalação padrão, o Ubuntu vai utilizar o país selecionado para pré-fixar um “country code” a url no /etc/apt/sources.list, no entanto esse comportamento não é ideal. Ao utilizar máquinas virtuais localmente com imagens já prontas, por exemplo usando o Vagrant, o problema se torna ainda pior, pois nesses casos, você provavelmente vai estar usando um repositório fora do país.

Estava tentando automatizar a alteração dos repositórios, e pelo fato de ser um projeto distribuído onde usuários de outros países iriam se beneficiar daquela configuração do Vagrant, não podia simplesmente fixar um país específico ou um repositório local.

Continuar lendo

Padrão
DevOps, Programação

Palestra do TDC2015: Melhorando o Onboarding de Desenvolvedores com Boxen, Vagrant e Kitchenplan

Padrão
DevOps, Ubuntu

Cozinhando com o Chef: Orquestramento de servidores e Dev machines (TDC Floripa 2014)

Pra quem não pode participar do TDC 2014 em Florianópolis, a InfoQ está disponibilizando todas as palestras que foram gravadas, e você pode acompanhar a minha acesando o link da palestra: “InfoQ: Cozinhando com o Chef: Orquestramento de servidores e Dev machines”

Os slides também estão disponíveis abaixo:

 

 

Padrão
DevOps, Ruby On Rails

Ruby 2.0.0-p247 no Ubuntu 12.04 LTS via apt-get

Este post poderia se chamar também “Como criar pacotes Debian do Ruby 2.0.0 ou de qualquer outra versão“, já que é exatamente isso que vou ensinar.

Não se preocupe, por que não existe nenhum trabalho manual ou muito complicado, pra falar a verdade é muito mais simples do que você imagina, e com isso, você ganha uma instalação muito mais rápida no servidor de produção, seja pra uma máquina ou pra 10mil.

Se você está lendo este artigo, espero que já esteja convencido sobre por que utilizar RVM ou Rbenv em produção é uma má idéia, mas se você ainda tem dúvida, alguns argumentos para auxiliar na sua decisão:

  1. Se você não utiliza o sistema de pacotes do seu sistema operacional, você perde toda a gerência de dependências que vem com ele, e com isso, corre o risco de alguém inadvertidamente quebrar a sua instalação customizada e compilada, instalando um pacote mais antigo do que o instalado manualmente.
  2. Utilizando pacotes você consegue gerenciar facilmente atualizações, bem como garantir que todas as dependências também estão atualizadas.
  3. Compilar Ruby em produção vai degradar a performance da máquina, durante todo o processo de compilação, sem contar que será necessário instalar uma quantidade grande de dependências que não seriam normalmente utilizadas se você já tivesse o pacote compilado.
  4. Difícil automatizar, já que você não tem muito controle sobre o que pode acontecer durante um processo de compilação. Uma compilação pode falhar em uma das máquinas e você dificilmente vai ficar sabendo disso, se esse procedimento for ser executado em muitas máquinas ao mesmo tempo e de forma regular.
  5. Desperdício de recurso ter compilar a mesma coisa em várias máquinas.

Se você ainda achar que os argumentos acima não são suficientes, talvez a facilidade de se gerar o pacote possa te convencer o contrário.

Continuar lendo

Padrão
DevOps

RsOnRails 2013: Cozinhando com o Chef – Orquestramento de Servidores e Dev Machines

Faltou postar aqui, os slides da palestra que apresentei no RsOnRails 2013 em Porto Alegre.

Padrão