Gustavo Soares

tecnologia, infraestrutura web, mobile e afins

Browsing Posts published by Gustavo Soares

DSC_0166

Speaker Presentation Slides
http://en.oreilly.com/velocity2010/public/schedule/proceedings

Watch Velocity 2010 Video
http://www.youtube.com/view_play_list?p=D1D3B0B233F2AD66

View Velocity 2010 Photos
http://www.flickr.com/photos/oreillyconf/sets/72157624218154391

Velocity News and Coverage
http://en.oreilly.com/velocity2010/public/content/news-coverage

Share

Acabou tem pouco tempo o keynote sobre a operação do Twitter aqui no Velocity. O keynote foi apresentado pelo Jonh Adams. Apesar dele não ter entrado no detalhe de muitas coisas, achei bem legal saber as tecnologias que eles vêm utilizando lá.

Algumas, inclusive já são adotadas na Globo.com, como por exemplo a utilização do puppet na gerência de configuração. E outras, em fases de teste piloto, como por exemplo o scribe, que testei mês passado como solução para agregar logs dos servidores. Só posso adiantar, que os testes foram bem promissores.

Alguns pontos chaves mencionados no keynote:

  • Utilize um sistema de gerência de configuração independente do tamanho da sua infraestrutura
  • A maior parte do acesso ao twitter hoje em dia vem da API, através de aplicativos de terceiros e não via web (novidade!!! :P )
  • A final da NBA (Lakers x Celtics) gerou um tráfego de 3085 TPS (Tweets por segundo :) )
  • Syslog não escala muito bem para um alto tráfeo de dados. Para a agregação de logs eles estão utilizando o Scribe do facebook.
  • Assim como o Facebook eles também utilizam uma solução com torrent para deploy nos servidores (ok… ambas empresas tem um número estúpido de servidores, imagino…)
  • Na média são escrito 750 tweets por segundo diariamente… faça as contas, e veja quanto isso dá em 1 dia :)
  • Utilizam apache atrás dos balanceadores de carga
  • Monitoração e extração de métricas forte dos dados para gerar gráficos e relatórios
  • Utilizam o Unicorn como engine de rails
  • Utilizam um banco de dados próprio para lidar com os grafos sociais (A segue B, que não segue B, mas que segue C e por aí vai…)
  • Utilizam uma solução com Hadoop para extrair informações relevantes dos logs

Tirei algumas fotos dos slides do Keynote do Twitter. Elas podem ser acessadas no meu flickr, no seguinte endereço: http://www.flickr.com/photos/gustavosoares/sets/72157624223796237/

Para mais infos, consultem também a página http://twitter.com/about/opensource

Fuiii!! vai começar uma palestra agora!!

Cheers!!

Share

Gerência de configuração automatizada com alguma ferramenta (puppet, chef, cfengine, bcfg2) criada para tal propósito é uma atividade que (aposto) poucas empresas no Brasil utilizam, ao passo que lá fora está virando praticamente commodity, assim como soluções e/ou tecnologias utilizando hadoop.

A seguir vou listar algumas situações bem comuns de qualquer empresa de TI que não esteja terceirizando a sua infraestrutura e a minha resposta *provável* para a pergunta.

  1. Preciso editar o meu /etc/hosts no servidor para adicionar um mapeamento para o apache funcionar, como faço?
    1. Essa é fácil! Para quem é “macho”, dá um vi no /etc/hosts ou então um gedit
  2. Preciso instalar uma pacote rpm ou gem no meu servidor?
    1. Logo no servidor ou então uso o capistrano ou o fabric para rodar um yum install [PACOTE]
  3. Minha aplicação roda com o usuário XPTO e por isso preciso criá-lo em todos os servidores envolvidos com o mesmo uid e gid, como faço?
    1. Hummm… ou posso logar em cada servidor e rodar o comando de criação de usuário, ou novamente, utilizar alguma solução com capistrano ou fabric para automatizar isso. Repare que esta solução, só cria o usuário. Se por um acaso, alguém der uma mãozada no servidor e alterar o uid do usuário, provavelmente você só vai tomar conhecimento disso quando sua aplicação tomar algum erro de escrita, execução ou leitura de algum arquivo.
  4. Preciso garantir que a configuração dos meus servidores estejam íntegras ou que são equivalente aos servidores de desenvolvimento e qa, e aí, como faço?
    1. Bem, talvez essa questão seja a mais complicada. O mais comum é colocar as configurações em um diretório compartilhado entre os servidores, assim todos os servidores terão a mesma configuração. No entanto, novamente, isto não resolve o problema de você ficar sabendo  quando um determinado arquivo foi alterado. Normalmente, você vai ficar sabendo disso da pior forma possível…

Bem, as perguntas que eu poderia fazer, são praticamente infinitas, mas acho que já deu para ter uma idéia para que serve e qual o benefício de um sistema de gerência de configuração. Os mais utilizados hoje em dia são o puppetchef, ambos escritos em ruby. A seguir mostro um exemplo de como instalar um pacote com o puppet o chef.

puppet

package { postfix: ensure => latest }

O recurso acima é bem intuitivo e bem claro. Ele está instalando a última versão do pacote postfix. Caso o pacote já esteja instalado, ele irá verificar se a versão instalada é a última versão. Obviamente, que este comportamento pode ser alterado. Uma observação… ao rodar o comando acima o puppet irá fazer uma inspeção do sistema operacional em uso, caso seja CentOS por exemplo, irá usar o yum ou o rpm para instalar o pacote. É possível, utilizar a definição package para gerenciar outros tipos de pacotes, como pacotes ruby por exemplo, ou seja, gem.

A definição do próprio puppet para um recurso é a seguinte:

The fundamental unit of modelling in Puppet is a resource. Resources describe some aspect of a system; it might be a file, a service, a package, or perhaps even a custom resource that you have developed. We’ll show later how resources can be aggregrated together with “defines” and “classes”, and even show how to organize things with “modules”, but resources are what we should start with first.

Each resource has a type, a title, and a list of attributes – each resource in Puppet can support various attributes, though many of them will have reasonable defaults and you won’t have to specify all of them.

chef

package “tar” do
version “1.16.1-1″
action :install
end
Pelos exemplos dados, podemos ver claramente que a “linguagem” utilizada pelo puppet é declarativa e procura abstrair a linguagem no qual ele foi implementado (ruby). Já o chef,  utiliza um pouco da estrutura de linguagem do próprio ruby. Quem já viu um arquivo do capistrano, irá perceber a semelhança entre os dois. Por isso, que na minha opinião, há uma TENDÊNCIA maior de pessoas da área de desenvolvimento preferirem o chef e pessoas da área de infra preferirem o puppet. Pessoas da área de infra estão bastante acostumadas a trabalhar com arquivos de configuração do apache por exemplo, daí uma outra justificativa para a preferência do puppet. Isto não é nenhuma crítica pejorativa, apenas que cada tipo de profissional tem suas preferências. Preferências a parte, o importante é que seja utilizado algum tipo de sistema de gerência de configuração para automatizar e facilitar o provisionamento de servidores.

continue reading…

Share

Share

Para quem está acostumado a usar o twidroid ou apps do genêro do twitter para o seu Android fique sabendo que foi lançado uma app oficial do próprio twitter. No momento só está funcionando nos firmwares 2.1…

Para instalá-lo basta escanear o código de barras ao lado do seu celular:

Mais informações em  http://blog.twitter.com/2010/04/twitter-for-android-robots-like-to.html

Share

A espera acabou!!

Conforme noticiado em http://www.blogdoandroid.com/2010/04/extra-saiu-atualizacao-do-android-2-1-para-o-motorola-milestone/ saiu o firmware 2.1 para o motorola android brasileiro via o software de atualização da própria motorola.

Já fiz aqui no meu e funcionou que foi uma maravilha! :) Depois utilizei o Astro e o MyBackup Pro para recuperar as apps instaladas e algumas configurações.

Entre as melhorias do novo firmware 2.1 encontram-se:

  • Nova versão Google Maps já embarcada, com multitouch;
  • Possibilidade de configurar o Google Maps como papel de parede;
  • Widget do Google Latitude e Hora Mundial;
  • Possibilidade de configurar quantidade de telas (3, 5, 7 ou 9) da home screen;
  • Papéis de parede animados (só cuidado com o consumo da memória!);
  • Novidades no aplicativo da câmera: nova interface com comandos na tela; modo Widescreen Picture; otimização para tipos de cenas, fotos e efeitos;
  • Nova galeria de imagens em 3D, agora também com possibilidade de enviar fotos para o Picasa;
  • Bloqueio do aparelho usando o código PIN;
  • Corretor de palavras em português.
Share

Está precisando de algum firmware para o seu aparelho motorola milestone?

Motorola Milestone

Então confira o link abaixo! Ele contém uma lista de todos os firmwares disponíveis até o momento para o motorola milestone.

http://and-developers.com/motorola_milestone:sbf

Share

Muitas pessoas quando precisam utilizar um proxy pensam logo no squid

No entanto, caso a aplicação por trás do squid faça uso de ajax e/ou utilize serviços REST, é possível que você tenha alguns problemas. O squid retorna um status de erro quando o POST ou PUT é feito com content-length 0 (zero). Mas calma! Existem outras opções open source disponíveis no mercado. É possível utilizar o apache como um proxy. Basta utilizar os módulos de proxy que já estão mais maduros na versão 2.2.x, na versão 2.0.x do apache não é muito recomendado utilizar estes módulos.

A configuração é bem simples. Basta dar o load dos módulos abaixo:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

Depois, basta adicionar a configuração abaixo no seu httpd.conf.
ProxyRequests On
ProxyVia On
ProxyBadHeader Ignore
ProxyStatus On
ProxyPreserveHost Off
E pronto! Seu apache estará funcionando como um proxy. Se quiser pode alterar a porta de bind dele na diretiva Listen.
Share

Está na faculdade?

Está a procura de um estágio?

Quer fazer parte de umas das empresas de maior audiência da internet brasileira?

Então conheça o programa de estágio da Globo.com e dê um clique decisivo no seu futuro.

Vagas em diversas áreas para estudantes dos mais variados cursos:

  • Administração
  • Comunicação Social
  • Desenho Industrial
  • Marketing
  • Psicologia
  • Ciências Contábeis
  • Cursos das áreas de Tecnologia entre outros

Previsão de formatura: julho/2011 a julho/2012.

Inscrições até 10 de maio de 2010.

Para mais informações acesse: www.globo.com/estag

Share

A notícia não é tão recente assim, mas acho que qualquer um gostaria de ter uma idéia das empresas mais inovadoras do ano passado. A fastcompany publicou a lista que você pode encontrar, clicando aqui.

As cinco primeiras empresas da lista são:

  1. Facebook
  2. Amazon
  3. Apple
  4. Google
  5. Huawei

Importante observar que todas elas são empresas do ramo de tecnologia. Para conferir o restante da lista, basta clicar no link abaixo.

http://www.fastcompany.com/mic/2010

Share

Switch to our mobile site