Sem categoria

MrRoboto: A história da AMI do memcached

Não faz muito tempo, fomos almoçar em um restaurante de sushi na rua Castro, em Mountain View, em frente à modesta sede da NorthScale. No caminho, estávamos conversando sobre o robatayaki japonês e Dave contou uma história sobre um discurso do Oscar para um animador japonês que trabalha para uma empresa chamada Robot.

Tenho muitas outras histórias sobre o QG, como a descrição de um dia "Pink"... mas esse não é o objetivo deste post.... Foi durante o almoço que DustinEm uma entrevista com Dave, Steve e eu, logo após o lançamento do memcached 1.4.0, dissemos que deveríamos simplesmente criar uma AMI com o memcached incluído para que as pessoas pudessem usar. Não queríamos que ele fosse modificado de forma alguma em relação ao que você poderia obter do memcached.org.... ele seria construído por algumas pessoas que trabalham e usam o memcached. Ele seria projetado para simplesmente inicializar e usar o máximo de memória disponível no sistema para executar uma instância grande e agradável do memcached. Conhecemos muitos desenvolvedores e sabemos que alguns deles usam instâncias do EC2 para executar o memcached. Apenas simplificaríamos sua obtenção. Então, abri a boca e disse que achava que poderia criar uma AMI ainda melhor, que usasse parte da tecnologia com a qual eu havia trabalhado no Sun Web Stack para simplificar ainda mais a implementação do EC2.... Assim começou o MrRoboto. Como eu disse acima, conhecemos muitos desenvolvedores, portanto sabemos como eles usam o memcached. Quando as pessoas começam a usar o memcached, elas tendem a executá-lo em um terminal com "-vvv". Esse nível de verbosidade é, na verdade, apenas algo que um memcached desenvolvedor poderia adorar. É um pouco demais para um desenvolvedor comum que usa Rails, PHP ou Java. Fale sobre uma ideia em uma startup e você acaba de ganhar um projeto de desenvolvimento de software para executar! O conceito era misturar um script DTrace, o servidor slosh do Dustin modificado para executar esse script quando um usuário o solicitasse e uma interface de usuário de navegador AJAX simples que obtivesse informações para exibi-las ao usuário. Em vez de tentar descrevê-lo, dê uma olhada neste screencast: AMI do memcached com ferramentas da NorthScale de Matt Ingenthron em Vimeo. Na prática, isso é "-vvv" em um navegador. Isso é muito, muito básico para uma primeira versão, mas podemos pensar em alguns lugares para crescer a partir daqui, agora que a base está pronta. Embora não seja imediatamente aparente a partir desse simples, mas útil "fluxo de chaves", podemos fazer muitas outras coisas interessantes. Alguns outros experimentos já estão funcionando. Além de Trond Norbye e de mim, acho que poucas pessoas mexeram no memcached com o DTrace, embora ele esteja no código há mais de um ano. Não vou entrar em muitos detalhes sobre o DTrace aqui, mas a grande vantagem que você obtém "de graça" com o DTrace é que ele é simples e seguro de usar na produção, e a sobrecarga de uma sonda que não está ativada é nula. Foi exatamente assim que o usamos nessa AMI. Se você não estiver olhando para ele com um navegador, não haverá nenhuma sobrecarga. Mesmo que esteja olhando, a sobrecarga é muito baixa e está fora do caminho crítico da execução do memcached. Na minha humilde opinião, a tecnologia por trás do DTrace é incrível; ela só precisa de alguns exemplos publicados e ferramentas para ajudar as pessoas a se desenvolverem. Muito obrigado aos meus colegas Dustin Sallings pelo exemplo do slosh, Rod Ebrahimi por ajudar a dar forma à interface do usuário e Steve Yen e Dave Neilsen pelo brainstorming e entusiasmo por trás do projeto. Além disso, agradeço a Trond Norbye pela autoria das sondas do DTrace, a Chad Mynhier e Adam Leventhal por ajudarem com meus problemas simples de falha no DTrace e a Rich McDougall/Jim Mauro e Brendan Gregg (inicialmente do Kit de ferramentas DTrace e, mais tarde, da Fishworks analytics) pela orientação sobre o DTrace ao longo dos anos. Mais informações sobre o projeto MrRoboto serão publicadas em posts futuros, mas se você achar isso legal ou útil... ou se tiver uma ideia de algo que gostaria de ver em um futuro AMI do MrRoboto, informe-nos! p.s.: a AMI é baseada em OpenSolaris. Os bugs do console de gerenciamento EC2 da Amazon (atualmente em Beta) estão mantendo-o listado como "Other Linux", que é o padrão para qualquer coisa que não possa ser identificada com uma substring.

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Jennifer Garcia

Jennifer Garcia é gerente sênior de Web na Couchbase Inc. Como gerente do site, Jennifer tem a responsabilidade geral pelas propriedades do site, incluindo design, implementação, conteúdo e desempenho.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.