Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Inovações dentro do alcance: Expandindo os limites com software elástico

Robert Wisniewski, Engenheiro de Software, IBM
Author photo
Robert Wisniewski é Engenheiro de Software que está se especializando em desempenho e escalabilidade. Ele trabalhou anteriormente no desempenho do WebSphere Applications Server por 7 anos focando todas as áreas do produto, de EJB/JPA a computação autônoma e design de referência. Seu cargo atual como Divulgador Técnico volta o foco dessa experiência sobre cenários de clientes e o aplicativo de estratégias XTP no mundo real.

Resumo:  Novos conceitos e estratégias requerem mudanças em vocabulário. Com uma movimentação em direção a arquiteturas de menor custo, altamente flexíveis e amistosas à nuvem, o conceito de elasticidade foi estabelecido para uma solução de TI corporativa. Este artigo explora uma definição específica de elasticidade, descrevendo exemplos presentes no IBM® WebSphere® eXtreme Scale, uma grade de dados elástica na memória. This content is part of the IBM WebSphere Developer Technical Journal.

Visualizar mais conteúdo nesta série

Data:  16/Set/2011
Nível:  Intermediário Também disponível em :   Inglês
Atividade:  413 visualizações
Comentários:  


Cada edição de Inovações dentro do alcance apresenta novas informações e discussões sobre tópicos relacionados a tecnologias emergentes, tanto do ponto de vista do desenvolvedor como do praticante, mais observações por trás dos bastidores dos produtos IBM® Os painéis do WebSphere® de ponta.

Dando sentido ao jargão

Uma coisa que temos muito no segmento de mercado de software corporativo é jargão. Impressionante por vezes, o jargão é necessário para expandir o vocabulário usado para descrever as soluções e ferramentas disponíveis para solucionar um conjunto de problemas de negócios cada vez mais crescente. Sem essa expansão, muitos desses conceitos não se desenvolveriam. Um conceito para o qual estamos tentando dar um significado muito específico é o uso do termo elástica para descrever uma solução corporativa.

É fácil cair na armadilha de usar a ideia de elasticidade para determinar um ponto sobre o objetivo configurado para uma determinada solução. Em sua forma mais simples, uma solução pode ser elástica simplesmente permitindo que mais recursos sejam incluídos ou removidos sem colocar o sistema off-line. Para poder criar um padrão mais alto e mais útil, gostaria de propor um objetivo mais ambicioso de uma definição específica.

Elasticidade em um sistema ou componente de um sistema (usarei software como um exemplo, já que trabalho com o IBM WebSphere eXtreme Scale todos os dias) sugere três graus de liberdade específicos:

Agora, antes de rotular isso como jargão ou conceitos vazios, permita-me dar algum sentido a essas ideias.

Ajuste de escala sem limitação razoável

Não devemos esperar muita controvérsia com relação à ideia de um sistema elástico pode ter ajuste de escala para cima e para baixo sem um efeito significativo na disponibilidade do sistema durante essas operações. No entanto, acredito que também devemos esperar que o próprio sistema não posicione qualquer restrição real em um cenário de ajuste de escala para cima razoável. Com isso, quero dizer que a infraestrutura em si deve ter uma arquitetura que permita o crescimento continuado do sistema e disponibilize novos recursos com pouco ou nenhum gasto adicional. Isso sugere a possibilidade de ajuste de escala linear verdadeiro.

Abordamos o conceito de elasticidade no within WebSphere eXtreme Scale considerando os efeitos de grades extremamente grandes em cada aspecto o produto. Alguns exemplos podem ilustrar isso muito bem:

  • Primeiro, a arquitetura da infraestrutura de associação de grade em si é dividida em componentes de problemas de escala menores solúveis e que podem ser contidos. Em vez de reunir milhares de servidores em um único grupo principal, o serviço de catálogo (um processo administrativo que trata da estrutura da grade) divide os membros em grupos de 20. Cada um desses grupos individuais executa então um algoritmo de visualização de associação que envolve pulsação, que tem um registro de controle comprovado e compartilha função com o IBM WebSphere Application Server. Um "líder" eleito desse grupo menor mantém o serviço de catálogo atualizado com relação ao status do grupo, que então precisa somente permanecer em contato com 1/20 do total de membros da grade.
  • Outro exemplo é as interações dos clientes com a própria grade. Uma questão que surge frequentemente é o possível gargalo que um único processo administrativo fornece, como o serviço de catálogo. Os serviços de catálogo podem ser duplicados e armazenados em cluster, também, mas isso é simplesmente para redundância. A verdade é que um único serviço de catálogo pode realmente tratar das necessidades de um número praticamente ilimitado de clientes, pois esses clientes interagem com o serviço de catálogo somente uma vez para autoinicialização na grade. Nessa interação, o serviço de catálogo retorna informações sobre a grade, incluindo um mapa de roteamento completo que define o local de todas as partições da grade e o espaço chave associado para cada. Após isso, os clientes interagem diretamente com as partições e até mesmo mantêm essa tabela de roteamento atualizada por meio de interações do subcanal durante o processo de transação normal. O serviço de catálogo fia então livre para focar sua atenção em simplesmente gerenciar o balanço e a associação da grade à medida que recursos são incluídos e removidos.

Com abordagens como essas, fomos capazes de ajustar a escala de uma grade forma efetiva para um tamanho arbitrariamente grande. Nos laboratórios, obtivemos uma grade de 1.500 contêineres sem nenhuma diferença real no desempenho percebido. Após isso, nós simplesmente ficamos sem tempo para seguir adiante, mas não há nenhuma limitação específica ou razoável para esse ajuste de escala. Esse é um fator importante para considerar verdadeiramente uma solução como sendo elástica.

É importante saber que isso não sugere que CADA implementação de uma infraestrutura elástica fornecerá ao aplicativo em geral ajuste de escala linear à medida que recursos forem incluídos. Ainda há considerações referentes à lógica e aos negócios que estão sendo conduzidos nessa infraestrutura e se eles empregam ou não fundamentos escaláveis de processamento extremo de transações. Com relação a isso, o próprio aplicativo corporativo também deve ter características elásticas. Uma infraestrutura elástica deve, no entanto, fornecer a infraestrutura para atingir efetivamente esses objetivos.

Tolerância a falhas e autorregeneração

Se você for esperar que um implementador confie que sua solução tenha ajuste de escala indefinidamente, você deve tolerar também os eventos que ocorrem com maior probabilidade e frequência à medida que um sistema cresce, como a inclusão ou perda de nós devido a manutenção ou falha, falhas e mudanças de rede, etc. Com mais recursos vêm uma maior chance de falha e um sistema elástico deve ser capaz de superar essas falhas de maneira previsível e eficiente, ao mesmo tempo em que retorna novamente a um estado de tolerância a falhas, se possível.

Continuando com nosso exemplo de grade de dados do WebSphere eXtreme Scale, à medida que você aumenta para grades de centenas ou milhares de processos de contêineres, a perda ou manutenção de um desses processos é cada vez mais provável. Por meio de replicação -- que é uma competência principal do WebSphere eXtreme Scale e ofertas de grade de dados na memória semelhantes -- esses eventos podem ser tolerados. Não somente isso, mas como o posicionamento e a migração dos dados é completamente transparente atrás da "caixa preta" das APIs do cliente do WebSphere eXtreme Scale, uma nova réplica é criada automaticamente e a tolerância a falhas é novamente atingida.

Elasticidade precisa ter esse anexo conceitual para ser verdadeiramente útil à medida que as implementações crescem e tornam-se mais complexas.

Simplicidade administrativa

Necessidades especializadas referentes à administração e manutenção de um sistema podem ser sutis ao se considerar o significado de uma infraestrutura elástica. No entanto, semelhante ao requisito de tolerância a falhas à medida que os sistemas crescem e tornam-se mais complexos, você também deve considerar a capacidade do implementador em executar tarefas administrativas comuns.

O conceito chave aqui é que a configuração e a manutenção de cada nó devem ser idênticas ou muito minimamente diferentes. Você não deve esperar que o implementador forneça uma lista de todas as máquinas ou processos membros para o sistema operar. Deve haver algum nível de descoberta e gerenciamento automáticos baseados em um conjunto comum de artefatos de configuração.

No caso do WebSphere eXtreme Scale, a abordagem é bem direta. As informações de configuração focam a estrutura e as características da própria grade, não em quaisquer detalhes dos processos membros específicos. Por exemplo, você configura em quantas partições dividir os dados e como essas partições devem ser replicadas. Dadas essas informações, o WebSphere eXtreme Scale mapeia isso para os membros da grade disponíveis e aplica as políticas determinadas na configuração. O mesmo conjunto exato de artefatos de configuração é fornecido a cada membro da grade quando iniciado e os detalhes do local desse membro no mundo da grade é gerenciado e determinado automaticamente.

Essa filosofia é aplicada por todo o espectro de administração e manutenção, com cada interação projetada para separar os detalhes a grade física da estrutura lógica das construções da grade.

Podemos encontrar muitos outros exemplos disso, como o desacoplamento de posicionamento de réplica por meio do uso da abstração de zona ou a capacidade de atualizar o nível de código da grade real sem colocar a grade em si off-line. O conceito chave é que tarefas administrativas devem ter uma complexidade constante à medida que o sistema sofre ajuste de escala de expansão para fora ou, pelo menos, o mais constante possível. A partir disso, é possível ver como software elástico e hardware elástico (ou seja, implementações de virtualização e nuvem) podem, de forma apropriada, se combinar para fornecerem um novo nível de liberdade às soluções corporativas.


Em aprovação de jargão

É provavelmente seguro dizer que mesmo nossas tecnologias base mais disseminadas na computação começaram como algum tipo de jargão. Nós simplesmente precisamos lutar para definir o significado e o propósito útil ao incluir um novo conceito ou objetivo definido em nosso vocabulário. Dessa maneira, acredito que esteja claro que elasticidade em soluções corporativas pode ser um conceito de valor quando claramente definido e considerado para conclusões lógicas. Temos tentado de forma consistente relacionar significado concreto e útil quando falamos sobre o WebSphere eXtreme Scale como uma grade de dados elástica e lutaremos por continuar afazer isso à medida que aplicamos esses conceitos a outras soluções projetadas para criar infraestruturas verdadeiramente flexíveis.


Recursos

Aprender

Obter produtos e tecnologias

Discutir

Sobre o autor

Author photo

Robert Wisniewski é Engenheiro de Software que está se especializando em desempenho e escalabilidade. Ele trabalhou anteriormente no desempenho do WebSphere Applications Server por 7 anos focando todas as áreas do produto, de EJB/JPA a computação autônoma e design de referência. Seu cargo atual como Divulgador Técnico volta o foco dessa experiência sobre cenários de clientes e o aplicativo de estratégias XTP no mundo real.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=WebSphere
ArticleID=756996
ArticleTitle=Inovações dentro do alcance: Expandindo os limites com software elástico
publish-date=09162011
author1-email=rewisnie@us.ibm.com
author1-email-cc=

Conheça a IBM da sua cidade

Virtual Branch Office Brasil

A IBM está mais perto do que você imagina!


Tags

Help
Use o campo de pesquisa para encontrar todos os tipos de conteúdo no My developerWorks com essa tag.

Use a barra de rolagem para ver mais ou menos tags.

Tags populares mostra as principais tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Minhas tags mostra suas tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Use o campo de pesquisa para localizar todos os tipos de conteúdo no Meu developerWorks com essa tag. Tags populares mostra as tags principais para essa zona de conteúdo particular (por exemplo, tecnologia Java, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere). Minhas tags mostra as suas tags para essa zona de conteúdo em particular (por exemplo, tecnologia Java, Linux, WebSphere).