• Nenhum resultado encontrado

Implementação de um serviço de telemetria do OpenStack em um ambiente Cloud Computing

N/A
N/A
Protected

Academic year: 2021

Share "Implementação de um serviço de telemetria do OpenStack em um ambiente Cloud Computing"

Copied!
74
0
0

Texto

(1)

UNIVERSIDADEFEDERALDO RIO GRANDE DO NORTE

Universidade Federal do Rio Grande do Norte – UFRN Centro de Ensino Superior do Serid´o – CERES Departamento de Ciˆencias Exatas e Aplicadas – DCEA

Bacharelado em Sistemas de Informa¸c˜ao – BSI

Implementa¸

ao de um servi¸

co de telemetria do

OpenStack em um ambiente Cloud Computing

Jackson Soares

Orientador: Prof. MSc. Gilson Gomes da Silva.

Trabalho de Conclus˜ao de Curso apre-sentado ao Curso de Bacharelado em Siste-mas de Informa¸c˜ao como parte dos requisitos para obten¸c˜ao do t´ıtulo de Bacharel em Sis-temas de Informa¸c˜ao.

Laborat´orio de Elementos do Processamento da Informa¸c˜ao – LabEPI Caic´o, RN, 27 de outubro de 2015

(2)

Divis˜ao de Servi¸cos T´ecnicos

Cataloga¸c˜ao da Publica¸c˜ao na Fonte. UFRN Biblioteca Setorial do Instituto de Qu´ımica.

Soares, Jackson

Implementa¸c˜ao de um servi¸co de telemetria do OpenStack em um ambiente Cloud Computing. / Jackson Soares. – Natal, RN, 2015.

74 f.: il.

Orientador: Prof. MSc. Gilson Gomes da Silva.

Monografia (Bacharel em Sistemas de Informa¸c˜ao) – Universidade Federal do Rio Grande do Norte. Centro de Ensino Superior do Serid´o - CERES. Departa-mento de Ciˆencias Exatas e Aplicadas.

1. Computa¸c˜ao em Nuvens - Monografia. 2. Cloud Computing - Monografia. 3. OpenStack - Monografia. 4. Telemetria - Monografia. 5. Tecnologia da Informa¸c˜ao - Monografia. I. Gomes, Gilson. II. Universidade Federal do Rio Grande do Norte. III. T´ıtulo.

(3)

Implementa¸

ao de um servi¸

co de telemetria do

OpenStack em um ambiente Cloud Computing

Jackson Soares

Monografia aprovada em 19 de junho de 2015 pela banca examinadora composta pelos seguintes membros:

Prof. MSc. Gilson Gomes da Silva (orientador) . . . DCEA/UFRN

Prof. Dr. Jo˜ao Paulo de Souza Medeiros . . . DCEA/UFRN

(4)
(5)

“Este ´e o dia em que o Senhor agiu; alegremo-nos e exultemos neste dia. ”

(6)
(7)

Agradecimentos

Agrade¸co a Deus pelo o dom da vida, pela a sua longanimidade, fidelidade e amor para comigo, pois sem a ajuda dele seria imposs´ıvel chegar at´e aqui. A ele seja toda a honra e a gl´oria para todo o sempre.

Aos meus pais, Josefa Soares e Antˆonio Jos´e Soares, por me incentivarem, sendo os pilares de minha vida, acreditando em minha capacidade. Agrade¸co tamb´em por eles terem investido tanto em meus estudos e me darem uma educa¸c˜ao de um verdadeiro homem de bem, o qual contribuiu para que eu nunca me desviasse do caminho, eu os Amo.

Aos meus irm˜aos, Andressa Soares e Andr´e Abmael Soares, por me darem seu apoio em todas as circunstˆancias e serem pessoas que procuram fazer o que ´e bom.

Ao meu grande irm˜ao Gidinei, por me apoiar nos anos iniciais de curso cedendo um lugar de apoio e descanso, vocˆe ´e um grande exemplo de vencedor.

Aos professores Jo˜ao Borges, Jo˜ao Paulo, Luiz Paulo e Gilson por terem um dia me aceito como integrante do LabEPI, laborat´orio ao qual ´e o melhor ambiente de estudo e aprendizado que conheci, contribuindo para minha forma¸c˜ao. Em especial ao professor Jo˜ao Paulo por me ajudar em muitos momentos de dificuldades e indecis˜oes, e ao Professor Gilson por ter me aceito como seu orientando.

Aos Professores Deilson, Josu´e, Flavius, Taciano, Karliane, Ricardo, Fabr´ıcio pelo o co-nhecimento que me foi transmitido e por tamb´em fazerem parte da minha forma¸c˜ao. Aos meus amigos de laborat´orio, Maycon, Francimar, T´ulio, Dˆenis, Anderson, Daniel, Gutto, Emerson, Eduardo, Alex, ˆAngelo, gra¸cas a vocˆes pude ter um ambiente de estudo agrad´avel, compartilhando conhecimento e resolvendo problemas, vocˆes s˜ao verdadeiros irm˜aos.

Aos meus tios e primos por tamb´em me apoiarem e incentivarem nessa jornada, Especial-mente tia Loura e tia Branca pelos conselhos e palavras de ˆanimo e f´e.

Aos queridos, Jos´e Carlos, Jos´e Daniel Dantas, por me proporcionarem momentos de alegrias e companheirismo renovando as minhas for¸cas, ao Pastor Silvany, Socorro Oliveira, Valmir e Valdinete que sempre trouxeram uma palavra de f´e da parte de Deus.

Aos amigos, Denir, Dorgivan, Hugo da residˆencia universit´aria de Caic´o por dividirem comigo ao longo dos ´ultimos anos um ambiente familiar agrad´avel.

Finalmente, sou grato pela oportunidade de desenvolver este trabalho no Laborat´orio de Elementos do Processamento da Informa¸c˜ao (LabEPI), sediado no Centro de Ensino Superior do Serid´o da Universidade Federal do Rio Grande do Norte.

(8)
(9)

Resumo

A Cloud Computing (Computa¸c˜ao em Nuvem) desde o in´ıcio da d´ecada atual deixou de ser apenas um conceito e passou a ser um novo paradigma, influenciando a tomada de decis˜oes de grandes empresas em todo mundo e afetando direta e indiretamente uma grande parte das pessoas. O objetivo deste trabalho consiste em desenvolver um servi¸co de telemetria para c´alculo de estimativas e cria¸c˜ao de relat´orios de uso de recursos em uma nuvem OpenStack R. Ser´a abordado a Cloud Computing expondo seus conceitos,

caracter´ısticas, e seus impactos junto `a Tecnologia da Informa¸c˜ao. `A medida que a Cloud Computing avan¸ca, tamb´em avan¸cam os esfor¸cos, investimentos e projetos em toda a parte. O OpenStack R ´e um exemplo de plataforma est´avel de c´odigo aberto para a nuvem (cloud).

Fornecendo uma gama de op¸c˜oes e oportunidades para o desenvolvimento de aplica¸c˜oes baseadas em seus servi¸cos. Diante deste cen´ario, surgiu a necessidade de desenvolver uma aplica¸c˜ao com o objetivo de realizar c´alculos e estimativas do uso de recursos fornecidos pela nuvem, por meio da implanta¸c˜ao e utiliza¸c˜ao do servi¸co de telemetria. Durante o desenvolvimento deste trabalho, e da aplica¸c˜ao resultante, foi feito a escolha do tema, realizado estudos bibliogr´aficos e t´ecnicos, a implementa¸c˜ao do sistema, coleta e an´alise dos resultados. Conclui-se os resultados obtidos como positivos e satisfat´orios, j´a que os testes realizados demonstraram que a aplica¸c˜ao desenvolvida fornece controle e gerˆencia do uso de recursos na nuvem, provendo transparˆencia para todos os tipos de usu´arios, sendo que este trabalho pode ser utilizado pela comunidade em geral, para estudos posteriores, levando em considera¸c˜ao nuvens computacionais e problemas de estudos similares.

(10)
(11)

Abstract

Since the beginning of the decade, Cloud Computing have ceased to be a concept and came to be a new paradigm, influencing the making of decisions for large companies around the world and affecting directly and indirectly many people. The objective of this work is to develop a telemetry service for calculating estimates and creating resource usage reports in a OpenStack R cloud. This work will about Cloud Computing, exposing

it’s concepts, features, and it’s influences among the Information Technology. As Cloud Computing advances, so advances our efforts, investments and projects all over the place. OpenStack R is an example of stable open source platform for the cloud. Providing a

range of options and opportunities to develop applications based on their services. Against this scenary, came the need of developing one application with objective to estimate the resource usage provided by the cloud. Therefore, the deployment and use of a Telemetry service and it’s methods was conducted. For the development of this work, and of the resulting application, was made choosing the topic, bibliographic and technical studies, system implementation, collection and analysis of results. It was concluded the results as positive and satisfactory, since tests have shown that the developed application provides control and management of the use of resources in the cloud, providing transparency for all types of users, and this work can be used for the community in general, for further studies taking into account computational clouds and similar studies problems.

(12)
(13)

OpenStack: Utilizando o servi¸co de Telemetria para c´alculo de estimativas i

Sum´

ario

Lista de Figuras iii

Lista de Tabelas v

Lista de siglas e abrevia¸c˜oes vii

Lista de marcas registradas ix

1 Introdu¸c˜ao 1 1.1 Defini¸c˜ao do Problema . . . 1 1.2 Solu¸c˜ao Proposta . . . 2 1.3 Objetivos . . . 2 1.3.1 Objetivo Geral . . . 2 1.3.2 Objetivos Espec´ıficos . . . 2 1.4 Justificativa . . . 3 1.5 Organiza¸c˜ao do trabalho . . . 3

2 Referencial Te´orico 5 2.1 Introdu¸c˜ao. . . 5

2.2 A TI e seu papel nas organiza¸c˜oes . . . 5

2.3 Cloud Computing . . . 6

2.3.1 Conceitos de Cloud Computing . . . 7

2.3.2 Virtualiza¸c˜ao . . . 10

2.4 Uma plataforma de nuvem aberta. . . 12

2.4.1 Hist´orico e Caracter´ısticas . . . 12 2.4.2 Servi¸cos do OpenStack . . . 13 2.5 O Servi¸co Ceilometer . . . 16 2.5.1 Conceitos . . . 17 2.5.2 Arquitetura . . . 17 2.5.3 M´etodos de consultas . . . 19 2.6 Trabalhos Relacionados . . . 20

3 Procedimentos Metodol´ogicos 23 3.1 Caracteriza¸c˜ao da Pesquisa - Estudo de Caso . . . 23

3.2 Realiza¸c˜ao do Estudo bibliogr´afico . . . 24

3.3 Realiza¸c˜ao do Estudo t´ecnico . . . 24

3.4 Implementa¸c˜ao da aplica¸c˜ao . . . 24

(14)

4 An´alise do Estudo de Caso - Projeto Pr´atico 27

4.1 Introdu¸c˜ao. . . 27

4.2 Implementa¸c˜ao da aplica¸c˜ao RDU2 . . . 27

4.3 Instala¸c˜ao do Servi¸co de Telemetria - Ceilometer . . . 28

4.4 Intera¸c˜oes com a API Ceilometer . . . 28

4.5 Tecnologias e Ferramentas utilizadas . . . 29

4.5.1 Python . . . 29

4.5.2 A biblioteca Pycurl. . . 30

4.5.3 Gnuplot . . . 30

4.6 API para gerar relat´orios de uso e custos por utiliza¸c˜ao de recursos . . . 30

4.6.1 Interagindo com a interface . . . 31

4.7 Resultados Obtidos. . . 32

5 Considera¸c˜oes Finais 37 5.1 Conclus˜oes . . . 37

5.2 Trabalhos futuros . . . 38

Referˆencias Bibliogr´aficas 41 A Apendice para desenvolvedores 43 A.1 Manual de instala¸c˜ao Ceilometer . . . 43

A.1.1 Instala¸c˜ao do m´odulo de Telemetria . . . 43

A.1.2 Instalando o agente compute de Telemetria . . . 46

A.1.3 Sincronizando o servi¸co de Imagem servi¸co de Telemetria: . . . 47

A.1.4 Verificando a instala¸c˜ao do servi¸co de Telemetria . . . 47

A.2 API Web V2 Ceilometer . . . 48

(15)

OpenStack: Utilizando o servi¸co de Telemetria para c´alculo de estimativas iii

Lista de Figuras

2.1 Uma representa¸c˜ao para Cloud Computing . . . 7

2.2 Modelo visual para Cloud Computing . . . 8

2.3 Vis˜ao Geral OpenStack . . . 13

2.4 A arquitetura Conceitual OpenStack . . . 15

2.5 A arquitetura Conceitual do Ceilometer . . . 18

4.1 Gr´afico contendo as informa¸c˜oes da m´etrica memory . . . 31

4.2 Gr´afico contendo as informa¸c˜oes da m´etrica cpu. . . 32

4.3 Gr´afico contendo as informa¸c˜oes da m´etrica cpu util . . . 33

4.4 Exemplo de visualiza¸c˜ao de metrica do Dashboard para admin . . . 34

(16)
(17)

OpenStack: Utilizando o servi¸co de Telemetria para c´alculo de estimativas v

Lista de Tabelas

2.1 Vers˜oes do OpenStack. . . 13

(18)
(19)

OpenStack: Utilizando o servi¸co de Telemetria para c´alculo de estimativas vii

Lista de siglas e abrevia¸

oes

API . . . Application Programming Interface AWS . . . Amazon Web Services BSI . . . Bacharelado em Sistemas de Informa¸c˜ao CAPEX . . . Capital Expenditure CERES . . . .Centro de Ensino Superior do Serid´o CPU . . . Central Processing Unit DaaS . . . Database-as-a-Service - DaaS DCEA . . . Departamento de Ciˆencias Exatas e Aplicadas DICT . . . Dictionary EC2 . . . Elastic Computing Cloud E/S . . . Entrada e Sa´ıda FTP . . . File Transfer Protocol FTPS . . . File Transfer Protocol Security HP . . . Hewlett Packard HTTP . . . Hyper Text Transfer Protocol HTTPS . . . Hyper Text Transfer Protocol Security IaaS . . . Infrastructure-as-a-Service IP . . . Internet Protocol KVM . . . Kernel-based Virtual Machine LabEPI . . . Laborat´orio de Elementos do Processamento da Informa¸c˜ao LXC . . . .Linux Containers LDAP . . . Lightweight Directory Access Protocol MMV ou VMM . . . Monitor de M´aquina Virtual NASA . . . National Aeronautics and Space Administration of United States NIST . . . National Institute of Standards and Technology OPEX . . . Operational Expenditure OSI . . . Open Source Iniciative PaaS . . . Platform as a Service PC . . . Personal Computer RAM . . . Random Access Memory SaaS . . . Software as a Service SDK . . . Software Developers Kit TI . . . Tecnologia da Informa¸c˜ao UFRN . . . Universidade Federal do Rio Grande do Norte UML . . . User Mode Linux URL . . . Uniform Resorce Locator

(20)
(21)

OpenStack: Utilizando o servi¸co de Telemetria para c´alculo de estimativas ix

Lista de marcas registradas

Amazon R

Amazon Elastic Block Storage EBC R

Amazon Elastic Computing Cloud EC2 R

Amazon Simple Storage Service AS3 R

Amazon Web Services AWS R

Firefox R Google R Google Docs R Google Chrome R Hewlett Packard R HP Helion OpenStack R Microsoft R Microsoft Ofice 365 R Nimbus R OpenNebula R OpenStack R OpenStack Fundation R

Rackspace Cloud Servers R

RackSpace Cloud Files R

Windows Azure R

As v´arias marcas listadas nessa p´agina, tˆem o objetivo de informar aos leitores que o autor deste trabalho utiliza tais nomes apenas para fins editoriais, buscando com isso beneficiar o dono da Marca Registrada, sem haver infra¸c˜ao nas regras de sua utiliza¸c˜ao.

(22)
(23)

OpenStack: Utilizando o servi¸co de Telemetria para c´alculo de estimativas 1

Cap´ıtulo 1

Introdu¸

ao

“Entrega o teu caminho ao Senhor; confia nele, e o mais ele o far´a ”

Salmos 37:5

1.1

Defini¸

ao do Problema

A Cloud Computing (Computa¸c˜ao em Nuvem) veio para suprir a necessidade de cons-truir infraestruturas de Tecnologia da Informa¸c˜ao (TI) complexas, em que, nestas mesmas estruturas os usu´arios tˆem que realizar a instala¸c˜ao, configura¸c˜ao e atualiza¸c˜ao de softwa-res. Al´em disso, recursos de computa¸c˜ao e hardware s˜ao propensos a ficarem obsoletos rapidamente. Assim, a utiliza¸c˜ao otimizada de plataformas computacionais pr´oprias ou de terceiros ´e uma solu¸c˜ao inteligente para os usu´arios lidarem com infraestrutura de TI. Na Cloud Computing os recursos de TI s˜ao fornecidos baseados em servi¸co, isto permite que os usu´arios acessem os servi¸cos sem a necessidade de conhecimento sobre a tecnolo-gia utilizada, e sem ter que se preocupar com os problemas de aloca¸c˜ao de espa¸co para hardware ou com a manuten¸c˜ao de m´aquinas e equipamentos (Sousa F. R. C.,2009).

Dessa maneira, a Cloud Computing tem se tornado uma ´area bastante f´ertil a ser explorada. As maiores empresas privadas da computa¸c˜ao em todo o mundo j´a voltaram suas aten¸c˜oes para este paradigma computacional.

Exemplos s˜ao: Microsoft, Google e Amazon, que despontam como as maiores de-senvolvedoras e ofertantes de servi¸cos e solu¸c˜oes em Cloud Computing; servi¸cos estes que abrangem desde o usu´ario comum at´e grandes empresas, e podem ser Software, Plataforma e/ou Infraestrutura.

Por outro lado, existem algumas plataformas de nuvem como: Nimbus, OpenNebula e o OpenStack que provˆeem solu¸c˜oes open source, ou seja, seguindo os requisitos de c´odigo aberto definidos pela Open Source Iniciative OSI (2015) sendo eles: distribui¸c˜ao do pro-duto (software/aplica¸c˜ao) de forma livre ou gratuita para todos os grupos, pessoas e ´areas de atua¸c˜ao, de maneira que seja permitido acesso ao c´odigo-fonte e a cria¸c˜ao de trabalhos derivados, garantindo o reconhecimento do autor do c´odigo fonte, em que a distribui¸c˜ao da licen¸ca n˜ao seja restrita a programas, produtos ou tecnologias;

Apesar da demanda por servi¸cos em nuvem ser crescente dia ap´os dia, eis que surge um problema relacionado `a monopoliza¸c˜ao das tecnologias de tal paradigma computaci-onal pelas grandes empresas, junto `a oferta de servi¸cos semelhantes atrav´es solu¸c˜oes de

(24)

tecnologias de c´odigo aberto, que permitam aos seus usu´arios obter controle e gerˆencia de utiliza¸c˜ao dos recursos na nuvem.

1.2

Solu¸

ao Proposta

Baseado nos questionamentos levantados na Defini¸c˜ao do Problema fez-se uma pes-quisa a respeito de ferramentas e solu¸c˜oes em c´odigo aberto para a Cloud Computing na qual o OpenStack surge como uma solu¸c˜ao adequada, baseando-se em suas carac-ter´ısticas, as quais, se constitui como uma cole¸c˜ao de projetos de open-source (ou seja, de c´odigo aberto) utilizada pelas empresas ou provedores para configurar e gerenciar Nu-vens Computacionais. O projeto OpenStack visa construir uma comunidade open-source com pesquisadores, desenvolvedores e empresas, que compartilham um objetivo comum: criar uma Nuvem simples de ser implantada, altamente escal´avel e com v´arios recursos avan¸cados (Wen et al.,2012).

De acordo com (OpenStack, 2014b), o OpenStack permite a realiza¸c˜ao de c´alculo de m´etricas e consumo de recursos para nuvem. No entanto essas funcionalidades s´o ficam vis´ıveis ao instalar o servi¸co de Telemetria, sendo que como ser´a visto mais adiante algumas das informa¸c˜oes aparecem apenas para usu´arios administradores da nuvem, caraterizando um processo oculto ao usu´ario final.

Assim, surge a oportunidade de aliar o poder e os conceitos de Cloud Computing junto aos servi¸cos oferecidos pelo OpenStack de maneira que seja implementada uma Application Programming Interface (API) para sincronizar com o servi¸co de m´etricas[i]do OpenStack que permita gerar relat´orios de uso e custos por utiliza¸c˜ao de recursos de forma que estas informa¸c˜oes possam ser acessadas por quaisquer usu´arios.

1.3

Objetivos

1.3.1 Objetivo Geral

Desenvolver um servi¸co de telemetria para c´alculo de estimativas e cria¸c˜ao de relat´orios de uso de recursos em uma nuvem OpenStack.

1.3.2 Objetivos Espec´ıficos

1. Realizar o levantamento bibliogr´afico acerca de Cloud Computing;

2. Pesquisar sobre c´alculos de estimativas baseadas na utiliza¸c˜ao de recursos para nu-vens OpenStack;

3. Desenvolver uma Application Programming Interface API para gerar os relat´orios; 4. Coletar os resultados da aplica¸c˜ao para o escopo definido, e analisar os resultados.

[i]As m´etricas s˜ao as medidas brutas, atˆomicas e de simples composi¸c˜ao. Em uma estrutura de

Armazena-mento de informa¸c˜oes, por exemplo, podem ser armazenados no formato de tabelas e medem quantidades, valores e Dimens˜oesElias(2014).

(25)

1.4

Justificativa

• Pessoal: Desejo em melhor conhecer a ´area de estudo tendo como objetivo se tornar um profissional capacitado no desenvolvimento, manuten¸c˜ao e utiliza¸c˜ao de tecnolo-gias em Cloud Computing.

• Acadˆemica: A Cloud Computing tem-se tornado um paradigma computacional cada vez mais estudado no meio acadˆemico principalmente pelas ´areas que a comp˜oem, como por exemplo, redes de computadores, virtualiza¸c˜ao, computa¸c˜ao distribu´ıda, trabalhos voltados para o desenvolvimento aplica¸c˜oes de monitoramento de utiliza¸c˜ao de recursos em nuvens, etc.

• Profissional: H´a alguns anos a Cloud Computing vem experimentando um elevado crescimento quanto ao desenvolvimento de aplica¸c˜oes e ades˜ao de grandes e m´edias empresas `a sua plataforma de oferta de servi¸cos. Por esta raz˜ao, ´e importante para uma ampla gama de pessoas ter um conhecimento pr´atico acerca do tema, pois poder´a ser o modelo computacional predominante em todo o mundo.

1.5

Organiza¸

ao do trabalho

Al´em deste Cap´ıtulo, o trabalho est´a dividido em outros 4, que s˜ao:

Cap´ıtulo 2, que diz respeito ao Referencial Te´orico, o qual ´e a base deste projeto de estudo e abordar´a os seguintes assuntos e temas: Tecnologia da Informa¸c˜ao e a sua rela¸c˜ao com Cloud Computing; Cloud Computing: conceitos e caracter´ısticas; Virtua-liza¸c˜ao; OpenStack: caracter´ısticas, servi¸cos, aplica¸c˜oes e recursos; Por fim o Ceilometer, o qual provˆe fun¸c˜oes e aplica¸c˜oes para se acessar m´etricas no sistema OpenStack;

Cap´ıtulo3, diz respeito a Metodologia aplicada na pesquisa e as atividades presentes no desenvolvimento deste trabalho;

Cap´ıtulo4, mostra como foi realizada a implementa¸c˜ao, os testes, Al´em dos resultados obtidos;

E por fim o Cap´ıtulo5, apresenta a conclus˜ao do trabalho bem como as expectativas para projetos e trabalhos futuros.

(26)
(27)

OpenStack: Utilizando o servi¸co de Telemetria para c´alculo de estimativas 5

Cap´ıtulo 2

Referencial Te´

orico

“A educa¸c˜ao tem ra´ızes amargas, mas os seus frutos s˜ao doces.”

Arist´oteles

2.1

Introdu¸

ao

Este cap´ıtulo trata do levantamento bibliogr´afico, nele s˜ao expostos conceitos e vis˜oes da Cloud Computing a fim de que se entenda de uma forma geral a importˆancia que permeia o tema, bem como a sua influˆencia no cen´ario tecnol´ogico atual e quais tecnolo-gias comp˜oem esse paradigma da computa¸c˜ao moderna. Dessa forma, procura-se falar da rela¸c˜ao entre a Cloud Computing e a Tecnologia da Informa¸c˜ao. S˜ao mostrados tamb´em quais os tipos de servi¸cos providos pela Cloud Computing, quais suas caracter´ısticas es-senciais, os modelos de implanta¸c˜ao, conceitos e a importˆancia da virtualiza¸c˜ao.

Outro ponto a ser abordado ´e o OpenStack, expondo as caracter´ısticas do sistema, os servi¸cos e aplica¸c˜oes providos pelo mesmo, com o intuito de tornar conhecido do leitor as informa¸c˜oes principais desse sistema de implanta¸c˜ao de nuvens.

Por fim, o cap´ıtulo abordar´a o servi¸co de Telemetria, o qual foi objeto de estudo no desenvolvimento deste trabalho, estando presentes algumas defini¸c˜oes, caracter´ısticas e funcionalidades que o servi¸co disp˜oe para permitir a contagem de m´etricas de utiliza¸c˜ao dos recursos na nuvem.

2.2

A TI e seu papel nas organiza¸

oes

Segundo Veras (2012), a Tecnologia da Informa¸c˜ao compreende o uso, processamento e armazenamento da informa¸c˜ao atrav´es de recursos computacionais a fim de se realizar objetivos diversos, tendo em vista que a TI seja fundamental para a competitividade de uma organiza¸c˜ao.

A TI n˜ao somente desempenha o papel de orienta¸c˜ao tradicional de suporte admi-nistrativo como tamb´em o papel estrat´egico dentro da organiza¸c˜ao. Pois al´em de prover assistˆencia `as opera¸c˜oes de neg´ocio existentes, tamb´em permite que se viabilizem novas estrat´egias empresariais tendo em vista o suporte fornecido em larga escala pela TI junto aos processos empresariais e organizacionais.

O uso eficaz da TI e a integra¸c˜ao entre sua estrat´egia e a estrat´egia do neg´ocio v˜ao al´em da id´eia de ferramenta de produtividade, sendo muitas vezes fator cr´ıtico de sucesso. Hoje,

(28)

o caminho para este sucesso n˜ao est´a mais relacionado somente com o hardware e o software utilizados, ou ainda com metodologias de desenvolvimento, mas com o alinhamento da TI com a estrat´egia e as caracter´ısticas da empresa e de sua estrutura organizacional (Laurindo et al.,2001).

Veras (2012), divide a TI em quatro grandes partes: os sistemas de informa¸c˜ao (con-juntos de aplicativos), a arquitetura que diz respeito `a estrutura hier´arquica organizacional da TI, a infraestrutura que representa o alicerce para os aplicativos e sustenta o modelo operacional, e por fim a gest˜ao que diz respeito a governan¸ca de TI, da forma como as demais partes estar˜ao organizadas e estrategicamente integradas.

A TI provoca repercuss˜oes em todos os n´ıveis da estrutura organizacional: No n´ıvel estrat´egico, quando se deseja aumentar a coerˆencia entre a organiza¸c˜ao e o meio envolvente, se traduzindo em aumento de efic´acia em termos de cumprimento da miss˜ao organizacional; Nos n´ıveis operacional e administrativo, quando existem efeitos end´ogenos, traduzidos em aumento da eficiˆencia organizacional em termos de op¸c˜oes estrat´egicas.

Ainda de acordo com Veras (2012), devido as organiza¸c˜oes serem compostas por co-letˆaneas de grandes processos, e estes mesmos muitas vezes terem que responder as mais diversas demandas que acabam reconfigurando e alterando-os, fica evidente a necessidade e importˆancia de se tratar de uma TI flex´ıvel, e que permita a r´apida configura¸c˜ao da or-ganiza¸c˜ao de forma a obter uma r´apida flexibilidade e prover maior qualidade dos servi¸cos com o adequado financiamento da TI.

Dessa maneira, a Cloud Computing segundo Veras (2012), surge como a solu¸c˜ao `a necessidade da TI mais flex´ıvel pois representa uma nova forma de pensar a mesma, onde: 1. Ao adotar a Cloud Computing, os custos do neg´ocio passam do Capital Expenditure (CAPEX) que ´e o investimento de capital com equipamentos e instala¸c˜oes, para Operational Expenditure (OPEX) que s˜ao investimentos para gasto com opera¸c˜ao; 2. O investimento em infraestrutura de TI ´e reduzido, pois n˜ao h´a a necessidade de

compra de servidores, softwares e licen¸cas;

3. Aumenta o capital dispon´ıvel para as ´areas estrat´egicas do neg´ocio.

2.3

Cloud Computing

A computa¸c˜ao tem evolu´ıdo consideravelmente. Em aproximadamente meio s´eculo, desde que surgiram os primeiros computadores, a forma de como s˜ao manipulados os dados e aplica¸c˜oes tem mudado consideravelmente, pois com os mainframes todo o acesso a dados e aplica¸c˜oes eram locais e distribu´ıdos atrav´es de redes internas, logo ap´os vieram aplica¸c˜oes em desktops e Personal Computer (PC’s) em geral que acessavam a mesma base de dados. Posteriormente, as aplica¸c˜oes passariam a serem acessadas e manipuladas via navegador Web, ou utilizando quase sempre o formato cliente-servidor-cliente, onde uma grande parte do processamento era realizada na parte do cliente. Atualmente, as aplica¸c˜oes s˜ao armazenadas em servidores, e acessadas via Internet a partir de qualquer lugar, com alto poder de processamento e disponibilidade (Sousa F. R. C.,2009). Exemplo dessa afirma¸c˜ao est´a na Figura2.1.

Gra¸cas aos avan¸cos tecnol´ogicos, cada vez mais as pessoas tˆem estado conectadas. A Internet permite que nos mantenhamos informados, e que utilizemos seus recursos para

(29)

Figura 2.1: Uma representa¸c˜ao para Cloud Computing. Fonte:

www.mrdba.com.br/cloud-computing-pesquisa/

compartilhar, acessar e criar uma quantidade de dados e informa¸c˜oes cada vez mais cres-cente. Diante deste fato, uma nova forma de utiliza¸c˜ao de recursos computacionais tem sido oferecida para a sociedade moderna, uma forma baseada em servi¸cos, onde os softwa-res e outros recursos computacionais s˜ao disponibilizados em uma plataforma de conex˜ao com o servidor (empresa ou organiza¸c˜ao) que oferece o servi¸co atrav´es da Internet.

SegundoBuyya et al.(2009), Cloud Computing ´e uma tendˆencia recente da tecnologia cujo objetivo ´e proporcionar servi¸cos de Tecnologia da Informa¸c˜ao sob demanda com pagamento baseado no uso. Tendˆencias anteriores `a Cloud Computing foram limitadas a uma determinada classe de usu´arios ou focadas em tornar dispon´ıvel uma demanda espec´ıfica de recursos de TI, principalmente de inform´atica.

Este modelo representa uma mudan¸ca de paradigma computacional tanto para usu´arios comuns que podem criar, acessar e compartilhar seus documentos e arquivos armazenando-os em ”algum lugar”na Internet, quanto para empresas e corpora¸c˜oes que podem obter melhores resultados econˆomicos e de mercado, por isto, pode-se considerar que que esta ´e uma abordagem global e mais abrangente levando cada vez mais empresas a observar e estudar as vantagens e necessidades de embarcar nessa nova tendˆencia tecnol´ogica.

2.3.1 Conceitos de Cloud Computing

A nuvem (Cloud ) ´e uma met´afora para a Internet ou infraestrutura de comunica¸c˜ao, que tem como objetivo abstrair toda complexidade presente na mesma. Assim, atrav´es da cloud, servi¸cos s˜ao disponibilizados uma vez que est˜ao alocados em data-centers, utilizando hardware compartilhado para computa¸c˜ao e armazenamento (Sousa F. R. C.,2009).

Os servi¸cos podem ser utilizados pelos usu´arios apenas com os requisitos m´ınimos de possu´ırem em suas m´aquinas um sistema operacional, um navegador e acesso a Internet al´em dos componentes b´asicos de hardware. Todo o processamento computacional, bem

(30)

como todos os recursos est˜ao disponibilizados na ”nuvem”e s˜ao acessados via Internet, com isso, os usu´arios n˜ao precisam ter m´aquinas locais com alta capacidade computacional, diminuindo seus gastos com equipamentos e tornando poss´ıvel aos mesmos a aquisi¸c˜ao de novos recursos de forma r´apida e pr´atica `a medida que surgir uma necessidade.

Tratando-se especificamente da defini¸c˜ao, entre as muitas defini¸c˜oes dadas pelos pesqui-sadores da ´area, O National Institute of Standards and Technology NIST(2011) apresenta a defini¸c˜ao que ser´a usada neste trabalho e ´e considerada por muitos a mais aceit´avel para a Cloud Computing:

“ ´E um modelo que fornece acesso atrav´es da rede (nuvem) `a um conjunto de recursos configur´aveis e compartilhados de computa¸c˜ao (por exemplo, redes, servidores, armazenamento, aplica¸c˜oes e servi¸cos) que podem ser rapidamente disponibilizados e liberados com um m´ınimo de esfor¸co de gest˜ao e intera¸c˜ao com o fornecedor de servi¸cos.”

NIST(2011)

Este modelo divulgado pelo NIST para a Cloud Computing define cinco caracter´ısticas essenciais, trˆes modelos de servi¸co e quatro modelos de implementa¸c˜ao, conforme exibido na Figura2.2.

Figura 2.2: Modelo visual para Cloud Computing dado pelo NIST. Adaptado de:

www.csrc.nist.gov/groups/SNS/cloud-computing/index.html(NIST).

As caracter´ısticas podem ser entendidas como o diferencial promovido pela Cloud Computing. Algumas em conjunto, a definem exclusivamente tornando-a um paradigma computacional completamente inovador. De acordo com NIST (2011) as caracter´ısticas principais da cloud s˜ao:

1. Autoatendimento sob demanda: Funcionalidades computacionais, tais como tempo de servidor, armazenamento e de rede, s˜ao providas automaticamente con-forme as necessidades do cliente, sem que haja como pr´e requisito a intera¸c˜ao humana junto ao provedor de servi¸cos.

2. Amplo acesso `a servi¸cos de rede: Recursos est˜ao dispon´ıveis atrav´es da Internet e s˜ao acessados por meio de mecanismos padronizados que promovam uso atrav´es de plataformas heterogˆeneas, sendo elas dispositivos m´oveis e port´ateis, computadores, etc. (por exemplo, telefones celulares, tablets, notebooks, esta¸c˜oes de trabalho).

(31)

3. Pool de Recursos: Recursos computacionais do provedor s˜ao agrupados para atender m´ultiplos consumidores atrav´es de um modelo multilocat´ario, com diferentes recursos f´ısicos e virtuais alocados e realocados dinamicamente de acordo com a demanda do consumidor.

4. Elasticidade R´apida: Funcionalidades Computacionais podem e devem ser elasti-camente provisionadas e liberadas, em alguns casos, automatielasti-camente, e de acordo com a demanda. Para o consumidor, as capacidades dispon´ıveis para provisiona-mento frequentemente parecem ser ilimitadas e podem ser contratadas em qualquer quantidade a qualquer momento.

5. Servi¸cos Mensur´aveis: Os sistemas utilizados para gerenciar a Cloud Computing automaticamente controlam e otimizam o uso dos recursos, alavancando a capacidade de medi¸c˜ao em algum n´ıvel de abstra¸c˜ao apropriado para o tipo de servi¸co (por exemplo, processamento, armazenamento, largura de banda e contas de usu´arios ativos). O uso dos recursos pode ser monitorado, controlado e reportado, oferecendo transparˆencia tanto para o provedor quanto para o consumidor do servi¸co utilizado. Conforme a defini¸c˜ao doNIST(2011), h´a trˆes op¸c˜oes de modelos de entrega de servi¸cos de Cloud Computing, compondo o seu padr˜ao arquitetural:

• Software as a Service (Software como Servi¸co) - (SaaS): Nesse modelo, a capacidade fornecida ao consumidor ´e a utiliza¸c˜ao de aplicativos do provedor rodando em uma infraestrutura de nuvem. As aplica¸c˜oes s˜ao acess´ıveis a partir de v´arios dispositivos clientes, tais como um navegador Web, ou uma interface de programa. Todo o controle e gerenciamento da rede, sistemas operacionais, armazenamento e servidores, ´e feito pelo provedor do servi¸co. Exemplos de SaaS s˜ao o Google Docs e o Microsoft Ofice 365.

• Platform as a Service (Plataforma como Servi¸co) - (PaaS): ´E fornecida ao consumidor a capacidade para implantar sobre a infraestrutura de nuvem aplica¸c˜oes criadas ou adquiridas usando linguagens de programa¸c˜ao, bibliotecas, servi¸cos e fer-ramentas suportadas pelo provedor. O consumidor tem controle sobre os aplicativos implementados e possivelmente defini¸c˜oes de configura¸c˜ao para o ambiente de hos-pedagem dos aplicativos. Se destacam como exemplos de PaaS a AppEngine do Google e o Windows Azure da Microsoft.

• Infrastructure as a Service (Infraestrutura como Servi¸co) - (IaaS): O con-sumidor recebe a capacidade de provisionar processamento, armazenamento, redes e outros recursos de computa¸c˜ao fundamentais, onde ele ser´a capaz de implantar e executar software arbitr´ario, que podem incluir sistemas operacionais e aplicativos. Neste cen´ario, o usu´ario n˜ao tem o controle da infraestrutura f´ısica, mas, com os m´etodos providos pela Virtualiza¸c˜ao, possui controle sobre os recursos virtualizados de armazenamento, aplicativos instalados e sobre recursos limitados de rede. Exem-plo de IaaS ´e a Amazon Elastic Computing Cloud EC2 e o servi¸co oferecido pelo OpenStack.

(32)

• Nuvem Privada (Private Cloud): A infraestrutura de nuvem ´e provisionada para uso exclusivo por uma ´unica organiza¸c˜ao que agrupa v´arios consumidores (por exemplo, unidades de neg´ocio). Pode ser detida, gerida e operada pela organiza¸c˜ao, um terceiro, ou alguma combina¸c˜ao deles, e ele pode existir ou n˜ao no local. Neste modelo de implanta¸c˜ao s˜ao empregados pol´ıticas de acesso aos servi¸cos e as t´ecnicas utilizadas para prover tais caracter´ısticas s˜ao as mesmas empregadas no modelo de servi¸co de IaaS, ou seja, gerenciamento de redes, configura¸c˜oes dos provedores de servi¸cos e a utiliza¸c˜ao de tecnologias de autentica¸c˜ao e autoriza¸c˜ao. Exemplo deste modelo ´e a nuvem implantada no LabEPI[i], a qual foi o ambiente de desenvolvimento

do presente trabalho.

• Nuvem P´ublica (Public Cloud): No modelo de implanta¸c˜ao p´ublico, a infra-estrutura de nuvens ´e disponibilizada para o p´ublico em geral, sendo acessado por qualquer usu´ario que conhe¸ca a localiza¸c˜ao do servi¸co. Pode ser detida, gerida e ope-rada pelo o meio acadˆemico ou organiza¸c˜ao governamental, ou alguma combina¸c˜ao deles. Ela existe nas instala¸c˜oes do provedor de nuvem. As restri¸c˜oes de acesso, bem como politicas de autentica¸c˜ao e autoriza¸c˜ao neste modelo s˜ao menos rigorosas. • Nuvem Comunit´aria (Comunity Cloud): No modelo de implanta¸c˜ao

comuni-dade ocorre o compartilhamento por diversas empresas de uma nuvem, sendo esta suportada por uma comunidade espec´ıfica que partilhou seus interesses, tais como a miss˜ao, os requisitos de seguran¸ca, pol´ıtica e considera¸c˜oes sobre flexibilidade. Este tipo modelo de implanta¸c˜ao pode existir localmente ou remotamente e pode ser administrado por alguma empresa da comunidade ou por terceiros.

• Nuvem H´ıbrida (Hybrid Cloud): Neste modelo a infraestrutura de nuvem ´e uma composi¸c˜ao de duas ou mais distintas infraestruturas de nuvem (privada, comu-nit´aria ou p´ublica) que permanecem entidades ´unicas, mas s˜ao unidos por tecnologia padronizada ou propriet´aria que permite a portabilidade de dados e aplica¸c˜oes.

2.3.2 Virtualiza¸c˜ao

Virtualiza¸c˜ao e Cloud Computing est˜ao relacionadas, no entanto, n˜ao significam `a mesma coisa. A intersec¸c˜ao entre ambos ocorre quando se torna necess´ario virtualizar servidores durante a implanta¸c˜ao de cloud. Isso acaba reduzindo a rela¸c˜ao de dependˆencia que os recursos de computa¸c˜ao exercem entre si, pois possibilita, por exemplo, a dissocia¸c˜ao entre um aplicativo e o sistema operacional que ele utiliza.

A virtualiza¸c˜ao define-se como a cria¸c˜ao de um ambiente virtual para simular um ambiente real, permitindo utilizar diversos sistemas e aplicativos sem que seja necess´ario o acesso f´ısico `a m´aquina na qual est˜ao hospedados (Amaral,2009).

Mais especificamente, um equipamento computacional virtualizado pode hospedar di-versos ambientes, chamados de M´aquinas Virtuais, simultaneamente, compartilhando seus recursos de processamento e armazenamento (MICROSOFT,2009).

De acordo com (Veras,2012), A Virtualiza¸c˜ao simplifica o gerenciamento, permitindo tornar o processamento mais flex´ıvel e poderoso. Os softwares que possuem a capacidade de prover virtualiza¸c˜ao permitem melhorar a disponibilidade e a recupera¸c˜ao de desastres

(33)

de ambientes de TI de maneira mais simples e mais barata comparada aos meios mais tradicionais.

A camada de virtualiza¸c˜ao de servidores mais conhecida ´e o HYPERVISOR ou Moni-tor de M´aquina Virtual (MMV), O MMV permite implementar diversas m´aquinas virtuais separando os componentes/recursos virtualizados, esses recursos podem ser Central Pro-cessing Unit (CPU), Mem´oria RAM Random Access Memory e dispositivos de Entrada e Sa´ıda (E/S).

Tipos de virtualiza¸c˜ao:

• Virtualiza¸c˜ao de Hardware (CPU): Consiste em permitir simular a execu¸c˜ao de v´arios sistemas operacionais na mesma m´aquina de forma que se comportem como se fossem v´arias m´aquinas f´ısicas distintas. Para isto ´e necess´ario a utiliza¸c˜ao de programas capazes de emular os componentes f´ısicos de um computador, esses programas geram m´aquinas virtuais (Virtual Machines, ou VMs) (Amaral,2009). Essa t´ecnica permite de certa forma eliminar a incompatibilidade existente entre aplicativos e sistemas operacionais; Por exemplo, um sistema operacional A, pode atrav´es do uso m´aquinas virtuais conter um outro sistema operacional B instalado de forma que A agora ter´a acesso aos aplicativos que rodam exclusivamente em B pois a m´aquina virtual permite logicamente simular o funcionamento de uma m´aquina f´ısica.

Outro ponto interessante ´e que para servidores, sua virtualiza¸c˜ao permite economia, melhor aloca¸c˜ao de espa¸co e maior aproveitamento de sua capacidade pois ao inv´es de se ter diversos subservidores f´ısicos e individuais, e muitas vezes sendo subapro-veitado as suas capacidades totais de uso, se torna poss´ıvel e fundamental o uso de espa¸cos e processamos extras na utiliza¸c˜ao de servidores l´ogicos criados por m´aquinas virtuais.

• Virtualiza¸c˜ao da Apresenta¸c˜ao (CPU): Similar `a realiza¸c˜ao de acesso remoto, permite o acesso a um computador sem ter contato f´ısico com ele, outra caracter´ıstica ´e que v´arios usu´arios podem utilizar o mesmo sistema simultaneamente sem interferir uns nos outros (Amaral,2009).

• Virtualiza¸c˜ao de Aplicativos (CPU): Consiste em ter uma ´unica c´opia de de-terminado aplicativo, instalada em um servidor virtual; usu´arios que desejarem ter acesso a tal aplicativo podem fazˆe-lo diretamente, sem a necessidade de que ele tamb´em esteja instalado na m´aquina f´ısica (Amaral,2009).

• Virtualiza¸c˜ao de mem´oria: O MMV tem a capacidade de compartilhar p´aginas de mem´oria comuns entre v´arias MVs, controlar o acesso f´ısico `a mem´oria e ter conhecimento das p´aginas que est˜ao sendo utilizadas Waldspurger (2012), Assim a mem´oria ser´a utiliza de maneira otimizada.

• Virtualiza¸c˜ao de Dispositivos de E/S: Todo acesso de Entrada e Sa´ıda (E/S) ´e direcionado ao MMV. O monitor reconhece a finalidade do acesso e emula uma c´opia do hardware retornando-a ao sistema hospedado (Amaral,2009).

Quanto mais recursos virtualizados, melhores resultados obtidos no processo de im-planta¸c˜ao de Cloud Computing. Consequentemente os principais benef´ıcios ser˜ao a

(34)

melho-ria da gest˜ao do ambiente de TI, seguran¸ca da informa¸c˜ao, e o mais importante: consi-der´avel redu¸c˜ao de custos e melhor aproveitamento da capacidade computacional levando-se em considera¸c˜ao a quantidade de tempo em que o hardware e software passam ociosos ou subutilizados.

2.4

Uma plataforma de nuvem aberta

O OpenStack ´e uma cole¸c˜ao de projetos de software de c´odigo aberto utilizada pe-las empresas ou provedores para configurar e gerenciar Nuvens Computacionais. O pro-jeto visa construir uma comunidade open-source com pesquisadores, desenvolvedores e empresas, que compartilham um objetivo em comum: criar uma Nuvem simples de ser implementada, altamente escal´avel e com v´arios recursos avan¸cados (Wen et al.,2012).

2.4.1 Hist´orico e Caracter´ısticas

Na constru¸c˜ao de nuvens privadas ou p´ublicas o OpenStack surge como uma solu¸c˜ao de c´odigo aberto est´avel e eficiente. O mesmo pode ser definido como um sistema ope-racional que controla pools de computa¸c˜ao (grande volume de recursos computacionais), armazenamento e recursos de rede atrav´es de um painel, uma interface Web e tem como objetivo a entrega de infraestrutura como servi¸co (IaaS) atrav´es de uma plataforma open source. Projetado em 2011 pela National Aeronautics and Space Administration of Uni-ted States (NASA) e Rackspace para gerenciamento intera¸c˜ao da nuvem, hoje ´e apoiado por mais de 800 organiza¸c˜oes, busca produzir uma plataforma onipresente de cloud com-puting de c´odigo aberto para nuvens privadas e p´ublicas baseando-se nos princ´ıpios de entrega de servi¸cos sob demanda de trˆes principais pilares: computa¸c˜ao, redes e meios de armazenamentoOpenStack (2014c) como mostrado na Figura 2.3.

O OpenStack fornece uma solu¸c˜ao de Infrastructure-as-a-Service (IaaS), atrav´es de um conjunto de servi¸cos inter-relacionados. De forma a permitir a gest˜ao, orquestra¸c˜ao e automa¸c˜ao dos recursos de TI que envolvem a constru¸c˜ao de uma nuvem privada ou a utiliza¸c˜ao de nuvens p´ublicas, dessa forma, analisando a Figura 2.3 pode ser observado que as camadas relacionadas a aplica¸c˜oes e administra¸c˜ao de acesso est˜ao no topo da pilha, com os elementos padr˜oes de recursos para computa¸c˜ao, redes e armazenamento vindo imediatamente abaixo deles. Tudo repousa sobre os servi¸cos compartilhados e, no fim, em plataformas padr˜ao espec´ıficas de hardware de c´odigo livre. Permitindo acesso de recursos de computa¸c˜ao atrav´es de APIs para desenvolvedores de aplicativos em nuvem e fornecendo interface Web para administradores e usu´ariosOpenStack(2014c).

´

E uma plataforma consistente atualmente contando com 11 distribui¸c˜oes ou releases (como tamb´em ´e chamado), sendo que a primeira release lan¸cada foi a Austin em outubro de 2010 e a ´ultima a Kilo lan¸cada em Abril de 2015, a cada 6 meses a OpenStack Fundation lan¸ca uma nova release contendo novos servi¸cos ou atualiza¸c˜oes e corre¸c˜oes de bugs. Na Tabela2.1 segue um panorama geral dos releases do OpenStack at´e a atual data.

O OpenStack tem gerado uma maior dissemina¸c˜ao do modelo de nuvem usando c´odigo aberto, estimulando baixos custos para a sua implementa¸c˜ao e manuten¸c˜ao, al´em de contar com uma grande comunidade para corrigir bugs e compartilhar conhecimento e t´ecnicas de implanta¸c˜oes.

(35)

S´erie Data do Lan¸camento Kilo Apr 30, 2015 Juno Oct 16, 2014 Icehouse Apr 17, 2014 Havana Oct 17, 2013 Grizzly Apr 4, 2013 Folsom Sep 27, 2012 Essex Apr 5, 2012 Diablo Sep 22, 2011 Cactus Apr 15, 2011 Bexar Feb 3, 2011 Austin Oct 21, 2010

Tabela 2.1: Nome/S´erie e Data dos Releases. Dispon´ıvel em:

https: // wiki. openstack. org/ wiki/ Releases(OpenStack).

2.4.2 Servi¸cos do OpenStack

Escrito basicamente em Python o OpenStack possui uma arquitetura como a mostrada na Figura2.3composta dos seguintes principais servi¸cos/projetos:

Figura 2.3: Vis˜ao Geral OpenStack. Fonte: www.openstack.org/software(OpenStack).

Os servi¸cos b´asicos do OpenStack s˜ao:

• Nova (Servi¸co Compute): Fornece servidores virtuais sob demanda, como os Rackspace Cloud Servers ou a Amazon Elastic Compute Cloud EC2 no ambiente Amazon Web Services AWS. OpenStack(2014b);

O servi¸co Compute ´e utilizado para hospedar e gerenciar sistemas de cloud compu-ting. Se caracteriza como de suma importˆancia no provimento de Infra-estrutura-como-Servi¸co (IaaS) e os seus principais m´odulos s˜ao implementados em Python. Al´em disso, o servi¸co Compute interage com outros servi¸cos como, autentica¸c˜ao, imagem de disco para o servidor e imagens, e OpenStack Dashboard para o usu´ario

(36)

e interface administrativa.

Segundo Dieder (2012), algumas atribui¸c˜oes deste servi¸co s˜ao: Gerenciar os recur-sos computacionais, de rede e autoriza¸c˜ao, gerenciar o ciclo de vida de instˆancias, prover integra¸c˜ao administrativa e p´ublica atrav´es de uma API REST, integrar o sistema com hypervisors (Xen/XenServer, Kernel-based Virtual Machine KVM, VMware/ESX, Linux Containers (LXC), User Mode Linux (UML), Hyper-V, Qemu) e prover comunica¸c˜ao ass´ıncrona.

O servi¸co Compute possui os m´odulos: API, Rabbit MQ Server, Nova-Compute, Nova-Scheduler, Nova-Network, Nova-Volume.

• Glance (Servi¸co de Imagem): Fornece um meio de descobrir, armazenar e recu-perar m´aquinas virtuais para o OpenStack Nova. O Glance abrange desde os ele-mentos de painel de controle, c´alculo, rede at´e itens de armazenamento. OpenStack

(2014b);

• Horizon (Servi¸co Dashboard) : fornece um painel com mecanismos de controle para a administra¸c˜ao de servi¸cos OpenStack, instˆancias, recursos e monitoramento de status e eventos fornecendo maiores capacidades de solu¸c˜ao problemas. O DashBoard ´e a interface utilizada pelo Horizon. OpenStack(2014b);

• Keystone (Servi¸co de Autentica¸c˜ao): Respons´avel pelo gerenciamento de usu´arios. Mant´em o controle de usu´arios e o que eles est˜ao autorizados a fazer, al´em de for-necer um cat´alogo de quais servi¸cos est˜ao dispon´ıveis e onde seus terminais de API est˜ao localizados. OpenStack(2014b)

• Neutron (Servi¸co de Redes): Respons´avel por manter conectados os servi¸cos OpenStack entre si atrav´es de conex˜oes de rede. O Neutron fornece uma API de gerenciamento de redes e endere¸cos de Internet Protocol (IP) permitindo que os usu´arios configurem suas pr´orias redes dentro da nuvem OpenStack. Assim como outros aspectos do sistema operacional em nuvem, ele pode ser usado por adminis-tradores e usu´arios para aumentar o valor dos ativos do datacenter existentes. Sua arquitetura suporta v´arios padr˜oes de redes e tecnologias. OpenStack(2014b); • Swift (Servi¸co de Object Storage): Fornece objetos para dados, conte´udo e

outros materiais. Isto se origina dos RackSpace Cloud Files e ´e mais ou menos an´alogo ao Amazon Simple Storage Service (S3) dentro de seu ambiente Amazon Web Services. O Swift ´e tido como o item de Armazenamento. OpenStack(2014b); Al´em dos servi¸cos b´asicos outros servi¸cos fazem parte da arquitetura do OpenSatck s˜ao eles:

• Ceilometer (Servi¸co de Telemetria): Fornece o monitoramento e medi¸c˜ao do consumo dos recursos do OpenStack para fins de faturamento, benchmarking (pro-cesso de busca de melhores pr´aticas), escalabilidade e estat´ısticas. OpenStack(2014b); • Cinder (Servi¸co de Block Storage): Fornece armazenamento em blocos para

instˆancias OpenStack Compute. Este servi¸co ´e semelhante `a oferta Amazon EC2 Elastic Block Storage (EBS). Possui uma arquitetura plug´avel facilitando criar e gerenciar blocos de armazenamento. OpenStack(2014b);

(37)

• Heat (Servi¸co de Orquestra¸c˜ao): Orquestra as aplica¸c˜oes da nuvem usando o modelo nativo HOT ou o formato da AWS Cloud-Formation. O servi¸co pode ser acessado atrav´es de API REST, como tamb´em fornece compatibilidade com a API CloudFormation de forma a garantir a configura¸c˜ao e implanta¸c˜ao autom´atica de recursos em pilhas. OpenStack(2014b);

• Trove (Servi¸co de Database): Garante isolamento de recursos em n´ıveis eleva-dos de desempenho, automatizando tarefas administrativas complexas, tais como implementa¸c˜ao, configura¸c˜ao, aplica¸c˜ao de patches, backups, restaura¸c˜oes e monito-ramento atrav´es do fornecimento de Banco de Dados como um Servi¸co, (Database-as-a-Service - DaaS) para bancos de dados relacionais e n˜ao relacionais de maneira escal´avel e confi´avel.OpenStack(2014b)

A arquitetua conceitual e os servi¸cos do OpenStack se relacionam como mostrada na Figura2.4:

Figura 2.4: A arquitetura Conceitual OpenStack, Dispon´ıvel em

(38)

2.5

O Servi¸

co Ceilometer

O projeto Ceilometer[ii] foi iniciado em 2012 com um objetivo simples em mente: ofe-recer uma infra-estrutura para recolher todas as informa¸c˜oes necess´arias sobre projetos OpenStack. Dessa maneira, visa proporcionar um ´unico ponto de contato para sistemas de faturamento adquirir todas as medidas necess´arias para estabelecer o faturamento do uso dos recursos da nuvem pelo o cliente. (OpenStack,2015a)

O m´odulo de telemetria foi originalmente projetado para suportar sistemas de fatu-ramento para recursos de nuvem OpenStack. Este servi¸co abrange apenas a parte de medi¸c˜ao do processamento necess´ario para o faturamento, coletando informa¸c˜oes sobre o sistema e armazenando-as na forma de amostras, a fim de fornecer dados sobre qualquer coisa que pode ser cobrada. Tendo em vista que, na ind´ustria de nuvem, os fornecedores devem usar m´ultiplas etapas, incluindo medi¸c˜ao e classifica¸c˜ao. Para se calcular o fatura-mento, o processo como um todo se torna complexo, por isso, ´e necess´ario definir o termo ”Servi¸co Medido”baseando-se em m´etricas. O Ceilometer por sua vez permite utilizar v´arias m´etricas predefinidas bem como permite a inser¸c˜ao de novas m´etricas de acordo com a necessidade e a utiliza¸c˜ao de novos recursos. OpenStack (2014b)

Desta maneira, a lista de m´etricas est´a crescendo continuamente, o que faz com que seja poss´ıvel utilizar os dados recolhidos atrav´es da telemetria para diferentes fins, que n˜ao sejam de faturamento. Por exemplo, o recurso autoscaling (auto escala) no m´odulo Orchestration pode ser desencadeado por alarmes deste conjunto de m´odulos e, em seguida, ´e notificado no prazo de telemetria.

De acordo comOpenStack(2015a), o processo de faturamento normalmente executado em grandes empresas compreende trˆes etapas:

1. Medi¸c˜ao (Metering): ´E o processo de coleta de informa¸c˜oes sobre o quˆe, quem, quando e quanto, Ou seja ´e o calculo de qualquer coisa que pode ser cobrada. O resultado disso ´e uma cole¸c˜ao de (amostras) que estar˜ao prontas serem processados da maneira que vocˆe quiser.

2. Avalia¸c˜ao (Rating): ´E o processo de analisar uma s´erie de bilhetes, de acordo com as regras de neg´ocios definidas, a fim de transform´a-los em itens com um valor de moeda, mercado.

3. Faturamento (Billing): ´E o processo de cria¸c˜ao de conta para o cliente, de forma a emitir a fatura para iniciar a coleta de pagamento.

A meta do ceilometer ´e estritamente limitada ao passo 1. Esta foi uma escolha feita desde o in´ıcio, pois prover processos de Avalia¸c˜ao e Faturamento traria uma grande va-riedade de op¸c˜oes e o projeto nem sempre conseguiria uma solu¸c˜ao que se encaixe `as necessidades de todos, em particular para nuvens p´ublicas. OpenStack(2015a)

Isto significa que o projeto Ceilometer ´e suficiente para resolver as necessidades de faturamento, mas certamente n˜ao ´e o fim da estrada. Uma vez que o Ceilometer est´a implantado em sua nuvem OpenStack, ´e preciso construir regras de utiliza¸c˜ao para definir

[ii]A inspira¸c˜ao para o nome deste projeto OpenStack veio de uma ferramenta utilizada na

me-teorologia (ciˆencia que estuda os fenˆomenos atmosf´ericos), no qual, um Ceilometer ´e um disposi-tivo que utiliza um laser ou outra fonte de luz para determinar a altura de uma base da nuvem. Fonte:(http://en.wikipedia.org/wiki/ceilometer)

(39)

valores e etc. Outro ponto ´e estudar as consultas adequadas no ˆambito do API Ceilometer para extrair as informa¸c˜oes e classifica¸c˜oes pr´oprias.

2.5.1 Conceitos

Meters (M´etricas):

M´etricas simplesmente medem um aspecto particular do uso de recursos (por exemplo, a existˆencia de uma instˆancia em execu¸c˜ao) ou de desempenho em curso (por exemplo, a corrente de utiliza¸c˜ao da CPU para essa instˆancia) (Rdo-Project,2013).

Todas as m´etricas tˆem um nome ´unico, uma unidade de medida, e um tipo que indica se os valores s˜ao monotonamente crescente (cumulative), interpretado como uma mudan¸ca em rela¸c˜ao ao valor anterior (delta), ou um valor autˆonomo que apenas diz respeito `a dura¸c˜ao atual (gauge) (Rdo-Project,2013).

Samples (Amostras):

Amostras s˜ao simplesmente ”datapoints” (ou seja, informa¸c˜oes individuais e ´unicas associados a uma m´etrica particular). Como tal, todos os exemplos englobam os mesmos atributos que o contador propriamente dito, mas com a adi¸c˜ao de um marcador de tempo e um valor (tamb´em conhecido como a amostra ”volume”)Rdo-Project (2013).

Statistics (Estat´ısticas):

Se a amostra ´e um ´unico ”datapoint” ou ponto de dados, em seguida, uma estat´ıstica ´e um conjunto de pontos de dados tais agregados ao longo de um per´ıodo de tempo. Ceilometer emprega atualmente cinco fun¸c˜oes de agrega¸c˜ao diferentes:

• count: o n´umero de amostras em cada per´ıodo;

• m´ax: o valor m´aximo dos volumes de amostras em cada per´ıodo; • min: o valor m´ınimo dos volumes de amostras em cada per´ıodo; • avg: a m´edia dos volumes de amostras em cada per´ıodo;

• som: a soma dos volumes de amostras em cada per´ıodo.

Nota-se que todas essas fun¸c˜oes de agrega¸c˜ao s˜ao aplicadas para cada estat´ıstica cal-culada. Isto pode parecer um desperd´ıcio se o usu´ario est´a interessado apenas em um dos valores, mas, na pr´atica, quase nenhum custo computacional extra ´e agregado para calcular esses valoresRdo-Project (2013).

2.5.2 Arquitetura

De Acordo comOpenStack(2015a) cada um dos servi¸cos do ceilometer s˜ao projetados para escalar horizontalmente. O Ceilometer oferece cinco servi¸cos essenciais, os agentes de dados s˜ao projetados para trabalhar de forma independente dos coletores e dos Alarmes, mas tamb´em podem desempenhar pap´eis juntos como uma solu¸c˜ao completa:

(40)

• agentes de vota¸c˜ao (polling agent) - Projetado para pesquisar servi¸cos OpenStack e construir M´etricas.

• agentes de notifica¸c˜ao (notification agent)- Projetado para ouvir as notifica¸c˜oes da fila de mensagens e convertˆe-los para eventos e amostras.

• coletor (collector)- Projetado para reunir dados de evento e registro de press˜ao e medi¸c˜ao criados pelos agentes de notifica¸c˜ao e de vota¸c˜ao.

• api - Servi¸co para consultar e visualizar dados registrados pelo servi¸co de colecio-nador.

• alarmes alarming - Servi¸co de avalia¸c˜ao e notifica¸c˜ao com base em regras de alarmes definidas.

Uma representa¸c˜ao de como ´e a arquitetura do Ceilometer pode ser visualizado na Figura2.5.

Figura 2.5: A arquitetura conceitual do Ceilometer, Dispon´ıvel em

http: // docs. openstack. org/ developer/ ceilometer/ architecture. html (OpenStack).

Para que os servi¸cos citados anteriormente na arquitetura funcionem corretamente s˜ao os componentes b´asicos executados e instalados na nuvem os respons´aveis pelas tarefas. S˜ao eles:

(41)

• Compute Agent (ceilometer-agent-compute): ´E executado em cada n´o com-pute (ou seja, cada n´o de computa¸c˜ao) e fornece pesquisas para as estat´ısticas de utiliza¸c˜ao de recursos. (OpenStack,2014b);

• Central Agent (ceilometer-agent-central): ´E executado no servidor de geren-ciamento central para coletar as estat´ısticas de utiliza¸c˜ao de recursos para recursos n˜ao vinculados a instˆancias ou n´os de computa¸c˜ao. (OpenStack,2014b);

• Collector (ceilometer-collector): ´E executado em um ou mais servidores de gerenciamento central para monitorar as filas de mensagens (para notifica¸c˜oes e para dados de medi¸c˜ao provenientes do agente). As mensagens de notifica¸c˜ao s˜ao processadas e transformadas em medi¸c˜ao e enviadas de volta. (OpenStack,2014b); • Alarm Notifier (ceilometer-alarme-notifier): ´E executado em um ou mais

ser-vidores de gerenciamento central para permitir configurar alarmes com base na ava-lia¸c˜ao limiar para uma cole¸c˜ao de amostras. (OpenStack,2014b);

• Data Store: Um banco de dados capaz de lidar com a escrita simultˆanea (a par-tir de uma ou mais instˆancias do collector) e lˆe-se (a partir do servidor de API). (OpenStack,2014b);

• API server (ceilometer-api): ´E executado em um ou mais servidores de ge-renciamento central para fornecer acesso aos dados do armazenamento de dados. (OpenStack,2014b);

Todos os componentes/agentes s˜ao desenvolvidos na linguagem Python assim como praticamente todo o OpenStack.

2.5.3 M´etodos de consultas

Para se realizar consultas `as informa¸c˜oes, m´etricas do servi¸co, pode ser utilizado as seguintes API’s:

• cURL: ´E uma ferramenta de linha de comando que permite enviar solicita¸c˜oes HTTP das mais variadas formas e receber respostas. As aplica¸c˜oes utilizando essa ferramenta s˜ao as mais variadas e afetam bilh˜oes de usu´arios em todo o mundo; • Clientes OpenStack para linha de comando: Cada projeto OpenStack fornece

um cliente de linha de comando que permite que vocˆe acesse sua API atrav´es de comandos de f´acil utiliza¸c˜ao;

• REST clients: S˜ao Apis de envio de solicita¸c˜oes HTTP por meio de navegadores como Google Chrome, Firefox, entre outros;

• Kit de desenvolvimento de softwares python OpenStack(Python SDK): Permite escrever scripts de automa¸c˜ao Python que criam e fazem chamadas em objetos Python ao inv´es de fazer chamadas REST diretamente. Todas as ferramentas de linha de comando OpenStack s˜ao implementados usando o Python SDK.

(42)

2.6

Trabalhos Relacionados

Existem muitos trabalhos relacionados ao tema de Cloud Computing, entre alguns se destacam os que s˜ao relacionados a m´etodos de monitoramento e c´alculo de consumo de recursos.

Carvalho (2015), Em sua tese prop˜oe um framework que mant´em o monitoramento autom´atico e atualizado de recursos contratados pelos usu´arios da nuvem, `a medida que estes sejam criados, modificados ou destru´ıdos na plataforma de nuvem. O framework proposto suporta diversas plataformas e solu¸c˜oes de monitoramento em nuvem, e ´e res-pons´avel pela coleta e organiza¸c˜ao de informa¸c˜oes das plataformas, atrav´es da detec¸c˜ao de opera¸c˜oes que ocorreram na plataforma e pela configura¸c˜ao das solu¸c˜oes de monitora-mento de acordo com regras definidas pelo administrador. O autor analisou solu¸c˜oes de plataformas de nuvens atuais e os seus m´etodos de monitoramento, citando entre outras, solu¸c˜oes como OpenStack e o servi¸co Ceilometer, o qual foi integrado ao desenvolvimento do framework proposto. O framework desenvolvido foi intitulado de FlexACMS (Flexible Automated Cloud Monitoring Slices).

J´aBrinkmann et al.(2013), apresentam uma arquitetura de monitoramento que foi de-senvolvida e ´e atualmente implementada em um projeto chamado EASI-CLOUDS. No seu trabalho eles falam das m´ultiplas exigˆencias sobre sistemas de monitoramento de nuvem, e dos controles regulares dos SLA’s ou seja, acordos de n´ıveis de servi¸cos e faturamento baseando-se no uso de recursos. Os autores ainda discorrem sobre a estimativa e con-vers˜ao de leituras de infra-estrutura em intervalos curtos. Outro ponto que se destaca ´e que para garantir a escalabilidade de toda a nuvem, o sistema de monitoramento deve ser bem dimensionado sem desperdi¸car recursos. No trabalho, os autores citam algumas pla-taformas de nuvem como o OpenStack, que fornecem meios para implanta¸c˜ao e m´etodos de gerenciamento de recursos em nuvem. Os autores ent˜ao prop˜oem uma abordagem em que os dados de monitoramento s˜ao organizados em uma estrutura de ´arvore distribu´ıdo e facilmente escal´avel e seu principal componente inclui a interface, a raiz da ´arvore e de extens˜ao de pontos para sub ´arvores que s˜ao implementados e gerenciados localmente pelos fornecedores de dados deles mesmos. Apesar da variedade e a distribui¸c˜ao dos dados, o seu acesso ´e gen´erico e localiza¸c˜ao transparente, dessa forma, al´em de simples fornece-dores de dados de monitoramento, ´e esbo¸cado um componente que fornece os meios para armazenar e pr´e-processar dados. A motiva¸c˜ao para este componente ´e o de que o sistema de controle pode ser ajustado para os seus assinantes.

Xiaojiang and Yanlei(2013) em seu trabalho, abordam a importˆancia do uso de Cloud Computing como uma solu¸c˜ao eficaz para a constru¸c˜ao de sistemas e aplica¸c˜oes de acordo com suas demandas, isso remete `a escalabilidade e disponibilidade da nuvem. No trabalho, prop˜oe uma Plataforma de Servi¸cos em computa¸c˜ao em nuvem baseado no OpenStack que suporta o gerenciamento de servi¸co, auto-scaling, controle de seguran¸ca e alta disponibili-dade, etc. Para alcan¸car a gest˜ao eficaz dos recursos e garantir a qualidade do servi¸co, os autores propuseram a implementa¸c˜ao do monitoramento de recursos subsistema. Ele pode monitorar m´etricas de desempenho utiliza¸c˜ao da CPU, uso de mem´oria e recursos f´ısicos e virtuais como E/S de rede. Como resultado, os dados persistentes podem ser utilizados pelo subsistema de gest˜ao de recursos e subsistema de alarme.

No trabalho deRossigneux et al.(2014), os autores enfocam a computa¸c˜ao em nuvem para a ind´ustria de TI, onde seus processos em grandes industrias muitas vezes consomem enormes quantidades de energia el´etrica. Os autores refor¸cam a id´eia de que esfor¸cos tˆem

(43)

sido feitos para reduzir o consumo de energia nas nuvens, de acordo com a pesquisa reali-zada o autor observa que certos centros de dados tˆem se aproximado de um fator intitulado Power Usage Effectiveness (PUE). No trabalho os autores tamb´em falam a respeito de um valor aproximado para o PUE que revela a infra-estrutura de TI como a respons´avel por uma grande parte da energia consumida por um data center. Dessa forma, o monito-ramento e an´alise de como a energia ´e gasta tem sido crucial. Os autores falam que esse acompanhamento ´e necess´ario n˜ao s´o para a compreens˜ao de como a energia ´e consumida, mas tamb´em para avaliar o impacto das pol´ıticas de gest˜ao de energia. Os autores tamb´em trazem a tona resultados de experiˆencia sobre o controle de sistemas em larga escala e in-troduz uma estrutura de software de monitoramento de energia chamado de quilowatts API (KWAPI), capaz de lidar com nuvens OpenStack. O software cuja arquitetura ´e es-cal´avel, extens´ıvel e completamente integrado ao OpenStack, suporta v´arios dispositivos watt´ımetros, m´ultiplos formatos de medi¸c˜ao, e minimiza a sobrecarga de comunica¸c˜ao.

Em Cima et al. (2015), s˜ao tratados aspectos de eficiˆencia energ´etica que podem ser adicionados a nuvens OpenStack. Os autores buscam elaborar um gerenciador de recursos de energia eficiente para OpenStack, primeiro, analisando a utiliza¸c˜ao de recursos de ener-gia em nossos recursos de nuvem. No trabalho, ´e observado que h´a um custo fixo associado com padr˜oes de utiliza¸c˜ao do servidor, e ´e necess´ario delig´a-los para atingir economias de energia. Os autores discutem m´etodos de mecanismos de migra¸c˜ao de servidores e con-solida¸c˜ao de carga, como solu¸c˜ao sofisticadas de gerenciamento de cargas. Por fim, s˜ao discutidos trabalhos em curso sobre a realiza¸c˜ao de um gerente de carga para OpenStack com base nessas observa¸c˜oes.

(44)
(45)

OpenStack: Utilizando o servi¸co de Telemetria para c´alculo de estimativas 23

Cap´ıtulo 3

Procedimentos Metodol´

ogicos

“A persistˆencia ´e o menor caminho para o ˆexito”

Charles Chaplin

3.1

Caracteriza¸

ao da Pesquisa - Estudo de Caso

A metodologia escolhida para a elabora¸c˜ao do presente trabalho monogr´afico foi de pesquisa bibliogr´afica e experimental do tipo estudo de caso, de acordo comYin (2001), o estudo de caso ´e uma estrat´egia de pesquisa que compreende um m´etodo abrangente em abordagens espec´ıficas de coletas e an´alise de dados. Este m´etodo ´e ´util quando o fenˆomeno a ser estudado ´e amplo e complexo e n˜ao pode ser estudado fora do contexto onde ocorre naturalmente.

Yin(2001) destaca que, os estudos de caso podem ser:

• Explorat´orios: quando se quer encontrar informa¸c˜oes preliminares sobre o assunto estudado. Importante no desenvolvimento de Estudos de Casos explanat´orios, pois permite confrontar teorias diversas, em que existem diferentes perspectivas, enrique-cendo o estudo;

• Descritivos: Tem como objetivo descrever o estudo de caso realizado;

• Explanat´orios: Busca problematizar ou produzir novas teorias com o intuito de problematizar o seu objeto, construir ou desenvolver novas teorias que ir˜ao ser con-frontadas com as teorias j´a existentes, proporcionando avan¸cos do conhecimento. Foi aplicado o tipo de estudo de caso explanat´orio, onde, identificado um problema, foi proposta e desenvolvida nova solu¸c˜ao baseando-se em outras existentes com o objetivo de avan¸car a ´area de pesquisa.

Foram realizadas as seguintes atividades: 1. Escolha do tema;

2. Estudo bibliogr´afico; 3. Estudo t´ecnico;

(46)

5. Coleta e an´alise dos resultados.

Cada um desses passos ser´a descrito com detalhes mais adiante.

3.2

Realiza¸

ao do Estudo bibliogr´

afico

A realiza¸c˜ao do estudo bibliogr´afico deu-se atrav´es de pesquisas `a obra de diversos autores a respeito de cloud computing e suas aplica¸c˜oes, tecnologia da informa¸c˜ao, com o intuito obten¸c˜ao de conhecimento aprofundado sobre o tema escolhido e fundamenta¸c˜ao te´orica para desenvolver a aplica¸c˜ao proposta.

3.3

Realiza¸

ao do Estudo t´

ecnico

O estudo t´ecnico foi realizado atrav´es de documenta¸c˜oes do OpenStack (providas e mantidas pela funda¸c˜ao OpenStack e pelos os colaboradores do projeto) e na busca de informa¸c˜oes por ferramentas que integram o sistema de nuvem como um todo, algumas informa¸c˜oes que ajudaram no desenvolvimento do trabalho foram encontradas em f´oruns p´ublicos de discurs˜oes na web outras em tutoriais de utiliza¸c˜ao de ferramentas e aplica¸c˜oes.

3.4

Implementa¸

ao da aplica¸

ao

A implementa¸c˜ao da aplica¸c˜ao teve in´ıcio ap´os ser adquirido o dom´ınio t´ecnico sobre o problema, e compreendeu as seguintes atividades:

• Implanta¸c˜ao do servi¸co de telemetria para o openstack: Diz respeito `a ins-tala¸c˜ao do Ceilometer seguindo `as orienta¸c˜oes do guia (OpenStack, 2014b), bem como os testes realizados na API fornecida pelo Ceilometer;

• Escolha das tecnologias (Ferramentas, linguagens de programa¸c˜ao) que possibilitaram o desenvolvimento: Diz respeito ao estudo referente `as ferra-mentas e linguagens que poderiam ser utilizadas para implementa¸c˜ao da API; • E a realiza¸c˜ao de testes de funcionalidades: Diz respeito aos testes realizados

na API depois de implementada com o objetivo de colher informa¸c˜oes quanto ao funcionamento e desempenho da mesmo quanto os objetivos pretendidos.

Cada uma das atividades realizadas na implanta¸c˜ao ´e explicado detalhadamente em4.

3.5

Coleta e an´

alise dos resultados

Por fim, a coleta e an´alise dos resultados (explicado de forma pr´atica e com maiores detalhes em 4.7) desenvolveu-se atrav´es do estudo dos gr´aficos e relat´orios gerados pela aplica¸c˜ao na fase de testes, possibilitando relacionar e avaliar os resultados com a solu¸c˜ao proposta em1.2e os objetivos do trabalho em1.3.1.

Para a coleta dos resultados foram realizados testes que avaliaram o desempenho da API RDU2 em compara¸c˜ao com as API’s padr˜oes dos servi¸cos OpenStack, a tabela 3.1

(47)

Teste Avalia¸c˜ao Resultados Autentica¸c˜ao OpenStack. Credenciais de usu´ario

(tenant, login, password).

Usu´arios autenticados com sucesso, visualiza¸c˜ao de todos

os servi¸cos integrados e em funcionamento. Verifica¸c˜ao do servi¸co Ceilometer. Estado de funcionamento (ativo, erro).

O servi¸co retornou uma lista de m´etricas dispon´ıveis

para consulta (ativo). Consulta de m´etricas

utilizando o servi¸co Dashboard, logado como

usu´ario administrador.

Quais m´etricas o adminis-trador da nuvem possui

acesso atrav´es do Dashboard.

O administrador visualiza todas as m´etricas relacionadas

ao usu´ario admin e aos demais usu´arios. Consulta de m´etricas

utilizando o servi¸co Dashboard, logado como

usu´ario comum.

Quais m´etricas o usu´ario comum possui acesso atrav´es do Dashboard.

O usu´ario comum n˜ao tem acesso a nenhuma informa¸c˜ao de m´etricas. Consulta de m´etricas,

Via API de Linha de comandos OpenStack.

O funcionamento da API, suas respostas para as requisi¸c˜oes.

A API fornece suporte `

a todas as funcionalidades de busca e cadastro de m´etricas

com resultados satisfat´orios.

Consulta de m´etricas, Via API cURL.

O funcionamento da API, suas respostas para as requisi¸c˜oes.

A API fornece suporte `

a todas as funcionalidades de busca e cadastro de m´etricas

com resultados satisfat´orios. Possui extens˜ao para

imple-menta¸c˜oes em python. Consulta de m´etricas,

Via API REST Client para navegadores.

O funcionamento da API, suas respostas para as requisi¸c˜oes.

A API fornece suporte `

a todas as funcionalidades de busca e cadastro de m´etricas,

por´em seu desempenho n˜ao foi satisfat´orio, por algumas restri¸c˜oes com o nevegador. Consulta de m´etricas

utili-zando filtro por fun¸c˜oes.

Consultas de informa¸c˜oes de m´etricas por faixa de

tempo, valores, etc.

O servi¸co retornou informa¸c˜oes refinadas de acordo com as

fun¸c˜oes repassadas. Consulta de m´etricas

como usu´ario admin.

Quais m´etricas o adminis-trador da nuvem possui

acesso.

O servi¸co retornou todas as m´etricas relacionadas ao usu´ario

Referências

Documentos relacionados

1. André comprou um terreno para construir sua casa e elaborou um esboço de uma planta baixa para essa construção, ocupando todo o terreno. Esse esboço está apresentado abaixo, no

O artigo compreende em um fragmento do estudo desenvolvido na dissertação de mestrado, que teve como objetivo compreender a memória construída no Arquivo José

Com relação a percepção ambiental das pessoas amostradas, quando questionadas sobre a dengue (forma de transmissão, criadouros, ações de combate), todas as

O romance Usina, diferentemente dos demais do conjunto da obra pertencente ao ciclo-da-cana-de-açúcar, talvez em função do contexto histórico em que se insere, não

Existe Política na teoria de Badiou, como é discutido no capítulo 3, quando se estabelece uma relação rara entre Sujeito Político e Verdade, no também não menos raro advento

• Quando uma decisão tiver sido proferida num Estado-Membro ou num Estado parte contratante na Convenção da Haia de 2007 onde o credor tem a sua residência habitual, o devedor não

Os pontos P1, P2 e P3, correspondente aos bairros da rede geral da cidade, apresentaram menores concentrações de sólidos suspensos totais, sólidos sedimentáveis,

Com isso, pode-se concluir que as prestacoes de seguridade social sao essenciais para a preservacao dos direitos civis e politicos. Sendo assim, e fundamental para um Estado a