• Nenhum resultado encontrado

Algoritmo 8 – Algoritmo ACO para o modelo LM 2 K Terceiro Nível

2.1 Múltiplas Nuvens

O ambiente de múltiplas nuvens permite que as aplicações aproveitem os melhores recursos de diferentes componentes oferecidos por vários provedores de nuvem. Esses benefícios de múltiplas nuvens aumentaram o interesse da comunidade acadêmica em investigar seus desafios para gerenciar, implantar e monitorar uma aplicação distribuída e provedores de nuvem do ponto de vista do arquiteto de software e do provedor. Como a indústria começou a desenvolver pesquisas na área antes da academia, ela já oferece algumas soluções proprietárias. Embora já existam algumas soluções, não existe ainda uma taxonomia padronizada para o assunto, e

diferentes pesquisadores usam termos distintos para se referir a conceitos iguais. Nesta tese de doutorado adota-se as definições propostas por Petcu (2014c), que conduziu uma pesquisa de taxonomia de múltiplas nuvens, e mostrou que a comunidade acadêmica criou vários termos para descrever soluções arquitetônicas específicas.

As principais razões para o uso de múltiplas nuvens foram descritas por vários pesquisadores, dentre eles Petcu (2014c), Grozev e Buyya (2014) e Toosi et al. (2014): escala- bilidade, ampla disponibilidade de recursos, recuperação de desastres, distribuição geográfica, baixa latência de acesso, questões legais, regulamentação, eficiência de custos, economia de energia, interoperabilidade e combate ao vendor lock-in. Estes motivos permitem redimensionar dinamicamente sua capacidade e a cooperação entre vários provedores para tratar os problemas relacionados a padrões de uso de serviço e implantação personalizada de uma aplicação na nuvem. O problema associado aos padrões de uso de serviço estabelece que estes podem variar com o tempo e, na maioria das vezes, de maneira imprevisível, o que pode sobrecarregar um único provedor de nuvem, levando à interrupção do serviço ou tornando-os não confiáveis. Na implantação de uma aplicação na nuvem, a existência de interoperabilidade entre provedores de nuvem elimina a obrigação de personalização de padrões de uso. Além disso, o desenvolvimento e implantação de aplicações em múltiplas nuvens altamente disponíveis são permitidos garan- tindo qualidade de serviço e desempenho. As múltiplas nuvens também por ser uma solução que atenda às demandas de usuários por serviços dispersos geograficamente, que exigem baixo tempo de resposta e uso simultâneo de múltiplas nuvens. O cenário de múltiplas nuvens ainda fornece oportunidade para provedores de nuvem identificarem outros provedores capazes de cumprir com as regulamentações relacionadas à localização do data center. Por fim, través de um ambiente de múltiplas nuvens é possível reduzir o consumo de energia promovendo a eficiência do uso da infraestrutura de computação.

O uso de múltiplas nuvens traz várias vantagens que permitem alcançar vários benefícios da computação em nuvem, já que os usuários podem escolher os serviços mais adequados às suas necessidades, como serviços com maior elasticidade ou melhor preço. No entanto, múltiplas nuvens também trazem vários desafios, como problemas relacionados à interoperabilidade e à portabilidade. Para resolver os problemas associados à portabilidade e interoperabilidade é necessário conhecer os vários recursos da nuvem e entender como e quando gerenciá-los (MEZGÁR; RAUSCHECKER, 2014), (SILVA et al., 2013) e (PETCU, 2011).

portabilidade os arquitetos de software precisam tomar decisões importantes de gerenciamento de serviços em nuvem com base nos aspectos de qualidade de serviço (QoS) e outros critérios, como o custo total para alocar os recursos necessários para executar aplicações e dados gerais de desempenho de acordo com a distribuição dos componentes da aplicação em diferentes provedores de serviços. Além disso, existem desafios da perspectiva do arquiteto de software que devem ser tratados. Ainda de acordo com Rehman et al. (2015), o gerenciamento de serviços de nuvem da perspectiva do arquiteto de software possui duas fases. A primeira fase se inicia com a seleção de um provedor de nuvem para instanciar um serviço pela primeira vez. A segunda fase monitora o desempenho dos serviços tanto para aqueles alocados quanto para os disponíveis, de modo a avaliar o nível de QoS e decidir se serviços continuam ou não no mesmo provedor de nuvem.

Além disso, para tratar problemas relacionados ao gerenciamento de recursos para várias nuvens faz-se necessário definir as demandas que um arquiteto de software exige para implantar uma aplicação em múltiplas nuvens. Por este motivo, Petcu (2014b) definiu uma classificação de requisitos funcionais para o Cloudware Multi-Cloud, um software que permite construir, implantar, executar e gerenciar aplicações em um ambiente de computação em nuvem. A classificação proposta é apresentada na Tabela 1 e enfoca na perspectiva de um desenvolvedor e de um usuário. Os requisitos da perspectiva de um desenvolvedor estão na forma de restrições de princípios e ferramentas. No entanto, os da perspectiva de um usuário estão associados às fases de desenvolvimento, implantação e execução.

TABELA1. REQUISITOSFUNCIONAIS PARA O AMBIENTE DEMulti-Cloud(PETCU, 2014B).

Desenvolvimento Implantação Execução

Ferramentas

Portal/Serviço como ponto de entrada

Meta-alocador servi-

ço/recurso Implantador genérico

Mecanismo de pesquisa

Meta-monitor para aplicações

Serviços extras agnósti-

cos a nuvem Meta-escalonador

Implantador semi- automatizado Serviço de cor- respondência Meta-monitor para serviços/recursos Interface para requisi-

tos do usuário

Meta-auto-scaler e balanceador de carga

Mecanismos de rede

virtual Serviço seletivo

Driver de ciclo de vida de uma aplica- ção/serviço

Serviço de integração Depurador e testador Gerenciamento de credenciais

Sistema de reco- mendação

Controle de QoS e me- canismos de aviso

Princípios

Suporte à portabilidade Preservação de parti- cularidades

Junção perfeita entre nuvens

Sem restrições nas nuvens

Usar protocolos pa- drão

Interfaces abstratas de controle de serviço

Usar interfaces pa- drão

Suporte para os prin- cipais provedores de nuvem Permitir aloca- ção dinâmica de recursos Overheadpequeno