quarta-feira, 22 de abril de 2009

LSD, BDIM, Empregos e Planejamento de Capacidade

Antes de começar o meu memory dump sobre os tópicos do título, gostaria de agradecer a Nazareno pelo convite de postar no blog e mandar um abraço para todos do LSD.

- Quando aprendi sobre planejamento de capacidade, a lei de little, utilização de recursos, escalabilidade e outras coisas na minha disciplina de Análise e Desempenho de Sistemas Discretos na UFCG não percebi onde se aplicava toda aquela matemática. Algum tempo depois, fui alocado para pesquisar justamente essas coisas no LSD, só que focadas em grades computacionais, nesta época aprendi sobre Business Driven IT Management (BDIM). Resumindo uma história longa, a forma mais simples de se entender BDIM é pegar tudo aquilo que você aprende sobre planejamento de capacidade (tempo de resposta de servidores, requisições processadas, utilização etc) e coloca uma nova variável dinheiro no meia da coisa. Agora você planeja sua infraestrutura de TI pensando no seu lucro. Nesta pesquisa, mostramos como uma grade entre pares (P2P) pode reduzir o custo de uma infraestrutura de TI para o processamento de cargas, devido ao compartilhamento gratuito de recursos, ideia que pode ser expandida para outros serviços P2P como live-streaming, compartilhamento de dados ou CDNs. Agora, eu entendia para que servia aquela matemática.

Um ano depois, estava iniciando o meu mestrado na UFMG e assistindo as mesmas aulas de análise de desempenho só que com outro nome. Um aluno (Itamar Viana) da disciplina pergunta se aquela coisa servia para ganhar dinheiro, em outras palavras se ele seria contratado por saber aquelas coisas todas, me lembrei do caso de BDIM e pensei em falar sobre ele, mas BDIM não dava empregos trabalhava com modelos em cima de dinheiro. Embora seja bastante bacana aquela modelagem toda, a pergunta se aquilo empregava alguém não foi claramente respondida, é uma pesquisa interessante com diversas conferências e grupos de interesse no mundo, mas vai empregar alguém? A reposta é sim, e aprendi isto alguns meses depois. O mesmo aluno da dúvida acima foi empregado em uma empresa que faz distribuição e processamento de vídeos, soube que ele estava se dando bem e um dos motivos eram os seus conhecimentos de planejamento de capacidade, algo que não era aplicado pela empresa, que ele continue fazendo sucesso.

Itamar me apontou para a seguinte entrevista recém publicada no HighScalability que serve para termos uma ideia do novo livro sobre planejamento de capacidade escrito por John Allspan, gerente de operações do Flickr, livro que ele está lendo para seu trabalho. O livro aparenta ser uma "hands on" em capacity planning, e pela entrevista parece que aquela modelagem toda, embora seja correta e aplicável, acaba sendo deixada para trás devido as correrias e dinamicidade do mundo real, o autor argumenta que se necessita de uma ideia ágil para planejamento de capacidade. Mas o interessante é que pelo o ponto de vista do autor, o mundo já é BDIM e o custo é quem guia o seu gerenciamento de capacidade. O autor também fala sobre clouds contrastando com planejamento de capacidade, mostrando que a pesquisa que fiz parte (e continua no LSD) estava na crista da onda. Acho interessante ver casos onde a pesquisa e empresa parecem andar juntos, embora tenham opiniões um pouco divergentes.

Atualmente duas dúvidas permanecem na minha cabeça. A primeira é devemos simplificar nossos modelos de pesquisa e ficar mais próximo do modelo ágil do mundo empresarial, tendo assim uma pesquisas mais aplicada. A outra é se o mundo empresarial vai um dia fazer uso das nossas ideia de planejamento de capacidade como a de um modelo híbrido usando P2P.

ps: Devido a este convite achei este software (usado no Flickr) bacana para fitting de curvas com picos - http://www.unipress.waw.pl/fityk/

terça-feira, 21 de abril de 2009

Amanhã 22/04 - Conversa LSD

Oi Pessoal, prosseguindo com a tradição, amanhã teremos mais uma Conversa LSD, às 14h.

Desta vez conversaremos sobre as lições aprendidas durante o desenvolvimento do DDGfs, um sistema de arquivos distribuído em criação aqui no LSD desde o ano passado.

Além disto, para o vosso deleite, Giovanni Surubim apresentará suas experiências (truques, magias e casos de contorno) no uso do PlanetLab

Segue abaixo uma descrição mais pormenorizada sobre o DDGfs.

Era um noite escura e tenebrosa ... Projeto e implementação de um sistema de arquivos para uso corporativo

O DDGfs é um sistema de arquivos distribuído que utiliza uma rede corporativa de desktops. Este sistema está em desenvolvimento no LSD desde 09/2008 e será disponibilizado publicamente em breve. Na conversa dessa quarta serão apresentadas as lições aprendidas durante o processo de desenvolvimento do DDGfs.

Ainda, será mostrada uma visão geral do projeto assim como novas funcionalidades que estão em desenvolvimento. Por fim, serão discutidos alguns resultados experimentais sobre o desempenho do DDGfs que mostram sua equiparação com outros sistemas de
arquivos corporativos.

Individual and Social Behavior in Tagging Systems

Capitaneados por Elizeu Santos-Neto, ilustre colaborador do LSD a distância (atualmente doutorando no NetSysLab da UBC), eu, Matei, Adriana e David colaboramos em um artigo que foi aceito para a Hypertext 2009.

Em Individual and Social Behavior in Tagging Systems, nós analisamos o comportamento de usuários do CiteULike e Connotea a respeito de como eles compartilham itens a anotações sobre itens. Entre outras coisas, os resultados mostram que tipicamente dentre os itens adicionados às bibliotecas dos usuários em um dia, apenas uma pequena fração já existia no sistema. Isso implica que itens tipicamente são pouco compartilhados. Tags (ou anotações), por outro lado, são compartilhadas mais freqüentemente. A partir de observações como essas, o artigo traz uma série de recomendações para sistemas que se baseiam em explorar o comportamento de usuários em sistemas de tagging.

Seedboxes: pagando para compartilhar

A idéia básica de uma comunidade BitTorrent é que usuários compartilham recursos para distribuir conteúdo de forma eficiente. Embora geralmente o recurso compartilhado por cada usuário seja a largura de banda de seu próprio PC, esses dias tomei conhecimento de que é uma prática popular no BitTorrent alugar um servidor bem-conectado para agir como seu proxy na distribuição de conteúdo. Esses proxies são chamados nas comunidades de seedboxes (e podem ser alugados, por exemplo, aqui).

Um aspecto interessante é que uma das principais motivações dos seedboxes é a de permitir ao usuário cumprir com regras de compartilhamento impostas pelas comunidades. Como a eficiência na distribuição de conteúdo de uma comunidade depende da contribuição de seus usuários, várias comunidades impõem regras que exigem que os usuários contribuam uma determinada fração do que consomem da comunidade. Alguns usuários podem não ter largura de banda de upload ou uptime o suficiente para atingir as metas impostas pelas comunidades e aí, nesse caso, usar seedboxes é uma alternativa viável.

Outro aspecto é que se muitos usuários usam seedboxes, torna-se difícil para usuários que não os usam contribuir no mesmo 'ritmo', causando uma espécie de inflação na comunidade e potencialmente excluindo os que dispõem de menos recursos.

sexta-feira, 17 de abril de 2009

LSD no IM/BDIM 2009

No início de junho, eu (Paulo Ditarso) e Álvaro Degas iremos apresentar, respectivamente, os dois trabalhos abaixo no IM e no BDIM (realizado junto com o IM) 2009. Faremos prévias das apresentações em um data a ser definida no mês de maio.

Título: Using Heuristics to Improve Service Portfolio Selection in P2P Grids

A ser apresentado no 11th IFIP/IEEE International Symposium on Integrated Network Management (IM 2009)

Neste trabalho nós consideramos um sistema P2P que provê múltiplos serviços para os seus usuários, sendo que um mecanismo de incentivo promove colaboração entre os nós. Já foi mostrado que o uso de mecanismos de incentivo baseados em reciprocidade nesse tipo de sistema previne free-riding e, ao mesmo tempo, promove o agrupamento de nós que tenham interações mutuamente lucrativas. Por outro lado, uma característica que não foi suficientemente estudada nesse contexto é a seleção de portfólio de serviços. Normalmente os nós estão sujeitos a limitação de recursos, o que os força a selecionar apenas um subconjunto de todos os serviços que podem ser providos. Claramente, o subconjunto de serviços selecionado impacta no lucro que a grade retorna para os nós, visto que cada serviço vai ter um custo diferente e retornar uma receita diferente. Além disso, a receita gerada por um serviço é fortemente influenciada pelo comportamento dos demais nós, que por sua vez podem mudar no decorrer do tempo. Nesse trabalho nós exploramos o uso de heurísticas para selecionar o portfólio de serviços para ser oferecido pelos nós nesse tipo de grades computacionais. A principal contribuição desse trabalho é o uso de heurísticas para aumentar a lucratividade média dos nós e um estudo do impacto de algumas características do sistema sobre o comportamento das heurísticas.

Título: On the Evaluation of Services Selection Algorithms in Multi-Service P2P Grids

A ser apresentado no 4th IFIP/IEEE International Workshop on Business-driven IT Management (BDIM 2009)

Alguns trabalhos anteriores já mostraram que a lucratividade geral de um nó é fortemente dependente do conjunto de serviços que ele oferece. Portanto, o uso de algoritmos apropriados para seleção de serviços é crucial para se obter uma lucratividade melhor para os nós. Claramente, avaliar a eficiência de algoritmos de seleção de serviço é um importante aspecto na busca por soluções aplicáveis para este problema. Infelizmente, devido à complexidade e ao indeterminismo inerente ao sistema, normalmente é intratável a computação de soluções ótimas, mesmo para sistemas pequenos. Isso torna difícil a tarefa de avaliar a performance de algoritmos práticos baseados em heurísticas. Este trabalho propõe, como alternativa, um método de avaliação computacionalmente mais barato. A metodologia que nós propomos mapeia o problema da seleção de serviços numa instância do Problema da Mochila, tornando possível o uso de técnicas baseadas em força bruta para sistemas razoavelmente maiores. Dessa forma, ao imergir os algoritmos sob avaliação em uma configuração similar à que ele está sujeito quando opera em condições reais, é possível aferir sua eficiência comparada à uma solução ótima. Nós mostramos como essa metodologia pode ser usada ao avaliarmos dois algoritmos de seleção de serviço.

terça-feira, 14 de abril de 2009

Conversa LSD amanhã (15/04/2009)

Olá pessoal! Amanhã teremos mais uma Conversa LSD e nela será apresentado o NodeWiz-R, trabalho que vem sendo desenvolvido no meu Mestrado, aqui no LSD. Aproveitarei também para apresentar os resultados que foram obtidos com o simulador dessa solução.

Horário: 14h

O resumo do trabalho segue abaixo:

Nos últimos tempos, surgiram grandes oportunidades para compartilhamento de recursos e cooperação entre usuários através da Internet. O primeiro passo para que esse compartilhamento possa se dar é o conhecimento da existência dos recursos disponíveis. A descoberta de recursos é possível através da manutenção de um índice composto de informações sobre eles. Embora diversas soluções tenham sido propostas neste sentido, elas não oferecem um serviço capaz de lidar com recursos que possuem uma estrutura de representação complexa, além de não fornecerem suporte a consultas mais ricas e expressivas, que permitam combinar e correlacionar informações. Visando atender essa demanda, nós propomos o NodeWiz-R, uma solução para descoberta de recursos que permite indexar de forma eficiente, recursos distribuídos que possuem um modelo complexo de representação. O NodeWiz-R propõe o uso de uma camada relacional sobre um substrato peer-to-peer de forma a prover um índice escalável e expressivo, possibilitando ainda o suporte a consultas usando o padrão SQL.

Esperamos por vocês!
_____________________________

segunda-feira, 6 de abril de 2009

ES no LSD

Em maio deste ano irei apresentar um artigo intitulado Design Tests: An Approach to Programmatically Check your Code Against Design Rules
no 31st International Conference on Software Engineering (ICSE 2009), New Ideas and Emerging Results.

Apesar de ser um trabalho de Engenharia de Software, boa parte da avaliação inicial foi feita no LSD (OurBacukp e OurGrid).

Trata-se de um método de verificação de programas baseado em testes. De um modo geral, o objetivo é checar se os programadores estão seguindo as regras de design previamente especificadas. Regras são especificadas como testes, daí o nome Testes de Design. De fato, testes de design são JUnit test cases com uma semântica diferente de testes funcionais. Testes funcionais checam se o software se comporta como esperado quando estimulado por determinadas entradas, ao passo que testes de design checam se o software está sendo construído da maneira esperada.

Para dar suporte à abordagem, foi desenvolvida uma biblioteca chamada Design Wizard (http://www.designwizard.org).

Irei fazer uma prévia da apresentação no Conversa LSD do dia 29/04.

sexta-feira, 3 de abril de 2009

Estatísticas do OurGrid

Pouca gente sabe que o OurGrid, a partir da sua versão 4, tem armazenado todas as operações que estão acontecendo na grade. Desde as mudanças de estado de um peer até quanto tempo de CPU uma task consumiu.

A entidade responsável por coletar esses dados é o Aggregator, que periodicamente consulta todos os peers sobre novos eventos que ocorreram nos seus respectivos sites. Além disso, cada peer possui um banco de dados embutido, que guarda essas informações históricas.
Ter essas informações já é muito interessante, pois daí podemos investir na divulgação/marketing do OurGrid, além de auxiliar gerência local de sites e a gerência global da grade.

Além disso, está em desenvolvimento o OurGrid Statistics, portal que realiza consultas do tipo: "Quantos peers estiveram online durante o dia de hoje?", "Qual a proporção de tempo que um determinado peer esteve online durante o mês?" e exibe gráficos correspondentes a essas consultas numa interface WEB 2.0.

O projeto está em desenvolvimento e sua página de acompanhamento tem informações interessantes sobre novas features e próximas releases.