• Nenhum resultado encontrado

A computação em nuvem leva o usuário ao mundo da supercomputação dando-lhe a sen- sação de poder computacional e capacidade de armazenamento ilimitados, acessíveis a

partir da sua estação de trabalho. Ao usar uma nuvem, o usuário acessa recursos de com- putação como utilitários que podem ser alugados e liberados conforme a necessidade [4]. Através da virtualização a nuvem oferece recursos computacionais com várias opções de arquitetura de hardware, de memória, de armazenamento e conectividade acessíveis via Internet. A computação em nuvem provê hardware sob demanda permitindo que empresas executem seus sistemas proprietários transformando gastos fixos em despesas conforme o consumo reduzindo investimentos. Ela oferece como principais benefícios a preservação do investimento inicial, a redução de custos operacionais, a redução de custos de manu- tenção e escalabilidade fornecida sob demanda. Tais características da nuvem fornecem elasticidade ao ambiente de computação do usuário tornando os sistemas adaptáveis às suas necessidades.

As principais características da computação em nuvem são o auto-atendimento sob demanda, acesso ubíquo à rede, localização independente de recursos (reliability), elas- ticidade rápida (scalability) e pagamento pelo uso. A computação em nuvem pode ser disponibilizada através de três modelos: software como serviço (software as a service - SaaS), plataforma como serviço (platform as a service - PaaS) e infraestrutura como serviço (infrastructure as a service - IaaS), modelos que são baseados nos padrões da Computação Orientada a Serviços (Service Oriented Computing - SOC) [5]. Em qual- quer um desses modelos é possível construir nuvens privadas com acesso de uso exclusivo, nuvens públicas que disponibilizam recursos a todos que estejam dispostos a pagar por seu uso e nuvens híbridas onde a nuvem privada também oferece acesso a recursos vindos da pública para suprir a falta momentânea de recursos em picos de processamento por exemplo. Na computação em nuvem detalhes são abstraídos do usuário. Eles não ne- cessitam ter conhecimento, especialização, ou controle sobre a infraestrutura tecnológica da nuvem que os suporta. Tipicamente a computação em nuvem envolve a provisão de recursos dinamicamente escaláveis, muitas vezes virtualizados, como serviços através da Internet [6].

A Virtualização [7] de recursos é um conceito fundamental nas nuvens computacionais. A virtualização é o processo de apresentação de grupos lógicos ou conjuntos de recursos computacionais que podem ser acessados de forma abstrata com benefícios sobre a confi- guração original dos mesmos. A virtualização de software abstrai o hardware através da criação de interfaces para máquinas virtuais (Virtual Machines - VMs). Tais VMs repre- sentam recursos físicos como unidades de processamento (CPUs), memória, conexões de rede e periféricos (discos, impressoras, etc). Cada VM deve ser um ambiente de execução isolado e independente dos demais. Dessa forma, cada VM pode ter seu próprio sistema operacional, suas aplicações e seus serviços de rede. Esse isolamento dá ao usuário controle total sobre o recurso não exigindo qualquer conhecimento sobre o hardware hospedeiro.

As nuvens públicas oferecem recursos com limitação de interconexão de baixa latência que ainda precisam ser providos por nuvens ou ambientes privados, como por exemplo, grades computacionais previamente instaladas nas imagens de ambientes, que são usadas na instanciação de VMs. Através dessas imagens é possível criar uma grade computacional usando recursos da nuvem para suportar o processamento paralelo.

A facilidade da computação sob demanda oferecida pela nuvem exige maior escalabi- lidade, flexibilidade e disponibilidade dos serviços. Ela permite aos usuários manterem o uso de seus sistemas (computadores, cluster e grades) agregando a nuvem ao seu leque de opções. No entanto a união das tecnologias de grade e nuvem gera um sistema híbrido de computação com novas exigências notadamente para a gerência de recursos. Para atender a esses requisitos é importante que a infraestrutura ofereça reconfiguração com a possibi- lidade de publicação de novos recursos ou atualização dos já disponíveis sem interromper as tarefas em execução. Além disso, apesar de usar o paradigma SOC essas tecnologias não oferecem suporte para a coordenação e composição dinâmica de serviços.

Para permitir o aprovisionamento sob demanda é necessário suportar a instanciação dinâmica de serviços, isto é, colocar o serviço no recurso computacional, publicá-lo para que possa ser tratado por um container e ativar o container para que este possa atender as requisições ao serviço. Em um sistema híbrido composto por nuvem privada com a pos- sibilidade de acesso a nuvens públicas, a gerência de workflow deve atender aos requisitos em alguns níveis. Primeiro deve oferecer facilidades para que o usuário faça submissões sem a obrigação de escolher ou indicar a localização dos recursos computacionais a serem usados. Na esfera da nuvem privada, o gerente de workflow deve encontrar os melhores recursos disponíveis e, quando necessário, fazer a publicação dinâmica dos serviços nesses recursos. Por outro lado, ao nível da nuvem pública a gerência de workflow deve ser capaz de interagir com a interface da nuvem para obter os recursos computacionais. Após isso, deve prepará-los conforme as necessidades do workflow, fazendo a publicação dinâmica dos serviços nos recursos oriundos da nuvem pública quando necessário. Além disso, a gerência de workflow pode oferecer personalizações que permitam o melhor uso das fa- cilidades do sistema híbrido. Um exemplo é a configuração que permite usar a nuvem pública somente em casos onde todas as possibilidades locais já foram esgotadas. Essa configuração aumenta o poder computacional sem investimento em infraestrutura física ampliando as vantagens do uso de nuvens.