Mestrado em Engenharia de Computadores e TelemáticaDe acordo com história dos sistemas informáticos, os engenheiros têm vindo
a remodelar infraestruturas para melhorar a eficiência das organizações, visando
o acesso partilhado a recursos computacionais. O advento da computação
em núvem desencadeou um novo paradigma, proporcionando melhorias
no alojamento e entrega de serviços através da Internet. Quando comparado
com abordagens tradicionais, este apresenta vantajens por disponibilizar
acesso ubíquo, escalável e sob demanda, a determinados conjuntos de recursos
computacionais partilhados.
Ao longo dos últimos anos, observou-se a entrada de novos operadores que
providenciam serviços na núvem, a preços competitivos e diferentes acordos
de nível de serviço (“Service Level Agreements”). Com a adoção crescente
e sem precedentes da computação em núvem, os fornecedores da área estão
se a focar na criação e na disponibilização de novos serviços, com valor
acrescentado para os seus clientes. A competitividade do mercado e a
existência de inúmeras opções de serviços e de modelos de negócio gerou
entropia. Por terem sido criadas diferentes terminologias para conceitos com
o mesmo significado e o facto de existir incompatibilidade de Interfaces de
Programação Aplicacional (“Application Programming Interface”), deu-se uma
restrição de fornecedores de serviços específicos na núvem a utilizadores.
A fragmentação na faturação e na cobrança ocorreu quando os serviços na
núvem passaram a ser contratualizados com diferentes fornecedores. Posto
isto, seria uma mais valia existir uma entidade, que harmonizasse a relação
entre os clientes e os múltiplos fornecedores de serviços na núvem, por meio
de recomendação e auxílio na intermediação.
Esta dissertação propõe e implementa um Intermediador de Serviços na Núvem
focado no auxílio e motivação de programadores para recorrerem às
suas aplicações na núvem. Descrevendo as aplicações de modo facilitado,
um algoritmo inteligente recomendará várias ofertas de serviços na núvem
cumprindo com os requisitos aplicacionais. Desta forma, é prestado aos utilizadores
formas de submissão, gestão, monitorização e migração das suas
aplicações numa núvem de núvens. A interação decorre a partir de uma única
interface de programação que orquestrará todo um processo juntamente com
outros gestores de serviços na núvem. Os utilizadores podem ainda interagir
com o Intermediador de Serviços na Núvem a partir de um portal Web, uma
interface de linha de comandos e bibliotecas cliente.Throughout the history of computer systems, experts have been reshaping IT
infrastructure for improving the efficiency of organizations by enabling shared
access to computational resources. The advent of cloud computing has
sparked a new paradigm providing better hosting and service delivery over the
Internet. It offers advantages over traditional solutions by providing ubiquitous,
scalable and on-demand access to shared pools of computational resources.
Over the course of these last years, we have seen new market players offering
cloud services at competitive prices and different Service Level Agreements.
With the unprecedented increasing adoption of cloud computing, cloud
providers are on the look out for the creation and offering of new and valueadded
services towards their customers. Market competitiveness, numerous
service options and business models led to gradual entropy. Mismatching
cloud terminology got introduced and incompatible APIs locked-in users to
specific cloud service providers. Billing and charging become fragmented
when consuming cloud services from multiple vendors. An entity recommending
cloud providers and acting as an intermediary between the cloud consumer
and providers would harmonize this interaction.
This dissertation proposes and implements a Cloud Service Broker focusing
on assisting and encouraging developers for running their applications on the
cloud. Developers can easily describe their applications, where an intelligent
algorithm will be able to recommend cloud offerings that better suit application
requirements. In this way, users are aided in deploying, managing, monitoring
and migrating their applications in a cloud of clouds. A single API is required
for orchestrating the whole process in tandem with truly decoupled cloud managers.
Users can also interact with the Cloud Service Broker through a Web
portal, a command-line interface, and client libraries