195
Paulo Agostinho Rodrigues Pires Licenciado em Engenharia Informática Framework para a construção de “portais de negócio” para gestão de solicitações de consumidores IaaS na HP Cloud Dissertação para obtenção do Grau de Mestre em Engenharia Informática Orientador: Prof. Doutor Paulo Orlando Reis Afonso Lopes, Prof. Auxiliar, Departamento de Informática da FCT/UNL Co-orientador: Engenheiro Informático Rui Miguel Ramalho Ramos, Team Leader de TS Consulting da HP Júri: Presidente: Prof. Doutor Fernando Pedro Reino da Silva Birra Arguente: Doutor Gonçalo Filipe Maurício dos Santos Borges Vogal: Prof. Doutor Paulo Orlando Reis Afonso Lopes Novembro 2013

Framework para a construção de “portais de negócio” para

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Framework para a construção de “portais de negócio” para

Paulo Agostinho Rodrigues Pires Licenciado em Engenharia Informaacutetica

Framework para a construccedilatildeo de ldquoportais de negoacuteciordquo para gestatildeo de solicitaccedilotildees de consumidores IaaS

na HP Cloud

Dissertaccedilatildeo para obtenccedilatildeo do Grau de Mestre em Engenharia Informaacutetica

Orientador Prof Doutor Paulo Orlando Reis Afonso Lopes Prof Auxiliar Departamento de Informaacutetica da FCTUNL

Co-orientador Engenheiro Informaacutetico Rui Miguel Ramalho Ramos Team Leader de TS Consulting da HP

Juacuteri

Presidente Prof Doutor Fernando Pedro Reino da Silva Birra Arguente Doutor Gonccedilalo Filipe Mauriacutecio dos Santos Borges Vogal Prof Doutor Paulo Orlando Reis Afonso Lopes

Novembro 2013

LOMBADA

F

ram

ew

ork

para

a c

onstr

uccedilatildeo d

e ldquo

port

ais

de n

eg

oacutecio

rdquo p

ara

gestatilde

o d

e s

olic

ita

ccedilotildee

s d

e c

onsum

idore

s I

aaS

na H

P C

loud

Pa

ulo

Pire

s

Pa

ulo

Pire

s

2013

2013

Paulo Agostinho Rodrigues Pires

Licenciado em Engenharia Informaacutetica

Framework para a construccedilatildeo de ldquoportais de negoacuteciordquo para gestatildeo de solicitaccedilotildees de consumidores IaaS

na HP Cloud

Dissertaccedilatildeo para obtenccedilatildeo do Grau de Mestre em Engenharia Informaacutetica

Orientador Prof Doutor Paulo Orlando Reis Afonso Lopes Prof Auxiliar Departamento de Informaacutetica da FCTUNL

Co-orientador Engenheiro Informaacutetico Rui Miguel Ramalho Ramos Team Leader de TS Consulting da HP

Novembro 2013

IV

V

Framework para a construccedilatildeo de ldquoportais de negoacuteciordquo

para gestatildeo de solicitaccedilotildees de consumidores IaaS

na HP Cloud

copy Copyright - Indicaccedilatildeo dos direitos de coacutepia em nome de Paulo Agostinho Rodrigues Pires

aluno de Mestrado em Engenharia Informaacutetica da FCTUNL

A Faculdade de Ciecircncias e Tecnologia e a Universidade Nova de Lisboa tecircm o direito

perpeacutetuo e sem limites geograacuteficos de arquivar e publicar esta dissertaccedilatildeo atraveacutes de

exemplares impressos reproduzidos em papel ou de forma digital ou por qualquer outro

meio conhecido ou que venha a ser inventado e de a divulgar atraveacutes de repositoacuterios

cientiacuteficos e de admitir a sua coacutepia e distribuiccedilatildeo com objectivos educacionais ou de

investigaccedilatildeo natildeo comerciais desde que seja dado creacutedito ao autor e editor

VI

VII

Agradecimentos

Um profundo agradecimento a todos aqueles que de diferentes formas me apoiaram durante

estes 5 anos enquadrando este trabalho como objectivo uacuteltimo de uma licenciatura e

mestrado integrado em Engenharia Informaacutetica

Comeccedilo assim por agradecer a todos os meus professores da FCT que ao longo

destes 5 anos contribuiacuteram para a minha formaccedilatildeo acadeacutemica

Aos meus amigos que no estudo nas diversotildees nos incentivos conseguiram sempre criar um

ambiente ideal e propiacutecio agrave concretizaccedilatildeo das diferentes etapas deste curso com eacutexito Para

mim foi um privileacutegio ter partilhado com eles esta etapa da minha vida

Agrave HP pela disponibilizaccedilatildeo de todas as infra-estruturas permissotildees e acessos para a

elaboraccedilatildeo deste framework Um abiente acolhedor em pessoas trabalho equipamento e

apoio

Ao meu orientador e responsaacutevel na HP Rui Miguel Ramalho Ramos (TS Consulting

Resource Manager) que sempre ponto a ajudar soube resolver atempadamente todas as

minhas solicitaccedilotildees Um muito obrigado pela camaradagem eficiecircncia e profissionalismo

com que encarou toda a implementaccedilatildeo

Um agradecimento especial ao meu orientador da tese Professor Paulo Orlando Reis

Afonso Lopes (Arquitectura de Sistemas Computacionais) pela sua orientaccedilatildeo

disponibilidade e sugestotildees que me ajudaram na conclusatildeo deste trabalho Um muito

obrigado pela sua constante presenccedila e acima de tudo pela confianccedila que me concedeu

durante toda a tese quer na preparaccedilatildeo quer na elaboraccedilatildeo Uma acessibilidade e presenccedila

que fizeram toda a diferenccedila obrigado professor

Por uacuteltimo agrave minha famiacutelia pelo encorajamento pais irmatilde e sogros Um obrigado

especial ao meu sogro Aires Pereira pelas brincadeiras que proporcionou agrave minha filha

entretendo-a para que eu pudesse estudar e desenvolver esta tese

Agrave minha esposa Nadia Pires e a minha filha Lara merecem uma menccedilatildeo especial

Agradeccedilo agrave minha esposa pelo apoio prestado nesta etapa da minha vida obrigada pelo amor

pela paciecircncia pelo otimismo pela motivaccedilatildeo e por me ter acompanhado nas horas mais

difiacuteceis desta etapa estarei eternamente grato Na minha ausecircncia soube sempre ser o Pai e a

Matildee que uma famiacutelia precisa

Agrave minha querida filha um agradecimento muito especial e um pedido de desculpas

em simultacircneo Obrigada pelos sorrisos pelos abracinhos pelos beijinhos enfimhellip por todos

os carinhos que soacute uma menina doce como ela sabe dar e que me ajudaram a ultrapassar os

momentos mais difiacuteceis desta jornada Desculpa pela falta de paciecircncia e por todos os

momentos que natildeo podemos estar juntos

VIII

Resumo

O HP CloudSystem Matrix (CSM) faz parte de uma pilha de software HP para computaccedilatildeo

na cloud que cobre todos os niacuteveis de serviccedilo considerados relevantes IaaS (Infra-estrutura

como Serviccedilo) PaaS (Plataforma como Serviccedilo) e SaaS (Software como Serviccedilo) Apesar de

ser a base desta pilha ie oferecer o niacutevel IaaS eacute um produto extremamente complexo pois

interage com todas as infra-estruturas as computacionais (ie servidores fiacutesicos ou virtuais)

as de armazenamento (do disco interno aos discos em servidores de armazenamento) e as de

interligaccedilatildeo (redes Ethernet e FC)

Apesar de toda a complexidade da infra-estrutura real e virtual que gere o CSM

torna conceptualmente simples a entrega aos consumidores de infra-estruturas para suporte a

aplicaccedilotildees 1) o administrador define que recursos da infra-estrutura estatildeo disponiacuteveis para

integrar a ldquooferta cloudrdquo 2) o arquitecto define templates para as arquitecturas que considera

adequadas para necessidades dos consumidores (eg arquitectura 3-tier para uma soluccedilatildeo

ERP - Enterprise Resource Planning) e 3) o consumidor escolhe o template que melhor se

ajusta agraves suas necessidades e efectua um pedido de aprovisionamento da infra-estrutura

A interacccedilatildeo entre os diferentes interlocutores (1) (2) (3) e o CSM eacute

fundamentalmente realizada sobre portais contudo especialmente no caso do consumidor o

portal disponibilizado pelo produto tem sido considerado como ldquocomplexordquo por apresentar

informaccedilatildeo demasiado teacutecnica ldquoriacutegidordquo por natildeo poder ser customizado (por exemplo para

suprimir a ldquoinformaccedilatildeo demasiado teacutecnicardquo) e ldquogrosseirordquo por natildeo permitir a especificaccedilatildeo

mais fina das caracteriacutesticas da infra-estrutura que se quer aprovisionar (por exemplo permite

variar o nuacutemero de CPUs e a quantidade de memoacuteria de um servidor mas natildeo permite

escolher a tecnologia dos discos que se pretendem aprovisionar eg SSD em vez de FC 15K

em vez de 10K rpm) Assim o objectivo final da dissertaccedilatildeo eacute desenvolver um framework

que permita com base num conjunto (extensiacutevel e configuraacutevel) de opccedilotildees preacute-definidas e

em layouts customizaacuteveis definir portais que se integram com o HP CloudSystem Matrix e

que permitam aos utilizadores (consumidores) uma interacccedilatildeo natildeo soacute mais simples mas

tambeacutem mais versaacutetil

Neste trabalho satildeo abordados os modelos de serviccedilo e de implantaccedilatildeo (deployment)

de clouds a virtualizaccedilatildeo (natildeo somente de servidores mas tambeacutem de armazenamento e de

redes) pedra base de toda a tecnologia cloud e os moacutedulos e APIs disponiacuteveis para

interoperar com o CSM nomeadamente API-MOE e API-VMware Por fim eacute apresentada

uma framework com uma arquitectura multicamada (N-tier) implementada com tecnologias

padratildeo TCPIP para a pilha de comunicaccedilotildees REST (Representational State Transfer) para

regular a interacccedilatildeo e troca de informaccedilatildeo clienteservidor e XML (Extensible Markup

Language) e JSON (JavaScript Object Notation) como formatos de dados

Palavras-chave Computaccedilatildeo na nuvem Portal de interacccedilatildeo Traduccedilatildeo Binaacuteria

Virtualizaccedilatildeo de Servidores Virtualizaccedilatildeo de Armazenamento e Virtualizaccedilatildeo da Rede

IX

Abstract

The HP CloudSystem Matrix (CSM) is a part of the HP software stack for cloud computing

that covers all relevant service levels IaaS (Infrastructure as a Service) PaaS (Platform as a

Service) and SaaS (Software as a Service) Although it rests at the base of the stack ie only

offers the IaaS level it is an extremely complex product since it interacts with all

infrastructures computing (ie physical and virtualized servers) storage (from individual

drives to disk arrays) and networking (Ethernet and FC networks)

Despite all the (real) infrastructureacutes complexity that CSM deals with the delivery (to

end users ndash aka infrastructure consumers) of infrastructures for application support

becomes a conceptually simple task (1) the administrator defines which infrastructure

resources are available to integrate the cloud offer (2) the architect defines templates for

those architectures he deems appropriate for the end users (eg 3-tier architecture for an ERP

- Enterprise Resource Planning - solution) (3) the end user chooses the template that better

suits its needs and then submits a request for the delivery of the infrastructure

The interaction between the different counterparts (1) (2) and (3) and the CSM is

fundamentally realised over portals however especially in the case of the end user the portal

has been considered complex since it presents too much technical information rigid

since it is not customizable (eg to suppress the too much technical information) and

coarse since it does not allow a finer-graned specification of the infrastructureacutes attributes

that are required (eg it allows to change the number of CPUs and the amount of memory in

the server but it does not allow one to choose the disk technologies eg SSD instead of FC

or 15K instead 10K rpm) Therefore the final goal of this dissertation is to develop a

framework that allows with a set of pre-defined settings and customizable layouts to define

portals that are integrated with HP CloudSystem Matrix and enables a simpler user

interaction

In this work we studied service and cloud implementation models virtualization (not

only server virtualization but also storage and network virtualization) the foundation of all

cloud technologies modules and APIs that interoperate with CSM namely API-MOE and

API-VMware Finally we present a framework (prototype) implemented in a multi-layer

architecture (N-tier) with standard technologies TCPIP for the communication stack REST

(Representational State Transfer) to control the interaction and the clientserver information

flows and XML (eXtensible Markup Language) and JSON (JavaScript Object Notation) for

the data formats

Keywords Cloud Computing Interaction Portal Binary Translation Server Virtualization

Storage Virtualization and Network Virtualization

X

Glossaacuterio e Lista de siglas

API Application Programming Interface

BIOS Basic InputOutput System

CC Computaccedilatildeo em Cloud

CIFS Common Internet File System

CL Command Line

CMS Console Monitor System

CP Control Program

CPU Central Processing Unit

CSS Cascading Style Sheets

DAS Direct-Attached Storage

Dom0 Domiacutenio 0 do XenServer

DomU Domiacutenio U do XenServer

DVFilter Distributed Virtual Filter

DynaRecs Dynamic Recompilation

EIDE Enhanced Integrated Drive Electronics

FC Fibre Channel

FCoE Fibre Channel over Ethernet

FTP File Transfer Protocol

GUEST Sistema Virtualizado

HD Hard Drive

HOST Servidor Hospedeiro

HP Hewlett-Packard

HPCMS HP Console Management System

CSM HP CloudSystem Matrix (Hewlett-Packard)

IC Insight Control (Hewlett-Packard)

ID Insight Dynamics (Hewlett-Packard)

IO Infrastructure Orchestration (Hewlett-Packard)

SA Server Automation (Hewlett-Packard)

SS SiteScope (Hewlett-Packard)

UD Universal Discovery (Hewlett-Packard)

HPVM HP Integrity Virtual Machine

VMAN Virtualization Manager (Hewlett-Packard)

VMMGR HP Integrity Virtual Machines Manager (Hewlett-Packard)

XI

HTTP HyperText Transfer Protocol

HVM Virtualizaccedilatildeo assistida por hardware

IO InputOutput

IaaS Infrastructure as a Service

IBM International Business Machines Corporation

IDE Integrated Development Environment

iSCSI Internet Small Computer System Interface

J2EE Java2 Platform Enterprise Edition

JS JavaScript

JSON JavaScript Object Notation

JVM Java Virtual Machine

LAN Local Area Network

LUN Logical Unit Number

LVM Logical Volume Manager

MAC Apple Macintosh

MOE Matrix Operating Environment

MSCS Microsoft Cluster Server

NAS Network Attached Storage

nbAPI Northbound API

NetApp Network Appliance

NFS Network File System

NIC Adaptador de rede (Network Interface Controller)

NVRAM Non-Volatile Random Access Memory

PaaS Plataform as a Service

PATA Parallel Advanced Technology Attachment

pNIC Physical Network Interface Controller

POSIX Portable Operating System Interface

PV Para-Virtualizaccedilatildeo

PVHVM Para-Virtualizaccedilatildeo + Virtualizaccedilatildeo assistida por hardware

QOS Quality Of Service

RAID Redundant Array of Independent Disks

RAM Random Access Memory

REST REpresentational State Transfer

RPC Remote Procedure Call

SaaS Software as a Service

XII

SAN Storage Area Network

SAP Sistemas Aplicaccedilotildees e Produtos

SAS Serial Attached SCSI

SATA Serial ATA

SCSI Small Computer System Interface

SCVMM System Center Virtual Machine Manager

SF Sistema de Ficheiros

SLA Service Level Agreement

SMTP Simple Mail Transfer Protocol

SO Sistema Operativo

SOA Service-Oriented Architecture

SOAP Simple Object Access Protocol

SSD Solid-State Drive

TCPIP Transmission Control ProtocolInternet Protocol

TI Tecnologias de Informaccedilatildeo

URI Uniform Resource Identifier

URL Uniform Resource Locator

UUID Identificador Uacutenico Universal

VDI Virtual Disk Image

vDS vNetwork Distributed Switch

VHD Virtual Hard Disk (Microsoft)

VLAN Virtual LAN

VM Virtual Machine

VMBus Virtual Machine Buss

VMDK Virtual Machine Disk (VMware)

VMFS Virtual Machine File System

VMM hipervisor (tambeacutem designado Virtual Machine Manager)

vNIC Virtual Network Interface Controller

VSC Virtual Service Client

VSP Virtual Service Provider

vSwitch Virtual Switch

WOA Web-Oriented Architecture

WS Web Service

WWW World Wide Web

XML Extensible Markup Language

XIII

Iacutendice

1 Introduccedilatildeo 1

11 Descriccedilatildeo e contexto 1

12 Objectivos 3

13 Organizaccedilatildeo 3

14 Contribuiccedilotildees 4

15 Resumo 5

2 Virtualizaccedilatildeo 6

21 Evoluccedilatildeo histoacuterica 6

22 Virtualizaccedilatildeo de Servidores 7

221 VMware (VMware Inc) 8

222 Xen (Citrix Systems Inc) 9

223 Integrity VM (HP) 10

224 Hyper-V (Microsoft) 11

23 Virtualizaccedilatildeo do Armazenamento 12

231 Armazenamento em ambientes virtualizados 14

24 Virtualizaccedilatildeo da Rede 16

25 Resumo 18

3 Computaccedilatildeo na Cloud 19

31 Periacutemetro de uma cloud 19

32 Modelos de serviccedilo 20

33 Resumo 22

4 HP Cloud Stack 23

41 HP CloudSystem Matrix 23

42 Modelos de interacccedilatildeo com o HP CSM 25

43 Papeacuteis e Portais de interacccedilatildeo 26

44 Conceitos fundamentais da plataforma HP CSM 28

45 Limitaccedilotildees do HP CloudSystem Matrix 30

46 Resumo 31

5 O framework e a sua Realizaccedilatildeo 32

51 Arquitectura 32

52 Integraccedilatildeo da framework no HP CSM (MOE e VMware) 33

53 Um desenho guiado pela Interface Utilizador 34

54 Camada de apresentaccedilatildeo 38

XIV

541 Do lado do cliente 38

542 Do lado do servidor 39

543 Lista de primitivas na oacuteptica dos recursos 40

55 Camada ServiccedilosLoacutegica 41

551 Camada de Serviccedilos 42

552 Camada Loacutegica 42

56 Camada de Dados 68

561 Dados natildeo persistentes 68

562 Dados persistentes 69

57 Feedback 72

58 Questotildees principais 73

59 Visatildeo global 75

510 Resumo 76

6 Consideraccedilotildees Finais 77

61 Conclusotildees 78

62 Trabalho futuro 79

63 Resumo 80

Referecircncias bibliograacuteficas 81

XV

Iacutendice de Figuras

Figura 1 - Ambiente natildeo Virtualizado 1

Figura 2 - Ambiente Virtualizado 1

Figura 3 - Infra-estrutura CSM 2

Figura 4 - Arquitectura VMware ESXi (Tipo-1) 9

Figura 5 - Arquitectura XenServer 10

Figura 6 - Arquitectura Hyper-V 11

Figura 7 - Redundant Array Independent Disks (RAID) 12

Figura 8 - Storage Area Network (SAN) 13

Figura 9 - Network Attached Storage (NAS) 13

Figura 10 - Datastore e VMs 14

Figura 11 - Sistema de Ficheiros VMFS 15

Figura 12 - Network File System (NFS) 15

Figura 13 - Infra-estrutura de rede tradicional 16

Figura 14 - Infra-estrutura de rede virtual 17

Figura 15 - vNetwork Distributed Switch ndash vDS 17

Figura 16 - Distributed Virtual Filter (DVFilter) 18

Figura 17 - Relaccedilatildeo entre serviccedilos e responsabilidades 21

Figura 18 - Relaccedilotildees e papeacuteis dos envolventes nos modelos de Cloud Computing 22

Figura 19 - Contributos CloudStack 23

Figura 20 - Desenho publicaccedilatildeo e implementaccedilatildeo do cataacutelogo de serviccedilos 24

Figura 21 - Infra-estrutura HP CloudSystem Matrix 25

Figura 22 - Utilizadores de TI em cloud e respectivos papeacuteis (roles) 26

Figura 23 - Portal do Administrador 27

Figura 24 - Portal do Arquitecto 27

Figura 25 - Portal do Utilizador final 28

Figura 26 - Arquitectura n-tier 32

Figura 27 - Relaccedilatildeo dos VMIDs (WebService-MOE-vCenter) 33

Figura 28 - Estrutura em aacutervore do menu lateral esquerdo 35

Figura 29 - Portal 36

Figura 30 - Diagrama de Sequecircncia (Criaccedilatildeo de um Serviccedilo) 37

Figura 31 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull 41

Figura 32 - Execuccedilatildeo tab ldquoTemplaterdquo 45

Figura 33 - Execuccedilatildeo tab ldquoServicerdquo 48

Figura 34 - Execuccedilatildeo tab ldquoServerGroupsrdquo 51

Figura 35 - Execuccedilatildeo tab ldquoServerrdquo 56

XVI

Figura 36 - Execuccedilatildeo tab ldquoDisksrdquo 60

Figura 37 - Execuccedilatildeo tab ldquoSoftwarerdquo 61

Figura 38 - Execuccedilatildeo tab ldquoInterfacerdquo 62

Figura 39 - Listagem das redes existentes 64

Figura 40 - Execuccedilatildeo tab ldquoSnapshotrdquo 65

Figura 41 - Execuccedilatildeo tab ldquoRequestsrdquo 66

Figura 42 - Execuccedilatildeo tab ldquoServerPoolsrdquo 68

Figura 43 - Realm JAAS (Java Authentication and Authorization Service) 69

Figura 44 - Modelo ER 71

Figura 45 - Mensagens SOAP na invocaccedilatildeo de processos do MOE 75

Figura 46 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull do WEBSERVICE 76

Figura 47 - VMM ou hypervisor do Tipo-2 87

Figura 48 - VMM ou hypervisor do ldquohiacutebridordquo 88

Figura 49 - VMM ou hypervisor do Tipo-1 88

Figura 50 - Emulaccedilatildeo de Hardware 89

Figura 51 - Virtualizaccedilatildeo Completa 90

Figura 52 - Para-Virtualizaccedilatildeo 91

Figura 53 - Virtualizaccedilatildeo assistida por Hardware 91

Figura 54 - LUN num SAN iSCSI ou SAN FC 99

Figura 55 - Network File System (NFS) 100

Figura 56 - Projecto ldquoDynamic Web Projectrdquo no eclipse 102

Figura 57 - Plataforma Java 107

Figura 58 - Comando ldquojava -versionrdquo 108

Figura 59 - Instalaccedilatildeo da Plataforma Java 109

Figura 60 - Variaacutevel de sistema ldquoPathrdquo 109

Figura 61 - Variaacutevel de sistema ldquoCLASSPATHrdquo 110

Figura 62 - Variaacutevel de sistema ldquoJAVA_HOMErdquo 110

Figura 63 - Directoria de instalaccedilatildeo do Servidor Apache Tomcat 111

Figura 64 - Link localhost Apache Tomcat 112

Figura 65 - Add repository 113

Figura 66 - Dynamic Web Project 114

Figura 68 - Propriedades do Dynamic Web Project 115

Figura 69 - Webxml do Dynamic Web Project 115

Figura 70 - Directoria base do Dynamic Web Project 116

Figura 71 - Criar uma classe 117

Figura 72 - Servidor Apache Tomcat dentro do Eclipse 118

Figura 73 - Execuccedilatildeo no Browser 118

XVII

Figura 74 - Projecto base MOE 119

Figura 75 - Importaccedilatildeo do projecto real MOE 119

Figura 76 - Projecto real MOE 120

Figura 77 - Ficheiro ldquoadminUsersListtxtrdquo 121

Figura 78 - Ficheiro ldquohp-io-v5wsdlrdquo 121

Figura 79 - WSDL do HPMOE 121

Figura 80 - Ficheiro ldquologinconfigrdquo 122

Figura 81 - Ficheiro ldquologinconfigrdquo 122

Figura 82 - Ficheiro ldquovmwareAcesstxtrdquo 123

Figura 83 - Servidor Apache Tomcat dentro do Eclipse 123

Figura 84 - Compilaccedilatildeo do projecto MOE 124

Figura 85 - Login page MOE 124

Figura 86 - Data page MOE 124

Figura 87 - Detalhes gerais do Template ldquoTemplate_3srvrdquo 125

Figura 88 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo 126

Figura 89 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 126

Figura 90 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 127

Figura 91 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 127

Figura 92 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 127

Figura 93 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo 128

Figura 94 - Criaccedilatildeo do serviccedilo ldquomyServicerdquo 128

Figura 95 - Lista de pedidos do utilizador 129

Figura 96 - Eventual cancelamento de um pedido 129

Figura 97 - Serviccedilo ldquomyServicerdquo criado 130

Figura 98 - Listagem dos acessos remotos 130

Figura 99 - Acesso remoto na tab ldquoServerrdquo 131

Figura 100 - Acesso remoto por RDP 131

Figura 101 - Acesso remoto por Telnet 131

Figura 102 - Acesso remoto por VMRC 131

Figura 103 - Menu lateral esquerdo ldquoMOE Helprdquo 132

Figura 104 - Menu lateral esquerdo ldquoMOE Helprdquo 132

Figura 105 - ldquoImport xmlrdquo help 133

Figura 106 - Template info Tab 134

Figura 107 - Service info Tab 134

Figura 108 - ServerGroup info Tab 135

Figura 109 - Server info Tab 135

Figura 110 - Disk info Tab 136

XVIII

Figura 111 - Software info Tab 136

Figura 112 - Interface info Tab 137

Figura 113 - Request info Tab 137

Figura 114 - About info Tab 138

Figura 115 - Team info Tab 138

Figura 116 - Javadoc info Tab 139

Figura 117 - ldquoMapsrdquo da relaccedilatildeo Host VM 140

Figura 118 - ldquoMapsrdquo da relaccedilatildeo Host Network 141

Figura 119 - ldquoMapsrdquo da relaccedilatildeo Host Datastore 142

Figura 120 - ldquoMapsrdquo da relaccedilatildeo VM Network 143

Figura 121 - ldquoMapsrdquo da relaccedilatildeo Host Datastore 144

Figura 122 - Detalhes gerais do Template ldquoTemplate_3srvrdquo 146

Figura 123 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo 146

Figura 124 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 147

Figura 125 - Detalhes dos Custos do Servidor ldquoSvrGrp1-1rdquo 147

Figura 126 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 147

Figura 127 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 147

Figura 128 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo 148

Figura 129 - Ficheiro ldquoTemplateListxmlrdquo 148

Figura 130 - Ficheiro ldquoTemplate_3srvxmlrdquo 149

Figura 131 - Importaccedilatildeo de um Template em formato XML 149

Figura 132 - InfoWindow ldquoDelete Templaterdquo 149

Figura 133 - InfoWindow com a visualizaccedilatildeo do Template em XML 150

Figura 134 - Ficheiro ldquoTemplate_3srv_ServiceListxmlrdquo 150

Figura 135 - Criaccedilatildeo de um Serviccedilo com base no Template ldquoTemplate_3srvlrdquo 151

Figura 136 - Lista de todos os pedidos do utilizador 151

Figura 137 - Eventual cancelamento de um pedido 152

Figura 138 - Lista dos pedidos resultantes da relaccedilatildeo Templateutilizador 152

Figura 139 - Detalhes do Serviccedilo ldquomyServicerdquo do Template ldquoTemplate_3srvrdquo 153

Figura 140 - Ficheiro ldquoallServicesListxmlrdquo 153

Figura 141 - Ficheiro ldquomyServicexmlrdquo 154

Figura 142 - InfoWindow com a visualizaccedilatildeo do Serviccedilo em XML 154

Figura 143 - Remoccedilatildeo de um Serviccedilo 154

Figura 144 - Power ON de um Serviccedilo 155

Figura 145 - Power OFF de um Serviccedilo 155

Figura 146 - Power Cycle de um Serviccedilo 155

Figura 147 - Activaccedilatildeo de um Serviccedilo 155

XIX

Figura 148 - Desactivaccedilatildeo de um Serviccedilo 155

Figura 149 - Lista dos Service Actions 156

Figura 150 - Lista dos Acessos Remotos do um Serviccedilo 156

Figura 151 - Acesso remoto por RDP 156

Figura 152 - Acesso remoto por Telnet 156

Figura 153 - Acesso remoto por VMRC 157

Figura 154 - Listagem dos pedidos por Serviccedilo 157

Figura 155 - Detalhes do Grupo de Servidores ldquoSvrGrp1rdquo do Serviccedilo ldquomyServicerdquo 158

Figura 156 - Ficheiro ldquoSvrGrp1xmlrdquo 158

Figura 157 - InfoWindow com a visualizaccedilatildeo do Grupo de Servidores em XML 159

Figura 158 - Adiccedilatildeo de Servidores ao Grupo de Servidores 159

Figura 159 - Remoccedilatildeo de Servidores ao Grupo de Servidores 159

Figura 160 - Ediccedilatildeo de Servidores ao Grupo de Servidores 160

Figura 161 - Power ON de um ServerGroup 160

Figura 162 - Power OFF de um ServerGroup 160

Figura 163 - Power Cycle de um ServerGroup 160

Figura 164 - Activaccedilatildeo de um ServerGroup 161

Figura 165 - Desactivaccedilatildeo de um ServerGroup 161

Figura 166 - Listagem de todos os Snapshots existentes no Grupo de Servidores 161

Figura 167 - Acccedilotildees SnapshotServidor 161

Figura 168 - Revert Snapshot 161

Figura 169 - Delete Snapshot 162

Figura 170 - Create Snapshot 162

Figura 171 - Lista de ldquoStereotype Disksrdquo 162

Figura 172 - Adicionar um disco virtual ldquoDisk62rdquo ao Grupo de Servidores 162

Figura 173 - Adicionar um disco fiacutesico ldquoDisk788rdquo ao Grupo de Servidores 163

Figura 174 - Detalhes do Servidor ldquoSvrGrp1-1rdquo do Serviccedilo ldquomyServicerdquo 163

Figura 175 - Ficheiro ldquohostmygostr01_lsxmlrdquo 164

Figura 176 - InfoWindow com a visualizaccedilatildeo do Servidor em XML 164

Figura 177 - Remoccedilatildeo de um Servidor 165

Figura 178 - Ediccedilatildeo de um Servidor 165

Figura 179 - Power ON de um Servidor 165

Figura 180 - Power OFF de um Servidor 165

Figura 181 - Power Cycle de um Servidor 166

Figura 182 - Activaccedilatildeo de um Servidor 166

Figura 183 - Desactivaccedilatildeo de um Servidor 166

Figura 184 - Create Snapshot 166

XX

Figura 185 - Pools de Servidores 167

Figura 186 - Criar uma Pools de Servidores 167

Figura 187 - Remoccedilatildeo de uma Pools de Servidores 167

Figura 188 - InfoWindo de aviso ao administrador 167

Figura 189 - Informaccedilatildeo dos hosts fiacutesicos 168

Figura 190 - Sessotildees Remotas num Servidor 168

Figura 191 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 169

Figura 192 - Criaccedilatildeo de um ldquoStereotype Disksrdquo 169

Figura 193 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 170

Figura 194 - Lista de Software 170

Figura 195 - Detalhes do Software 171

Figura 196 - Detalhes do Interface NIC0rdquo do Servidor ldquoSvrGrp1-1rdquo 171

Figura 197 - Listagem de todas as redes 172

Figura 198 - Detalhe da rede 172

Figura 199 - Adiccedilatildeo de um IP flutuante agrave Interface ldquoNIC0rdquo 172

Figura 200 - Remoccedilatildeo de um IP flutuante pertencente agrave Interface ldquoNIC0rdquo 173

Figura 201 - Mover um IP flutuante para a Interface ldquoNIC0rdquo 173

XXI

Iacutendice de Tabelas

Tabela 1 - Funccedilotildees associadas agrave inicializaccedilatildeo do Webservice 43

Tabela 2 - Funccedilotildees associadas ao Template 47

Tabela 3 - Funccedilotildees associadas ao Serviccedilo 50

Tabela 4 - Funccedilotildees associadas ao Grupo de Servidores 54

Tabela 5 - Funccedilotildees associadas aos Servidores 58

Tabela 6 - Funccedilotildees associadas aos Discos 60

Tabela 7 - Funccedilotildees associadas ao Software 62

Tabela 8 - Funccedilotildees associadas agraves Interfaces 63

Tabela 9 - Funccedilotildees associadas agraves Redes 65

Tabela 10 - Funccedilotildees associadas aos Snapshots 65

Tabela 11 - Funccedilotildees associadas aos Requests 67

Tabela 12 - Funccedilotildees associadas agraves Pools de Servidores 68

Tabela 13 - Dados gerais VMWARE 93

Tabela 14 - Detalhes VMWARE 93

Tabela 15 - Dados gerais Citrix 94

Tabela 16 - Dados detalhados Citrix 94

Tabela 17 - Dados gerais HP 95

Tabela 18 - Dados detalhados HP 95

Tabela 19 - Dados gerais Microsoft 96

Tabela 20 - Dados detalhados Microsoft 96

XXII

Iacutendice de Anexos

Anexo A (Virtualizaccedilatildeo Vantagens e inconvenientes) 84

Anexo B (Virtualizaccedilatildeo Arquitectura) 87

Anexo C (Virtualizaccedilatildeo Tipos de Implementaccedilatildeo) 89

Anexo D (Detalhes da plataforma e restriccedilotildees da VMware) 93

Anexo E (Detalhes da plataforma e restriccedilotildees da Citrix) 94

Anexo F (Detalhes da plataforma e restriccedilotildees da HP) 95

Anexo G (Detalhes da plataforma e restriccedilotildees da Microsoft) 96

Anexo H (Ambiente de armazenamento VMware ESXi e Citrix Xen) 97

Anexo I (Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo) 102

Anexo J (Ferramentas de desenvolvimento WebService) 107

Anexo K (Criar e executar um ldquoDynamic Web Projectrdquo no Eclipse) 114

Anexo L (Importar configurar e executar o RESTWEBSERVICE - MOE) 119

Anexo M (Criaccedilatildeo de um Serviccedilo e ligaccedilatildeo agraves VMs) 125

Anexo N (MOE Help) 132

Anexo O (VMware - Virtual Machine Resources) 140

Anexo P (Scenario view) 146

1

1 Introduccedilatildeo

11 Descriccedilatildeo e contexto

A evoluccedilatildeo do poder de processamento dos computadores actuais eacute notoacuteria nestes

uacuteltimos anos Infelizmente uma grande parte desse poder natildeo eacute efectivamente usada

no quotidiano havendo por isso uma crescente preocupaccedilatildeo com os desperdiacutecios que

resultam dessa subutilizaccedilatildeo Tecnologias como a virtualizaccedilatildeo em primeiro lugar e

a Cloud Computing como estaacutegio mais avanccedilado desta satildeo formas de reduccedilatildeo de tais

desperdiacutecios

Virtualizaccedilatildeo

Observando as duas primeiras figuras rapidamente ficamos com a ideia do

que eacute real figura 1 e do que eacute virtual figura 2 Assim entenda-se o real como algo

com caracteriacutesticas fiacutesicas concretas palpaacuteveis e o virtual associado a algo simulado

abstracto uma imitaccedilatildeo do real Eacute aqui que se enquadra a virtualizaccedilatildeo o simular de

um ambiente real que suporta todo um ambiente que vai do sistema de operaccedilatildeo agraves

aplicaccedilotildees sem necessidade de acesso agrave maacutequina real que neste caso funciona como

hospedeira desta tecnologia

A virtualizaccedilatildeo encaixa-se num mundo ilusoacuterio de vaacuterias maacutequinas virtuais

(Virtual Machines - VMs) independentes e isoladas entre si cada uma com um

Sistema Operativo (SO) proacuteprio e potencialmente diferente do SO das demais

Figura 1 - Ambiente natildeo Virtualizado

Figura 2 - Ambiente Virtualizado

2

Cloud Computing

As estrateacutegias de consolidaccedilatildeo de servidores propiciadas pelo uso de

virtualizaccedilatildeo conduzem de facto agrave reduccedilatildeo de custos de hardware software e

energia mas natildeo evitam (e podem ateacute aumentar) o nuacutemero de servidores agora

virtuais a gerir acrescentando o custo humano agrave equaccedilatildeo A adopccedilatildeo do paradigma

cloud (a ver na secccedilatildeo 2) eacute o passo a dar para manter o custo total sob controlo

O HP CloudSystem Matrix (CSM) [1] faz parte de uma pilha de software HP

para computaccedilatildeo na cloud que cobre todos os niacuteveis de serviccedilo considerados

relevantes IaaS (Infra-estrutura como Serviccedilo) PaaS (Plataforma como Serviccedilo) e

SaaS (Software como Serviccedilo) Apesar de ser a base desta pilha ie oferecer o niacutevel

IaaS eacute um produto extremamente complexo pois interage com todas as infra-

estruturas as computacionais (ie servidores fiacutesicos ou virtuais) as de

armazenamento (do disco interno aos discos em servidores de armazenamento) e as

de interligaccedilatildeo (redes Ethernet e FC)

Apesar de toda a complexidade da infra-estrutura real e virtual que gere o

CSM torna conceptualmente simples a entrega aos consumidores de infra-estruturas

para suporte a aplicaccedilotildees 1) o administrador define que recursos da infra-estrutura

estatildeo disponiacuteveis para integrar a ldquooferta cloudrdquo 2) o arquitecto define templates para

as arquitecturas que considera adequadas para necessidades dos utilizadores

consumidores (eg arquitectura 3-tier para uma soluccedilatildeo ERP1) e 3) o consumidor

escolhe o template que melhor se ajusta agraves suas necessidades e efectua um pedido de

aprovisionamento de uma infra-estrutura

Figura 3 - Infra-estrutura CSM

A interacccedilatildeo entre os diferentes interlocutores (1) (2) (3) e o CSM eacute

fundamentalmente realizada sobre portais contudo especialmente no caso do

utilizador-consumidor o portal disponibilizado pelo produto tem sido considerado

1 ERP (Enterprise Resource Planning) cobre uma larga fatia das necessidades de uma empresa Permite uma

visatildeo integrada em tempo real dos seus principais processos de negoacutecios

3

como ldquocomplexordquo por apresentar informaccedilatildeo demasiado teacutecnica ldquoriacutegidordquo por natildeo

poder ser customizado (por exemplo para suprimir a ldquoinformaccedilatildeo demasiado

teacutecnicardquo) e ldquogrosseirordquo por natildeo permitir a especificaccedilatildeo mais fina das caracteriacutesticas

da infra-estrutura que se quer aprovisionar (por exemplo permite variar o nuacutemero de

CPUs e a quantidade de memoacuteria de um servidor mas natildeo permite escolher a

tecnologia dos discos que se pretendem aprovisionar eg SSD (Solid-State Drive)

em vez de FC 15K em vez de 10K RPM)

12 Objectivos

O objectivo desta tese eacute desenvolver um framework que permita com base num

conjunto (extensiacutevelconfiguraacutevel) de opccedilotildees preacute-definidas e em layouts

customizaacuteveis definir portais que se integram com o HP CloudSystem Matrix e que

permitam aos utilizadores (consumidores IaaS) uma interacccedilatildeo mais simples praacutetica e

organizada natildeo soacute na visualizaccedilatildeo de toda a informaccedilatildeo mas tambeacutem das acccedilotildees

possiacuteveis de serem executadas nos recursos disponibilizados que satildeo ampliadas face agrave

oferta disponiacutevel no portal standard do CSM

Neste trabalho foram estudados modelos de serviccedilo e de implantaccedilatildeo

(deployment) de clouds a virtualizaccedilatildeo (natildeo somente de servidores mas tambeacutem de

armazenamento e de redes) pedra base de toda a tecnologia cloud e os moacutedulos e

APIs disponiacuteveis para interoperar com o CSM nomeadamente a API-MOE e a API-

VMware para desenvolver um framework com uma arquitectura multicamada (N-tier)

sobre TCPIP e usando o protocolo REST (Representational State Transfer) para troca

de informaccedilatildeo

13 Organizaccedilatildeo

O presente trabalho encontra-se organizado em 6 secccedilotildees que vatildeo desde o estudo

preacutevio das diferentes tecnologias ateacute agraves Consideraccedilotildees finais tidas como conclusatildeo

Assim a secccedilatildeo 1 eacute a presente introduccedilatildeo onde se apresenta a virtualizaccedilatildeo

como tecnologia nuclear ao trabalho enunciam-se os objectivos a organizaccedilatildeo de

todo o relatoacuterio e as suas contribuiccedilotildees

Na secccedilatildeo 2 eacute feita uma abordagem agrave virtualizaccedilatildeo desde a sua evoluccedilatildeo

histoacuterica culminando com a visatildeo actual das quatro tecnologias mais representativas

no mercado VMware Citrix HP e Microsoft Aborda-se natildeo soacute a virtualizaccedilatildeo de

servidores mas tambeacutem a de armazenamento e de rede

Na secccedilatildeo 3 apresenta-se uma nova tecnologia computaccedilatildeo na Cloud

resultado da uniatildeo da virtualizaccedilatildeo e moacutedulos de orquestraccedilatildeo Satildeo abordados os seus

modelos de implementaccedilatildeo e os diferentes niacuteveis de serviccedilo que podem ser oferecidos

neste paradigma

Na secccedilatildeo 4 descreve-se uma nova tecnologia HP Cloud Stack como pilha de

software e hardware Satildeo abordadas tecnologias como HP CloudSystem Matrix os

4

seus modelos de interacccedilatildeo papeis e portais conceitos fundamentais para perceber o

restante relatoacuterio e as limitaccedilotildees desta uacuteltima tecnologia razatildeo de ser deste trabalho

Na secccedilatildeo 5 eacute apresentada a framework (protoacutetipo) desde a arquitectura

implementaccedilatildeo dos diferentes moacutedulos execuccedilatildeo nos cenaacuterios possiacuteveis e coacutedigo

principal e finalmente feedback dos orientadores e redefiniccedilatildeo de objectivos ou

estrateacutegias de realizaccedilatildeo e por uacuteltimo a discussatildeo da relaccedilatildeo entre os serviccedilos e

funcionalidades do HP MOE e a framework implementada

Na secccedilatildeo 6 satildeo apresentadas as conclusotildees sobre o trabalho realizado

perspectivas para desenvolvimentos futuros fazendo-se uma discussatildeo final sobre as

dificuldades encontradas na implementaccedilatildeo

14 Contribuiccedilotildees

Todo o estudo de conceitos relaccedilotildees e teorias tem sempre como objectivo uacuteltimo a

aquisiccedilatildeo de mais conhecimento e acima de tudo aplicabilidade Nesse intuito a

principal contribuiccedilatildeo deste trabalho estaacute directamente relacionada com o principal

objectivo um framework modelo de acesso raacutepido intuitivo organizado

personalizaacutevel e acima de tudo praacutetico no acesso a recursos de uma infra-estrutura

Apresentam-se de seguida todas as contribuiccedilotildees identificadas

Um modelo simples com uma curta curva de aprendizagem e uma

flexibilidade com acessos proacuteprios individuais e personalizados a cada utilizador O

acesso a toda a informaccedilatildeorecursos eacute feita numa visualizaccedilatildeo das componentes

principais em aacutervore permitindo assim uma raacutepida visualizaccedilatildeo das configuraccedilotildees de

todo o Serviccedilo criado e um acesso raacutepido e intuitivo aos detalhes de cada componente

Visualizaccedilatildeo imediata do Cataacutelogo de Serviccedilos com todos os Templates e a

correspondente associaccedilatildeo dos serviccedilos por Template A descriccedilatildeo eacute a mesma

relativamente aos recursos associados a cada Serviccedilo A informaccedilatildeo visualizada eacute

apenas a necessaacuteria em cada visualizaccedilatildeo e instanciaccedilatildeo

Modelo personalizaacutevel com acccedilotildees como ocultar ou visualizar paineacuteis de

informaccedilatildeo lista de todos os pedidos listagem por Template por Serviccedilo layout de

toda a interface do menu em aacutervore um simples clique e toda o portal fica

personalizaacutevel a um determinado utilizador

Disponibilizaccedilatildeo de todas as acccedilotildees possiacuteveis a cada recurso na tab respectiva

da visualizaccedilatildeo da informaccedilatildeo associada a esse recurso Acccedilotildees acessiacuteveis e raacutepidas

de executar sem menus e submenus com sucessivos cliques que soacute atrasam todo o

processo A acessibilidade aos recursos eacute completa com acccedilotildees de grupo e acccedilatildeo

individuais a cada recurso permitindo assim o verdadeiro aproveitamento de todo o

Serviccedilo criado

Uma informaccedilatildeo hierarquizada e organizada em agrupamentos loacutegicos por

recursos eacute um processo muito faacutecil de seguir e perceber associada a esta

5

disponibilizaccedilatildeo de informaccedilatildeo acccedilotildees que possam ser executadas nesses recursos eacute

o objectivo da simplicidade e performance deste modelo

15 Resumo

Neste capiacutetulo fez-se uma descriccedilatildeo e contexto introdutoacuterio de conceitos como

Virtualizaccedilatildeo Cloud Computing e HP CloudSystem Matrix onde se descreveram as

mais-valias do uso destas tecnologias vantagens e inconvenientes e os papeacuteisfunccedilotildees

dos principais interlocutores Descreveram-se os objectivos desta dissertaccedilatildeo um

framework que solucione e melhore os problemas existentes em modelos

implementados actualmente Foi igualmente descrita toda a organizaccedilatildeo das diferentes

secccedilotildees e por ultimo as contribuiccedilotildees tidas no presente trabalho

6

2 Virtualizaccedilatildeo

21 Evoluccedilatildeo histoacuterica

Os primeiros passos da virtualizaccedilatildeo foram dados aproximadamente haacute meio seacuteculo e

tiveram origem em preocupaccedilotildees como heterogeneidade portabilidade estabilidade e

utilizaccedilatildeo mais eficiente de recursos Tudo comeccedilou na IBM com a sua longa lista de

variantes de uma dada arquitectura-base com as novas geraccedilotildees incompatiacuteveis com as

anteriores com muacuteltiplos SOs (mono-utilizador interactivo batch timesharing etc)

criando insatisfaccedilatildeo nos clientes Como resposta IBM lanccedilou nos anos 60 a

arquitectura 360 com suporte para virtualizaccedilatildeo (ao niacutevel do hardware) e com o

sistema de operaccedilatildeo CPCMS O CP (Control Program) era usado para gerir as VMs

e que executavam o CMS (Console Monitor System) um SO interactivo com uma

interface ldquolinha de comandordquo

Por outro lado um outro tipo de virtualizaccedilatildeo dito virtualizaccedilatildeo de aplicaccedilotildees

procura que uma aplicaccedilatildeo possa ser executada numa variedade de plataformas

distintas que apenas tecircm em comum o sistema de run-time que implementa a VM (natildeo

requer que uma VM seja ldquototalmenterdquo equivalente a uma maacutequina fiacutesica e portanto

capaz de executar um SO) Tal eacute o caso da JVM (Java Virtual Machine) capaz de

executar aplicaccedilotildees desenvolvidas na linguagem Java (nascida em 1990 de um

projecto denominado ldquoStealthrdquo da Sun Microsystems)

A implementaccedilatildeo desta tecnologia tatildeo bem aceite e cada vez mais usada nas

organizaccedilotildees demonstra a mais-valia das propriedades que caracterizam o seu

funcionamento

Isolamento Os processos das diferentes maacutequinas virtuais natildeo podem

interferir entre si ou seja um processo de uma VM natildeo pode interferir

noutra VM nem sequer no proacuteprio sistema hospedeiro (host) que suporta

toda a virtualizaccedilatildeo

Inspecccedilatildeo O gestor de maacutequinas virtuais (Virtual Machine Manager -

VMM) ou hipervisor deve ter acesso e controlo sobre todas as VMs e ateacute

sobre todos os seus processos

Interposiccedilatildeo O VMM deve poder interagir com as VMs controlar as suas

operaccedilotildees ter acesso ao fluxo de instruccedilotildees maacutequina que estas executam e

remover adicionar ou alterar essas instruccedilotildees se for necessaacuterio

Eficiecircncia As instruccedilotildees natildeo privilegiadas devem poder ser executadas

directamente no hardware sem interposiccedilatildeo do VMM

Gestatildeo O VMM deve natildeo soacute permitir manipular uma VM isoladamente

mas tambeacutem executar uma operaccedilatildeo de uma soacute vez sobre muacuteltiplas VMs

Compatibilidade de software A virtualizaccedilatildeo simula uma determinada

plataforma (real) e desse modo todo o software disponiacutevel para essa

plataforma deve poder ser executado ldquotal como estaacute (original)rdquo numa VM

7

Desempenho A sobrecarga (overhead) da camada extra de software pode

sacrificar o desempenho do sistema hospedado (guest) mas a relaccedilatildeo

custobenefiacutecios do uso da virtualizaccedilatildeo deve ser francamente positiva

O Anexo A descreve mais detalhadamente as vantagens e inconvenientes da

virtualizaccedilatildeo

22 Virtualizaccedilatildeo de Servidores

O dinamismo do triacircngulo existente entre fornecedores de software hardware e seus

clientes eacute uma constante Fornecedores como a VMware e a Microsoft publicitam as

suas soluccedilotildees de virtualizaccedilatildeo destacando as mais-valias como a utilizaccedilatildeo eficiente

de recursos partilhados gestatildeo centralizada e migraccedilatildeo dinacircmica os fornecedores de

hardware publicitam menores consumos de energia e maior interoperabilidade e

suporte as organizaccedilotildees olham para este mundo com o objectivo uacuteltimo da eficiecircncia

produtividade e custos A virtualizaccedilatildeo aparece como uma forma eficaz de fazer mais

com menos investimento

A primeira razatildeo pela qual se torna muito interessante executar muacuteltiplas VMs

num uacutenico servidor eacute a mesma pela qual executamos muacuteltiplas aplicaccedilotildees num uacutenico

servidor os recursos estariam se natildeo o fizeacutessemos muito subaproveitados Sendo

assim porque natildeo executar simplesmente muacuteltiplas aplicaccedilotildees no servidor usando um

soacute SO Podemos avanccedilar desde jaacute com uma razatildeo simples os fornecedores certificam

os seus produtos aplicaccedilotildees e serviccedilos apenas para determinados ambientes e pilhas

de software vejamos alguns exemplos 1) a Microsoft natildeo certifica configuraccedilotildees

MSCS (Microsoft Cluster Server) que incluam o serviccedilo Active Domain num dos noacutes

dos cluster 2) a VMware disponibiliza o seu produto de gestatildeo vCenter Server sobre

Unix (SUSE Linux) na forma de uma appliance fornecida pela proacutepria VMware

Assim se dispusermos de um servidor que tem os recursos apropriados para suportar

um noacute MSCS e uma instacircncia vCenter teremos de os instalar sob a forma duas VMs a

correrem sob um hipervisor instalado nesse servidor Uma outra situaccedilatildeo que ldquoobrigardquo

(do ponto de vista financeiro) agrave utilizaccedilatildeo de VMs eacute a de aplicaccedilotildees legacy uma

aplicaccedilatildeo antiga (e eacute demasiado oneroso actualizaacute-la) estaacute certificada apenas para uma

dada versatildeo de SO tambeacutem antigo que natildeo possui drivers adequados para os

servidores mais actuais sendo que o servidor antigo jaacute natildeo tem capacidade para

executar a aplicaccedilatildeo (e eacute muito oneroso mantecirc-lo) Uma soluccedilatildeo simples eacute instalar um

hipervisor num servidor recente criar uma VM e nela instalar a versatildeo antiga do SO

e a aplicaccedilatildeo

A arquitectura da virtualizaccedilatildeo estaacute descrita no Anexo B e os Tipos de

Implementaccedilatildeo no Anexo C uma leitura ajuda a perceber todos estes conceitos e

tecnologias que se seguem

Actualmente o nuacutemero de tecnologias disponiacuteveis para implementaccedilatildeo e

gestatildeo de maacutequinas virtuais tem vindo a crescer destacando-se algumas pela

8

disponibilizaccedilatildeo de um conjunto de ferramentas que as tornam vencedoras nos

mercados Seguem-se quatro exemplos das empresas (e suas tecnologias) que mais se

destacam hoje em dia

VmWare Inc VmWare Player Workstation Fusion ESXi

Citrix Systems Inc XenServer

Hewlett-Packard HP Integrity Virtual Machines

Microsoft Virtual PC Hyper-V

221 VMware (VMware Inc)

O VMware apresenta-se como uma plataforma liacuteder (80) no mercado da

virtualizaccedilatildeo com uma tecnologia de virtualizaccedilatildeo do tipo 1 (virtualizaccedilatildeo completa

tambeacutem designada nativa ou bare metal) Oferece um vasto leque de produtos desde

os hipervisores para desktops e laptops (VMware PlayerWorkstationFusion) aos

para servidores de grande porte (VMware vSphere ESXi) e ainda um vasto conjunto

de software de gestatildeo de VMs orquestraccedilatildeo de operaccedilotildees Cloud IaaS etc

De todos os produtos da VMware interessa-nos destacar aqui apenas a

tecnologia de virtualizaccedilatildeo ESXi oferecida para servidores que descrevemos em

seguida muito sucintamente

VMware vSphere ESXi Eacute uma VMM ou hipervisor tipo 1 garantindo um

elevado niacutevel de isolamento entre os recursos oferecidos agraves VMs sejam

estes o processador memoacuteria discos ou adaptadores de rede Eacute instalado

directamente sobre o hardware do servidor eliminando assim a

sobrecarga de ter um SO standard sobre o qual corre um hipervisor os

hipervisores de tipo 1 exibem portanto melhor desempenho e aumentam

a seguranccedila O facto de permitir que tudo seja virtualizado torna a VM

ainda mais completa O pacote inclui apenas o hipervisor ESXi e

ferramentas baacutesicas de gestatildeo

A forma como as instruccedilotildees do sistema hospedado (guest) satildeo executadas num

ambiente ESXi pode ser descrita com ajuda da figura 4 [8] 1) as instruccedilotildees oriundas

de aplicaccedilotildees que se executam sobre o SO hospedado satildeo executadas directamente no

processador real 2) as instruccedilotildees oriundas do proacuteprio SO hospedado satildeo verificadas

antes de serem executadas sendo que as privilegiadas satildeo traduzidas ou modificadas

para comandos ou instruccedilotildees do proacuteprio hipervisor uma teacutecnica que eacute denominada

como ldquoTraduccedilatildeo Binaacuteriardquo

Esta teacutecnica complementada com outras teacutecnicas de ldquoaceleraccedilatildeordquo de

operaccedilotildees sobre IO memoacuteria e de gestatildeo de recursos entre VMs fazem com que a

VMware consiga atingir desempenhos muito proacuteximos de um ambiente nativo ie

natildeo virtualizado

9

Figura 4 - Arquitectura VMware ESXi (Tipo-1)

Na versatildeo vSphere para servidores de grande porte estatildeo disponiacuteveis muitas

funcionalidades [9] como a migraccedilatildeo automaacutetica de VMs (balanceamento de carga)

a alta disponibilidade para vCenter (suportada pelo vCenter Server Heartbeat) a

recuperaccedilatildeo de destastres (Site Recovery Manager)

Para maiores detalhes e restriccedilotildees da VMware consultar o Anexo D [1011]

222 Xen (Citrix Systems Inc)

O XenServer eacute a plataforma de virtualizaccedilatildeo da Citrix baseada no hipervisor Xen a

versatildeo base designada Standard eacute gratuita e oferece para aleacutem do hipervisor

ferramentas como o XenCenter uma consola de gestatildeo para muacuteltiplos servidores e o

XenMotion para migraccedilatildeo ldquoin vivordquo de VMs

O hipervisor Xen na sua mais recente versatildeo eacute uma tecnologia de

virtualizaccedilatildeo do tipo 1 instalada num nuacutecleo Linux (x86 x86-64 ou IA-64 SUSE

Linux) que permite a criaccedilatildeo de vaacuterias VMs com recursos e aplicaccedilotildees partilhadas

Contrariamente ao VMware natildeo usa a traduccedilatildeo binaacuteria mas uma combinaccedilatildeo de

paravirtualizaccedilatildeo [12] (eliminando a latecircncia no desempenho introduzida pela

traduccedilatildeo binaacuteria) e virtualizaccedilatildeo assistida por hardware [13] Na paravirtualizaccedilatildeo a

maacutequina abstracta eacute quase mas natildeo completamente igual ao hardware hospedeiro

por isso o SO hospedado (guest) tem de ser modificado Como tal soacute eacute possiacutevel para

SOs disponiacuteveis em coacutedigo aberto o Xen executa os outros (eg Windows)

recorrendo a uma combinaccedilatildeo da paravirtualizaccedilatildeo com a virtualizaccedilatildeo assistida por

hardware oferecida nos processadores Intel (Intel-VT) e AMD (AMD-V)

Na arquitectura XenServer figura 5 existe uma VM privilegiada para controlo

do hipervisor denominada ldquoDom0rdquo esta VM eacute parte integrante do ambiente

10

XenServer executa uma versatildeo paravirtualizada do Linux e conteacutem os drivers dos

dispositivos disponiacuteveis no sistema As outras VMs satildeo os ldquoDomUsrdquo (domiacutenios do

utilizador) Nesta arquitectura os DomUs comunicam directamente com o hipervisor

que controla a memoacuteria e o processador do hospedeiro e se usam paravirtualizaccedilatildeo

comunicam com o Dom0 para operaccedilotildees de IO

Figura 5 - Arquitectura XenServer

O Anexo E descreve os detalhes da plataforma e restriccedilotildees da Citrix [1014]

223 Integrity VM (HP)

HP Integrity Virtual Machines (Integrity VM ou HPVM) eacute uma tecnologia de

virtualizaccedilatildeo do tipo 1 instalada num servidor da linha Integrity IA-64 com o sistema

de operaccedilatildeo HP-UX 11i v3

A gestatildeo do hipervisor eacute efectuada com a ferramenta HP Integrity Virtual

Machines Manager (HPVMMGR) mas tambeacutem eacute possiacutevel gerir os proacuteprios sistemas

hospedados desde que nestes sejam instalados os agentes HPVirtualMachine e

HPVSwitch Esta ferramenta apresenta benefiacutecios como flexibilidade e maximizaccedilatildeo

dos recursos do servidor consolidaccedilatildeo de servidores organizacionais rapidez na

implementaccedilatildeo e disponibilizaccedilatildeo de novos ambientes permite a migraccedilatildeo online e

offline isolamento de VMs oferece alta disponibilidade monitoriza automaticamente

todas as aplicaccedilotildees e permite a visualizaccedilatildeo e configuraccedilatildeo simplificada com

ferramentas como HP Integrity Virtual Machines Manager (HPVMMGR) System

Management Home (HPSMH) e HP Virtualization Manager (HPVMAN)

O Anexo F descreve os detalhes e restriccedilotildees Integrity Virtual Machines da HP

[10]

11

224 Hyper-V (Microsoft)

O Hyper-V eacute uma tecnologia de virtualizaccedilatildeo do tipo 1 da Microsoft para servidores

x86-64 com suporte agrave virtualizaccedilatildeo assistida por hardware O produto eacute

disponibilizado de forma isolada (standalone) ou integrado em versotildees Windows

Server (2008 R2 ou 2012)

A gestatildeo do ambiente virtual eacute efectuada com a ferramenta System Center

Virtual Machine Manager (SCVMM) que fornece 3 formas distintas de interactuar

com o hipervisor consola de administraccedilatildeo portal self-service (para utilizadores

finais) e Windows PowerShell (usando commandlets)

Na arquitectura Hyper-V [15] figura 6 existem dois tipos de particcedilatildeo 1) a

ldquoparticcedilatildeo pairdquo uma VM de administraccedilatildeo de todo o sistema com um Windows

Server 2008 2008 R2 ou 2012 drivers de acesso e controlo do hardware e

ferramentas de gestatildeo 2) as particcedilotildees filhas nas quais satildeo criadas as restantes VMs

completamente isoladas e sem acesso directo ao hardware No acesso ao hardware haacute

3 componentes importantes a mencionar a) o VSP (Virtual Service Provider)

responsaacutevel por receber as chamadas das particcedilotildees filhas e aceder aos drivers dos

perifeacutericos b) VSC (Virtual Service Client) um moacutedulo instalado no SO hospedado

que solicita via VMBus o acesso aos perifeacutericos da particcedilatildeo pai c) o VMBus canal

de comunicaccedilatildeo entre VSC e VSP onde se desenrolam as comunicaccedilotildees entre as

particcedilotildees

Figura 6 - Arquitectura Hyper-V

A Microsoft apresenta-nos na recente versatildeo Hyper-V 2012 uma panoacuteplia de

funcionalidades que a colocam na primeira linha das soluccedilotildees de virtualizaccedilatildeo a par

da VMware migraccedilatildeo online e replicaccedilatildeo de VMs migraccedilatildeo de armazenamento e

Clustering

O Anexo D descreve os detalhes as restriccedilotildees do Hyper-V da Microsoft

[101617]

12

23 Virtualizaccedilatildeo do Armazenamento

Haacute muito que o armazenamento passou a ser um toacutepico de ldquoprimeira classerdquo tal como

ldquoa rederdquo Para tal contribuiu significativamente a introduccedilatildeo de tecnologias tais como

o RAID (Redundant Array of Independent Disks) [18] que promoveram o

desempenho eou a toleracircncia a faltas a (comparativamente) baixo custo ndash note-se que

no artigo original de Patterson o I significava Inexpensive Com a introduccedilatildeo do

RAID rapidamente apareceram os armaacuterios de discos (disk arrays) externos ao

ldquosistemardquo e uma vez que o protocolo SCSI suportava a interligaccedilatildeo de discos

(Logical Units) a muacuteltiplos adaptadores e daiacute a muacuteltiplos sistemas o conceito de

rede de armazenamento aparece naturalmente

Como se mostra na figura 7 o disco loacutegico aparece como uma forma

elementar de virtualizaccedilatildeo jaacute que ldquoaglutinardquo elementos de diferentes discos fiacutesicos

mas eacute apresentado ao sistema como um uacutenico disco ndash ao ponto de ser impossiacutevel ao

proacuteprio sistema de operaccedilatildeo distingui-lo de um disco fiacutesico

Figura 7 - Redundant Array Independent Disks (RAID)

Numa rede de armazenamento que interliga vaacuterios armaacuterios de discos e

servidores (hosts) os primeiros oferecem volumes (ou discos loacutegicos) acessiacuteveis por

identificadores uacutenicos e os segundos tomam posse desses volumes (tipicamente cada

host tem uso exclusivo de um ou mais volumes) e formatam-nos neles instalando

sistemas de ficheiros (eg ext3 XFS NTFS) que depois usam da forma mais

conveniente Este conceito de rede de armazenamento eacute conhecido como SAN ndash

Storage Area Network figura 8

A forma mais comum de SAN usa uma infra-estrutura Fibre Channel (FC) o

que significa que tanto hosts como disk arrays possuem interfaces FC e na rede

existem comutadores (switches) FC aos quais hosts e arrays (e eventualmente outros

switches) se interligam Uma outra tecnologia que pode ser usada em SANs eacute a

Ethernet neste caso hosts disk arrays e switches tecircm interfaces Ethernet e o

protocolo de transporte usado eacute FCoE (Fibre Channel over Ethernet) A figura

seguinte mostra-se um ambiente que inclui simultaneamente uma outra tecnologia de

ldquotransporterdquo ISCSI e uma ldquozonardquo FC

13

Figura 8 - Storage Area Network (SAN)

Se bem que a relaccedilatildeo volumehost de um-para-um seja de longe a mais

frequente tambeacutem eacute possiacutevel estabelecer uma relaccedilatildeo de um-para-muitos na qual um

volume eacute detido de forma partilhada por muacuteltiplos hosts tal situaccedilatildeo implica

necessariamente o uso de sistemas de ficheiros (SF) especializados conhecidos como

shared-disk file systems Como exemplo indica-se o GFS [19] GPFS [20] e VMFS

[21] este uacuteltimo desenvolvido especificamente para armazenar VMs Num SF para

discos partilhados todos os hosts que partilham um dado volume tecircm uma visatildeo

coerente do estado do volume Em situaccedilotildees de toleracircncia a faltas esta arquitectura de

discos partilhados eacute muito apeteciacutevel pois em caso de falha de um host um dos

restantes inicia uma recuperaccedilatildeo (ao estilo de um sistema transaccional) das uacuteltimas

operaccedilotildees e rapidamente o SF regressa a um estado coerente

Figura 9 - Network Attached Storage (NAS)

Uma outra forma completamente distinta de armazenar informaccedilatildeo eacute usar um

SF distribuiacutedo neste caso natildeo haacute partilha de discos fiacutesicos mas sim de ficheiros

sendo que um host pode deter apenas parte da aacutervore do SF (eg AFS) ou nos SFs

distribuiacutedos com arquitectura clienteservidor um host dito cliente dispotildee de um

14

moacutedulo que lhe permite aceder ao SF remoto de um outro host dito servidor (eg

NFS e CIFS) como se o SF remoto fosse local

231 Armazenamento em ambientes virtualizados

Quando se aborda o armazenamento em ambientes virtualizados satildeo de considerar os

seguintes aspectos a) como representar a arquitectura de uma VM propriamente dita

(quanta memoacuteria e CPUs tem qual o chipset utilizado que adaptadores ndash de LAN

SAN graacuteficos ndash possui etc) b) como representar um disco acessiacutevel agrave VM e c)

como armazenar conteuacutedos (volaacuteteis ou natildeo) de componentes da VM tais como a

memoacuteria RAM e a memoacuteria natildeo volaacutetil NVRAM que conteacutem o BIOS

A soluccedilatildeo adoptada pelo hipervisor VMware ESXi2 eacute a seguinte a) a

representaccedilatildeo da arquitectura eacute efectuada em XML que possui as informaccedilotildees de

configuraccedilatildeo b) um disco acessiacutevel agrave VM eacute representado ou por um ficheiro que

virtualiza o proacuteprio disco ou por um ficheiro que ao estilo de uma ligaccedilatildeo simboacutelica

descreve o caminho para um disco real e finalmente c) tais conteuacutedos satildeo

armazenados em ficheiros Isto eacute tudo eacute representado por ou via ficheiros

A pergunta que se segue eacute oacutebvia onde armazenar esses ficheiros E a

resposta evidente num repositoacuterio (datastore na terminologia da VMware) gerido

pelo hipervisor onde uma VM aparece como um pasta e os seus componentes como

ficheiros no interior dessa pasta como se mostra na figura 10

Figura 10 - Datastore e VMs

O VMware ESXi suporta armazenamento em sistema de ficheiros VMFS

(sobre discos) ou NFS no caso do VMFS os discos podem ser internos ao servidor

ou podem estar numa SAN

Sistema de Ficheiros VMFS

O VMFS (Virtual Machine File System) eacute um sistema de ficheiros em cluster

e foi optimizado para armazenar grandes ficheiros e realizar operaccedilotildees de entrada e

2 Para uma comparaccedilatildeo entre o VMware ESXi e o Citrix Xen ver Anexo H

15

saiacuteda (IO) com que movimentam grandes volumes de dados Os dois servidores

figura 11 tecircm portanto uma visatildeo coerente do datastore e das VMs nele existentes

por isso eacute quando comparamos esta arquitectura com uma na qual cada servidor tem

a sua datastore muito mais simples e eficiente mover uma VM activa de um servidor

para o outro jaacute que apenas as paacuteginas modificadas residentes em memoacuteria tecircm de ser

copiadas (o resto estaacute no SF partilhado)

Figura 11 - Sistema de Ficheiros VMFS

Network File System

Nos casos em que os datastores residem num sistema de ficheiros NFS [22] os

servidores ESXi podem tambeacutem partilhar o mesmo datastore como se vecirc na figura

12 assim a movimentaccedilatildeo de VMs entre servidores por razotildees de equiliacutebrio de

cargas ou de manutenccedilatildeo de um ou outro servidor tambeacutem satildeo muito eficientes

Figura 12 - Network File System (NFS)

Para concluir note-se que se abrem nos ambientes virtualizados duas

oportunidades muito importantes quando um disco virtual eacute realizado sob a forma de

ficheiro a) a potencial poupanccedila de espaccedilo e b) a possibilidade de implementar com

facilidade uma teacutecnica de snapshots No primeiro caso conhecido como thin

provisioning referimo-nos agrave possibilidade de usar um ficheiro esparso para atribuir

um espaccedilo loacutegico de endereccedilamento ao disco (ficheiro) muito superior ao espaccedilo de

16

facto ldquoconsumidordquo pelo ficheiro no SF No segundo usando um mecanismo de

versotildees baseado em teacutecnicas de copy-on-write armazenar snapshots da VM em

determinados instantes e para usar como mecanismo de recuperaccedilatildeo do estado em

caso de ldquofalhardquo

24 Virtualizaccedilatildeo da Rede

A virtualizaccedilatildeo eacute algo mais que consolidaccedilatildeo de servidores - CPU memoacuteria e

armazenamento depois de analisada toda a infra-estrutura de suporte a uma

implementaccedilatildeo desta natureza torna-se evidente a ideia simplista desse triacircngulo A

infra-estrutura de rede virtual funciona como ligaccedilatildeo de componentes nessa

plataforma ligaccedilotildees virtuais atraveacutes dos controladores de rede virtual (Virtual

Network Interface Card - vNIC3) ligaccedilotildees fiacutesicas com os adaptadores fiacutesicos

(Physical Network Interface Card - pNIC) comutadores virtuais (vSwitch) para essas

ligaccedilotildees etc uma vasta lista de software e hardware responsaacuteveis pela comunicaccedilatildeo

de todos os componentes dos pares VMVM VMservidor e servidorservidor [23]

Numa infra-estrutura de rede tradicional figura 13 cada servidor tem uma ou

mais placas de rede (NIC) para comunicaccedilatildeo com os restantes

Figura 13 - Infra-estrutura de rede tradicional

Como sabemos um hipervisor eacute responsaacutevel pela abstracccedilatildeo do hardware

oferecido agraves VMs e na visatildeo de uma VM este hardware (virtual) de que dispotildee eacute

seu e eacute completo desconhecendo que esse hardware possa estar a ser partilhado com

outras VMs ou que eventualmente nem exista A interface virtual de rede (vNIC)

figura 14 natildeo possui qualquer componente fiacutesico eacute apenas software contudo ela

exibe as mesmas propriedades de uma placa fiacutesica incluindo um endereccedilo MAC

(IEEE 802-2001 Standard) Uma vNIC eacute ligada a uma outra abstracccedilatildeo o vSwitch

sendo que este pode comutar traacutefego que flui apenas no interior do servidor que

alberga as VMs ou estar associado a uma (ou mais para redundacircncia eou aumento

da largura de banda) placa de rede fiacutesica (pNIC)

3 Mais uma vez seguimos aqui a terminologia da VMware por simplicidade

17

Figura 14 - Infra-estrutura de rede virtual

Nesta infra-estrutura natildeo existe o limite associado agrave velocidade da placa de

rede mas sim associado agrave largura de banda (LB) da memoacuteria facilmente se

depreende tambeacutem que toda a rede entre VMs hospedadas num servidor natildeo

contribui para o congestionamento da rede fiacutesica (entre servidores) Contudo o

administrador pode impor quotas na utilizaccedilatildeo de recursos por exemplo na LB da

vNIC

Os vSwitch tecircm todas as funcionalidades de um switch real suportam

agregaccedilatildeo de traacutefego (IEEE 802ad) VLANs (IEEE 8021Q) etc Nesse sentido a

virtualizaccedilatildeo comeccedila a ir contra-corrente no que deveria ser o simplificar a

administraccedilatildeo de uma infra-estrutura pois o administrador de redes tem agora de

administrar os switches reais e ainda os virtuais

Figura 15 - vNetwork Distributed Switch ndash vDS

Para resolver este problema a VMware propotildee (figura 15) um switch virtual

distribuiacutedo (vNetwork Distributed Switch ndash vDS) [23] que representa a agregaccedilatildeo de

vaacuterios switchs virtuais de diferentes servidores ocultando as camadas inferiores e

oferecendo um suporte de rede uniforme que simplifica entre outras a administraccedilatildeo

da rede as migraccedilotildees de VMs e o desempenho ndash por exemplo ao associar um vDS a

18

muacuteltiplas pNICs o hipervisor pode de forma automaacutetica alterar a loacutegica de

encaminhamento de pacotes para redistribuir o traacutefego entre as pNICs aumentado o

desempenho e minimizando as falhas

Na infra-estrutura de rede virtualizada os aspectos relativos agrave seguranccedila dessa

rede satildeo tambeacutem contemplados sendo apresentadas soluccedilotildees de inspecccedilatildeo de fluxos

de pacotes como eacute o caso dos Distributed Virtual Filter (DVFilter) [23] apresentado

na figura 16

Figura 16 - Distributed Virtual Filter (DVFilter)

25 Resumo

Neste capiacutetulo fez-se uma breve descriccedilatildeo histoacuterica para enquadramento do restante

capiacutetulo A virtualizaccedilatildeo de servidores aparece como nuacutecleo central nas suas quatro

plataformas de virtualizaccedilatildeo que considerei mais importantes ESXi (VMware Inc)

XenServer (Citrix Systems Inc) HP Integrity Virtual Machines (Hewlett-Packard) e

o Hyper-V (Microsoft) Foram tambeacutem abordadas tecnologias na aacuterea da virtualizaccedilatildeo

de armazenamento em conceitos como RAID SAN NAS e nos ambientes

virtualizados VMFS e NFS Tambeacutem a virtualizaccedilatildeo de rede natildeo foi descurada e

nesse intuito foram abordados conceitos como vNIC pNIC VLANs vNetwork

Distributed Switch e Distributed Virtual Filter

19

3 Computaccedilatildeo na Cloud

Como anteriormente referimos o uso crescente de Tecnologias de Informaccedilatildeo (TI) nas

organizaccedilotildees leva geralmente a uma proliferaccedilatildeo de servidores fiacutesicos o que as obriga

mais cedo ou mais tarde a adoptar estrateacutegias de consolidaccedilatildeo de servidores com a

consequente reduccedilatildeo de custos de hardware e energia Resolvidas estas questotildees restam

contudo outras - o uso de virtualizaccedilatildeo natildeo reduz por si soacute o esforccedilo de administraccedilatildeo

das infra-estruturas nem resolve problemas de disponibilidade desempenho seguranccedila

etc que satildeo questotildees que nem todas as organizaccedilotildees querem ou estatildeo aptas a resolver

preferindo por vezes que ldquoalgueacutemrdquo assuma esta responsabilidade

A Computaccedilatildeo na Cloud (CC) apresenta-se assim como uma sequecircncia de passos

nesse sentido cada um correspondendo a um modelo de serviccedilo (ver em 32) e resolvendo

mais uma ldquofatiardquo dos problemas enunciados A CC eacute actualmente associada a palavras

chave como padronizaccedilatildeo automatizaccedilatildeo velocidade disponibilidade elasticidade

acesso global e agrave ideia de usar um conjunto de recursos partilhados As organizaccedilotildees

podem entatildeo preocupar-se essencialmente com as melhorias operacionais e para isso

procuram soluccedilotildees que possibilitem uma afectaccedilatildeo (e posteriormente libertaccedilatildeo) de

recursos de forma raacutepida e automaacutetica

ldquoCloud computing is a model for enabling ubiquitous convenient on-demand network access

to a shared pool of configurable computing resources (eg networks servers storage

applications and services) that can be rapidly provisioned and released with minimal

management effort or service provider interactionrdquo

The NIST Definition of Cloud Computing [Online] Available

httpwwwnistgovitlcsdcloud-102511cfm

31 Periacutemetro de uma cloud

Designamos por periacutemetro (ou modelo de implantaccedilatildeo) de uma cloud a forma como

caracterizamos o conjunto dos utilizadores com acesso aos serviccedilos dessa cloud

Nesta secccedilatildeo apresentamos apenas os trecircs tipos mais comuns deixando de fora outros

como as clouds partilhadas e federadas

Clouds Privadas

Ambientes construiacutedos exclusivamente para os utilizadores de uma uacutenica

organizaccedilatildeo Nesta tipologia os recursos (infra-estrutura e aplicaccedilotildees) satildeo totalmente

detidos pela organizaccedilatildeo podendo ser administrados pela proacutepria organizaccedilatildeo por

terceiros ou ainda pela combinaccedilatildeo das duas entidades A infra-estrutura estaacute

normalmente instalada num data center privado e as maiores preocupaccedilotildees satildeo

geralmente a garantia de disponibilidade e o desempenho dos serviccedilos e aplicaccedilotildees

20

Clouds Puacuteblicas

Ambientes construiacutedos para oferecer serviccedilos quer a utilizadores individuais

quer a organizaccedilotildees Nesta tipologia a infra-estrutura eacute geralmente detida pela

organizaccedilatildeo que comercializa os referidos serviccedilos que satildeo tipicamente cobrados na

forma ldquopay-per-userdquo As maiores preocupaccedilotildees da entidade gestora satildeo garantir a

privacidade e a seguranccedila (note-se que os ldquoutilizadoresrdquo podem de facto ser

administradores dos servidores que detecircm e podem instalar software) o isolamento

entre recursos detidos por utilizadores distintos e ainda assim garantir bom

desempenho dos serviccedilos e aplicaccedilotildees

Clouds Hiacutebridas

As clouds hiacutebridas representam a junccedilatildeo de dois modelos de cloud privada e

puacuteblica Este modelo eacute normalmente implantado em organizaccedilotildees que tecircm picos de

trabalho que por uma ou outra razatildeo natildeo podem suportar na sua cloud privada e

nessas alturas a ldquoelasticidaderdquo eacute usada para aprovisionar recursos de uma cloud

puacuteblica

32 Modelos de serviccedilo

Existem trecircs modelos base de serviccedilos de Cloud Computing que podem ser oferecidos

agraves organizaccedilotildees e que se diferenciam pelas configuraccedilotildees e responsabilidades do

provedor de serviccedilos figura 17

IaaS (Infrastructure as a Service)

No modelo ldquoinfra-estrutura como serviccedilordquo o provedor oferece ao consumidor

uma infra-estrutura de processamento e armazenamento com a configuraccedilatildeo que se

adequa agraves suas necessidades o cliente natildeo tem assim necessidade de adquirir

servidores racks software e ateacute mesmo espaccedilo fiacutesico Satildeo exemplos de provedores

puacuteblicos IaaS a Amazon EC2 [2] e o GoGrid [3] jaacute o Eucalyptus [4] o vCloud (da

VMware) e o HP CloudSystem Matrix satildeo exemplo de produtos software para a

criaccedilatildeo de clouds privadas

PaaS (Platform as a Service)

No modelo ldquoplataforma como serviccedilordquo o provedor disponibiliza plataformas

computacionais completas (incluindo naturalmente a infra-estrutura computacional)

para os utilizadoresconsumidores dessas plataformas integrarem as suas aplicaccedilotildees

(existentes ou a desenvolver) sendo que estas seratildeo posteriormente disponibilizadas

na cloud Como exemplo indicam-se as plataformas LAMP (Linux Apache MySQL

PHP) Google AppEngine [5] e Microsoft Azure [6]

21

SaaS (Software as a Service)

Neste modelo o provedor disponibiliza ao cliente final uma aplicaccedilatildeo pronta-

a-usar como exemplos mencionam-se as Google Apps [7] Google Docs e Microsoft

SharePoint Online Este eacute o paradigma cloud por excelecircncia utilidade facilidade

(interacccedilatildeo via browser) disponibilidade e por vezes ateacute alguma capacidade de

personalizaccedilatildeo

Figura 17 - Relaccedilatildeo entre serviccedilos e responsabilidades

Associados agrave CC vaacuterios modelos ldquoAs a Servicerdquo tecircm surgido para responder

agraves necessidades das organizaccedilotildees contudo todos acabam por ser enquadrados nos

trecircs tipos base (Infra-estrutura Plataforma e Software) de acordo com os serviccedilos que

disponibilizam

ldquoDatabase As A Service (DBaaS or DaaS) Network As A Service (NaaS) DataCenter As A

Service (DCaaS) Storage As A Service (StoraaS) Everything As A Service (EaaS) Data As

A Service (DaaS) Security As A Service (SecaaS) Computing As A Service (CaaS) Desktop

As A Service (VDI) Voice As A Service (VaaS) Communication As A Service (ComaaS)

Testing As A Service (TaaS) Backup As A Service (BaaS) Monitoring As A Service

(MaaS) Recovery As A Service (RaaS) Content Delivery Network As a Service (CDNaaS)

Application As A Service (AaaS) Business Intelligence As A Service (BIaaS) etcrdquo

Cloud9IDE [Online] Available httpsc9io

As relaccedilotildees entre os modelos IaaS PaaS e SaaS satildeo hieraacuterquicas como se

pode observar na figura 18 que ainda ilustra os papeacuteis do provedor de serviccedilos

equipas de desenvolvimento e utilizadores finais Como se observa o IaaS fornece

recursos de hardware e software ao PaaS e SaaS o PaaS oferece ferramentas para

desenvolvimento ao SaaS e por fim o SaaS executa e disponibiliza aplicaccedilotildees aos

utilizadores finais

22

Figura 18 - Relaccedilotildees e papeacuteis dos envolventes nos modelos de Cloud Computing

33 Resumo

O presente capiacutetulo descreve a tecnologia de Computaccedilatildeo na Cloud (Cloud

Computing) vantagens do seu uso e conceitos tais como periacutemetro (onde se

enquadram designaccedilotildees como Clouds Privadas e Puacuteblicas passando pelas Hiacutebridas) e

modelos de Serviccedilo IaaS PaaS e SaaS sendo o IaaS o foco desta dissertaccedilatildeo

A virtualizaccedilatildeo apresenta-se como a tecnologia chave de todo este processo

ela desempenha e continuaraacute a desempenhar um papel indispensaacutevel para que os

prestadores de serviccedilo continuem a oferecer ambientes de CC que permitem um

dimensionamento correcto e economicamente ajustado das infra-estruturas de TI

oferecendo ainda funcionalidades como gestatildeo centralizada disponibilidade e

seguranccedila

23

4 HP Cloud Stack

O OpenStack eacute presentemente um consoacutercio que inclui entidades como a ATampT HP

IBM Rackspace Red Hat Suse etc fortemente empenhadas na computaccedilatildeo na cloud e

que tecircm por objectivo colocar no mercado uma implementaccedilatildeo ubiacutequa para clouds tanto

puacuteblicas como privadas e uma pilha de software em coacutedigo aberto que suporta

heterogeneidade (por exemplo nos hipervisores) e uma enorme riqueza em recursos (de

computaccedilatildeo armazenamento e interligaccedilatildeo)

O OpenStack promove uma arquitectura comum ou seja um framework que eacute

extensiacutevel e permite que terceiros (incluindo os parceiros do consoacutercio) ampliem as suas

funcionalidades quer por via de desenvolvimentos adicionais quer por integraccedilatildeo de

produtos jaacute existentes embora a pilha-base jaacute permita por meio de portais quer a

administraccedilatildeo das pools de computaccedilatildeo armazenamento e rede quer o provisionamento

de recursos

As plataformas Cloud em Open Source tornam-se atraentes pelo seu baixo custo

inicial de implementaccedilatildeo e pela perspectiva da portabilidade

41 HP CloudSystem Matrix

A HP CloudSystem Matrix eacute uma soluccedilatildeo proprietaacuteria que assenta na plataforma

OpenStack para lhe acrescentar moacutedulos de seguranccedila gestatildeo e automaccedilatildeo

abrangente a toda a infra-estrutura como mostra a figura 19 Eacute uma soluccedilatildeo IaaS

tanto para clouds privadas como para hiacutebridas

Figura 19 - Contributos CloudStack

Norteado por uma visatildeo de ldquosimplificaccedilatildeo como chaverdquo o HP Cloud System

Matrix permite entregar soluccedilotildees preacute-definidas num cataacutelogo de serviccedilos de TI a

consumidores da infra-estrutura (utilizadores) que as requisitaram a partir de um

portal self-service

24

Figura 20 - Desenho publicaccedilatildeo e implementaccedilatildeo do cataacutelogo de serviccedilos

A soluccedilatildeo HP CloudSystem Matrix oferece

Um ambiente de trabalho (Matrix Operating Environment - MOE)

altamente automatizado que automaticamente se ajusta a todo o

dinamismo de negoacutecio permitindo um raacutepido desenho provisionamento e

modificaccedilatildeo de toda a infra-estrutura e uma optimizaccedilatildeo dos ambientes

fiacutesicos e virtuais a fornecer como serviccedilo

Uma pilha de tecnologias de gestatildeo figura 21 HP Console Management

System (CMS) que inclui ferramentas como HP Universal Discovery

(UD) para detectar automaticamente todos os objectos do ambiente HP

SiteScope [25] (opcional) que monitoriza a disponibilidade e desempenho

de toda a infra-estrutura - aplicaccedilotildees servidores SO serviccedilos de rede

armazenamento [24] e software de virtualizaccedilatildeo - evitando e resolvendo

alguns problemas de desempenho (estrangulamentos por escassez de

recursos)

Uma infra-estrutura convergente (HP Converged Infrastructure) apoiada

em soluccedilotildees como o HP Insight Control (IC) para gestatildeo da infra-

estrutura e o HP Insight Dynamics (ID) uma consola de Data Center para

uma gestatildeo centralizada de agregados (pools) de recursos e de pacotes

preacute-configurados de hardware e software Eacute aqui que se criam as pools de

recursos para posterior fornecimento ao MOE

O MOE assenta nesta pilha como o uacuteltimo niacutevel de software um ambiente de

trabalho altamente automatizado permitindo que seja possiacutevel a reduccedilatildeo draacutestica de

custos tempo e esforccedilo na implementaccedilatildeo de toda a estrutura necessaacuteria assim como

das aplicaccedilotildees mercecirc do seu moacutedulo de orquestraccedilatildeo da infra-estrutura (Infrastructure

Orchestration - IO) e opcionalmente do moacutedulo de automaccedilatildeo de servidores (Server

Automation - SA) Em suma trata-se de um ambiente optimizado para gestatildeo e

aprovisionamento de infra-estruturas hiacutebridas incluindo servidores fiacutesicos (Integrity e

x86) e virtuais rede e armazenamento [23] O CloudSystem Matrix estaacute igualmente

integrado com tecnologias de virtualizaccedilatildeo como o ESXi da VMware e o Hiper-V da

Microsoft

25

Figura 21 - Infra-estrutura HP CloudSystem Matrix

42 Modelos de interacccedilatildeo com o HP CSM

Definidos os modelos de implementaccedilatildeo e serviccedilo resta definir as formas de

comunicaccedilatildeo os modos de interacccedilatildeo entre as infra-estruturas aplicaccedilotildees e processos

O modelo eacute transparente para o utilizador final sendo disponibilizadas trecircs opccedilotildees

Web Service API

Este eacute o meacutetodo preferido para controlar os processos dentro da TI Um Web

Service (WS) eacute de acordo com o W3C4 ldquoa software system designed to support

interoperable machine-to-machine interaction over a network It has an interface

described in a machine-processable format (specifically WSDL) Other systems

interact with the Web service in a manner prescribed by its description using SOAP

messages typically conveyed using HTTP with an XML serialization in conjunction

with other Web-related standardsrdquo A HP CloudSystem Matrix oferece uma API

baseada no protocolo SOAP (Simple Object Access Protocol) para troca de

informaccedilatildeo estruturada numa plataforma descentralizada e distribuiacuteda Eacute um

protocolo baseado numa linguagem de marcaccedilatildeo extensiacutevel (Extensible Markup

Language ndash XML) para o formato das mensagens enviadas e recebidas e no protocolo

de transferecircncia de hipertexto (HyperText Transfer Protocol ndash HTTP) para negociaccedilatildeo

e transmissatildeo de mensagens Como protocolo de transporte usa igualmente HTTP

garantindo assim uma certa ldquofacilidaderdquo para funcionar em ambientes protegidos por

firewalls

4 httpwwww3orgTRws-archwhatis

26

Command line interface (CLI)

Uma interface de linha de comando que inclui natildeo soacute todas as opccedilotildees

disponiacuteveis na API WebService como outras natildeo disponiacuteveis nas outras APIs

Northbound API (nbAPI)

Uma interface de controlo remoto atraveacutes de um URL (Uniform Resource

Locator) endereccedilo de um determinado recurso disponiacutevel numa rede o acesso pode

ser efectuado por HTTP FTP etc (ex protocolomaacutequinacaminhorecurso)

43 Papeacuteis e Portais de interacccedilatildeo

Os provedores de serviccedilo cloud satildeo responsaacuteveis por fornecer toda a infra-estrutura do

serviccedilo contratado Nestas arquitecturas existem normalmente trecircs tipos de (papeacuteis de)

utilizadores da cloud que se associam aos respectivos portais figura 22

Administrador Arquitecto e Utilizador final (ou consumidor de serviccedilos cloud)

Figura 22 - Utilizadores de TI em cloud e respectivos papeacuteis (roles)

Administrador Cloud

O administrador usando as ferramentas de ao seu dispor cria monitoriza e

manteacutem a pool de recursos (de computaccedilatildeo memoacuteria armazenamento e rede) a

disponibilizar na cloud Normalmente este papel tambeacutem envolve a implementaccedilatildeo

de acordos de niacutevel de serviccedilo (Service Level Agreement - SLA) onde satildeo definidas

as poliacuteticas entre o fornecedor de serviccedilos cloud e os seus ldquoclientesrdquo O portal

associado a este utilizador eacute o portal do Administrador figura 23

27

Figura 23 - Portal do Administrador

Arquitecto Cloud

O arquitecto eacute um utilizador teacutecnico responsaacutevel por projectardesenhar

montar e tornar disponiacuteveis (publicar) serviccedilos que a proacutepria infra-estrutura pode

disponibilizar para os utilizadores mediante poliacuteticas e necessidades dos objectivos

estrateacutegicos de uma organizaccedilatildeo Esses serviccedilos podem ser personalizaacuteveis e

especiacuteficos para um determinado utilizador grupo de utilizadores ou para uso geral O

arquitecto pode ainda criar fluxos de trabalho (workflows) que passo a passo ajudam

na interacccedilatildeo utilizador-ambiente oferecendo serviccedilos como personalizaccedilatildeo gestatildeo

simplificaccedilatildeo de processos e a proacutepria integraccedilatildeo de TIs O portal associado a este

tipo de utilizador eacute o Designer Portal onde o arquitecto desenha a infra-estrutura e os

modelos de serviccedilo (templates de que adiante falaremos) a incluir no cataacutelogo

Figura 24 - Portal do Arquitecto

28

Consumidor IaaS

O portal associado a este tipo de utilizador eacute o Self-service Portal (ou user

portal) onde o utilizador poderaacute seleccionar visualizar e instanciar os modelos de

serviccedilo preacute-definidos pelo Arquitecto O utilizador depois de escolher de entre os que

existem no cataacutelogo de serviccedilos o ldquomodelo de infra-estruturardquo que mais se adequa agraves

suas necessidades solicita a sua instanciaccedilatildeo para obter os recursos de computaccedilatildeo

memoacuteria armazenamento e rede Este portal permite ainda ao utilizador efectuar a

gestatildeo dos serviccedilos solicitados

Figura 25 - Portal do Utilizador final

44 Conceitos fundamentais da plataforma HP CSM

Apresentamos agora um leque de conceitos fundamentais para compreender o HP

CSM e o trabalho que realizaacutemos Nalguns casos poderemos apresentar exemplos

concretos para melhor ilustrar esses conceitos

Template

Num template o Arquitecto da infra-estrutura captura uma configuraccedilatildeo tiacutepica

em TI especificando os seus componentes-base (hardware e software) e desenha as

suas inter-relaccedilotildees que servidores existem quais as suas caracteriacutesticas (CPUs

memoacuteria discos interfaces) como se interligam os servidores entre si (as conexotildees

de rede) e se for o caso como um ou mais desses servidores se ligam ao ldquoexteriorrdquo do

Centro de Dados Do template tambeacutem faz parte o software haveraacute servidores com

Linux outros com Windows Server uns podem ter Apache e outros SQL Server para

dar alguns exemplos Os templates apoacutes publicaccedilatildeo passam a fazer parte de um

cataacutelogo de serviccedilos para uso dos consumidores de serviccedilos dessa infra-estrutura de

cloud

29

Como exemplo vejamos a seguinte situaccedilatildeo em TI a pilha LAMP (Linux

Apache MySQL PHP) eacute um padratildeo comum e bastante usado assim o arquitecto

poderaacute criar dois templates LAMP-base com um uacutenico servidor e toda a pilha nele

instalada e LAMP-elaacutestico em que haacute uma farm de servidores Apache-PHP que se

ligam a um ldquofailover clusterrdquo de dois servidores MySQL

Server Group

Um ldquoGrupo de Servidoresrdquo eacute constituiacutedo por um ou mais servidores com as

mesmas caracteriacutesticas e configuraccedilotildees software discos interfaces etc O arquitecto

usa os Grupos de Servidores para organizar os servidores em torno da funccedilatildeo que

estes desempenham eou das suas caracteriacutesticas

Por exemplo o arquitecto definiria no template LAMP-base um uacutenico grupo

de servidor(es) mas jaacute no caso do template LAMP-elaacutestico definiria o grupo APfarm

(que incluiria um proto-servidor com determinadas caracteriacutesticas ndash 2 interfaces LAN

Linux Apache e PHP) e o grupo MySQLfo (com um proto-servidor tambeacutem com 2

interfaces LAN mas com Linux Linux-HA e MySQL) Soacute que o grupo APfarm

permitiria um miacutenimo de 1 e um maacuteximo de digamos 4 servidores enquanto o grupo

MySQLfo seria instanciado sempre com 2 servidores

Server

Eacute obviamente um servidor (virtual quase sempre embora o HP CSM permita

ldquoinstanciarrdquo ndash leia-se instalar o software e configurar ndash servidores fiacutesicos) com

atributos (muitos deles especificaacuteveis por um intervalo de valores entre um miacutenimo o

default e um maacuteximo) como memoacuteria (RAM) nuacutemero de processadores e

correspondente velocidade de reloacutegio discos lista de software associado interfaces

de rede (LAN eou SAN) etc

Software

O termo ldquoSoftwarerdquo refere-se a um produto software instalaacutevel no servidor

(pode ser o SO um SGBD um qualquer middleware ou ateacute uma aplicaccedilatildeo) Haacute duas

formas de efectuar essa instalaccedilatildeo automaticamente no acto de instanciaccedilatildeo do

servidor usando um pacote opcional o HP Server Automation (SA) ou manualmente

(a usada neste trabalho por natildeo dispormos do HP SA) ndash e neste caso temos de criar

uma VM instalar o software e depois transformar a VM numa VM-template (o que

se faz directamente no software de virtualizaccedilatildeo eg VMware vCenter Server)

Disk

Eacute um disco virtual ou fiacutesico que pode ser acedido pelo(s) servidor(es) pode

ser bootable shareable (partilhaacutevel entre servidores) suportado numa tecnologia

magneacutetica ou SSD acessiacutevel por ligaccedilatildeo FC ou iSCSI etc

Interface

Uma ldquointerfacerdquo eacute um ponto de contacto entre o servidor e as redes (que lhe

satildeo) externas de um ponto de vista pragmaacutetico deixando de lado infra-estruturas

30

pouco comuns em centros de dados de TI (por contraposiccedilatildeo aos CDs HPC) as infra-

estruturas relevantes satildeo Fibre Channel (FC) e Ethernet Assim as interfaces em

questatildeo satildeo HBAs (FC) e NICs (Ethernet)

Service

Um Service corresponde a uma instanciaccedilatildeo de um template e herda deste

todas as configuraccedilotildees base que poderatildeo ser posteriormente editadas com mais ou

menos servidores processamento memoacuteria discos etc ateacute ao limite maacuteximo

definido no Template

A criaccedilatildeo do serviccedilo eacute efectuada pelo consumidor5 IaaS que faz a definiccedilatildeo

fina das caracteriacutesticas da infra-estrutura que quer aprovisionar Continuando com os

exemplos baseados na pilha LAMP um consumidor do departamento de TI poderia

num dado momento criar um serviccedilo LAMP-testes baseado no template LAMP-base e

que usaria para fazer testes ao ldquoprodutordquo que estaacute a desenvolver e solicitar ao

administrador da cloud o respectivo aprovisionamento e mais tarde criar um serviccedilo

LAMP-produccedilatildeo baseado no template LAMP-elaacutestico e que usaria para colocar on-

line o produto

45 Limitaccedilotildees do HP CloudSystem Matrix

Em resumo o HP CloudSystem Matrix eacute um software stack para a implementaccedilatildeo de

clouds privadas que oferecem infra-estruturas como serviccedilo (IaaS) isto eacute permite aos

utilizadores (consumidores) dos seus serviccedilos aprovisionar de uma forma faacutecil e

raacutepida (minutos) uma infra-estrutura computacional completa de servidores6 (CPU

memoacuteria e discos) com o SO jaacute instalado interligados por uma topologia de rede mais

ou menos complexa

Contudo o supracitado ldquoaprovisionar de uma forma faacutecil e raacutepida (minutos)

uma infra-estrutura computacional completa de servidoresrdquo soacute eacute de facto faacutecil se

baseada na instanciaccedilatildeo de um template que serve exactamente as necessidades do

utilizador jaacute que na instanciaccedilatildeo apenas se pode modificar para cada servidor o

nuacutemero de CPUs e a quantidade de memoacuteria deixando de fora por exemplo opccedilotildees

de rede eou de armazenamento discos fiacutesicos vs virtuais aprovisionamento thin vs

thick (ver 23) escolha da tecnologia da interface (SATA vs SAS vs FC) ou do disco

(magneacutetico vs SSD)

Por outro lado a interacccedilatildeo atraveacutes do portal self-service do utilizador tambeacutem

apresenta algumas desvantagens a informaccedilatildeo apresentada pode ser em muitos casos

considerada demasiadamente teacutecnica eou desnecessaacuteria sendo que o portal natildeo pode

ser configurado para a omitir

5 Muitas vezes designado utilizador-consumidor ou simplesmente utilizador ndash e nesse caso eacute importante natildeo o

confundir com um mero utilizador final 6 Uma das vantagens do HPCSM eacute permitir aprovisionar natildeo soacute servidores virtuais mas tambeacutem reais (estes

uacuteltimos tecircm obrigatoriamente de ser fabricados pela HP)

31

46 Resumo

Este capiacutetulo descreve a HP CloudSystem Matrix uma pilha de software que

implementa o modelo IaaS para clouds privadas e faz parte de um leque mais vasto

da oferta HP que passa pela CloudSystem Enterprise (clouds privadas e hiacutebridas) e

culmina com a CloudSystem System Provider (que acrescenta as clouds puacuteblicas)

A HP CloudSystem Matrix eacute o nuacutecleo de trabalho deste framework razatildeo de

ser deste estudo e deste capiacutetulo Todo o hardware e pilha de software em que assenta

toda a infra-estrutura HP CloudSystem Matrix foi descrita nomeadamente os seus trecircs

Modelos de interacccedilatildeo (API CLI e nbAPI) os papeacuteis e portais de interacccedilatildeo

(Administrador Arquitecto e Utilizador) Concluiacutemos com uma abordagem modular

da infra-estrutura com a explicaccedilatildeo dos moacutedulos principais e finalmente as limitaccedilotildees

desta infra-estrutura em particular do portal actualmente em uso

32

5 O framework e a sua Realizaccedilatildeo

51 Arquitectura

A arquitectura proposta assenta em 3 camadas (3-tier) apresentaccedilatildeo loacutegica e dados

este tipo de arquitectura eacute bem conhecida apresentando como resultado da

modularidade uma seacuterie de benefiacutecios que incluem a escalabilidade que resulta da

possibilidade de executar uma ou outra camada num servidor distinto ou ateacute em

certos casos numa farm de servidores A comunicaccedilatildeo entre as camadas apresentaccedilatildeo

e loacutegicaserviccedilos assenta num protocolo REST (ou seja a arquitectura eacute orientada agrave

Web (WOA) com Axiom0a [28] - Universality2 com um URI por cada recurso

importante) e dados em formato XML (visualizaccedilatildeo) ou JSON (programaccedilatildeo)

transportados em HTTP sobre TCPIP Relativamente agrave comunicaccedilatildeo com o HP

CSM ela processa-se sobre HTTPS numa arquitectura SOA com o protocolo SOAP

Figura 26 - Arquitectura n-tier

Camada de Apresentaccedilatildeo

Define e realiza a interface do utilizador o formato de interacccedilatildeo e

visualizaccedilatildeo foi optimizada para o navegador Google Chrome mas funciona

igualmente noutros browsers Eacute a camada de mais alto niacutevel e eacute responsaacutevel natildeo soacute

pelo contacto utilizadoraplicaccedilatildeo atraveacutes de um conjunto de interfaces que podem ser

apresentadas num browser mas tambeacutem por lhe fazer chegar a informaccedilatildeo das

camadas inferiores

33

Camada Loacutegicanegoacutecio

Tambeacutem conhecida como a camada de negoacutecio eacute o nuacutecleo da aplicaccedilatildeo e eacute

responsaacutevel por controlar as suas funcionalidades tem igualmente a responsabilidade

de realizar a transiccedilatildeo de dados entre as camadas de apresentaccedilatildeo e dados e ainda

todas as transiccedilotildees necessaacuterias entre a proacutepria aplicaccedilatildeo e a camada de serviccedilos

Camada de Serviccedilos

Camada que realiza toda a comunicaccedilatildeo com os webservices do CSM

nomeadamente via API do MOE e outras APIs como eacute o caso da API da VMware

Camada de Dados

Camada responsaacutevel por guardar e gerir os dados em texto (ou numa base de

dados opccedilatildeo que activamos quando queremos trabalhar offline ndash o que neste

momento apenas fazemos para testes) e cache de leituras (cookies) com a informaccedilatildeo

sobre o utilizador e outras informaccedilotildees proveniente da camada de loacutegicaserviccedilos

como eacute o caso da implementaccedilatildeo Realm JAAS no moacutedulo de login JAAS

52 Integraccedilatildeo da framework no HP CSM (MOE e VMware)

Nesta secccedilatildeo propositadamente muito simples mostramos (figura 27) as relaccedilotildees

entre a framework agrave esquerda a plataforma HP CSM (MOE) com o qual esta

interage ao centro e a plataforma VMware vCenter que gere o hipervisor ESXi que

em ultima instacircncia eacute quem suporta as VMs que se disponibilizam na cloud

Figura 27 - Relaccedilatildeo dos VMIDs (WebService-MOE-vCenter)

34

53 Um desenho guiado pela Interface Utilizador

A portal is a window into a much broader set of capabilities in the IT world Its critical that portals be user-friendly and fairly intuitive to use

Ken Stephens vice president of Xerox Corp

O desenvolvimento deste framework teve sempre como objectivo uacuteltimo o

utilizador com acessos consulta de informaccedilatildeo e interacccedilotildees raacutepidas intuitivas faacuteceis

e acima de tudo praacuteticas Pretendeu-se simplicidade com uma curta curva de

aprendizagem e uma flexibilidade com acessos proacuteprios e individuais a cada

utilizador associados a um username e role (admin ou user) dispensando a

necessidade da se ter de usar dua interfaces distintas uma para o administrador outra

para um utilizador-consumidor de serviccedilos

These users want to see performance graphs and have the capability to build complex configurations and templates for their end users

Lauren Nelson Forrester Research Inc

A visualizaccedilatildeo em tempo real de todas as acccedilotildees do utilizador com a

disponibilizaccedilatildeo de uma ldquobarra de progressordquo a visualizaccedilatildeo do estado geral do

webservice e das suas configuraccedilotildeesrecursos tambeacutem natildeo foram descuradas A

descriccedilatildeo dos componentes principais em aacutervore permite a raacutepida visualizaccedilatildeo das

configuraccedilotildees de todo o Serviccedilo criado das suas hierarquias e relaccedilotildees e um acesso

raacutepido e intuitivo aos detalhes de cada componente

35

Figura 28 - Estrutura em aacutervore do menu lateral esquerdo

Developers want a clean easy-to-use [product] to select prebuilt templates -- but they dont need to see any of the complex performance or payment configurations

Lauren Nelson

O Cataacutelogo de Templates publicados pelo Arquitecto eacute imediatamente

visualizado no menu em aacutervore quando o webservice eacute inicializado que eacute

imediatamente povoada com os Serviccedilos (e seus recursos) anteriormente criados por

esse utilizador

Para criar um novo Serviccedilo o utilizador seleciona o template que mais se

adequa agraves suas necessidades e cria o Serviccedilo Todos os Serviccedilos associados a um

determinado Template ficam como ramos na aacutervore desse Template o mesmo

acontecendo relativamente aos recursos associados a cada Serviccedilo A informaccedilatildeo

visualizada eacute apenas a necessaacuteria a cada visualizaccedilatildeo e instanciaccedilatildeo

A interface eacute assim raacutepida acessiacutevel intuitiva organizada e personalizaacutevel as

acccedilotildees satildeo acessiacuteveis e raacutepidas de executar sem menus e submenus com sucessivos

cliques que soacute atrasam todo o processo

36

Figura 29 - Portal

37

Figura 30 - Diagrama de Sequecircncia (Criaccedilatildeo de um Serviccedilo)

38

What you want and what you get in most cases depends on the users persona -- either an IT manager or a developerhellip By making portals task-

based youre not just seeing a bunch of random menus or links If youre

searching for something youll find it quicklyrdquo

Bill Forsyth vice president of portal development at Savvis

Um portal personalizaacutevel em funccedilatildeo do utilizador ocultar ou exibir paineacuteis de

informaccedilatildeo a lista de pedidos limitar a exibiccedilatildeo por Template ou por Serviccedilo - um

simples clique e todo o portal eacute personalizaacutevel

Paying attention to details and being able to organize information for larger enterprises is important

Bill Forsyth

A organizaccedilatildeo de toda a informaccedilatildeo a disponibilizar eacute a chave de todo este

processo e diferencia um portal agradaacutevel e intuitivo de um portal confuso no seu

amontoado de informaccedilatildeo e complexidade quanto maior eacute a informaccedilatildeo a

disponibilizar maior eacute evidente esta diferenccedila Uma informaccedilatildeo hierarquizada e

organizada em agrupamentos loacutegicos por recursos eacute um processo muito faacutecil de seguir

e perceber e associada a esta disponibilizaccedilatildeo de informaccedilatildeo apenas exibir acccedilotildees

que possam ser executadas sobre esse(s) recurso(s) eacute o objectivo da simplicidade e

desempenho de uma interface Por uacuteltimo uma paacutegina web de ajuda a toda a interface

(Anexo N) para consulta de qualquer duacutevida faz com que tudo seja uacutetil e praacutetico [33]

54 Camada de apresentaccedilatildeo

A realizaccedilatildeo da camada de apresentaccedilatildeo pode ser apresentada subdividindo-a em duas

partes sendo a primeira correspondente agrave realizaccedilatildeo do lado do cliente (client-side) e

a segunda agrave realizaccedilatildeo do lado do servidor (server-side)

541 Do lado do cliente

A visualizaccedilatildeo de uma paacutegina web num navegador como Google Chrome Firefox ou

Internet Explorer soacute eacute possiacutevel se estes ldquoentenderemrdquo a linguagem na qual estaacute

construiacuteda ldquoa paacuteginardquo e forem capazes de a processar sem necessidade de qualquer

espeacutecie de preacute-tratamento Surgiram muitas linguagens conhecidas como linguagens

de marcaccedilatildeo um sistema moderno para anotaccedilatildeo de um documento de uma forma que

ldquoo programardquo eacute sintaticamente distinguiacutevel do texto normal

Do lado do cliente a principal linguagem de marcaccedilatildeo eacute a HTML agrave qual se

adiciona a JavaScript na qual os programas acompanham um documento html

incluiacutedos em ficheiros com a extensatildeo js ou satildeo incorporados directamente no

39

coacutedigo html entre tags ltscriptgtltscriptgt o documento html eacute entatildeo carregado pelo

navegador do utilizador e com ele todo o coacutedigo JavaScript

A linguagem JavaScript eacute usada para incutir dinamismo no coacutedigo html

facilitando por exemplo a interacccedilatildeo com o utilizador no preenchimento de

formulaacuterios (aquando da criaccedilatildeo de um serviccedilo) ou promovendo o upload de um

modelo de template em formato XML ou executando acccedilotildees ou eventos consoante

determinado comportamento do utilizador etc As funccedilotildees JavaScript e das suas

bibliotecas como JQuery satildeo executadas aquando do carregamento da proacutepria paacutegina

html ou quando invocadas por eventos como sejam a inicializaccedilatildeo da framework

leitura inicial dos dadosrecursos relativos ao utilizador criaccedilatildeo de cookies ou acccedilotildees

do utilizador como o login ou o preenchimento de formulaacuterios

Tambeacutem eacute usado AJAX (Asynchronous JavaScript and XML) [36] um padratildeo

para o uso de comandos JavaScript para de uma forma siacutencrona ou assiacutencrona trocar

dadosinformaccedilatildeo com o servidor e actualizar conteuacutedos de paacuteginas web jaacute exibidas

em que natildeo eacute necessaacuterio carregar toda a paacutegina para a actualizar Um padratildeo ideal

para usar com o protocolo REST (Representational State Transfer) para troca de

informaccedilatildeo permite o uso de dados em texto HTML XML e JSON (JavaScript

Object Notation) como formato da informaccedilatildeo para enviar e receber dados usando

HTTP e URI exactamente como as interacccedilotildees HTTP foram concebidas GET

POST PUT e DELETE Com AJAX as operaccedilotildees CRUD (Create Read Update e

Delete) satildeo muito intuitivas e faacuteceis de usar

Finalmente CSS (Cascading Style Sheets) eacute a linguagem responsaacutevel pela

formataccedilatildeo dos dados em termos de visualizaccedilatildeo para o utilizador que eacute usada para

descrever a apresentaccedilatildeo das paacuteginas Web incluindo cores layout e fontes

542 Do lado do servidor

As linguagens caracterizadas como ldquodo lado do servidorrdquo satildeo necessaacuterias para

especificar os programas que tecircm de ser executados no servidor como ldquorespostardquo agraves

acccedilotildees desencadeadas do lado do browser quando o resultado tem de ser enviado

para o browser eacute-o na forma de ficheiro HTML

Linguagens de conteuacutedo e comportamento como JSP (JavaServer Pages) uma

mistura de HTML com scriptlet contecircm um elemento script (blocos de coacutedigo em

Java) o que as caracteriza como linguagens que correm no servidor Os scriptlet

como todo o coacutedigo Java eacute executado no servidor e o output direcionado para o resto

da paacutegina JSP e finalmente apresentado ao utilizador A facilidade de comunicaccedilatildeo

em variaacuteveis de sessatildeo torna esta linguagem muito apelativa ao uso dessas variaacuteveis

como eacute o cado da paacutegina loginjsp onde se desenrola grande parte da comunicaccedilatildeo

browserservidor atraveacutes da API MOE logoutjsp e vmrcjsp para ligaccedilatildeo agraves VMs e

comunicaccedilatildeo com a API VMware

40

543 Lista de primitivas na oacuteptica dos recursos

Segue-se a lista de primitivas apresentada numa oacuteptica de recursos que cada

uma manipula

actionsjs - Lista as ldquoactionsGridrdquo atribuiacutedas aos Serviccedilos Grupo de

Servidores ou Servidores e permite todas as acccedilotildees associadas nestas

listagens

cookiesjs - Leitura e criaccedilatildeo de cookies associados ao utilizador e todo o

webservice Cookies de login com dados como username e role e outros

dado associados agraves acccedilotildees do utilizador e webservice como layout de

visualizaccedilatildeo da paacutegina (globaltheme) menu lateral esquerdo (treetheme)

paineacuteis de visualizaccedilatildeo de informaccedilatildeo (northregion westregion

eastregion southregion) etc

disksjs - Leitura das informaccedilotildees associadas aos discos nas suas trecircs

versotildees ldquostereotype disksrdquo discos virtuais e fiacutesicos Todas as acccedilotildees

possiacuteveis em discos estatildeo igualmente configuradas neste ficheiro

geraljs - Leitura das informaccedilotildees gerais associadas ao webservice Dados

iniciais de informaccedilatildeo de todos os Templates do Cataacutelogo de Serviccedilos e

dados de Serviccedilos jaacute existentes nos diferentes formatos (JSON e XML)

configuraccedilotildees gerais do webservice como tabelas de listagens conversotildees

de datas (ldquodate2epochrdquordquoepoch2daterdquo) construccedilatildeo do menu lateral

esquerdo em aacutervore listeners para acccedilotildees do utilizador e mensagens de

erros e informaccedilatildeo do webservice

helpjs - Configuraccedilotildees de todo o layout das ajudas ao utilizador

interfacesjs - Leitura das informaccedilotildees associadas agraves interfaces redes e

endereccedilos IP Todas as acccedilotildees passiacuteveis de serem executadas nas

interfaces estatildeo igualmente configuradas neste ficheiro

remoteSessionsjs - Listagem de todas as Sessotildees Remotas do Serviccedilo e

acccedilotildees associadas a essas Sessotildees Remotas por Servidor e suas Interfaces

requestsjs - Listagem de todos os pedidos por Template ou Serviccedilo

Todas as acccedilotildees passiacuteveis de serem executadas relativas aos pedidos do

utilizador estatildeo igualmente configuradas neste ficheiro

serverGroupsjs - Leitura das informaccedilotildees associadas ao Grupo de

Servidores quer nos Templaste quer nos Serviccedilos Todas as acccedilotildees

relativas ao Grupo de Servidores estatildeo igualmente configuradas neste

ficheiro

serverPoolsjs - Listagem de todos as Pools de Servidores com a

informaccedilatildeo respectiva a cada Pool Todas as acccedilotildees passiacuteveis de serem

executadas nas Pools de Servidores estatildeo configuradas neste ficheiro

41

serversjs - Leitura das informaccedilotildees associadas a cada Servidor quer nos

Templaste quer nos Serviccedilos Todas as acccedilotildees relativas aos Servidores

estatildeo configuradas neste ficheiro

servicesjs - Leitura das informaccedilotildees associadas a cada Serviccedilo Todas as

acccedilotildees passiacuteveis de serem executadas nos Serviccedilos estatildeo configuradas

neste ficheiro

snapshotsjs - Listagem de todos os Snapshots com a informaccedilatildeo

respectiva ao par ServerSnapshot Todas as acccedilotildees passiacuteveis de serem

executadas nos Snapshots estatildeo configuradas neste ficheiro

softwarejs - Listagem de todo Software existente no sistema e informaccedilatildeo

relativa a cada Software em particular

templatesjs - Listagem de todos os recursos do Template e informaccedilatildeo

relativa a cada recurso base Toda a disponibilizaccedilatildeo de informaccedilatildeo e as

acccedilotildees associadas aos Templates estatildeo configuradas neste ficheiro

55 Camada ServiccedilosLoacutegica

Como referido (ver 51) a comunicaccedilatildeo entre a camada de apresentaccedilatildeo e a

loacutegicaserviccedilos assenta num protocolo REST e usa XML e JSON como formato para

enviar e receber informaccedilatildeo usando HTTP e URI (operaccedilotildees CRUD - Create Read

Update e Delete) [29]

Figura 31 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull

Por seu lado o REST assenta em quatro princiacutepios fundamentais 1) Recurso

cada recurso tem uma identificaccedilatildeo uacutenica e global associada ao URI

httpexemplocomencomenda20121088563 2) Acesso usando URIs acede-se a

um recurso por um ID uacutenico e global independente da sua localizaccedilatildeo 3) Formatos

um recurso pode ser representado em diferentes formatos por exemplo HTML XML

ou JSON sendo a escolha ditada pela finalidade especiacutefica de utilizaccedilatildeo do recurso

4) Comunicaccedilatildeo stateless - o cliente pode receber toda a informaccedilatildeo necessaacuteria num

primeiro contacto com o servidor executar o processamento e finalmente ligar-se

uma segunda vez ao servidor para reportar os resultados

As APIs usadas e directamente relacionadas com serviccedilos REST foram as

seguintes 1) JAX-RS (JSR 311 - Java Specification Requests) Atualmente parte

42

integrante do Java EE eacute uma API Java para serviccedilos Web RESTfull sobre HTTP

JAVAX-RS como especificaccedilatildeo desta API [30] fornece anotaccedilotildees que simplificam as

configuraccedilotildees 2) Jersey eacute uma implementaccedilatildeo open-source de referecircncia do

JAVAX-RS [31] 3) RestEasy eacute uma outra implementaccedilatildeo do JAVAX-RS com

opccedilotildees de suporte para outros protocolos aleacutem do HTML e que permite conexotildees

assiacutencronas e tem suporte de cache [32]

551 Camada de Serviccedilos

Como sabemos o HP CloudSystem Matrix gere recursos de computaccedilatildeo

armazenamento rede e software de uma forma unificada para oferecer um ambiente

virtualizado e altamente automatizado Contudo natildeo eacute um produto fechado

disponibilizando natildeo soacute um CLI mas tambeacutem uma API com uma WSDL (Web

Service Description Language) que inclui todas as operaccedilotildees possiacuteveis (https ltcms-

ip-addressgt 51443hpiocontrollersoapv5 wsdl)

A camada de serviccedilos eacute um cliente do CSM que funciona segundo o padratildeo

autenticaccedilatildeoperfil-pedido(s)-fecho na fase de autenticaccedilatildeo o utilizador (registado na

infra-estrutura MOE) faz o seu login a partir desse momento estaacute criada uma sessatildeo

que por HTTPS permite o acesso a todos os recursos disponiacuteveis para a combinaccedilatildeo

utilizadorperfil (role)

552 Camada Loacutegica

A camada loacutegica segue o mesmo princiacutepio estaacute centrada nos recursos em termos de

tecnologias usa o protocolo REST para a comunicaccedilatildeo clienteservidor e a

linguagem Java para o desenvolvimento

A realizaccedilatildeo foi idealizada numa prespectiva hieraacuterquica o que facilita a

compreensatildeo de toda a estrutura O menu lateral esquerdo eacute exemplo disso mesmo a

estrutura em aacutervore espelha esta ideia simples mas eficaz os recursos comeccedilam por

ser apresentados como listas sobre as quais podemos realizar acccedilotildeesfunccedilotildees ldquode

grupordquo pois satildeo apenas aquelas que satildeo comuns a todos os membros da lista mas agrave

medida que nos vamos aproximando das folhas da estrutura em aacutervore as

acccedilotildeesfunccedilotildees ficam mais especiacuteficas relativamente aos recursos-alvo

Por exemplo quando se realiza a acccedilatildeo ldquoPower ONrdquo a um grupo de

servidores todos os servidores do grupo satildeo ligados quando se efectua essa mesma

acccedilatildeo sobre um servidor apenas o servidor seleccionado eacute ligado

A disponibilizaccedilatildeo de informaccedilatildeo relativa a grandes ldquoconjuntos de dadosrdquo

como eacute o caso de listagens de pedidos de acccedilotildees de sessotildees remotas de snapshots

de stereotype disks de software e de subnets foi realizada com datagrids (tabelas)

para melhor visualizaccedilatildeo

43

As acccedilotildeesfunccedilotildees disponibilizadas estatildeo distribuiacutedas pelas tabs respectivas e

executam serviccedilos no niacutevel em que se encontram disponibilizadas A tiacutetulo de

exemplo as acccedilotildees que se encontram disponiacuteveis para execuccedilatildeo no grupo de

servidores apenas podem ser encontradas no tab ldquoGrouprdquo e reflectem-se sobre todos

os membros do grupo Uma acccedilatildeo especiacutefica de servidor encontra-se somente

disponiacutevel na tab ldquoServerrdquo e afecta apenas e soacute esse servidor

Segue-se uma descriccedilatildeo natildeo exaustiva da camada loacutegica nuacutecleo desta

framework desde a sua inicializaccedilatildeo ateacute aos recursos e moacutedulos principais

5521 Init

Aquando da inicializaccedilatildeo da aplicaccedilatildeo e no seguimento do login do utilizador eacute

desencadeada uma sequencia de pedidos ao servidor por informaccedilotildees relativas aos

Templates do Cataacutelogo de Serviccedilos e de todos os Serviccedilos do utilizador Se as

permissotildees associadas ao utilizador for de simples utilizador do webservice visualiza

apenas as instacircncias que criou jaacute um utilizador com permissotildees de administraccedilatildeo

visualiza os seus serviccedilos e todos os serviccedilos dos restantes utilizadores

Tabela 1 - Funccedilotildees associadas agrave inicializaccedilatildeo do Webservice

Funccedilatildeo Descriccedilatildeo

getVersion Funccedilatildeo de teste Obteacutem a informaccedilatildeo da versatildeo da API

principal Funccedilatildeo usada aquando do login do utilizador Obteacutem os

detalhes do utilizador como USERNAME e ROLE

listAllDataDetailsJson Funccedilatildeo usada apoacutes login do utilizador e iniciaccedilatildeo da

aplicaccedilatildeo Obteacutem os detalhes dos Serviccedilos associados ao

Utilizador Lista a informaccedilatildeo de todos os Templates e

Serviccedilos do Utilizador no formato JSON Funccedilatildeo para uso

excluivo do webservice

downloadTabJsonView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa aos recursos do Utilizador em formato

JSON Eacute criado um ficheiro com extenccedilatildeo JSON

downloadTabXmlView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa aos recursos do Utilizador em formato

XML Eacute criado um ficheiro com extenccedilatildeo XML

44

listEnumsJson Funccedilatildeo usada apoacutes login do utilizador e iniciaccedilatildeo da

aplicaccedilatildeo Obteacutem os detalhes de todos os ENUMS possiacuteveis

no webservice Lista a informaccedilatildeo de todos os ENUMS no

formato JSON Funccedilatildeo para uso excluivo do webservice

listEnumsXml Menu lateral direito do webservice Opccedilatildeo de visualizaccedilatildeo da

informaccedilatildeo relativa agraves opccedilotildees ENUMS possiveis no

webservice

downloadTabEnumsView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa agraves opccedilotildees ENUMS possiveis no

webservice Eacute criado um ficheiro com extenccedilatildeo XML com a

informaccedilatildeo visualizada

listAllDataDetailsXml Menu lateral direito do webservice Opccedilatildeo de visualizaccedilatildeo da

informaccedilatildeo relativa ao Utilizador em formato XML

5522 Template

Como jaacute referido o desenhoconstruccedilatildeo dos Templates fica a cargo do Arquitecto do

MOE que desenha esses mesmos Templates mediante pedido especifico de um

determinado utilizador tendo em vista um grupo de utilizadores infra-estrutura

disponibilizada ideias preacute-definidas resposta a uma ou mais situaccedilotildees especiacuteficas

etc

Nos detalhes gerais do Template obtemos informaccedilotildees como o nome do

Template a data de criaccedilatildeo e modificaccedilatildeo versatildeo custo geral se eacute ou natildeo

customizaacutevel e o numero de ServerGroups associados assim como discos e serviccedilos

que jaacute foram criados tendo por base este template

Todos os detalhes do Template ficam disponiacuteveis ao utilizador 1) Grupo de

servidores com informaccedilotildees como nome quantidade miacutenima de servidores e que seraacute

a base do serviccedilo criado e quantidade maacutexima de servidores sinal que o serviccedilo

poderaacute crescer em termos de quantidade de servidores Tipo de cluster e o nuacutemero de

servidores loacutegicos existentes no grupo 2) Servidores onde o utilizador obteacutem

informaccedilotildees como nome hostname tipo de virtualizaccedilatildeo memoacuteria usada e

quantidade maacutexima de memoacuteria processadores usados e quantidade maacutexima de

processadores se eacute ou natildeo virtual e se estaacute ou natildeo em cloud 3) Custos em detalhes

ficam disponiacuteveis ao utilizador Informaccedilotildees sobre custo total custo de base por cada

servidor custo por processador e memoacuteria 3) Os discos tambeacutem apresentam

informaccedilatildeo como nome tipo de storage tamanho raid level se eacute ou natildeo bootable

shareable e custo do disco 4) Software preacute-instalado ou instalado posteriormente pelo

utilizador Informaccedilotildees como nome tipo OS e virtualizaccedilatildeo estatildeo disponiacuteveis 5)

Interfaces com informaccedilotildees como nome da interface se eacute ou natildeo primaacuteria

45

redundacircncia subnet publica shareable tipo de IP endereccedilo DHCP activo ou natildeo e

custo final

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa a Templates

Figura 32 - Execuccedilatildeo tab ldquoTemplaterdquo

Export All Templates

Acccedilatildeo disponiacutevel apenas ao administrador permite o download em

ficheiro XML dos detalhes de todos os Templates para que o administrador possa

consultar essa informaccedilatildeo em modo offline se assim o entender Detalhes que

ficam disponiacuteveis para visualizaccedilatildeo no clique do iacutecon Template no menu lateral

esquerdo

O ficheiro XML pode depois ser visualizado mesmo no browser ou

qualquer programa que suporte essa visualizaccedilatildeo como eacute o caso do Notepad++

Export Template

Acccedilatildeo disponiacutevel apenas ao administrador permite o download em

ficheiro XML dos detalhes do Template em visualizaccedilatildeo igualmente como a

acccedilatildeo ldquoExport All Templatesrdquo o administrador poderaacute consultar mais tarde em

modo offline se assim o entender Detalhes que ficam disponiacuteveis para

visualizaccedilatildeo no clique do icon do nome do Template respectivo no menu lateral

esquerdo

Import Template

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel

adicionar mais Templates ao Cataacutelogo de Serviccedilos ficando assim disponiacutevel ao

utilizador mais opccedilotildees com novas configuraccedilotildees A leitura eacute feita directamente de

um ficheiro XML natildeo eacute admissiacutevel outro tipo de formato

Delete Template

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel

remover um Templates do Cataacutelogo de Serviccedilos Como todos os Serviccedilos tem por

base um Template a remoccedilatildeo de um Template implica a remoccedilatildeo de todos os

46

Serviccedilos que tem como base esse Template Tal situaccedilatildeo eacute salvaguardada

obrigando o administrador a clicar em OK numa InfoWindow de aviso

XML View

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel a

visualizaccedilatildeo de todos os detalhes do Templates directamente numa InfoWindow

dentro do webservice A informaccedilatildeo em XML torna-se vantajosa ao administrador

para a visualizaccedilatildeo de detalhes mais pormenorizados e organizaccedilatildeo de toda a

infra-estrutura

Export All Services

Acccedilatildeo que agrave semelhanccedila do ldquoExport All Templatesrdquo permite o download

em ficheiro XML dos detalhes de todos os Serviccedilos associados ao Template em

visualizaccedilatildeo e a um determinado utilizador para que possa consultar em modo

offline se assim o entender Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no

clique do iacutecon Service no menu lateral esquerdo

O ficheiro XML pode depois ser visualizado no browser ou qualquer

programa que suporte essa visualizaccedilatildeo como eacute o caso do Notepad++

Create Service

Finalmente a acccedilatildeoobjectivo de todo o webservice a criaccedilatildeo e

disponibilizaccedilatildeo de Serviccedilos Como jaacute foi referido um Serviccedilo tem como base um

Template por isso na visualizaccedilatildeo dos detalhes do Template esta opccedilatildeo estaacute

disponiacutevel Aquando da criaccedilatildeo de um Serviccedilo este teraacute como base o Template

em visualizaccedilatildeo

Existem campos de preenchimento obrigatoacuterios como nome do serviccedilo

hostname tempo atribuiacutedo ao serviccedilo (1 mecircs por defeito) e email do utilizador

As opccedilotildees ldquoNotesrdquo e ldquoBilling coderdquo satildeo opcionais

All Requests

Todas os pedidos realizados no webservice por um determinado utilizador

ficam disponiacuteveis para visualizaccedilatildeo do seu estado e inclusive desencadear acccedilotildees

nesses mesmos pedidos como cancelamento (percentagem inferior a 100) mediante

decisatildeo do utilizador

A salientar que existem pedidos que carecem da aprovaccedilatildeo do administrador

por isso o pedido poderaacute ficar parado numa determinada percentagem () a espera

dessa aprovaccedilatildeo Se o pedido natildeo necessitar de aprovaccedilatildeo continuaraacute a sua execuccedilatildeo

ateacute estar completo (100) e automaticamente seraacute adicionado ao menu lateral

esquerdo do utilizador

Template Requests

Todas os pedidos associados a um determinado Template por um determinado

utilizador ficam igualmente disponiacuteveis para visualizaccedilatildeo do seu estado

47

Tabela 2 - Funccedilotildees associadas ao Template

Funccedilatildeo Descriccedilatildeo

listTemplates Funccedilatildeo que obtem uma listagem da informaccedilatildeo relativa

aos Templates do Cataacutelogo de Serviccedilos

importTemplate Funccedilatildeo que permite o Upload da informaccedilatildeo relativa a

um Template em formato XML Operaccedilatildeo executada

apenas pelo Administrador ou Arquitecto de toda a

infra-estrutura de orquestraccedilatildeo

exportTemplate Funccedilatildeo que obteacutem toda a informaccedilatildeo relativa a um

Template e permite o download dessa informaccedilatildeo em

formato XML Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura de

orquestraccedilatildeo

exportTemplateList Funccedilatildeo de complemento a toda a informaccedilatildeo dos

Templates do Cataacutelogo de Serviccedilo Uso exclusivo do

webservice

deleteTemplate Funccedilatildeo que permite a remoccedilatildeo de um Template do

Cataacutelogo de Serviccedilos Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura de

orquestraccedilatildeo

listServicesByTemplateName Funccedilatildeo que obteacutem todos os Serviccedilos associados a um

determinado Template Para visualizaccedilatildeo de informaccedilatildeo

e opccedilatildeo de download

5523 Serviccedilo

O Serviccedilo tem sempre como base as definiccedilotildees de um Template e nesse sentido tudo

que o utilizador poderaacute fazer nesse Serviccedilo satildeo acccedilotildees que estatildeo disponiacuteveis nesses

Template como limites miacutenimos e maacuteximos de servidores processadores memoacuteria

etc Outras opccedilotildees como discos e interfaces ficam disponiacuteveis ao utilizador que

poderaacute adicionar se assim o entender com os custos inerentes a este upgrade de

Serviccedilo

Um Serviccedilo eacute composto por dados base relativos a informaccedilotildees gerais desse

Serviccedilo listas de acccedilotildees associadas e uma lista de grupos de servidores sendo que

cada grupo poderaacute ser diferente entre si com recursos funcionalidades e softwares

completamente diacutespares

Assim em termos de informaccedilatildeo disponiacutevel associada ao serviccedilo o utilizador

poderaacute obter o nome do serviccedilo id (apenas acessiacutevel ao administrador) notas status

48

o Template base que lhe deu origem data de criaccedilatildeo e ultima data de modificaccedilatildeo o

custo geral do serviccedilo custo fixo o periacuteodo de uso do serviccedilo (por defeito 1 mecircs)

nome do utilizador que criou o serviccedilo organizaccedilatildeo e tamanho das listas associadas

nomeadamente acccedilotildees e grupo de servidores

Os Serviccedilos assim como os Templates ficam disponiacuteveis em listagem no menu

lateral esquerdo num formato em aacutervore intuitivo e raacutepido de selecionar Cada

Serviccedilo fica na cadeia hieraacuterquica do Template que lhe deu origem Associado a cada

Serviccedilo tambeacutem poderemos visualizar nesses mesmo menu todos os recursos

associados a esse Serviccedilo como listagem dos grupos de servidores em cada grupo os

seu servidores e em cada servidor os recursos como discos software e interfaces

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Serviccedilo

Figura 33 - Execuccedilatildeo tab ldquoServicerdquo

Export All Services

Acccedilatildeo que permite o download em ficheiro XML dos detalhes de todos os

Serviccedilos do utilizador permitindo a posterior consulta em modo offline Detalhes

que ficam disponiacuteveis para visualizaccedilatildeo no clique do iacutecons Service no menu

lateral esquerdo

Export Service

Permite o download em ficheiro XML dos detalhes do Serviccedilo em

visualizaccedilatildeo igualmente como a acccedilatildeo ldquoExport All Servicesrdquo o utilizador poderaacute

consultar mais tarde em modo offline os detalhes do serviccedilo Detalhes que ficam

49

disponiacuteveis para visualizaccedilatildeo no clique do icon do nome do Serviccedilo respectivo no

menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Serviccedilo

directamente numa InfoWindow dentro do webservice A informaccedilatildeo em XML

torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Create Service

Mesma acccedilatildeo existente nos Templates Directamente da visualizaccedilatildeo de

um Serviccedilo eacute possiacutevel criar um outro Serviccedilo tendo igualmente por base o

mesmo Template O Serviccedilo criado seraacute igual ao Serviccedilo base em visualizaccedilatildeo

Delete Service

Permite a remoccedilatildeo do Serviccedilo em visualizaccedilatildeo Apoacutes esta acccedilatildeo deixam

de ser cobrado qualquer custo associado ao Serviccedilo que foi removido

Power ON Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo sejam ligados e fiquem disponiacuteveis para utilizaccedilatildeo Esta

acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==OFFrdquo

Power OFF Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo sejam desligados deixando de estar disponiacuteveis para

utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==UPrdquo

Power Cycle Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo faccedilam um reboot e continuem disponiacuteveis para utilizaccedilatildeo

Esta acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==UPrdquo

Activate Service

Permite que todos os Servidores de todos os ServerGroups existentes no

Serviccedilo sejam activados No final desta operaccedilatildeo o Serviccedilo fica em modo

ldquoserviceStatus==UPrdquo e todos os servidores ficam automaticamente disponiacuteveis

para utilizaccedilatildeo

50

Deactivate Service

Permite que todos os Servidores de todos os ServerGroups existentes no

Serviccedilo sejam desactivados No final desta operaccedilatildeo o Serviccedilo fica em modo

ldquoserviceStatus==DEACTIVATEDrdquo

Service Actions

Os ldquotriggered actionsrdquo associadas a cada Template satildeo parte integrante do

Serviccedilo criado Tambeacutem esta informaccedilatildeo estaacute disponiacutevel em forma de listagem

Estas acccedilotildees automaticamente desencadeadas pelo webservice poderatildeo pertencer

ao Serviccedilo propriamente dito ou entatildeo existirem apenas num serverGroup ou ateacute

mesmo apenas num Server

List Remote Session

No final da criaccedilatildeo de um Serviccedilo o objectivo eacute a ligaccedilatildeo as VMs

associadas a esse mesmo Serviccedilo Nesse intuito directamente da tab Serviccedilo

atraveacutes desta acccedilatildeo ficam disponiacuteveis numa lista todas as VMs com os acessos

remotos permissiacuteveis

RDP (Remote Desktop Protocol)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet

VMRC (VMware Remote Console)

Todos os pedidos associados a um determinado Serviccedilo por um

determinado utilizador ficam igualmente disponiacuteveis para visualizaccedilatildeo do seu

estado Quando a listagem de pedidos tem grandes dimensotildees ou se a visualizaccedilatildeo

do pedido diz respeito a este Serviccedilo fazer apenas a listagem dos pedidos pelo

Serviccedilo em causa torna-se mais simples uacutetil e directa

Tabela 3 - Funccedilotildees associadas ao Serviccedilo

Funccedilatildeo Descriccedilatildeo

listServices Detalhes dos Serviccedilos associados a um determinado Utilizador

Para visualizaccedilatildeo de informaccedilatildeo e opccedilatildeo de download O

Administrador obtem todos os Serviccedilos existentes no

webservice

getService Informaccedilatildeo associada a um determinado Serviccedilo Para

visualizaccedilatildeo de informaccedilatildeo e opccedilatildeo de download

createService Criaccedilatildeo de um Serviccedilo

deleteService Remoccedilatildeo de um Serviccedilo associado a um Template

deactivateService Desactivaccedilatildeo de um Serviccedilo

51

activateService Activaccedilatildeo de um Serviccedilo

changeServiceLease Ediccedilatildeo do Lease period asociado a um Serviccedilo

powerOnService Ligar um Serviccedilo

powerOffService Desligar um Serviccedilo

powerCycleService Ligar um Serviccedilo apoacutes reboot

getRemoteSessionsList Listagem de todos os servidores e seus IPs associados para

posterior listagem das sessotildees remotas

5524 Grupo de Servidores

Cada Serviccedilo tem os seus recursos associados nomeadamente uma lista de Grupo de

Servidores onde o utilizador poderaacute obter informaccedilotildees como o nome do Serviccedilo

nome do Grupo de Servidores o Status nuacutemero miacutenimo e maacuteximo de Servidores

uma progressbar com indicaccedilatildeo do nuacutemero de servidores disponiacuteveis no momento se

tem uma sequencia Boot datas de criaccedilatildeo e ultima modificaccedilatildeo e finalmente uma

lista de Servidores

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Grupo de Servidores

Figura 34 - Execuccedilatildeo tab ldquoServerGroupsrdquo

52

Export Server Group

Permite o download em ficheiro XML dos detalhes do Grupo de

Servidores em visualizaccedilatildeo o utilizador poderaacute consultar esses detalhes mais

tarde em modo offline Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no clique

do icon do nome do Grupo de Servidores respectivo no menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Grupo de

Servidores directamente numa InfoWindow dentro do webservice A informaccedilatildeo

em XML torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Add Servers (UP)

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores aumentando o

nuacutemero de Servidores dentro desse Grupo de Servidores Esta opccedilatildeo soacute fica

visiacutevel e acessiacutevel ao utilizador se o limite maacuteximo do nuacutemero de Servidores for

superior ao actualmente existente em utilizaccedilatildeo Limite definido nas

configuraccedilotildees do Serviccedilo que vieram por arrasto das configuraccedilotildees do Template

aquando da criaccedilatildeo desse Serviccedilo Estas alteraccedilotildees implicam o aumento do custo

total do Serviccedilo

Remove Servers (DOWN)

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores diminuindo o

nuacutemero de Servidores dentro desse Grupo de Servidores eacute disponibilizada a lista

de Servidores existentes e o utilizador seleciona um ou mais para remoccedilatildeo Esta

opccedilatildeo soacute fica visiacutevel e acessiacutevel ao utilizador se o limite miacutenimo do nuacutemero de

Servidores for inferior ao actualmente existente em utilizaccedilatildeo Limite definido nas

configuraccedilotildees do Serviccedilo que vieram por arrasto das configuraccedilotildees do Template

aquando da criaccedilatildeo desse Serviccedilo Estas alteraccedilotildees implicam a diminuiccedilatildeo do

custo total do Serviccedilo

Edit ServerGroup

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores relativamente a

memoacuteria e processadores A ediccedilatildeo vai ser efectuada em todos os Servidores do

Grupo de Servidores Como nos limites maacuteximos e miacutenimos de Servidores

tambeacutem os limites de memoacuteria e processadores vieram por arrasto das

configuraccedilotildees do Template aquando da criaccedilatildeo do Serviccedilo Estas alteraccedilotildees

implicam a diminuiccedilatildeo ou aumento do custo total do Serviccedilo

Power ON ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo sejam ligados e fiquem disponiacuteveis para utilizaccedilatildeo Esta acccedilatildeo eacute

dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==OFFrdquo

53

Power OFF ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo sejam desligados deixando de estar disponiacuteveis para utilizaccedilatildeo Esta

acccedilatildeo eacute dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==UPrdquo

Power Cycle ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo faccedilam um reboot e continuem disponiacuteveis para utilizaccedilatildeo Esta acccedilatildeo

eacute dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==UPrdquo

Activate ServerGroup

Permite que todos os Servidores do ServerGroups em visualizaccedilatildeo sejam

activados No final desta operaccedilatildeo o Grupo de Servidores fica em modo

ldquoserverGroupStatus==UPrdquo e todos os servidores ficam automaticamente

disponiacuteveis para utilizaccedilatildeo

Deactivate ServerGroup

Permite que todos os Servidores do ServerGroups em visualizaccedilatildeo sejam

desactivados No final desta operaccedilatildeo o Grupo de Servidores fica em modo

ldquoserverGroupStatus==DEACTIVATEDrdquo

Actions ServerGroup

Como no Serviccedilo os ldquotriggered actionsrdquo associadas a cada Template satildeo

parte integrante do Serviccedilo criado inclusive no Grupo de Servidores Se o Grupo

de Servidores em visualizaccedilatildeo tiver ldquotriggered actionsrdquo esta acccedilotildees estaraacute visiacutevel

ao utilizador para listagem

List Snapshots

Acccedilatildeo que permite listar todos os Snapshots existentes no Grupo de

Servidores

Nessa listagem eacute possiacutevel executar acccedilotildees como ldquoRevert Snapshotrdquo que

reverte um determinado Snapshot para o servidor especiacutefico ou ldquoDelete Snapshotrdquo

que permite a remoccedilatildeo de um Snapshot do sistema

Create Snapshot

Acccedilatildeo que permite a criaccedilatildeo de Snapshots no Grupo de Servidores

Existem campos obrigatoacuterios como o nome do Snapshot e a selecccedilatildeo de

um ou mais servidores de uma lista de servidores pertencentes ao Grupo de

Servidores Opccedilotildees como ldquoInclude Memory Staterdquo ou ldquoQuiesce filesystemrdquo estatildeo

tambeacutem disponiacuteveis para selecccedilatildeo aquando da criaccedilatildeo do Snapshot

54

Add Stereotype Disks

Acccedilatildeo que permite adicionar discos a um Grupo de Servidores O disco

adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores Satildeo

considerados ldquoStereotype Disksrdquo todos os discos existentes no grupo excepto

discos de boot

Qualquer acccedilatildeo de adiccedilatildeo de discos a um Grupo de Servidores soacute eacute

possiacutevel se natildeo existirem Snapshots relativos a qualquer Servidor desse Grupo de

Servidores

Esta acccedilatildeo lista todos os ldquoStereotype Disksrdquo jaacute existentes O utilizador

seleciona o que deseja clonar (disco base) e eacute adicionado um novo disco ao Grupo

de Servidores Esta acccedilatildeo carece da aprovaccedilatildeo do administrador

Add Virtual Disks

Acccedilatildeo que permite adicionar discos virtuais a um Grupo de Servidores O

disco adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores

Existem campos de preenchimento obrigatoacuterio como o nome do disco e

tamanho O webservice fornece um nome uacutenico e 10Gb de tamanho por defeito o

utilizador pode alterar estes campos Esta acccedilatildeo carece da aprovaccedilatildeo do

administrador Aleacutem de aprovar ou desaprovar este pedido pode inclusive definir

um novo custo

Add Physical Disks

Acccedilatildeo que permite adicionar discos fiacutesicos a um Grupo de Servidores O

disco adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores

Igualmente como a adiccedilatildeo de discos virtuais existem campos de

preenchimento obrigatoacuterio como o nome do disco tamanho e nesta opccedilatildeo o tipo

de RAID Acccedilatildeo que carece igualmente da aprovaccedilatildeo do administrador

Tabela 4 - Funccedilotildees associadas ao Grupo de Servidores

Funccedilatildeo Descriccedilatildeo

getLogicalServerGroup Obteacutem os detalhes associados a um Grupo de

Servidores Loacutegico em XML para visualizaccedilatildeo na

infowindow e opccedilatildeo de download

addServersToLogicalServerGroup Adiciona um Servidor a um Grupo de Servidores

Opccedilatildeo permissvel apenas se o nuacutemero de servidores

activos (ldquoactiveServerCountrdquo) for menor que o

nuacutemero maacuteximo de servidores

(ldquomaxServerCountrdquo)

55

removeServersFromLogicalServerGr

oup

Remove um Servidor de um Grupo de Servidores

Loacutegicos Opccedilatildeo permissvel apenas se o nuacutemero

miacutenimo de servidores (variaacutevel ldquominServerCountrdquo)

for menor que o nuacutemero de servidores activos

(variaacutevel ldquoactiveServerCountrdquo)

editLogicalServersServersGroup Permite a ediccedilatildeo de todos os Servidores

pertencentes a um Grupo de Servidores Loacutegicos

powerOnLogicalServersGroup Liga todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

powerOffLogicalServersGroup Desliga todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

powerCycleLogicalServersGroup Faz o reboot de todos os Servidores que pertencem

a um mesmo Grupo de Servidores Loacutegicos

activateLogicalServerGroup Activa todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

deactivateLogicalServerGroup Desactiva todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

5525 Servidores

Um Grupo de Servidores eacute constituiacutedo por uma lista de Servidores Cada grupo como

jaacute foi referido pode ser completamente diacutespar dos demais dentro de um mesmo

Serviccedilo O mesmo jaacute natildeo acontece nos Servidores dentro de um mesmo Grupo de

Servidores As configuraccedilotildees dos Servidores dentro de um mesmo Grupo de

Servidores tem todos as mesmas caracteriacutesticas podendo variar apenas no numero de

discos memoacuteria e processamento

O utilizador poderaacute obter informaccedilotildees como nome do Servidor status se eacute ou

natildeo virtual se estaacute em cloud se eacute o servidor base memoacuteria e processamento para

futuros upgrades com progressbars para facilmente visualizar o estado actual custo

datas de criaccedilatildeo e modificaccedilatildeo localizaccedilatildeo do ficheiro da VM (acessiacutevel apenas ao

administrador) e as listas associadas de discos software e interfaces

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa aos Servidores

56

Figura 35 - Execuccedilatildeo tab ldquoServerrdquo

Export Server

Permite o download em ficheiro XML dos detalhes do Servidor em

visualizaccedilatildeo o utilizador poderaacute consultar mais tarde em modo offline os detalhes

desse Servidor Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no clique do

icon do nome do Servidor respectivo no menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Servidor

directamente numa InfoWindow dentro do webservice A informaccedilatildeo em XML

torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Remove Server

A diferenccedila desta acccedilatildeo no Servidor para a mesma acccedilatildeo no Grupo de

Servidores eacute o facto da remoccedilatildeo ser do Servidor em visualizaccedilatildeo Para remover

mais do que um Servidor essa operaccedilatildeo teraacute obrigatoriamente que ser no Grupo

de Servidores

57

Edit Server

Como na remoccedilatildeo de servidores a diferenccedila desta acccedilatildeo para a mesma

acccedilatildeo no Grupo de Servidores eacute que a ediccedilatildeo de Servidores na tab Servidor apenas

afectaraacute o Servidor em visualizaccedilatildeo e natildeo os restantes Servidores do Grupo de

Servidores

Power ON Server

Acccedilatildeo que permite a ligaccedilatildeo do Servidor em visualizaccedilatildeo e que este fique

disponiacutevel para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica

activa quando ldquoserverStatus==OFFrdquo

Power OFF Server

Acccedilatildeo que permite que um Servidor seja desligado e que este fique

indisponiacutevel para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica

activa quando ldquoserverStatus==UPrdquo

Power Cycle Server

Acccedilatildeo que permite fazer o reboot a um Servidor e este continue disponiacutevel

para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica activa quando

ldquoserverStatus==UPrdquo

Activate Server

Permite a activaccedilatildeo do Servidor em visualizaccedilatildeo No final desta operaccedilatildeo

o Servidor fica em modo ldquoserverStatus==UPrdquo e ficam automaticamente disponiacutevel

para utilizaccedilatildeo

Deactivate Server

Permite a desactivaccedilatildeo do Servidor em visualizaccedilatildeo No final desta

operaccedilatildeo o Servidor fica em modo ldquoserverStatus==DEACTIVATEDrdquo

Actions Server

Como no Grupo de Servidores os ldquotriggered actionsrdquo associadas a cada

Servidor satildeo parte integrante do Serviccedilo criado Se o Servidor em visualizaccedilatildeo

tiver ldquotriggered actionsrdquo esta acccedilatildeo estaraacute visiacutevel ao utilizador para listagem

List Snapshots

Acccedilatildeo que permite listar todos os Snapshots associados ao Servidor em

visualizaccedilatildeo Todas as acccedilotildees nos Snapshots satildeo relativas ao Servidor em questatildeo

Create Snapshot

Acccedilatildeo que permite a criaccedilatildeo de Snapshots no Servidor

Existem campos obrigatoacuterios como o nome do Snapshot O nome do

Servidor eacute preenchido automaticamente com o nome do Servidor que estaacute a ser

visualizado Opccedilotildees como ldquoInclude Memory Staterdquo ou ldquoQuiesce filesystemrdquo

estatildeo tambeacutem disponiacuteveis para selecccedilatildeo aquando da criaccedilatildeo do Snapshot

58

List ServerPool

Acccedilatildeo que permite a listagem de todas as pools de Servidores existentes no

webservice Na imagem seguinte podemos visualizar quatro pools de Servidores

que foram criadas pelo administrador

ldquoCreate Server Poolrdquo eacute uma acccedilatildeo atribuiacutedas apenas ao administrador com

campos obrigatoacuterios como nome da Pool

ldquoDelete Server Poolrdquo eacute outra acccedilatildeo atribuiacutedas apenas ao administrador

permitindo a remoccedilatildeo de uma Pool de Servidores do sistema

Esta operaccedilatildeo natildeo remove Servidores nem Serviccedilos mas remover todas as

associaccedilotildees jaacute existentes entre Servidores e utilizadores Como acccedilatildeo importante

o webservice evidencia isso mesmo com uma InfoWindow de aviso ao

administrador

VM Host

Acccedilatildeo que permite a listagem de todos os hosts fiacutesicos associados a uma

determinada Pool de Servidores

Nesta operaccedilatildeo obtecircm-se detalhes relativos ao host como eacute o caso do

nome id endereccedilo IP domiacutenio DNS tipo de virtualizaccedilatildeo modelo cluster

memoacuteria total e consumida dados dos processadores e ainda dados relativos ao

armazenamento (DataStores) e rede (VirtualSwitch)

Remote Session

Acccedilatildeo que permite a listagem de todas as Sessotildees Remotas atribuiacutedas ao

Servidor em visualizaccedilatildeo

Esta acccedilatildeo eacute dependente do status do Servidor fica activa quando

ldquoserverStatus==UPrdquo

A imagem seguinte evidencia as duas ligaccedilotildees existentes para a VM do

Servidor especiacutefico Duas ligaccedilotildees relativas agraves duas Interfaces disponiacuteveis no

Servidor uma na rede ldquoHP Networkrdquo com o endereccedilamento IP 16231875 e

outra na rede local da infra-estrutura rede ldquoCloudSystemrdquo com o endereccedilamento

IP 19216810203

As opccedilotildees de Sessotildees Remotas possiacuteveis satildeo as que jaacute foram descritas na

listagem das ldquoRemote Sessionsrdquo do Serviccedilo Neste caso direccionadas apenas ao

um uacutenico Servidor

Tabela 5 - Funccedilotildees associadas aos Servidores

Funccedilatildeo Descriccedilatildeo

getLogicalServer Obteacutem os detalhes de um Servidor Logico em formato XML

para visualizaccedilatildeo na infowindow e opccedilatildeo de download

59

findLogicalServer Obteacutem os Detalhes de um Servidor Loacutegico especiacutefico

addServer Addiciona um Servidor a um Grupo de Servidores Loacutegicos

se o nuacutemero de servidores activos (variaacutevel

ldquoactiveServerCountrdquo) for menor que o nuacutemero maacuteximo de

servidores (variaacutevel ldquomaxServerCountrdquo)

removeServer Remove um Servidor de um Grupo de Servidores Loacutegicos se

o nuacutemero miacutenimo de servidores (variaacutevel

ldquominServerCountrdquo) for menor que o nuacutemero de servidores

activos (variaacutevel ldquoactiveServerCountrdquo)

editLogicalServer Permite a ediccedilatildeo de memoacuteria e processamento de um

determinado Servidor Loacutegico

powerOnLogicalServer Liga um Servidor Loacutegico especiacutefico

powerOffLogicalServer Desliga um Servidor Loacutegico especiacutefico

powerCycleLogicalServer Reboot de um Servidor Loacutegico especiacutefico

activateLogicalServer Activaccedilatildeo de um Servidor Loacutegico especiacutefico

deactivateLogicalServer Desactivaccedilatildeo de um Servidor Loacutegico especiacutefico

getRdpFile Obteacutem o ficheiro RDP para download e posterior acesso

remoto

getLogicalServersAndIPs Obteacutem uma lista de todos os IPs das Interfaces de um

determinado Servidor Loacutegico

getVmHost Obteacutem os detalhes do Host associado a um Servidor Loacutegico

5526 Disco

Cada servidor tem necessariamente um ou mais discos associados estes podem ser

rotulados de ldquoStereotyperdquo ldquoVirtualrdquo ou ldquoPhysicalrdquo Um disco ldquoStereotyperdquo

corresponde a um disco-base ie um disco que existe no template (do servidor)

excepto disco de boot os restantes como o proacuteprio nome indica satildeo discos virtuais

ou fiacutesicos

Nesta tab o utilizador pode obter informaccedilatildeo do nome do disco tamanho tipo

de RAID tipo de Storage se eacute ou natildeo Bootable Shareable tipo de Raw Mapping

(VIRTUAL PHYSICAL NONE e OTHER) custo associado ficheiro do disco

(virtual - acessiacutevel apenas ao administrador) e data de criaccedilatildeo e modificaccedilatildeo

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa aos discos

60

Figura 36 - Execuccedilatildeo tab ldquoDisksrdquo

Add Stereotype Disks

Acccedilatildeo jaacute enunciada no Grupo de Servidores Como estamos a visualizar

um disco e as suas configuraccedilotildees esta acccedilatildeo estaraacute apenas disponiacutevel se o disco

em visualizaccedilatildeo natildeo for bootable Como jaacute referido apenas os discos que natildeo

sejam bootable satildeo considerados ldquoStereotype Disksrdquo e poderatildeo ser criados novos

discos com base no disco em questatildeo

Como no Grupo de Servidores tambeacutem nos discos esta opccedilatildeo soacute seraacute

possiacutevel se natildeo existirem Snapshots relativos a qualquer Servidor desse Grupo de

Servidores Esta acccedilatildeo carece da aprovaccedilatildeo do administrador

Tabela 6 - Funccedilotildees associadas aos Discos

Funccedilatildeo Descriccedilatildeo

addDiskToLogicalServerGroup Adiciona um Stereotype Disk a um Grupo de

Servidores Loacutegicos Operaccedilatildeo que carece da aprovaccedilatildeo

do Administrador

addNewDiskToLogicalServerGro

up

Adiciona um disco virtual ou fiacutesico a um Grupo de

Servidores Loacutegicos Operaccedilatildeo que carece da aprovaccedilatildeo

do Administrador O tamanho do disco eacute

automaticamente determinado pelo tipo do Grupo de

Servidor Loacutegico

61

5527 Software

Recursos como Software tambeacutem fazem parte dos recursos do Servidor Mediante a

instalaccedilatildeo preacutevia do ldquoServer Automationrdquo no MOE aquando da criaccedilatildeo do Template

poderatildeo ser associados nos recursos de cada Servidor uma lista de software como lista

de packages com SO software antiviacuterus base de dados etc previamente instalados

em VM e posteriormente transformados em Tamplate

Cada Servidor pertencente a um mesmo Grupo de Servidores teraacute uma mesma

lista de software base associado

Informaccedilotildees relativas ao software tambeacutem estatildeo disponiacutevel ao utilizador como

nome tipo tipo de OS tipo de Deployment Service ficheiro de configuraccedilatildeo do OS

(acessiacutevel apenas ao administrador) tipo de virtualizaccedilatildeo localizaccedilatildeo do ficheiro

relativo ao software (acessiacutevel apenas ao administrador) e data de criaccedilatildeo e

modificaccedilatildeo

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Software

Figura 37 - Execuccedilatildeo tab ldquoSoftwarerdquo

List Softwares

Acccedilatildeo disponiacutevel apenas ao administrador permite a listagem de todo o

Software disponiacutevel no sistema O software pertencente ao Grupo de

ServidoresServidor estaacute disponiacutevel directamente no menu lateral esquerdo

Mediante a instalaccedilatildeo preacutevia do ldquoServer Automationrdquo no MOE aquando

da criaccedilatildeo do Template poderaacute ser associado nos recursos de cada Grupo de

ServidoresServidor uma lista de software como lista de packages com SO

software antiviacuterus base de dados etc

Software Detals

Acccedilatildeo disponiacutevel apenas ao administrador permite a visualizaccedilatildeo de todos

os detalhes do Software

62

Tabela 7 - Funccedilotildees associadas ao Software

Funccedilatildeo Descriccedilatildeo

listSoftware Obteacutem a lista de todo o Software disponiacutevel no

webservice Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura

de orquestraccedilatildeo

getSoftware Obteacutem os detalhes de um Software especiacutefico

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

5528 Interface

As Interfaces (NICs) fazem igualmente parte das configuraccedilotildees base de cada Servidor

podendo no entanto existir redundacircncia ou natildeo

Informaccedilotildees das Interfaces disponiacutevel na tab respectiva como nome se eacute a

interface primaacuteria data de criaccedilatildeo modificaccedilatildeo e informaccedilotildees sobre a rede como

nome se eacute puacuteblica partilhada tipo e endereccedilo IP com informaccedilotildees como o endereccedilo

IP propriamente dito tipo de atribuiccedilatildeo custo e uma lista de NatEntrys (Network

Address Translation)

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa as Interfaces

Figura 38 - Execuccedilatildeo tab ldquoInterfacerdquo

List Subnets

Acccedilatildeo disponiacutevel apenas ao administrador permite a listagem de todas as

redes existentes no sistema com informaccedilotildees como nome da rede endereccedilo

mascara source tipo de IP se eacute uma rede puacuteblica e os endereccedilamentos DHCP e

estaacutecticos nuacutemero de IPs usados e em uso etc

63

Add IPAddress

Acccedilatildeo que permite atribuir automaticamente (pelo sistema) um IP

flutuante a uma Interface Uma Interface associada a um Servidor dentro de um

determinado Serviccedilo

Com esta acccedilatildeo o utilizador solicita um IP flutuante de uma pool de IPs

que o administrador tenha criado Nesse sentido o utilizador apenas solicita um IP

flutuante para uma Interface (NIC0) de um determinado Servidor pertencente a

um Serviccedilo Como o utilizador estaacute a visualizar a Interface os campos satildeo

automaticamente preenchidos Operaccedilatildeo apenas permitida em servidores loacutegicos

em cloud

Remove IPAddress

Acccedilatildeo que permite remover um IP flutuante Neste caso o utilizador tem

que fornecer o endereccedilo IP flutuante previamente adquirido

Move IPAddress

Acccedilatildeo que permite mover um determinado IP flutuante entre instacircncias

Na eventualidade do utilizador jaacute for detentor de um IP flutuante pode move-lo

atribuindo-o agrave Interface em visualizaccedilatildeo Operaccedilatildeo apenas permitida em

servidores loacutegicos em cloud

VM Access

Acccedilotildees de acesso remoto directamente na Interface

Esta acccedilotildees satildeo dependente do status do Servidor ficam activas quando

ldquoserverStatus==UPrdquo

Como estamos directamente a visualizar uma Interface o acesso remoto eacute

feito atraveacutes dessa Interface desse IP conhecido

As opccedilotildees de Sessotildees Remotas possiacuteveis satildeo as que jaacute foram descritas na

listagem das ldquoRemote Sessionsrdquo do Serviccedilo

RDP (Remote Desktop Protocol)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet

VMRC (VMware Remote Console)

Tabela 8 - Funccedilotildees associadas agraves Interfaces

Funccedilatildeo Descriccedilatildeo

getVMID Obteacutem o ID de uma VM atarveacutes do endereccedilo IP da

Interface

64

executeRDP Execuccedilatildeo directa do comando RDP mstscexe

vIPAddress console

addFloatingIPAddress Adiciona automaticamente um endereccedilo IP flutuante a

uma determinada Interface Operaccedilotildees de IP flutuante natildeo

satildeo suportadas para Servidores Loacutegicos que natildeo estejam

em cloud

removeFloatingIPAddress Remove um determinado endereccedilo IP flutuante de um

Servidor Loacutegico Operaccedilotildees de IP flutuante natildeo satildeo

suportadas para Servidores Loacutegicos que natildeo estejam em

cloud

moveFloatingIPAddress Associa um determinado endereccedilo IP flutuante jaacute

existente a uma Interface Operaccedilotildees de IP flutuante natildeo

satildeo suportadas para Servidores Loacutegicos que natildeo estejam

em cloud

5529 Redes

As Redes como o Software teratildeo que estar previamente configuradas e

implementadas para posterior uso em Templates e Serviccedilos A listagem de redes

existentes na infra-estrutura estaacute apenas disponiacutevel ao Administrador ou Arquitecto de

toda a infra-estrutura de orquestraccedilatildeo e permite a visalizaccedilatildeo de todas as redes

existentes com informaccedilotildees como o nome da rede gama de endereccedilos IP mascara

tipo de IPV e se eacute um endereccedilamento estaacutectico ou obtido por DHCP

Figura 39 - Listagem das redes existentes

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa agraves Redes

65

Tabela 9 - Funccedilotildees associadas agraves Redes

Funccedilatildeo Descriccedilatildeo

listSubnets Obteacutem uma lista com todas as redes existentes no

webservice

listSubnet Obteacutem os detalhes de uma rede especiacutefica

55210 Snapshots

Os Snapshots satildeo um recurso valioso quando nos deparamos com problemas de

inconsistecircncias desastres seguranccedila etc que natildeo sendo backup permite a

recuperaccedilatildeo do servidor em segundos contrariamente a restauraccedilatildeo a partir de um

backup tradicional recuperaccedilatildeo ou reinstalaccedilatildeo de um SO ou qualquer outra teacutecnica

com o seu exagerado tempo de consolidaccedilatildeo

A listagem de todos os Snapshots estaacute disponiacutevel aquando da visualizaccedilatildeo da

informaccedilatildeo relativa ao Grupo de Servidores onde satildeo visualizados todos os Snapshots

pertencentes ao grupo e no Servidor onde apenas satildeo visualizados os Snapshots desse

Servidor em visualizaccedilatildeo

Uma lista relacionada de Snapshots sucessivos com informaccedilotildees como nomes

do Serviccedilo do Grupo de Servidores e do Servidor assim como nome do Snapshot a

sua relaccedilatildeo parental e se estaacute ou natildeo activo ficam disponiacuteveis ao utilizador

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa aos Snapshots

Figura 40 - Execuccedilatildeo tab ldquoSnapshotrdquo

Tabela 10 - Funccedilotildees associadas aos Snapshots

Funccedilatildeo Descriccedilatildeo

listServerSnapshots Obteacutem a listagem de todos os Snapshots de um Servidor

Loacutegico especiacutefico

listServerGroupSnapshots Obteacutem a listagem de todos os Snapshots de um Grupo de

Servidor Loacutegico

66

snapshotCreate Cria um Snapshot de um Servidor especiacutefico

revertServerSnapshot Reverte um determinado Snapshot para o Servidor

correspondente

deleteServerSnapshot Remove um Snapshot do sistema

55211 Request

A visualizaccedilatildeo do estado actual das acccedilotildees do utilizador eacute considerado um dos pontos

chave desta framework O simples update da ldquoprogressbarrdquo carece de uma perfeita

sincronizaccedilatildeo entre o Webservice e o MOE

O utilizador poderaacute visualizar sempre uma listagem de todos os seus pedidos ou

pormenoriza-los por relaccedilotildees 1) UtilizadorServiccedilos 2) TemplateServiccedilos 3)

Serviccedilo

A listagem de todos os pedidos estaacute disponiacutevel aquando da visualizaccedilatildeo da

informaccedilatildeo relativa a qualquer recurso sendo que a opccedilatildeo 1) eacute geral e sempre

disponiacutevel e as opccedilotildees 2) e 3) satildeo especiacuteficas a recursos em visualizaccedilatildeo Ficam assim

disponiacuteveis informaccedilotildees como tipo data submissatildeo do pedido comeccedilo e fim status

progresso () nome do Serviccedilo ao qual o pedido estaacute associado etc

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo da listagem

dos pedidos do utilizador

Figura 41 - Execuccedilatildeo tab ldquoRequestsrdquo

Opccedilotildees como ldquoAproval Staterdquo e ldquoContinuerdquo de pedidos que carecem da

aprovaccedilatildeo do Administrador ficam apenas acessiacuteveis aos utilizadores com permissotildees

de administraccedilatildeo e a opccedilatildeo de cancelamento acessiacutevel aos utilizadores que solicitaram

esses pedidos

67

Tabela 11 - Funccedilotildees associadas aos Requests

Funccedilatildeo Descriccedilatildeo

listRequests Listagem de todos os pedidos do utilizador

listRequestsTemplateDetails Listagem de todos os pedidos do par utilizadorTemplate

listRequestsServiceDetails Listagem de todos os pedidos do par utilizadorServiccedilo

getRequestInfo Obteacutem detalhes de toda a informaccedilatildeo associada a um

determinado pedido

getPercentComplete Obteacutem a percentagem de um pedido

getRequest Obteacutem os detalhes particulares de um pedido

setRequestApprovalState Aprovaccedilatildeo de um pedido feito por um utilizador e que

esteja no estado PAUSED_FOR_APPROVAL

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

continueRequest Permite a continuaccedilatildeo de um pedido feito por um

utilizador e que esteja no estado IN_PROGRESS

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

cancelRequest Cancelamento de um pedido

55212 Pools de Servidores

Uma pool de servidores eacute um grupo de um ou mais hosts de virtualizaccedilatildeo com a uma

mesma arquitetura com acesso agraves mesmas redes virtuais e fiacutesicas e recursos de

armazenamento As Pools de servidores permitem balanceamento de carga recursos

de alta disponibilidade e partilha de alguns recursos para todos os membros dessa

pool

Informaccedilotildees das Pools disponiacutevel na tab respectiva como nome ID da

organizaccedilatildeo Ids dos Hosts e o grupo de utilizadores associados a cada Pool de

Servidores

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa a uma determinada Pool de Servidores

68

Figura 42 - Execuccedilatildeo tab ldquoServerPoolsrdquo

Tabela 12 - Funccedilotildees associadas agraves Pools de Servidores

Funccedilatildeo Descriccedilatildeo

listServerPools Obteacutem uma listagem de todas as Pools de Servidores para

a criaccedilatildeo de um Serviccedilo

listServerPoolsTab Obteacutem todas as Pools de Servidores existentes no

webservice Informaccedilatildeo disponibilizada na tab

serverPools

listVmHostIds Obteacutem uma lista com todos os Hosts associados a uma

Pool de Servidores

getServerPool Obteacutem os detalhes de uma Pool de Servidores

createServerPool Permite a criaccedilatildeo de uma nova Pool de Servidores

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

deleteServerPool Remove uma Pool de Servidores do systema Operaccedilatildeo

executada apenas pelo Administrador ou Arquitecto de

toda a infra-estrutura de orquestraccedilatildeo

56 Camada de Dados

Numa orientaccedilatildeo a objectos os objectos considerados ldquopersistentesrdquo satildeo todos os

objectos que continuam a existir apoacutes o teacutermino de execuccedilatildeo do programa por norma

guardados numa base de dados relacional ou mesmo em ficheiros em disco Jaacute os

objectos considerados ldquonatildeo persistentesrdquo deixam de existir quando o programa

termina satildeo objectos armazenados em tempo de execuccedilatildeo e satildeo usados apenas

durante esse periacuteodo

561 Dados natildeo persistentes

Os dados natildeo persistentes nesta framework destinam-se exclusivamente ao

utilizador permissotildees de acesso e seguranccedila Internamente o servidor guarda em

tempo de execuccedilatildeo dados relativos ao utilizador como eacute o caso do username

69

(userPrincipal) password (IOClientPasswordHandler) privileacutegios de acesso

(rolePrincipal) grupo de utilizadores (userGroups) e credenciaccedilotildees necessaacuteria

(TrustAllX509TrustManager) para comunicaccedilatildeo com a API do MOE A comunicaccedilatildeo

eacute estabelecida (IOSoapServicePort_Client) e quando existir a solicitaccedilatildeo de

determinados conteuacutedos estes satildeo disponibilizados ou natildeo mediante o ldquotipordquo (role)

de utilizador e suas permissotildees

Neste contexto a autenticaccedilatildeo eacute todo um processo de determinar se uma

entidade eacute quem quem diz ser e a autorizaccedilatildeo o processo de conceder permissotildees de

acesso a recursos Logicamente a autenticaccedilatildeo precede a autorizaccedilatildeo

O moacutedulo login implementa isso mesmo todos os passos de autenticaccedilatildeo

credenciaccedilatildeo e permissotildees uma teacutecnica conhecida como Realm JAAS (Java

Authentication and Authorization Service) como conjunto de interfaces de

programaccedilatildeo de aplicaccedilotildees (APIs) com opccedilotildees de autenticaccedilotildees em modo Basic e

Form usando para isso os denominados realms File e JDBC (Java Database

Connectivity) em runtime

Figura 43 - Realm JAAS (Java Authentication and Authorization Service)

562 Dados persistentes

5621 Cookies HTTP

Os dados persistentes destinam-se especialmente ao utilizador e foram idealizados

nesse sentido tornar a relaccedilatildeo utilizadorwebservice mais amigaacutevel e acima de tudo

praacutetica e independente do ldquostatusrdquo da infra-estrutura

Os tatildeo conhecidos COOKIEs HTTP satildeo dados armazenado no

navegadorbrowser do utilizador quando este acede a um determinado site Eacute um

mecanismo usado para guardar as informaccedilotildees relativas a um utilizador como

username formataccedilatildeo de conteuacutedos actividades escolhas cliques etc para quando

aceder novamente a esse site essas configuraccedilotildees anteriores estarem preacute-definidas e

configuradas

70

Os cookies de autenticaccedilotildees em sites web satildeo o meacutetodo mais comum e nesta

framework este meacutetodo foi usado para guardar dados relativos ao utilizador O

servidor natildeo precisa de suportar o peso das ligaccedilotildees siacutencronas para saber se um

determinado utilizador estaacute logado ou natildeo e neste sentido este meacutetodo torna-se eficaz

Os dados guardados e relativos ao utilizador que satildeo dados como username

role layout do webservice (gtheme) layout do menu lateral esquerdo (ttheme)

informaccedilatildeo relativa agraves regiotildees do webservice visualizada ou omitida (nregion

wregion eregion sregion) e um boolean (islogin) para uma mensagem de boas

vindas aquando do login Cada vez que um determinado utilizador alterar o layout do

webservice ou fechar o painel de visualizaccedilatildeo de determinada informaccedilatildeo satildeo passos

que satildeo guardados e durante toda a navegaccedilatildeo estas acccedilotildees permaneceratildeo guardadas

mesmo em futuros logins desse utilizador

5622 Modelo ER

Uma infra-estrutura como o MOE eacute desenhada e implementada para funcionamento

online e todas as alteraccedilotildees como criaccedilatildeo de um Serviccedilo ediccedilatildeo desse Serviccedilo

criaccedilatildeo de Discos etc satildeo alteraccedilotildees com acccedilatildeo imediata na infra-estrutura

Infelizmente nem tudo corre sempre como queremos e quando mais precisamos de

uma ou outra implementaccedilatildeo ou configuraccedilatildeo eacute quando o serviccedilo estaacute em baixo e por

uma ou outra razatildeo ficamos impossibilitados de o fazer

A implementaccedilatildeo de uma Base de Dados com toda a informaccedilatildeo relativa ao

utilizador colmata sempre estas falhas imprevistas Um implementaccedilatildeo independente

da infra-estrutura que permite ao utilizador ter acesso total aos seus dados crie edite

apague recursos em modo offline com sincronizaccedilatildeo com o MOE automaacuteticamente ou

por acccedilatildeo do utilizador

Um moacutedulo uacutetil e praacutetico que facilita o acesso e configuraccedilotildees dos serviccedilos do

utilizador Acccedilotildees que carecem de algum tempo de implementaccedilatildeo apoacutes a sua

solicitaccedilatildeo Acccedilotildees agarradas ao utilizador ao seu tempo e disposiccedilatildeo e natildeo agrave infra-

estrutura Acccedilotildees tidas pelo utilizador que sem preocupaccedilatildeo com tempos de execuccedilatildeo

e implementaccedilatildeo cria edita ou apaga o seu Serviccedilo e numa futura ligaccedilatildeo tudo eacute

sincronizado automaticamente

Segue-se o modelo ER implementado que descreve conceptualmente os dados

e seus relacionamentos em UML Em realce os principais recursos

71

Figura 44 - Modelo ER

Pela anaacutelise do modelo ER facilmente se percebe como os recursos se

relacionam entre siacute Segue-se uma explicaccedilatildeo do modelo e dos seus recursos

principais

Cada Template tem uma lista de Serviccedilos associados que aquando da sua

implementaccedilatildeo tiveram esse Template como base e apresenta um e um soacute custo total

que corresponde a soma de todos os recursos implementados e permitidos nesse

Template

72

Um Serviccedilo como jaacute referido tem sempre por base um e um soacute Template um

e um soacute ldquoLeasePeriodrdquo que corresponde ao tempo de utilizaccedilatildeo e um e um soacute custo

total associado Este custo eacute igualmente a soma de todos os recursos instanciados e

em uso nesse Serviccedilo No Serviccedilo eacute possiacutevel implementar uma nova Entidade

denominada ldquoServiceActionrdquo que corresponde a um e um soacute conjunto de acccedilotildees a

executar automaticamente antes durante ou depois da criaccedilatildeo desse Serviccedilo O

Serviccedilo encontra-se sempre em um e um soacute estado (ServiceEntityStatusEnum) de cada

vez que eacute acedido Logicamente como referido ao longo do presente relatoacuterio um

Serviccedilo eacute constituiacutedo por uma lista de Grupos de Servidores numa relaccedilatildeo de um para

muitos

Um Grupo de Servidores como o Serviccedilo apresenta tambeacutem um e um soacute

conjunto de acccedilotildees a executar automaticamente antes durante ou depois da criaccedilatildeo

desse Serviccedilo nesse Grupo de Servidores em especiacutefico Novas Entidades satildeo aqui

retratadas como seguranccedila (LogicalFirwallRuleGoup) e balanceamento de carga

(LogicalLoadBalancer) com a relaccedilatildeo de muitos para um Um Grupo de Servidores

estaacute sempre associado a um e um soacute Serviccedilo e eacute constituiacutedo por uma lista de

Servidores numa relaccedilatildeo de um para muitos Uma nova Entidade aparece no Grupo de

Servidores (LogicalIPAddress) com a atribuiccedilatildeo de um IP uacutenico ao Grupo

Um Servidor relaciona-se com o Grupo de Servidores numa relaccedilatildeo de muitos

para um contrariamente agrave relaccedilatildeo com as Entidades LogicalSoftware e LogicalDisk

cuja relaccedilatildeo eacute de muitos para muitos Jaacute a relaccedilatildeo com LogicalNetworkInterface eacute

apenas uma relaccedilatildeo de um para muitos um Servidor pode ter muitas Interfaces mas

uma Interfaces estaacute sempre associada a um e um soacute Servidor

Por uacuteltimo como componentes do Servidor Software Discos e Interfaces

Um mesmo Software pode estar instanciado em muitos Servidores assim como

muitos Servidores podem ter uma lista de Software Os Discos com a opccedilatildeo ldquosharedrdquo

podem pertencer a vaacuterios Servidores e vice-versa As Interfaces aleacutem de pertencer a

um e um soacute Servidor tem igualmente um e um soacute IP associado

57 Feedback

O presente trabalho como jaacute referido teve sempre como objectivo uacuteltimo a facilidade

de acccedilotildees do utilizador visualizaccedilatildeo e organizaccedilatildeo da disponibilizaccedilatildeo de toda a

informaccedilatildeo e nesse intuito ao longo de toda a elaboraccedilatildeo foram desencadeadas vaacuterias

apresentaccedilotildees ao Orientador da Tese professor Paulo Lopes e Orientador da

elaboraccedilatildeo na HP Rui Ramos Os Feedbacks serviram para redireccionamentos e

orientaccedilotildees de programaccedilatildeo

A disponibilizaccedilatildeo da informaccedilatildeo por Tabs transmite toda a informaccedilatildeo ao

utilizador de uma forma organizada facilmente acessiacutevel e raacutepida na percepccedilatildeo dessa

informaccedilatildeo e suas acccedilotildees possiacuteveis associadas

73

A alteraccedilatildeo aconselhada pelo Rui Ramos na ediccedilatildeo de Servidores do Grupo de

Servidores como a passagem de listagens para um simples ldquobuttonrdquo com um sinal ldquo+rdquo

para adicionar Servidores ou um sinal ldquo-rdquo para remover tornou-se mais praacutetica e

intuitiva

Disponibilizaccedilatildeo de mais meios de acesso agraves VMs como a opccedilatildeo VMRC

(VMware Remote Console) ou RDP (Remote Desktop Protocol) satildeo sempre opccedilotildees

vaacutelidas e uacuteteis para o utilizador final

A disponibilizaccedilatildeo da informaccedilatildeo e das acccedilotildees associadas agrave medida que o

utilizador vai descendo no menu em aacutervore (menu lateral esquerdo) torna-se uacutetil pela

visualizaccedilatildeo hieraacuterquica de todos os recursos e acima de tudo praacutetico ao que o

utilizador realmente pretende com um simples clique

Personalizaccedilatildeo do layout aconselhada pelo professor Paulo Lopes com os

diversos ldquoThemesrdquo opccedilotildees de visualizaccedilatildeoocultaccedilatildeo de informaccedilatildeo etc com as

valecircncias jaacute descritas no iniacutecio deste capiacutetulo

Opccedilatildeo ldquoDatagridrdquo onde a disponibilizaccedilatildeo da informaccedilatildeo passa de simples

Tabs para listagem em tabelas Visualizaccedilatildeo uacutetil quando a informaccedilatildeo eacute demasiada

evitando assim o scroll do utilizador na busca da restante informaccedilatildeo bastando para

isso selecionar a ldquoquantidaderdquo de informaccedilatildeo que pretende visualizar naquele

momento

Feedbacks sempre positivos e atempados para as alteraccedilotildees necessaacuterias a

efectuar no framework

58 Questotildees principais

No decorrer da elaboraccedilatildeo deste webservice foram seguidos caminhos e

implementaccedilotildees que de um modo geral se tornaram praacuteticas e uacuteteis existindo no

entanto algumas desaconselhadas pela especificidade deste tipo de implementaccedilotildees

Foi implementada a opccedilatildeo de visualizaccedilatildeo e acccedilotildees em modo offline Foi

criada uma base de dados que suportava todos os dados do MOE a sincronizar

aquando do refresh do webservice ou por acccedilatildeo do utilizador Tal opccedilatildeo foi

desaconselhada pelo facto do sistema estar sempre online disponiacutevel e ter custos

associados

A transformaccedilatildeo de datas ldquoepoch2daterdquo e ldquodate2epochrdquo foi uma das opccedilotildees

que mais trabalho deu pelo facto da API natildeo indicar que o referido nuacutemero eacute a data

em eacutepoca e as casas decimais que entram na conversatildeo Uma eacutepoca em Unix (o

conhecido Unix timestamp) eacute o nuacutemero em segundos que distam de 01 de Janeiro de

1970 ou seja eacute o tempo Unix 0 que corresponde agrave meia-noite de 01011970 Por

norma uma data em eacutepoca eacute um nuacutemero inteiro de 32 bits As duas funccedilotildees

ldquoepoch2daterdquo e ldquodate2epochrdquo tratam dessas converotildees para o utilizador poder

observar as datas numa formataccedilatildeo legiacutevel Esta formataccedilatildeo ainda carece de uma

74

transformaccedilatildeo do dia com o mecircs para ser apresentada no formato europeu

diamecircsano

Existe coacutedigo HTML que eacute criado dinamicamente esta opccedilatildeo tornou-se

bastante uacutetil pela disponibilizaccedilatildeo de grandes quantidades de informaccedilatildeo nos mesmos

ldquoinput boxesrdquo como eacute o caso de toda a informaccedilatildeo do Servidor dentro de um mesmo

Grupo de Servidores A informaccedilatildeo eacute diferente mas o layout eacute o mesmo por isso uma

organizaccedilatildeo adequada de IDs criados dinamicamente faz toda a diferenccedila

O tratamento de erros eacute algo que por vezes eacute decurado no dueto utilizador-

webservice Um webservice quer-se amigaacutevel e nesse intuito paacuteginas em branco

completamente diferentes do layout do webservice com erros como 404 ou 500 satildeo

desaconcelhadas Assim foi inicialmente implementado esse tratamento directamente

no ficheiro ldquoWebContentWEB-INF webxmlrdquo que redirecionava o utilizador para

paacuteginas HTML com layout igual ao webservice com o respectivo nuacutemero do erro e a

mensagem correspendente para informaccedilatildeo Uma mudanccedila e redireccionamento

draacutestico obrigando o utilizador a voltar atras e tentar de novo Optou-se pelo

tratamento directo em javascript com a visualizaccedilatildeo da mensagem de erro numa

ldquoInfoWindowrdquo sem redireccionamentos nem novas paacuteginas

A API do MOE apresenta igualmente alguns pontos que precisam de ser

melhorados em futuras versotildees Foram implementados alguns caminhos secundaacuterios

quando tudo poderia ser mais faacutecil se a API fornecesse essa implementaccedilatildeo

directamente

Informaccedilatildeo detalhada dos Templates

O objectivo deste webservice eacute criar serviccedilos e apoacutes criaccedilatildeo fazer uso dos

recursos A implementaccedilatildeo de um Serviccedilo tem por base um Template que lhe estaraacute

sempre associado Templates existentes num Cataacutelogo de Serviccedilos e com informaccedilatildeo

sobre os recursos que ficaram disponiacuteveis apoacutes a criaccedilatildeo do Serviccedilo

Naturalmente o utlizador percorre todos os Templates na busca da informaccedilatildeo

que melhor se adapte agraves suas necessidades Se esse informaccedilatildeo se apresenta escassa o

utilizador natildeo vai ficar a saber dos detalhes dos recursos que poderaacute usar aquando da

criaccedilatildeo do serviccedilo

A API natildeo fornece informaccedilatildeo detalhada dos Templates apenas uma

informaccedilatildeo muito resumida natildeo disponibilizando ao utilizador a informaccedilatildeo

associada por exemplo ao custo de cada servidor memoacuteria processador nuacutemero de

interfaces software etc

O presente webservice jaacute disponibiliza toda essa informaccedilatildeo ao utilizador

sendo que este pode navegar no Cataacutelogo de Serviccedilos do menu lateral esquedo e

visualizar toda a informaccedilatildeo detalhada dos Templates escolher o que melhor se

enquadre dentro das suas necessidades e finalmente criar o Serviccedilo

75

VMID

O utilizador pode assim usar os recursos depois do Serviccedilo criado Para a

criaccedilatildeo de uma sessatildeo remota o ID da VM era essencial Tal informaccedilatildeo natildeo existe

na API do MOE Uma listagem de VMIDs por utilizador associadas a cada serviccedilo

por servidor por interface qualquer uma destas quatro opccedilotildees era vaacutelida

ldquocustomTemplateAttributesrdquo na criaccedilatildeo do Serviccedilo

Na criaccedilatildeo de um Serviccedilo existem campos de preenchimento automaacutetico

campos obrigatoacuterios e outros opcionais Assim eacute necessaacuterio fornecer o

ldquoserviceNamerdquo (obrigatoacuterio) templateName (automatico) leasePeriod (automatico

mas o utilizador pode mudar) hostname (obrigatoacuterio) serverPoolNames (automaacutetico

mas o utilizador pode mudar) ownerEmailAddress (obrigatoacuterio) note (opcional)

billingCode (opcional) e customTemplateAttributes (opcional) A falta da API reside

neste uacuteltimo campo ldquocustomTemplateAttributesrdquo onde o utilizador poderia escolher

previamente o nuacutemero de servidores memoacuteria processadores tipo de endereccedilamento

das interfaces etc

computeServerIds do ServerPools

Uma informaccedilatildeo valiosa para a criaccedilatildeo de Pools de Servidores natildeo sabendo

os IDs dos computeServerIds natildeo eacute possiacutevel chegar aos Compute Resources para

poder adicionar recursos agraves Pools Outra falha detectada

59 Visatildeo global

Uma interface baseada no protocolo REST (Representational State Transfer) para

troca de informaccedilatildeo e direcionada aos recursos disponibilizados na Web apresenta-se

como vantagem quando estamos a lidar com isso mesmo recursos

Um conjunto de princiacutepios como HTTP e URIs que usando REST exploram

a arquitectura Web para o seu benefiacutecio usando a simplicidade natildeo soacute de transporte

como tambeacutem de protocolos

Espelhadas as vantagens do protocolo REST o presente webservice torna-se

assim mais simples em comunicaccedilatildeo e no acesso aos recursos sem o atraso da

sobrecarga apreciaacutevel na construccedilatildeo de mensagens do protocolo SOAP (Simple

Object Access Protocol) do MOE

Figura 45 - Mensagens SOAP na invocaccedilatildeo de processos do MOE

76

Figura 46 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull do WEBSERVICE

Comparativamente agrave implementaccedilatildeo em siacute no MOE existe um uacutenico menu de

acesso a todas as acccedilotildees possiacuteveis as operaccedilotildees de Grupo tornam-se assim cansativas

e desmotivadoras arrantando o utilizador para uma sequecircncia de cliques ateacute a acccedilatildeo

final Opccedilotildees como ediccedilatildeo do Grupo de Servidores natildeo existem tal eacute possiacutevel apenas

na ediccedilatildeo directa em cada Servidor No webservice basta um clique e eacute executada

uma acccedilatildeo de grupo como por exemplo desligar todo o Grupo de Servidores A ediccedilatildeo

do Grupo de Servidores eacute arrastada a todos os Servidores do Grupo apenas com uma

simples ediccedilatildeo de memoacuteria e processamento no Grupo

Como nas acccedilotildees de Grupo se o utilizador pretender uma acccedilatildeo numa

interface especiacutefica teraacute que percorrer a sequecircncia e cliques contrariamente ao

presente webservice com acccedilatildeo directa quer no menu lateral esquerdo quer na

visualizaccedilatildeo directa da informaccedilatildeo da interface

Toda a informaccedilatildeo a apresentar relativamente aos recursos eacute vasta requerendo

uma organizaccedilatildeo inteligente nessa apresentaccedilatildeo com opccedilotildees de

visualizaccedilatildeoocultaccedilatildeo dessa informaccedilatildeo se o utilizador assim o entender Acccedilotildees

possiacuteveis aquando da visualizaccedilatildeo de determinada informaccedilatildeo devem estar visiacuteveis e

acessiacuteveis No MOE isso eacute difiacutecil ou quase impossiacutevel porque a interface natildeo foi

desenhada desse modo a informaccedilatildeo apresentada torna-se desorganizada e

desmotivada a leitura

510 Resumo

Este capiacutetulo comeccedila por descreve a arquitectura usada e as suas camadas seguindo-

se um exemplo simplificado das relaccedilotildees da framework e plataformas (MOE e

VMware) Satildeo apresentados conceitos como rapidez organizaccedilatildeo e personalizaccedilatildeo

nm desenho guiado pela Interface do Utilizador Como nuacutecleo deste capiacutetulo eacute feita

toda a descriccedilatildeo da framework por camadas da Arquitectura apresentada

apresentaccedilatildeo loacutegicaserviccedilos e dados onde satildeo descritas todas as acccedilotildees passiveis de

serem executadas por recurso Por uacuteltimo os feedback tidos ao longo da

implementaccedilatildeo algumas questotildees consideradas importantes e finalmente uma visatildeo

global como foco

77

6 Consideraccedilotildees Finais

Esta tese resultou de uma proposta de tema de tese que a HP Portugal submeteu ao

Departamento de Informaacutetica da FCTUNL e que apoacutes algumas interacccedilotildees resultou no

tema intitulado Framework para a construccedilatildeo de ldquoportais de negoacuteciordquo para gestatildeo de

solicitaccedilotildees IaaS na HP Cloud

A primeira fase de Preparaccedilatildeo de Dissertaccedilatildeo ocorreu no 1ordm semestre do ano

lectivo de 20122013 e realizou-se essencialmente neste departamento pontuada por

esporaacutedicas reuniotildees na HP Portugal (Quinta da Fonte Paccedilo De Arcos) A segunda de

Elaboraccedilatildeo da Dissertaccedilatildeo decorreu imediatamente apoacutes a primeira e cumpriu-se

totalmente nas instalaccedilotildees da HP Portugal

Durante a primeira fase estudou-se o paradigma de computaccedilatildeo na cloud os seus

periacutemetros (modelos de implantaccedilatildeo) e modelos de serviccedilo Estudou-se tambeacutem a

virtualizaccedilatildeo tecnologia base da computaccedilatildeo na cloud desde a sua origem ao seu estado

actual Estudaram-se ainda as plataformas de virtualizaccedilatildeo de servidores com maior

presenccedila nos centros de dados o ESXi da VMware o XenServer da Citrix Systems e o

Hyper-V da Microsoft e ainda a tecnologia proprietaacuteria da HP designada HP Integrity

Virtual Machines Estudaram-se ainda as tecnologias de armazenamento abordando-se os

aspectos de integridade fiabilidade e desempenho oferecidos pelos Redundant Array of

Independent Disks as redes de armazenamento orientadas ao bloco Storage Area

Networks e aos ficheiros Network Attached Storage A virtualizaccedilatildeo do armazenamento

ndash tanto ao niacutevel da sua utilizaccedilatildeo para armazenar VMs como para constituir ldquodiscosrdquo de

VMs foi estudada em seguida Os aspectos da virtualizaccedilatildeo das redes foram tambeacutem

estudados

Abordados todos os conceitos e tecnologias base seguiu-se o estudo da HP Cloud

em particular a HP CloudSystem Matrix no seu ambiente Matrix Operating Environment

como infra-estrutura de trabalho da segunda parte da dissertaccedilatildeo um vasto conjunto de

componentes software e hardware que vatildeo desde os servidores ProLiant sistemas de

armazenamento EVA infra-estruturas de rede (switches e NICs) etc ateacute ao ambiente de

operaccedilatildeo Matrix com o vCenter Numa perspectiva mais conceptual estudamos os papeacuteis

dos ldquoutilizadores da cloudrdquo administrador arquitecto e consumidor de serviccedilos bem

como a funccedilatildeo do Cataacutelogo de Serviccedilos do Template e a possibilidade de definir

operaccedilotildees de orquestraccedilatildeo da infra-estrutura

Com a noccedilatildeo exacta do trabalho a implementar foram estudadas diversas

linguagens e paradigmas e suas vantagens e inconvenientes Finalmente foi apresentada

uma arquitectura da soluccedilatildeo e um cronograma para a segunda fase dos trabalhos O

esforccedilo dispendido na primeira fase foi por natildeo ter outra tarefa que natildeo fosse a realizaccedilatildeo

da preparaccedilatildeo de uma quase total dedicaccedilatildeo a esta

Durante a segunda parte desta dissertaccedilatildeo a full-time na HP foi desenvolvido um

protoacutetipo do framework totalmente funcional A realizaccedilatildeo conseguida cumpre na iacutentegra

78

a calendarizaccedilatildeo proposta na primeira fase conseguindo-se agrave custa de um razoaacutevel

esforccedilo adicional evitar atrasos e falhas

As linguagens usadas foram as jaacute descritas no capiacutetulo 5 e incluem na camada de

apresentaccedilatildeo do lado do cliente HTML CSS JavaScript JQUERY AJAX e do lado do

servidor JSP Na camada loacutegicaserviccedilos usou-se fundamentalmente Java e REST

O desenvolvimento do framework foi guiado por duas consideraccedilotildees uma do

lado do programador e com o pensamento em futuras actualizaccedilotildees e outra do lado do

utilizador com uma interface organizada intuitiva e de raacutepido acesso e acima de tudo que

possibilitasse a interacccedilatildeo com todos os recursos do Serviccedilo instanciado quer a niacutevel de

grupos quer a niacutevel dos recursos individuais Assim na oacuteptica do programador

organizou-se toda a programaccedilatildeo em torno do ldquorecursordquo como entidade fundamental em

todas as camadas em que ldquoelerdquo existe Deste modo actualizaccedilotildees ao framework podem

ser feitas olhando somente para o recurso a actualizar quer a alteraccedilatildeo seja ao niacutevel da

informaccedilatildeo ou das acccedilotildees que este suporta

Em cada uma das duas vertentes programador e utilizador foram implementadas

diversas ajudas para que estes melhor entendam toda a estrutura e implementaccedilatildeo o

referido apoio estaacute disponiacutevel no proacuteprio protoacutetipo e em manuais de ajuda em anexo a

este relatoacuterio

61 Conclusotildees

A primeira conclusatildeo que apresentamos sem falsas modeacutestias eacute a de que o portal eacute

sob o ponto de vista dos resultados conseguidos e face ao objectivo um sucesso Natildeo

soacute eacute operacionalmente funcional cumprindo o objectivo essencial mas tambeacutem o eacute na

usabilidade Destacamos sumariamente alguns aspectos desta uacuteltima

A visualizaccedilatildeo da informaccedilatildeo assim como as acccedilotildees possiacuteveis satildeo guiadas

pelos recursos o utilizador apenas selecciona o recurso e tem tudo disponiacutevel

informaccedilatildeo e acccedilotildees que pode executar tudo associado a esse e apenas esse

recurso

No menu lateral esquerdo do protoacutetipo o utilizador estaacute sempre a visualizar a

ldquoposiccedilatildeordquo de um recurso na hierarquia tornando-se assim muito faacutecil executar

acccedilotildees de grupo ou acccedilotildees individualizadas bastando para isso um simples

clique

Na versatildeo 5 da API do MOE detectamos algumas insuficiecircncias que devem

ser corrigidas em futuras versotildees Nomeadamente

Haacute atributos dos templates cuja consulta apenas eacute possiacutevel ao administrador

quando satildeo fundamentais para uma melhor experiecircncia do utilizador

referimo-nos por exemplo aos valores maacuteximos de um dado recurso (eg

nuacutemero de maacuteximo de CPUs custo de um dado disco) natildeo serem

disponibilizados aquando da criaccedilatildeo de um Serviccedilo Note-se que o protoacutetipo

79

ultrapassa esta limitaccedilatildeo executando o ldquoinitrdquo da sessatildeo como administrador e

carregando nessa altura todos esses atributos

Para aceder agrave consola de um servidor eacute necessaacuterio conhecer o ID da VM o

que natildeo eacute fornecido pela API MOE o protoacutetipo ultrapassou esta limitaccedilatildeo

usando a API disponibilizada pelo VMware vCenter

Em conclusatildeo oferecemos um protoacutetipo amigaacutevel intuitivo com uma curva

de aprendizagem muito curta organizado na vasta informaccedilatildeo a disponibilizar e

usando na sua realizaccedilatildeo tecnologias estado-da-arte no formato de informaccedilatildeo XML

e JSON Um protoacutetipo praacutetico no que ao acesso e utilizaccedilatildeo dos recursos diz respeito

objectivos uacuteltimos de todo este trabalho

Fica assim aberta uma porta para a equipa de desenvolvimento de software da

HP nas proacuteximas decisotildees sobre o caminho a seguir no desenvolvimento de novas

implementaccedilotildees e futuras versotildees da API O protoacutetipo foi submetido a testes de

usabilidade que podem ser considerados em futuras integraccedilotildees

62 Trabalho futuro

Um framework que se queira actualizado nunca pode ser considerado acabado novas

actualizaccedilotildees em resposta a solicitaccedilotildees do mercado ou a alteraccedilotildees na(s) API(s) nos

hipervisores ou decorrentes da necessidade de ldquohibridizaccedilatildeordquo com outras clouds

fazem desse framework um trabalho actualizado mas nunca terminado

No desenvolvimento deste framework tivemos acesso a uma infra-estrutura

que como eacute natural (pela complexidade do software necessaacuterio) apenas incluiacutea

alguma das opccedilotildees do vasto leque HP CSM em particular a) apenas dispunha da

pilha de virtualizaccedilatildeo VMware (ESXi e vCenter) e b) natildeo dispunha do moacutedulo

Storage Provisioning Manager (SPM)

Do exposto surgem imediatamente duas propostas para trabalho futuro a

primeira passa por dotar o portal de uma capacidade de ldquoidentificaccedilatildeo automaacuteticardquo

da(s) plataformas de virtualizaccedilatildeo que estatildeo acessiacuteveis ao utilizador disponibilizando

as ferramentas adequadas ndash por exemplo se o utilizador apenas tivesse acesso agrave infra-

estrutura Hyper-V teria apenas o iacutecone da consola Hyper-V (em vez da consola

VMware) a segunda seria ampliar as funcionalidades do framework para suportar a

interacccedilatildeo com a API do SPM cumprindo assim um dos objectivos que era permitir

ao consumidor IaaS escolher as tecnologias de armazenamento ndash SSD em vez de FC

FCoE em vez de iSCSI etc

Uma outra avenida para trabalho futuro seria a avaliaccedilatildeo e eventual realizaccedilatildeo

do framework sobre a API OpenStack

80

63 Resumo

Neste capiacutetulo foi descrito todo o trabalho efectuado nesta dissertaccedilatildeo bem como os

resultados obtidos e ainda os ldquoalertasrdquo relativos a aspectos que consideramos

merecedores de atenccedilatildeo por parte da HP Tal soacute foi possiacutevel pelo detalhe com que

toda a infra-estrutura e API foram estudadas e testadas Foram referidas as principais

contribuiccedilotildees e destacaram-se as melhorias relativamente ao portal actualmente

disponibilizado pela HP

Finalmente deixam-se algumas propostas para trabalhos futuros

81

Referecircncias bibliograacuteficas

[1] Understanding the HP CloudSystem Reference Architecture [Online]

Available httph20195www2hpcomV2GetPDFaspx4AA0-5550ENWpdf

[2] Amazon Elastic Compute Cloud (Amazon EC2) [Online] Available

httpawsamazoncomptec2

[3] GoGrid Cloud Hosting [Online] Available httpwwwgogridcom

[4] Eucalyptus [Online] Available httpwwweucalyptuscom

[5] Google AppEngine [Online] Available httpsdevelopersgooglecom

appengine

[6] Microsoft Azure [Online] Available httpwwwwindowsazurecompt-br

[7] Google Apps [Online] Available httpwwwgooglecomenterpriseapps

business

[8] Agensen O et al The Evolution of an x86 Virtual Machine Monitor ACM

Operating Systems Review Vol 44 Number 4 December 2010 pp 3-18

[9] VMware Virtualization Products for Virtual Servers Virtual Desktops and Data

Center [Online] Available httpwwwvmwarecomproducts

[10] Comparison of Platform Virtual Machines Wikipedia the Free Encyclopedia

Dezembro 12 2012 [Online] Available httpenwikipediaorgwindexphp

title=Comparison_of_platform_virtual_machinesampoldid=527691634

[11] Vsphere-51-configuration-maximums VMware Inc 2012

[12] Barham P et al Xen and the art of virtualization In Proceedings of the

nineteenth ACM symposium on Operating systems principles (SOSP03) 2003

pp 164-177

[13] Zhang X and Dong Y Optimizing Xen VMM Based on Intelreg Virtualization

Technology In Proceedings of the 2008 International Conference on Internet

Computing in Science and Engineering (ICICSE 08) IEEE Computer Society

pp 367-374

[14] CTX134582 - XenServer 610 Release Notes - Citrix Knowledge Center

[Online] Available httpsupportcitrixcomarticleCTX134582

[15] Haga Y et al Windows Server 2008 R2 Hyper-V Server Virtualization

Fujitsu Sci Tech J Vol 47 No 3 2011 pp 340-355

[16] Feature Comparison Windows Server 2008 R2 Hyper-V and Windows Server

2012 Hyper-V Windows Server Microsoft Corporation 2012

[17] Hyper-V Scalability in Windows Server 2012 [Online] Available

httptechnetmicrosoftcomen-uslibraryjj680093aspx

82

[18] Patterson D et al A Case for Redundant Arrays of Inexpensive Disks (RAID)

Proceedings of the 1989 ACM-SIGMOD International Conference on the

Management of Data ACM 1989 pp 109-116

[19] Whitehouse S The GFS2 Filesystem Proceedings of the Linux Symposium

June 27th-30th 2007 Ottawa Canada

[20] Schmuk F and Haskin R GPFS A Shared-Disk File System for Large

Computing Clusters Proceedings of the Conference on File and Storage

Technologies (FASTrsquo02) 28ndash30 January 2002 Monterey CA pp 231ndash244

[21] Vaghani S Virtual Machine File System ACM Operating Systems Review

Vol 44 Number 4 December 2010 pp 57-70

[22] Pawlowski B et al NFS version 3 design and implementation Proceedings of

the Summer USENIX Conference June 1994 pp 137-152

[23] Zhou S Virtual Networking ACM Operating Systems Review Vol 44

Number 4 December 2010 pp 80-85

[24] HP Sitescope 112 Data Sheet [Online] Available

httpwwwhpcomhpinfonewsroompress_kits2012HPDiscover2012HP_Sit

escope_112_Data_Sheetpdf

[25] Veritas Storage Foundationtrade and High Availability Solutions Application

Note Support for HP-UX Integrity Virtual Machines Symantec Corporation

2011

[26] Kennedy S et al StoRHm a protocol adapter for mapping SOAP based Web

Services to RESTful HTTP format Electronic Commerce Research September

2011 Volume 11 Issue 3 pp 245-269

[27] Silvia Schreier Modeling RESTful applications In Proceedings of the Second

International Workshop on RESTful Design (WS-REST 11) Cesare Pautasso

and Erik Wilde (Eds) ACM New York NY USA 2011 pp 15-21

[28] Axioms [Online] Available httpwwww3orgDesignIssuesAxiomshtml

[29] Sandoval Jose Restful Java Web Services Master core REST concepts and

create RESTful web services in Java Packt Publishing November 2009 pp 43-

179

[30] Burke Bill Restful Java with Jax-RS OrsquoReilly Media Inc November 2009 1st

ed

[31] Jersey 117 User Guide [Online] Available

httpsjerseyjavanetdocumentation117indexhtml

[32] Jerome Louvel Thierry Templier and Thierry Boileau Restlet in Action

Developing Restful Web Apis in Java Manning Publications Co 2012

Greenwich CT USA pp 1-165

83

[33] Johnson Sally Cloud providers can enable self-service IT with a cloud portal

[Online] Available httpsearchcloudprovidertechtargetcomfeatureCloud-

providers-can-enable-self-service-IT-with-a-cloud-

portalasrc=EM_ERU_22442845amputm_medium=EMamputm_source=ERUamputm

_campaign=20130709_ERU20Transmission20for200709201320(User

Universe20607658)_myka-reportstechtargetcomampsrc=5144272

[34] jQuery EasyUI framework [Online] Available httpwwwjeasyuicom

[35] jQuery UI Library [Online] Available httpjqueryuicomdemos

[36] jQuery API [Online] Available httpapijquerycom

84

Anexo A (Virtualizaccedilatildeo Vantagens e inconvenientes)

Virtualizaccedilatildeo Vantagens e inconvenientes

A virtualizaccedilatildeo tem vindo a crescer e a ganhar terreno principalmente nas meacutedias e

grandes empresas Tem vindo a demonstrar a sua mais-valia na gestatildeo das TIs uma

mudanccedila completa e um aliviar de trabalho para administradores e gestores

A1 Vantagens da tecnologia

Um mundo onde passa a ser possiacutevel executar software incompatiacutevel com o SO host

executar SOrsquos distintos num mesmo conjunto de hardware isoladamente sem

interferecircncias etc uma mudanccedila draacutestica na tradicional visatildeo de um SO para um

conjunto de hardware apenas

Seguranccedila Dentro de um servidor podemos ter vaacuterios VMs isoladas e

independentes do SO host Tal garante que qualquer interferecircncia no SO host

(errosataques acidentais ou intencionais) natildeo afecte as VMs nele instaladas

Isolamento Qualquer processo de uma VMs natildeo pode interferir nos

processos de outra VMs este isolamento intimamente ligado agrave seguranccedila

vem de encontro a um dos princiacutepios baacutesicos aquando da implementaccedilatildeo

desta tecnologia Esta vantagem garante-nos confidencialidade entre VMs

assim como integridade e contenccedilatildeo de erros entre VMs (seguranccedila)

Custos A quantidade de diferentes servidores existentes para diferentes SOrsquos

e aplicaccedilotildees eacute agora compactada num mesmo hardware onde existe a

possibilidade de termos vaacuterias VMs com diferentes SOrsquos com as mais

variadas aplicaccedilotildees Temos um tudo-em-um que vai reduzir os custos de uma

organizaccedilatildeo na altura do upgrade bastando para isso o upgrade de um uacutenico

servidor que suporta todos os serviccedilos da organizaccedilatildeo

Energia Propriedade intimamente ligada aos custos Com a compactaccedilatildeo do

hardware satildeo dispensando todos os demais equipamentos quer de

sustentaccedilatildeo de toda uma infra-estrutura quer os proacuteprios equipamentos de

apoio Eacute assim conseguida uma economia de energia bastante significativa

para a organizaccedilatildeo

Espaccedilo Fiacutesico A compactaccedilatildeo eacute inerente aacute diminuiccedilatildeo do espaccedilo ocupado

Um Data Center tem sempre o problema de ldquofalta de espaccedilordquo e por isso a

compactaccedilatildeo de hardware associada agrave virtualizaccedilatildeo vem resolver natildeo soacute este

problema de espaccedilo como tambeacutem a proacutepria refrigeraccedilatildeo e circulaccedilatildeo de ar

dentro do Data Center

85

Hardware Estaacute provado que cada servidor em meacutedia gasta cerca de 30 do

seu poder de processamento para executar a funccedilatildeo para a qual foi

implementado Assim sendo estamos na presenccedila de um subaproveitamento

deste poder computacional A ideia anterior aacute virtualizaccedilatildeo de adquirir um

novo servidor para uma nova aplicaccedilatildeo cai agora por terra com o objetivo de

aproveitar ao maacuteximo o poder computacional de cada servidor aproveitando

melhor todo esse hardware disponiacutevel

Implementaccedilatildeo de SOrsquos A associaccedilatildeo de um SO por cada maacutequina fica

agora tambeacutem em desuso uma vez que a virtualizaccedilatildeo possibilita-nos a

instalaccedilatildeo de vaacuterios SOrsquos em cada maacutequina melhor aleacutem de vaacuterios SOrsquos

estes tambeacutem podem ser diferentes entre si (Windows linuz etc) Esta

vantagem permite assim instalar SOrsquos cujo hardware original (host) nem

sequer os suportam como o caso do SO MAC (Macintosh Apple) em

hardware x86 ou SO Windows em notebooks (Apple)

Migraccedilatildeo A camada que suporta a virtualizaccedilatildeo permite-nos esta mais-valia

A migraccedilatildeo natildeo soacute do ambiente em si como do proacuteprio hardware bastando

para isso uma simples coacutepia entre discos virtuais

Testes de software e hardware A virtualizaccedilatildeo simula tanto um software

como um hardware logo testes em software firmware e hardware podem ser

realizados nestas VMs construiacutedas especificamente para esse fim Estes

primeiros testes podem ser efectuados sem a necessidade de um SO instalado

de raiz ou mesmo a presenccedila fiacutesica do hardware especiacutefico

Reduccedilatildeo de administradores e gestores Esta compactaccedilatildeo associada agrave

virtualizaccedilatildeo como jaacute referido reduz espaccedilo ocupado reduz hardware reduz

configuraccedilotildees e gestatildeo individual abrindo caminho agrave centralizaccedilatildeo Assim a

reduccedilatildeo da equipa responsaacutevel pela administraccedilatildeo e gestatildeo eacute evidente

A2 Desvantagens da tecnologia

Satildeo notoacuterias as vantagens da virtualizaccedilatildeo mas problemas como incompatibilidades entre

aplicaccedilotildees e perda de desempenho pelo simples adicionar de mais uma camada agrave

arquitectura teratildeo que ser consideradas aquando da escolha

Seguranccedila A seguranccedila neste caso prende-se agrave proacutepria camada adicionada

agrave arquitectura (VMM ou hypervisor) Se o proacuteprio SO host tiver algum

problema de raiz implementado ou adquirido tambeacutem o proacuteprio VMM

contemplaraacute este erro assim como todas as VMs instaladas nesse SO host

Gestatildeo O principal problema da implementaccedilatildeo desta tecnologia eacute a gestatildeo

da proacutepria virtualizaccedilatildeo os ambientes virtualizados precisam de ser

instanciados geridos configurados etc Eacute neste ponto que se prende a

preocupaccedilatildeo das organizaccedilotildees pelos seus investimentos nesta tecnologia

trata-se de uma opccedilatildeo que por norma eacute licenciada

86

Desempenho Mais uma camada de software (VMM ou hypervisor) implica

mais processamento Incerteza da quantidade de VMsprocessador sem que

seja afectado a QOS (Quality Of Service) e a garantia dessa emulaccedilatildeo em

termos da disponibilizaccedilatildeo maacutexima que o host pode dispensar como eacute o caso

do processamento e memoacuteria graacutefica

87

Anexo B (Virtualizaccedilatildeo Arquitectura)

Virtualizaccedilatildeo Arquitectura

A base de uma arquitectura de virtualizaccedilatildeo eacute o VMM ou hypervisor o Virtual Machine

Manager responsaacutevel pela criaccedilatildeo gestatildeo isolamento e preservaccedilatildeo do estado da VM

assim como toda a orquestraccedilatildeo do acesso aos recursos do sistema host

O VMM permite que seja possiacutevel a execuccedilatildeo de vaacuterios SOrsquos em VMs contudo

estaacute limitado a SOrsquos que possam ser executados nativamente no processador fiacutesico do

sistema Essa valecircncia torna-se hoje uma das maiores procuras de todos os sistemas de

virtualizaccedilatildeo

Em termos de implementaccedilotildees arquitecturais temos VMMrsquos Tipo-2 modelo

ldquohybridordquo e Tipo-1 O VMM ou hypervisor do Tipo-2 figura 47 eacute implementado dentro

do proacuteprio SO real (Linux ou Windows - hostsystem) e executando paralelamente eacute mais

um processo Neste caso trata-se de uma camada hypervisor proacutepria como um segundo e

distinto niacutevel de software Os sistemas operativos convidados correm num terceiro niacutevel

acima do hardware Nesta arquitectura o SO guest acede directamente o SO host (nativo)

por intermeacutedio de uma API cedida pelo hipervisor ao SO guest O SO guest acede assim

ao hardware atraveacutes de um device driver especiacutefico pelo hypervisor e pelo SO host sendo

por isso uma implementaccedilatildeo que apresenta menor desempenho e maior sobrecarga ao

sistema O Java VM VMware Workstation VMware Player Sun Microsystems

VirtualBox e KVM satildeo alguns exemplos que usam esta arquitectura

Figura 47 - VMM ou hypervisor do Tipo-2

No modelo rdquohiacutebridordquo figura 48 o VMM natildeo eacute executado uma camada acima do

SO host (ou abaixo) mas sim concorrentemente (peer) com o SO host e natildeo depende de

instruccedilotildees especiacuteficas no processador Microsoft Virtual Server 2005 R2 e Virtual PC satildeo

alguns exemplos que usam esta arquitectura

88

Figura 48 - VMM ou hypervisor do ldquohiacutebridordquo

No VMM ou hypervisor do Tipo-1 figura 49 eacute executado directamente no

hadware a camada mais baixa de todas as particcedilotildees da VM sem necessidade da

existecircncia de qualquer SO host O SO guest acede directamente ao hardware atraveacutes do

hipervisor tal eacute possiacutevel pelas modificaccedilotildees feitas no SO guest e no hipervisor Esta eacute a

implementaccedilatildeo que atinge niacuteveis mais elevados de eficiecircncia por isso permite uma maior

densidade de VMs eacute a implementaccedilatildeo claacutessica de arquitecturas VM VMware

ESXESXi Citrix XEN Server e Microsoft Hyper-V satildeo alguns exemplos que usam esta

arquitectura

Figura 49 - VMM ou hypervisor do Tipo-1

89

Anexo C (Virtualizaccedilatildeo Tipos de Implementaccedilatildeo)

Virtualizaccedilatildeo Tipos de Implementaccedilatildeo

C1 Emulaccedilatildeo de Hardware

Neste tipo de virtualizaccedilatildeo figura 50 pretende-se a virtualizaccedilatildeo completa do hardware

o seu comportamentoestados de execuccedilatildeo (ciclos de clock conjunto de instruccedilotildees

pipeline memoacuteria cache) por isso eacute a forma de virtualizaccedilatildeo mais complexa Todo o

hardware da VM eacute criado via software no sistema hospedeiro para emulaccedilatildeo do hardware

proposto criando assim grandes overheads7 com fracos desempenhos comparativamente

ao hadware real Este tipo de virtualizaccedilatildeo apresenta mais-valias como o facto de poder

ser usado um SO guest sem qualquer modificaccedilatildeo ou adaptaccedilatildeo os programadores podem

fazer testes de firmware e hardware em hardware que natildeo o real nem necessitam da

existecircncia deste e ainda a valecircncia de ser possiacutevel emular hardware que na maior parte

das vezes eacute bastante diferente do hardware real

Figura 50 - Emulaccedilatildeo de Hardware

C2 Virtualizaccedilatildeo completa

A virtualizaccedilatildeo completa figura 51 tambeacutem conhecida como ldquonativardquo eacute em todo igual a

emulaccedilatildeo de hardware excepto agrave natildeo representatividade dos estados de execuccedilatildeo do

hardware emulado por esse facto esta teacutecnica de virtualizaccedilatildeo apresenta resultados mais

satisfatoacuterios no seu desempenho mas ainda aqueacutem dos SOrsquos em execuccedilatildeo nativa Esta

teacutecnica permite assim a execuccedilatildeo de todos os SOrsquos originais sem alteraccedilatildeo fornecendo

uma reacuteplica de todo o hardware dessa maacutequina levando-os a ter a ilusatildeo de estar a

executar directamente no hardware

Os grandes obstaacuteculos desta teacutecnica foram desde logo as diferenccedilas arquitecturais

e os comportamentos particulares das instruccedilotildees muitas impossiacuteveis de serem emuladas

ou capturadas pois muitas dependem do niacutevel de privileacutegio Assim para lidar com a

7 Overhead Diferenccedila de performance (latecircncialentidatildeo) no SO guest

90

heterogeneidade de processadores e comportamento de instruccedilotildees usa-se uma abordagem

chamada de Traduccedilatildeo Binaacuteria Nesta abordagem a VMM analisa todas as instruccedilotildees da

VM quer instruccedilotildees natildeo privilegiadas que depois acedem ao hardware com drivers

geneacutericos quer instruccedilotildees privilegiadas e quando na presenccedila destas faz a emulaccedilatildeo e

reescreve dinamicamente o coacutedigo Este teste a todas as instruccedilotildees acarreta uma latecircncia

significativa no desempenho

Figura 51 - Virtualizaccedilatildeo Completa

C3 Para-Virtualizaccedilatildeo (PV)

A para-virtualizaccedilatildeo ou virtualizaccedilatildeo assistida por SO figura 52 eacute uma alternativa aacute

virtualizaccedilatildeo completa O SO guest eacute modificado (perdendo a portabilidade) para

melhorar a eficiecircncia usando todos os ldquolimitesrdquo do sistema A ideia eacute acelerar a execuccedilatildeo

das instruccedilotildees e para isso a VMM testa apenas instruccedilatildeo que podem alterar o estado do

sistema (instruccedilotildees sensiacuteveis) aumentando significativamente o desempenho Esta

substituiccedilatildeo de uma instruccedilatildeo sensiacutevel pelo tratador de interrupccedilatildeo de software eacute chamada

de hypercall satildeo instruccedilotildees executadas atraveacutes de traduccedilatildeo binaacuteria O SO guest eacute assim

modificado para chamar a VMM sempre que estamos na presenccedila dessas instruccedilotildees

sensiacuteveis

Esta alternativa de virtualizaccedilatildeo com a modificaccedilatildeo do kernel tambeacutem permite

que o SO guest aceda directamente aos recursos de hardware com os drivers da proacutepria

maacutequina virtual e deste modo natildeo usando os drivers geneacutericos (virtualizaccedilatildeo completa)

usam a capacidade total dos dispositivos Assim a para-virtualizaccedilatildeo apresenta um ganho

significativo em relaccedilatildeo agrave virtualizaccedilatildeo completa compensando as modificaccedilotildees

implementadas no SO guest

91

Figura 52 - Para-Virtualizaccedilatildeo

C5 Virtualizaccedilatildeo assistida por Hardware (HVM)

As teacutecnicas descritas apresentam alguns inconvenientes que enfraquecem o desempenho

como o teste a todas as instruccedilotildees e traduccedilatildeo das instruccedilotildees privilegiadas na Virtualizaccedilatildeo

Total e a alteraccedilatildeo do SO guest na Para-Virtualizaccedilatildeo agarrando o SO aacute arquitectura

limitando a compatibilidade e suporte

A Virtualizaccedilatildeo assistida por Hardware figura 53 eacute aplicada directamente nos

processadores e restante hardware satildeo usadas extensotildees de virtualizaccedilatildeo do processador e

hardware para virtualizaccedilatildeo dos guestrsquos fornecendo assim um recurso que permita ao

hypervisor executar ainda mais proacuteximo do hardware As instruccedilotildees sensiacuteveis satildeo agora

entregues sem a necessidade da traduccedilatildeo binaacuteria aumentando significativamente o

desempenho mas ainda um pouco mais lento que a PV A opccedilatildeo do uso de drivers como a

PV torna-se um avanccedilo notoacuterio neste tipo de implementaccedilatildeo Natildeo emular IO e

armazenamento e ainda oferecer uma plataforma de VMs com SOrsquos natildeo modificados eacute

uma junccedilatildeo das mais-valias dos dois mundos (PVHVM ou PV-on-HVM drivers) Torna-

se assim possiacutevel por exemplo obter um oacuteptimo desempenho no conjunto SO guest

Windows + XenServer

Figura 53 - Virtualizaccedilatildeo assistida por Hardware

C4 Recompilaccedilatildeo dinacircmica

Esta teacutecnica de virtualizaccedilatildeo recompilaccedilatildeo dinacircmica (dynamic recompilation -

DynaRecs) tambeacutem denominada como traduccedilatildeo dinacircmica (dynamic translation) eacute

bastante utilizada Traduz as instruccedilotildees de um determinado formato para outro formato

durante a proacutepria execuccedilatildeo do programa permitindo assim a criaccedilatildeo do ambiente nativo

92

do programa Essa traduccedilatildeo eacute relativa a instruccedilotildees do SO guest e das suas aplicaccedilotildees

mais proacuteximas do SO host Assim o VMM ou hipervisor analisa reorganiza e traduz as

sequecircncias de instruccedilotildees emitidas pelo SO guest em novas sequecircncias de instruccedilotildees

(coacutedigo de mais alto niacutevel) compiladas na linguagem nativa do sistema host para que esse

coacutedigo gerado seja mais eficiente

Essa eficiecircncia de coacutedigo prende-se com adaptaccedilatildeo de instruccedilotildees agrave interface ISA

do sistema real detectar e tratar instruccedilotildees sensiacuteveis e ainda analisar reorganizar e

optimizar sequecircncias de instruccedilotildees do SO guest com o fim uacuteltimo da eficiecircncia e

desempenho da sua execuccedilatildeo Nesta ultima anaacutelise eacute usual guardar em cache a traduccedilatildeo

dos blocos de instruccedilotildees frequentes melhorando assim ainda mais o desempenho Eacute

notoacuteria a vantagem desta teacutecnica como o acesso a coacutedigo em tempo de execuccedilatildeo natildeo

alcanccedilaacutevel a um compilador estaacutetico mas em contrapartida tambeacutem exige muito mais

processamento

93

Anexo D (Detalhes da plataforma e restriccedilotildees da VMware)

Detalhes da plataforma e restriccedilotildees da VMWARE

Tabela 13 - Dados gerais VMWARE

Criador VMM Tipo Finalidade Uso Host VMs

host

Servidor

dedicado

Gestatildeo

Central

Gestatildeo

Remota Guest OSrsquos Host OSrsquos Guest Licenccedila

VMware

Player Tipo 2

Descktop

Utilizadores finais

Criar

Testar

Seguranccedila

Intel e AMD

(32-64 bits)

1-2 Natildeo Natildeo Natildeo

Intel e AMD

(32-64 bits)

Windows Windows

Windows Server 2012 8 Server 2008 R2 7

Server 2008 Vista Server 2003 XP 2000 NT

40 ME 98 95 MS-DOS 622 e Windows

31x

Linux

Asianux Server CentOS Debian Fedora

Mandrake Mandriva Novell openSUSE

Oracle Enterprise Red Hat Enterprise Red

Hat Sun Java Desktop System SUSE

Enterprise SUSE Turbolinux Ubuntu

UNIX e outros OSrsquos

Mac OS X Server eComStation FreeBSD

IBM OS2 Warp Netware Solaris SCO

Livre

Server GSX Tipo 2

Consolidar

Testar

Desenvolver

Windows Linux Proprietaacuterio

(desc)

Workstation Tipo 2 Criar

Testar

Desenvolver

lt 10 Natildeo Natildeo Natildeo Windows Linux

Proprietaacuterio

Fusion Tipo 2 Mac OS X

Proprietaacuterio

vSphere

ESXi Tipo 1

Datacenter

Infra-estrutura Cloud

Consolidar

Disponibilidade

Cloud

Criar

Testar

Desenvolver

512 Sim Natildeo Sim Sem OS Livre

Proprietaacuterio

ESX Tipo 1 512 Sim Sim Sim Sem OS Proprietaacuterio

(desc)

Tabela 14 - Detalhes VMWARE

VMM

(Configuraccedilotildees maacuteximas) Cluster Hosts VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

VMware Player 50 - - - 4 8 Sem lim 8GB (32bits)

64GB (64bits) NA (2TB) - -

VMware Server 20 - - 64 16 2 Sem lim 8GB NA 4 IDE + 60 SCSI (950GB) - descontinuado

VMware Workstation 90 - - - igual 8 Sem lim 8GB (32bits)

64GB (64bits) NA 4 IDE + 60 SCSI (2TB)

10 NICs SO Windows

255 NICs SO Linux Snapshots

VMware

vSphere 51

VM - - - - 64 - 1TB - 4 IDE + 60 SCSI (2TB) 10 NICs 128MB graacutefica

ESX ESXi 32 - 512host

4000cluster

32 fisicos

160 logicos 32 2TB 1TB

2048 vdisc

(64TB) 4 IDE + 60 SCSI (2TB)

32portas Ethernet a 1Gb

4 NICs fiacutesicos a 10Gb

Portas Infiniband etc

-

vCloud Director - 2000 30000 - - - - 10000 DC - 10000 -

vCenter Server - 1000 15000 - - - - 500 - 10 vCenter Servers ligados -

94

Anexo E (Detalhes da plataforma e restriccedilotildees da Citrix)

Detalhes da plataforma e restriccedilotildees da Citrix

Tabela 15 - Dados gerais Citrix

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Xensource Xen Tipo 1

Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

x86

x86-64

IA-64

x86

x86-64

IA-64

NetBSD Linux Solaris

FreeBSD NetBSD Linux Solaris Windows XP Windows Server 2003 Plan 9 Versatildeo 61

Ubuntu CentOS

Red Hat Enterprise Linux

Oracle Enterprise Linux

Windows 8 (32-bit64-bit)

Windows Server 2012

GPL ndash livre

Advanced Edition - Proprietaacuterio

Enterprise Edition - Proprietaacuterio

Platinum Edition - Proprietaacuterio

Tabela 16 - Dados detalhados Citrix

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Redehost Outros

Host VM Host VM Host VM

XenServer 61 16 150host

1600cluster

160 loacutegicos

900 virtuais 32 1 TB 128 GB 512 virtuais

16 virtuais

NFS e LVM (2TB)

7 NICrsquos virtuaisVM

16 NICrsquos fiacutesicos

512 NICrsquos virtuais

800 VLANrsquos

4 GPUshost

95

Anexo F (Detalhes da plataforma e restriccedilotildees da HP)

Detalhes da plataforma e restriccedilotildees da HP

Tabela 17 - Dados gerais HP

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Hewlett-Packard Integrity Virtual Machines Tipo 1

Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

IA-64 IA-64 HP-UX 11i v3

HP-UX 11i v2 e v3 Windows Server 2003 (SP1 e SP2 RHEL AP 44 45 SLES 10 SP

Proprietaacuterio

Tabela 18 - Dados detalhados HP

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

HP Integrity Virtual Machines 61 512 HP-UX limit 16 HP-UX limit 128GB HP-UX limit 4 IDE + 256 SCSI (2TB) 62 NICrsquos

96

Anexo G (Detalhes da plataforma e restriccedilotildees da Microsoft)

Detalhes da plataforma e restriccedilotildees da Microsoft

Tabela 19 - Dados gerais Microsoft

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Microsoft

Virtual PC 2007 Tipo 2

Criar

Testar

Hobby

Estaccedilatildeo de trabalho

Negoacutecios

x86 x86-64 x86

Windows Vista (Business

Enterprise Ultimate) XP Pro XP

Tablet PC Edition

DOS Windows OS2

Linux (SUSE Xubuntu) OpenSolaris (Belenix) Proprietaacuterio

Virtual PC 7 for Mac Tipo 2 PowerPC x86 Mac OS X Windows OS2

Linux Proprietaacuterio

Virtual Server 2005 R2 Tipo 2 Server

Server farm x86 x86-64 x86 Windows 2003 XP

Windows NT 2000 2003

Linux (Red Hat SUSE) Proprietaacuterio

Hyper-V Server 2008 R2 Tipo 1 Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

x86-64

(Intel VT-x ou AMD-V)

x86-64

x86 (ateacute 8 CPUs fiacutesicos)

Windows 2008 com Hyper-V

Windows Hyper-V Server

Windows 2000 2003 e 2008 Windows XP e Vista

Linux (SUSE 10) Proprietaacuterio

Hyper-V Server 2012 Tipo 1

x86-64

(Intel VT-x ou AMD-V apenas

para RemoteFX)

x86-64

(ateacute 64 CPUs fiacutesicos) Windows 2012 com Hyper-V

Windows NT

Linux (SUSE10 RHEL 6 CentOS 6) Proprietaacuterio

Tabela 20 - Dados detalhados Microsoft

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

Hyper-V Server 2008 R2 16 384host

1000cluster

8 fiacutesicos

64 loacutegicos

512 virtuais

4

1 TB 64GB No limit 4 IDE + 256 SCSI (2TB) - -

Hyper-V Server 2012 64 1024host

8000cluster

64 fiacutesicos

320 loacutegicos

2048 virtuais

64

4 TB 1 TB No limit

4 IDE + 256 SCSI

(VHD 2 TB)

(VHDX 64 TB)

32 NICrsquos

10GB migraccedilatildeocluster

REST

powershell

snapshots

suporte VMConnect

para RemoteFX

97

Anexo H (Ambiente de armazenamento VMware ESXi e Citrix Xen)

Ambiente de armazenamento VMware ESXi e Citrix Xen

H1 VMware (VmWare In)

VMFS (Virtual Machine File System) eacute um sistema de ficheiros num Cluster eacute

proprietaacuterio da VMware e foi optimizado para operaccedilotildees de entrada e saiacuteda (IO) com

ficheiros grandes realidade das imagens das maacutequinas virtuais Representa uma soluccedilatildeo

escalaacutevel e de alto desempenho para hospedagem de VMs no bloco de armazenamento

oferecendo partilha e isolamento O serviccedilo VMFS constitui a base de aplicaccedilotildees num

cluster VMware como vMotion (onde existe partilha de dados) Storage VMotion

agendamento de recursos distribuiacutedos alta disponibilidade e toleracircncia a falhas Os

metadados da maacutequina virtual satildeo serializados para ficheiros e o software VMFS fornece

uma interface POSIX (Portable Operating System Interface) - API com a opccedilatildeo de

consola Command Line (CL) e utilidades de interfaces) - para cluster com operaccedilotildees

seguras de gestatildeo de maacutequinas virtuais

Este tipo de armazenamento de dados pode ser feito em qualquer dispositivo de

armazenamento com base em ligaccedilotildees de armazenamento como

Armazenamento de ligaccedilatildeo direta (SCSI local) ligaccedilatildeo local direta aos discos

de armazenamento interno ou externo geralmente SATA IDE (Integrated

Drive Electronics) EIDE etc

Fibre Channel protocolo de transporte usado em SANrsquos onde o Fibre Channel

encapsula comandos SCSI sobre o protocolo FC

FCoE O uso do FC sobre Ethernet onde o traacutefego FC eacute encapsulado em

quadros Ethernet

iSCSI iSCSI transporta comandos SCSI sobre redes IP

IP ligaccedilatildeo IP aos datastores em NAS suportados pelo vSphere ESX

Vista do armazenamento pelo SO Guest

Uma VM na arquitectura ESX usa espaccedilo em disco para armazenar os seus

metadados de configuraccedilatildeo e os proacuteprios dados um pequeno nuacutemero de imagens

aproximadamente 30 a 100 por VM O espaccedilo de armazenamento em disco contem estes

ficheiros de texto muito pequenos (bytes ou KB) mas tambeacutem conteacutem ficheiros do

proacuteprio disco virtual que normalmente satildeo ficheiros muito grandes (centenas de MB ou

GB) e ainda ficheiros de swap (ficheiros guardados pelo SO para aumento virtual da

memoacuteria de trabalho (RAM))

98

Um dos princiacutepios da virtualizaccedilatildeo diz-nos que um SO guest natildeo deve suportar a

carga da gestatildeo de dispositivos fiacutesicos deve concentrar-se em fornecer um ambiente de

execuccedilatildeo de aplicaccedilotildees Assim um dos objetivos da arquitetura VMFS e em particular do

vSphere ESX eacute simplificar todo este acesso de armazenamento ao SO guest O hardware

virtual apresentado a um SO guest vSphere inclui um conjunto de controladores SCSI e

IDE que possuem drivers comuns disponiacuteveis em quase todos os sistemas operacionais O

SO guest vecirc um disco fiacutesico simples ligado atraveacutes de um controlador padratildeo gravado no

formato VMDK (Virtual Machine Disk) formato da VMWare Esta visatildeo virtualizada de

armazenamento apresentada ao SO guest tem uma seacuterie de vantagens como a gestatildeo

facilitada pelo facto de serem usados controladores padratildeo com drivers incluiacutedas nos

SOrsquos o facto de suportar diferentes ligaccedilatildeo e acessos ao armazenamento como iSCSI e

FCoE disponiacuteveis nos SOrsquos sem que estes suportem os protocolos nativos e a melhoria de

eficiecircncia e disponibilizaccedilatildeo na recuperaccedilatildeo de desastres com a disponibilizaccedilatildeo de

muacuteltiplos caminhos no acesso aos dados contrariamente ao peso da redundacircncia de

muacuteltiplos servidores fiacutesicos

H2 Xen Server (Citrix)

O VMM ou hypervisor Xen eacute apenas responsaacutevel pela gestatildeo de CPU memoacuteria e

interrupccedilotildees ou seja natildeo tem conhecimento do IO de Rede e Armazenamento Para lidar

com entradas e saiacutedas de Rede e Armazenamento o XenServer dispotildee de um domiacutenio de

controlo uma VM especializada denominada ldquoDom0rdquo (Domiacutenio 0) com SO Linux e

privileacutegios especiais eacute considerado parte integrante do XenServer aquando da instalaccedilatildeo

Alem de aceder diretamente o hardware controla todos os acessos de IO e interage com

as outras VMs Esta VM especial contem os drivers padratildeo do coacutedigo aberto Linux de

uma vasta diversidade de hardware e uma interface de controlo (consola ou interface

graacutefica) para controlo do sistema Conteacutem ainda uma pilha de controlo (toolstack) para

fazer toda a gestatildeo das VMs as conhecidas ldquoDomUrsquosrdquo (Domiacutenios dos utilizadores)

relativamente a sua criaccedilatildeo destruiccedilatildeo e configuraccedilatildeo

O XenServer da Citrix armazena as suas VMs diretamente no formato Microsoft

VHD (Virtual Hard Disk) num disco local natildeo partilhado (EXT) ou contrariamente ao

VMware natildeo dispondo do seu proacuteprio sistema de armazenamento aproveita as

capacidades nativas de armazenamento como por exemplo um sistema de armazenamento

partilhado como o NFS Com armazenamentos baseados em iSCSI ou FC o XenServer

estende o VHD do sistema de ficheiros para o padratildeo open source LVM (Logical Volume

Manager) para gestatildeo de volumes numa LUN abstraindo os volumes fiacutesicos em volumes

loacutegicos Permite ainda que seja possiacutevel a criaccedilatildeo de uma LUN por cada VDI

O XenServer oferece assim suporte de armazenamento de VMs em discos locais

iSCSI ou SAN baseado em FC ou NAS estes dois uacuteltimos para migraccedilotildees e alta

disponibilidade Ferramentas como XenCenter Storage Repository para implementaccedilatildeo e

99

StorageLink para integraccedilatildeo de armazenamentos com snapshots clones8 e ldquothin

provisioningrdquo9 satildeo uma mais-valia no XenServer

Cada host XenServer pode aceder a um ou vaacuterios dispositivos de armazenamento

diferentes simultaneamente Estes dispositivos de armazenamento podem ser dedicados

apenas a um host ou partilhados entre hosts permitindo que uma imagem de disco virtual

(VDI) num determinado sistema de armazenamento possa ser iniciada em qualquer host

Armazenamento local

Este tipo de armazenamento eacute local ao host XenServer (IDEPATA Serial ATA

(SATA) SCSI e Serial Attached SCSI (SAS)) e neste contexto satildeo suportados dois tipos

de armazenamento um sistema de ficheiros EXT e LVM (Logical Volume Manager)

numa LUN

Uma LUN num SAN iSCSI ou SAN Fibre Channel

Nestes dois tipos de armazenamento (tratados diferentemente pelo XenServer)

figura 54 os ficheiros satildeo apresentados ao XenServer como ficheiros normais ou mesmo

num sistema de ficheiros LVM numa LUN

Eacute criada uma LUN onde todos os servidores se ligam Essa LUN eacute dividida em

volumes loacutegicos onde apenas uma e uma soacute VM ligada a um desses volumes loacutegicos de

cada vez

Figura 54 - LUN num SAN iSCSI ou SAN FC

Network File System (NFS)

Neste tipo de armazenamento figura 55 eacute criado um NFS onde todos os

servidores se ligam e partilham ficheiros VDI que eacute o disco fiacutesico na visatildeo de uma VM O

XenServer lida com este tipo de armazenamento como um conjunto e discos virtuais

(VDIrsquos) armazenados no formato Microsoft VHD especialmente adequado para

ambientes NSF As imagens das VMs satildeo armazenadas como ficheiros neste formato

8 Clone Um programa ou hardware que imita o produto original e pode ser executado de igual modo como se

fosse original 9 Thin provisioning Meacutetodo de otimizaccedilatildeo da eficiecircncia com que o espaccedilo disponiacutevel eacute utilizado numa SAN

100

(VHD) um disco riacutegido virtual Estes ficheiros permitem que VMs sejam instanciadas em

qualquer host de uma pool de recursos e possam ser feitas migraccedilotildees entre servidores com

o XenMotion

XenServer suporta NFS sobre TCPIP O volume NFS localizado num servidor

NFS eacute acedido montado e usado para as necessidades convenientes de armazenamento

seraacute criada uma diretoria de partilha com um nome que eacute o Identificador Uacutenico Universal

(UUID) atribuiacutedo a esse armazenamento

Figura 55 - Network File System (NFS)

Opccedilotildees de armazenamento de terceiros como NetApp ou Dell EqualLogics

O armazenamento eacute feito por dispositivo especiacuteficos de armazenamento como

NetApp (Network Appliance) ou Dell EqualLogics como fornecedores liacutederes de

armazenamento de ficheiros em rede e sistemas de distribuiccedilatildeo de conteuacutedo A gestatildeo do

armazenamento eacute suportada pelo XenCenter

Vista do armazenamento pelo SO Guest

Existem 2 tipos de VMs no XenServer ldquoDom0rdquo e ldquoDomUrdquo ambas VM guestrsquos

diferindo no seu propoacutesito O Dom0 de controlo e parte integrante de todo o sistema

XenServer dispotildee de acesso privilegiados ao hardware tem drivers dos dispositivos e eacute

instanciada aquando do boot do sistema Os DomUrsquos satildeo totalmente isolados do hardware

e comunicam diretamente com o VMM ou hypervisor que controla a memoacuteria e o

processador do host A comunicaccedilatildeo com os restantes perifeacutericos eacute feita sob o controlo da

VM Dom0 (domiacutenio 0 domiacutenio de controlo) com os drivers especiacuteficos de dispositivos

como Rede e Armazenamento Os DomUrsquos satildeo conhecidos como domiacutenios sem

privileacutegios

Em termos de virtualizaccedilatildeo o Xen suporta em simultacircneo VM guests com para-

virtualizaccedilatildeo (PV) (virtualizaccedilatildeo assistida por SO) ou virtualizaccedilatildeo assistida por hardware

(HVM) Na PV apesar da modificaccedilatildeo do SO natildeo requer virtualizaccedilatildeo do processador

nem do hardware uma vez que dispotildee de drivers para aceder diretamente usando a

capacidade total dos dispositivos Na HVM satildeo usadas extensotildees de virtualizaccedilatildeo do

101

processador e hardware host para virtualizar os guets mas natildeo haacute modificaccedilatildeo do SO

guest eacute mais lento que PV mas apresenta a valecircncia da portabilidade A ultima aposta da

Citrix visando oacutetimos desempenhos foi a junccedilatildeo destes dois mundos para-virtualizaccedilatildeo e

virtualizaccedilatildeo assistida por hardware (PVHVM ou PV-on-HVM drivers)

Uma VM (DomU) no mundo virtual de um XenServer vecirc o seu armazenamento

como um disco local (imagens VDI guardadas na sua representaccedilatildeo Microsoft VHD) Na

realidade o XenServer alocou uma percentagem do armazenamento real e atraveacutes do

hypervisor e Dom0 fez toda a abstraccedilatildeo tornando-o disponiacutevel como um recurso de um

disco para essas VMs O SO guest do Dom0 eacute Linux e neste SO os discos fiacutesicos satildeo

representados como ficheiros desses dispositivos (devsda) Os ficheiros dos dispositivos

de armazenamento podem representar discos conectados localmente (armazenamento

local) ou um nuacutemero de unidade loacutegica (LUN) numa SAN sendo a gestatildeo feita por LVM

e ainda a opccedilatildeo NFS

102

Anexo I (Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo)

Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo

I1 Criaccedilatildeo de um projecto Web Service

Um projecto Web Service figura 56 pode ser criado com o IDE Eclipse IDE for Java EE

Developers Configurado todo o ambiente podemos criar um projecto Web Service

mediante vaacuterias abordagens variando nas suas configuraccedilotildees e especificaccedilotildees

naturalmente

Web Dynamic Web Project

JBoss Central HTML5 Project

JBoss Tools Create a Sample RESTfull Web Service

Maven Maven Project

Web Service Create a Sample RESTfull Web Service

Figura 56 - Projecto ldquoDynamic Web Projectrdquo no eclipse

Webxml

103

Ficheiro responsaacutevel pelo registo do servlet10

fornecido pelo Jersey Um servlet

responsaacutevel por analisar os pedidos http e selecionar a classe e meacutetodo para responder ao

pedido mediante as anotaccedilotildees JAX-RS previamente colocadas aquando da criaccedilatildeo do

coacutedigo Webxml define ainda o path sob o qual o Web Service seraacute disponibilizado

URL httpdominioportanome-da-aplicacaourl-patternpath-das-classes-rest

ltxml version=10 encoding=UTF-8gt ltweb-app xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlns=httpjavasuncomxmlnsjavaee xmlnsweb=httpjavasuncomxmlnsjavaeeweb-app_2_5xsd xsischemaLocation=httpjavasuncomxmlnsjavaee httpjavasuncomxmlnsjavaeeweb-app_2_5xsd id=WebApp_ID version=25gt lt-- nome da aplicaccedilatildeo --gt ltdisplay-namegtdevogellajerseytodoltdisplay-namegt ltservletgt lt-- suporte para aplicaccedilotildees Web baseado em servlet e filtro --gt ltservlet-namegtJersey REST Serviceltservlet-namegt ltservlet-classgtcomsunjerseyspicontainerservletServletContainerltservlet-classgt ltinit-paramgt lt-- define o pacote das classes de recurso java do Web Service --gt ltparam-namegtcomsunjerseyconfigpropertypackagesltparam-namegt ltparam-valuegtdevogellajerseytodoresourcesltparam-valuegt ltinit-paramgt ltload-on-startupgt1ltload-on-startupgt ltservletgt ltservlet-mappinggt lt-- URL pattern define parte da URL base onde o Web Service seraacute disponibilizado --gt ltservlet-namegtJersey REST Serviceltservlet-namegt lturl-patterngtrestlturl-patterngt ltservlet-mappinggt ltweb-appgt

ex httplocalhost8080devogellajerseytodoresttodos1

domiacutenio localhost

porta 8080

nome da aplicaccedilatildeo (webxml display-name) devogellajerseytodo

URL base (webxml url-pattern do servlet-mapping) rest

anotaccedilatildeo Path na classe Java todos

anotaccedilatildeo PathParam 1

10 Servlet Uma classe na linguagem de programaccedilatildeo Java que processa dinamicamente pedidos e

respostas gerando dados HTML e XML para a camada de apresentaccedilatildeo de uma aplicaccedilatildeo Web

104

Principais anotaccedilotildees JAX-RS

PATH(your_path) adiciona mais um paracircmetro ao URL (URL+your_path)

POST O meacutetodo responde a um pedido HTTP POST

GET O meacutetodo responde a um pedido HTTP GET

PUT O meacutetodo responde a um pedido HTTP PUT

DELETE O meacutetodo responde a um pedido HTTP DELETE

Produces(MediaType

TEXT_PLAIN[more-types])

Define o tipo MIME a ser entregue por um meacutetodo GET

Consumes(type[more-ypes ] ) Define o tipo MIME a ser consumido pelo meacutetodo

PathParam Usado para especificar valores da URL num paracircmetro do

meacutetodo

Uma outra anotaccedilatildeo fundamental eacute XmlRootElement para que o Jersey saiba

que os atributos iratildeo passar a noacutes no momento em que o XML como resposta ao cliente

De igual modo se receber um XML no corpo de um pedido o Jersei vai saber fazer a

conversatildeo desse XML para um objeto do tipo da classe em causa

I2 Exemplos de solicitaccedilotildees agrave API do MOE

Adicionar mais um processador a um Servidor

Operaccedilotildees sobre Servidores

Verb URI Description

GET servers Lista servidores

GET serversdetail Lista detalhes dos servidores

POST servers Cria servidor

GET serversid Lista detalhes dos servidores

PUT serversid Atualiza dados dos servidores

DELETE serversid Remove servidor

hellip hellip hellip

Um flavor representa uma configuraccedilatildeo de hardware disponiacutevel para um dado tipo

de servidores e eacute uma combinaccedilatildeo uacutenica de espaccedilo em disco capacidade de memoacuteria

nuacutemero de CPUs etc Um servidor eacute uma instacircncia de uma maacutequina virtual e portanto

eacute definido por um flavor

flavors [ disk 10 id 12 name 256_server ram 256 ldquocpurdquo 2 hellip hellip]

Operaccedilotildees sobre Flavors

Verb URI Description

GET flavors Lista flavors

GET flavorsdetail Lista detalhes dos flavors

105

GET flavorsid Lista detalhe do flavor

hellip hellip hellip

O objectivo eacute alterar o nuacutemero de CPUs de um servidor especiacutefico e para tal

temos de saber o valor desse campo no flavor desse servidor

Algoritmo passo-a-passo

1) Listar todos os servidores existentes

Esta operaccedilatildeo obteacutem uma lista de servidores associados agrave conta de um

determinado utilizador Em cada servidor (da lista) um atributo indica o estado actual do

servidor servidores com o estado ACTIVE estatildeo disponiacuteveis para utilizaccedilatildeo

Verb URI Description

GET servers Lista todos os servidores (apenas os IDs e nomes)

GET serversdetail Lista todos os servidores (todos os detalhes)

Coacutedigo para respostas normais 200 203

Coacutedigo para respostas de ERRO serversFault (400 500) serviceUnavailable

(503) unauthorized (401) badRequest (400) overLimit (413)

Resposta da listagem dos servidores XML (detalhes)

ltxml version=10 encoding=UTF-8gt ltservers xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgtgt ltserver id=1234 name=sample-server imageId=1 flavorId=12 status=BUILD progress=60 hostId=e4d909c290d0fb1ca068ffaddf22cbd0gt ltmetadatagt ltmeta key=Server LabelgtWeb Head 1ltmetagt ltmeta key=Image Versiongt21ltmetagt ltmetadatagt ltaddressesgt

ltpublicgt ltip addr=672310132gt ltip addr=672310131gt ltpublicgt ltprivategt ltip addr=101764216gt ltprivategt ltaddressesgt ltservergt hellip ltserversgt

De entre todos os servidores da lista o utilizador pretende ALTERAR o nuacutemero

de CPUs do servidor (server id=1234) ou seja precisa aceder ao flavor

(flavorId=12)

106

2) Listar o flavor (flavorId=12)

Esta operaccedilatildeo obteacutem os detalhes de um flavor especiacutefico (id)

Verb URI Description

GET flavorsid Lista detalhe do flavor especiacutefico

Coacutedigo para respostas normais 200 203

Error ResponseCode(s) serversFault (400 500) serviceUnavailable (503)

unauthorized (401) badRequest (400) itemNotFound (404) overLimit (413)

Resposta com detalhes de um Flavor XML

ltxml version=10 encoding=UTF-8gt ltflavor xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgt id=1 name=256 MB Server ram=256 disk=10 cpu=rdquo2rdquo gt

3) Alterar o nuacutemero de CPUs de 2 para 3 do servidor (server id=1234) flavor

(flavorId=12)

Esta operaccedilatildeo permite que se atualize o numero de CPUs do flavor associado ao

servidor Facilmente se depreende que esta operaccedilatildeo soacute seraacute possiacutevel se o utilizador puder

efectuar esta operaccedilatildeo (Status Transition ACTIVE)

Verb URI Description

PUT servers1234flavor12cpu3 Atualiza dados dos servidores

Coacutedigo para respostas normais 204

Coacutedigo para respostas de ERRO serversFault (400 500) serviceUnavailable

(503) unauthorized (401) badRequest (400) badMediaType(415) itemNotFound (404)

buildInProgress (409) overLimit (413)

Status Transition ACTIVE CONFIGURESERVER (if configureServer is

true)

Pedido de Update do flavor do servidor XML

ltxml version=10 encoding=UTF-8gt ltserver xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgt server id=1234 flavorId=12 cpu=rdquo3rdquo gt

107

Anexo J (Ferramentas de desenvolvimento WebService)

Principais ferramentas e suas configuraccedilotildees usadas na criaccedilatildeo e desenvolvimento deste

webservice

Plataforma Java

Servidor Apache Tomcat

Ambiente de desenvolvimento Eclipse

JARacutes e Plugins

Macromedia Dreamweaver

Notepad++

J1 Plataforma Java

Java eacute uma linguagem de programaccedilatildeo orientada a objeto e considera-se diferente das

outras linguagens convencionais pelo facto de ser compilada para bytecode e executado

por uma maacutequina virtual contrariamente agrave compilaccedilatildeo para coacutedigo nativo A linguagem

de programaccedilatildeo Java eacute a linguagem convencional da Plataforma Java que pode ser

adquirida no site httpjavacomendownloadindexjsp

Figura 57 - Plataforma Java

Como o RESTWEBSERVICE foi criado e executado em ambiente Windows a

explicaccedilatildeo seraacute feita tendo em vista este ambiente

108

Assim vamos verificar se temos a plataforma java instalada e se eacute a ultima versatildeo

lsquoIniciarrsquo e executar lsquocmdrsquo abre-se uma consola de linha de comando do MS Windows

executamos o comando

ldquojava -versionrdquo

Este comando corresponde agrave chamada da maacutequina virtual para executar

ldquobytecoderdquo

Figura 58 - Comando ldquojava -versionrdquo

Java version ldquo170_25 JDK ou JRE

JRE(Java Runtime Environment) Ambiente de execuccedilatildeo Java (Java Virtual

Machine) Como ambiente seraacute apenas possiacutevel a execuccedilatildeo de coacutedigo Java jaacute

compilado

JDK (Java Development Kit) Kit de desenvolvimento Java onde se inclui o

compilador (javac) e o ambiente de execuccedilatildeo Java (JVM) Neste caso podemos

compilar classes java directamente de coacutedigo fonte e executa-las posteriormente

no JRE maacutequina virtual Java

J11 Instalaccedilatildeo

Caso seja necessaacuteria a instalaccedilatildeo da plataforma java termos que fazer o download (versatildeo

7 update 25) e efectuar a sua instalaccedilatildeo Por defeito apoacutes a instalaccedilatildeo teremos os dois

ambientes JDK e JRE na directoria ldquoCProgram FilesJavardquo

Para testar a instalaccedilatildeo do compilador (JDK) lsquoIniciarrsquo e executar lsquocmdrsquo abre-se

uma consola de linha de comando do MS Windows executamos o comando

109

ldquojavacrdquo

Figura 59 - Instalaccedilatildeo da Plataforma Java

Concluiacuteda a instalaccedilatildeo da plataforma java teremos que definir as variaacuteveis de

ambiente para a posterior execuccedilatildeo do ambiente de desenvolvimento IDE (Integrated

Development Environment ) Eclipse e todas as dependecircncias do Java

J12 Variaacuteveis de ambiente

ldquoIniciarrdquo ldquoPainel de controlerdquo ldquoDefiniccedilotildees avanccediladas do sistemardquo ldquoVariaacuteveis de

ambienterdquo ldquoVariaacuteveis de sistemardquo

PATH ndash adicionar ldquodirectoria de instalaccedilatildeo do JDKrdquobin

ex CProgram FilesJavajdk170_25bin

Figura 60 - Variaacutevel de sistema ldquoPathrdquo

CLASSPATH ndash criar esta variaacutevel

Nome da variaacutevel ldquoCLASSPATHrdquo

Valor da variaacutevel ldquordquo

110

Figura 61 - Variaacutevel de sistema ldquoCLASSPATHrdquo

JAVA_HOME ndash criar esta variaacutevel com a ldquodirectoria de instalaccedilatildeo do

JDKrdquobin

ex CProgram FilesJavajdk170_25bin

Figura 62 - Variaacutevel de sistema ldquoJAVA_HOMErdquo

J13 Teste da instalaccedilatildeo da plataforma java e configuraccedilatildeo das variaacuteveis de

ambiente

Vamos verificar se as variaacuteveis foram definidas correctamente Para isso com o

Notpad++ vamos criar um ficheiro com o nome ldquoTestjavardquo e incluir o seguinte coacutedigo

public class Test public static void main(String[] args) throws Exception Systemoutprintln(Hello RESTWEBSERVICE)

Finalmente vamos compilar a classe na directoria onde foi criada e executaacute-la

utilizando a maacutequina virtual Java Na consola de linha de comando vamos executar os

seguintes comandos

javac Testjava ndash Comando para compilar a classe java criada

java Test - Comando para executar a classe Test

Se as variaacuteveis de ambiente foram definidas correctamente deveremos ter

como resposta

ldquoHello RESTWEBSERVICErdquo

111

J2 Servidor Apache Tomcat

Apache Tomcat eacute uma implementaccedilatildeo de software de fonte aberta das tecnologias Java

Servlet e JavaServer Pages (JSP) Egrave um servidor web HTTP em linguagem java um

servidor de aplicaccedilotildees JEE (Java Enterprise Edition) Tem a vantagem de incluir

ferramentas para gestatildeo e configuraccedilatildeo que podem ser editadas directamente num ficheiro

de configuraccedilatildeo em XML

O download deste servidor pode ser feito directamente no site da Tomcat

httptomcatapacheorgdownload-70cgi

J21 Instalaccedilatildeo

Feito o download basta descompactar o ZIP numa directoria ex C onde seraacute criado

uma pasta com o nome do ZIP Capache-tomcat-7034 Como versatildeo preacute-configurada

disponibiliza de imediato as seguintes configuraccedilotildees

A porta de acesso aacutes aplicaccedilotildees eacute a 8080 Basta para isso digitar o URL

seguido de ldquordquo e a porta 8080

ex httplocalhost8080MOE

Se natildeo existirem redireccionamentos eacute possiacutevel a listagem de directorias

Esta opccedilatildeo eacute sempre desactivada depois nas implementaccedilotildees

Monitorizaccedilatildeo sempre constante qualquer alteraccedilatildeo dos ficheiros natildeo existe a

necessidade de fazer um restart ao servidor

Figura 63 - Directoria de instalaccedilatildeo do Servidor Apache Tomcat

112

J22 Execuccedilatildeo

Para testarmos o servidor Apache Tomcat basta corresmos o executaacutevel ldquoTomcat7exerdquo

da directoria ldquoCTomcat 70binrdquo e aceder ao link httplocalhost8080

Figura 64 - Link localhost Apache Tomcat

J3 Ambiente de desenvolvimento Eclipse

Eclipse eacute um IDE (Integrated Development Environment) ou ambiente integrado de

desenvolvimento eacute um programa com caracteriacutesticas e ferramentas de apoio ao

desenvolvimento de software com a vantagem de ter a maior parte das ferramentas de

desenvolvimento jaacute integradas e prontas a usar Uma orientaccedilatildeo baseada em plugins que

mediante incorporaccedilatildeo satisfazem as necessidades dos diferentes programadores

O download deste IDE pode ser feito directamente no site

httpwwweclipseorgdownloads O package em questatildeo para o desenvolvimento

direcionado agrave web eacute o ldquoEclipse IDE for Java EE Developersrdquo que jaacute vem com a maior

parte dos plugins destinados a este tipo de desenvolvimento

J4 JARs e Plugins

O ambiente de desenvolvimento Eclipse principalmente o ldquoEclipse IDE for Java EE

Developersrdquo jaacute vem com a maior parte dos plugins por defeito para desenvolvimentos

orientados agrave web mas haacute um indispensaacutevel muito uacutetil natildeo soacute no acesso aos menus de

configuraccedilatildeo do projecto como tambeacutem ferramentas de configuraccedilatildeo do servidor Apache

Tomcat plugin ldquoWeb Tools Platform (WTP)rdquo

Podemos fazer o download directo do plugin ou solicitar ao Eclipse que o faccedila por

noacutes e instale directamente Para isso vamos ao menu ldquoHelprdquo ldquoInstall new Softwarerdquo

ldquoaddrdquo

Name Web Tools Platform (WTP)

Location httpdownloadeclipseorgwebtoolsrepositoryindigo

113

Figura 65 - Add repository

Relativamente aos JARs estes satildeo dependents do projecto em siacute e do que se

pretende usar JAR (Java Archive) eacute um formato de ficheiro que normalmente eacute usado

para agregar muitos ficheiros de classes Java e metadados associados recursos como

textos e imagens tudo num uacutenico ficheiro que depois funcionaraacute como bibliotecas na

plataforma Java

Basta para isso colocar os JARs necessaacuterios na directoria

ldquoprojectNameWebContentWEB-INFlibrdquo

J4 Macromedia Dreamweaver

O Adobe Dreamweaver mais conhecido por Macromedia Dreamweaver eacute um software de

desenvolvimento na Web criada pela Macromedia

Um software que fornece suporte para vaacuterias tecnologias web tais como XHTML

CSS JavaScript Ajax PHP ASP ASPNET JSP ColdFusion e outras linguagens

Server-side

Toda a apresentaccedilatildeo web da camada de apresentaccedilatildeo do webservice foi

desenvolvida e testada inicialmente neste software Desenvolvimento de coacutedigo HTML

JSP incorporaccedilatildeo de imagens construccedilatildeo de tabelas etc

A5 Notepad++

Notepad++ eacute um editor de texto e de coacutedigo fonte aberto sob licenccedila GPL Tem a

vantagem de suportar vaacuterias linguagens de programaccedilatildeo como HTML JSP CSS JQuery

Javascript e eacute optimo para alteraccedilotildees raacutepidas de coacutedigo e sua visualizaccedilatildeo

114

Anexo K (Criar e executar um ldquoDynamic Web Projectrdquo no Eclipse)

K1 Criar um ldquoDynamic Web Projectrdquo

Para criar um ldquoDynamic Web Projectrdquo temos que iniciar o Eclipse e nesta primeira

iniciaccedilatildeo vatildeo ser testadas todas as variaacuteveis de ambiente anteriormente criadas e criado

um workspace onde seratildeo guardados todos os nossos projectos

Depois de iniciado o Eclipe para criarmos um ldquoDynamic Web Projectrdquo seguimos

os passos

1 ldquoFilerdquo ldquoNewrdquo ldquoProjectrdquo

2 Na proacutexima janela escolher ldquoWebrdquo ldquoDynamic Web Projectrdquo

Figura 66 - Dynamic Web Project

3 Clique em Next

4 Nas propriedades do projecto

Project name Test

Target runtime Apache Tomcat v70

Dynamic web module version 30

Configuration Default Configuration for Apache Tomcat v70

115

Figura 68 - Propriedades do Dynamic Web Project

5 Clique em Next e depois outra vez em Next

6 Seleccione ldquoGenerate webxml deployment descriptorrdquo para a criaccedilatildeo do

webxml onde seratildeo incluiacutedas todas as definiccedilotildees e configuraccedilotildees do projecto

Figura 69 - Webxml do Dynamic Web Project

7 Clique em Next e todo o projecto eacute criado

116

Figura 70 - Directoria base do Dynamic Web Project

JavaSource (src)

Coacutedigo fonte Java do projeto Recursoso que satildeo automaticamente compilado e os

ficheiros gerados satildeo adicionados ao diretoacuterio WEB-INFclasses

WebContent

Localizaccedilatildeo de todos os recursos da Web incluindo HTML JSP ficheiros

graacuteficos imagens etc Os ficheiros ficam disponiacuteveis apenas nesta directoria ou

subdirectorias quando o servidor eacute executado

META-INF

Esta directoria conteacutem o arquivo MANIFESTMF que eacute usado para mapear o

caminho das classes para os ficheiros JAR dependentes que existem no projecto Quando

um JAR eacute adicionado agrave biblioteca esta entrada eacute adicionada automaticamente neste

ficheiro

WEB-INF

Directoria que conteacutem os recursos da Web de suporte para agrave aplicaccedilatildeo incluindo o

ficheiro webxml e as classes e lib

Classes

Directoria das classes compiladas eacute a directoria de saiacuteda do compilador Java As

classes ldquoclassrdquo satildeo colocados neste directoria automaticamente quando o compilador

Java compila os ficheiros de origem Java que estatildeo no directoria de recursos Java (src)

Lib

Os ficheiros JAR de apoio a toda a aplicaccedilatildeo As classes existentes nos ficheiros

jar ficam disponiacuteveis para uso na aplicaccedilatildeo

Web Deployment Descriptor

O descritor de implementaccedilatildeo de toda a aplicaccedilatildeo o ficheiro webxml

117

K2 Executar um ldquoDynamic Web Projectrdquo

Para testarmos o nosso ldquoDynamic Web Projectrdquo comeccedilamos por criar uma classe na

directoria ldquosrcrdquo ldquoFilerdquo ldquoNewrdquo ldquoOtherrdquo ldquoClassrdquo

Figura 71 - Criar uma classe

Criamos uma classe com o package test e o nome Test e incluiacutemos o seguinte

coacutedigo

package test public class Test public static void main(String[] args) throws Exception Systemoutprintln(Hello RESTWEBSERVICE)

Criamos igualmente um ficheiro HTML na directoria WebContent ldquoFilerdquo ldquoNewrdquo

ldquofilerdquo com o nome ldquotesthtmlrdquo e com o seguinte coacutedigo

lthtmlgt ltheadgt lttitlegtDynamic Web Project HTML pagelttitlegt ltheadgt ltbodygt lth2gt Hello RESTWEBSERVICE lth2gt ltbodygt lthtmlgt

118

Executamos o projecto no menu clicamos em ldquoRunrdquo ldquoRunrdquo escolhemos ldquoRun

on Serverrdquo e a primeira vez que executarmos o projecto temos que fazer a ligaccedilatildeo ao

servidor Apache Tomcat ldquoApacherdquo ldquoTomcat v70 Serverrdquo e ldquoFinishrdquo

Figura 72 - Servidor Apache Tomcat dentro do Eclipse

O projecto estaacute pronto a testar no link httplocalhost8080Testtesthtml

Figura 73 - Execuccedilatildeo no Browser

119

Anexo L (Importar configurar e executar o RESTWEBSERVICE - MOE)

A implementaccedilatildeo RESTWEBSERVICE - MOE eacute um webservice desenvolvido numa

arquitectura orientada a Web (Web-Oriented Architecture - WOA) disponibilizando os seus

recursos na Web atraveacutes do protocolo REST (Representational State Transfer) para troca de

informaccedilatildeo Vantagens como a simplicidade de interaccedilatildeo entre sistemas heterogeacuteneos a

facilidade de comunicaccedilatildeo entre aplicaccedilotildees existentes em muacuteltiplas plataformas e a

independecircncia de plataformas e linguagens de programaccedilatildeo satildeo evidentes

L1 Importaccedilatildeo do ldquoDynamic Web Projectrdquo MOE

A importaccedilatildeo o projecto ldquoMOErdquo (Matrix Operating Environment) para o ambiente de

desenvolvimento Eclipse carece da criaccedilatildeo de um ldquoDynamic Web Projectrdquo base no Eclipse

Assim para a criaccedilatildeo de um ldquoDynamic Web Projectrdquo seguir os passos descritos na

aliacutenea K1 Criar um ldquoDynamic Web Projectrdquo do Anexo K alterando apenas o nome para

ldquoMOErdquo Natildeo eacute necessaacuterio criar nenhuma classe java nem ficheiro HTML

Figura 74 - Projecto base MOE

Depois do projecto MOE criado basta importar o projecto real para o Eclipse ldquoFilerdquo

ldquoImportrdquo ldquoArchive Filerdquo

Figura 75 - Importaccedilatildeo do projecto real MOE

Seleccionar o projecto a importar O projecto deveraacute ficar com uma organizaccedilatildeo de

directorias como na imagem seguinte

120

Figura 76 - Projecto real MOE

L2 Configuraccedilatildeo inicial do MOE

Para que a execuccedilatildeo do MOE seja feita sem erros e todas as ligaccedilotildees e credenciaccedilotildees sejam

efectuadas temos que criar pastas e ficheiros de leitura inicial do MOE Assim vamos criar

uma directoria em C com o nome ldquorestconfigrdquo (Crestconfig) com 4 ficheiros

adminUsersListtxt

Ficheiro com todos os administradores do MOE Esta lista deveraacute ser igual agrave lista dos

administradores do HPMOE Um administrador por linha ldquodomiacutenioadminrdquo (ex

ldquohpptlabpaulopiresrdquo)

121

Figura 77 - Ficheiro ldquoadminUsersListtxtrdquo

hp-io-v5wsdl

Ficheiro WSDL (Web Service Description Language) a definiccedilatildeo das operaccedilotildees de IO

disponiacuteveis

https ltcms-ip-addressgt 51443hpiocontrollersoapv4 wsdl

Neste ficheiro basta alterar o IP do servidor HPMOE linha 5987

ltsoapaddress location=https1623187651443hpiocontrollersoapv5gt

Figura 78 - Ficheiro ldquohp-io-v5wsdlrdquo

Figura 79 - WSDL do HPMOE

loginconfig

Ficheiro de apoio agrave credenciaccedilatildeo (login) no MOE

No acircmbito da seguranccedila em aplicaccedilotildees JavaEE o servidor Apache Tomcat fornece

uma implementaccedilatildeo Realm JAAS (Java Authentication and Authorization Service) para que

os programadores possam implementar moacutedulos de login JAAS e integraacute-los facilmente com

as suas aplicaccedilotildees JAAS permite assim autenticaccedilotildees em modo Basic e Form usando para

isso os denominados realms File e JDBC (Java Database Connectivity) que neste caso eacute em

runtime

122

Figura 80 - Ficheiro ldquologinconfigrdquo

A ligaccedilatildeo ao ficheiro ldquologinconfigrdquo eacute feita no menu do Eclipse ldquoRunrdquo ldquoRun

Configurationsrdquo ldquoTomcat 70rdquo ldquoArgumentsrdquo ldquoVM argumentsrdquo adicionar a linha -

Djavasecurityauthloginconfig=Crestconfigloginconfig

Figura 81 - Ficheiro ldquologinconfigrdquo

vmwareAccesstxt

Ficheiro com dados de acesso agrave VMware para acesso agrave consola das VMs dos serviccedilos

criados

Primeira linha IP da VM onde estaacute o VCenter da VMware

Segunda linha Username do Administrador

Terceira linha Password do Administrador

123

Figura 82 - Ficheiro ldquovmwareAcesstxtrdquo

L3 Execuccedilatildeo do MOE

O MOE pode finalmente ser executado Para isso no menu clicamos em ldquoRunrdquo ldquoRunrdquo

escolhemos ldquoRun on Serverrdquo e a primeira vez que executarmos o projecto temos que fazer a

ligaccedilatildeo ao servidor Apache Tomcat ldquoApacherdquo ldquoTomcat v70 Serverrdquo e ldquoFinishrdquo

Figura 83 - Servidor Apache Tomcat dentro do Eclipse

Aguardar que o projecto seja construiacutedo e compilado Podemos acompanhar a

evoluccedilatildeo do estado directamente na consola do Eclipse

124

Figura 84 - Compilaccedilatildeo do projecto MOE

Finalmente o projecto estaacute disponiacutevel em httplocalhost8080MOE

Figura 85 - Login page MOE

Figura 86 - Data page MOE

125

Anexo M (Criaccedilatildeo de um Serviccedilo e ligaccedilatildeo agraves VMs)

A criaccedilatildeo de um serviccedilo de um determinado utilizador tem por base as

definiccedilotildeesconfiguraccedilotildees existentes num Template previamente definido e listado num

Cataacutelogo de Serviccedilos Configuraccedilotildees como detalhes dos servidores memoacuteria processadores

discos custos interfaces limites maacuteximos e miacutenimos de futuros updates ao serviccedilo etc estatildeo

previamente descritos e implementados sob a forma de Templates nos quais o utilizador pode

navegar verificar as caracteriacutesticas de cada um e escolher um que melhor se adapte as suas

necessidades

Assim o utilizador navega nos Templates existentes no Cataacutelogo de Serviccedilos do

menu lateral esquerdo e seleciona o Template No painel central do webservice painel

ldquoDetalhesrdquo satildeo abertas as tabs dos detalhes do Template selecionado

M1 Detalhes do Template

Nas imagens seguintes podemos verificar os detalhes do Template selecionado Nos detalhes

gerais do Template obtemos informaccedilotildees como o nome do Template a data de criaccedilatildeo e

modificaccedilatildeo versatildeo custo geral se eacute ou natildeo costumizaacutevel e o numero de ServerGroups

associados assim como discos e serviccedilos que jaacute foram criados tendo por base este template

Figura 87 - Detalhes gerais do Template ldquoTemplate_3srvrdquo

126

Todos os detalhes do Template ficam disponiacuteveis ao utilizador Ao niacutevel do grupo de

servidores informaccedilotildees como nome quantidade miacutenima de servidores e que seraacute a base do

serviccedilo criado e quantidade maacutexima de servidores sinal que o serviccedilo poderaacute crescer em

termos de quantidade de servidores Tipo de cluster e o numero de servidores loacutegicos

existentes no grupo

Figura 88 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo

Relativamente aos servidores o utilizador obteacutem informaccedilotildees como nome hostname

tipo de virtualizaccedilatildeo memoacuteria usada e quantidade maacutexima de memoacuteria processadores

usados e quantidade maacutexima de processadores se eacute ou natildeo virtual e se estaacute ou natildeo em cloud

Figura 89 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Informaccedilotildees detalhadas sobre os custos em detalhes ficam disponiacuteveis ao utilizador

Informaccedilotildees sobre custo total custo de base por cada servidor custo por processador e

memoacuteria

127

Figura 90 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Os discos tambeacutem apresentam informaccedilatildeo como nome tipo de storage tamanho raid

level se eacute ou natildeo bootable shareable e custo do disco

Figura 91 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

Cada servidor tem um software preacute-instalado ou instalado posteriormente pelo

utilizador Informaccedilotildees como nome tipo OS e virtualizaccedilatildeo estatildeo disponiacuteveis

Figura 92 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

Finalmente detalhes sobre as interfaces Neste caso duas interfaces uma na rede HP

(HP Network) e outra rede local (CloudSystem) Estatildeo disponiacuteveis informaccedilotildees como nome

da interface se eacute ou natildeo primaacuteria redundacircncia subnet publica shareable tipo de IP

endereccedilo DHCP activo ou natildeo e custo final

128

Figura 93 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo

M2 Criaccedilatildeo de um Serviccedilo

Selecionado o Template que melhor se enquadra nas necessidades do utilizador clicar

na opccedilatildeo preencher todos os dados obrigatoacuterios como nome do

serviccedilo hostname tempo atribuiacutedo ao serviccedilo (acarreta custos) e email do utilizador

As opccedilotildees ldquoNotesrdquo e ldquoBilling coderdquo satildeo opcionais

Figura 94 - Criaccedilatildeo do serviccedilo ldquomyServicerdquo

129

Apoacutes a solicitaccedilatildeo para a criaccedilatildeo do serviccedilo o utilizador eacute encaminhado para uma

lista de pedidos existentes para aquele utilizador e serviccedilo em especiacutefico Pedidos que

poderatildeo ser cancelados (figura 95) mediante decisatildeo do utilizador

Figura 95 - Lista de pedidos do utilizador

A salientar que existem pedidos que carecem da aprovaccedilatildeo do administrador por isso

o pedido poderaacute ficar parado numa determinada percentagem () a espera dessa aprovaccedilatildeo

Se o pedido natildeo necessitar de aprovaccedilatildeo continuaraacute a sua execuccedilatildeo ateacute estar completo

(100) e automaticamente seraacute adicionado ao menu lateral esquerdo do utilizador

Figura 96 - Eventual cancelamento de um pedido

Finalmente o serviccedilo eacute criado e todas as opccedilotildees ficaratildeo agora disponiacuteveis ao

utilizador como ediccedilatildeo de memoacuteria e processadores upgrade de servidores exportaccedilatildeo de

dados em xml visualizaccedilatildeo nesse formato etc

M3 Acesso Remoto

Acesso remoto agrave maquina virtual (VM) como objectivo de toda a implementaccedilatildeo estaacute

igualmente disponiacutevel para os servidores cujo status = ldquoUPrdquo Essa listagem poderaacute ser

efectuada na tab ldquoServiccedilosrdquo em com quatro tipo de ligaccedilotildees

130

RDP (Remote Desktop Protocol) (figura 100)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet (figura 101)

VMRC (VMware Remote Console) (figura 102)

Figura 97 - Serviccedilo ldquomyServicerdquo criado

Figura 98 - Listagem dos acessos remotos

Os acessos remotes poderatildeo ser feitos atraveacutes desta lista ou directamente nos

servidores ou interfaces

131

Figura 99 - Acesso remoto na tab ldquoServerrdquo

Figura 100 - Acesso remoto por RDP

Figura 101 - Acesso remoto por Telnet

Figura 102 - Acesso remoto por VMRC

132

Anexo N (MOE Help)

A informaccedilatildeo disponibilizada eacute vasta e detalhada sobre os recursos disponibilizados e a sua

manipulaccedilatildeo pode criar alguma duacutevida existencial Uma paacutegina ldquoMOE Helprdquo de ajuda eacute

sempre bem vinda e uacutetil bastando para isso clicar no iacutecone que o ajudaraacute a compreender

melhor tido o wevservice e sua distribuiccedilatildeo e organizaccedilatildeo

Figura 103 - Menu lateral esquerdo ldquoMOE Helprdquo

O menu lateral esquerdo agrave semelhanccedila da paacutegina principal do webservice expelha a

hierarquia da organizaccedilatildeo de toda a informaccedilatildeo O utilizador apenas tem que clicar na opccedilatildeo

que deseja maior esclarecimento

Figura 104 - Menu lateral esquerdo ldquoMOE Helprdquo

133

Toda a informaccedilatildeo de ajuda estaacute imediatamente disponiacutevel com as Tabs respectivas jaacute

abertas e prontas a consultar O menu lateral esquerdo serve apenas para selecionar a Tab e

dentro dessa Tab selecionar imediatamente a informaccedilatildeo pretendida Se o utilizador tiver

duacutevidas sobre a a importaccedilatildeo de um Template basta abrir a Tab Template e scroll ateacute agrave

informaccedilatildeo pretendida ou sentatildeo mais faacutecil clicar apenas em ldquoImport xmlrdquo dentro da pasta

Template no menu lateral esquerdo e com um simples clique visualiza imediatamente a

informaccedilatildeo nem necessidade de scroll

Figura 105 - ldquoImport xmlrdquo help

N1 Template

Um Template compreende a uma configuraccedilatildeo especifica de hardware e software desenhado

pelo Arquitecto a infra-estrutura para fazer face a determinadas situaccedilotildees como solicitaccedilotildees

de um utilizador ou grupo de utilizadores que solicitaram essas configuraccedilotildees especificadas

Configuraccedilotildees como nuacutemero de servidores memoacuteria processadores discos software

interface etc Opccedilotildees configuraacuteveis com limites minimos e maacuteximos com o seu

correspondente custo associado

Esses templates apoacutes publicaccedilatildeo fazem parte de uma lista num cataacutelogo de serviccedilos

para uso e instanciaccedilatildeo de serviccedilos de utilizadores dessa infra-estrutura

134

Figura 106 - Template info Tab

N2 Service

Um serviccedilo corresponde a uma instanciaccedilatildeo de um determinado template Todas as

configuraccedilotildees base do template seleccionado pertencem agora a este novo serviccedilo que poderaacute

ser posteriormente editado com mais ou menos servidores processamento memoacuteria discos

etc ateacute um limite maacuteximo definido no template de base de criaccedilatildeo deste serviccedilo A opccedilatildeo de

remoccedilatildeo de servidores definir menos memoacuteria ou processadores tambeacutem satildeo opccedilotildees

disponiacuteveis de ediccedilatildeo

Figura 107 - Service info Tab

135

N3 ServerGroup

Um Grupo de Servidores corresponde a um ou mais servidores com configuraccedilotildees diacutespares

em cada grupo como software discos interfaces etc O grupo de servidores permite a

organizaccedilatildeo dos servidores existentes num serviccedilo por tipo de configuraccedilotildees de hardware e

software

Figura 108 - ServerGroup info Tab

N4 Server

Um servidor eacute o nuacutecleo de um serviccedilo igualmente com configuraccedilotildees especiacuteficas como

memoacuteria processadores velocidade discos software interfaces etc

Figura 109 - Server info Tab

136

N5 Disk

Figura 110 - Disk info Tab

N6 Software

Software a ser disponibilizado na VM do utilizador Software baseado igualmente num

template com configuraccedilotildees especiacuteficas

Figura 111 - Software info Tab

137

N7 Interface

Toda a infra-estrutura tem por base uma lista de redes definidas para comunicaccedilatildeo desde

redes internas a redes externas agrave infra-estrutura

Figura 112 - Interface info Tab

N8 Request

Os pedidossolicitaccedilotildees ficam em histoacuterico durante a sua execuccedilatildeo e apoacutes teacutermino da mesma

Permite que o utilizador acompanhe a progressatildeo do seu pedido e quando terminar (100) o

utilizador eacute informado do status de teacutermino sendo automaticamente feito o refresh da paacutegina

Figura 113 - Request info Tab

138

N9 About

Um pequeno resumo desta Tese

Figura 114 - About info Tab

N10 Team

Intervenientes de todo o projecto

Figura 115 - Team info Tab

139

N11 Javadoc

Informaccedilatildeo sobre todo o webservice meacutetodos moacutedulos de acesso login configuraccedilotildees etc

Informaccedilatildeo disponiacutevel apenas ao Administrador

Figura 116 - Javadoc info Tab

140

Anexo O (VMware - Virtual Machine Resources)

O1 ldquoMapsrdquo ndash Host Options ndash Host to VM

Detalhes da relaccedilatildeo HostVM no final dos 3 serviccedilos criados

Host cifm02hpptlablocal VM Service1HP_hostonehost5

Host cifm05hpptlablocal VM myService_hostmyhostr01

Service2HP_hostrhostr01 02 e 03

Figura 117 - ldquoMapsrdquo da relaccedilatildeo Host VM

141

O2 ldquoMapsrdquo ndash Host Options ndash Host to Network

Detalhes da relaccedilatildeo HostNetwork no final dos 3 serviccedilos criados Os 2 hosts

(cifm02hpptlablocal e cifm05hpptlablocal) estatildeo ligados agraves 3 redes existentes

CloudSystem rede interna MOE (19216810hellip)

HP Network rede externa MOE e interna HP (1623186hellip e 1623187hellip)

HP DataCenter outra rede interna MOE

Figura 118 - ldquoMapsrdquo da relaccedilatildeo Host Network

142

O3 ldquoMapsrdquo ndash Host Options ndash Host to Datastore

Detalhes da relaccedilatildeo HostDatastore no final dos 3 serviccedilos criados

Host cifm02hpptlablocal Datastore CIF02-LOCALDATASTORE-001

Host cifm05hpptlablocal Datastore CIF05-LOCALDATASTORE-001 002 003 e

004

Datastore EVA-VMware-DISK-001 002 003 004 3 005

Figura 119 - ldquoMapsrdquo da relaccedilatildeo Host Datastore

143

O4 ldquoMapsrdquo ndash VM Options ndash VM to Network

Detalhes da relaccedilatildeo VMNetwork no final dos 3 serviccedilos criados

Network CloudSystem VM todas as VMs na rede local MOE

Network HP Network VM todas as VMs na rede externa MOE

Figura 120 - ldquoMapsrdquo da relaccedilatildeo VM Network

144

O5 ldquoMapsrdquo ndash VM Options ndash VM to Datastore

Detalhes da relaccedilatildeo HostDatastore no final dos 3 serviccedilos criados

VM Service1HP_hostonehost5 Datastore EVA-VMware-DISK-004

VM myService_hostmyhostr01 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr01 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr02 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr03 Datastore CIF05-LOCALDATASTORE-004

Figura 121 - ldquoMapsrdquo da relaccedilatildeo Host Datastore

145

O6 ldquoMapsrdquo ndash Host and VM Options ndash all relationships

146

Anexo P (Scenario view)

P1 Template

P11 Informaccedilatildeo

Figura 122 - Detalhes gerais do Template ldquoTemplate_3srvrdquo

Figura 123 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo

147

Figura 124 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Figura 125 - Detalhes dos Custos do Servidor ldquoSvrGrp1-1rdquo

Figura 126 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

Figura 127 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

148

Figura 128 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo

P12 Execuccedilatildeo

Figura 129 - Ficheiro ldquoTemplateListxmlrdquo

149

Export Template

Figura 130 - Ficheiro ldquoTemplate_3srvxmlrdquo

Import Template

Figura 131 - Importaccedilatildeo de um Template em formato XML

Delete Template

Figura 132 - InfoWindow ldquoDelete Templaterdquo

150

XML View

Figura 133 - InfoWindow com a visualizaccedilatildeo do Template em XML

Export All Services

Figura 134 - Ficheiro ldquoTemplate_3srv_ServiceListxmlrdquo

151

Create Service

Figura 135 - Criaccedilatildeo de um Serviccedilo com base no Template ldquoTemplate_3srvlrdquo

All Requests

Figura 136 - Lista de todos os pedidos do utilizador

152

Figura 137 - Eventual cancelamento de um pedido

Template Requests

Figura 138 - Lista dos pedidos resultantes da relaccedilatildeo Templateutilizador

153

P2 Serviccedilo

P21 Informaccedilatildeo

Figura 139 - Detalhes do Serviccedilo ldquomyServicerdquo do Template ldquoTemplate_3srvrdquo

P22 Execuccedilatildeo

Export All Services

Figura 140 - Ficheiro ldquoallServicesListxmlrdquo

154

Export Service

Figura 141 - Ficheiro ldquomyServicexmlrdquo

XML View

Figura 142 - InfoWindow com a visualizaccedilatildeo do Serviccedilo em XML

Delete Service

Figura 143 - Remoccedilatildeo de um Serviccedilo

155

Power ON Service

Figura 144 - Power ON de um Serviccedilo

Power OFF Service

Figura 145 - Power OFF de um Serviccedilo

Power Cycle Service

Figura 146 - Power Cycle de um Serviccedilo

Activate Service

Figura 147 - Activaccedilatildeo de um Serviccedilo

Deactivate Service

Figura 148 - Desactivaccedilatildeo de um Serviccedilo

156

Service Actions

Figura 149 - Lista dos Service Actions

List Remote Session

Figura 150 - Lista dos Acessos Remotos do um Serviccedilo

Figura 151 - Acesso remoto por RDP

Figura 152 - Acesso remoto por Telnet

157

Figura 153 - Acesso remoto por VMRC

Service Requests

Figura 154 - Listagem dos pedidos por Serviccedilo

158

P3 Grupo de Servidores

P31 Informaccedilatildeo

Figura 155 - Detalhes do Grupo de Servidores ldquoSvrGrp1rdquo do Serviccedilo ldquomyServicerdquo

P32 Execuccedilatildeo

Export Server Group

Figura 156 - Ficheiro ldquoSvrGrp1xmlrdquo

159

XML View

Figura 157 - InfoWindow com a visualizaccedilatildeo do Grupo de Servidores em XML

Add Servers (UP)

Figura 158 - Adiccedilatildeo de Servidores ao Grupo de Servidores

Remove Servers (DOWN)

Figura 159 - Remoccedilatildeo de Servidores ao Grupo de Servidores

160

Edit ServerGroup

Figura 160 - Ediccedilatildeo de Servidores ao Grupo de Servidores

Power ON ServerGroup

Figura 161 - Power ON de um ServerGroup

Power OFF ServerGroup

Figura 162 - Power OFF de um ServerGroup

Power Cycle ServerGroup

Figura 163 - Power Cycle de um ServerGroup

161

Activate ServerGroup

Figura 164 - Activaccedilatildeo de um ServerGroup

Deactivate ServerGroup

Figura 165 - Desactivaccedilatildeo de um ServerGroup

List Snapshots

Figura 166 - Listagem de todos os Snapshots existentes no Grupo de Servidores

Figura 167 - Acccedilotildees SnapshotServidor

Figura 168 - Revert Snapshot

162

Figura 169 - Delete Snapshot

Create Snapshot

Figura 170 - Create Snapshot

Add Stereotype Disks

Figura 171 - Lista de ldquoStereotype Disksrdquo

Add Virtual Disks

Figura 172 - Adicionar um disco virtual ldquoDisk62rdquo ao Grupo de Servidores

163

Add Physical Disks

Figura 173 - Adicionar um disco fiacutesico ldquoDisk788rdquo ao Grupo de Servidores

P4 Servidores

P41 Informaccedilatildeo

Figura 174 - Detalhes do Servidor ldquoSvrGrp1-1rdquo do Serviccedilo ldquomyServicerdquo

164

P42 Execuccedilatildeo

Export Server

Figura 175 - Ficheiro ldquohostmygostr01_lsxmlrdquo

XML View

Figura 176 - InfoWindow com a visualizaccedilatildeo do Servidor em XML

165

Remove Server

Figura 177 - Remoccedilatildeo de um Servidor

Edit Server

Figura 178 - Ediccedilatildeo de um Servidor

Power ON Server

Figura 179 - Power ON de um Servidor

Power OFF Server

Figura 180 - Power OFF de um Servidor

166

Power Cycle Server

Figura 181 - Power Cycle de um Servidor

Activate Server

Figura 182 - Activaccedilatildeo de um Servidor

Deactivate Server

Figura 183 - Desactivaccedilatildeo de um Servidor

Create Snapshot

Figura 184 - Create Snapshot

167

List ServerPool

Figura 185 - Pools de Servidores

Figura 186 - Criar uma Pools de Servidores

Figura 187 - Remoccedilatildeo de uma Pools de Servidores

Figura 188 - InfoWindo de aviso ao administrador

168

VM Host

Figura 189 - Informaccedilatildeo dos hosts fiacutesicos

Remote Session

Figura 190 - Sessotildees Remotas num Servidor

169

P5 Discos

P51 Informaccedilatildeo

Figura 191 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

P52 Execuccedilatildeo

Add Stereotype Disks

Figura 192 - Criaccedilatildeo de um ldquoStereotype Disksrdquo

170

P6 Software

P61 Informaccedilatildeo

Figura 193 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

P62 Execuccedilatildeo

List Softwares

Figura 194 - Lista de Software

171

Software Detals

Figura 195 - Detalhes do Software

P7 Interface

P71 Informaccedilatildeo

Figura 196 - Detalhes do Interface NIC0rdquo do Servidor ldquoSvrGrp1-1rdquo

172

P72 Execuccedilatildeo

List Subnets

Figura 197 - Listagem de todas as redes

Figura 198 - Detalhe da rede

Add IPAddress

Figura 199 - Adiccedilatildeo de um IP flutuante agrave Interface ldquoNIC0rdquo

173

Remove IPAddress

Figura 200 - Remoccedilatildeo de um IP flutuante pertencente agrave Interface ldquoNIC0rdquo

Move IPAddress

Figura 201 - Mover um IP flutuante para a Interface ldquoNIC0rdquo

Page 2: Framework para a construção de “portais de negócio” para

LOMBADA

F

ram

ew

ork

para

a c

onstr

uccedilatildeo d

e ldquo

port

ais

de n

eg

oacutecio

rdquo p

ara

gestatilde

o d

e s

olic

ita

ccedilotildee

s d

e c

onsum

idore

s I

aaS

na H

P C

loud

Pa

ulo

Pire

s

Pa

ulo

Pire

s

2013

2013

Paulo Agostinho Rodrigues Pires

Licenciado em Engenharia Informaacutetica

Framework para a construccedilatildeo de ldquoportais de negoacuteciordquo para gestatildeo de solicitaccedilotildees de consumidores IaaS

na HP Cloud

Dissertaccedilatildeo para obtenccedilatildeo do Grau de Mestre em Engenharia Informaacutetica

Orientador Prof Doutor Paulo Orlando Reis Afonso Lopes Prof Auxiliar Departamento de Informaacutetica da FCTUNL

Co-orientador Engenheiro Informaacutetico Rui Miguel Ramalho Ramos Team Leader de TS Consulting da HP

Novembro 2013

IV

V

Framework para a construccedilatildeo de ldquoportais de negoacuteciordquo

para gestatildeo de solicitaccedilotildees de consumidores IaaS

na HP Cloud

copy Copyright - Indicaccedilatildeo dos direitos de coacutepia em nome de Paulo Agostinho Rodrigues Pires

aluno de Mestrado em Engenharia Informaacutetica da FCTUNL

A Faculdade de Ciecircncias e Tecnologia e a Universidade Nova de Lisboa tecircm o direito

perpeacutetuo e sem limites geograacuteficos de arquivar e publicar esta dissertaccedilatildeo atraveacutes de

exemplares impressos reproduzidos em papel ou de forma digital ou por qualquer outro

meio conhecido ou que venha a ser inventado e de a divulgar atraveacutes de repositoacuterios

cientiacuteficos e de admitir a sua coacutepia e distribuiccedilatildeo com objectivos educacionais ou de

investigaccedilatildeo natildeo comerciais desde que seja dado creacutedito ao autor e editor

VI

VII

Agradecimentos

Um profundo agradecimento a todos aqueles que de diferentes formas me apoiaram durante

estes 5 anos enquadrando este trabalho como objectivo uacuteltimo de uma licenciatura e

mestrado integrado em Engenharia Informaacutetica

Comeccedilo assim por agradecer a todos os meus professores da FCT que ao longo

destes 5 anos contribuiacuteram para a minha formaccedilatildeo acadeacutemica

Aos meus amigos que no estudo nas diversotildees nos incentivos conseguiram sempre criar um

ambiente ideal e propiacutecio agrave concretizaccedilatildeo das diferentes etapas deste curso com eacutexito Para

mim foi um privileacutegio ter partilhado com eles esta etapa da minha vida

Agrave HP pela disponibilizaccedilatildeo de todas as infra-estruturas permissotildees e acessos para a

elaboraccedilatildeo deste framework Um abiente acolhedor em pessoas trabalho equipamento e

apoio

Ao meu orientador e responsaacutevel na HP Rui Miguel Ramalho Ramos (TS Consulting

Resource Manager) que sempre ponto a ajudar soube resolver atempadamente todas as

minhas solicitaccedilotildees Um muito obrigado pela camaradagem eficiecircncia e profissionalismo

com que encarou toda a implementaccedilatildeo

Um agradecimento especial ao meu orientador da tese Professor Paulo Orlando Reis

Afonso Lopes (Arquitectura de Sistemas Computacionais) pela sua orientaccedilatildeo

disponibilidade e sugestotildees que me ajudaram na conclusatildeo deste trabalho Um muito

obrigado pela sua constante presenccedila e acima de tudo pela confianccedila que me concedeu

durante toda a tese quer na preparaccedilatildeo quer na elaboraccedilatildeo Uma acessibilidade e presenccedila

que fizeram toda a diferenccedila obrigado professor

Por uacuteltimo agrave minha famiacutelia pelo encorajamento pais irmatilde e sogros Um obrigado

especial ao meu sogro Aires Pereira pelas brincadeiras que proporcionou agrave minha filha

entretendo-a para que eu pudesse estudar e desenvolver esta tese

Agrave minha esposa Nadia Pires e a minha filha Lara merecem uma menccedilatildeo especial

Agradeccedilo agrave minha esposa pelo apoio prestado nesta etapa da minha vida obrigada pelo amor

pela paciecircncia pelo otimismo pela motivaccedilatildeo e por me ter acompanhado nas horas mais

difiacuteceis desta etapa estarei eternamente grato Na minha ausecircncia soube sempre ser o Pai e a

Matildee que uma famiacutelia precisa

Agrave minha querida filha um agradecimento muito especial e um pedido de desculpas

em simultacircneo Obrigada pelos sorrisos pelos abracinhos pelos beijinhos enfimhellip por todos

os carinhos que soacute uma menina doce como ela sabe dar e que me ajudaram a ultrapassar os

momentos mais difiacuteceis desta jornada Desculpa pela falta de paciecircncia e por todos os

momentos que natildeo podemos estar juntos

VIII

Resumo

O HP CloudSystem Matrix (CSM) faz parte de uma pilha de software HP para computaccedilatildeo

na cloud que cobre todos os niacuteveis de serviccedilo considerados relevantes IaaS (Infra-estrutura

como Serviccedilo) PaaS (Plataforma como Serviccedilo) e SaaS (Software como Serviccedilo) Apesar de

ser a base desta pilha ie oferecer o niacutevel IaaS eacute um produto extremamente complexo pois

interage com todas as infra-estruturas as computacionais (ie servidores fiacutesicos ou virtuais)

as de armazenamento (do disco interno aos discos em servidores de armazenamento) e as de

interligaccedilatildeo (redes Ethernet e FC)

Apesar de toda a complexidade da infra-estrutura real e virtual que gere o CSM

torna conceptualmente simples a entrega aos consumidores de infra-estruturas para suporte a

aplicaccedilotildees 1) o administrador define que recursos da infra-estrutura estatildeo disponiacuteveis para

integrar a ldquooferta cloudrdquo 2) o arquitecto define templates para as arquitecturas que considera

adequadas para necessidades dos consumidores (eg arquitectura 3-tier para uma soluccedilatildeo

ERP - Enterprise Resource Planning) e 3) o consumidor escolhe o template que melhor se

ajusta agraves suas necessidades e efectua um pedido de aprovisionamento da infra-estrutura

A interacccedilatildeo entre os diferentes interlocutores (1) (2) (3) e o CSM eacute

fundamentalmente realizada sobre portais contudo especialmente no caso do consumidor o

portal disponibilizado pelo produto tem sido considerado como ldquocomplexordquo por apresentar

informaccedilatildeo demasiado teacutecnica ldquoriacutegidordquo por natildeo poder ser customizado (por exemplo para

suprimir a ldquoinformaccedilatildeo demasiado teacutecnicardquo) e ldquogrosseirordquo por natildeo permitir a especificaccedilatildeo

mais fina das caracteriacutesticas da infra-estrutura que se quer aprovisionar (por exemplo permite

variar o nuacutemero de CPUs e a quantidade de memoacuteria de um servidor mas natildeo permite

escolher a tecnologia dos discos que se pretendem aprovisionar eg SSD em vez de FC 15K

em vez de 10K rpm) Assim o objectivo final da dissertaccedilatildeo eacute desenvolver um framework

que permita com base num conjunto (extensiacutevel e configuraacutevel) de opccedilotildees preacute-definidas e

em layouts customizaacuteveis definir portais que se integram com o HP CloudSystem Matrix e

que permitam aos utilizadores (consumidores) uma interacccedilatildeo natildeo soacute mais simples mas

tambeacutem mais versaacutetil

Neste trabalho satildeo abordados os modelos de serviccedilo e de implantaccedilatildeo (deployment)

de clouds a virtualizaccedilatildeo (natildeo somente de servidores mas tambeacutem de armazenamento e de

redes) pedra base de toda a tecnologia cloud e os moacutedulos e APIs disponiacuteveis para

interoperar com o CSM nomeadamente API-MOE e API-VMware Por fim eacute apresentada

uma framework com uma arquitectura multicamada (N-tier) implementada com tecnologias

padratildeo TCPIP para a pilha de comunicaccedilotildees REST (Representational State Transfer) para

regular a interacccedilatildeo e troca de informaccedilatildeo clienteservidor e XML (Extensible Markup

Language) e JSON (JavaScript Object Notation) como formatos de dados

Palavras-chave Computaccedilatildeo na nuvem Portal de interacccedilatildeo Traduccedilatildeo Binaacuteria

Virtualizaccedilatildeo de Servidores Virtualizaccedilatildeo de Armazenamento e Virtualizaccedilatildeo da Rede

IX

Abstract

The HP CloudSystem Matrix (CSM) is a part of the HP software stack for cloud computing

that covers all relevant service levels IaaS (Infrastructure as a Service) PaaS (Platform as a

Service) and SaaS (Software as a Service) Although it rests at the base of the stack ie only

offers the IaaS level it is an extremely complex product since it interacts with all

infrastructures computing (ie physical and virtualized servers) storage (from individual

drives to disk arrays) and networking (Ethernet and FC networks)

Despite all the (real) infrastructureacutes complexity that CSM deals with the delivery (to

end users ndash aka infrastructure consumers) of infrastructures for application support

becomes a conceptually simple task (1) the administrator defines which infrastructure

resources are available to integrate the cloud offer (2) the architect defines templates for

those architectures he deems appropriate for the end users (eg 3-tier architecture for an ERP

- Enterprise Resource Planning - solution) (3) the end user chooses the template that better

suits its needs and then submits a request for the delivery of the infrastructure

The interaction between the different counterparts (1) (2) and (3) and the CSM is

fundamentally realised over portals however especially in the case of the end user the portal

has been considered complex since it presents too much technical information rigid

since it is not customizable (eg to suppress the too much technical information) and

coarse since it does not allow a finer-graned specification of the infrastructureacutes attributes

that are required (eg it allows to change the number of CPUs and the amount of memory in

the server but it does not allow one to choose the disk technologies eg SSD instead of FC

or 15K instead 10K rpm) Therefore the final goal of this dissertation is to develop a

framework that allows with a set of pre-defined settings and customizable layouts to define

portals that are integrated with HP CloudSystem Matrix and enables a simpler user

interaction

In this work we studied service and cloud implementation models virtualization (not

only server virtualization but also storage and network virtualization) the foundation of all

cloud technologies modules and APIs that interoperate with CSM namely API-MOE and

API-VMware Finally we present a framework (prototype) implemented in a multi-layer

architecture (N-tier) with standard technologies TCPIP for the communication stack REST

(Representational State Transfer) to control the interaction and the clientserver information

flows and XML (eXtensible Markup Language) and JSON (JavaScript Object Notation) for

the data formats

Keywords Cloud Computing Interaction Portal Binary Translation Server Virtualization

Storage Virtualization and Network Virtualization

X

Glossaacuterio e Lista de siglas

API Application Programming Interface

BIOS Basic InputOutput System

CC Computaccedilatildeo em Cloud

CIFS Common Internet File System

CL Command Line

CMS Console Monitor System

CP Control Program

CPU Central Processing Unit

CSS Cascading Style Sheets

DAS Direct-Attached Storage

Dom0 Domiacutenio 0 do XenServer

DomU Domiacutenio U do XenServer

DVFilter Distributed Virtual Filter

DynaRecs Dynamic Recompilation

EIDE Enhanced Integrated Drive Electronics

FC Fibre Channel

FCoE Fibre Channel over Ethernet

FTP File Transfer Protocol

GUEST Sistema Virtualizado

HD Hard Drive

HOST Servidor Hospedeiro

HP Hewlett-Packard

HPCMS HP Console Management System

CSM HP CloudSystem Matrix (Hewlett-Packard)

IC Insight Control (Hewlett-Packard)

ID Insight Dynamics (Hewlett-Packard)

IO Infrastructure Orchestration (Hewlett-Packard)

SA Server Automation (Hewlett-Packard)

SS SiteScope (Hewlett-Packard)

UD Universal Discovery (Hewlett-Packard)

HPVM HP Integrity Virtual Machine

VMAN Virtualization Manager (Hewlett-Packard)

VMMGR HP Integrity Virtual Machines Manager (Hewlett-Packard)

XI

HTTP HyperText Transfer Protocol

HVM Virtualizaccedilatildeo assistida por hardware

IO InputOutput

IaaS Infrastructure as a Service

IBM International Business Machines Corporation

IDE Integrated Development Environment

iSCSI Internet Small Computer System Interface

J2EE Java2 Platform Enterprise Edition

JS JavaScript

JSON JavaScript Object Notation

JVM Java Virtual Machine

LAN Local Area Network

LUN Logical Unit Number

LVM Logical Volume Manager

MAC Apple Macintosh

MOE Matrix Operating Environment

MSCS Microsoft Cluster Server

NAS Network Attached Storage

nbAPI Northbound API

NetApp Network Appliance

NFS Network File System

NIC Adaptador de rede (Network Interface Controller)

NVRAM Non-Volatile Random Access Memory

PaaS Plataform as a Service

PATA Parallel Advanced Technology Attachment

pNIC Physical Network Interface Controller

POSIX Portable Operating System Interface

PV Para-Virtualizaccedilatildeo

PVHVM Para-Virtualizaccedilatildeo + Virtualizaccedilatildeo assistida por hardware

QOS Quality Of Service

RAID Redundant Array of Independent Disks

RAM Random Access Memory

REST REpresentational State Transfer

RPC Remote Procedure Call

SaaS Software as a Service

XII

SAN Storage Area Network

SAP Sistemas Aplicaccedilotildees e Produtos

SAS Serial Attached SCSI

SATA Serial ATA

SCSI Small Computer System Interface

SCVMM System Center Virtual Machine Manager

SF Sistema de Ficheiros

SLA Service Level Agreement

SMTP Simple Mail Transfer Protocol

SO Sistema Operativo

SOA Service-Oriented Architecture

SOAP Simple Object Access Protocol

SSD Solid-State Drive

TCPIP Transmission Control ProtocolInternet Protocol

TI Tecnologias de Informaccedilatildeo

URI Uniform Resource Identifier

URL Uniform Resource Locator

UUID Identificador Uacutenico Universal

VDI Virtual Disk Image

vDS vNetwork Distributed Switch

VHD Virtual Hard Disk (Microsoft)

VLAN Virtual LAN

VM Virtual Machine

VMBus Virtual Machine Buss

VMDK Virtual Machine Disk (VMware)

VMFS Virtual Machine File System

VMM hipervisor (tambeacutem designado Virtual Machine Manager)

vNIC Virtual Network Interface Controller

VSC Virtual Service Client

VSP Virtual Service Provider

vSwitch Virtual Switch

WOA Web-Oriented Architecture

WS Web Service

WWW World Wide Web

XML Extensible Markup Language

XIII

Iacutendice

1 Introduccedilatildeo 1

11 Descriccedilatildeo e contexto 1

12 Objectivos 3

13 Organizaccedilatildeo 3

14 Contribuiccedilotildees 4

15 Resumo 5

2 Virtualizaccedilatildeo 6

21 Evoluccedilatildeo histoacuterica 6

22 Virtualizaccedilatildeo de Servidores 7

221 VMware (VMware Inc) 8

222 Xen (Citrix Systems Inc) 9

223 Integrity VM (HP) 10

224 Hyper-V (Microsoft) 11

23 Virtualizaccedilatildeo do Armazenamento 12

231 Armazenamento em ambientes virtualizados 14

24 Virtualizaccedilatildeo da Rede 16

25 Resumo 18

3 Computaccedilatildeo na Cloud 19

31 Periacutemetro de uma cloud 19

32 Modelos de serviccedilo 20

33 Resumo 22

4 HP Cloud Stack 23

41 HP CloudSystem Matrix 23

42 Modelos de interacccedilatildeo com o HP CSM 25

43 Papeacuteis e Portais de interacccedilatildeo 26

44 Conceitos fundamentais da plataforma HP CSM 28

45 Limitaccedilotildees do HP CloudSystem Matrix 30

46 Resumo 31

5 O framework e a sua Realizaccedilatildeo 32

51 Arquitectura 32

52 Integraccedilatildeo da framework no HP CSM (MOE e VMware) 33

53 Um desenho guiado pela Interface Utilizador 34

54 Camada de apresentaccedilatildeo 38

XIV

541 Do lado do cliente 38

542 Do lado do servidor 39

543 Lista de primitivas na oacuteptica dos recursos 40

55 Camada ServiccedilosLoacutegica 41

551 Camada de Serviccedilos 42

552 Camada Loacutegica 42

56 Camada de Dados 68

561 Dados natildeo persistentes 68

562 Dados persistentes 69

57 Feedback 72

58 Questotildees principais 73

59 Visatildeo global 75

510 Resumo 76

6 Consideraccedilotildees Finais 77

61 Conclusotildees 78

62 Trabalho futuro 79

63 Resumo 80

Referecircncias bibliograacuteficas 81

XV

Iacutendice de Figuras

Figura 1 - Ambiente natildeo Virtualizado 1

Figura 2 - Ambiente Virtualizado 1

Figura 3 - Infra-estrutura CSM 2

Figura 4 - Arquitectura VMware ESXi (Tipo-1) 9

Figura 5 - Arquitectura XenServer 10

Figura 6 - Arquitectura Hyper-V 11

Figura 7 - Redundant Array Independent Disks (RAID) 12

Figura 8 - Storage Area Network (SAN) 13

Figura 9 - Network Attached Storage (NAS) 13

Figura 10 - Datastore e VMs 14

Figura 11 - Sistema de Ficheiros VMFS 15

Figura 12 - Network File System (NFS) 15

Figura 13 - Infra-estrutura de rede tradicional 16

Figura 14 - Infra-estrutura de rede virtual 17

Figura 15 - vNetwork Distributed Switch ndash vDS 17

Figura 16 - Distributed Virtual Filter (DVFilter) 18

Figura 17 - Relaccedilatildeo entre serviccedilos e responsabilidades 21

Figura 18 - Relaccedilotildees e papeacuteis dos envolventes nos modelos de Cloud Computing 22

Figura 19 - Contributos CloudStack 23

Figura 20 - Desenho publicaccedilatildeo e implementaccedilatildeo do cataacutelogo de serviccedilos 24

Figura 21 - Infra-estrutura HP CloudSystem Matrix 25

Figura 22 - Utilizadores de TI em cloud e respectivos papeacuteis (roles) 26

Figura 23 - Portal do Administrador 27

Figura 24 - Portal do Arquitecto 27

Figura 25 - Portal do Utilizador final 28

Figura 26 - Arquitectura n-tier 32

Figura 27 - Relaccedilatildeo dos VMIDs (WebService-MOE-vCenter) 33

Figura 28 - Estrutura em aacutervore do menu lateral esquerdo 35

Figura 29 - Portal 36

Figura 30 - Diagrama de Sequecircncia (Criaccedilatildeo de um Serviccedilo) 37

Figura 31 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull 41

Figura 32 - Execuccedilatildeo tab ldquoTemplaterdquo 45

Figura 33 - Execuccedilatildeo tab ldquoServicerdquo 48

Figura 34 - Execuccedilatildeo tab ldquoServerGroupsrdquo 51

Figura 35 - Execuccedilatildeo tab ldquoServerrdquo 56

XVI

Figura 36 - Execuccedilatildeo tab ldquoDisksrdquo 60

Figura 37 - Execuccedilatildeo tab ldquoSoftwarerdquo 61

Figura 38 - Execuccedilatildeo tab ldquoInterfacerdquo 62

Figura 39 - Listagem das redes existentes 64

Figura 40 - Execuccedilatildeo tab ldquoSnapshotrdquo 65

Figura 41 - Execuccedilatildeo tab ldquoRequestsrdquo 66

Figura 42 - Execuccedilatildeo tab ldquoServerPoolsrdquo 68

Figura 43 - Realm JAAS (Java Authentication and Authorization Service) 69

Figura 44 - Modelo ER 71

Figura 45 - Mensagens SOAP na invocaccedilatildeo de processos do MOE 75

Figura 46 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull do WEBSERVICE 76

Figura 47 - VMM ou hypervisor do Tipo-2 87

Figura 48 - VMM ou hypervisor do ldquohiacutebridordquo 88

Figura 49 - VMM ou hypervisor do Tipo-1 88

Figura 50 - Emulaccedilatildeo de Hardware 89

Figura 51 - Virtualizaccedilatildeo Completa 90

Figura 52 - Para-Virtualizaccedilatildeo 91

Figura 53 - Virtualizaccedilatildeo assistida por Hardware 91

Figura 54 - LUN num SAN iSCSI ou SAN FC 99

Figura 55 - Network File System (NFS) 100

Figura 56 - Projecto ldquoDynamic Web Projectrdquo no eclipse 102

Figura 57 - Plataforma Java 107

Figura 58 - Comando ldquojava -versionrdquo 108

Figura 59 - Instalaccedilatildeo da Plataforma Java 109

Figura 60 - Variaacutevel de sistema ldquoPathrdquo 109

Figura 61 - Variaacutevel de sistema ldquoCLASSPATHrdquo 110

Figura 62 - Variaacutevel de sistema ldquoJAVA_HOMErdquo 110

Figura 63 - Directoria de instalaccedilatildeo do Servidor Apache Tomcat 111

Figura 64 - Link localhost Apache Tomcat 112

Figura 65 - Add repository 113

Figura 66 - Dynamic Web Project 114

Figura 68 - Propriedades do Dynamic Web Project 115

Figura 69 - Webxml do Dynamic Web Project 115

Figura 70 - Directoria base do Dynamic Web Project 116

Figura 71 - Criar uma classe 117

Figura 72 - Servidor Apache Tomcat dentro do Eclipse 118

Figura 73 - Execuccedilatildeo no Browser 118

XVII

Figura 74 - Projecto base MOE 119

Figura 75 - Importaccedilatildeo do projecto real MOE 119

Figura 76 - Projecto real MOE 120

Figura 77 - Ficheiro ldquoadminUsersListtxtrdquo 121

Figura 78 - Ficheiro ldquohp-io-v5wsdlrdquo 121

Figura 79 - WSDL do HPMOE 121

Figura 80 - Ficheiro ldquologinconfigrdquo 122

Figura 81 - Ficheiro ldquologinconfigrdquo 122

Figura 82 - Ficheiro ldquovmwareAcesstxtrdquo 123

Figura 83 - Servidor Apache Tomcat dentro do Eclipse 123

Figura 84 - Compilaccedilatildeo do projecto MOE 124

Figura 85 - Login page MOE 124

Figura 86 - Data page MOE 124

Figura 87 - Detalhes gerais do Template ldquoTemplate_3srvrdquo 125

Figura 88 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo 126

Figura 89 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 126

Figura 90 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 127

Figura 91 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 127

Figura 92 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 127

Figura 93 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo 128

Figura 94 - Criaccedilatildeo do serviccedilo ldquomyServicerdquo 128

Figura 95 - Lista de pedidos do utilizador 129

Figura 96 - Eventual cancelamento de um pedido 129

Figura 97 - Serviccedilo ldquomyServicerdquo criado 130

Figura 98 - Listagem dos acessos remotos 130

Figura 99 - Acesso remoto na tab ldquoServerrdquo 131

Figura 100 - Acesso remoto por RDP 131

Figura 101 - Acesso remoto por Telnet 131

Figura 102 - Acesso remoto por VMRC 131

Figura 103 - Menu lateral esquerdo ldquoMOE Helprdquo 132

Figura 104 - Menu lateral esquerdo ldquoMOE Helprdquo 132

Figura 105 - ldquoImport xmlrdquo help 133

Figura 106 - Template info Tab 134

Figura 107 - Service info Tab 134

Figura 108 - ServerGroup info Tab 135

Figura 109 - Server info Tab 135

Figura 110 - Disk info Tab 136

XVIII

Figura 111 - Software info Tab 136

Figura 112 - Interface info Tab 137

Figura 113 - Request info Tab 137

Figura 114 - About info Tab 138

Figura 115 - Team info Tab 138

Figura 116 - Javadoc info Tab 139

Figura 117 - ldquoMapsrdquo da relaccedilatildeo Host VM 140

Figura 118 - ldquoMapsrdquo da relaccedilatildeo Host Network 141

Figura 119 - ldquoMapsrdquo da relaccedilatildeo Host Datastore 142

Figura 120 - ldquoMapsrdquo da relaccedilatildeo VM Network 143

Figura 121 - ldquoMapsrdquo da relaccedilatildeo Host Datastore 144

Figura 122 - Detalhes gerais do Template ldquoTemplate_3srvrdquo 146

Figura 123 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo 146

Figura 124 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 147

Figura 125 - Detalhes dos Custos do Servidor ldquoSvrGrp1-1rdquo 147

Figura 126 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 147

Figura 127 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 147

Figura 128 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo 148

Figura 129 - Ficheiro ldquoTemplateListxmlrdquo 148

Figura 130 - Ficheiro ldquoTemplate_3srvxmlrdquo 149

Figura 131 - Importaccedilatildeo de um Template em formato XML 149

Figura 132 - InfoWindow ldquoDelete Templaterdquo 149

Figura 133 - InfoWindow com a visualizaccedilatildeo do Template em XML 150

Figura 134 - Ficheiro ldquoTemplate_3srv_ServiceListxmlrdquo 150

Figura 135 - Criaccedilatildeo de um Serviccedilo com base no Template ldquoTemplate_3srvlrdquo 151

Figura 136 - Lista de todos os pedidos do utilizador 151

Figura 137 - Eventual cancelamento de um pedido 152

Figura 138 - Lista dos pedidos resultantes da relaccedilatildeo Templateutilizador 152

Figura 139 - Detalhes do Serviccedilo ldquomyServicerdquo do Template ldquoTemplate_3srvrdquo 153

Figura 140 - Ficheiro ldquoallServicesListxmlrdquo 153

Figura 141 - Ficheiro ldquomyServicexmlrdquo 154

Figura 142 - InfoWindow com a visualizaccedilatildeo do Serviccedilo em XML 154

Figura 143 - Remoccedilatildeo de um Serviccedilo 154

Figura 144 - Power ON de um Serviccedilo 155

Figura 145 - Power OFF de um Serviccedilo 155

Figura 146 - Power Cycle de um Serviccedilo 155

Figura 147 - Activaccedilatildeo de um Serviccedilo 155

XIX

Figura 148 - Desactivaccedilatildeo de um Serviccedilo 155

Figura 149 - Lista dos Service Actions 156

Figura 150 - Lista dos Acessos Remotos do um Serviccedilo 156

Figura 151 - Acesso remoto por RDP 156

Figura 152 - Acesso remoto por Telnet 156

Figura 153 - Acesso remoto por VMRC 157

Figura 154 - Listagem dos pedidos por Serviccedilo 157

Figura 155 - Detalhes do Grupo de Servidores ldquoSvrGrp1rdquo do Serviccedilo ldquomyServicerdquo 158

Figura 156 - Ficheiro ldquoSvrGrp1xmlrdquo 158

Figura 157 - InfoWindow com a visualizaccedilatildeo do Grupo de Servidores em XML 159

Figura 158 - Adiccedilatildeo de Servidores ao Grupo de Servidores 159

Figura 159 - Remoccedilatildeo de Servidores ao Grupo de Servidores 159

Figura 160 - Ediccedilatildeo de Servidores ao Grupo de Servidores 160

Figura 161 - Power ON de um ServerGroup 160

Figura 162 - Power OFF de um ServerGroup 160

Figura 163 - Power Cycle de um ServerGroup 160

Figura 164 - Activaccedilatildeo de um ServerGroup 161

Figura 165 - Desactivaccedilatildeo de um ServerGroup 161

Figura 166 - Listagem de todos os Snapshots existentes no Grupo de Servidores 161

Figura 167 - Acccedilotildees SnapshotServidor 161

Figura 168 - Revert Snapshot 161

Figura 169 - Delete Snapshot 162

Figura 170 - Create Snapshot 162

Figura 171 - Lista de ldquoStereotype Disksrdquo 162

Figura 172 - Adicionar um disco virtual ldquoDisk62rdquo ao Grupo de Servidores 162

Figura 173 - Adicionar um disco fiacutesico ldquoDisk788rdquo ao Grupo de Servidores 163

Figura 174 - Detalhes do Servidor ldquoSvrGrp1-1rdquo do Serviccedilo ldquomyServicerdquo 163

Figura 175 - Ficheiro ldquohostmygostr01_lsxmlrdquo 164

Figura 176 - InfoWindow com a visualizaccedilatildeo do Servidor em XML 164

Figura 177 - Remoccedilatildeo de um Servidor 165

Figura 178 - Ediccedilatildeo de um Servidor 165

Figura 179 - Power ON de um Servidor 165

Figura 180 - Power OFF de um Servidor 165

Figura 181 - Power Cycle de um Servidor 166

Figura 182 - Activaccedilatildeo de um Servidor 166

Figura 183 - Desactivaccedilatildeo de um Servidor 166

Figura 184 - Create Snapshot 166

XX

Figura 185 - Pools de Servidores 167

Figura 186 - Criar uma Pools de Servidores 167

Figura 187 - Remoccedilatildeo de uma Pools de Servidores 167

Figura 188 - InfoWindo de aviso ao administrador 167

Figura 189 - Informaccedilatildeo dos hosts fiacutesicos 168

Figura 190 - Sessotildees Remotas num Servidor 168

Figura 191 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 169

Figura 192 - Criaccedilatildeo de um ldquoStereotype Disksrdquo 169

Figura 193 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 170

Figura 194 - Lista de Software 170

Figura 195 - Detalhes do Software 171

Figura 196 - Detalhes do Interface NIC0rdquo do Servidor ldquoSvrGrp1-1rdquo 171

Figura 197 - Listagem de todas as redes 172

Figura 198 - Detalhe da rede 172

Figura 199 - Adiccedilatildeo de um IP flutuante agrave Interface ldquoNIC0rdquo 172

Figura 200 - Remoccedilatildeo de um IP flutuante pertencente agrave Interface ldquoNIC0rdquo 173

Figura 201 - Mover um IP flutuante para a Interface ldquoNIC0rdquo 173

XXI

Iacutendice de Tabelas

Tabela 1 - Funccedilotildees associadas agrave inicializaccedilatildeo do Webservice 43

Tabela 2 - Funccedilotildees associadas ao Template 47

Tabela 3 - Funccedilotildees associadas ao Serviccedilo 50

Tabela 4 - Funccedilotildees associadas ao Grupo de Servidores 54

Tabela 5 - Funccedilotildees associadas aos Servidores 58

Tabela 6 - Funccedilotildees associadas aos Discos 60

Tabela 7 - Funccedilotildees associadas ao Software 62

Tabela 8 - Funccedilotildees associadas agraves Interfaces 63

Tabela 9 - Funccedilotildees associadas agraves Redes 65

Tabela 10 - Funccedilotildees associadas aos Snapshots 65

Tabela 11 - Funccedilotildees associadas aos Requests 67

Tabela 12 - Funccedilotildees associadas agraves Pools de Servidores 68

Tabela 13 - Dados gerais VMWARE 93

Tabela 14 - Detalhes VMWARE 93

Tabela 15 - Dados gerais Citrix 94

Tabela 16 - Dados detalhados Citrix 94

Tabela 17 - Dados gerais HP 95

Tabela 18 - Dados detalhados HP 95

Tabela 19 - Dados gerais Microsoft 96

Tabela 20 - Dados detalhados Microsoft 96

XXII

Iacutendice de Anexos

Anexo A (Virtualizaccedilatildeo Vantagens e inconvenientes) 84

Anexo B (Virtualizaccedilatildeo Arquitectura) 87

Anexo C (Virtualizaccedilatildeo Tipos de Implementaccedilatildeo) 89

Anexo D (Detalhes da plataforma e restriccedilotildees da VMware) 93

Anexo E (Detalhes da plataforma e restriccedilotildees da Citrix) 94

Anexo F (Detalhes da plataforma e restriccedilotildees da HP) 95

Anexo G (Detalhes da plataforma e restriccedilotildees da Microsoft) 96

Anexo H (Ambiente de armazenamento VMware ESXi e Citrix Xen) 97

Anexo I (Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo) 102

Anexo J (Ferramentas de desenvolvimento WebService) 107

Anexo K (Criar e executar um ldquoDynamic Web Projectrdquo no Eclipse) 114

Anexo L (Importar configurar e executar o RESTWEBSERVICE - MOE) 119

Anexo M (Criaccedilatildeo de um Serviccedilo e ligaccedilatildeo agraves VMs) 125

Anexo N (MOE Help) 132

Anexo O (VMware - Virtual Machine Resources) 140

Anexo P (Scenario view) 146

1

1 Introduccedilatildeo

11 Descriccedilatildeo e contexto

A evoluccedilatildeo do poder de processamento dos computadores actuais eacute notoacuteria nestes

uacuteltimos anos Infelizmente uma grande parte desse poder natildeo eacute efectivamente usada

no quotidiano havendo por isso uma crescente preocupaccedilatildeo com os desperdiacutecios que

resultam dessa subutilizaccedilatildeo Tecnologias como a virtualizaccedilatildeo em primeiro lugar e

a Cloud Computing como estaacutegio mais avanccedilado desta satildeo formas de reduccedilatildeo de tais

desperdiacutecios

Virtualizaccedilatildeo

Observando as duas primeiras figuras rapidamente ficamos com a ideia do

que eacute real figura 1 e do que eacute virtual figura 2 Assim entenda-se o real como algo

com caracteriacutesticas fiacutesicas concretas palpaacuteveis e o virtual associado a algo simulado

abstracto uma imitaccedilatildeo do real Eacute aqui que se enquadra a virtualizaccedilatildeo o simular de

um ambiente real que suporta todo um ambiente que vai do sistema de operaccedilatildeo agraves

aplicaccedilotildees sem necessidade de acesso agrave maacutequina real que neste caso funciona como

hospedeira desta tecnologia

A virtualizaccedilatildeo encaixa-se num mundo ilusoacuterio de vaacuterias maacutequinas virtuais

(Virtual Machines - VMs) independentes e isoladas entre si cada uma com um

Sistema Operativo (SO) proacuteprio e potencialmente diferente do SO das demais

Figura 1 - Ambiente natildeo Virtualizado

Figura 2 - Ambiente Virtualizado

2

Cloud Computing

As estrateacutegias de consolidaccedilatildeo de servidores propiciadas pelo uso de

virtualizaccedilatildeo conduzem de facto agrave reduccedilatildeo de custos de hardware software e

energia mas natildeo evitam (e podem ateacute aumentar) o nuacutemero de servidores agora

virtuais a gerir acrescentando o custo humano agrave equaccedilatildeo A adopccedilatildeo do paradigma

cloud (a ver na secccedilatildeo 2) eacute o passo a dar para manter o custo total sob controlo

O HP CloudSystem Matrix (CSM) [1] faz parte de uma pilha de software HP

para computaccedilatildeo na cloud que cobre todos os niacuteveis de serviccedilo considerados

relevantes IaaS (Infra-estrutura como Serviccedilo) PaaS (Plataforma como Serviccedilo) e

SaaS (Software como Serviccedilo) Apesar de ser a base desta pilha ie oferecer o niacutevel

IaaS eacute um produto extremamente complexo pois interage com todas as infra-

estruturas as computacionais (ie servidores fiacutesicos ou virtuais) as de

armazenamento (do disco interno aos discos em servidores de armazenamento) e as

de interligaccedilatildeo (redes Ethernet e FC)

Apesar de toda a complexidade da infra-estrutura real e virtual que gere o

CSM torna conceptualmente simples a entrega aos consumidores de infra-estruturas

para suporte a aplicaccedilotildees 1) o administrador define que recursos da infra-estrutura

estatildeo disponiacuteveis para integrar a ldquooferta cloudrdquo 2) o arquitecto define templates para

as arquitecturas que considera adequadas para necessidades dos utilizadores

consumidores (eg arquitectura 3-tier para uma soluccedilatildeo ERP1) e 3) o consumidor

escolhe o template que melhor se ajusta agraves suas necessidades e efectua um pedido de

aprovisionamento de uma infra-estrutura

Figura 3 - Infra-estrutura CSM

A interacccedilatildeo entre os diferentes interlocutores (1) (2) (3) e o CSM eacute

fundamentalmente realizada sobre portais contudo especialmente no caso do

utilizador-consumidor o portal disponibilizado pelo produto tem sido considerado

1 ERP (Enterprise Resource Planning) cobre uma larga fatia das necessidades de uma empresa Permite uma

visatildeo integrada em tempo real dos seus principais processos de negoacutecios

3

como ldquocomplexordquo por apresentar informaccedilatildeo demasiado teacutecnica ldquoriacutegidordquo por natildeo

poder ser customizado (por exemplo para suprimir a ldquoinformaccedilatildeo demasiado

teacutecnicardquo) e ldquogrosseirordquo por natildeo permitir a especificaccedilatildeo mais fina das caracteriacutesticas

da infra-estrutura que se quer aprovisionar (por exemplo permite variar o nuacutemero de

CPUs e a quantidade de memoacuteria de um servidor mas natildeo permite escolher a

tecnologia dos discos que se pretendem aprovisionar eg SSD (Solid-State Drive)

em vez de FC 15K em vez de 10K RPM)

12 Objectivos

O objectivo desta tese eacute desenvolver um framework que permita com base num

conjunto (extensiacutevelconfiguraacutevel) de opccedilotildees preacute-definidas e em layouts

customizaacuteveis definir portais que se integram com o HP CloudSystem Matrix e que

permitam aos utilizadores (consumidores IaaS) uma interacccedilatildeo mais simples praacutetica e

organizada natildeo soacute na visualizaccedilatildeo de toda a informaccedilatildeo mas tambeacutem das acccedilotildees

possiacuteveis de serem executadas nos recursos disponibilizados que satildeo ampliadas face agrave

oferta disponiacutevel no portal standard do CSM

Neste trabalho foram estudados modelos de serviccedilo e de implantaccedilatildeo

(deployment) de clouds a virtualizaccedilatildeo (natildeo somente de servidores mas tambeacutem de

armazenamento e de redes) pedra base de toda a tecnologia cloud e os moacutedulos e

APIs disponiacuteveis para interoperar com o CSM nomeadamente a API-MOE e a API-

VMware para desenvolver um framework com uma arquitectura multicamada (N-tier)

sobre TCPIP e usando o protocolo REST (Representational State Transfer) para troca

de informaccedilatildeo

13 Organizaccedilatildeo

O presente trabalho encontra-se organizado em 6 secccedilotildees que vatildeo desde o estudo

preacutevio das diferentes tecnologias ateacute agraves Consideraccedilotildees finais tidas como conclusatildeo

Assim a secccedilatildeo 1 eacute a presente introduccedilatildeo onde se apresenta a virtualizaccedilatildeo

como tecnologia nuclear ao trabalho enunciam-se os objectivos a organizaccedilatildeo de

todo o relatoacuterio e as suas contribuiccedilotildees

Na secccedilatildeo 2 eacute feita uma abordagem agrave virtualizaccedilatildeo desde a sua evoluccedilatildeo

histoacuterica culminando com a visatildeo actual das quatro tecnologias mais representativas

no mercado VMware Citrix HP e Microsoft Aborda-se natildeo soacute a virtualizaccedilatildeo de

servidores mas tambeacutem a de armazenamento e de rede

Na secccedilatildeo 3 apresenta-se uma nova tecnologia computaccedilatildeo na Cloud

resultado da uniatildeo da virtualizaccedilatildeo e moacutedulos de orquestraccedilatildeo Satildeo abordados os seus

modelos de implementaccedilatildeo e os diferentes niacuteveis de serviccedilo que podem ser oferecidos

neste paradigma

Na secccedilatildeo 4 descreve-se uma nova tecnologia HP Cloud Stack como pilha de

software e hardware Satildeo abordadas tecnologias como HP CloudSystem Matrix os

4

seus modelos de interacccedilatildeo papeis e portais conceitos fundamentais para perceber o

restante relatoacuterio e as limitaccedilotildees desta uacuteltima tecnologia razatildeo de ser deste trabalho

Na secccedilatildeo 5 eacute apresentada a framework (protoacutetipo) desde a arquitectura

implementaccedilatildeo dos diferentes moacutedulos execuccedilatildeo nos cenaacuterios possiacuteveis e coacutedigo

principal e finalmente feedback dos orientadores e redefiniccedilatildeo de objectivos ou

estrateacutegias de realizaccedilatildeo e por uacuteltimo a discussatildeo da relaccedilatildeo entre os serviccedilos e

funcionalidades do HP MOE e a framework implementada

Na secccedilatildeo 6 satildeo apresentadas as conclusotildees sobre o trabalho realizado

perspectivas para desenvolvimentos futuros fazendo-se uma discussatildeo final sobre as

dificuldades encontradas na implementaccedilatildeo

14 Contribuiccedilotildees

Todo o estudo de conceitos relaccedilotildees e teorias tem sempre como objectivo uacuteltimo a

aquisiccedilatildeo de mais conhecimento e acima de tudo aplicabilidade Nesse intuito a

principal contribuiccedilatildeo deste trabalho estaacute directamente relacionada com o principal

objectivo um framework modelo de acesso raacutepido intuitivo organizado

personalizaacutevel e acima de tudo praacutetico no acesso a recursos de uma infra-estrutura

Apresentam-se de seguida todas as contribuiccedilotildees identificadas

Um modelo simples com uma curta curva de aprendizagem e uma

flexibilidade com acessos proacuteprios individuais e personalizados a cada utilizador O

acesso a toda a informaccedilatildeorecursos eacute feita numa visualizaccedilatildeo das componentes

principais em aacutervore permitindo assim uma raacutepida visualizaccedilatildeo das configuraccedilotildees de

todo o Serviccedilo criado e um acesso raacutepido e intuitivo aos detalhes de cada componente

Visualizaccedilatildeo imediata do Cataacutelogo de Serviccedilos com todos os Templates e a

correspondente associaccedilatildeo dos serviccedilos por Template A descriccedilatildeo eacute a mesma

relativamente aos recursos associados a cada Serviccedilo A informaccedilatildeo visualizada eacute

apenas a necessaacuteria em cada visualizaccedilatildeo e instanciaccedilatildeo

Modelo personalizaacutevel com acccedilotildees como ocultar ou visualizar paineacuteis de

informaccedilatildeo lista de todos os pedidos listagem por Template por Serviccedilo layout de

toda a interface do menu em aacutervore um simples clique e toda o portal fica

personalizaacutevel a um determinado utilizador

Disponibilizaccedilatildeo de todas as acccedilotildees possiacuteveis a cada recurso na tab respectiva

da visualizaccedilatildeo da informaccedilatildeo associada a esse recurso Acccedilotildees acessiacuteveis e raacutepidas

de executar sem menus e submenus com sucessivos cliques que soacute atrasam todo o

processo A acessibilidade aos recursos eacute completa com acccedilotildees de grupo e acccedilatildeo

individuais a cada recurso permitindo assim o verdadeiro aproveitamento de todo o

Serviccedilo criado

Uma informaccedilatildeo hierarquizada e organizada em agrupamentos loacutegicos por

recursos eacute um processo muito faacutecil de seguir e perceber associada a esta

5

disponibilizaccedilatildeo de informaccedilatildeo acccedilotildees que possam ser executadas nesses recursos eacute

o objectivo da simplicidade e performance deste modelo

15 Resumo

Neste capiacutetulo fez-se uma descriccedilatildeo e contexto introdutoacuterio de conceitos como

Virtualizaccedilatildeo Cloud Computing e HP CloudSystem Matrix onde se descreveram as

mais-valias do uso destas tecnologias vantagens e inconvenientes e os papeacuteisfunccedilotildees

dos principais interlocutores Descreveram-se os objectivos desta dissertaccedilatildeo um

framework que solucione e melhore os problemas existentes em modelos

implementados actualmente Foi igualmente descrita toda a organizaccedilatildeo das diferentes

secccedilotildees e por ultimo as contribuiccedilotildees tidas no presente trabalho

6

2 Virtualizaccedilatildeo

21 Evoluccedilatildeo histoacuterica

Os primeiros passos da virtualizaccedilatildeo foram dados aproximadamente haacute meio seacuteculo e

tiveram origem em preocupaccedilotildees como heterogeneidade portabilidade estabilidade e

utilizaccedilatildeo mais eficiente de recursos Tudo comeccedilou na IBM com a sua longa lista de

variantes de uma dada arquitectura-base com as novas geraccedilotildees incompatiacuteveis com as

anteriores com muacuteltiplos SOs (mono-utilizador interactivo batch timesharing etc)

criando insatisfaccedilatildeo nos clientes Como resposta IBM lanccedilou nos anos 60 a

arquitectura 360 com suporte para virtualizaccedilatildeo (ao niacutevel do hardware) e com o

sistema de operaccedilatildeo CPCMS O CP (Control Program) era usado para gerir as VMs

e que executavam o CMS (Console Monitor System) um SO interactivo com uma

interface ldquolinha de comandordquo

Por outro lado um outro tipo de virtualizaccedilatildeo dito virtualizaccedilatildeo de aplicaccedilotildees

procura que uma aplicaccedilatildeo possa ser executada numa variedade de plataformas

distintas que apenas tecircm em comum o sistema de run-time que implementa a VM (natildeo

requer que uma VM seja ldquototalmenterdquo equivalente a uma maacutequina fiacutesica e portanto

capaz de executar um SO) Tal eacute o caso da JVM (Java Virtual Machine) capaz de

executar aplicaccedilotildees desenvolvidas na linguagem Java (nascida em 1990 de um

projecto denominado ldquoStealthrdquo da Sun Microsystems)

A implementaccedilatildeo desta tecnologia tatildeo bem aceite e cada vez mais usada nas

organizaccedilotildees demonstra a mais-valia das propriedades que caracterizam o seu

funcionamento

Isolamento Os processos das diferentes maacutequinas virtuais natildeo podem

interferir entre si ou seja um processo de uma VM natildeo pode interferir

noutra VM nem sequer no proacuteprio sistema hospedeiro (host) que suporta

toda a virtualizaccedilatildeo

Inspecccedilatildeo O gestor de maacutequinas virtuais (Virtual Machine Manager -

VMM) ou hipervisor deve ter acesso e controlo sobre todas as VMs e ateacute

sobre todos os seus processos

Interposiccedilatildeo O VMM deve poder interagir com as VMs controlar as suas

operaccedilotildees ter acesso ao fluxo de instruccedilotildees maacutequina que estas executam e

remover adicionar ou alterar essas instruccedilotildees se for necessaacuterio

Eficiecircncia As instruccedilotildees natildeo privilegiadas devem poder ser executadas

directamente no hardware sem interposiccedilatildeo do VMM

Gestatildeo O VMM deve natildeo soacute permitir manipular uma VM isoladamente

mas tambeacutem executar uma operaccedilatildeo de uma soacute vez sobre muacuteltiplas VMs

Compatibilidade de software A virtualizaccedilatildeo simula uma determinada

plataforma (real) e desse modo todo o software disponiacutevel para essa

plataforma deve poder ser executado ldquotal como estaacute (original)rdquo numa VM

7

Desempenho A sobrecarga (overhead) da camada extra de software pode

sacrificar o desempenho do sistema hospedado (guest) mas a relaccedilatildeo

custobenefiacutecios do uso da virtualizaccedilatildeo deve ser francamente positiva

O Anexo A descreve mais detalhadamente as vantagens e inconvenientes da

virtualizaccedilatildeo

22 Virtualizaccedilatildeo de Servidores

O dinamismo do triacircngulo existente entre fornecedores de software hardware e seus

clientes eacute uma constante Fornecedores como a VMware e a Microsoft publicitam as

suas soluccedilotildees de virtualizaccedilatildeo destacando as mais-valias como a utilizaccedilatildeo eficiente

de recursos partilhados gestatildeo centralizada e migraccedilatildeo dinacircmica os fornecedores de

hardware publicitam menores consumos de energia e maior interoperabilidade e

suporte as organizaccedilotildees olham para este mundo com o objectivo uacuteltimo da eficiecircncia

produtividade e custos A virtualizaccedilatildeo aparece como uma forma eficaz de fazer mais

com menos investimento

A primeira razatildeo pela qual se torna muito interessante executar muacuteltiplas VMs

num uacutenico servidor eacute a mesma pela qual executamos muacuteltiplas aplicaccedilotildees num uacutenico

servidor os recursos estariam se natildeo o fizeacutessemos muito subaproveitados Sendo

assim porque natildeo executar simplesmente muacuteltiplas aplicaccedilotildees no servidor usando um

soacute SO Podemos avanccedilar desde jaacute com uma razatildeo simples os fornecedores certificam

os seus produtos aplicaccedilotildees e serviccedilos apenas para determinados ambientes e pilhas

de software vejamos alguns exemplos 1) a Microsoft natildeo certifica configuraccedilotildees

MSCS (Microsoft Cluster Server) que incluam o serviccedilo Active Domain num dos noacutes

dos cluster 2) a VMware disponibiliza o seu produto de gestatildeo vCenter Server sobre

Unix (SUSE Linux) na forma de uma appliance fornecida pela proacutepria VMware

Assim se dispusermos de um servidor que tem os recursos apropriados para suportar

um noacute MSCS e uma instacircncia vCenter teremos de os instalar sob a forma duas VMs a

correrem sob um hipervisor instalado nesse servidor Uma outra situaccedilatildeo que ldquoobrigardquo

(do ponto de vista financeiro) agrave utilizaccedilatildeo de VMs eacute a de aplicaccedilotildees legacy uma

aplicaccedilatildeo antiga (e eacute demasiado oneroso actualizaacute-la) estaacute certificada apenas para uma

dada versatildeo de SO tambeacutem antigo que natildeo possui drivers adequados para os

servidores mais actuais sendo que o servidor antigo jaacute natildeo tem capacidade para

executar a aplicaccedilatildeo (e eacute muito oneroso mantecirc-lo) Uma soluccedilatildeo simples eacute instalar um

hipervisor num servidor recente criar uma VM e nela instalar a versatildeo antiga do SO

e a aplicaccedilatildeo

A arquitectura da virtualizaccedilatildeo estaacute descrita no Anexo B e os Tipos de

Implementaccedilatildeo no Anexo C uma leitura ajuda a perceber todos estes conceitos e

tecnologias que se seguem

Actualmente o nuacutemero de tecnologias disponiacuteveis para implementaccedilatildeo e

gestatildeo de maacutequinas virtuais tem vindo a crescer destacando-se algumas pela

8

disponibilizaccedilatildeo de um conjunto de ferramentas que as tornam vencedoras nos

mercados Seguem-se quatro exemplos das empresas (e suas tecnologias) que mais se

destacam hoje em dia

VmWare Inc VmWare Player Workstation Fusion ESXi

Citrix Systems Inc XenServer

Hewlett-Packard HP Integrity Virtual Machines

Microsoft Virtual PC Hyper-V

221 VMware (VMware Inc)

O VMware apresenta-se como uma plataforma liacuteder (80) no mercado da

virtualizaccedilatildeo com uma tecnologia de virtualizaccedilatildeo do tipo 1 (virtualizaccedilatildeo completa

tambeacutem designada nativa ou bare metal) Oferece um vasto leque de produtos desde

os hipervisores para desktops e laptops (VMware PlayerWorkstationFusion) aos

para servidores de grande porte (VMware vSphere ESXi) e ainda um vasto conjunto

de software de gestatildeo de VMs orquestraccedilatildeo de operaccedilotildees Cloud IaaS etc

De todos os produtos da VMware interessa-nos destacar aqui apenas a

tecnologia de virtualizaccedilatildeo ESXi oferecida para servidores que descrevemos em

seguida muito sucintamente

VMware vSphere ESXi Eacute uma VMM ou hipervisor tipo 1 garantindo um

elevado niacutevel de isolamento entre os recursos oferecidos agraves VMs sejam

estes o processador memoacuteria discos ou adaptadores de rede Eacute instalado

directamente sobre o hardware do servidor eliminando assim a

sobrecarga de ter um SO standard sobre o qual corre um hipervisor os

hipervisores de tipo 1 exibem portanto melhor desempenho e aumentam

a seguranccedila O facto de permitir que tudo seja virtualizado torna a VM

ainda mais completa O pacote inclui apenas o hipervisor ESXi e

ferramentas baacutesicas de gestatildeo

A forma como as instruccedilotildees do sistema hospedado (guest) satildeo executadas num

ambiente ESXi pode ser descrita com ajuda da figura 4 [8] 1) as instruccedilotildees oriundas

de aplicaccedilotildees que se executam sobre o SO hospedado satildeo executadas directamente no

processador real 2) as instruccedilotildees oriundas do proacuteprio SO hospedado satildeo verificadas

antes de serem executadas sendo que as privilegiadas satildeo traduzidas ou modificadas

para comandos ou instruccedilotildees do proacuteprio hipervisor uma teacutecnica que eacute denominada

como ldquoTraduccedilatildeo Binaacuteriardquo

Esta teacutecnica complementada com outras teacutecnicas de ldquoaceleraccedilatildeordquo de

operaccedilotildees sobre IO memoacuteria e de gestatildeo de recursos entre VMs fazem com que a

VMware consiga atingir desempenhos muito proacuteximos de um ambiente nativo ie

natildeo virtualizado

9

Figura 4 - Arquitectura VMware ESXi (Tipo-1)

Na versatildeo vSphere para servidores de grande porte estatildeo disponiacuteveis muitas

funcionalidades [9] como a migraccedilatildeo automaacutetica de VMs (balanceamento de carga)

a alta disponibilidade para vCenter (suportada pelo vCenter Server Heartbeat) a

recuperaccedilatildeo de destastres (Site Recovery Manager)

Para maiores detalhes e restriccedilotildees da VMware consultar o Anexo D [1011]

222 Xen (Citrix Systems Inc)

O XenServer eacute a plataforma de virtualizaccedilatildeo da Citrix baseada no hipervisor Xen a

versatildeo base designada Standard eacute gratuita e oferece para aleacutem do hipervisor

ferramentas como o XenCenter uma consola de gestatildeo para muacuteltiplos servidores e o

XenMotion para migraccedilatildeo ldquoin vivordquo de VMs

O hipervisor Xen na sua mais recente versatildeo eacute uma tecnologia de

virtualizaccedilatildeo do tipo 1 instalada num nuacutecleo Linux (x86 x86-64 ou IA-64 SUSE

Linux) que permite a criaccedilatildeo de vaacuterias VMs com recursos e aplicaccedilotildees partilhadas

Contrariamente ao VMware natildeo usa a traduccedilatildeo binaacuteria mas uma combinaccedilatildeo de

paravirtualizaccedilatildeo [12] (eliminando a latecircncia no desempenho introduzida pela

traduccedilatildeo binaacuteria) e virtualizaccedilatildeo assistida por hardware [13] Na paravirtualizaccedilatildeo a

maacutequina abstracta eacute quase mas natildeo completamente igual ao hardware hospedeiro

por isso o SO hospedado (guest) tem de ser modificado Como tal soacute eacute possiacutevel para

SOs disponiacuteveis em coacutedigo aberto o Xen executa os outros (eg Windows)

recorrendo a uma combinaccedilatildeo da paravirtualizaccedilatildeo com a virtualizaccedilatildeo assistida por

hardware oferecida nos processadores Intel (Intel-VT) e AMD (AMD-V)

Na arquitectura XenServer figura 5 existe uma VM privilegiada para controlo

do hipervisor denominada ldquoDom0rdquo esta VM eacute parte integrante do ambiente

10

XenServer executa uma versatildeo paravirtualizada do Linux e conteacutem os drivers dos

dispositivos disponiacuteveis no sistema As outras VMs satildeo os ldquoDomUsrdquo (domiacutenios do

utilizador) Nesta arquitectura os DomUs comunicam directamente com o hipervisor

que controla a memoacuteria e o processador do hospedeiro e se usam paravirtualizaccedilatildeo

comunicam com o Dom0 para operaccedilotildees de IO

Figura 5 - Arquitectura XenServer

O Anexo E descreve os detalhes da plataforma e restriccedilotildees da Citrix [1014]

223 Integrity VM (HP)

HP Integrity Virtual Machines (Integrity VM ou HPVM) eacute uma tecnologia de

virtualizaccedilatildeo do tipo 1 instalada num servidor da linha Integrity IA-64 com o sistema

de operaccedilatildeo HP-UX 11i v3

A gestatildeo do hipervisor eacute efectuada com a ferramenta HP Integrity Virtual

Machines Manager (HPVMMGR) mas tambeacutem eacute possiacutevel gerir os proacuteprios sistemas

hospedados desde que nestes sejam instalados os agentes HPVirtualMachine e

HPVSwitch Esta ferramenta apresenta benefiacutecios como flexibilidade e maximizaccedilatildeo

dos recursos do servidor consolidaccedilatildeo de servidores organizacionais rapidez na

implementaccedilatildeo e disponibilizaccedilatildeo de novos ambientes permite a migraccedilatildeo online e

offline isolamento de VMs oferece alta disponibilidade monitoriza automaticamente

todas as aplicaccedilotildees e permite a visualizaccedilatildeo e configuraccedilatildeo simplificada com

ferramentas como HP Integrity Virtual Machines Manager (HPVMMGR) System

Management Home (HPSMH) e HP Virtualization Manager (HPVMAN)

O Anexo F descreve os detalhes e restriccedilotildees Integrity Virtual Machines da HP

[10]

11

224 Hyper-V (Microsoft)

O Hyper-V eacute uma tecnologia de virtualizaccedilatildeo do tipo 1 da Microsoft para servidores

x86-64 com suporte agrave virtualizaccedilatildeo assistida por hardware O produto eacute

disponibilizado de forma isolada (standalone) ou integrado em versotildees Windows

Server (2008 R2 ou 2012)

A gestatildeo do ambiente virtual eacute efectuada com a ferramenta System Center

Virtual Machine Manager (SCVMM) que fornece 3 formas distintas de interactuar

com o hipervisor consola de administraccedilatildeo portal self-service (para utilizadores

finais) e Windows PowerShell (usando commandlets)

Na arquitectura Hyper-V [15] figura 6 existem dois tipos de particcedilatildeo 1) a

ldquoparticcedilatildeo pairdquo uma VM de administraccedilatildeo de todo o sistema com um Windows

Server 2008 2008 R2 ou 2012 drivers de acesso e controlo do hardware e

ferramentas de gestatildeo 2) as particcedilotildees filhas nas quais satildeo criadas as restantes VMs

completamente isoladas e sem acesso directo ao hardware No acesso ao hardware haacute

3 componentes importantes a mencionar a) o VSP (Virtual Service Provider)

responsaacutevel por receber as chamadas das particcedilotildees filhas e aceder aos drivers dos

perifeacutericos b) VSC (Virtual Service Client) um moacutedulo instalado no SO hospedado

que solicita via VMBus o acesso aos perifeacutericos da particcedilatildeo pai c) o VMBus canal

de comunicaccedilatildeo entre VSC e VSP onde se desenrolam as comunicaccedilotildees entre as

particcedilotildees

Figura 6 - Arquitectura Hyper-V

A Microsoft apresenta-nos na recente versatildeo Hyper-V 2012 uma panoacuteplia de

funcionalidades que a colocam na primeira linha das soluccedilotildees de virtualizaccedilatildeo a par

da VMware migraccedilatildeo online e replicaccedilatildeo de VMs migraccedilatildeo de armazenamento e

Clustering

O Anexo D descreve os detalhes as restriccedilotildees do Hyper-V da Microsoft

[101617]

12

23 Virtualizaccedilatildeo do Armazenamento

Haacute muito que o armazenamento passou a ser um toacutepico de ldquoprimeira classerdquo tal como

ldquoa rederdquo Para tal contribuiu significativamente a introduccedilatildeo de tecnologias tais como

o RAID (Redundant Array of Independent Disks) [18] que promoveram o

desempenho eou a toleracircncia a faltas a (comparativamente) baixo custo ndash note-se que

no artigo original de Patterson o I significava Inexpensive Com a introduccedilatildeo do

RAID rapidamente apareceram os armaacuterios de discos (disk arrays) externos ao

ldquosistemardquo e uma vez que o protocolo SCSI suportava a interligaccedilatildeo de discos

(Logical Units) a muacuteltiplos adaptadores e daiacute a muacuteltiplos sistemas o conceito de

rede de armazenamento aparece naturalmente

Como se mostra na figura 7 o disco loacutegico aparece como uma forma

elementar de virtualizaccedilatildeo jaacute que ldquoaglutinardquo elementos de diferentes discos fiacutesicos

mas eacute apresentado ao sistema como um uacutenico disco ndash ao ponto de ser impossiacutevel ao

proacuteprio sistema de operaccedilatildeo distingui-lo de um disco fiacutesico

Figura 7 - Redundant Array Independent Disks (RAID)

Numa rede de armazenamento que interliga vaacuterios armaacuterios de discos e

servidores (hosts) os primeiros oferecem volumes (ou discos loacutegicos) acessiacuteveis por

identificadores uacutenicos e os segundos tomam posse desses volumes (tipicamente cada

host tem uso exclusivo de um ou mais volumes) e formatam-nos neles instalando

sistemas de ficheiros (eg ext3 XFS NTFS) que depois usam da forma mais

conveniente Este conceito de rede de armazenamento eacute conhecido como SAN ndash

Storage Area Network figura 8

A forma mais comum de SAN usa uma infra-estrutura Fibre Channel (FC) o

que significa que tanto hosts como disk arrays possuem interfaces FC e na rede

existem comutadores (switches) FC aos quais hosts e arrays (e eventualmente outros

switches) se interligam Uma outra tecnologia que pode ser usada em SANs eacute a

Ethernet neste caso hosts disk arrays e switches tecircm interfaces Ethernet e o

protocolo de transporte usado eacute FCoE (Fibre Channel over Ethernet) A figura

seguinte mostra-se um ambiente que inclui simultaneamente uma outra tecnologia de

ldquotransporterdquo ISCSI e uma ldquozonardquo FC

13

Figura 8 - Storage Area Network (SAN)

Se bem que a relaccedilatildeo volumehost de um-para-um seja de longe a mais

frequente tambeacutem eacute possiacutevel estabelecer uma relaccedilatildeo de um-para-muitos na qual um

volume eacute detido de forma partilhada por muacuteltiplos hosts tal situaccedilatildeo implica

necessariamente o uso de sistemas de ficheiros (SF) especializados conhecidos como

shared-disk file systems Como exemplo indica-se o GFS [19] GPFS [20] e VMFS

[21] este uacuteltimo desenvolvido especificamente para armazenar VMs Num SF para

discos partilhados todos os hosts que partilham um dado volume tecircm uma visatildeo

coerente do estado do volume Em situaccedilotildees de toleracircncia a faltas esta arquitectura de

discos partilhados eacute muito apeteciacutevel pois em caso de falha de um host um dos

restantes inicia uma recuperaccedilatildeo (ao estilo de um sistema transaccional) das uacuteltimas

operaccedilotildees e rapidamente o SF regressa a um estado coerente

Figura 9 - Network Attached Storage (NAS)

Uma outra forma completamente distinta de armazenar informaccedilatildeo eacute usar um

SF distribuiacutedo neste caso natildeo haacute partilha de discos fiacutesicos mas sim de ficheiros

sendo que um host pode deter apenas parte da aacutervore do SF (eg AFS) ou nos SFs

distribuiacutedos com arquitectura clienteservidor um host dito cliente dispotildee de um

14

moacutedulo que lhe permite aceder ao SF remoto de um outro host dito servidor (eg

NFS e CIFS) como se o SF remoto fosse local

231 Armazenamento em ambientes virtualizados

Quando se aborda o armazenamento em ambientes virtualizados satildeo de considerar os

seguintes aspectos a) como representar a arquitectura de uma VM propriamente dita

(quanta memoacuteria e CPUs tem qual o chipset utilizado que adaptadores ndash de LAN

SAN graacuteficos ndash possui etc) b) como representar um disco acessiacutevel agrave VM e c)

como armazenar conteuacutedos (volaacuteteis ou natildeo) de componentes da VM tais como a

memoacuteria RAM e a memoacuteria natildeo volaacutetil NVRAM que conteacutem o BIOS

A soluccedilatildeo adoptada pelo hipervisor VMware ESXi2 eacute a seguinte a) a

representaccedilatildeo da arquitectura eacute efectuada em XML que possui as informaccedilotildees de

configuraccedilatildeo b) um disco acessiacutevel agrave VM eacute representado ou por um ficheiro que

virtualiza o proacuteprio disco ou por um ficheiro que ao estilo de uma ligaccedilatildeo simboacutelica

descreve o caminho para um disco real e finalmente c) tais conteuacutedos satildeo

armazenados em ficheiros Isto eacute tudo eacute representado por ou via ficheiros

A pergunta que se segue eacute oacutebvia onde armazenar esses ficheiros E a

resposta evidente num repositoacuterio (datastore na terminologia da VMware) gerido

pelo hipervisor onde uma VM aparece como um pasta e os seus componentes como

ficheiros no interior dessa pasta como se mostra na figura 10

Figura 10 - Datastore e VMs

O VMware ESXi suporta armazenamento em sistema de ficheiros VMFS

(sobre discos) ou NFS no caso do VMFS os discos podem ser internos ao servidor

ou podem estar numa SAN

Sistema de Ficheiros VMFS

O VMFS (Virtual Machine File System) eacute um sistema de ficheiros em cluster

e foi optimizado para armazenar grandes ficheiros e realizar operaccedilotildees de entrada e

2 Para uma comparaccedilatildeo entre o VMware ESXi e o Citrix Xen ver Anexo H

15

saiacuteda (IO) com que movimentam grandes volumes de dados Os dois servidores

figura 11 tecircm portanto uma visatildeo coerente do datastore e das VMs nele existentes

por isso eacute quando comparamos esta arquitectura com uma na qual cada servidor tem

a sua datastore muito mais simples e eficiente mover uma VM activa de um servidor

para o outro jaacute que apenas as paacuteginas modificadas residentes em memoacuteria tecircm de ser

copiadas (o resto estaacute no SF partilhado)

Figura 11 - Sistema de Ficheiros VMFS

Network File System

Nos casos em que os datastores residem num sistema de ficheiros NFS [22] os

servidores ESXi podem tambeacutem partilhar o mesmo datastore como se vecirc na figura

12 assim a movimentaccedilatildeo de VMs entre servidores por razotildees de equiliacutebrio de

cargas ou de manutenccedilatildeo de um ou outro servidor tambeacutem satildeo muito eficientes

Figura 12 - Network File System (NFS)

Para concluir note-se que se abrem nos ambientes virtualizados duas

oportunidades muito importantes quando um disco virtual eacute realizado sob a forma de

ficheiro a) a potencial poupanccedila de espaccedilo e b) a possibilidade de implementar com

facilidade uma teacutecnica de snapshots No primeiro caso conhecido como thin

provisioning referimo-nos agrave possibilidade de usar um ficheiro esparso para atribuir

um espaccedilo loacutegico de endereccedilamento ao disco (ficheiro) muito superior ao espaccedilo de

16

facto ldquoconsumidordquo pelo ficheiro no SF No segundo usando um mecanismo de

versotildees baseado em teacutecnicas de copy-on-write armazenar snapshots da VM em

determinados instantes e para usar como mecanismo de recuperaccedilatildeo do estado em

caso de ldquofalhardquo

24 Virtualizaccedilatildeo da Rede

A virtualizaccedilatildeo eacute algo mais que consolidaccedilatildeo de servidores - CPU memoacuteria e

armazenamento depois de analisada toda a infra-estrutura de suporte a uma

implementaccedilatildeo desta natureza torna-se evidente a ideia simplista desse triacircngulo A

infra-estrutura de rede virtual funciona como ligaccedilatildeo de componentes nessa

plataforma ligaccedilotildees virtuais atraveacutes dos controladores de rede virtual (Virtual

Network Interface Card - vNIC3) ligaccedilotildees fiacutesicas com os adaptadores fiacutesicos

(Physical Network Interface Card - pNIC) comutadores virtuais (vSwitch) para essas

ligaccedilotildees etc uma vasta lista de software e hardware responsaacuteveis pela comunicaccedilatildeo

de todos os componentes dos pares VMVM VMservidor e servidorservidor [23]

Numa infra-estrutura de rede tradicional figura 13 cada servidor tem uma ou

mais placas de rede (NIC) para comunicaccedilatildeo com os restantes

Figura 13 - Infra-estrutura de rede tradicional

Como sabemos um hipervisor eacute responsaacutevel pela abstracccedilatildeo do hardware

oferecido agraves VMs e na visatildeo de uma VM este hardware (virtual) de que dispotildee eacute

seu e eacute completo desconhecendo que esse hardware possa estar a ser partilhado com

outras VMs ou que eventualmente nem exista A interface virtual de rede (vNIC)

figura 14 natildeo possui qualquer componente fiacutesico eacute apenas software contudo ela

exibe as mesmas propriedades de uma placa fiacutesica incluindo um endereccedilo MAC

(IEEE 802-2001 Standard) Uma vNIC eacute ligada a uma outra abstracccedilatildeo o vSwitch

sendo que este pode comutar traacutefego que flui apenas no interior do servidor que

alberga as VMs ou estar associado a uma (ou mais para redundacircncia eou aumento

da largura de banda) placa de rede fiacutesica (pNIC)

3 Mais uma vez seguimos aqui a terminologia da VMware por simplicidade

17

Figura 14 - Infra-estrutura de rede virtual

Nesta infra-estrutura natildeo existe o limite associado agrave velocidade da placa de

rede mas sim associado agrave largura de banda (LB) da memoacuteria facilmente se

depreende tambeacutem que toda a rede entre VMs hospedadas num servidor natildeo

contribui para o congestionamento da rede fiacutesica (entre servidores) Contudo o

administrador pode impor quotas na utilizaccedilatildeo de recursos por exemplo na LB da

vNIC

Os vSwitch tecircm todas as funcionalidades de um switch real suportam

agregaccedilatildeo de traacutefego (IEEE 802ad) VLANs (IEEE 8021Q) etc Nesse sentido a

virtualizaccedilatildeo comeccedila a ir contra-corrente no que deveria ser o simplificar a

administraccedilatildeo de uma infra-estrutura pois o administrador de redes tem agora de

administrar os switches reais e ainda os virtuais

Figura 15 - vNetwork Distributed Switch ndash vDS

Para resolver este problema a VMware propotildee (figura 15) um switch virtual

distribuiacutedo (vNetwork Distributed Switch ndash vDS) [23] que representa a agregaccedilatildeo de

vaacuterios switchs virtuais de diferentes servidores ocultando as camadas inferiores e

oferecendo um suporte de rede uniforme que simplifica entre outras a administraccedilatildeo

da rede as migraccedilotildees de VMs e o desempenho ndash por exemplo ao associar um vDS a

18

muacuteltiplas pNICs o hipervisor pode de forma automaacutetica alterar a loacutegica de

encaminhamento de pacotes para redistribuir o traacutefego entre as pNICs aumentado o

desempenho e minimizando as falhas

Na infra-estrutura de rede virtualizada os aspectos relativos agrave seguranccedila dessa

rede satildeo tambeacutem contemplados sendo apresentadas soluccedilotildees de inspecccedilatildeo de fluxos

de pacotes como eacute o caso dos Distributed Virtual Filter (DVFilter) [23] apresentado

na figura 16

Figura 16 - Distributed Virtual Filter (DVFilter)

25 Resumo

Neste capiacutetulo fez-se uma breve descriccedilatildeo histoacuterica para enquadramento do restante

capiacutetulo A virtualizaccedilatildeo de servidores aparece como nuacutecleo central nas suas quatro

plataformas de virtualizaccedilatildeo que considerei mais importantes ESXi (VMware Inc)

XenServer (Citrix Systems Inc) HP Integrity Virtual Machines (Hewlett-Packard) e

o Hyper-V (Microsoft) Foram tambeacutem abordadas tecnologias na aacuterea da virtualizaccedilatildeo

de armazenamento em conceitos como RAID SAN NAS e nos ambientes

virtualizados VMFS e NFS Tambeacutem a virtualizaccedilatildeo de rede natildeo foi descurada e

nesse intuito foram abordados conceitos como vNIC pNIC VLANs vNetwork

Distributed Switch e Distributed Virtual Filter

19

3 Computaccedilatildeo na Cloud

Como anteriormente referimos o uso crescente de Tecnologias de Informaccedilatildeo (TI) nas

organizaccedilotildees leva geralmente a uma proliferaccedilatildeo de servidores fiacutesicos o que as obriga

mais cedo ou mais tarde a adoptar estrateacutegias de consolidaccedilatildeo de servidores com a

consequente reduccedilatildeo de custos de hardware e energia Resolvidas estas questotildees restam

contudo outras - o uso de virtualizaccedilatildeo natildeo reduz por si soacute o esforccedilo de administraccedilatildeo

das infra-estruturas nem resolve problemas de disponibilidade desempenho seguranccedila

etc que satildeo questotildees que nem todas as organizaccedilotildees querem ou estatildeo aptas a resolver

preferindo por vezes que ldquoalgueacutemrdquo assuma esta responsabilidade

A Computaccedilatildeo na Cloud (CC) apresenta-se assim como uma sequecircncia de passos

nesse sentido cada um correspondendo a um modelo de serviccedilo (ver em 32) e resolvendo

mais uma ldquofatiardquo dos problemas enunciados A CC eacute actualmente associada a palavras

chave como padronizaccedilatildeo automatizaccedilatildeo velocidade disponibilidade elasticidade

acesso global e agrave ideia de usar um conjunto de recursos partilhados As organizaccedilotildees

podem entatildeo preocupar-se essencialmente com as melhorias operacionais e para isso

procuram soluccedilotildees que possibilitem uma afectaccedilatildeo (e posteriormente libertaccedilatildeo) de

recursos de forma raacutepida e automaacutetica

ldquoCloud computing is a model for enabling ubiquitous convenient on-demand network access

to a shared pool of configurable computing resources (eg networks servers storage

applications and services) that can be rapidly provisioned and released with minimal

management effort or service provider interactionrdquo

The NIST Definition of Cloud Computing [Online] Available

httpwwwnistgovitlcsdcloud-102511cfm

31 Periacutemetro de uma cloud

Designamos por periacutemetro (ou modelo de implantaccedilatildeo) de uma cloud a forma como

caracterizamos o conjunto dos utilizadores com acesso aos serviccedilos dessa cloud

Nesta secccedilatildeo apresentamos apenas os trecircs tipos mais comuns deixando de fora outros

como as clouds partilhadas e federadas

Clouds Privadas

Ambientes construiacutedos exclusivamente para os utilizadores de uma uacutenica

organizaccedilatildeo Nesta tipologia os recursos (infra-estrutura e aplicaccedilotildees) satildeo totalmente

detidos pela organizaccedilatildeo podendo ser administrados pela proacutepria organizaccedilatildeo por

terceiros ou ainda pela combinaccedilatildeo das duas entidades A infra-estrutura estaacute

normalmente instalada num data center privado e as maiores preocupaccedilotildees satildeo

geralmente a garantia de disponibilidade e o desempenho dos serviccedilos e aplicaccedilotildees

20

Clouds Puacuteblicas

Ambientes construiacutedos para oferecer serviccedilos quer a utilizadores individuais

quer a organizaccedilotildees Nesta tipologia a infra-estrutura eacute geralmente detida pela

organizaccedilatildeo que comercializa os referidos serviccedilos que satildeo tipicamente cobrados na

forma ldquopay-per-userdquo As maiores preocupaccedilotildees da entidade gestora satildeo garantir a

privacidade e a seguranccedila (note-se que os ldquoutilizadoresrdquo podem de facto ser

administradores dos servidores que detecircm e podem instalar software) o isolamento

entre recursos detidos por utilizadores distintos e ainda assim garantir bom

desempenho dos serviccedilos e aplicaccedilotildees

Clouds Hiacutebridas

As clouds hiacutebridas representam a junccedilatildeo de dois modelos de cloud privada e

puacuteblica Este modelo eacute normalmente implantado em organizaccedilotildees que tecircm picos de

trabalho que por uma ou outra razatildeo natildeo podem suportar na sua cloud privada e

nessas alturas a ldquoelasticidaderdquo eacute usada para aprovisionar recursos de uma cloud

puacuteblica

32 Modelos de serviccedilo

Existem trecircs modelos base de serviccedilos de Cloud Computing que podem ser oferecidos

agraves organizaccedilotildees e que se diferenciam pelas configuraccedilotildees e responsabilidades do

provedor de serviccedilos figura 17

IaaS (Infrastructure as a Service)

No modelo ldquoinfra-estrutura como serviccedilordquo o provedor oferece ao consumidor

uma infra-estrutura de processamento e armazenamento com a configuraccedilatildeo que se

adequa agraves suas necessidades o cliente natildeo tem assim necessidade de adquirir

servidores racks software e ateacute mesmo espaccedilo fiacutesico Satildeo exemplos de provedores

puacuteblicos IaaS a Amazon EC2 [2] e o GoGrid [3] jaacute o Eucalyptus [4] o vCloud (da

VMware) e o HP CloudSystem Matrix satildeo exemplo de produtos software para a

criaccedilatildeo de clouds privadas

PaaS (Platform as a Service)

No modelo ldquoplataforma como serviccedilordquo o provedor disponibiliza plataformas

computacionais completas (incluindo naturalmente a infra-estrutura computacional)

para os utilizadoresconsumidores dessas plataformas integrarem as suas aplicaccedilotildees

(existentes ou a desenvolver) sendo que estas seratildeo posteriormente disponibilizadas

na cloud Como exemplo indicam-se as plataformas LAMP (Linux Apache MySQL

PHP) Google AppEngine [5] e Microsoft Azure [6]

21

SaaS (Software as a Service)

Neste modelo o provedor disponibiliza ao cliente final uma aplicaccedilatildeo pronta-

a-usar como exemplos mencionam-se as Google Apps [7] Google Docs e Microsoft

SharePoint Online Este eacute o paradigma cloud por excelecircncia utilidade facilidade

(interacccedilatildeo via browser) disponibilidade e por vezes ateacute alguma capacidade de

personalizaccedilatildeo

Figura 17 - Relaccedilatildeo entre serviccedilos e responsabilidades

Associados agrave CC vaacuterios modelos ldquoAs a Servicerdquo tecircm surgido para responder

agraves necessidades das organizaccedilotildees contudo todos acabam por ser enquadrados nos

trecircs tipos base (Infra-estrutura Plataforma e Software) de acordo com os serviccedilos que

disponibilizam

ldquoDatabase As A Service (DBaaS or DaaS) Network As A Service (NaaS) DataCenter As A

Service (DCaaS) Storage As A Service (StoraaS) Everything As A Service (EaaS) Data As

A Service (DaaS) Security As A Service (SecaaS) Computing As A Service (CaaS) Desktop

As A Service (VDI) Voice As A Service (VaaS) Communication As A Service (ComaaS)

Testing As A Service (TaaS) Backup As A Service (BaaS) Monitoring As A Service

(MaaS) Recovery As A Service (RaaS) Content Delivery Network As a Service (CDNaaS)

Application As A Service (AaaS) Business Intelligence As A Service (BIaaS) etcrdquo

Cloud9IDE [Online] Available httpsc9io

As relaccedilotildees entre os modelos IaaS PaaS e SaaS satildeo hieraacuterquicas como se

pode observar na figura 18 que ainda ilustra os papeacuteis do provedor de serviccedilos

equipas de desenvolvimento e utilizadores finais Como se observa o IaaS fornece

recursos de hardware e software ao PaaS e SaaS o PaaS oferece ferramentas para

desenvolvimento ao SaaS e por fim o SaaS executa e disponibiliza aplicaccedilotildees aos

utilizadores finais

22

Figura 18 - Relaccedilotildees e papeacuteis dos envolventes nos modelos de Cloud Computing

33 Resumo

O presente capiacutetulo descreve a tecnologia de Computaccedilatildeo na Cloud (Cloud

Computing) vantagens do seu uso e conceitos tais como periacutemetro (onde se

enquadram designaccedilotildees como Clouds Privadas e Puacuteblicas passando pelas Hiacutebridas) e

modelos de Serviccedilo IaaS PaaS e SaaS sendo o IaaS o foco desta dissertaccedilatildeo

A virtualizaccedilatildeo apresenta-se como a tecnologia chave de todo este processo

ela desempenha e continuaraacute a desempenhar um papel indispensaacutevel para que os

prestadores de serviccedilo continuem a oferecer ambientes de CC que permitem um

dimensionamento correcto e economicamente ajustado das infra-estruturas de TI

oferecendo ainda funcionalidades como gestatildeo centralizada disponibilidade e

seguranccedila

23

4 HP Cloud Stack

O OpenStack eacute presentemente um consoacutercio que inclui entidades como a ATampT HP

IBM Rackspace Red Hat Suse etc fortemente empenhadas na computaccedilatildeo na cloud e

que tecircm por objectivo colocar no mercado uma implementaccedilatildeo ubiacutequa para clouds tanto

puacuteblicas como privadas e uma pilha de software em coacutedigo aberto que suporta

heterogeneidade (por exemplo nos hipervisores) e uma enorme riqueza em recursos (de

computaccedilatildeo armazenamento e interligaccedilatildeo)

O OpenStack promove uma arquitectura comum ou seja um framework que eacute

extensiacutevel e permite que terceiros (incluindo os parceiros do consoacutercio) ampliem as suas

funcionalidades quer por via de desenvolvimentos adicionais quer por integraccedilatildeo de

produtos jaacute existentes embora a pilha-base jaacute permita por meio de portais quer a

administraccedilatildeo das pools de computaccedilatildeo armazenamento e rede quer o provisionamento

de recursos

As plataformas Cloud em Open Source tornam-se atraentes pelo seu baixo custo

inicial de implementaccedilatildeo e pela perspectiva da portabilidade

41 HP CloudSystem Matrix

A HP CloudSystem Matrix eacute uma soluccedilatildeo proprietaacuteria que assenta na plataforma

OpenStack para lhe acrescentar moacutedulos de seguranccedila gestatildeo e automaccedilatildeo

abrangente a toda a infra-estrutura como mostra a figura 19 Eacute uma soluccedilatildeo IaaS

tanto para clouds privadas como para hiacutebridas

Figura 19 - Contributos CloudStack

Norteado por uma visatildeo de ldquosimplificaccedilatildeo como chaverdquo o HP Cloud System

Matrix permite entregar soluccedilotildees preacute-definidas num cataacutelogo de serviccedilos de TI a

consumidores da infra-estrutura (utilizadores) que as requisitaram a partir de um

portal self-service

24

Figura 20 - Desenho publicaccedilatildeo e implementaccedilatildeo do cataacutelogo de serviccedilos

A soluccedilatildeo HP CloudSystem Matrix oferece

Um ambiente de trabalho (Matrix Operating Environment - MOE)

altamente automatizado que automaticamente se ajusta a todo o

dinamismo de negoacutecio permitindo um raacutepido desenho provisionamento e

modificaccedilatildeo de toda a infra-estrutura e uma optimizaccedilatildeo dos ambientes

fiacutesicos e virtuais a fornecer como serviccedilo

Uma pilha de tecnologias de gestatildeo figura 21 HP Console Management

System (CMS) que inclui ferramentas como HP Universal Discovery

(UD) para detectar automaticamente todos os objectos do ambiente HP

SiteScope [25] (opcional) que monitoriza a disponibilidade e desempenho

de toda a infra-estrutura - aplicaccedilotildees servidores SO serviccedilos de rede

armazenamento [24] e software de virtualizaccedilatildeo - evitando e resolvendo

alguns problemas de desempenho (estrangulamentos por escassez de

recursos)

Uma infra-estrutura convergente (HP Converged Infrastructure) apoiada

em soluccedilotildees como o HP Insight Control (IC) para gestatildeo da infra-

estrutura e o HP Insight Dynamics (ID) uma consola de Data Center para

uma gestatildeo centralizada de agregados (pools) de recursos e de pacotes

preacute-configurados de hardware e software Eacute aqui que se criam as pools de

recursos para posterior fornecimento ao MOE

O MOE assenta nesta pilha como o uacuteltimo niacutevel de software um ambiente de

trabalho altamente automatizado permitindo que seja possiacutevel a reduccedilatildeo draacutestica de

custos tempo e esforccedilo na implementaccedilatildeo de toda a estrutura necessaacuteria assim como

das aplicaccedilotildees mercecirc do seu moacutedulo de orquestraccedilatildeo da infra-estrutura (Infrastructure

Orchestration - IO) e opcionalmente do moacutedulo de automaccedilatildeo de servidores (Server

Automation - SA) Em suma trata-se de um ambiente optimizado para gestatildeo e

aprovisionamento de infra-estruturas hiacutebridas incluindo servidores fiacutesicos (Integrity e

x86) e virtuais rede e armazenamento [23] O CloudSystem Matrix estaacute igualmente

integrado com tecnologias de virtualizaccedilatildeo como o ESXi da VMware e o Hiper-V da

Microsoft

25

Figura 21 - Infra-estrutura HP CloudSystem Matrix

42 Modelos de interacccedilatildeo com o HP CSM

Definidos os modelos de implementaccedilatildeo e serviccedilo resta definir as formas de

comunicaccedilatildeo os modos de interacccedilatildeo entre as infra-estruturas aplicaccedilotildees e processos

O modelo eacute transparente para o utilizador final sendo disponibilizadas trecircs opccedilotildees

Web Service API

Este eacute o meacutetodo preferido para controlar os processos dentro da TI Um Web

Service (WS) eacute de acordo com o W3C4 ldquoa software system designed to support

interoperable machine-to-machine interaction over a network It has an interface

described in a machine-processable format (specifically WSDL) Other systems

interact with the Web service in a manner prescribed by its description using SOAP

messages typically conveyed using HTTP with an XML serialization in conjunction

with other Web-related standardsrdquo A HP CloudSystem Matrix oferece uma API

baseada no protocolo SOAP (Simple Object Access Protocol) para troca de

informaccedilatildeo estruturada numa plataforma descentralizada e distribuiacuteda Eacute um

protocolo baseado numa linguagem de marcaccedilatildeo extensiacutevel (Extensible Markup

Language ndash XML) para o formato das mensagens enviadas e recebidas e no protocolo

de transferecircncia de hipertexto (HyperText Transfer Protocol ndash HTTP) para negociaccedilatildeo

e transmissatildeo de mensagens Como protocolo de transporte usa igualmente HTTP

garantindo assim uma certa ldquofacilidaderdquo para funcionar em ambientes protegidos por

firewalls

4 httpwwww3orgTRws-archwhatis

26

Command line interface (CLI)

Uma interface de linha de comando que inclui natildeo soacute todas as opccedilotildees

disponiacuteveis na API WebService como outras natildeo disponiacuteveis nas outras APIs

Northbound API (nbAPI)

Uma interface de controlo remoto atraveacutes de um URL (Uniform Resource

Locator) endereccedilo de um determinado recurso disponiacutevel numa rede o acesso pode

ser efectuado por HTTP FTP etc (ex protocolomaacutequinacaminhorecurso)

43 Papeacuteis e Portais de interacccedilatildeo

Os provedores de serviccedilo cloud satildeo responsaacuteveis por fornecer toda a infra-estrutura do

serviccedilo contratado Nestas arquitecturas existem normalmente trecircs tipos de (papeacuteis de)

utilizadores da cloud que se associam aos respectivos portais figura 22

Administrador Arquitecto e Utilizador final (ou consumidor de serviccedilos cloud)

Figura 22 - Utilizadores de TI em cloud e respectivos papeacuteis (roles)

Administrador Cloud

O administrador usando as ferramentas de ao seu dispor cria monitoriza e

manteacutem a pool de recursos (de computaccedilatildeo memoacuteria armazenamento e rede) a

disponibilizar na cloud Normalmente este papel tambeacutem envolve a implementaccedilatildeo

de acordos de niacutevel de serviccedilo (Service Level Agreement - SLA) onde satildeo definidas

as poliacuteticas entre o fornecedor de serviccedilos cloud e os seus ldquoclientesrdquo O portal

associado a este utilizador eacute o portal do Administrador figura 23

27

Figura 23 - Portal do Administrador

Arquitecto Cloud

O arquitecto eacute um utilizador teacutecnico responsaacutevel por projectardesenhar

montar e tornar disponiacuteveis (publicar) serviccedilos que a proacutepria infra-estrutura pode

disponibilizar para os utilizadores mediante poliacuteticas e necessidades dos objectivos

estrateacutegicos de uma organizaccedilatildeo Esses serviccedilos podem ser personalizaacuteveis e

especiacuteficos para um determinado utilizador grupo de utilizadores ou para uso geral O

arquitecto pode ainda criar fluxos de trabalho (workflows) que passo a passo ajudam

na interacccedilatildeo utilizador-ambiente oferecendo serviccedilos como personalizaccedilatildeo gestatildeo

simplificaccedilatildeo de processos e a proacutepria integraccedilatildeo de TIs O portal associado a este

tipo de utilizador eacute o Designer Portal onde o arquitecto desenha a infra-estrutura e os

modelos de serviccedilo (templates de que adiante falaremos) a incluir no cataacutelogo

Figura 24 - Portal do Arquitecto

28

Consumidor IaaS

O portal associado a este tipo de utilizador eacute o Self-service Portal (ou user

portal) onde o utilizador poderaacute seleccionar visualizar e instanciar os modelos de

serviccedilo preacute-definidos pelo Arquitecto O utilizador depois de escolher de entre os que

existem no cataacutelogo de serviccedilos o ldquomodelo de infra-estruturardquo que mais se adequa agraves

suas necessidades solicita a sua instanciaccedilatildeo para obter os recursos de computaccedilatildeo

memoacuteria armazenamento e rede Este portal permite ainda ao utilizador efectuar a

gestatildeo dos serviccedilos solicitados

Figura 25 - Portal do Utilizador final

44 Conceitos fundamentais da plataforma HP CSM

Apresentamos agora um leque de conceitos fundamentais para compreender o HP

CSM e o trabalho que realizaacutemos Nalguns casos poderemos apresentar exemplos

concretos para melhor ilustrar esses conceitos

Template

Num template o Arquitecto da infra-estrutura captura uma configuraccedilatildeo tiacutepica

em TI especificando os seus componentes-base (hardware e software) e desenha as

suas inter-relaccedilotildees que servidores existem quais as suas caracteriacutesticas (CPUs

memoacuteria discos interfaces) como se interligam os servidores entre si (as conexotildees

de rede) e se for o caso como um ou mais desses servidores se ligam ao ldquoexteriorrdquo do

Centro de Dados Do template tambeacutem faz parte o software haveraacute servidores com

Linux outros com Windows Server uns podem ter Apache e outros SQL Server para

dar alguns exemplos Os templates apoacutes publicaccedilatildeo passam a fazer parte de um

cataacutelogo de serviccedilos para uso dos consumidores de serviccedilos dessa infra-estrutura de

cloud

29

Como exemplo vejamos a seguinte situaccedilatildeo em TI a pilha LAMP (Linux

Apache MySQL PHP) eacute um padratildeo comum e bastante usado assim o arquitecto

poderaacute criar dois templates LAMP-base com um uacutenico servidor e toda a pilha nele

instalada e LAMP-elaacutestico em que haacute uma farm de servidores Apache-PHP que se

ligam a um ldquofailover clusterrdquo de dois servidores MySQL

Server Group

Um ldquoGrupo de Servidoresrdquo eacute constituiacutedo por um ou mais servidores com as

mesmas caracteriacutesticas e configuraccedilotildees software discos interfaces etc O arquitecto

usa os Grupos de Servidores para organizar os servidores em torno da funccedilatildeo que

estes desempenham eou das suas caracteriacutesticas

Por exemplo o arquitecto definiria no template LAMP-base um uacutenico grupo

de servidor(es) mas jaacute no caso do template LAMP-elaacutestico definiria o grupo APfarm

(que incluiria um proto-servidor com determinadas caracteriacutesticas ndash 2 interfaces LAN

Linux Apache e PHP) e o grupo MySQLfo (com um proto-servidor tambeacutem com 2

interfaces LAN mas com Linux Linux-HA e MySQL) Soacute que o grupo APfarm

permitiria um miacutenimo de 1 e um maacuteximo de digamos 4 servidores enquanto o grupo

MySQLfo seria instanciado sempre com 2 servidores

Server

Eacute obviamente um servidor (virtual quase sempre embora o HP CSM permita

ldquoinstanciarrdquo ndash leia-se instalar o software e configurar ndash servidores fiacutesicos) com

atributos (muitos deles especificaacuteveis por um intervalo de valores entre um miacutenimo o

default e um maacuteximo) como memoacuteria (RAM) nuacutemero de processadores e

correspondente velocidade de reloacutegio discos lista de software associado interfaces

de rede (LAN eou SAN) etc

Software

O termo ldquoSoftwarerdquo refere-se a um produto software instalaacutevel no servidor

(pode ser o SO um SGBD um qualquer middleware ou ateacute uma aplicaccedilatildeo) Haacute duas

formas de efectuar essa instalaccedilatildeo automaticamente no acto de instanciaccedilatildeo do

servidor usando um pacote opcional o HP Server Automation (SA) ou manualmente

(a usada neste trabalho por natildeo dispormos do HP SA) ndash e neste caso temos de criar

uma VM instalar o software e depois transformar a VM numa VM-template (o que

se faz directamente no software de virtualizaccedilatildeo eg VMware vCenter Server)

Disk

Eacute um disco virtual ou fiacutesico que pode ser acedido pelo(s) servidor(es) pode

ser bootable shareable (partilhaacutevel entre servidores) suportado numa tecnologia

magneacutetica ou SSD acessiacutevel por ligaccedilatildeo FC ou iSCSI etc

Interface

Uma ldquointerfacerdquo eacute um ponto de contacto entre o servidor e as redes (que lhe

satildeo) externas de um ponto de vista pragmaacutetico deixando de lado infra-estruturas

30

pouco comuns em centros de dados de TI (por contraposiccedilatildeo aos CDs HPC) as infra-

estruturas relevantes satildeo Fibre Channel (FC) e Ethernet Assim as interfaces em

questatildeo satildeo HBAs (FC) e NICs (Ethernet)

Service

Um Service corresponde a uma instanciaccedilatildeo de um template e herda deste

todas as configuraccedilotildees base que poderatildeo ser posteriormente editadas com mais ou

menos servidores processamento memoacuteria discos etc ateacute ao limite maacuteximo

definido no Template

A criaccedilatildeo do serviccedilo eacute efectuada pelo consumidor5 IaaS que faz a definiccedilatildeo

fina das caracteriacutesticas da infra-estrutura que quer aprovisionar Continuando com os

exemplos baseados na pilha LAMP um consumidor do departamento de TI poderia

num dado momento criar um serviccedilo LAMP-testes baseado no template LAMP-base e

que usaria para fazer testes ao ldquoprodutordquo que estaacute a desenvolver e solicitar ao

administrador da cloud o respectivo aprovisionamento e mais tarde criar um serviccedilo

LAMP-produccedilatildeo baseado no template LAMP-elaacutestico e que usaria para colocar on-

line o produto

45 Limitaccedilotildees do HP CloudSystem Matrix

Em resumo o HP CloudSystem Matrix eacute um software stack para a implementaccedilatildeo de

clouds privadas que oferecem infra-estruturas como serviccedilo (IaaS) isto eacute permite aos

utilizadores (consumidores) dos seus serviccedilos aprovisionar de uma forma faacutecil e

raacutepida (minutos) uma infra-estrutura computacional completa de servidores6 (CPU

memoacuteria e discos) com o SO jaacute instalado interligados por uma topologia de rede mais

ou menos complexa

Contudo o supracitado ldquoaprovisionar de uma forma faacutecil e raacutepida (minutos)

uma infra-estrutura computacional completa de servidoresrdquo soacute eacute de facto faacutecil se

baseada na instanciaccedilatildeo de um template que serve exactamente as necessidades do

utilizador jaacute que na instanciaccedilatildeo apenas se pode modificar para cada servidor o

nuacutemero de CPUs e a quantidade de memoacuteria deixando de fora por exemplo opccedilotildees

de rede eou de armazenamento discos fiacutesicos vs virtuais aprovisionamento thin vs

thick (ver 23) escolha da tecnologia da interface (SATA vs SAS vs FC) ou do disco

(magneacutetico vs SSD)

Por outro lado a interacccedilatildeo atraveacutes do portal self-service do utilizador tambeacutem

apresenta algumas desvantagens a informaccedilatildeo apresentada pode ser em muitos casos

considerada demasiadamente teacutecnica eou desnecessaacuteria sendo que o portal natildeo pode

ser configurado para a omitir

5 Muitas vezes designado utilizador-consumidor ou simplesmente utilizador ndash e nesse caso eacute importante natildeo o

confundir com um mero utilizador final 6 Uma das vantagens do HPCSM eacute permitir aprovisionar natildeo soacute servidores virtuais mas tambeacutem reais (estes

uacuteltimos tecircm obrigatoriamente de ser fabricados pela HP)

31

46 Resumo

Este capiacutetulo descreve a HP CloudSystem Matrix uma pilha de software que

implementa o modelo IaaS para clouds privadas e faz parte de um leque mais vasto

da oferta HP que passa pela CloudSystem Enterprise (clouds privadas e hiacutebridas) e

culmina com a CloudSystem System Provider (que acrescenta as clouds puacuteblicas)

A HP CloudSystem Matrix eacute o nuacutecleo de trabalho deste framework razatildeo de

ser deste estudo e deste capiacutetulo Todo o hardware e pilha de software em que assenta

toda a infra-estrutura HP CloudSystem Matrix foi descrita nomeadamente os seus trecircs

Modelos de interacccedilatildeo (API CLI e nbAPI) os papeacuteis e portais de interacccedilatildeo

(Administrador Arquitecto e Utilizador) Concluiacutemos com uma abordagem modular

da infra-estrutura com a explicaccedilatildeo dos moacutedulos principais e finalmente as limitaccedilotildees

desta infra-estrutura em particular do portal actualmente em uso

32

5 O framework e a sua Realizaccedilatildeo

51 Arquitectura

A arquitectura proposta assenta em 3 camadas (3-tier) apresentaccedilatildeo loacutegica e dados

este tipo de arquitectura eacute bem conhecida apresentando como resultado da

modularidade uma seacuterie de benefiacutecios que incluem a escalabilidade que resulta da

possibilidade de executar uma ou outra camada num servidor distinto ou ateacute em

certos casos numa farm de servidores A comunicaccedilatildeo entre as camadas apresentaccedilatildeo

e loacutegicaserviccedilos assenta num protocolo REST (ou seja a arquitectura eacute orientada agrave

Web (WOA) com Axiom0a [28] - Universality2 com um URI por cada recurso

importante) e dados em formato XML (visualizaccedilatildeo) ou JSON (programaccedilatildeo)

transportados em HTTP sobre TCPIP Relativamente agrave comunicaccedilatildeo com o HP

CSM ela processa-se sobre HTTPS numa arquitectura SOA com o protocolo SOAP

Figura 26 - Arquitectura n-tier

Camada de Apresentaccedilatildeo

Define e realiza a interface do utilizador o formato de interacccedilatildeo e

visualizaccedilatildeo foi optimizada para o navegador Google Chrome mas funciona

igualmente noutros browsers Eacute a camada de mais alto niacutevel e eacute responsaacutevel natildeo soacute

pelo contacto utilizadoraplicaccedilatildeo atraveacutes de um conjunto de interfaces que podem ser

apresentadas num browser mas tambeacutem por lhe fazer chegar a informaccedilatildeo das

camadas inferiores

33

Camada Loacutegicanegoacutecio

Tambeacutem conhecida como a camada de negoacutecio eacute o nuacutecleo da aplicaccedilatildeo e eacute

responsaacutevel por controlar as suas funcionalidades tem igualmente a responsabilidade

de realizar a transiccedilatildeo de dados entre as camadas de apresentaccedilatildeo e dados e ainda

todas as transiccedilotildees necessaacuterias entre a proacutepria aplicaccedilatildeo e a camada de serviccedilos

Camada de Serviccedilos

Camada que realiza toda a comunicaccedilatildeo com os webservices do CSM

nomeadamente via API do MOE e outras APIs como eacute o caso da API da VMware

Camada de Dados

Camada responsaacutevel por guardar e gerir os dados em texto (ou numa base de

dados opccedilatildeo que activamos quando queremos trabalhar offline ndash o que neste

momento apenas fazemos para testes) e cache de leituras (cookies) com a informaccedilatildeo

sobre o utilizador e outras informaccedilotildees proveniente da camada de loacutegicaserviccedilos

como eacute o caso da implementaccedilatildeo Realm JAAS no moacutedulo de login JAAS

52 Integraccedilatildeo da framework no HP CSM (MOE e VMware)

Nesta secccedilatildeo propositadamente muito simples mostramos (figura 27) as relaccedilotildees

entre a framework agrave esquerda a plataforma HP CSM (MOE) com o qual esta

interage ao centro e a plataforma VMware vCenter que gere o hipervisor ESXi que

em ultima instacircncia eacute quem suporta as VMs que se disponibilizam na cloud

Figura 27 - Relaccedilatildeo dos VMIDs (WebService-MOE-vCenter)

34

53 Um desenho guiado pela Interface Utilizador

A portal is a window into a much broader set of capabilities in the IT world Its critical that portals be user-friendly and fairly intuitive to use

Ken Stephens vice president of Xerox Corp

O desenvolvimento deste framework teve sempre como objectivo uacuteltimo o

utilizador com acessos consulta de informaccedilatildeo e interacccedilotildees raacutepidas intuitivas faacuteceis

e acima de tudo praacuteticas Pretendeu-se simplicidade com uma curta curva de

aprendizagem e uma flexibilidade com acessos proacuteprios e individuais a cada

utilizador associados a um username e role (admin ou user) dispensando a

necessidade da se ter de usar dua interfaces distintas uma para o administrador outra

para um utilizador-consumidor de serviccedilos

These users want to see performance graphs and have the capability to build complex configurations and templates for their end users

Lauren Nelson Forrester Research Inc

A visualizaccedilatildeo em tempo real de todas as acccedilotildees do utilizador com a

disponibilizaccedilatildeo de uma ldquobarra de progressordquo a visualizaccedilatildeo do estado geral do

webservice e das suas configuraccedilotildeesrecursos tambeacutem natildeo foram descuradas A

descriccedilatildeo dos componentes principais em aacutervore permite a raacutepida visualizaccedilatildeo das

configuraccedilotildees de todo o Serviccedilo criado das suas hierarquias e relaccedilotildees e um acesso

raacutepido e intuitivo aos detalhes de cada componente

35

Figura 28 - Estrutura em aacutervore do menu lateral esquerdo

Developers want a clean easy-to-use [product] to select prebuilt templates -- but they dont need to see any of the complex performance or payment configurations

Lauren Nelson

O Cataacutelogo de Templates publicados pelo Arquitecto eacute imediatamente

visualizado no menu em aacutervore quando o webservice eacute inicializado que eacute

imediatamente povoada com os Serviccedilos (e seus recursos) anteriormente criados por

esse utilizador

Para criar um novo Serviccedilo o utilizador seleciona o template que mais se

adequa agraves suas necessidades e cria o Serviccedilo Todos os Serviccedilos associados a um

determinado Template ficam como ramos na aacutervore desse Template o mesmo

acontecendo relativamente aos recursos associados a cada Serviccedilo A informaccedilatildeo

visualizada eacute apenas a necessaacuteria a cada visualizaccedilatildeo e instanciaccedilatildeo

A interface eacute assim raacutepida acessiacutevel intuitiva organizada e personalizaacutevel as

acccedilotildees satildeo acessiacuteveis e raacutepidas de executar sem menus e submenus com sucessivos

cliques que soacute atrasam todo o processo

36

Figura 29 - Portal

37

Figura 30 - Diagrama de Sequecircncia (Criaccedilatildeo de um Serviccedilo)

38

What you want and what you get in most cases depends on the users persona -- either an IT manager or a developerhellip By making portals task-

based youre not just seeing a bunch of random menus or links If youre

searching for something youll find it quicklyrdquo

Bill Forsyth vice president of portal development at Savvis

Um portal personalizaacutevel em funccedilatildeo do utilizador ocultar ou exibir paineacuteis de

informaccedilatildeo a lista de pedidos limitar a exibiccedilatildeo por Template ou por Serviccedilo - um

simples clique e todo o portal eacute personalizaacutevel

Paying attention to details and being able to organize information for larger enterprises is important

Bill Forsyth

A organizaccedilatildeo de toda a informaccedilatildeo a disponibilizar eacute a chave de todo este

processo e diferencia um portal agradaacutevel e intuitivo de um portal confuso no seu

amontoado de informaccedilatildeo e complexidade quanto maior eacute a informaccedilatildeo a

disponibilizar maior eacute evidente esta diferenccedila Uma informaccedilatildeo hierarquizada e

organizada em agrupamentos loacutegicos por recursos eacute um processo muito faacutecil de seguir

e perceber e associada a esta disponibilizaccedilatildeo de informaccedilatildeo apenas exibir acccedilotildees

que possam ser executadas sobre esse(s) recurso(s) eacute o objectivo da simplicidade e

desempenho de uma interface Por uacuteltimo uma paacutegina web de ajuda a toda a interface

(Anexo N) para consulta de qualquer duacutevida faz com que tudo seja uacutetil e praacutetico [33]

54 Camada de apresentaccedilatildeo

A realizaccedilatildeo da camada de apresentaccedilatildeo pode ser apresentada subdividindo-a em duas

partes sendo a primeira correspondente agrave realizaccedilatildeo do lado do cliente (client-side) e

a segunda agrave realizaccedilatildeo do lado do servidor (server-side)

541 Do lado do cliente

A visualizaccedilatildeo de uma paacutegina web num navegador como Google Chrome Firefox ou

Internet Explorer soacute eacute possiacutevel se estes ldquoentenderemrdquo a linguagem na qual estaacute

construiacuteda ldquoa paacuteginardquo e forem capazes de a processar sem necessidade de qualquer

espeacutecie de preacute-tratamento Surgiram muitas linguagens conhecidas como linguagens

de marcaccedilatildeo um sistema moderno para anotaccedilatildeo de um documento de uma forma que

ldquoo programardquo eacute sintaticamente distinguiacutevel do texto normal

Do lado do cliente a principal linguagem de marcaccedilatildeo eacute a HTML agrave qual se

adiciona a JavaScript na qual os programas acompanham um documento html

incluiacutedos em ficheiros com a extensatildeo js ou satildeo incorporados directamente no

39

coacutedigo html entre tags ltscriptgtltscriptgt o documento html eacute entatildeo carregado pelo

navegador do utilizador e com ele todo o coacutedigo JavaScript

A linguagem JavaScript eacute usada para incutir dinamismo no coacutedigo html

facilitando por exemplo a interacccedilatildeo com o utilizador no preenchimento de

formulaacuterios (aquando da criaccedilatildeo de um serviccedilo) ou promovendo o upload de um

modelo de template em formato XML ou executando acccedilotildees ou eventos consoante

determinado comportamento do utilizador etc As funccedilotildees JavaScript e das suas

bibliotecas como JQuery satildeo executadas aquando do carregamento da proacutepria paacutegina

html ou quando invocadas por eventos como sejam a inicializaccedilatildeo da framework

leitura inicial dos dadosrecursos relativos ao utilizador criaccedilatildeo de cookies ou acccedilotildees

do utilizador como o login ou o preenchimento de formulaacuterios

Tambeacutem eacute usado AJAX (Asynchronous JavaScript and XML) [36] um padratildeo

para o uso de comandos JavaScript para de uma forma siacutencrona ou assiacutencrona trocar

dadosinformaccedilatildeo com o servidor e actualizar conteuacutedos de paacuteginas web jaacute exibidas

em que natildeo eacute necessaacuterio carregar toda a paacutegina para a actualizar Um padratildeo ideal

para usar com o protocolo REST (Representational State Transfer) para troca de

informaccedilatildeo permite o uso de dados em texto HTML XML e JSON (JavaScript

Object Notation) como formato da informaccedilatildeo para enviar e receber dados usando

HTTP e URI exactamente como as interacccedilotildees HTTP foram concebidas GET

POST PUT e DELETE Com AJAX as operaccedilotildees CRUD (Create Read Update e

Delete) satildeo muito intuitivas e faacuteceis de usar

Finalmente CSS (Cascading Style Sheets) eacute a linguagem responsaacutevel pela

formataccedilatildeo dos dados em termos de visualizaccedilatildeo para o utilizador que eacute usada para

descrever a apresentaccedilatildeo das paacuteginas Web incluindo cores layout e fontes

542 Do lado do servidor

As linguagens caracterizadas como ldquodo lado do servidorrdquo satildeo necessaacuterias para

especificar os programas que tecircm de ser executados no servidor como ldquorespostardquo agraves

acccedilotildees desencadeadas do lado do browser quando o resultado tem de ser enviado

para o browser eacute-o na forma de ficheiro HTML

Linguagens de conteuacutedo e comportamento como JSP (JavaServer Pages) uma

mistura de HTML com scriptlet contecircm um elemento script (blocos de coacutedigo em

Java) o que as caracteriza como linguagens que correm no servidor Os scriptlet

como todo o coacutedigo Java eacute executado no servidor e o output direcionado para o resto

da paacutegina JSP e finalmente apresentado ao utilizador A facilidade de comunicaccedilatildeo

em variaacuteveis de sessatildeo torna esta linguagem muito apelativa ao uso dessas variaacuteveis

como eacute o cado da paacutegina loginjsp onde se desenrola grande parte da comunicaccedilatildeo

browserservidor atraveacutes da API MOE logoutjsp e vmrcjsp para ligaccedilatildeo agraves VMs e

comunicaccedilatildeo com a API VMware

40

543 Lista de primitivas na oacuteptica dos recursos

Segue-se a lista de primitivas apresentada numa oacuteptica de recursos que cada

uma manipula

actionsjs - Lista as ldquoactionsGridrdquo atribuiacutedas aos Serviccedilos Grupo de

Servidores ou Servidores e permite todas as acccedilotildees associadas nestas

listagens

cookiesjs - Leitura e criaccedilatildeo de cookies associados ao utilizador e todo o

webservice Cookies de login com dados como username e role e outros

dado associados agraves acccedilotildees do utilizador e webservice como layout de

visualizaccedilatildeo da paacutegina (globaltheme) menu lateral esquerdo (treetheme)

paineacuteis de visualizaccedilatildeo de informaccedilatildeo (northregion westregion

eastregion southregion) etc

disksjs - Leitura das informaccedilotildees associadas aos discos nas suas trecircs

versotildees ldquostereotype disksrdquo discos virtuais e fiacutesicos Todas as acccedilotildees

possiacuteveis em discos estatildeo igualmente configuradas neste ficheiro

geraljs - Leitura das informaccedilotildees gerais associadas ao webservice Dados

iniciais de informaccedilatildeo de todos os Templates do Cataacutelogo de Serviccedilos e

dados de Serviccedilos jaacute existentes nos diferentes formatos (JSON e XML)

configuraccedilotildees gerais do webservice como tabelas de listagens conversotildees

de datas (ldquodate2epochrdquordquoepoch2daterdquo) construccedilatildeo do menu lateral

esquerdo em aacutervore listeners para acccedilotildees do utilizador e mensagens de

erros e informaccedilatildeo do webservice

helpjs - Configuraccedilotildees de todo o layout das ajudas ao utilizador

interfacesjs - Leitura das informaccedilotildees associadas agraves interfaces redes e

endereccedilos IP Todas as acccedilotildees passiacuteveis de serem executadas nas

interfaces estatildeo igualmente configuradas neste ficheiro

remoteSessionsjs - Listagem de todas as Sessotildees Remotas do Serviccedilo e

acccedilotildees associadas a essas Sessotildees Remotas por Servidor e suas Interfaces

requestsjs - Listagem de todos os pedidos por Template ou Serviccedilo

Todas as acccedilotildees passiacuteveis de serem executadas relativas aos pedidos do

utilizador estatildeo igualmente configuradas neste ficheiro

serverGroupsjs - Leitura das informaccedilotildees associadas ao Grupo de

Servidores quer nos Templaste quer nos Serviccedilos Todas as acccedilotildees

relativas ao Grupo de Servidores estatildeo igualmente configuradas neste

ficheiro

serverPoolsjs - Listagem de todos as Pools de Servidores com a

informaccedilatildeo respectiva a cada Pool Todas as acccedilotildees passiacuteveis de serem

executadas nas Pools de Servidores estatildeo configuradas neste ficheiro

41

serversjs - Leitura das informaccedilotildees associadas a cada Servidor quer nos

Templaste quer nos Serviccedilos Todas as acccedilotildees relativas aos Servidores

estatildeo configuradas neste ficheiro

servicesjs - Leitura das informaccedilotildees associadas a cada Serviccedilo Todas as

acccedilotildees passiacuteveis de serem executadas nos Serviccedilos estatildeo configuradas

neste ficheiro

snapshotsjs - Listagem de todos os Snapshots com a informaccedilatildeo

respectiva ao par ServerSnapshot Todas as acccedilotildees passiacuteveis de serem

executadas nos Snapshots estatildeo configuradas neste ficheiro

softwarejs - Listagem de todo Software existente no sistema e informaccedilatildeo

relativa a cada Software em particular

templatesjs - Listagem de todos os recursos do Template e informaccedilatildeo

relativa a cada recurso base Toda a disponibilizaccedilatildeo de informaccedilatildeo e as

acccedilotildees associadas aos Templates estatildeo configuradas neste ficheiro

55 Camada ServiccedilosLoacutegica

Como referido (ver 51) a comunicaccedilatildeo entre a camada de apresentaccedilatildeo e a

loacutegicaserviccedilos assenta num protocolo REST e usa XML e JSON como formato para

enviar e receber informaccedilatildeo usando HTTP e URI (operaccedilotildees CRUD - Create Read

Update e Delete) [29]

Figura 31 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull

Por seu lado o REST assenta em quatro princiacutepios fundamentais 1) Recurso

cada recurso tem uma identificaccedilatildeo uacutenica e global associada ao URI

httpexemplocomencomenda20121088563 2) Acesso usando URIs acede-se a

um recurso por um ID uacutenico e global independente da sua localizaccedilatildeo 3) Formatos

um recurso pode ser representado em diferentes formatos por exemplo HTML XML

ou JSON sendo a escolha ditada pela finalidade especiacutefica de utilizaccedilatildeo do recurso

4) Comunicaccedilatildeo stateless - o cliente pode receber toda a informaccedilatildeo necessaacuteria num

primeiro contacto com o servidor executar o processamento e finalmente ligar-se

uma segunda vez ao servidor para reportar os resultados

As APIs usadas e directamente relacionadas com serviccedilos REST foram as

seguintes 1) JAX-RS (JSR 311 - Java Specification Requests) Atualmente parte

42

integrante do Java EE eacute uma API Java para serviccedilos Web RESTfull sobre HTTP

JAVAX-RS como especificaccedilatildeo desta API [30] fornece anotaccedilotildees que simplificam as

configuraccedilotildees 2) Jersey eacute uma implementaccedilatildeo open-source de referecircncia do

JAVAX-RS [31] 3) RestEasy eacute uma outra implementaccedilatildeo do JAVAX-RS com

opccedilotildees de suporte para outros protocolos aleacutem do HTML e que permite conexotildees

assiacutencronas e tem suporte de cache [32]

551 Camada de Serviccedilos

Como sabemos o HP CloudSystem Matrix gere recursos de computaccedilatildeo

armazenamento rede e software de uma forma unificada para oferecer um ambiente

virtualizado e altamente automatizado Contudo natildeo eacute um produto fechado

disponibilizando natildeo soacute um CLI mas tambeacutem uma API com uma WSDL (Web

Service Description Language) que inclui todas as operaccedilotildees possiacuteveis (https ltcms-

ip-addressgt 51443hpiocontrollersoapv5 wsdl)

A camada de serviccedilos eacute um cliente do CSM que funciona segundo o padratildeo

autenticaccedilatildeoperfil-pedido(s)-fecho na fase de autenticaccedilatildeo o utilizador (registado na

infra-estrutura MOE) faz o seu login a partir desse momento estaacute criada uma sessatildeo

que por HTTPS permite o acesso a todos os recursos disponiacuteveis para a combinaccedilatildeo

utilizadorperfil (role)

552 Camada Loacutegica

A camada loacutegica segue o mesmo princiacutepio estaacute centrada nos recursos em termos de

tecnologias usa o protocolo REST para a comunicaccedilatildeo clienteservidor e a

linguagem Java para o desenvolvimento

A realizaccedilatildeo foi idealizada numa prespectiva hieraacuterquica o que facilita a

compreensatildeo de toda a estrutura O menu lateral esquerdo eacute exemplo disso mesmo a

estrutura em aacutervore espelha esta ideia simples mas eficaz os recursos comeccedilam por

ser apresentados como listas sobre as quais podemos realizar acccedilotildeesfunccedilotildees ldquode

grupordquo pois satildeo apenas aquelas que satildeo comuns a todos os membros da lista mas agrave

medida que nos vamos aproximando das folhas da estrutura em aacutervore as

acccedilotildeesfunccedilotildees ficam mais especiacuteficas relativamente aos recursos-alvo

Por exemplo quando se realiza a acccedilatildeo ldquoPower ONrdquo a um grupo de

servidores todos os servidores do grupo satildeo ligados quando se efectua essa mesma

acccedilatildeo sobre um servidor apenas o servidor seleccionado eacute ligado

A disponibilizaccedilatildeo de informaccedilatildeo relativa a grandes ldquoconjuntos de dadosrdquo

como eacute o caso de listagens de pedidos de acccedilotildees de sessotildees remotas de snapshots

de stereotype disks de software e de subnets foi realizada com datagrids (tabelas)

para melhor visualizaccedilatildeo

43

As acccedilotildeesfunccedilotildees disponibilizadas estatildeo distribuiacutedas pelas tabs respectivas e

executam serviccedilos no niacutevel em que se encontram disponibilizadas A tiacutetulo de

exemplo as acccedilotildees que se encontram disponiacuteveis para execuccedilatildeo no grupo de

servidores apenas podem ser encontradas no tab ldquoGrouprdquo e reflectem-se sobre todos

os membros do grupo Uma acccedilatildeo especiacutefica de servidor encontra-se somente

disponiacutevel na tab ldquoServerrdquo e afecta apenas e soacute esse servidor

Segue-se uma descriccedilatildeo natildeo exaustiva da camada loacutegica nuacutecleo desta

framework desde a sua inicializaccedilatildeo ateacute aos recursos e moacutedulos principais

5521 Init

Aquando da inicializaccedilatildeo da aplicaccedilatildeo e no seguimento do login do utilizador eacute

desencadeada uma sequencia de pedidos ao servidor por informaccedilotildees relativas aos

Templates do Cataacutelogo de Serviccedilos e de todos os Serviccedilos do utilizador Se as

permissotildees associadas ao utilizador for de simples utilizador do webservice visualiza

apenas as instacircncias que criou jaacute um utilizador com permissotildees de administraccedilatildeo

visualiza os seus serviccedilos e todos os serviccedilos dos restantes utilizadores

Tabela 1 - Funccedilotildees associadas agrave inicializaccedilatildeo do Webservice

Funccedilatildeo Descriccedilatildeo

getVersion Funccedilatildeo de teste Obteacutem a informaccedilatildeo da versatildeo da API

principal Funccedilatildeo usada aquando do login do utilizador Obteacutem os

detalhes do utilizador como USERNAME e ROLE

listAllDataDetailsJson Funccedilatildeo usada apoacutes login do utilizador e iniciaccedilatildeo da

aplicaccedilatildeo Obteacutem os detalhes dos Serviccedilos associados ao

Utilizador Lista a informaccedilatildeo de todos os Templates e

Serviccedilos do Utilizador no formato JSON Funccedilatildeo para uso

excluivo do webservice

downloadTabJsonView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa aos recursos do Utilizador em formato

JSON Eacute criado um ficheiro com extenccedilatildeo JSON

downloadTabXmlView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa aos recursos do Utilizador em formato

XML Eacute criado um ficheiro com extenccedilatildeo XML

44

listEnumsJson Funccedilatildeo usada apoacutes login do utilizador e iniciaccedilatildeo da

aplicaccedilatildeo Obteacutem os detalhes de todos os ENUMS possiacuteveis

no webservice Lista a informaccedilatildeo de todos os ENUMS no

formato JSON Funccedilatildeo para uso excluivo do webservice

listEnumsXml Menu lateral direito do webservice Opccedilatildeo de visualizaccedilatildeo da

informaccedilatildeo relativa agraves opccedilotildees ENUMS possiveis no

webservice

downloadTabEnumsView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa agraves opccedilotildees ENUMS possiveis no

webservice Eacute criado um ficheiro com extenccedilatildeo XML com a

informaccedilatildeo visualizada

listAllDataDetailsXml Menu lateral direito do webservice Opccedilatildeo de visualizaccedilatildeo da

informaccedilatildeo relativa ao Utilizador em formato XML

5522 Template

Como jaacute referido o desenhoconstruccedilatildeo dos Templates fica a cargo do Arquitecto do

MOE que desenha esses mesmos Templates mediante pedido especifico de um

determinado utilizador tendo em vista um grupo de utilizadores infra-estrutura

disponibilizada ideias preacute-definidas resposta a uma ou mais situaccedilotildees especiacuteficas

etc

Nos detalhes gerais do Template obtemos informaccedilotildees como o nome do

Template a data de criaccedilatildeo e modificaccedilatildeo versatildeo custo geral se eacute ou natildeo

customizaacutevel e o numero de ServerGroups associados assim como discos e serviccedilos

que jaacute foram criados tendo por base este template

Todos os detalhes do Template ficam disponiacuteveis ao utilizador 1) Grupo de

servidores com informaccedilotildees como nome quantidade miacutenima de servidores e que seraacute

a base do serviccedilo criado e quantidade maacutexima de servidores sinal que o serviccedilo

poderaacute crescer em termos de quantidade de servidores Tipo de cluster e o nuacutemero de

servidores loacutegicos existentes no grupo 2) Servidores onde o utilizador obteacutem

informaccedilotildees como nome hostname tipo de virtualizaccedilatildeo memoacuteria usada e

quantidade maacutexima de memoacuteria processadores usados e quantidade maacutexima de

processadores se eacute ou natildeo virtual e se estaacute ou natildeo em cloud 3) Custos em detalhes

ficam disponiacuteveis ao utilizador Informaccedilotildees sobre custo total custo de base por cada

servidor custo por processador e memoacuteria 3) Os discos tambeacutem apresentam

informaccedilatildeo como nome tipo de storage tamanho raid level se eacute ou natildeo bootable

shareable e custo do disco 4) Software preacute-instalado ou instalado posteriormente pelo

utilizador Informaccedilotildees como nome tipo OS e virtualizaccedilatildeo estatildeo disponiacuteveis 5)

Interfaces com informaccedilotildees como nome da interface se eacute ou natildeo primaacuteria

45

redundacircncia subnet publica shareable tipo de IP endereccedilo DHCP activo ou natildeo e

custo final

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa a Templates

Figura 32 - Execuccedilatildeo tab ldquoTemplaterdquo

Export All Templates

Acccedilatildeo disponiacutevel apenas ao administrador permite o download em

ficheiro XML dos detalhes de todos os Templates para que o administrador possa

consultar essa informaccedilatildeo em modo offline se assim o entender Detalhes que

ficam disponiacuteveis para visualizaccedilatildeo no clique do iacutecon Template no menu lateral

esquerdo

O ficheiro XML pode depois ser visualizado mesmo no browser ou

qualquer programa que suporte essa visualizaccedilatildeo como eacute o caso do Notepad++

Export Template

Acccedilatildeo disponiacutevel apenas ao administrador permite o download em

ficheiro XML dos detalhes do Template em visualizaccedilatildeo igualmente como a

acccedilatildeo ldquoExport All Templatesrdquo o administrador poderaacute consultar mais tarde em

modo offline se assim o entender Detalhes que ficam disponiacuteveis para

visualizaccedilatildeo no clique do icon do nome do Template respectivo no menu lateral

esquerdo

Import Template

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel

adicionar mais Templates ao Cataacutelogo de Serviccedilos ficando assim disponiacutevel ao

utilizador mais opccedilotildees com novas configuraccedilotildees A leitura eacute feita directamente de

um ficheiro XML natildeo eacute admissiacutevel outro tipo de formato

Delete Template

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel

remover um Templates do Cataacutelogo de Serviccedilos Como todos os Serviccedilos tem por

base um Template a remoccedilatildeo de um Template implica a remoccedilatildeo de todos os

46

Serviccedilos que tem como base esse Template Tal situaccedilatildeo eacute salvaguardada

obrigando o administrador a clicar em OK numa InfoWindow de aviso

XML View

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel a

visualizaccedilatildeo de todos os detalhes do Templates directamente numa InfoWindow

dentro do webservice A informaccedilatildeo em XML torna-se vantajosa ao administrador

para a visualizaccedilatildeo de detalhes mais pormenorizados e organizaccedilatildeo de toda a

infra-estrutura

Export All Services

Acccedilatildeo que agrave semelhanccedila do ldquoExport All Templatesrdquo permite o download

em ficheiro XML dos detalhes de todos os Serviccedilos associados ao Template em

visualizaccedilatildeo e a um determinado utilizador para que possa consultar em modo

offline se assim o entender Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no

clique do iacutecon Service no menu lateral esquerdo

O ficheiro XML pode depois ser visualizado no browser ou qualquer

programa que suporte essa visualizaccedilatildeo como eacute o caso do Notepad++

Create Service

Finalmente a acccedilatildeoobjectivo de todo o webservice a criaccedilatildeo e

disponibilizaccedilatildeo de Serviccedilos Como jaacute foi referido um Serviccedilo tem como base um

Template por isso na visualizaccedilatildeo dos detalhes do Template esta opccedilatildeo estaacute

disponiacutevel Aquando da criaccedilatildeo de um Serviccedilo este teraacute como base o Template

em visualizaccedilatildeo

Existem campos de preenchimento obrigatoacuterios como nome do serviccedilo

hostname tempo atribuiacutedo ao serviccedilo (1 mecircs por defeito) e email do utilizador

As opccedilotildees ldquoNotesrdquo e ldquoBilling coderdquo satildeo opcionais

All Requests

Todas os pedidos realizados no webservice por um determinado utilizador

ficam disponiacuteveis para visualizaccedilatildeo do seu estado e inclusive desencadear acccedilotildees

nesses mesmos pedidos como cancelamento (percentagem inferior a 100) mediante

decisatildeo do utilizador

A salientar que existem pedidos que carecem da aprovaccedilatildeo do administrador

por isso o pedido poderaacute ficar parado numa determinada percentagem () a espera

dessa aprovaccedilatildeo Se o pedido natildeo necessitar de aprovaccedilatildeo continuaraacute a sua execuccedilatildeo

ateacute estar completo (100) e automaticamente seraacute adicionado ao menu lateral

esquerdo do utilizador

Template Requests

Todas os pedidos associados a um determinado Template por um determinado

utilizador ficam igualmente disponiacuteveis para visualizaccedilatildeo do seu estado

47

Tabela 2 - Funccedilotildees associadas ao Template

Funccedilatildeo Descriccedilatildeo

listTemplates Funccedilatildeo que obtem uma listagem da informaccedilatildeo relativa

aos Templates do Cataacutelogo de Serviccedilos

importTemplate Funccedilatildeo que permite o Upload da informaccedilatildeo relativa a

um Template em formato XML Operaccedilatildeo executada

apenas pelo Administrador ou Arquitecto de toda a

infra-estrutura de orquestraccedilatildeo

exportTemplate Funccedilatildeo que obteacutem toda a informaccedilatildeo relativa a um

Template e permite o download dessa informaccedilatildeo em

formato XML Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura de

orquestraccedilatildeo

exportTemplateList Funccedilatildeo de complemento a toda a informaccedilatildeo dos

Templates do Cataacutelogo de Serviccedilo Uso exclusivo do

webservice

deleteTemplate Funccedilatildeo que permite a remoccedilatildeo de um Template do

Cataacutelogo de Serviccedilos Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura de

orquestraccedilatildeo

listServicesByTemplateName Funccedilatildeo que obteacutem todos os Serviccedilos associados a um

determinado Template Para visualizaccedilatildeo de informaccedilatildeo

e opccedilatildeo de download

5523 Serviccedilo

O Serviccedilo tem sempre como base as definiccedilotildees de um Template e nesse sentido tudo

que o utilizador poderaacute fazer nesse Serviccedilo satildeo acccedilotildees que estatildeo disponiacuteveis nesses

Template como limites miacutenimos e maacuteximos de servidores processadores memoacuteria

etc Outras opccedilotildees como discos e interfaces ficam disponiacuteveis ao utilizador que

poderaacute adicionar se assim o entender com os custos inerentes a este upgrade de

Serviccedilo

Um Serviccedilo eacute composto por dados base relativos a informaccedilotildees gerais desse

Serviccedilo listas de acccedilotildees associadas e uma lista de grupos de servidores sendo que

cada grupo poderaacute ser diferente entre si com recursos funcionalidades e softwares

completamente diacutespares

Assim em termos de informaccedilatildeo disponiacutevel associada ao serviccedilo o utilizador

poderaacute obter o nome do serviccedilo id (apenas acessiacutevel ao administrador) notas status

48

o Template base que lhe deu origem data de criaccedilatildeo e ultima data de modificaccedilatildeo o

custo geral do serviccedilo custo fixo o periacuteodo de uso do serviccedilo (por defeito 1 mecircs)

nome do utilizador que criou o serviccedilo organizaccedilatildeo e tamanho das listas associadas

nomeadamente acccedilotildees e grupo de servidores

Os Serviccedilos assim como os Templates ficam disponiacuteveis em listagem no menu

lateral esquerdo num formato em aacutervore intuitivo e raacutepido de selecionar Cada

Serviccedilo fica na cadeia hieraacuterquica do Template que lhe deu origem Associado a cada

Serviccedilo tambeacutem poderemos visualizar nesses mesmo menu todos os recursos

associados a esse Serviccedilo como listagem dos grupos de servidores em cada grupo os

seu servidores e em cada servidor os recursos como discos software e interfaces

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Serviccedilo

Figura 33 - Execuccedilatildeo tab ldquoServicerdquo

Export All Services

Acccedilatildeo que permite o download em ficheiro XML dos detalhes de todos os

Serviccedilos do utilizador permitindo a posterior consulta em modo offline Detalhes

que ficam disponiacuteveis para visualizaccedilatildeo no clique do iacutecons Service no menu

lateral esquerdo

Export Service

Permite o download em ficheiro XML dos detalhes do Serviccedilo em

visualizaccedilatildeo igualmente como a acccedilatildeo ldquoExport All Servicesrdquo o utilizador poderaacute

consultar mais tarde em modo offline os detalhes do serviccedilo Detalhes que ficam

49

disponiacuteveis para visualizaccedilatildeo no clique do icon do nome do Serviccedilo respectivo no

menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Serviccedilo

directamente numa InfoWindow dentro do webservice A informaccedilatildeo em XML

torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Create Service

Mesma acccedilatildeo existente nos Templates Directamente da visualizaccedilatildeo de

um Serviccedilo eacute possiacutevel criar um outro Serviccedilo tendo igualmente por base o

mesmo Template O Serviccedilo criado seraacute igual ao Serviccedilo base em visualizaccedilatildeo

Delete Service

Permite a remoccedilatildeo do Serviccedilo em visualizaccedilatildeo Apoacutes esta acccedilatildeo deixam

de ser cobrado qualquer custo associado ao Serviccedilo que foi removido

Power ON Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo sejam ligados e fiquem disponiacuteveis para utilizaccedilatildeo Esta

acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==OFFrdquo

Power OFF Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo sejam desligados deixando de estar disponiacuteveis para

utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==UPrdquo

Power Cycle Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo faccedilam um reboot e continuem disponiacuteveis para utilizaccedilatildeo

Esta acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==UPrdquo

Activate Service

Permite que todos os Servidores de todos os ServerGroups existentes no

Serviccedilo sejam activados No final desta operaccedilatildeo o Serviccedilo fica em modo

ldquoserviceStatus==UPrdquo e todos os servidores ficam automaticamente disponiacuteveis

para utilizaccedilatildeo

50

Deactivate Service

Permite que todos os Servidores de todos os ServerGroups existentes no

Serviccedilo sejam desactivados No final desta operaccedilatildeo o Serviccedilo fica em modo

ldquoserviceStatus==DEACTIVATEDrdquo

Service Actions

Os ldquotriggered actionsrdquo associadas a cada Template satildeo parte integrante do

Serviccedilo criado Tambeacutem esta informaccedilatildeo estaacute disponiacutevel em forma de listagem

Estas acccedilotildees automaticamente desencadeadas pelo webservice poderatildeo pertencer

ao Serviccedilo propriamente dito ou entatildeo existirem apenas num serverGroup ou ateacute

mesmo apenas num Server

List Remote Session

No final da criaccedilatildeo de um Serviccedilo o objectivo eacute a ligaccedilatildeo as VMs

associadas a esse mesmo Serviccedilo Nesse intuito directamente da tab Serviccedilo

atraveacutes desta acccedilatildeo ficam disponiacuteveis numa lista todas as VMs com os acessos

remotos permissiacuteveis

RDP (Remote Desktop Protocol)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet

VMRC (VMware Remote Console)

Todos os pedidos associados a um determinado Serviccedilo por um

determinado utilizador ficam igualmente disponiacuteveis para visualizaccedilatildeo do seu

estado Quando a listagem de pedidos tem grandes dimensotildees ou se a visualizaccedilatildeo

do pedido diz respeito a este Serviccedilo fazer apenas a listagem dos pedidos pelo

Serviccedilo em causa torna-se mais simples uacutetil e directa

Tabela 3 - Funccedilotildees associadas ao Serviccedilo

Funccedilatildeo Descriccedilatildeo

listServices Detalhes dos Serviccedilos associados a um determinado Utilizador

Para visualizaccedilatildeo de informaccedilatildeo e opccedilatildeo de download O

Administrador obtem todos os Serviccedilos existentes no

webservice

getService Informaccedilatildeo associada a um determinado Serviccedilo Para

visualizaccedilatildeo de informaccedilatildeo e opccedilatildeo de download

createService Criaccedilatildeo de um Serviccedilo

deleteService Remoccedilatildeo de um Serviccedilo associado a um Template

deactivateService Desactivaccedilatildeo de um Serviccedilo

51

activateService Activaccedilatildeo de um Serviccedilo

changeServiceLease Ediccedilatildeo do Lease period asociado a um Serviccedilo

powerOnService Ligar um Serviccedilo

powerOffService Desligar um Serviccedilo

powerCycleService Ligar um Serviccedilo apoacutes reboot

getRemoteSessionsList Listagem de todos os servidores e seus IPs associados para

posterior listagem das sessotildees remotas

5524 Grupo de Servidores

Cada Serviccedilo tem os seus recursos associados nomeadamente uma lista de Grupo de

Servidores onde o utilizador poderaacute obter informaccedilotildees como o nome do Serviccedilo

nome do Grupo de Servidores o Status nuacutemero miacutenimo e maacuteximo de Servidores

uma progressbar com indicaccedilatildeo do nuacutemero de servidores disponiacuteveis no momento se

tem uma sequencia Boot datas de criaccedilatildeo e ultima modificaccedilatildeo e finalmente uma

lista de Servidores

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Grupo de Servidores

Figura 34 - Execuccedilatildeo tab ldquoServerGroupsrdquo

52

Export Server Group

Permite o download em ficheiro XML dos detalhes do Grupo de

Servidores em visualizaccedilatildeo o utilizador poderaacute consultar esses detalhes mais

tarde em modo offline Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no clique

do icon do nome do Grupo de Servidores respectivo no menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Grupo de

Servidores directamente numa InfoWindow dentro do webservice A informaccedilatildeo

em XML torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Add Servers (UP)

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores aumentando o

nuacutemero de Servidores dentro desse Grupo de Servidores Esta opccedilatildeo soacute fica

visiacutevel e acessiacutevel ao utilizador se o limite maacuteximo do nuacutemero de Servidores for

superior ao actualmente existente em utilizaccedilatildeo Limite definido nas

configuraccedilotildees do Serviccedilo que vieram por arrasto das configuraccedilotildees do Template

aquando da criaccedilatildeo desse Serviccedilo Estas alteraccedilotildees implicam o aumento do custo

total do Serviccedilo

Remove Servers (DOWN)

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores diminuindo o

nuacutemero de Servidores dentro desse Grupo de Servidores eacute disponibilizada a lista

de Servidores existentes e o utilizador seleciona um ou mais para remoccedilatildeo Esta

opccedilatildeo soacute fica visiacutevel e acessiacutevel ao utilizador se o limite miacutenimo do nuacutemero de

Servidores for inferior ao actualmente existente em utilizaccedilatildeo Limite definido nas

configuraccedilotildees do Serviccedilo que vieram por arrasto das configuraccedilotildees do Template

aquando da criaccedilatildeo desse Serviccedilo Estas alteraccedilotildees implicam a diminuiccedilatildeo do

custo total do Serviccedilo

Edit ServerGroup

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores relativamente a

memoacuteria e processadores A ediccedilatildeo vai ser efectuada em todos os Servidores do

Grupo de Servidores Como nos limites maacuteximos e miacutenimos de Servidores

tambeacutem os limites de memoacuteria e processadores vieram por arrasto das

configuraccedilotildees do Template aquando da criaccedilatildeo do Serviccedilo Estas alteraccedilotildees

implicam a diminuiccedilatildeo ou aumento do custo total do Serviccedilo

Power ON ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo sejam ligados e fiquem disponiacuteveis para utilizaccedilatildeo Esta acccedilatildeo eacute

dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==OFFrdquo

53

Power OFF ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo sejam desligados deixando de estar disponiacuteveis para utilizaccedilatildeo Esta

acccedilatildeo eacute dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==UPrdquo

Power Cycle ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo faccedilam um reboot e continuem disponiacuteveis para utilizaccedilatildeo Esta acccedilatildeo

eacute dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==UPrdquo

Activate ServerGroup

Permite que todos os Servidores do ServerGroups em visualizaccedilatildeo sejam

activados No final desta operaccedilatildeo o Grupo de Servidores fica em modo

ldquoserverGroupStatus==UPrdquo e todos os servidores ficam automaticamente

disponiacuteveis para utilizaccedilatildeo

Deactivate ServerGroup

Permite que todos os Servidores do ServerGroups em visualizaccedilatildeo sejam

desactivados No final desta operaccedilatildeo o Grupo de Servidores fica em modo

ldquoserverGroupStatus==DEACTIVATEDrdquo

Actions ServerGroup

Como no Serviccedilo os ldquotriggered actionsrdquo associadas a cada Template satildeo

parte integrante do Serviccedilo criado inclusive no Grupo de Servidores Se o Grupo

de Servidores em visualizaccedilatildeo tiver ldquotriggered actionsrdquo esta acccedilotildees estaraacute visiacutevel

ao utilizador para listagem

List Snapshots

Acccedilatildeo que permite listar todos os Snapshots existentes no Grupo de

Servidores

Nessa listagem eacute possiacutevel executar acccedilotildees como ldquoRevert Snapshotrdquo que

reverte um determinado Snapshot para o servidor especiacutefico ou ldquoDelete Snapshotrdquo

que permite a remoccedilatildeo de um Snapshot do sistema

Create Snapshot

Acccedilatildeo que permite a criaccedilatildeo de Snapshots no Grupo de Servidores

Existem campos obrigatoacuterios como o nome do Snapshot e a selecccedilatildeo de

um ou mais servidores de uma lista de servidores pertencentes ao Grupo de

Servidores Opccedilotildees como ldquoInclude Memory Staterdquo ou ldquoQuiesce filesystemrdquo estatildeo

tambeacutem disponiacuteveis para selecccedilatildeo aquando da criaccedilatildeo do Snapshot

54

Add Stereotype Disks

Acccedilatildeo que permite adicionar discos a um Grupo de Servidores O disco

adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores Satildeo

considerados ldquoStereotype Disksrdquo todos os discos existentes no grupo excepto

discos de boot

Qualquer acccedilatildeo de adiccedilatildeo de discos a um Grupo de Servidores soacute eacute

possiacutevel se natildeo existirem Snapshots relativos a qualquer Servidor desse Grupo de

Servidores

Esta acccedilatildeo lista todos os ldquoStereotype Disksrdquo jaacute existentes O utilizador

seleciona o que deseja clonar (disco base) e eacute adicionado um novo disco ao Grupo

de Servidores Esta acccedilatildeo carece da aprovaccedilatildeo do administrador

Add Virtual Disks

Acccedilatildeo que permite adicionar discos virtuais a um Grupo de Servidores O

disco adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores

Existem campos de preenchimento obrigatoacuterio como o nome do disco e

tamanho O webservice fornece um nome uacutenico e 10Gb de tamanho por defeito o

utilizador pode alterar estes campos Esta acccedilatildeo carece da aprovaccedilatildeo do

administrador Aleacutem de aprovar ou desaprovar este pedido pode inclusive definir

um novo custo

Add Physical Disks

Acccedilatildeo que permite adicionar discos fiacutesicos a um Grupo de Servidores O

disco adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores

Igualmente como a adiccedilatildeo de discos virtuais existem campos de

preenchimento obrigatoacuterio como o nome do disco tamanho e nesta opccedilatildeo o tipo

de RAID Acccedilatildeo que carece igualmente da aprovaccedilatildeo do administrador

Tabela 4 - Funccedilotildees associadas ao Grupo de Servidores

Funccedilatildeo Descriccedilatildeo

getLogicalServerGroup Obteacutem os detalhes associados a um Grupo de

Servidores Loacutegico em XML para visualizaccedilatildeo na

infowindow e opccedilatildeo de download

addServersToLogicalServerGroup Adiciona um Servidor a um Grupo de Servidores

Opccedilatildeo permissvel apenas se o nuacutemero de servidores

activos (ldquoactiveServerCountrdquo) for menor que o

nuacutemero maacuteximo de servidores

(ldquomaxServerCountrdquo)

55

removeServersFromLogicalServerGr

oup

Remove um Servidor de um Grupo de Servidores

Loacutegicos Opccedilatildeo permissvel apenas se o nuacutemero

miacutenimo de servidores (variaacutevel ldquominServerCountrdquo)

for menor que o nuacutemero de servidores activos

(variaacutevel ldquoactiveServerCountrdquo)

editLogicalServersServersGroup Permite a ediccedilatildeo de todos os Servidores

pertencentes a um Grupo de Servidores Loacutegicos

powerOnLogicalServersGroup Liga todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

powerOffLogicalServersGroup Desliga todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

powerCycleLogicalServersGroup Faz o reboot de todos os Servidores que pertencem

a um mesmo Grupo de Servidores Loacutegicos

activateLogicalServerGroup Activa todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

deactivateLogicalServerGroup Desactiva todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

5525 Servidores

Um Grupo de Servidores eacute constituiacutedo por uma lista de Servidores Cada grupo como

jaacute foi referido pode ser completamente diacutespar dos demais dentro de um mesmo

Serviccedilo O mesmo jaacute natildeo acontece nos Servidores dentro de um mesmo Grupo de

Servidores As configuraccedilotildees dos Servidores dentro de um mesmo Grupo de

Servidores tem todos as mesmas caracteriacutesticas podendo variar apenas no numero de

discos memoacuteria e processamento

O utilizador poderaacute obter informaccedilotildees como nome do Servidor status se eacute ou

natildeo virtual se estaacute em cloud se eacute o servidor base memoacuteria e processamento para

futuros upgrades com progressbars para facilmente visualizar o estado actual custo

datas de criaccedilatildeo e modificaccedilatildeo localizaccedilatildeo do ficheiro da VM (acessiacutevel apenas ao

administrador) e as listas associadas de discos software e interfaces

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa aos Servidores

56

Figura 35 - Execuccedilatildeo tab ldquoServerrdquo

Export Server

Permite o download em ficheiro XML dos detalhes do Servidor em

visualizaccedilatildeo o utilizador poderaacute consultar mais tarde em modo offline os detalhes

desse Servidor Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no clique do

icon do nome do Servidor respectivo no menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Servidor

directamente numa InfoWindow dentro do webservice A informaccedilatildeo em XML

torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Remove Server

A diferenccedila desta acccedilatildeo no Servidor para a mesma acccedilatildeo no Grupo de

Servidores eacute o facto da remoccedilatildeo ser do Servidor em visualizaccedilatildeo Para remover

mais do que um Servidor essa operaccedilatildeo teraacute obrigatoriamente que ser no Grupo

de Servidores

57

Edit Server

Como na remoccedilatildeo de servidores a diferenccedila desta acccedilatildeo para a mesma

acccedilatildeo no Grupo de Servidores eacute que a ediccedilatildeo de Servidores na tab Servidor apenas

afectaraacute o Servidor em visualizaccedilatildeo e natildeo os restantes Servidores do Grupo de

Servidores

Power ON Server

Acccedilatildeo que permite a ligaccedilatildeo do Servidor em visualizaccedilatildeo e que este fique

disponiacutevel para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica

activa quando ldquoserverStatus==OFFrdquo

Power OFF Server

Acccedilatildeo que permite que um Servidor seja desligado e que este fique

indisponiacutevel para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica

activa quando ldquoserverStatus==UPrdquo

Power Cycle Server

Acccedilatildeo que permite fazer o reboot a um Servidor e este continue disponiacutevel

para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica activa quando

ldquoserverStatus==UPrdquo

Activate Server

Permite a activaccedilatildeo do Servidor em visualizaccedilatildeo No final desta operaccedilatildeo

o Servidor fica em modo ldquoserverStatus==UPrdquo e ficam automaticamente disponiacutevel

para utilizaccedilatildeo

Deactivate Server

Permite a desactivaccedilatildeo do Servidor em visualizaccedilatildeo No final desta

operaccedilatildeo o Servidor fica em modo ldquoserverStatus==DEACTIVATEDrdquo

Actions Server

Como no Grupo de Servidores os ldquotriggered actionsrdquo associadas a cada

Servidor satildeo parte integrante do Serviccedilo criado Se o Servidor em visualizaccedilatildeo

tiver ldquotriggered actionsrdquo esta acccedilatildeo estaraacute visiacutevel ao utilizador para listagem

List Snapshots

Acccedilatildeo que permite listar todos os Snapshots associados ao Servidor em

visualizaccedilatildeo Todas as acccedilotildees nos Snapshots satildeo relativas ao Servidor em questatildeo

Create Snapshot

Acccedilatildeo que permite a criaccedilatildeo de Snapshots no Servidor

Existem campos obrigatoacuterios como o nome do Snapshot O nome do

Servidor eacute preenchido automaticamente com o nome do Servidor que estaacute a ser

visualizado Opccedilotildees como ldquoInclude Memory Staterdquo ou ldquoQuiesce filesystemrdquo

estatildeo tambeacutem disponiacuteveis para selecccedilatildeo aquando da criaccedilatildeo do Snapshot

58

List ServerPool

Acccedilatildeo que permite a listagem de todas as pools de Servidores existentes no

webservice Na imagem seguinte podemos visualizar quatro pools de Servidores

que foram criadas pelo administrador

ldquoCreate Server Poolrdquo eacute uma acccedilatildeo atribuiacutedas apenas ao administrador com

campos obrigatoacuterios como nome da Pool

ldquoDelete Server Poolrdquo eacute outra acccedilatildeo atribuiacutedas apenas ao administrador

permitindo a remoccedilatildeo de uma Pool de Servidores do sistema

Esta operaccedilatildeo natildeo remove Servidores nem Serviccedilos mas remover todas as

associaccedilotildees jaacute existentes entre Servidores e utilizadores Como acccedilatildeo importante

o webservice evidencia isso mesmo com uma InfoWindow de aviso ao

administrador

VM Host

Acccedilatildeo que permite a listagem de todos os hosts fiacutesicos associados a uma

determinada Pool de Servidores

Nesta operaccedilatildeo obtecircm-se detalhes relativos ao host como eacute o caso do

nome id endereccedilo IP domiacutenio DNS tipo de virtualizaccedilatildeo modelo cluster

memoacuteria total e consumida dados dos processadores e ainda dados relativos ao

armazenamento (DataStores) e rede (VirtualSwitch)

Remote Session

Acccedilatildeo que permite a listagem de todas as Sessotildees Remotas atribuiacutedas ao

Servidor em visualizaccedilatildeo

Esta acccedilatildeo eacute dependente do status do Servidor fica activa quando

ldquoserverStatus==UPrdquo

A imagem seguinte evidencia as duas ligaccedilotildees existentes para a VM do

Servidor especiacutefico Duas ligaccedilotildees relativas agraves duas Interfaces disponiacuteveis no

Servidor uma na rede ldquoHP Networkrdquo com o endereccedilamento IP 16231875 e

outra na rede local da infra-estrutura rede ldquoCloudSystemrdquo com o endereccedilamento

IP 19216810203

As opccedilotildees de Sessotildees Remotas possiacuteveis satildeo as que jaacute foram descritas na

listagem das ldquoRemote Sessionsrdquo do Serviccedilo Neste caso direccionadas apenas ao

um uacutenico Servidor

Tabela 5 - Funccedilotildees associadas aos Servidores

Funccedilatildeo Descriccedilatildeo

getLogicalServer Obteacutem os detalhes de um Servidor Logico em formato XML

para visualizaccedilatildeo na infowindow e opccedilatildeo de download

59

findLogicalServer Obteacutem os Detalhes de um Servidor Loacutegico especiacutefico

addServer Addiciona um Servidor a um Grupo de Servidores Loacutegicos

se o nuacutemero de servidores activos (variaacutevel

ldquoactiveServerCountrdquo) for menor que o nuacutemero maacuteximo de

servidores (variaacutevel ldquomaxServerCountrdquo)

removeServer Remove um Servidor de um Grupo de Servidores Loacutegicos se

o nuacutemero miacutenimo de servidores (variaacutevel

ldquominServerCountrdquo) for menor que o nuacutemero de servidores

activos (variaacutevel ldquoactiveServerCountrdquo)

editLogicalServer Permite a ediccedilatildeo de memoacuteria e processamento de um

determinado Servidor Loacutegico

powerOnLogicalServer Liga um Servidor Loacutegico especiacutefico

powerOffLogicalServer Desliga um Servidor Loacutegico especiacutefico

powerCycleLogicalServer Reboot de um Servidor Loacutegico especiacutefico

activateLogicalServer Activaccedilatildeo de um Servidor Loacutegico especiacutefico

deactivateLogicalServer Desactivaccedilatildeo de um Servidor Loacutegico especiacutefico

getRdpFile Obteacutem o ficheiro RDP para download e posterior acesso

remoto

getLogicalServersAndIPs Obteacutem uma lista de todos os IPs das Interfaces de um

determinado Servidor Loacutegico

getVmHost Obteacutem os detalhes do Host associado a um Servidor Loacutegico

5526 Disco

Cada servidor tem necessariamente um ou mais discos associados estes podem ser

rotulados de ldquoStereotyperdquo ldquoVirtualrdquo ou ldquoPhysicalrdquo Um disco ldquoStereotyperdquo

corresponde a um disco-base ie um disco que existe no template (do servidor)

excepto disco de boot os restantes como o proacuteprio nome indica satildeo discos virtuais

ou fiacutesicos

Nesta tab o utilizador pode obter informaccedilatildeo do nome do disco tamanho tipo

de RAID tipo de Storage se eacute ou natildeo Bootable Shareable tipo de Raw Mapping

(VIRTUAL PHYSICAL NONE e OTHER) custo associado ficheiro do disco

(virtual - acessiacutevel apenas ao administrador) e data de criaccedilatildeo e modificaccedilatildeo

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa aos discos

60

Figura 36 - Execuccedilatildeo tab ldquoDisksrdquo

Add Stereotype Disks

Acccedilatildeo jaacute enunciada no Grupo de Servidores Como estamos a visualizar

um disco e as suas configuraccedilotildees esta acccedilatildeo estaraacute apenas disponiacutevel se o disco

em visualizaccedilatildeo natildeo for bootable Como jaacute referido apenas os discos que natildeo

sejam bootable satildeo considerados ldquoStereotype Disksrdquo e poderatildeo ser criados novos

discos com base no disco em questatildeo

Como no Grupo de Servidores tambeacutem nos discos esta opccedilatildeo soacute seraacute

possiacutevel se natildeo existirem Snapshots relativos a qualquer Servidor desse Grupo de

Servidores Esta acccedilatildeo carece da aprovaccedilatildeo do administrador

Tabela 6 - Funccedilotildees associadas aos Discos

Funccedilatildeo Descriccedilatildeo

addDiskToLogicalServerGroup Adiciona um Stereotype Disk a um Grupo de

Servidores Loacutegicos Operaccedilatildeo que carece da aprovaccedilatildeo

do Administrador

addNewDiskToLogicalServerGro

up

Adiciona um disco virtual ou fiacutesico a um Grupo de

Servidores Loacutegicos Operaccedilatildeo que carece da aprovaccedilatildeo

do Administrador O tamanho do disco eacute

automaticamente determinado pelo tipo do Grupo de

Servidor Loacutegico

61

5527 Software

Recursos como Software tambeacutem fazem parte dos recursos do Servidor Mediante a

instalaccedilatildeo preacutevia do ldquoServer Automationrdquo no MOE aquando da criaccedilatildeo do Template

poderatildeo ser associados nos recursos de cada Servidor uma lista de software como lista

de packages com SO software antiviacuterus base de dados etc previamente instalados

em VM e posteriormente transformados em Tamplate

Cada Servidor pertencente a um mesmo Grupo de Servidores teraacute uma mesma

lista de software base associado

Informaccedilotildees relativas ao software tambeacutem estatildeo disponiacutevel ao utilizador como

nome tipo tipo de OS tipo de Deployment Service ficheiro de configuraccedilatildeo do OS

(acessiacutevel apenas ao administrador) tipo de virtualizaccedilatildeo localizaccedilatildeo do ficheiro

relativo ao software (acessiacutevel apenas ao administrador) e data de criaccedilatildeo e

modificaccedilatildeo

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Software

Figura 37 - Execuccedilatildeo tab ldquoSoftwarerdquo

List Softwares

Acccedilatildeo disponiacutevel apenas ao administrador permite a listagem de todo o

Software disponiacutevel no sistema O software pertencente ao Grupo de

ServidoresServidor estaacute disponiacutevel directamente no menu lateral esquerdo

Mediante a instalaccedilatildeo preacutevia do ldquoServer Automationrdquo no MOE aquando

da criaccedilatildeo do Template poderaacute ser associado nos recursos de cada Grupo de

ServidoresServidor uma lista de software como lista de packages com SO

software antiviacuterus base de dados etc

Software Detals

Acccedilatildeo disponiacutevel apenas ao administrador permite a visualizaccedilatildeo de todos

os detalhes do Software

62

Tabela 7 - Funccedilotildees associadas ao Software

Funccedilatildeo Descriccedilatildeo

listSoftware Obteacutem a lista de todo o Software disponiacutevel no

webservice Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura

de orquestraccedilatildeo

getSoftware Obteacutem os detalhes de um Software especiacutefico

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

5528 Interface

As Interfaces (NICs) fazem igualmente parte das configuraccedilotildees base de cada Servidor

podendo no entanto existir redundacircncia ou natildeo

Informaccedilotildees das Interfaces disponiacutevel na tab respectiva como nome se eacute a

interface primaacuteria data de criaccedilatildeo modificaccedilatildeo e informaccedilotildees sobre a rede como

nome se eacute puacuteblica partilhada tipo e endereccedilo IP com informaccedilotildees como o endereccedilo

IP propriamente dito tipo de atribuiccedilatildeo custo e uma lista de NatEntrys (Network

Address Translation)

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa as Interfaces

Figura 38 - Execuccedilatildeo tab ldquoInterfacerdquo

List Subnets

Acccedilatildeo disponiacutevel apenas ao administrador permite a listagem de todas as

redes existentes no sistema com informaccedilotildees como nome da rede endereccedilo

mascara source tipo de IP se eacute uma rede puacuteblica e os endereccedilamentos DHCP e

estaacutecticos nuacutemero de IPs usados e em uso etc

63

Add IPAddress

Acccedilatildeo que permite atribuir automaticamente (pelo sistema) um IP

flutuante a uma Interface Uma Interface associada a um Servidor dentro de um

determinado Serviccedilo

Com esta acccedilatildeo o utilizador solicita um IP flutuante de uma pool de IPs

que o administrador tenha criado Nesse sentido o utilizador apenas solicita um IP

flutuante para uma Interface (NIC0) de um determinado Servidor pertencente a

um Serviccedilo Como o utilizador estaacute a visualizar a Interface os campos satildeo

automaticamente preenchidos Operaccedilatildeo apenas permitida em servidores loacutegicos

em cloud

Remove IPAddress

Acccedilatildeo que permite remover um IP flutuante Neste caso o utilizador tem

que fornecer o endereccedilo IP flutuante previamente adquirido

Move IPAddress

Acccedilatildeo que permite mover um determinado IP flutuante entre instacircncias

Na eventualidade do utilizador jaacute for detentor de um IP flutuante pode move-lo

atribuindo-o agrave Interface em visualizaccedilatildeo Operaccedilatildeo apenas permitida em

servidores loacutegicos em cloud

VM Access

Acccedilotildees de acesso remoto directamente na Interface

Esta acccedilotildees satildeo dependente do status do Servidor ficam activas quando

ldquoserverStatus==UPrdquo

Como estamos directamente a visualizar uma Interface o acesso remoto eacute

feito atraveacutes dessa Interface desse IP conhecido

As opccedilotildees de Sessotildees Remotas possiacuteveis satildeo as que jaacute foram descritas na

listagem das ldquoRemote Sessionsrdquo do Serviccedilo

RDP (Remote Desktop Protocol)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet

VMRC (VMware Remote Console)

Tabela 8 - Funccedilotildees associadas agraves Interfaces

Funccedilatildeo Descriccedilatildeo

getVMID Obteacutem o ID de uma VM atarveacutes do endereccedilo IP da

Interface

64

executeRDP Execuccedilatildeo directa do comando RDP mstscexe

vIPAddress console

addFloatingIPAddress Adiciona automaticamente um endereccedilo IP flutuante a

uma determinada Interface Operaccedilotildees de IP flutuante natildeo

satildeo suportadas para Servidores Loacutegicos que natildeo estejam

em cloud

removeFloatingIPAddress Remove um determinado endereccedilo IP flutuante de um

Servidor Loacutegico Operaccedilotildees de IP flutuante natildeo satildeo

suportadas para Servidores Loacutegicos que natildeo estejam em

cloud

moveFloatingIPAddress Associa um determinado endereccedilo IP flutuante jaacute

existente a uma Interface Operaccedilotildees de IP flutuante natildeo

satildeo suportadas para Servidores Loacutegicos que natildeo estejam

em cloud

5529 Redes

As Redes como o Software teratildeo que estar previamente configuradas e

implementadas para posterior uso em Templates e Serviccedilos A listagem de redes

existentes na infra-estrutura estaacute apenas disponiacutevel ao Administrador ou Arquitecto de

toda a infra-estrutura de orquestraccedilatildeo e permite a visalizaccedilatildeo de todas as redes

existentes com informaccedilotildees como o nome da rede gama de endereccedilos IP mascara

tipo de IPV e se eacute um endereccedilamento estaacutectico ou obtido por DHCP

Figura 39 - Listagem das redes existentes

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa agraves Redes

65

Tabela 9 - Funccedilotildees associadas agraves Redes

Funccedilatildeo Descriccedilatildeo

listSubnets Obteacutem uma lista com todas as redes existentes no

webservice

listSubnet Obteacutem os detalhes de uma rede especiacutefica

55210 Snapshots

Os Snapshots satildeo um recurso valioso quando nos deparamos com problemas de

inconsistecircncias desastres seguranccedila etc que natildeo sendo backup permite a

recuperaccedilatildeo do servidor em segundos contrariamente a restauraccedilatildeo a partir de um

backup tradicional recuperaccedilatildeo ou reinstalaccedilatildeo de um SO ou qualquer outra teacutecnica

com o seu exagerado tempo de consolidaccedilatildeo

A listagem de todos os Snapshots estaacute disponiacutevel aquando da visualizaccedilatildeo da

informaccedilatildeo relativa ao Grupo de Servidores onde satildeo visualizados todos os Snapshots

pertencentes ao grupo e no Servidor onde apenas satildeo visualizados os Snapshots desse

Servidor em visualizaccedilatildeo

Uma lista relacionada de Snapshots sucessivos com informaccedilotildees como nomes

do Serviccedilo do Grupo de Servidores e do Servidor assim como nome do Snapshot a

sua relaccedilatildeo parental e se estaacute ou natildeo activo ficam disponiacuteveis ao utilizador

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa aos Snapshots

Figura 40 - Execuccedilatildeo tab ldquoSnapshotrdquo

Tabela 10 - Funccedilotildees associadas aos Snapshots

Funccedilatildeo Descriccedilatildeo

listServerSnapshots Obteacutem a listagem de todos os Snapshots de um Servidor

Loacutegico especiacutefico

listServerGroupSnapshots Obteacutem a listagem de todos os Snapshots de um Grupo de

Servidor Loacutegico

66

snapshotCreate Cria um Snapshot de um Servidor especiacutefico

revertServerSnapshot Reverte um determinado Snapshot para o Servidor

correspondente

deleteServerSnapshot Remove um Snapshot do sistema

55211 Request

A visualizaccedilatildeo do estado actual das acccedilotildees do utilizador eacute considerado um dos pontos

chave desta framework O simples update da ldquoprogressbarrdquo carece de uma perfeita

sincronizaccedilatildeo entre o Webservice e o MOE

O utilizador poderaacute visualizar sempre uma listagem de todos os seus pedidos ou

pormenoriza-los por relaccedilotildees 1) UtilizadorServiccedilos 2) TemplateServiccedilos 3)

Serviccedilo

A listagem de todos os pedidos estaacute disponiacutevel aquando da visualizaccedilatildeo da

informaccedilatildeo relativa a qualquer recurso sendo que a opccedilatildeo 1) eacute geral e sempre

disponiacutevel e as opccedilotildees 2) e 3) satildeo especiacuteficas a recursos em visualizaccedilatildeo Ficam assim

disponiacuteveis informaccedilotildees como tipo data submissatildeo do pedido comeccedilo e fim status

progresso () nome do Serviccedilo ao qual o pedido estaacute associado etc

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo da listagem

dos pedidos do utilizador

Figura 41 - Execuccedilatildeo tab ldquoRequestsrdquo

Opccedilotildees como ldquoAproval Staterdquo e ldquoContinuerdquo de pedidos que carecem da

aprovaccedilatildeo do Administrador ficam apenas acessiacuteveis aos utilizadores com permissotildees

de administraccedilatildeo e a opccedilatildeo de cancelamento acessiacutevel aos utilizadores que solicitaram

esses pedidos

67

Tabela 11 - Funccedilotildees associadas aos Requests

Funccedilatildeo Descriccedilatildeo

listRequests Listagem de todos os pedidos do utilizador

listRequestsTemplateDetails Listagem de todos os pedidos do par utilizadorTemplate

listRequestsServiceDetails Listagem de todos os pedidos do par utilizadorServiccedilo

getRequestInfo Obteacutem detalhes de toda a informaccedilatildeo associada a um

determinado pedido

getPercentComplete Obteacutem a percentagem de um pedido

getRequest Obteacutem os detalhes particulares de um pedido

setRequestApprovalState Aprovaccedilatildeo de um pedido feito por um utilizador e que

esteja no estado PAUSED_FOR_APPROVAL

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

continueRequest Permite a continuaccedilatildeo de um pedido feito por um

utilizador e que esteja no estado IN_PROGRESS

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

cancelRequest Cancelamento de um pedido

55212 Pools de Servidores

Uma pool de servidores eacute um grupo de um ou mais hosts de virtualizaccedilatildeo com a uma

mesma arquitetura com acesso agraves mesmas redes virtuais e fiacutesicas e recursos de

armazenamento As Pools de servidores permitem balanceamento de carga recursos

de alta disponibilidade e partilha de alguns recursos para todos os membros dessa

pool

Informaccedilotildees das Pools disponiacutevel na tab respectiva como nome ID da

organizaccedilatildeo Ids dos Hosts e o grupo de utilizadores associados a cada Pool de

Servidores

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa a uma determinada Pool de Servidores

68

Figura 42 - Execuccedilatildeo tab ldquoServerPoolsrdquo

Tabela 12 - Funccedilotildees associadas agraves Pools de Servidores

Funccedilatildeo Descriccedilatildeo

listServerPools Obteacutem uma listagem de todas as Pools de Servidores para

a criaccedilatildeo de um Serviccedilo

listServerPoolsTab Obteacutem todas as Pools de Servidores existentes no

webservice Informaccedilatildeo disponibilizada na tab

serverPools

listVmHostIds Obteacutem uma lista com todos os Hosts associados a uma

Pool de Servidores

getServerPool Obteacutem os detalhes de uma Pool de Servidores

createServerPool Permite a criaccedilatildeo de uma nova Pool de Servidores

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

deleteServerPool Remove uma Pool de Servidores do systema Operaccedilatildeo

executada apenas pelo Administrador ou Arquitecto de

toda a infra-estrutura de orquestraccedilatildeo

56 Camada de Dados

Numa orientaccedilatildeo a objectos os objectos considerados ldquopersistentesrdquo satildeo todos os

objectos que continuam a existir apoacutes o teacutermino de execuccedilatildeo do programa por norma

guardados numa base de dados relacional ou mesmo em ficheiros em disco Jaacute os

objectos considerados ldquonatildeo persistentesrdquo deixam de existir quando o programa

termina satildeo objectos armazenados em tempo de execuccedilatildeo e satildeo usados apenas

durante esse periacuteodo

561 Dados natildeo persistentes

Os dados natildeo persistentes nesta framework destinam-se exclusivamente ao

utilizador permissotildees de acesso e seguranccedila Internamente o servidor guarda em

tempo de execuccedilatildeo dados relativos ao utilizador como eacute o caso do username

69

(userPrincipal) password (IOClientPasswordHandler) privileacutegios de acesso

(rolePrincipal) grupo de utilizadores (userGroups) e credenciaccedilotildees necessaacuteria

(TrustAllX509TrustManager) para comunicaccedilatildeo com a API do MOE A comunicaccedilatildeo

eacute estabelecida (IOSoapServicePort_Client) e quando existir a solicitaccedilatildeo de

determinados conteuacutedos estes satildeo disponibilizados ou natildeo mediante o ldquotipordquo (role)

de utilizador e suas permissotildees

Neste contexto a autenticaccedilatildeo eacute todo um processo de determinar se uma

entidade eacute quem quem diz ser e a autorizaccedilatildeo o processo de conceder permissotildees de

acesso a recursos Logicamente a autenticaccedilatildeo precede a autorizaccedilatildeo

O moacutedulo login implementa isso mesmo todos os passos de autenticaccedilatildeo

credenciaccedilatildeo e permissotildees uma teacutecnica conhecida como Realm JAAS (Java

Authentication and Authorization Service) como conjunto de interfaces de

programaccedilatildeo de aplicaccedilotildees (APIs) com opccedilotildees de autenticaccedilotildees em modo Basic e

Form usando para isso os denominados realms File e JDBC (Java Database

Connectivity) em runtime

Figura 43 - Realm JAAS (Java Authentication and Authorization Service)

562 Dados persistentes

5621 Cookies HTTP

Os dados persistentes destinam-se especialmente ao utilizador e foram idealizados

nesse sentido tornar a relaccedilatildeo utilizadorwebservice mais amigaacutevel e acima de tudo

praacutetica e independente do ldquostatusrdquo da infra-estrutura

Os tatildeo conhecidos COOKIEs HTTP satildeo dados armazenado no

navegadorbrowser do utilizador quando este acede a um determinado site Eacute um

mecanismo usado para guardar as informaccedilotildees relativas a um utilizador como

username formataccedilatildeo de conteuacutedos actividades escolhas cliques etc para quando

aceder novamente a esse site essas configuraccedilotildees anteriores estarem preacute-definidas e

configuradas

70

Os cookies de autenticaccedilotildees em sites web satildeo o meacutetodo mais comum e nesta

framework este meacutetodo foi usado para guardar dados relativos ao utilizador O

servidor natildeo precisa de suportar o peso das ligaccedilotildees siacutencronas para saber se um

determinado utilizador estaacute logado ou natildeo e neste sentido este meacutetodo torna-se eficaz

Os dados guardados e relativos ao utilizador que satildeo dados como username

role layout do webservice (gtheme) layout do menu lateral esquerdo (ttheme)

informaccedilatildeo relativa agraves regiotildees do webservice visualizada ou omitida (nregion

wregion eregion sregion) e um boolean (islogin) para uma mensagem de boas

vindas aquando do login Cada vez que um determinado utilizador alterar o layout do

webservice ou fechar o painel de visualizaccedilatildeo de determinada informaccedilatildeo satildeo passos

que satildeo guardados e durante toda a navegaccedilatildeo estas acccedilotildees permaneceratildeo guardadas

mesmo em futuros logins desse utilizador

5622 Modelo ER

Uma infra-estrutura como o MOE eacute desenhada e implementada para funcionamento

online e todas as alteraccedilotildees como criaccedilatildeo de um Serviccedilo ediccedilatildeo desse Serviccedilo

criaccedilatildeo de Discos etc satildeo alteraccedilotildees com acccedilatildeo imediata na infra-estrutura

Infelizmente nem tudo corre sempre como queremos e quando mais precisamos de

uma ou outra implementaccedilatildeo ou configuraccedilatildeo eacute quando o serviccedilo estaacute em baixo e por

uma ou outra razatildeo ficamos impossibilitados de o fazer

A implementaccedilatildeo de uma Base de Dados com toda a informaccedilatildeo relativa ao

utilizador colmata sempre estas falhas imprevistas Um implementaccedilatildeo independente

da infra-estrutura que permite ao utilizador ter acesso total aos seus dados crie edite

apague recursos em modo offline com sincronizaccedilatildeo com o MOE automaacuteticamente ou

por acccedilatildeo do utilizador

Um moacutedulo uacutetil e praacutetico que facilita o acesso e configuraccedilotildees dos serviccedilos do

utilizador Acccedilotildees que carecem de algum tempo de implementaccedilatildeo apoacutes a sua

solicitaccedilatildeo Acccedilotildees agarradas ao utilizador ao seu tempo e disposiccedilatildeo e natildeo agrave infra-

estrutura Acccedilotildees tidas pelo utilizador que sem preocupaccedilatildeo com tempos de execuccedilatildeo

e implementaccedilatildeo cria edita ou apaga o seu Serviccedilo e numa futura ligaccedilatildeo tudo eacute

sincronizado automaticamente

Segue-se o modelo ER implementado que descreve conceptualmente os dados

e seus relacionamentos em UML Em realce os principais recursos

71

Figura 44 - Modelo ER

Pela anaacutelise do modelo ER facilmente se percebe como os recursos se

relacionam entre siacute Segue-se uma explicaccedilatildeo do modelo e dos seus recursos

principais

Cada Template tem uma lista de Serviccedilos associados que aquando da sua

implementaccedilatildeo tiveram esse Template como base e apresenta um e um soacute custo total

que corresponde a soma de todos os recursos implementados e permitidos nesse

Template

72

Um Serviccedilo como jaacute referido tem sempre por base um e um soacute Template um

e um soacute ldquoLeasePeriodrdquo que corresponde ao tempo de utilizaccedilatildeo e um e um soacute custo

total associado Este custo eacute igualmente a soma de todos os recursos instanciados e

em uso nesse Serviccedilo No Serviccedilo eacute possiacutevel implementar uma nova Entidade

denominada ldquoServiceActionrdquo que corresponde a um e um soacute conjunto de acccedilotildees a

executar automaticamente antes durante ou depois da criaccedilatildeo desse Serviccedilo O

Serviccedilo encontra-se sempre em um e um soacute estado (ServiceEntityStatusEnum) de cada

vez que eacute acedido Logicamente como referido ao longo do presente relatoacuterio um

Serviccedilo eacute constituiacutedo por uma lista de Grupos de Servidores numa relaccedilatildeo de um para

muitos

Um Grupo de Servidores como o Serviccedilo apresenta tambeacutem um e um soacute

conjunto de acccedilotildees a executar automaticamente antes durante ou depois da criaccedilatildeo

desse Serviccedilo nesse Grupo de Servidores em especiacutefico Novas Entidades satildeo aqui

retratadas como seguranccedila (LogicalFirwallRuleGoup) e balanceamento de carga

(LogicalLoadBalancer) com a relaccedilatildeo de muitos para um Um Grupo de Servidores

estaacute sempre associado a um e um soacute Serviccedilo e eacute constituiacutedo por uma lista de

Servidores numa relaccedilatildeo de um para muitos Uma nova Entidade aparece no Grupo de

Servidores (LogicalIPAddress) com a atribuiccedilatildeo de um IP uacutenico ao Grupo

Um Servidor relaciona-se com o Grupo de Servidores numa relaccedilatildeo de muitos

para um contrariamente agrave relaccedilatildeo com as Entidades LogicalSoftware e LogicalDisk

cuja relaccedilatildeo eacute de muitos para muitos Jaacute a relaccedilatildeo com LogicalNetworkInterface eacute

apenas uma relaccedilatildeo de um para muitos um Servidor pode ter muitas Interfaces mas

uma Interfaces estaacute sempre associada a um e um soacute Servidor

Por uacuteltimo como componentes do Servidor Software Discos e Interfaces

Um mesmo Software pode estar instanciado em muitos Servidores assim como

muitos Servidores podem ter uma lista de Software Os Discos com a opccedilatildeo ldquosharedrdquo

podem pertencer a vaacuterios Servidores e vice-versa As Interfaces aleacutem de pertencer a

um e um soacute Servidor tem igualmente um e um soacute IP associado

57 Feedback

O presente trabalho como jaacute referido teve sempre como objectivo uacuteltimo a facilidade

de acccedilotildees do utilizador visualizaccedilatildeo e organizaccedilatildeo da disponibilizaccedilatildeo de toda a

informaccedilatildeo e nesse intuito ao longo de toda a elaboraccedilatildeo foram desencadeadas vaacuterias

apresentaccedilotildees ao Orientador da Tese professor Paulo Lopes e Orientador da

elaboraccedilatildeo na HP Rui Ramos Os Feedbacks serviram para redireccionamentos e

orientaccedilotildees de programaccedilatildeo

A disponibilizaccedilatildeo da informaccedilatildeo por Tabs transmite toda a informaccedilatildeo ao

utilizador de uma forma organizada facilmente acessiacutevel e raacutepida na percepccedilatildeo dessa

informaccedilatildeo e suas acccedilotildees possiacuteveis associadas

73

A alteraccedilatildeo aconselhada pelo Rui Ramos na ediccedilatildeo de Servidores do Grupo de

Servidores como a passagem de listagens para um simples ldquobuttonrdquo com um sinal ldquo+rdquo

para adicionar Servidores ou um sinal ldquo-rdquo para remover tornou-se mais praacutetica e

intuitiva

Disponibilizaccedilatildeo de mais meios de acesso agraves VMs como a opccedilatildeo VMRC

(VMware Remote Console) ou RDP (Remote Desktop Protocol) satildeo sempre opccedilotildees

vaacutelidas e uacuteteis para o utilizador final

A disponibilizaccedilatildeo da informaccedilatildeo e das acccedilotildees associadas agrave medida que o

utilizador vai descendo no menu em aacutervore (menu lateral esquerdo) torna-se uacutetil pela

visualizaccedilatildeo hieraacuterquica de todos os recursos e acima de tudo praacutetico ao que o

utilizador realmente pretende com um simples clique

Personalizaccedilatildeo do layout aconselhada pelo professor Paulo Lopes com os

diversos ldquoThemesrdquo opccedilotildees de visualizaccedilatildeoocultaccedilatildeo de informaccedilatildeo etc com as

valecircncias jaacute descritas no iniacutecio deste capiacutetulo

Opccedilatildeo ldquoDatagridrdquo onde a disponibilizaccedilatildeo da informaccedilatildeo passa de simples

Tabs para listagem em tabelas Visualizaccedilatildeo uacutetil quando a informaccedilatildeo eacute demasiada

evitando assim o scroll do utilizador na busca da restante informaccedilatildeo bastando para

isso selecionar a ldquoquantidaderdquo de informaccedilatildeo que pretende visualizar naquele

momento

Feedbacks sempre positivos e atempados para as alteraccedilotildees necessaacuterias a

efectuar no framework

58 Questotildees principais

No decorrer da elaboraccedilatildeo deste webservice foram seguidos caminhos e

implementaccedilotildees que de um modo geral se tornaram praacuteticas e uacuteteis existindo no

entanto algumas desaconselhadas pela especificidade deste tipo de implementaccedilotildees

Foi implementada a opccedilatildeo de visualizaccedilatildeo e acccedilotildees em modo offline Foi

criada uma base de dados que suportava todos os dados do MOE a sincronizar

aquando do refresh do webservice ou por acccedilatildeo do utilizador Tal opccedilatildeo foi

desaconselhada pelo facto do sistema estar sempre online disponiacutevel e ter custos

associados

A transformaccedilatildeo de datas ldquoepoch2daterdquo e ldquodate2epochrdquo foi uma das opccedilotildees

que mais trabalho deu pelo facto da API natildeo indicar que o referido nuacutemero eacute a data

em eacutepoca e as casas decimais que entram na conversatildeo Uma eacutepoca em Unix (o

conhecido Unix timestamp) eacute o nuacutemero em segundos que distam de 01 de Janeiro de

1970 ou seja eacute o tempo Unix 0 que corresponde agrave meia-noite de 01011970 Por

norma uma data em eacutepoca eacute um nuacutemero inteiro de 32 bits As duas funccedilotildees

ldquoepoch2daterdquo e ldquodate2epochrdquo tratam dessas converotildees para o utilizador poder

observar as datas numa formataccedilatildeo legiacutevel Esta formataccedilatildeo ainda carece de uma

74

transformaccedilatildeo do dia com o mecircs para ser apresentada no formato europeu

diamecircsano

Existe coacutedigo HTML que eacute criado dinamicamente esta opccedilatildeo tornou-se

bastante uacutetil pela disponibilizaccedilatildeo de grandes quantidades de informaccedilatildeo nos mesmos

ldquoinput boxesrdquo como eacute o caso de toda a informaccedilatildeo do Servidor dentro de um mesmo

Grupo de Servidores A informaccedilatildeo eacute diferente mas o layout eacute o mesmo por isso uma

organizaccedilatildeo adequada de IDs criados dinamicamente faz toda a diferenccedila

O tratamento de erros eacute algo que por vezes eacute decurado no dueto utilizador-

webservice Um webservice quer-se amigaacutevel e nesse intuito paacuteginas em branco

completamente diferentes do layout do webservice com erros como 404 ou 500 satildeo

desaconcelhadas Assim foi inicialmente implementado esse tratamento directamente

no ficheiro ldquoWebContentWEB-INF webxmlrdquo que redirecionava o utilizador para

paacuteginas HTML com layout igual ao webservice com o respectivo nuacutemero do erro e a

mensagem correspendente para informaccedilatildeo Uma mudanccedila e redireccionamento

draacutestico obrigando o utilizador a voltar atras e tentar de novo Optou-se pelo

tratamento directo em javascript com a visualizaccedilatildeo da mensagem de erro numa

ldquoInfoWindowrdquo sem redireccionamentos nem novas paacuteginas

A API do MOE apresenta igualmente alguns pontos que precisam de ser

melhorados em futuras versotildees Foram implementados alguns caminhos secundaacuterios

quando tudo poderia ser mais faacutecil se a API fornecesse essa implementaccedilatildeo

directamente

Informaccedilatildeo detalhada dos Templates

O objectivo deste webservice eacute criar serviccedilos e apoacutes criaccedilatildeo fazer uso dos

recursos A implementaccedilatildeo de um Serviccedilo tem por base um Template que lhe estaraacute

sempre associado Templates existentes num Cataacutelogo de Serviccedilos e com informaccedilatildeo

sobre os recursos que ficaram disponiacuteveis apoacutes a criaccedilatildeo do Serviccedilo

Naturalmente o utlizador percorre todos os Templates na busca da informaccedilatildeo

que melhor se adapte agraves suas necessidades Se esse informaccedilatildeo se apresenta escassa o

utilizador natildeo vai ficar a saber dos detalhes dos recursos que poderaacute usar aquando da

criaccedilatildeo do serviccedilo

A API natildeo fornece informaccedilatildeo detalhada dos Templates apenas uma

informaccedilatildeo muito resumida natildeo disponibilizando ao utilizador a informaccedilatildeo

associada por exemplo ao custo de cada servidor memoacuteria processador nuacutemero de

interfaces software etc

O presente webservice jaacute disponibiliza toda essa informaccedilatildeo ao utilizador

sendo que este pode navegar no Cataacutelogo de Serviccedilos do menu lateral esquedo e

visualizar toda a informaccedilatildeo detalhada dos Templates escolher o que melhor se

enquadre dentro das suas necessidades e finalmente criar o Serviccedilo

75

VMID

O utilizador pode assim usar os recursos depois do Serviccedilo criado Para a

criaccedilatildeo de uma sessatildeo remota o ID da VM era essencial Tal informaccedilatildeo natildeo existe

na API do MOE Uma listagem de VMIDs por utilizador associadas a cada serviccedilo

por servidor por interface qualquer uma destas quatro opccedilotildees era vaacutelida

ldquocustomTemplateAttributesrdquo na criaccedilatildeo do Serviccedilo

Na criaccedilatildeo de um Serviccedilo existem campos de preenchimento automaacutetico

campos obrigatoacuterios e outros opcionais Assim eacute necessaacuterio fornecer o

ldquoserviceNamerdquo (obrigatoacuterio) templateName (automatico) leasePeriod (automatico

mas o utilizador pode mudar) hostname (obrigatoacuterio) serverPoolNames (automaacutetico

mas o utilizador pode mudar) ownerEmailAddress (obrigatoacuterio) note (opcional)

billingCode (opcional) e customTemplateAttributes (opcional) A falta da API reside

neste uacuteltimo campo ldquocustomTemplateAttributesrdquo onde o utilizador poderia escolher

previamente o nuacutemero de servidores memoacuteria processadores tipo de endereccedilamento

das interfaces etc

computeServerIds do ServerPools

Uma informaccedilatildeo valiosa para a criaccedilatildeo de Pools de Servidores natildeo sabendo

os IDs dos computeServerIds natildeo eacute possiacutevel chegar aos Compute Resources para

poder adicionar recursos agraves Pools Outra falha detectada

59 Visatildeo global

Uma interface baseada no protocolo REST (Representational State Transfer) para

troca de informaccedilatildeo e direcionada aos recursos disponibilizados na Web apresenta-se

como vantagem quando estamos a lidar com isso mesmo recursos

Um conjunto de princiacutepios como HTTP e URIs que usando REST exploram

a arquitectura Web para o seu benefiacutecio usando a simplicidade natildeo soacute de transporte

como tambeacutem de protocolos

Espelhadas as vantagens do protocolo REST o presente webservice torna-se

assim mais simples em comunicaccedilatildeo e no acesso aos recursos sem o atraso da

sobrecarga apreciaacutevel na construccedilatildeo de mensagens do protocolo SOAP (Simple

Object Access Protocol) do MOE

Figura 45 - Mensagens SOAP na invocaccedilatildeo de processos do MOE

76

Figura 46 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull do WEBSERVICE

Comparativamente agrave implementaccedilatildeo em siacute no MOE existe um uacutenico menu de

acesso a todas as acccedilotildees possiacuteveis as operaccedilotildees de Grupo tornam-se assim cansativas

e desmotivadoras arrantando o utilizador para uma sequecircncia de cliques ateacute a acccedilatildeo

final Opccedilotildees como ediccedilatildeo do Grupo de Servidores natildeo existem tal eacute possiacutevel apenas

na ediccedilatildeo directa em cada Servidor No webservice basta um clique e eacute executada

uma acccedilatildeo de grupo como por exemplo desligar todo o Grupo de Servidores A ediccedilatildeo

do Grupo de Servidores eacute arrastada a todos os Servidores do Grupo apenas com uma

simples ediccedilatildeo de memoacuteria e processamento no Grupo

Como nas acccedilotildees de Grupo se o utilizador pretender uma acccedilatildeo numa

interface especiacutefica teraacute que percorrer a sequecircncia e cliques contrariamente ao

presente webservice com acccedilatildeo directa quer no menu lateral esquerdo quer na

visualizaccedilatildeo directa da informaccedilatildeo da interface

Toda a informaccedilatildeo a apresentar relativamente aos recursos eacute vasta requerendo

uma organizaccedilatildeo inteligente nessa apresentaccedilatildeo com opccedilotildees de

visualizaccedilatildeoocultaccedilatildeo dessa informaccedilatildeo se o utilizador assim o entender Acccedilotildees

possiacuteveis aquando da visualizaccedilatildeo de determinada informaccedilatildeo devem estar visiacuteveis e

acessiacuteveis No MOE isso eacute difiacutecil ou quase impossiacutevel porque a interface natildeo foi

desenhada desse modo a informaccedilatildeo apresentada torna-se desorganizada e

desmotivada a leitura

510 Resumo

Este capiacutetulo comeccedila por descreve a arquitectura usada e as suas camadas seguindo-

se um exemplo simplificado das relaccedilotildees da framework e plataformas (MOE e

VMware) Satildeo apresentados conceitos como rapidez organizaccedilatildeo e personalizaccedilatildeo

nm desenho guiado pela Interface do Utilizador Como nuacutecleo deste capiacutetulo eacute feita

toda a descriccedilatildeo da framework por camadas da Arquitectura apresentada

apresentaccedilatildeo loacutegicaserviccedilos e dados onde satildeo descritas todas as acccedilotildees passiveis de

serem executadas por recurso Por uacuteltimo os feedback tidos ao longo da

implementaccedilatildeo algumas questotildees consideradas importantes e finalmente uma visatildeo

global como foco

77

6 Consideraccedilotildees Finais

Esta tese resultou de uma proposta de tema de tese que a HP Portugal submeteu ao

Departamento de Informaacutetica da FCTUNL e que apoacutes algumas interacccedilotildees resultou no

tema intitulado Framework para a construccedilatildeo de ldquoportais de negoacuteciordquo para gestatildeo de

solicitaccedilotildees IaaS na HP Cloud

A primeira fase de Preparaccedilatildeo de Dissertaccedilatildeo ocorreu no 1ordm semestre do ano

lectivo de 20122013 e realizou-se essencialmente neste departamento pontuada por

esporaacutedicas reuniotildees na HP Portugal (Quinta da Fonte Paccedilo De Arcos) A segunda de

Elaboraccedilatildeo da Dissertaccedilatildeo decorreu imediatamente apoacutes a primeira e cumpriu-se

totalmente nas instalaccedilotildees da HP Portugal

Durante a primeira fase estudou-se o paradigma de computaccedilatildeo na cloud os seus

periacutemetros (modelos de implantaccedilatildeo) e modelos de serviccedilo Estudou-se tambeacutem a

virtualizaccedilatildeo tecnologia base da computaccedilatildeo na cloud desde a sua origem ao seu estado

actual Estudaram-se ainda as plataformas de virtualizaccedilatildeo de servidores com maior

presenccedila nos centros de dados o ESXi da VMware o XenServer da Citrix Systems e o

Hyper-V da Microsoft e ainda a tecnologia proprietaacuteria da HP designada HP Integrity

Virtual Machines Estudaram-se ainda as tecnologias de armazenamento abordando-se os

aspectos de integridade fiabilidade e desempenho oferecidos pelos Redundant Array of

Independent Disks as redes de armazenamento orientadas ao bloco Storage Area

Networks e aos ficheiros Network Attached Storage A virtualizaccedilatildeo do armazenamento

ndash tanto ao niacutevel da sua utilizaccedilatildeo para armazenar VMs como para constituir ldquodiscosrdquo de

VMs foi estudada em seguida Os aspectos da virtualizaccedilatildeo das redes foram tambeacutem

estudados

Abordados todos os conceitos e tecnologias base seguiu-se o estudo da HP Cloud

em particular a HP CloudSystem Matrix no seu ambiente Matrix Operating Environment

como infra-estrutura de trabalho da segunda parte da dissertaccedilatildeo um vasto conjunto de

componentes software e hardware que vatildeo desde os servidores ProLiant sistemas de

armazenamento EVA infra-estruturas de rede (switches e NICs) etc ateacute ao ambiente de

operaccedilatildeo Matrix com o vCenter Numa perspectiva mais conceptual estudamos os papeacuteis

dos ldquoutilizadores da cloudrdquo administrador arquitecto e consumidor de serviccedilos bem

como a funccedilatildeo do Cataacutelogo de Serviccedilos do Template e a possibilidade de definir

operaccedilotildees de orquestraccedilatildeo da infra-estrutura

Com a noccedilatildeo exacta do trabalho a implementar foram estudadas diversas

linguagens e paradigmas e suas vantagens e inconvenientes Finalmente foi apresentada

uma arquitectura da soluccedilatildeo e um cronograma para a segunda fase dos trabalhos O

esforccedilo dispendido na primeira fase foi por natildeo ter outra tarefa que natildeo fosse a realizaccedilatildeo

da preparaccedilatildeo de uma quase total dedicaccedilatildeo a esta

Durante a segunda parte desta dissertaccedilatildeo a full-time na HP foi desenvolvido um

protoacutetipo do framework totalmente funcional A realizaccedilatildeo conseguida cumpre na iacutentegra

78

a calendarizaccedilatildeo proposta na primeira fase conseguindo-se agrave custa de um razoaacutevel

esforccedilo adicional evitar atrasos e falhas

As linguagens usadas foram as jaacute descritas no capiacutetulo 5 e incluem na camada de

apresentaccedilatildeo do lado do cliente HTML CSS JavaScript JQUERY AJAX e do lado do

servidor JSP Na camada loacutegicaserviccedilos usou-se fundamentalmente Java e REST

O desenvolvimento do framework foi guiado por duas consideraccedilotildees uma do

lado do programador e com o pensamento em futuras actualizaccedilotildees e outra do lado do

utilizador com uma interface organizada intuitiva e de raacutepido acesso e acima de tudo que

possibilitasse a interacccedilatildeo com todos os recursos do Serviccedilo instanciado quer a niacutevel de

grupos quer a niacutevel dos recursos individuais Assim na oacuteptica do programador

organizou-se toda a programaccedilatildeo em torno do ldquorecursordquo como entidade fundamental em

todas as camadas em que ldquoelerdquo existe Deste modo actualizaccedilotildees ao framework podem

ser feitas olhando somente para o recurso a actualizar quer a alteraccedilatildeo seja ao niacutevel da

informaccedilatildeo ou das acccedilotildees que este suporta

Em cada uma das duas vertentes programador e utilizador foram implementadas

diversas ajudas para que estes melhor entendam toda a estrutura e implementaccedilatildeo o

referido apoio estaacute disponiacutevel no proacuteprio protoacutetipo e em manuais de ajuda em anexo a

este relatoacuterio

61 Conclusotildees

A primeira conclusatildeo que apresentamos sem falsas modeacutestias eacute a de que o portal eacute

sob o ponto de vista dos resultados conseguidos e face ao objectivo um sucesso Natildeo

soacute eacute operacionalmente funcional cumprindo o objectivo essencial mas tambeacutem o eacute na

usabilidade Destacamos sumariamente alguns aspectos desta uacuteltima

A visualizaccedilatildeo da informaccedilatildeo assim como as acccedilotildees possiacuteveis satildeo guiadas

pelos recursos o utilizador apenas selecciona o recurso e tem tudo disponiacutevel

informaccedilatildeo e acccedilotildees que pode executar tudo associado a esse e apenas esse

recurso

No menu lateral esquerdo do protoacutetipo o utilizador estaacute sempre a visualizar a

ldquoposiccedilatildeordquo de um recurso na hierarquia tornando-se assim muito faacutecil executar

acccedilotildees de grupo ou acccedilotildees individualizadas bastando para isso um simples

clique

Na versatildeo 5 da API do MOE detectamos algumas insuficiecircncias que devem

ser corrigidas em futuras versotildees Nomeadamente

Haacute atributos dos templates cuja consulta apenas eacute possiacutevel ao administrador

quando satildeo fundamentais para uma melhor experiecircncia do utilizador

referimo-nos por exemplo aos valores maacuteximos de um dado recurso (eg

nuacutemero de maacuteximo de CPUs custo de um dado disco) natildeo serem

disponibilizados aquando da criaccedilatildeo de um Serviccedilo Note-se que o protoacutetipo

79

ultrapassa esta limitaccedilatildeo executando o ldquoinitrdquo da sessatildeo como administrador e

carregando nessa altura todos esses atributos

Para aceder agrave consola de um servidor eacute necessaacuterio conhecer o ID da VM o

que natildeo eacute fornecido pela API MOE o protoacutetipo ultrapassou esta limitaccedilatildeo

usando a API disponibilizada pelo VMware vCenter

Em conclusatildeo oferecemos um protoacutetipo amigaacutevel intuitivo com uma curva

de aprendizagem muito curta organizado na vasta informaccedilatildeo a disponibilizar e

usando na sua realizaccedilatildeo tecnologias estado-da-arte no formato de informaccedilatildeo XML

e JSON Um protoacutetipo praacutetico no que ao acesso e utilizaccedilatildeo dos recursos diz respeito

objectivos uacuteltimos de todo este trabalho

Fica assim aberta uma porta para a equipa de desenvolvimento de software da

HP nas proacuteximas decisotildees sobre o caminho a seguir no desenvolvimento de novas

implementaccedilotildees e futuras versotildees da API O protoacutetipo foi submetido a testes de

usabilidade que podem ser considerados em futuras integraccedilotildees

62 Trabalho futuro

Um framework que se queira actualizado nunca pode ser considerado acabado novas

actualizaccedilotildees em resposta a solicitaccedilotildees do mercado ou a alteraccedilotildees na(s) API(s) nos

hipervisores ou decorrentes da necessidade de ldquohibridizaccedilatildeordquo com outras clouds

fazem desse framework um trabalho actualizado mas nunca terminado

No desenvolvimento deste framework tivemos acesso a uma infra-estrutura

que como eacute natural (pela complexidade do software necessaacuterio) apenas incluiacutea

alguma das opccedilotildees do vasto leque HP CSM em particular a) apenas dispunha da

pilha de virtualizaccedilatildeo VMware (ESXi e vCenter) e b) natildeo dispunha do moacutedulo

Storage Provisioning Manager (SPM)

Do exposto surgem imediatamente duas propostas para trabalho futuro a

primeira passa por dotar o portal de uma capacidade de ldquoidentificaccedilatildeo automaacuteticardquo

da(s) plataformas de virtualizaccedilatildeo que estatildeo acessiacuteveis ao utilizador disponibilizando

as ferramentas adequadas ndash por exemplo se o utilizador apenas tivesse acesso agrave infra-

estrutura Hyper-V teria apenas o iacutecone da consola Hyper-V (em vez da consola

VMware) a segunda seria ampliar as funcionalidades do framework para suportar a

interacccedilatildeo com a API do SPM cumprindo assim um dos objectivos que era permitir

ao consumidor IaaS escolher as tecnologias de armazenamento ndash SSD em vez de FC

FCoE em vez de iSCSI etc

Uma outra avenida para trabalho futuro seria a avaliaccedilatildeo e eventual realizaccedilatildeo

do framework sobre a API OpenStack

80

63 Resumo

Neste capiacutetulo foi descrito todo o trabalho efectuado nesta dissertaccedilatildeo bem como os

resultados obtidos e ainda os ldquoalertasrdquo relativos a aspectos que consideramos

merecedores de atenccedilatildeo por parte da HP Tal soacute foi possiacutevel pelo detalhe com que

toda a infra-estrutura e API foram estudadas e testadas Foram referidas as principais

contribuiccedilotildees e destacaram-se as melhorias relativamente ao portal actualmente

disponibilizado pela HP

Finalmente deixam-se algumas propostas para trabalhos futuros

81

Referecircncias bibliograacuteficas

[1] Understanding the HP CloudSystem Reference Architecture [Online]

Available httph20195www2hpcomV2GetPDFaspx4AA0-5550ENWpdf

[2] Amazon Elastic Compute Cloud (Amazon EC2) [Online] Available

httpawsamazoncomptec2

[3] GoGrid Cloud Hosting [Online] Available httpwwwgogridcom

[4] Eucalyptus [Online] Available httpwwweucalyptuscom

[5] Google AppEngine [Online] Available httpsdevelopersgooglecom

appengine

[6] Microsoft Azure [Online] Available httpwwwwindowsazurecompt-br

[7] Google Apps [Online] Available httpwwwgooglecomenterpriseapps

business

[8] Agensen O et al The Evolution of an x86 Virtual Machine Monitor ACM

Operating Systems Review Vol 44 Number 4 December 2010 pp 3-18

[9] VMware Virtualization Products for Virtual Servers Virtual Desktops and Data

Center [Online] Available httpwwwvmwarecomproducts

[10] Comparison of Platform Virtual Machines Wikipedia the Free Encyclopedia

Dezembro 12 2012 [Online] Available httpenwikipediaorgwindexphp

title=Comparison_of_platform_virtual_machinesampoldid=527691634

[11] Vsphere-51-configuration-maximums VMware Inc 2012

[12] Barham P et al Xen and the art of virtualization In Proceedings of the

nineteenth ACM symposium on Operating systems principles (SOSP03) 2003

pp 164-177

[13] Zhang X and Dong Y Optimizing Xen VMM Based on Intelreg Virtualization

Technology In Proceedings of the 2008 International Conference on Internet

Computing in Science and Engineering (ICICSE 08) IEEE Computer Society

pp 367-374

[14] CTX134582 - XenServer 610 Release Notes - Citrix Knowledge Center

[Online] Available httpsupportcitrixcomarticleCTX134582

[15] Haga Y et al Windows Server 2008 R2 Hyper-V Server Virtualization

Fujitsu Sci Tech J Vol 47 No 3 2011 pp 340-355

[16] Feature Comparison Windows Server 2008 R2 Hyper-V and Windows Server

2012 Hyper-V Windows Server Microsoft Corporation 2012

[17] Hyper-V Scalability in Windows Server 2012 [Online] Available

httptechnetmicrosoftcomen-uslibraryjj680093aspx

82

[18] Patterson D et al A Case for Redundant Arrays of Inexpensive Disks (RAID)

Proceedings of the 1989 ACM-SIGMOD International Conference on the

Management of Data ACM 1989 pp 109-116

[19] Whitehouse S The GFS2 Filesystem Proceedings of the Linux Symposium

June 27th-30th 2007 Ottawa Canada

[20] Schmuk F and Haskin R GPFS A Shared-Disk File System for Large

Computing Clusters Proceedings of the Conference on File and Storage

Technologies (FASTrsquo02) 28ndash30 January 2002 Monterey CA pp 231ndash244

[21] Vaghani S Virtual Machine File System ACM Operating Systems Review

Vol 44 Number 4 December 2010 pp 57-70

[22] Pawlowski B et al NFS version 3 design and implementation Proceedings of

the Summer USENIX Conference June 1994 pp 137-152

[23] Zhou S Virtual Networking ACM Operating Systems Review Vol 44

Number 4 December 2010 pp 80-85

[24] HP Sitescope 112 Data Sheet [Online] Available

httpwwwhpcomhpinfonewsroompress_kits2012HPDiscover2012HP_Sit

escope_112_Data_Sheetpdf

[25] Veritas Storage Foundationtrade and High Availability Solutions Application

Note Support for HP-UX Integrity Virtual Machines Symantec Corporation

2011

[26] Kennedy S et al StoRHm a protocol adapter for mapping SOAP based Web

Services to RESTful HTTP format Electronic Commerce Research September

2011 Volume 11 Issue 3 pp 245-269

[27] Silvia Schreier Modeling RESTful applications In Proceedings of the Second

International Workshop on RESTful Design (WS-REST 11) Cesare Pautasso

and Erik Wilde (Eds) ACM New York NY USA 2011 pp 15-21

[28] Axioms [Online] Available httpwwww3orgDesignIssuesAxiomshtml

[29] Sandoval Jose Restful Java Web Services Master core REST concepts and

create RESTful web services in Java Packt Publishing November 2009 pp 43-

179

[30] Burke Bill Restful Java with Jax-RS OrsquoReilly Media Inc November 2009 1st

ed

[31] Jersey 117 User Guide [Online] Available

httpsjerseyjavanetdocumentation117indexhtml

[32] Jerome Louvel Thierry Templier and Thierry Boileau Restlet in Action

Developing Restful Web Apis in Java Manning Publications Co 2012

Greenwich CT USA pp 1-165

83

[33] Johnson Sally Cloud providers can enable self-service IT with a cloud portal

[Online] Available httpsearchcloudprovidertechtargetcomfeatureCloud-

providers-can-enable-self-service-IT-with-a-cloud-

portalasrc=EM_ERU_22442845amputm_medium=EMamputm_source=ERUamputm

_campaign=20130709_ERU20Transmission20for200709201320(User

Universe20607658)_myka-reportstechtargetcomampsrc=5144272

[34] jQuery EasyUI framework [Online] Available httpwwwjeasyuicom

[35] jQuery UI Library [Online] Available httpjqueryuicomdemos

[36] jQuery API [Online] Available httpapijquerycom

84

Anexo A (Virtualizaccedilatildeo Vantagens e inconvenientes)

Virtualizaccedilatildeo Vantagens e inconvenientes

A virtualizaccedilatildeo tem vindo a crescer e a ganhar terreno principalmente nas meacutedias e

grandes empresas Tem vindo a demonstrar a sua mais-valia na gestatildeo das TIs uma

mudanccedila completa e um aliviar de trabalho para administradores e gestores

A1 Vantagens da tecnologia

Um mundo onde passa a ser possiacutevel executar software incompatiacutevel com o SO host

executar SOrsquos distintos num mesmo conjunto de hardware isoladamente sem

interferecircncias etc uma mudanccedila draacutestica na tradicional visatildeo de um SO para um

conjunto de hardware apenas

Seguranccedila Dentro de um servidor podemos ter vaacuterios VMs isoladas e

independentes do SO host Tal garante que qualquer interferecircncia no SO host

(errosataques acidentais ou intencionais) natildeo afecte as VMs nele instaladas

Isolamento Qualquer processo de uma VMs natildeo pode interferir nos

processos de outra VMs este isolamento intimamente ligado agrave seguranccedila

vem de encontro a um dos princiacutepios baacutesicos aquando da implementaccedilatildeo

desta tecnologia Esta vantagem garante-nos confidencialidade entre VMs

assim como integridade e contenccedilatildeo de erros entre VMs (seguranccedila)

Custos A quantidade de diferentes servidores existentes para diferentes SOrsquos

e aplicaccedilotildees eacute agora compactada num mesmo hardware onde existe a

possibilidade de termos vaacuterias VMs com diferentes SOrsquos com as mais

variadas aplicaccedilotildees Temos um tudo-em-um que vai reduzir os custos de uma

organizaccedilatildeo na altura do upgrade bastando para isso o upgrade de um uacutenico

servidor que suporta todos os serviccedilos da organizaccedilatildeo

Energia Propriedade intimamente ligada aos custos Com a compactaccedilatildeo do

hardware satildeo dispensando todos os demais equipamentos quer de

sustentaccedilatildeo de toda uma infra-estrutura quer os proacuteprios equipamentos de

apoio Eacute assim conseguida uma economia de energia bastante significativa

para a organizaccedilatildeo

Espaccedilo Fiacutesico A compactaccedilatildeo eacute inerente aacute diminuiccedilatildeo do espaccedilo ocupado

Um Data Center tem sempre o problema de ldquofalta de espaccedilordquo e por isso a

compactaccedilatildeo de hardware associada agrave virtualizaccedilatildeo vem resolver natildeo soacute este

problema de espaccedilo como tambeacutem a proacutepria refrigeraccedilatildeo e circulaccedilatildeo de ar

dentro do Data Center

85

Hardware Estaacute provado que cada servidor em meacutedia gasta cerca de 30 do

seu poder de processamento para executar a funccedilatildeo para a qual foi

implementado Assim sendo estamos na presenccedila de um subaproveitamento

deste poder computacional A ideia anterior aacute virtualizaccedilatildeo de adquirir um

novo servidor para uma nova aplicaccedilatildeo cai agora por terra com o objetivo de

aproveitar ao maacuteximo o poder computacional de cada servidor aproveitando

melhor todo esse hardware disponiacutevel

Implementaccedilatildeo de SOrsquos A associaccedilatildeo de um SO por cada maacutequina fica

agora tambeacutem em desuso uma vez que a virtualizaccedilatildeo possibilita-nos a

instalaccedilatildeo de vaacuterios SOrsquos em cada maacutequina melhor aleacutem de vaacuterios SOrsquos

estes tambeacutem podem ser diferentes entre si (Windows linuz etc) Esta

vantagem permite assim instalar SOrsquos cujo hardware original (host) nem

sequer os suportam como o caso do SO MAC (Macintosh Apple) em

hardware x86 ou SO Windows em notebooks (Apple)

Migraccedilatildeo A camada que suporta a virtualizaccedilatildeo permite-nos esta mais-valia

A migraccedilatildeo natildeo soacute do ambiente em si como do proacuteprio hardware bastando

para isso uma simples coacutepia entre discos virtuais

Testes de software e hardware A virtualizaccedilatildeo simula tanto um software

como um hardware logo testes em software firmware e hardware podem ser

realizados nestas VMs construiacutedas especificamente para esse fim Estes

primeiros testes podem ser efectuados sem a necessidade de um SO instalado

de raiz ou mesmo a presenccedila fiacutesica do hardware especiacutefico

Reduccedilatildeo de administradores e gestores Esta compactaccedilatildeo associada agrave

virtualizaccedilatildeo como jaacute referido reduz espaccedilo ocupado reduz hardware reduz

configuraccedilotildees e gestatildeo individual abrindo caminho agrave centralizaccedilatildeo Assim a

reduccedilatildeo da equipa responsaacutevel pela administraccedilatildeo e gestatildeo eacute evidente

A2 Desvantagens da tecnologia

Satildeo notoacuterias as vantagens da virtualizaccedilatildeo mas problemas como incompatibilidades entre

aplicaccedilotildees e perda de desempenho pelo simples adicionar de mais uma camada agrave

arquitectura teratildeo que ser consideradas aquando da escolha

Seguranccedila A seguranccedila neste caso prende-se agrave proacutepria camada adicionada

agrave arquitectura (VMM ou hypervisor) Se o proacuteprio SO host tiver algum

problema de raiz implementado ou adquirido tambeacutem o proacuteprio VMM

contemplaraacute este erro assim como todas as VMs instaladas nesse SO host

Gestatildeo O principal problema da implementaccedilatildeo desta tecnologia eacute a gestatildeo

da proacutepria virtualizaccedilatildeo os ambientes virtualizados precisam de ser

instanciados geridos configurados etc Eacute neste ponto que se prende a

preocupaccedilatildeo das organizaccedilotildees pelos seus investimentos nesta tecnologia

trata-se de uma opccedilatildeo que por norma eacute licenciada

86

Desempenho Mais uma camada de software (VMM ou hypervisor) implica

mais processamento Incerteza da quantidade de VMsprocessador sem que

seja afectado a QOS (Quality Of Service) e a garantia dessa emulaccedilatildeo em

termos da disponibilizaccedilatildeo maacutexima que o host pode dispensar como eacute o caso

do processamento e memoacuteria graacutefica

87

Anexo B (Virtualizaccedilatildeo Arquitectura)

Virtualizaccedilatildeo Arquitectura

A base de uma arquitectura de virtualizaccedilatildeo eacute o VMM ou hypervisor o Virtual Machine

Manager responsaacutevel pela criaccedilatildeo gestatildeo isolamento e preservaccedilatildeo do estado da VM

assim como toda a orquestraccedilatildeo do acesso aos recursos do sistema host

O VMM permite que seja possiacutevel a execuccedilatildeo de vaacuterios SOrsquos em VMs contudo

estaacute limitado a SOrsquos que possam ser executados nativamente no processador fiacutesico do

sistema Essa valecircncia torna-se hoje uma das maiores procuras de todos os sistemas de

virtualizaccedilatildeo

Em termos de implementaccedilotildees arquitecturais temos VMMrsquos Tipo-2 modelo

ldquohybridordquo e Tipo-1 O VMM ou hypervisor do Tipo-2 figura 47 eacute implementado dentro

do proacuteprio SO real (Linux ou Windows - hostsystem) e executando paralelamente eacute mais

um processo Neste caso trata-se de uma camada hypervisor proacutepria como um segundo e

distinto niacutevel de software Os sistemas operativos convidados correm num terceiro niacutevel

acima do hardware Nesta arquitectura o SO guest acede directamente o SO host (nativo)

por intermeacutedio de uma API cedida pelo hipervisor ao SO guest O SO guest acede assim

ao hardware atraveacutes de um device driver especiacutefico pelo hypervisor e pelo SO host sendo

por isso uma implementaccedilatildeo que apresenta menor desempenho e maior sobrecarga ao

sistema O Java VM VMware Workstation VMware Player Sun Microsystems

VirtualBox e KVM satildeo alguns exemplos que usam esta arquitectura

Figura 47 - VMM ou hypervisor do Tipo-2

No modelo rdquohiacutebridordquo figura 48 o VMM natildeo eacute executado uma camada acima do

SO host (ou abaixo) mas sim concorrentemente (peer) com o SO host e natildeo depende de

instruccedilotildees especiacuteficas no processador Microsoft Virtual Server 2005 R2 e Virtual PC satildeo

alguns exemplos que usam esta arquitectura

88

Figura 48 - VMM ou hypervisor do ldquohiacutebridordquo

No VMM ou hypervisor do Tipo-1 figura 49 eacute executado directamente no

hadware a camada mais baixa de todas as particcedilotildees da VM sem necessidade da

existecircncia de qualquer SO host O SO guest acede directamente ao hardware atraveacutes do

hipervisor tal eacute possiacutevel pelas modificaccedilotildees feitas no SO guest e no hipervisor Esta eacute a

implementaccedilatildeo que atinge niacuteveis mais elevados de eficiecircncia por isso permite uma maior

densidade de VMs eacute a implementaccedilatildeo claacutessica de arquitecturas VM VMware

ESXESXi Citrix XEN Server e Microsoft Hyper-V satildeo alguns exemplos que usam esta

arquitectura

Figura 49 - VMM ou hypervisor do Tipo-1

89

Anexo C (Virtualizaccedilatildeo Tipos de Implementaccedilatildeo)

Virtualizaccedilatildeo Tipos de Implementaccedilatildeo

C1 Emulaccedilatildeo de Hardware

Neste tipo de virtualizaccedilatildeo figura 50 pretende-se a virtualizaccedilatildeo completa do hardware

o seu comportamentoestados de execuccedilatildeo (ciclos de clock conjunto de instruccedilotildees

pipeline memoacuteria cache) por isso eacute a forma de virtualizaccedilatildeo mais complexa Todo o

hardware da VM eacute criado via software no sistema hospedeiro para emulaccedilatildeo do hardware

proposto criando assim grandes overheads7 com fracos desempenhos comparativamente

ao hadware real Este tipo de virtualizaccedilatildeo apresenta mais-valias como o facto de poder

ser usado um SO guest sem qualquer modificaccedilatildeo ou adaptaccedilatildeo os programadores podem

fazer testes de firmware e hardware em hardware que natildeo o real nem necessitam da

existecircncia deste e ainda a valecircncia de ser possiacutevel emular hardware que na maior parte

das vezes eacute bastante diferente do hardware real

Figura 50 - Emulaccedilatildeo de Hardware

C2 Virtualizaccedilatildeo completa

A virtualizaccedilatildeo completa figura 51 tambeacutem conhecida como ldquonativardquo eacute em todo igual a

emulaccedilatildeo de hardware excepto agrave natildeo representatividade dos estados de execuccedilatildeo do

hardware emulado por esse facto esta teacutecnica de virtualizaccedilatildeo apresenta resultados mais

satisfatoacuterios no seu desempenho mas ainda aqueacutem dos SOrsquos em execuccedilatildeo nativa Esta

teacutecnica permite assim a execuccedilatildeo de todos os SOrsquos originais sem alteraccedilatildeo fornecendo

uma reacuteplica de todo o hardware dessa maacutequina levando-os a ter a ilusatildeo de estar a

executar directamente no hardware

Os grandes obstaacuteculos desta teacutecnica foram desde logo as diferenccedilas arquitecturais

e os comportamentos particulares das instruccedilotildees muitas impossiacuteveis de serem emuladas

ou capturadas pois muitas dependem do niacutevel de privileacutegio Assim para lidar com a

7 Overhead Diferenccedila de performance (latecircncialentidatildeo) no SO guest

90

heterogeneidade de processadores e comportamento de instruccedilotildees usa-se uma abordagem

chamada de Traduccedilatildeo Binaacuteria Nesta abordagem a VMM analisa todas as instruccedilotildees da

VM quer instruccedilotildees natildeo privilegiadas que depois acedem ao hardware com drivers

geneacutericos quer instruccedilotildees privilegiadas e quando na presenccedila destas faz a emulaccedilatildeo e

reescreve dinamicamente o coacutedigo Este teste a todas as instruccedilotildees acarreta uma latecircncia

significativa no desempenho

Figura 51 - Virtualizaccedilatildeo Completa

C3 Para-Virtualizaccedilatildeo (PV)

A para-virtualizaccedilatildeo ou virtualizaccedilatildeo assistida por SO figura 52 eacute uma alternativa aacute

virtualizaccedilatildeo completa O SO guest eacute modificado (perdendo a portabilidade) para

melhorar a eficiecircncia usando todos os ldquolimitesrdquo do sistema A ideia eacute acelerar a execuccedilatildeo

das instruccedilotildees e para isso a VMM testa apenas instruccedilatildeo que podem alterar o estado do

sistema (instruccedilotildees sensiacuteveis) aumentando significativamente o desempenho Esta

substituiccedilatildeo de uma instruccedilatildeo sensiacutevel pelo tratador de interrupccedilatildeo de software eacute chamada

de hypercall satildeo instruccedilotildees executadas atraveacutes de traduccedilatildeo binaacuteria O SO guest eacute assim

modificado para chamar a VMM sempre que estamos na presenccedila dessas instruccedilotildees

sensiacuteveis

Esta alternativa de virtualizaccedilatildeo com a modificaccedilatildeo do kernel tambeacutem permite

que o SO guest aceda directamente aos recursos de hardware com os drivers da proacutepria

maacutequina virtual e deste modo natildeo usando os drivers geneacutericos (virtualizaccedilatildeo completa)

usam a capacidade total dos dispositivos Assim a para-virtualizaccedilatildeo apresenta um ganho

significativo em relaccedilatildeo agrave virtualizaccedilatildeo completa compensando as modificaccedilotildees

implementadas no SO guest

91

Figura 52 - Para-Virtualizaccedilatildeo

C5 Virtualizaccedilatildeo assistida por Hardware (HVM)

As teacutecnicas descritas apresentam alguns inconvenientes que enfraquecem o desempenho

como o teste a todas as instruccedilotildees e traduccedilatildeo das instruccedilotildees privilegiadas na Virtualizaccedilatildeo

Total e a alteraccedilatildeo do SO guest na Para-Virtualizaccedilatildeo agarrando o SO aacute arquitectura

limitando a compatibilidade e suporte

A Virtualizaccedilatildeo assistida por Hardware figura 53 eacute aplicada directamente nos

processadores e restante hardware satildeo usadas extensotildees de virtualizaccedilatildeo do processador e

hardware para virtualizaccedilatildeo dos guestrsquos fornecendo assim um recurso que permita ao

hypervisor executar ainda mais proacuteximo do hardware As instruccedilotildees sensiacuteveis satildeo agora

entregues sem a necessidade da traduccedilatildeo binaacuteria aumentando significativamente o

desempenho mas ainda um pouco mais lento que a PV A opccedilatildeo do uso de drivers como a

PV torna-se um avanccedilo notoacuterio neste tipo de implementaccedilatildeo Natildeo emular IO e

armazenamento e ainda oferecer uma plataforma de VMs com SOrsquos natildeo modificados eacute

uma junccedilatildeo das mais-valias dos dois mundos (PVHVM ou PV-on-HVM drivers) Torna-

se assim possiacutevel por exemplo obter um oacuteptimo desempenho no conjunto SO guest

Windows + XenServer

Figura 53 - Virtualizaccedilatildeo assistida por Hardware

C4 Recompilaccedilatildeo dinacircmica

Esta teacutecnica de virtualizaccedilatildeo recompilaccedilatildeo dinacircmica (dynamic recompilation -

DynaRecs) tambeacutem denominada como traduccedilatildeo dinacircmica (dynamic translation) eacute

bastante utilizada Traduz as instruccedilotildees de um determinado formato para outro formato

durante a proacutepria execuccedilatildeo do programa permitindo assim a criaccedilatildeo do ambiente nativo

92

do programa Essa traduccedilatildeo eacute relativa a instruccedilotildees do SO guest e das suas aplicaccedilotildees

mais proacuteximas do SO host Assim o VMM ou hipervisor analisa reorganiza e traduz as

sequecircncias de instruccedilotildees emitidas pelo SO guest em novas sequecircncias de instruccedilotildees

(coacutedigo de mais alto niacutevel) compiladas na linguagem nativa do sistema host para que esse

coacutedigo gerado seja mais eficiente

Essa eficiecircncia de coacutedigo prende-se com adaptaccedilatildeo de instruccedilotildees agrave interface ISA

do sistema real detectar e tratar instruccedilotildees sensiacuteveis e ainda analisar reorganizar e

optimizar sequecircncias de instruccedilotildees do SO guest com o fim uacuteltimo da eficiecircncia e

desempenho da sua execuccedilatildeo Nesta ultima anaacutelise eacute usual guardar em cache a traduccedilatildeo

dos blocos de instruccedilotildees frequentes melhorando assim ainda mais o desempenho Eacute

notoacuteria a vantagem desta teacutecnica como o acesso a coacutedigo em tempo de execuccedilatildeo natildeo

alcanccedilaacutevel a um compilador estaacutetico mas em contrapartida tambeacutem exige muito mais

processamento

93

Anexo D (Detalhes da plataforma e restriccedilotildees da VMware)

Detalhes da plataforma e restriccedilotildees da VMWARE

Tabela 13 - Dados gerais VMWARE

Criador VMM Tipo Finalidade Uso Host VMs

host

Servidor

dedicado

Gestatildeo

Central

Gestatildeo

Remota Guest OSrsquos Host OSrsquos Guest Licenccedila

VMware

Player Tipo 2

Descktop

Utilizadores finais

Criar

Testar

Seguranccedila

Intel e AMD

(32-64 bits)

1-2 Natildeo Natildeo Natildeo

Intel e AMD

(32-64 bits)

Windows Windows

Windows Server 2012 8 Server 2008 R2 7

Server 2008 Vista Server 2003 XP 2000 NT

40 ME 98 95 MS-DOS 622 e Windows

31x

Linux

Asianux Server CentOS Debian Fedora

Mandrake Mandriva Novell openSUSE

Oracle Enterprise Red Hat Enterprise Red

Hat Sun Java Desktop System SUSE

Enterprise SUSE Turbolinux Ubuntu

UNIX e outros OSrsquos

Mac OS X Server eComStation FreeBSD

IBM OS2 Warp Netware Solaris SCO

Livre

Server GSX Tipo 2

Consolidar

Testar

Desenvolver

Windows Linux Proprietaacuterio

(desc)

Workstation Tipo 2 Criar

Testar

Desenvolver

lt 10 Natildeo Natildeo Natildeo Windows Linux

Proprietaacuterio

Fusion Tipo 2 Mac OS X

Proprietaacuterio

vSphere

ESXi Tipo 1

Datacenter

Infra-estrutura Cloud

Consolidar

Disponibilidade

Cloud

Criar

Testar

Desenvolver

512 Sim Natildeo Sim Sem OS Livre

Proprietaacuterio

ESX Tipo 1 512 Sim Sim Sim Sem OS Proprietaacuterio

(desc)

Tabela 14 - Detalhes VMWARE

VMM

(Configuraccedilotildees maacuteximas) Cluster Hosts VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

VMware Player 50 - - - 4 8 Sem lim 8GB (32bits)

64GB (64bits) NA (2TB) - -

VMware Server 20 - - 64 16 2 Sem lim 8GB NA 4 IDE + 60 SCSI (950GB) - descontinuado

VMware Workstation 90 - - - igual 8 Sem lim 8GB (32bits)

64GB (64bits) NA 4 IDE + 60 SCSI (2TB)

10 NICs SO Windows

255 NICs SO Linux Snapshots

VMware

vSphere 51

VM - - - - 64 - 1TB - 4 IDE + 60 SCSI (2TB) 10 NICs 128MB graacutefica

ESX ESXi 32 - 512host

4000cluster

32 fisicos

160 logicos 32 2TB 1TB

2048 vdisc

(64TB) 4 IDE + 60 SCSI (2TB)

32portas Ethernet a 1Gb

4 NICs fiacutesicos a 10Gb

Portas Infiniband etc

-

vCloud Director - 2000 30000 - - - - 10000 DC - 10000 -

vCenter Server - 1000 15000 - - - - 500 - 10 vCenter Servers ligados -

94

Anexo E (Detalhes da plataforma e restriccedilotildees da Citrix)

Detalhes da plataforma e restriccedilotildees da Citrix

Tabela 15 - Dados gerais Citrix

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Xensource Xen Tipo 1

Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

x86

x86-64

IA-64

x86

x86-64

IA-64

NetBSD Linux Solaris

FreeBSD NetBSD Linux Solaris Windows XP Windows Server 2003 Plan 9 Versatildeo 61

Ubuntu CentOS

Red Hat Enterprise Linux

Oracle Enterprise Linux

Windows 8 (32-bit64-bit)

Windows Server 2012

GPL ndash livre

Advanced Edition - Proprietaacuterio

Enterprise Edition - Proprietaacuterio

Platinum Edition - Proprietaacuterio

Tabela 16 - Dados detalhados Citrix

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Redehost Outros

Host VM Host VM Host VM

XenServer 61 16 150host

1600cluster

160 loacutegicos

900 virtuais 32 1 TB 128 GB 512 virtuais

16 virtuais

NFS e LVM (2TB)

7 NICrsquos virtuaisVM

16 NICrsquos fiacutesicos

512 NICrsquos virtuais

800 VLANrsquos

4 GPUshost

95

Anexo F (Detalhes da plataforma e restriccedilotildees da HP)

Detalhes da plataforma e restriccedilotildees da HP

Tabela 17 - Dados gerais HP

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Hewlett-Packard Integrity Virtual Machines Tipo 1

Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

IA-64 IA-64 HP-UX 11i v3

HP-UX 11i v2 e v3 Windows Server 2003 (SP1 e SP2 RHEL AP 44 45 SLES 10 SP

Proprietaacuterio

Tabela 18 - Dados detalhados HP

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

HP Integrity Virtual Machines 61 512 HP-UX limit 16 HP-UX limit 128GB HP-UX limit 4 IDE + 256 SCSI (2TB) 62 NICrsquos

96

Anexo G (Detalhes da plataforma e restriccedilotildees da Microsoft)

Detalhes da plataforma e restriccedilotildees da Microsoft

Tabela 19 - Dados gerais Microsoft

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Microsoft

Virtual PC 2007 Tipo 2

Criar

Testar

Hobby

Estaccedilatildeo de trabalho

Negoacutecios

x86 x86-64 x86

Windows Vista (Business

Enterprise Ultimate) XP Pro XP

Tablet PC Edition

DOS Windows OS2

Linux (SUSE Xubuntu) OpenSolaris (Belenix) Proprietaacuterio

Virtual PC 7 for Mac Tipo 2 PowerPC x86 Mac OS X Windows OS2

Linux Proprietaacuterio

Virtual Server 2005 R2 Tipo 2 Server

Server farm x86 x86-64 x86 Windows 2003 XP

Windows NT 2000 2003

Linux (Red Hat SUSE) Proprietaacuterio

Hyper-V Server 2008 R2 Tipo 1 Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

x86-64

(Intel VT-x ou AMD-V)

x86-64

x86 (ateacute 8 CPUs fiacutesicos)

Windows 2008 com Hyper-V

Windows Hyper-V Server

Windows 2000 2003 e 2008 Windows XP e Vista

Linux (SUSE 10) Proprietaacuterio

Hyper-V Server 2012 Tipo 1

x86-64

(Intel VT-x ou AMD-V apenas

para RemoteFX)

x86-64

(ateacute 64 CPUs fiacutesicos) Windows 2012 com Hyper-V

Windows NT

Linux (SUSE10 RHEL 6 CentOS 6) Proprietaacuterio

Tabela 20 - Dados detalhados Microsoft

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

Hyper-V Server 2008 R2 16 384host

1000cluster

8 fiacutesicos

64 loacutegicos

512 virtuais

4

1 TB 64GB No limit 4 IDE + 256 SCSI (2TB) - -

Hyper-V Server 2012 64 1024host

8000cluster

64 fiacutesicos

320 loacutegicos

2048 virtuais

64

4 TB 1 TB No limit

4 IDE + 256 SCSI

(VHD 2 TB)

(VHDX 64 TB)

32 NICrsquos

10GB migraccedilatildeocluster

REST

powershell

snapshots

suporte VMConnect

para RemoteFX

97

Anexo H (Ambiente de armazenamento VMware ESXi e Citrix Xen)

Ambiente de armazenamento VMware ESXi e Citrix Xen

H1 VMware (VmWare In)

VMFS (Virtual Machine File System) eacute um sistema de ficheiros num Cluster eacute

proprietaacuterio da VMware e foi optimizado para operaccedilotildees de entrada e saiacuteda (IO) com

ficheiros grandes realidade das imagens das maacutequinas virtuais Representa uma soluccedilatildeo

escalaacutevel e de alto desempenho para hospedagem de VMs no bloco de armazenamento

oferecendo partilha e isolamento O serviccedilo VMFS constitui a base de aplicaccedilotildees num

cluster VMware como vMotion (onde existe partilha de dados) Storage VMotion

agendamento de recursos distribuiacutedos alta disponibilidade e toleracircncia a falhas Os

metadados da maacutequina virtual satildeo serializados para ficheiros e o software VMFS fornece

uma interface POSIX (Portable Operating System Interface) - API com a opccedilatildeo de

consola Command Line (CL) e utilidades de interfaces) - para cluster com operaccedilotildees

seguras de gestatildeo de maacutequinas virtuais

Este tipo de armazenamento de dados pode ser feito em qualquer dispositivo de

armazenamento com base em ligaccedilotildees de armazenamento como

Armazenamento de ligaccedilatildeo direta (SCSI local) ligaccedilatildeo local direta aos discos

de armazenamento interno ou externo geralmente SATA IDE (Integrated

Drive Electronics) EIDE etc

Fibre Channel protocolo de transporte usado em SANrsquos onde o Fibre Channel

encapsula comandos SCSI sobre o protocolo FC

FCoE O uso do FC sobre Ethernet onde o traacutefego FC eacute encapsulado em

quadros Ethernet

iSCSI iSCSI transporta comandos SCSI sobre redes IP

IP ligaccedilatildeo IP aos datastores em NAS suportados pelo vSphere ESX

Vista do armazenamento pelo SO Guest

Uma VM na arquitectura ESX usa espaccedilo em disco para armazenar os seus

metadados de configuraccedilatildeo e os proacuteprios dados um pequeno nuacutemero de imagens

aproximadamente 30 a 100 por VM O espaccedilo de armazenamento em disco contem estes

ficheiros de texto muito pequenos (bytes ou KB) mas tambeacutem conteacutem ficheiros do

proacuteprio disco virtual que normalmente satildeo ficheiros muito grandes (centenas de MB ou

GB) e ainda ficheiros de swap (ficheiros guardados pelo SO para aumento virtual da

memoacuteria de trabalho (RAM))

98

Um dos princiacutepios da virtualizaccedilatildeo diz-nos que um SO guest natildeo deve suportar a

carga da gestatildeo de dispositivos fiacutesicos deve concentrar-se em fornecer um ambiente de

execuccedilatildeo de aplicaccedilotildees Assim um dos objetivos da arquitetura VMFS e em particular do

vSphere ESX eacute simplificar todo este acesso de armazenamento ao SO guest O hardware

virtual apresentado a um SO guest vSphere inclui um conjunto de controladores SCSI e

IDE que possuem drivers comuns disponiacuteveis em quase todos os sistemas operacionais O

SO guest vecirc um disco fiacutesico simples ligado atraveacutes de um controlador padratildeo gravado no

formato VMDK (Virtual Machine Disk) formato da VMWare Esta visatildeo virtualizada de

armazenamento apresentada ao SO guest tem uma seacuterie de vantagens como a gestatildeo

facilitada pelo facto de serem usados controladores padratildeo com drivers incluiacutedas nos

SOrsquos o facto de suportar diferentes ligaccedilatildeo e acessos ao armazenamento como iSCSI e

FCoE disponiacuteveis nos SOrsquos sem que estes suportem os protocolos nativos e a melhoria de

eficiecircncia e disponibilizaccedilatildeo na recuperaccedilatildeo de desastres com a disponibilizaccedilatildeo de

muacuteltiplos caminhos no acesso aos dados contrariamente ao peso da redundacircncia de

muacuteltiplos servidores fiacutesicos

H2 Xen Server (Citrix)

O VMM ou hypervisor Xen eacute apenas responsaacutevel pela gestatildeo de CPU memoacuteria e

interrupccedilotildees ou seja natildeo tem conhecimento do IO de Rede e Armazenamento Para lidar

com entradas e saiacutedas de Rede e Armazenamento o XenServer dispotildee de um domiacutenio de

controlo uma VM especializada denominada ldquoDom0rdquo (Domiacutenio 0) com SO Linux e

privileacutegios especiais eacute considerado parte integrante do XenServer aquando da instalaccedilatildeo

Alem de aceder diretamente o hardware controla todos os acessos de IO e interage com

as outras VMs Esta VM especial contem os drivers padratildeo do coacutedigo aberto Linux de

uma vasta diversidade de hardware e uma interface de controlo (consola ou interface

graacutefica) para controlo do sistema Conteacutem ainda uma pilha de controlo (toolstack) para

fazer toda a gestatildeo das VMs as conhecidas ldquoDomUrsquosrdquo (Domiacutenios dos utilizadores)

relativamente a sua criaccedilatildeo destruiccedilatildeo e configuraccedilatildeo

O XenServer da Citrix armazena as suas VMs diretamente no formato Microsoft

VHD (Virtual Hard Disk) num disco local natildeo partilhado (EXT) ou contrariamente ao

VMware natildeo dispondo do seu proacuteprio sistema de armazenamento aproveita as

capacidades nativas de armazenamento como por exemplo um sistema de armazenamento

partilhado como o NFS Com armazenamentos baseados em iSCSI ou FC o XenServer

estende o VHD do sistema de ficheiros para o padratildeo open source LVM (Logical Volume

Manager) para gestatildeo de volumes numa LUN abstraindo os volumes fiacutesicos em volumes

loacutegicos Permite ainda que seja possiacutevel a criaccedilatildeo de uma LUN por cada VDI

O XenServer oferece assim suporte de armazenamento de VMs em discos locais

iSCSI ou SAN baseado em FC ou NAS estes dois uacuteltimos para migraccedilotildees e alta

disponibilidade Ferramentas como XenCenter Storage Repository para implementaccedilatildeo e

99

StorageLink para integraccedilatildeo de armazenamentos com snapshots clones8 e ldquothin

provisioningrdquo9 satildeo uma mais-valia no XenServer

Cada host XenServer pode aceder a um ou vaacuterios dispositivos de armazenamento

diferentes simultaneamente Estes dispositivos de armazenamento podem ser dedicados

apenas a um host ou partilhados entre hosts permitindo que uma imagem de disco virtual

(VDI) num determinado sistema de armazenamento possa ser iniciada em qualquer host

Armazenamento local

Este tipo de armazenamento eacute local ao host XenServer (IDEPATA Serial ATA

(SATA) SCSI e Serial Attached SCSI (SAS)) e neste contexto satildeo suportados dois tipos

de armazenamento um sistema de ficheiros EXT e LVM (Logical Volume Manager)

numa LUN

Uma LUN num SAN iSCSI ou SAN Fibre Channel

Nestes dois tipos de armazenamento (tratados diferentemente pelo XenServer)

figura 54 os ficheiros satildeo apresentados ao XenServer como ficheiros normais ou mesmo

num sistema de ficheiros LVM numa LUN

Eacute criada uma LUN onde todos os servidores se ligam Essa LUN eacute dividida em

volumes loacutegicos onde apenas uma e uma soacute VM ligada a um desses volumes loacutegicos de

cada vez

Figura 54 - LUN num SAN iSCSI ou SAN FC

Network File System (NFS)

Neste tipo de armazenamento figura 55 eacute criado um NFS onde todos os

servidores se ligam e partilham ficheiros VDI que eacute o disco fiacutesico na visatildeo de uma VM O

XenServer lida com este tipo de armazenamento como um conjunto e discos virtuais

(VDIrsquos) armazenados no formato Microsoft VHD especialmente adequado para

ambientes NSF As imagens das VMs satildeo armazenadas como ficheiros neste formato

8 Clone Um programa ou hardware que imita o produto original e pode ser executado de igual modo como se

fosse original 9 Thin provisioning Meacutetodo de otimizaccedilatildeo da eficiecircncia com que o espaccedilo disponiacutevel eacute utilizado numa SAN

100

(VHD) um disco riacutegido virtual Estes ficheiros permitem que VMs sejam instanciadas em

qualquer host de uma pool de recursos e possam ser feitas migraccedilotildees entre servidores com

o XenMotion

XenServer suporta NFS sobre TCPIP O volume NFS localizado num servidor

NFS eacute acedido montado e usado para as necessidades convenientes de armazenamento

seraacute criada uma diretoria de partilha com um nome que eacute o Identificador Uacutenico Universal

(UUID) atribuiacutedo a esse armazenamento

Figura 55 - Network File System (NFS)

Opccedilotildees de armazenamento de terceiros como NetApp ou Dell EqualLogics

O armazenamento eacute feito por dispositivo especiacuteficos de armazenamento como

NetApp (Network Appliance) ou Dell EqualLogics como fornecedores liacutederes de

armazenamento de ficheiros em rede e sistemas de distribuiccedilatildeo de conteuacutedo A gestatildeo do

armazenamento eacute suportada pelo XenCenter

Vista do armazenamento pelo SO Guest

Existem 2 tipos de VMs no XenServer ldquoDom0rdquo e ldquoDomUrdquo ambas VM guestrsquos

diferindo no seu propoacutesito O Dom0 de controlo e parte integrante de todo o sistema

XenServer dispotildee de acesso privilegiados ao hardware tem drivers dos dispositivos e eacute

instanciada aquando do boot do sistema Os DomUrsquos satildeo totalmente isolados do hardware

e comunicam diretamente com o VMM ou hypervisor que controla a memoacuteria e o

processador do host A comunicaccedilatildeo com os restantes perifeacutericos eacute feita sob o controlo da

VM Dom0 (domiacutenio 0 domiacutenio de controlo) com os drivers especiacuteficos de dispositivos

como Rede e Armazenamento Os DomUrsquos satildeo conhecidos como domiacutenios sem

privileacutegios

Em termos de virtualizaccedilatildeo o Xen suporta em simultacircneo VM guests com para-

virtualizaccedilatildeo (PV) (virtualizaccedilatildeo assistida por SO) ou virtualizaccedilatildeo assistida por hardware

(HVM) Na PV apesar da modificaccedilatildeo do SO natildeo requer virtualizaccedilatildeo do processador

nem do hardware uma vez que dispotildee de drivers para aceder diretamente usando a

capacidade total dos dispositivos Na HVM satildeo usadas extensotildees de virtualizaccedilatildeo do

101

processador e hardware host para virtualizar os guets mas natildeo haacute modificaccedilatildeo do SO

guest eacute mais lento que PV mas apresenta a valecircncia da portabilidade A ultima aposta da

Citrix visando oacutetimos desempenhos foi a junccedilatildeo destes dois mundos para-virtualizaccedilatildeo e

virtualizaccedilatildeo assistida por hardware (PVHVM ou PV-on-HVM drivers)

Uma VM (DomU) no mundo virtual de um XenServer vecirc o seu armazenamento

como um disco local (imagens VDI guardadas na sua representaccedilatildeo Microsoft VHD) Na

realidade o XenServer alocou uma percentagem do armazenamento real e atraveacutes do

hypervisor e Dom0 fez toda a abstraccedilatildeo tornando-o disponiacutevel como um recurso de um

disco para essas VMs O SO guest do Dom0 eacute Linux e neste SO os discos fiacutesicos satildeo

representados como ficheiros desses dispositivos (devsda) Os ficheiros dos dispositivos

de armazenamento podem representar discos conectados localmente (armazenamento

local) ou um nuacutemero de unidade loacutegica (LUN) numa SAN sendo a gestatildeo feita por LVM

e ainda a opccedilatildeo NFS

102

Anexo I (Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo)

Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo

I1 Criaccedilatildeo de um projecto Web Service

Um projecto Web Service figura 56 pode ser criado com o IDE Eclipse IDE for Java EE

Developers Configurado todo o ambiente podemos criar um projecto Web Service

mediante vaacuterias abordagens variando nas suas configuraccedilotildees e especificaccedilotildees

naturalmente

Web Dynamic Web Project

JBoss Central HTML5 Project

JBoss Tools Create a Sample RESTfull Web Service

Maven Maven Project

Web Service Create a Sample RESTfull Web Service

Figura 56 - Projecto ldquoDynamic Web Projectrdquo no eclipse

Webxml

103

Ficheiro responsaacutevel pelo registo do servlet10

fornecido pelo Jersey Um servlet

responsaacutevel por analisar os pedidos http e selecionar a classe e meacutetodo para responder ao

pedido mediante as anotaccedilotildees JAX-RS previamente colocadas aquando da criaccedilatildeo do

coacutedigo Webxml define ainda o path sob o qual o Web Service seraacute disponibilizado

URL httpdominioportanome-da-aplicacaourl-patternpath-das-classes-rest

ltxml version=10 encoding=UTF-8gt ltweb-app xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlns=httpjavasuncomxmlnsjavaee xmlnsweb=httpjavasuncomxmlnsjavaeeweb-app_2_5xsd xsischemaLocation=httpjavasuncomxmlnsjavaee httpjavasuncomxmlnsjavaeeweb-app_2_5xsd id=WebApp_ID version=25gt lt-- nome da aplicaccedilatildeo --gt ltdisplay-namegtdevogellajerseytodoltdisplay-namegt ltservletgt lt-- suporte para aplicaccedilotildees Web baseado em servlet e filtro --gt ltservlet-namegtJersey REST Serviceltservlet-namegt ltservlet-classgtcomsunjerseyspicontainerservletServletContainerltservlet-classgt ltinit-paramgt lt-- define o pacote das classes de recurso java do Web Service --gt ltparam-namegtcomsunjerseyconfigpropertypackagesltparam-namegt ltparam-valuegtdevogellajerseytodoresourcesltparam-valuegt ltinit-paramgt ltload-on-startupgt1ltload-on-startupgt ltservletgt ltservlet-mappinggt lt-- URL pattern define parte da URL base onde o Web Service seraacute disponibilizado --gt ltservlet-namegtJersey REST Serviceltservlet-namegt lturl-patterngtrestlturl-patterngt ltservlet-mappinggt ltweb-appgt

ex httplocalhost8080devogellajerseytodoresttodos1

domiacutenio localhost

porta 8080

nome da aplicaccedilatildeo (webxml display-name) devogellajerseytodo

URL base (webxml url-pattern do servlet-mapping) rest

anotaccedilatildeo Path na classe Java todos

anotaccedilatildeo PathParam 1

10 Servlet Uma classe na linguagem de programaccedilatildeo Java que processa dinamicamente pedidos e

respostas gerando dados HTML e XML para a camada de apresentaccedilatildeo de uma aplicaccedilatildeo Web

104

Principais anotaccedilotildees JAX-RS

PATH(your_path) adiciona mais um paracircmetro ao URL (URL+your_path)

POST O meacutetodo responde a um pedido HTTP POST

GET O meacutetodo responde a um pedido HTTP GET

PUT O meacutetodo responde a um pedido HTTP PUT

DELETE O meacutetodo responde a um pedido HTTP DELETE

Produces(MediaType

TEXT_PLAIN[more-types])

Define o tipo MIME a ser entregue por um meacutetodo GET

Consumes(type[more-ypes ] ) Define o tipo MIME a ser consumido pelo meacutetodo

PathParam Usado para especificar valores da URL num paracircmetro do

meacutetodo

Uma outra anotaccedilatildeo fundamental eacute XmlRootElement para que o Jersey saiba

que os atributos iratildeo passar a noacutes no momento em que o XML como resposta ao cliente

De igual modo se receber um XML no corpo de um pedido o Jersei vai saber fazer a

conversatildeo desse XML para um objeto do tipo da classe em causa

I2 Exemplos de solicitaccedilotildees agrave API do MOE

Adicionar mais um processador a um Servidor

Operaccedilotildees sobre Servidores

Verb URI Description

GET servers Lista servidores

GET serversdetail Lista detalhes dos servidores

POST servers Cria servidor

GET serversid Lista detalhes dos servidores

PUT serversid Atualiza dados dos servidores

DELETE serversid Remove servidor

hellip hellip hellip

Um flavor representa uma configuraccedilatildeo de hardware disponiacutevel para um dado tipo

de servidores e eacute uma combinaccedilatildeo uacutenica de espaccedilo em disco capacidade de memoacuteria

nuacutemero de CPUs etc Um servidor eacute uma instacircncia de uma maacutequina virtual e portanto

eacute definido por um flavor

flavors [ disk 10 id 12 name 256_server ram 256 ldquocpurdquo 2 hellip hellip]

Operaccedilotildees sobre Flavors

Verb URI Description

GET flavors Lista flavors

GET flavorsdetail Lista detalhes dos flavors

105

GET flavorsid Lista detalhe do flavor

hellip hellip hellip

O objectivo eacute alterar o nuacutemero de CPUs de um servidor especiacutefico e para tal

temos de saber o valor desse campo no flavor desse servidor

Algoritmo passo-a-passo

1) Listar todos os servidores existentes

Esta operaccedilatildeo obteacutem uma lista de servidores associados agrave conta de um

determinado utilizador Em cada servidor (da lista) um atributo indica o estado actual do

servidor servidores com o estado ACTIVE estatildeo disponiacuteveis para utilizaccedilatildeo

Verb URI Description

GET servers Lista todos os servidores (apenas os IDs e nomes)

GET serversdetail Lista todos os servidores (todos os detalhes)

Coacutedigo para respostas normais 200 203

Coacutedigo para respostas de ERRO serversFault (400 500) serviceUnavailable

(503) unauthorized (401) badRequest (400) overLimit (413)

Resposta da listagem dos servidores XML (detalhes)

ltxml version=10 encoding=UTF-8gt ltservers xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgtgt ltserver id=1234 name=sample-server imageId=1 flavorId=12 status=BUILD progress=60 hostId=e4d909c290d0fb1ca068ffaddf22cbd0gt ltmetadatagt ltmeta key=Server LabelgtWeb Head 1ltmetagt ltmeta key=Image Versiongt21ltmetagt ltmetadatagt ltaddressesgt

ltpublicgt ltip addr=672310132gt ltip addr=672310131gt ltpublicgt ltprivategt ltip addr=101764216gt ltprivategt ltaddressesgt ltservergt hellip ltserversgt

De entre todos os servidores da lista o utilizador pretende ALTERAR o nuacutemero

de CPUs do servidor (server id=1234) ou seja precisa aceder ao flavor

(flavorId=12)

106

2) Listar o flavor (flavorId=12)

Esta operaccedilatildeo obteacutem os detalhes de um flavor especiacutefico (id)

Verb URI Description

GET flavorsid Lista detalhe do flavor especiacutefico

Coacutedigo para respostas normais 200 203

Error ResponseCode(s) serversFault (400 500) serviceUnavailable (503)

unauthorized (401) badRequest (400) itemNotFound (404) overLimit (413)

Resposta com detalhes de um Flavor XML

ltxml version=10 encoding=UTF-8gt ltflavor xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgt id=1 name=256 MB Server ram=256 disk=10 cpu=rdquo2rdquo gt

3) Alterar o nuacutemero de CPUs de 2 para 3 do servidor (server id=1234) flavor

(flavorId=12)

Esta operaccedilatildeo permite que se atualize o numero de CPUs do flavor associado ao

servidor Facilmente se depreende que esta operaccedilatildeo soacute seraacute possiacutevel se o utilizador puder

efectuar esta operaccedilatildeo (Status Transition ACTIVE)

Verb URI Description

PUT servers1234flavor12cpu3 Atualiza dados dos servidores

Coacutedigo para respostas normais 204

Coacutedigo para respostas de ERRO serversFault (400 500) serviceUnavailable

(503) unauthorized (401) badRequest (400) badMediaType(415) itemNotFound (404)

buildInProgress (409) overLimit (413)

Status Transition ACTIVE CONFIGURESERVER (if configureServer is

true)

Pedido de Update do flavor do servidor XML

ltxml version=10 encoding=UTF-8gt ltserver xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgt server id=1234 flavorId=12 cpu=rdquo3rdquo gt

107

Anexo J (Ferramentas de desenvolvimento WebService)

Principais ferramentas e suas configuraccedilotildees usadas na criaccedilatildeo e desenvolvimento deste

webservice

Plataforma Java

Servidor Apache Tomcat

Ambiente de desenvolvimento Eclipse

JARacutes e Plugins

Macromedia Dreamweaver

Notepad++

J1 Plataforma Java

Java eacute uma linguagem de programaccedilatildeo orientada a objeto e considera-se diferente das

outras linguagens convencionais pelo facto de ser compilada para bytecode e executado

por uma maacutequina virtual contrariamente agrave compilaccedilatildeo para coacutedigo nativo A linguagem

de programaccedilatildeo Java eacute a linguagem convencional da Plataforma Java que pode ser

adquirida no site httpjavacomendownloadindexjsp

Figura 57 - Plataforma Java

Como o RESTWEBSERVICE foi criado e executado em ambiente Windows a

explicaccedilatildeo seraacute feita tendo em vista este ambiente

108

Assim vamos verificar se temos a plataforma java instalada e se eacute a ultima versatildeo

lsquoIniciarrsquo e executar lsquocmdrsquo abre-se uma consola de linha de comando do MS Windows

executamos o comando

ldquojava -versionrdquo

Este comando corresponde agrave chamada da maacutequina virtual para executar

ldquobytecoderdquo

Figura 58 - Comando ldquojava -versionrdquo

Java version ldquo170_25 JDK ou JRE

JRE(Java Runtime Environment) Ambiente de execuccedilatildeo Java (Java Virtual

Machine) Como ambiente seraacute apenas possiacutevel a execuccedilatildeo de coacutedigo Java jaacute

compilado

JDK (Java Development Kit) Kit de desenvolvimento Java onde se inclui o

compilador (javac) e o ambiente de execuccedilatildeo Java (JVM) Neste caso podemos

compilar classes java directamente de coacutedigo fonte e executa-las posteriormente

no JRE maacutequina virtual Java

J11 Instalaccedilatildeo

Caso seja necessaacuteria a instalaccedilatildeo da plataforma java termos que fazer o download (versatildeo

7 update 25) e efectuar a sua instalaccedilatildeo Por defeito apoacutes a instalaccedilatildeo teremos os dois

ambientes JDK e JRE na directoria ldquoCProgram FilesJavardquo

Para testar a instalaccedilatildeo do compilador (JDK) lsquoIniciarrsquo e executar lsquocmdrsquo abre-se

uma consola de linha de comando do MS Windows executamos o comando

109

ldquojavacrdquo

Figura 59 - Instalaccedilatildeo da Plataforma Java

Concluiacuteda a instalaccedilatildeo da plataforma java teremos que definir as variaacuteveis de

ambiente para a posterior execuccedilatildeo do ambiente de desenvolvimento IDE (Integrated

Development Environment ) Eclipse e todas as dependecircncias do Java

J12 Variaacuteveis de ambiente

ldquoIniciarrdquo ldquoPainel de controlerdquo ldquoDefiniccedilotildees avanccediladas do sistemardquo ldquoVariaacuteveis de

ambienterdquo ldquoVariaacuteveis de sistemardquo

PATH ndash adicionar ldquodirectoria de instalaccedilatildeo do JDKrdquobin

ex CProgram FilesJavajdk170_25bin

Figura 60 - Variaacutevel de sistema ldquoPathrdquo

CLASSPATH ndash criar esta variaacutevel

Nome da variaacutevel ldquoCLASSPATHrdquo

Valor da variaacutevel ldquordquo

110

Figura 61 - Variaacutevel de sistema ldquoCLASSPATHrdquo

JAVA_HOME ndash criar esta variaacutevel com a ldquodirectoria de instalaccedilatildeo do

JDKrdquobin

ex CProgram FilesJavajdk170_25bin

Figura 62 - Variaacutevel de sistema ldquoJAVA_HOMErdquo

J13 Teste da instalaccedilatildeo da plataforma java e configuraccedilatildeo das variaacuteveis de

ambiente

Vamos verificar se as variaacuteveis foram definidas correctamente Para isso com o

Notpad++ vamos criar um ficheiro com o nome ldquoTestjavardquo e incluir o seguinte coacutedigo

public class Test public static void main(String[] args) throws Exception Systemoutprintln(Hello RESTWEBSERVICE)

Finalmente vamos compilar a classe na directoria onde foi criada e executaacute-la

utilizando a maacutequina virtual Java Na consola de linha de comando vamos executar os

seguintes comandos

javac Testjava ndash Comando para compilar a classe java criada

java Test - Comando para executar a classe Test

Se as variaacuteveis de ambiente foram definidas correctamente deveremos ter

como resposta

ldquoHello RESTWEBSERVICErdquo

111

J2 Servidor Apache Tomcat

Apache Tomcat eacute uma implementaccedilatildeo de software de fonte aberta das tecnologias Java

Servlet e JavaServer Pages (JSP) Egrave um servidor web HTTP em linguagem java um

servidor de aplicaccedilotildees JEE (Java Enterprise Edition) Tem a vantagem de incluir

ferramentas para gestatildeo e configuraccedilatildeo que podem ser editadas directamente num ficheiro

de configuraccedilatildeo em XML

O download deste servidor pode ser feito directamente no site da Tomcat

httptomcatapacheorgdownload-70cgi

J21 Instalaccedilatildeo

Feito o download basta descompactar o ZIP numa directoria ex C onde seraacute criado

uma pasta com o nome do ZIP Capache-tomcat-7034 Como versatildeo preacute-configurada

disponibiliza de imediato as seguintes configuraccedilotildees

A porta de acesso aacutes aplicaccedilotildees eacute a 8080 Basta para isso digitar o URL

seguido de ldquordquo e a porta 8080

ex httplocalhost8080MOE

Se natildeo existirem redireccionamentos eacute possiacutevel a listagem de directorias

Esta opccedilatildeo eacute sempre desactivada depois nas implementaccedilotildees

Monitorizaccedilatildeo sempre constante qualquer alteraccedilatildeo dos ficheiros natildeo existe a

necessidade de fazer um restart ao servidor

Figura 63 - Directoria de instalaccedilatildeo do Servidor Apache Tomcat

112

J22 Execuccedilatildeo

Para testarmos o servidor Apache Tomcat basta corresmos o executaacutevel ldquoTomcat7exerdquo

da directoria ldquoCTomcat 70binrdquo e aceder ao link httplocalhost8080

Figura 64 - Link localhost Apache Tomcat

J3 Ambiente de desenvolvimento Eclipse

Eclipse eacute um IDE (Integrated Development Environment) ou ambiente integrado de

desenvolvimento eacute um programa com caracteriacutesticas e ferramentas de apoio ao

desenvolvimento de software com a vantagem de ter a maior parte das ferramentas de

desenvolvimento jaacute integradas e prontas a usar Uma orientaccedilatildeo baseada em plugins que

mediante incorporaccedilatildeo satisfazem as necessidades dos diferentes programadores

O download deste IDE pode ser feito directamente no site

httpwwweclipseorgdownloads O package em questatildeo para o desenvolvimento

direcionado agrave web eacute o ldquoEclipse IDE for Java EE Developersrdquo que jaacute vem com a maior

parte dos plugins destinados a este tipo de desenvolvimento

J4 JARs e Plugins

O ambiente de desenvolvimento Eclipse principalmente o ldquoEclipse IDE for Java EE

Developersrdquo jaacute vem com a maior parte dos plugins por defeito para desenvolvimentos

orientados agrave web mas haacute um indispensaacutevel muito uacutetil natildeo soacute no acesso aos menus de

configuraccedilatildeo do projecto como tambeacutem ferramentas de configuraccedilatildeo do servidor Apache

Tomcat plugin ldquoWeb Tools Platform (WTP)rdquo

Podemos fazer o download directo do plugin ou solicitar ao Eclipse que o faccedila por

noacutes e instale directamente Para isso vamos ao menu ldquoHelprdquo ldquoInstall new Softwarerdquo

ldquoaddrdquo

Name Web Tools Platform (WTP)

Location httpdownloadeclipseorgwebtoolsrepositoryindigo

113

Figura 65 - Add repository

Relativamente aos JARs estes satildeo dependents do projecto em siacute e do que se

pretende usar JAR (Java Archive) eacute um formato de ficheiro que normalmente eacute usado

para agregar muitos ficheiros de classes Java e metadados associados recursos como

textos e imagens tudo num uacutenico ficheiro que depois funcionaraacute como bibliotecas na

plataforma Java

Basta para isso colocar os JARs necessaacuterios na directoria

ldquoprojectNameWebContentWEB-INFlibrdquo

J4 Macromedia Dreamweaver

O Adobe Dreamweaver mais conhecido por Macromedia Dreamweaver eacute um software de

desenvolvimento na Web criada pela Macromedia

Um software que fornece suporte para vaacuterias tecnologias web tais como XHTML

CSS JavaScript Ajax PHP ASP ASPNET JSP ColdFusion e outras linguagens

Server-side

Toda a apresentaccedilatildeo web da camada de apresentaccedilatildeo do webservice foi

desenvolvida e testada inicialmente neste software Desenvolvimento de coacutedigo HTML

JSP incorporaccedilatildeo de imagens construccedilatildeo de tabelas etc

A5 Notepad++

Notepad++ eacute um editor de texto e de coacutedigo fonte aberto sob licenccedila GPL Tem a

vantagem de suportar vaacuterias linguagens de programaccedilatildeo como HTML JSP CSS JQuery

Javascript e eacute optimo para alteraccedilotildees raacutepidas de coacutedigo e sua visualizaccedilatildeo

114

Anexo K (Criar e executar um ldquoDynamic Web Projectrdquo no Eclipse)

K1 Criar um ldquoDynamic Web Projectrdquo

Para criar um ldquoDynamic Web Projectrdquo temos que iniciar o Eclipse e nesta primeira

iniciaccedilatildeo vatildeo ser testadas todas as variaacuteveis de ambiente anteriormente criadas e criado

um workspace onde seratildeo guardados todos os nossos projectos

Depois de iniciado o Eclipe para criarmos um ldquoDynamic Web Projectrdquo seguimos

os passos

1 ldquoFilerdquo ldquoNewrdquo ldquoProjectrdquo

2 Na proacutexima janela escolher ldquoWebrdquo ldquoDynamic Web Projectrdquo

Figura 66 - Dynamic Web Project

3 Clique em Next

4 Nas propriedades do projecto

Project name Test

Target runtime Apache Tomcat v70

Dynamic web module version 30

Configuration Default Configuration for Apache Tomcat v70

115

Figura 68 - Propriedades do Dynamic Web Project

5 Clique em Next e depois outra vez em Next

6 Seleccione ldquoGenerate webxml deployment descriptorrdquo para a criaccedilatildeo do

webxml onde seratildeo incluiacutedas todas as definiccedilotildees e configuraccedilotildees do projecto

Figura 69 - Webxml do Dynamic Web Project

7 Clique em Next e todo o projecto eacute criado

116

Figura 70 - Directoria base do Dynamic Web Project

JavaSource (src)

Coacutedigo fonte Java do projeto Recursoso que satildeo automaticamente compilado e os

ficheiros gerados satildeo adicionados ao diretoacuterio WEB-INFclasses

WebContent

Localizaccedilatildeo de todos os recursos da Web incluindo HTML JSP ficheiros

graacuteficos imagens etc Os ficheiros ficam disponiacuteveis apenas nesta directoria ou

subdirectorias quando o servidor eacute executado

META-INF

Esta directoria conteacutem o arquivo MANIFESTMF que eacute usado para mapear o

caminho das classes para os ficheiros JAR dependentes que existem no projecto Quando

um JAR eacute adicionado agrave biblioteca esta entrada eacute adicionada automaticamente neste

ficheiro

WEB-INF

Directoria que conteacutem os recursos da Web de suporte para agrave aplicaccedilatildeo incluindo o

ficheiro webxml e as classes e lib

Classes

Directoria das classes compiladas eacute a directoria de saiacuteda do compilador Java As

classes ldquoclassrdquo satildeo colocados neste directoria automaticamente quando o compilador

Java compila os ficheiros de origem Java que estatildeo no directoria de recursos Java (src)

Lib

Os ficheiros JAR de apoio a toda a aplicaccedilatildeo As classes existentes nos ficheiros

jar ficam disponiacuteveis para uso na aplicaccedilatildeo

Web Deployment Descriptor

O descritor de implementaccedilatildeo de toda a aplicaccedilatildeo o ficheiro webxml

117

K2 Executar um ldquoDynamic Web Projectrdquo

Para testarmos o nosso ldquoDynamic Web Projectrdquo comeccedilamos por criar uma classe na

directoria ldquosrcrdquo ldquoFilerdquo ldquoNewrdquo ldquoOtherrdquo ldquoClassrdquo

Figura 71 - Criar uma classe

Criamos uma classe com o package test e o nome Test e incluiacutemos o seguinte

coacutedigo

package test public class Test public static void main(String[] args) throws Exception Systemoutprintln(Hello RESTWEBSERVICE)

Criamos igualmente um ficheiro HTML na directoria WebContent ldquoFilerdquo ldquoNewrdquo

ldquofilerdquo com o nome ldquotesthtmlrdquo e com o seguinte coacutedigo

lthtmlgt ltheadgt lttitlegtDynamic Web Project HTML pagelttitlegt ltheadgt ltbodygt lth2gt Hello RESTWEBSERVICE lth2gt ltbodygt lthtmlgt

118

Executamos o projecto no menu clicamos em ldquoRunrdquo ldquoRunrdquo escolhemos ldquoRun

on Serverrdquo e a primeira vez que executarmos o projecto temos que fazer a ligaccedilatildeo ao

servidor Apache Tomcat ldquoApacherdquo ldquoTomcat v70 Serverrdquo e ldquoFinishrdquo

Figura 72 - Servidor Apache Tomcat dentro do Eclipse

O projecto estaacute pronto a testar no link httplocalhost8080Testtesthtml

Figura 73 - Execuccedilatildeo no Browser

119

Anexo L (Importar configurar e executar o RESTWEBSERVICE - MOE)

A implementaccedilatildeo RESTWEBSERVICE - MOE eacute um webservice desenvolvido numa

arquitectura orientada a Web (Web-Oriented Architecture - WOA) disponibilizando os seus

recursos na Web atraveacutes do protocolo REST (Representational State Transfer) para troca de

informaccedilatildeo Vantagens como a simplicidade de interaccedilatildeo entre sistemas heterogeacuteneos a

facilidade de comunicaccedilatildeo entre aplicaccedilotildees existentes em muacuteltiplas plataformas e a

independecircncia de plataformas e linguagens de programaccedilatildeo satildeo evidentes

L1 Importaccedilatildeo do ldquoDynamic Web Projectrdquo MOE

A importaccedilatildeo o projecto ldquoMOErdquo (Matrix Operating Environment) para o ambiente de

desenvolvimento Eclipse carece da criaccedilatildeo de um ldquoDynamic Web Projectrdquo base no Eclipse

Assim para a criaccedilatildeo de um ldquoDynamic Web Projectrdquo seguir os passos descritos na

aliacutenea K1 Criar um ldquoDynamic Web Projectrdquo do Anexo K alterando apenas o nome para

ldquoMOErdquo Natildeo eacute necessaacuterio criar nenhuma classe java nem ficheiro HTML

Figura 74 - Projecto base MOE

Depois do projecto MOE criado basta importar o projecto real para o Eclipse ldquoFilerdquo

ldquoImportrdquo ldquoArchive Filerdquo

Figura 75 - Importaccedilatildeo do projecto real MOE

Seleccionar o projecto a importar O projecto deveraacute ficar com uma organizaccedilatildeo de

directorias como na imagem seguinte

120

Figura 76 - Projecto real MOE

L2 Configuraccedilatildeo inicial do MOE

Para que a execuccedilatildeo do MOE seja feita sem erros e todas as ligaccedilotildees e credenciaccedilotildees sejam

efectuadas temos que criar pastas e ficheiros de leitura inicial do MOE Assim vamos criar

uma directoria em C com o nome ldquorestconfigrdquo (Crestconfig) com 4 ficheiros

adminUsersListtxt

Ficheiro com todos os administradores do MOE Esta lista deveraacute ser igual agrave lista dos

administradores do HPMOE Um administrador por linha ldquodomiacutenioadminrdquo (ex

ldquohpptlabpaulopiresrdquo)

121

Figura 77 - Ficheiro ldquoadminUsersListtxtrdquo

hp-io-v5wsdl

Ficheiro WSDL (Web Service Description Language) a definiccedilatildeo das operaccedilotildees de IO

disponiacuteveis

https ltcms-ip-addressgt 51443hpiocontrollersoapv4 wsdl

Neste ficheiro basta alterar o IP do servidor HPMOE linha 5987

ltsoapaddress location=https1623187651443hpiocontrollersoapv5gt

Figura 78 - Ficheiro ldquohp-io-v5wsdlrdquo

Figura 79 - WSDL do HPMOE

loginconfig

Ficheiro de apoio agrave credenciaccedilatildeo (login) no MOE

No acircmbito da seguranccedila em aplicaccedilotildees JavaEE o servidor Apache Tomcat fornece

uma implementaccedilatildeo Realm JAAS (Java Authentication and Authorization Service) para que

os programadores possam implementar moacutedulos de login JAAS e integraacute-los facilmente com

as suas aplicaccedilotildees JAAS permite assim autenticaccedilotildees em modo Basic e Form usando para

isso os denominados realms File e JDBC (Java Database Connectivity) que neste caso eacute em

runtime

122

Figura 80 - Ficheiro ldquologinconfigrdquo

A ligaccedilatildeo ao ficheiro ldquologinconfigrdquo eacute feita no menu do Eclipse ldquoRunrdquo ldquoRun

Configurationsrdquo ldquoTomcat 70rdquo ldquoArgumentsrdquo ldquoVM argumentsrdquo adicionar a linha -

Djavasecurityauthloginconfig=Crestconfigloginconfig

Figura 81 - Ficheiro ldquologinconfigrdquo

vmwareAccesstxt

Ficheiro com dados de acesso agrave VMware para acesso agrave consola das VMs dos serviccedilos

criados

Primeira linha IP da VM onde estaacute o VCenter da VMware

Segunda linha Username do Administrador

Terceira linha Password do Administrador

123

Figura 82 - Ficheiro ldquovmwareAcesstxtrdquo

L3 Execuccedilatildeo do MOE

O MOE pode finalmente ser executado Para isso no menu clicamos em ldquoRunrdquo ldquoRunrdquo

escolhemos ldquoRun on Serverrdquo e a primeira vez que executarmos o projecto temos que fazer a

ligaccedilatildeo ao servidor Apache Tomcat ldquoApacherdquo ldquoTomcat v70 Serverrdquo e ldquoFinishrdquo

Figura 83 - Servidor Apache Tomcat dentro do Eclipse

Aguardar que o projecto seja construiacutedo e compilado Podemos acompanhar a

evoluccedilatildeo do estado directamente na consola do Eclipse

124

Figura 84 - Compilaccedilatildeo do projecto MOE

Finalmente o projecto estaacute disponiacutevel em httplocalhost8080MOE

Figura 85 - Login page MOE

Figura 86 - Data page MOE

125

Anexo M (Criaccedilatildeo de um Serviccedilo e ligaccedilatildeo agraves VMs)

A criaccedilatildeo de um serviccedilo de um determinado utilizador tem por base as

definiccedilotildeesconfiguraccedilotildees existentes num Template previamente definido e listado num

Cataacutelogo de Serviccedilos Configuraccedilotildees como detalhes dos servidores memoacuteria processadores

discos custos interfaces limites maacuteximos e miacutenimos de futuros updates ao serviccedilo etc estatildeo

previamente descritos e implementados sob a forma de Templates nos quais o utilizador pode

navegar verificar as caracteriacutesticas de cada um e escolher um que melhor se adapte as suas

necessidades

Assim o utilizador navega nos Templates existentes no Cataacutelogo de Serviccedilos do

menu lateral esquerdo e seleciona o Template No painel central do webservice painel

ldquoDetalhesrdquo satildeo abertas as tabs dos detalhes do Template selecionado

M1 Detalhes do Template

Nas imagens seguintes podemos verificar os detalhes do Template selecionado Nos detalhes

gerais do Template obtemos informaccedilotildees como o nome do Template a data de criaccedilatildeo e

modificaccedilatildeo versatildeo custo geral se eacute ou natildeo costumizaacutevel e o numero de ServerGroups

associados assim como discos e serviccedilos que jaacute foram criados tendo por base este template

Figura 87 - Detalhes gerais do Template ldquoTemplate_3srvrdquo

126

Todos os detalhes do Template ficam disponiacuteveis ao utilizador Ao niacutevel do grupo de

servidores informaccedilotildees como nome quantidade miacutenima de servidores e que seraacute a base do

serviccedilo criado e quantidade maacutexima de servidores sinal que o serviccedilo poderaacute crescer em

termos de quantidade de servidores Tipo de cluster e o numero de servidores loacutegicos

existentes no grupo

Figura 88 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo

Relativamente aos servidores o utilizador obteacutem informaccedilotildees como nome hostname

tipo de virtualizaccedilatildeo memoacuteria usada e quantidade maacutexima de memoacuteria processadores

usados e quantidade maacutexima de processadores se eacute ou natildeo virtual e se estaacute ou natildeo em cloud

Figura 89 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Informaccedilotildees detalhadas sobre os custos em detalhes ficam disponiacuteveis ao utilizador

Informaccedilotildees sobre custo total custo de base por cada servidor custo por processador e

memoacuteria

127

Figura 90 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Os discos tambeacutem apresentam informaccedilatildeo como nome tipo de storage tamanho raid

level se eacute ou natildeo bootable shareable e custo do disco

Figura 91 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

Cada servidor tem um software preacute-instalado ou instalado posteriormente pelo

utilizador Informaccedilotildees como nome tipo OS e virtualizaccedilatildeo estatildeo disponiacuteveis

Figura 92 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

Finalmente detalhes sobre as interfaces Neste caso duas interfaces uma na rede HP

(HP Network) e outra rede local (CloudSystem) Estatildeo disponiacuteveis informaccedilotildees como nome

da interface se eacute ou natildeo primaacuteria redundacircncia subnet publica shareable tipo de IP

endereccedilo DHCP activo ou natildeo e custo final

128

Figura 93 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo

M2 Criaccedilatildeo de um Serviccedilo

Selecionado o Template que melhor se enquadra nas necessidades do utilizador clicar

na opccedilatildeo preencher todos os dados obrigatoacuterios como nome do

serviccedilo hostname tempo atribuiacutedo ao serviccedilo (acarreta custos) e email do utilizador

As opccedilotildees ldquoNotesrdquo e ldquoBilling coderdquo satildeo opcionais

Figura 94 - Criaccedilatildeo do serviccedilo ldquomyServicerdquo

129

Apoacutes a solicitaccedilatildeo para a criaccedilatildeo do serviccedilo o utilizador eacute encaminhado para uma

lista de pedidos existentes para aquele utilizador e serviccedilo em especiacutefico Pedidos que

poderatildeo ser cancelados (figura 95) mediante decisatildeo do utilizador

Figura 95 - Lista de pedidos do utilizador

A salientar que existem pedidos que carecem da aprovaccedilatildeo do administrador por isso

o pedido poderaacute ficar parado numa determinada percentagem () a espera dessa aprovaccedilatildeo

Se o pedido natildeo necessitar de aprovaccedilatildeo continuaraacute a sua execuccedilatildeo ateacute estar completo

(100) e automaticamente seraacute adicionado ao menu lateral esquerdo do utilizador

Figura 96 - Eventual cancelamento de um pedido

Finalmente o serviccedilo eacute criado e todas as opccedilotildees ficaratildeo agora disponiacuteveis ao

utilizador como ediccedilatildeo de memoacuteria e processadores upgrade de servidores exportaccedilatildeo de

dados em xml visualizaccedilatildeo nesse formato etc

M3 Acesso Remoto

Acesso remoto agrave maquina virtual (VM) como objectivo de toda a implementaccedilatildeo estaacute

igualmente disponiacutevel para os servidores cujo status = ldquoUPrdquo Essa listagem poderaacute ser

efectuada na tab ldquoServiccedilosrdquo em com quatro tipo de ligaccedilotildees

130

RDP (Remote Desktop Protocol) (figura 100)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet (figura 101)

VMRC (VMware Remote Console) (figura 102)

Figura 97 - Serviccedilo ldquomyServicerdquo criado

Figura 98 - Listagem dos acessos remotos

Os acessos remotes poderatildeo ser feitos atraveacutes desta lista ou directamente nos

servidores ou interfaces

131

Figura 99 - Acesso remoto na tab ldquoServerrdquo

Figura 100 - Acesso remoto por RDP

Figura 101 - Acesso remoto por Telnet

Figura 102 - Acesso remoto por VMRC

132

Anexo N (MOE Help)

A informaccedilatildeo disponibilizada eacute vasta e detalhada sobre os recursos disponibilizados e a sua

manipulaccedilatildeo pode criar alguma duacutevida existencial Uma paacutegina ldquoMOE Helprdquo de ajuda eacute

sempre bem vinda e uacutetil bastando para isso clicar no iacutecone que o ajudaraacute a compreender

melhor tido o wevservice e sua distribuiccedilatildeo e organizaccedilatildeo

Figura 103 - Menu lateral esquerdo ldquoMOE Helprdquo

O menu lateral esquerdo agrave semelhanccedila da paacutegina principal do webservice expelha a

hierarquia da organizaccedilatildeo de toda a informaccedilatildeo O utilizador apenas tem que clicar na opccedilatildeo

que deseja maior esclarecimento

Figura 104 - Menu lateral esquerdo ldquoMOE Helprdquo

133

Toda a informaccedilatildeo de ajuda estaacute imediatamente disponiacutevel com as Tabs respectivas jaacute

abertas e prontas a consultar O menu lateral esquerdo serve apenas para selecionar a Tab e

dentro dessa Tab selecionar imediatamente a informaccedilatildeo pretendida Se o utilizador tiver

duacutevidas sobre a a importaccedilatildeo de um Template basta abrir a Tab Template e scroll ateacute agrave

informaccedilatildeo pretendida ou sentatildeo mais faacutecil clicar apenas em ldquoImport xmlrdquo dentro da pasta

Template no menu lateral esquerdo e com um simples clique visualiza imediatamente a

informaccedilatildeo nem necessidade de scroll

Figura 105 - ldquoImport xmlrdquo help

N1 Template

Um Template compreende a uma configuraccedilatildeo especifica de hardware e software desenhado

pelo Arquitecto a infra-estrutura para fazer face a determinadas situaccedilotildees como solicitaccedilotildees

de um utilizador ou grupo de utilizadores que solicitaram essas configuraccedilotildees especificadas

Configuraccedilotildees como nuacutemero de servidores memoacuteria processadores discos software

interface etc Opccedilotildees configuraacuteveis com limites minimos e maacuteximos com o seu

correspondente custo associado

Esses templates apoacutes publicaccedilatildeo fazem parte de uma lista num cataacutelogo de serviccedilos

para uso e instanciaccedilatildeo de serviccedilos de utilizadores dessa infra-estrutura

134

Figura 106 - Template info Tab

N2 Service

Um serviccedilo corresponde a uma instanciaccedilatildeo de um determinado template Todas as

configuraccedilotildees base do template seleccionado pertencem agora a este novo serviccedilo que poderaacute

ser posteriormente editado com mais ou menos servidores processamento memoacuteria discos

etc ateacute um limite maacuteximo definido no template de base de criaccedilatildeo deste serviccedilo A opccedilatildeo de

remoccedilatildeo de servidores definir menos memoacuteria ou processadores tambeacutem satildeo opccedilotildees

disponiacuteveis de ediccedilatildeo

Figura 107 - Service info Tab

135

N3 ServerGroup

Um Grupo de Servidores corresponde a um ou mais servidores com configuraccedilotildees diacutespares

em cada grupo como software discos interfaces etc O grupo de servidores permite a

organizaccedilatildeo dos servidores existentes num serviccedilo por tipo de configuraccedilotildees de hardware e

software

Figura 108 - ServerGroup info Tab

N4 Server

Um servidor eacute o nuacutecleo de um serviccedilo igualmente com configuraccedilotildees especiacuteficas como

memoacuteria processadores velocidade discos software interfaces etc

Figura 109 - Server info Tab

136

N5 Disk

Figura 110 - Disk info Tab

N6 Software

Software a ser disponibilizado na VM do utilizador Software baseado igualmente num

template com configuraccedilotildees especiacuteficas

Figura 111 - Software info Tab

137

N7 Interface

Toda a infra-estrutura tem por base uma lista de redes definidas para comunicaccedilatildeo desde

redes internas a redes externas agrave infra-estrutura

Figura 112 - Interface info Tab

N8 Request

Os pedidossolicitaccedilotildees ficam em histoacuterico durante a sua execuccedilatildeo e apoacutes teacutermino da mesma

Permite que o utilizador acompanhe a progressatildeo do seu pedido e quando terminar (100) o

utilizador eacute informado do status de teacutermino sendo automaticamente feito o refresh da paacutegina

Figura 113 - Request info Tab

138

N9 About

Um pequeno resumo desta Tese

Figura 114 - About info Tab

N10 Team

Intervenientes de todo o projecto

Figura 115 - Team info Tab

139

N11 Javadoc

Informaccedilatildeo sobre todo o webservice meacutetodos moacutedulos de acesso login configuraccedilotildees etc

Informaccedilatildeo disponiacutevel apenas ao Administrador

Figura 116 - Javadoc info Tab

140

Anexo O (VMware - Virtual Machine Resources)

O1 ldquoMapsrdquo ndash Host Options ndash Host to VM

Detalhes da relaccedilatildeo HostVM no final dos 3 serviccedilos criados

Host cifm02hpptlablocal VM Service1HP_hostonehost5

Host cifm05hpptlablocal VM myService_hostmyhostr01

Service2HP_hostrhostr01 02 e 03

Figura 117 - ldquoMapsrdquo da relaccedilatildeo Host VM

141

O2 ldquoMapsrdquo ndash Host Options ndash Host to Network

Detalhes da relaccedilatildeo HostNetwork no final dos 3 serviccedilos criados Os 2 hosts

(cifm02hpptlablocal e cifm05hpptlablocal) estatildeo ligados agraves 3 redes existentes

CloudSystem rede interna MOE (19216810hellip)

HP Network rede externa MOE e interna HP (1623186hellip e 1623187hellip)

HP DataCenter outra rede interna MOE

Figura 118 - ldquoMapsrdquo da relaccedilatildeo Host Network

142

O3 ldquoMapsrdquo ndash Host Options ndash Host to Datastore

Detalhes da relaccedilatildeo HostDatastore no final dos 3 serviccedilos criados

Host cifm02hpptlablocal Datastore CIF02-LOCALDATASTORE-001

Host cifm05hpptlablocal Datastore CIF05-LOCALDATASTORE-001 002 003 e

004

Datastore EVA-VMware-DISK-001 002 003 004 3 005

Figura 119 - ldquoMapsrdquo da relaccedilatildeo Host Datastore

143

O4 ldquoMapsrdquo ndash VM Options ndash VM to Network

Detalhes da relaccedilatildeo VMNetwork no final dos 3 serviccedilos criados

Network CloudSystem VM todas as VMs na rede local MOE

Network HP Network VM todas as VMs na rede externa MOE

Figura 120 - ldquoMapsrdquo da relaccedilatildeo VM Network

144

O5 ldquoMapsrdquo ndash VM Options ndash VM to Datastore

Detalhes da relaccedilatildeo HostDatastore no final dos 3 serviccedilos criados

VM Service1HP_hostonehost5 Datastore EVA-VMware-DISK-004

VM myService_hostmyhostr01 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr01 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr02 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr03 Datastore CIF05-LOCALDATASTORE-004

Figura 121 - ldquoMapsrdquo da relaccedilatildeo Host Datastore

145

O6 ldquoMapsrdquo ndash Host and VM Options ndash all relationships

146

Anexo P (Scenario view)

P1 Template

P11 Informaccedilatildeo

Figura 122 - Detalhes gerais do Template ldquoTemplate_3srvrdquo

Figura 123 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo

147

Figura 124 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Figura 125 - Detalhes dos Custos do Servidor ldquoSvrGrp1-1rdquo

Figura 126 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

Figura 127 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

148

Figura 128 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo

P12 Execuccedilatildeo

Figura 129 - Ficheiro ldquoTemplateListxmlrdquo

149

Export Template

Figura 130 - Ficheiro ldquoTemplate_3srvxmlrdquo

Import Template

Figura 131 - Importaccedilatildeo de um Template em formato XML

Delete Template

Figura 132 - InfoWindow ldquoDelete Templaterdquo

150

XML View

Figura 133 - InfoWindow com a visualizaccedilatildeo do Template em XML

Export All Services

Figura 134 - Ficheiro ldquoTemplate_3srv_ServiceListxmlrdquo

151

Create Service

Figura 135 - Criaccedilatildeo de um Serviccedilo com base no Template ldquoTemplate_3srvlrdquo

All Requests

Figura 136 - Lista de todos os pedidos do utilizador

152

Figura 137 - Eventual cancelamento de um pedido

Template Requests

Figura 138 - Lista dos pedidos resultantes da relaccedilatildeo Templateutilizador

153

P2 Serviccedilo

P21 Informaccedilatildeo

Figura 139 - Detalhes do Serviccedilo ldquomyServicerdquo do Template ldquoTemplate_3srvrdquo

P22 Execuccedilatildeo

Export All Services

Figura 140 - Ficheiro ldquoallServicesListxmlrdquo

154

Export Service

Figura 141 - Ficheiro ldquomyServicexmlrdquo

XML View

Figura 142 - InfoWindow com a visualizaccedilatildeo do Serviccedilo em XML

Delete Service

Figura 143 - Remoccedilatildeo de um Serviccedilo

155

Power ON Service

Figura 144 - Power ON de um Serviccedilo

Power OFF Service

Figura 145 - Power OFF de um Serviccedilo

Power Cycle Service

Figura 146 - Power Cycle de um Serviccedilo

Activate Service

Figura 147 - Activaccedilatildeo de um Serviccedilo

Deactivate Service

Figura 148 - Desactivaccedilatildeo de um Serviccedilo

156

Service Actions

Figura 149 - Lista dos Service Actions

List Remote Session

Figura 150 - Lista dos Acessos Remotos do um Serviccedilo

Figura 151 - Acesso remoto por RDP

Figura 152 - Acesso remoto por Telnet

157

Figura 153 - Acesso remoto por VMRC

Service Requests

Figura 154 - Listagem dos pedidos por Serviccedilo

158

P3 Grupo de Servidores

P31 Informaccedilatildeo

Figura 155 - Detalhes do Grupo de Servidores ldquoSvrGrp1rdquo do Serviccedilo ldquomyServicerdquo

P32 Execuccedilatildeo

Export Server Group

Figura 156 - Ficheiro ldquoSvrGrp1xmlrdquo

159

XML View

Figura 157 - InfoWindow com a visualizaccedilatildeo do Grupo de Servidores em XML

Add Servers (UP)

Figura 158 - Adiccedilatildeo de Servidores ao Grupo de Servidores

Remove Servers (DOWN)

Figura 159 - Remoccedilatildeo de Servidores ao Grupo de Servidores

160

Edit ServerGroup

Figura 160 - Ediccedilatildeo de Servidores ao Grupo de Servidores

Power ON ServerGroup

Figura 161 - Power ON de um ServerGroup

Power OFF ServerGroup

Figura 162 - Power OFF de um ServerGroup

Power Cycle ServerGroup

Figura 163 - Power Cycle de um ServerGroup

161

Activate ServerGroup

Figura 164 - Activaccedilatildeo de um ServerGroup

Deactivate ServerGroup

Figura 165 - Desactivaccedilatildeo de um ServerGroup

List Snapshots

Figura 166 - Listagem de todos os Snapshots existentes no Grupo de Servidores

Figura 167 - Acccedilotildees SnapshotServidor

Figura 168 - Revert Snapshot

162

Figura 169 - Delete Snapshot

Create Snapshot

Figura 170 - Create Snapshot

Add Stereotype Disks

Figura 171 - Lista de ldquoStereotype Disksrdquo

Add Virtual Disks

Figura 172 - Adicionar um disco virtual ldquoDisk62rdquo ao Grupo de Servidores

163

Add Physical Disks

Figura 173 - Adicionar um disco fiacutesico ldquoDisk788rdquo ao Grupo de Servidores

P4 Servidores

P41 Informaccedilatildeo

Figura 174 - Detalhes do Servidor ldquoSvrGrp1-1rdquo do Serviccedilo ldquomyServicerdquo

164

P42 Execuccedilatildeo

Export Server

Figura 175 - Ficheiro ldquohostmygostr01_lsxmlrdquo

XML View

Figura 176 - InfoWindow com a visualizaccedilatildeo do Servidor em XML

165

Remove Server

Figura 177 - Remoccedilatildeo de um Servidor

Edit Server

Figura 178 - Ediccedilatildeo de um Servidor

Power ON Server

Figura 179 - Power ON de um Servidor

Power OFF Server

Figura 180 - Power OFF de um Servidor

166

Power Cycle Server

Figura 181 - Power Cycle de um Servidor

Activate Server

Figura 182 - Activaccedilatildeo de um Servidor

Deactivate Server

Figura 183 - Desactivaccedilatildeo de um Servidor

Create Snapshot

Figura 184 - Create Snapshot

167

List ServerPool

Figura 185 - Pools de Servidores

Figura 186 - Criar uma Pools de Servidores

Figura 187 - Remoccedilatildeo de uma Pools de Servidores

Figura 188 - InfoWindo de aviso ao administrador

168

VM Host

Figura 189 - Informaccedilatildeo dos hosts fiacutesicos

Remote Session

Figura 190 - Sessotildees Remotas num Servidor

169

P5 Discos

P51 Informaccedilatildeo

Figura 191 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

P52 Execuccedilatildeo

Add Stereotype Disks

Figura 192 - Criaccedilatildeo de um ldquoStereotype Disksrdquo

170

P6 Software

P61 Informaccedilatildeo

Figura 193 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

P62 Execuccedilatildeo

List Softwares

Figura 194 - Lista de Software

171

Software Detals

Figura 195 - Detalhes do Software

P7 Interface

P71 Informaccedilatildeo

Figura 196 - Detalhes do Interface NIC0rdquo do Servidor ldquoSvrGrp1-1rdquo

172

P72 Execuccedilatildeo

List Subnets

Figura 197 - Listagem de todas as redes

Figura 198 - Detalhe da rede

Add IPAddress

Figura 199 - Adiccedilatildeo de um IP flutuante agrave Interface ldquoNIC0rdquo

173

Remove IPAddress

Figura 200 - Remoccedilatildeo de um IP flutuante pertencente agrave Interface ldquoNIC0rdquo

Move IPAddress

Figura 201 - Mover um IP flutuante para a Interface ldquoNIC0rdquo

Page 3: Framework para a construção de “portais de negócio” para

Paulo Agostinho Rodrigues Pires

Licenciado em Engenharia Informaacutetica

Framework para a construccedilatildeo de ldquoportais de negoacuteciordquo para gestatildeo de solicitaccedilotildees de consumidores IaaS

na HP Cloud

Dissertaccedilatildeo para obtenccedilatildeo do Grau de Mestre em Engenharia Informaacutetica

Orientador Prof Doutor Paulo Orlando Reis Afonso Lopes Prof Auxiliar Departamento de Informaacutetica da FCTUNL

Co-orientador Engenheiro Informaacutetico Rui Miguel Ramalho Ramos Team Leader de TS Consulting da HP

Novembro 2013

IV

V

Framework para a construccedilatildeo de ldquoportais de negoacuteciordquo

para gestatildeo de solicitaccedilotildees de consumidores IaaS

na HP Cloud

copy Copyright - Indicaccedilatildeo dos direitos de coacutepia em nome de Paulo Agostinho Rodrigues Pires

aluno de Mestrado em Engenharia Informaacutetica da FCTUNL

A Faculdade de Ciecircncias e Tecnologia e a Universidade Nova de Lisboa tecircm o direito

perpeacutetuo e sem limites geograacuteficos de arquivar e publicar esta dissertaccedilatildeo atraveacutes de

exemplares impressos reproduzidos em papel ou de forma digital ou por qualquer outro

meio conhecido ou que venha a ser inventado e de a divulgar atraveacutes de repositoacuterios

cientiacuteficos e de admitir a sua coacutepia e distribuiccedilatildeo com objectivos educacionais ou de

investigaccedilatildeo natildeo comerciais desde que seja dado creacutedito ao autor e editor

VI

VII

Agradecimentos

Um profundo agradecimento a todos aqueles que de diferentes formas me apoiaram durante

estes 5 anos enquadrando este trabalho como objectivo uacuteltimo de uma licenciatura e

mestrado integrado em Engenharia Informaacutetica

Comeccedilo assim por agradecer a todos os meus professores da FCT que ao longo

destes 5 anos contribuiacuteram para a minha formaccedilatildeo acadeacutemica

Aos meus amigos que no estudo nas diversotildees nos incentivos conseguiram sempre criar um

ambiente ideal e propiacutecio agrave concretizaccedilatildeo das diferentes etapas deste curso com eacutexito Para

mim foi um privileacutegio ter partilhado com eles esta etapa da minha vida

Agrave HP pela disponibilizaccedilatildeo de todas as infra-estruturas permissotildees e acessos para a

elaboraccedilatildeo deste framework Um abiente acolhedor em pessoas trabalho equipamento e

apoio

Ao meu orientador e responsaacutevel na HP Rui Miguel Ramalho Ramos (TS Consulting

Resource Manager) que sempre ponto a ajudar soube resolver atempadamente todas as

minhas solicitaccedilotildees Um muito obrigado pela camaradagem eficiecircncia e profissionalismo

com que encarou toda a implementaccedilatildeo

Um agradecimento especial ao meu orientador da tese Professor Paulo Orlando Reis

Afonso Lopes (Arquitectura de Sistemas Computacionais) pela sua orientaccedilatildeo

disponibilidade e sugestotildees que me ajudaram na conclusatildeo deste trabalho Um muito

obrigado pela sua constante presenccedila e acima de tudo pela confianccedila que me concedeu

durante toda a tese quer na preparaccedilatildeo quer na elaboraccedilatildeo Uma acessibilidade e presenccedila

que fizeram toda a diferenccedila obrigado professor

Por uacuteltimo agrave minha famiacutelia pelo encorajamento pais irmatilde e sogros Um obrigado

especial ao meu sogro Aires Pereira pelas brincadeiras que proporcionou agrave minha filha

entretendo-a para que eu pudesse estudar e desenvolver esta tese

Agrave minha esposa Nadia Pires e a minha filha Lara merecem uma menccedilatildeo especial

Agradeccedilo agrave minha esposa pelo apoio prestado nesta etapa da minha vida obrigada pelo amor

pela paciecircncia pelo otimismo pela motivaccedilatildeo e por me ter acompanhado nas horas mais

difiacuteceis desta etapa estarei eternamente grato Na minha ausecircncia soube sempre ser o Pai e a

Matildee que uma famiacutelia precisa

Agrave minha querida filha um agradecimento muito especial e um pedido de desculpas

em simultacircneo Obrigada pelos sorrisos pelos abracinhos pelos beijinhos enfimhellip por todos

os carinhos que soacute uma menina doce como ela sabe dar e que me ajudaram a ultrapassar os

momentos mais difiacuteceis desta jornada Desculpa pela falta de paciecircncia e por todos os

momentos que natildeo podemos estar juntos

VIII

Resumo

O HP CloudSystem Matrix (CSM) faz parte de uma pilha de software HP para computaccedilatildeo

na cloud que cobre todos os niacuteveis de serviccedilo considerados relevantes IaaS (Infra-estrutura

como Serviccedilo) PaaS (Plataforma como Serviccedilo) e SaaS (Software como Serviccedilo) Apesar de

ser a base desta pilha ie oferecer o niacutevel IaaS eacute um produto extremamente complexo pois

interage com todas as infra-estruturas as computacionais (ie servidores fiacutesicos ou virtuais)

as de armazenamento (do disco interno aos discos em servidores de armazenamento) e as de

interligaccedilatildeo (redes Ethernet e FC)

Apesar de toda a complexidade da infra-estrutura real e virtual que gere o CSM

torna conceptualmente simples a entrega aos consumidores de infra-estruturas para suporte a

aplicaccedilotildees 1) o administrador define que recursos da infra-estrutura estatildeo disponiacuteveis para

integrar a ldquooferta cloudrdquo 2) o arquitecto define templates para as arquitecturas que considera

adequadas para necessidades dos consumidores (eg arquitectura 3-tier para uma soluccedilatildeo

ERP - Enterprise Resource Planning) e 3) o consumidor escolhe o template que melhor se

ajusta agraves suas necessidades e efectua um pedido de aprovisionamento da infra-estrutura

A interacccedilatildeo entre os diferentes interlocutores (1) (2) (3) e o CSM eacute

fundamentalmente realizada sobre portais contudo especialmente no caso do consumidor o

portal disponibilizado pelo produto tem sido considerado como ldquocomplexordquo por apresentar

informaccedilatildeo demasiado teacutecnica ldquoriacutegidordquo por natildeo poder ser customizado (por exemplo para

suprimir a ldquoinformaccedilatildeo demasiado teacutecnicardquo) e ldquogrosseirordquo por natildeo permitir a especificaccedilatildeo

mais fina das caracteriacutesticas da infra-estrutura que se quer aprovisionar (por exemplo permite

variar o nuacutemero de CPUs e a quantidade de memoacuteria de um servidor mas natildeo permite

escolher a tecnologia dos discos que se pretendem aprovisionar eg SSD em vez de FC 15K

em vez de 10K rpm) Assim o objectivo final da dissertaccedilatildeo eacute desenvolver um framework

que permita com base num conjunto (extensiacutevel e configuraacutevel) de opccedilotildees preacute-definidas e

em layouts customizaacuteveis definir portais que se integram com o HP CloudSystem Matrix e

que permitam aos utilizadores (consumidores) uma interacccedilatildeo natildeo soacute mais simples mas

tambeacutem mais versaacutetil

Neste trabalho satildeo abordados os modelos de serviccedilo e de implantaccedilatildeo (deployment)

de clouds a virtualizaccedilatildeo (natildeo somente de servidores mas tambeacutem de armazenamento e de

redes) pedra base de toda a tecnologia cloud e os moacutedulos e APIs disponiacuteveis para

interoperar com o CSM nomeadamente API-MOE e API-VMware Por fim eacute apresentada

uma framework com uma arquitectura multicamada (N-tier) implementada com tecnologias

padratildeo TCPIP para a pilha de comunicaccedilotildees REST (Representational State Transfer) para

regular a interacccedilatildeo e troca de informaccedilatildeo clienteservidor e XML (Extensible Markup

Language) e JSON (JavaScript Object Notation) como formatos de dados

Palavras-chave Computaccedilatildeo na nuvem Portal de interacccedilatildeo Traduccedilatildeo Binaacuteria

Virtualizaccedilatildeo de Servidores Virtualizaccedilatildeo de Armazenamento e Virtualizaccedilatildeo da Rede

IX

Abstract

The HP CloudSystem Matrix (CSM) is a part of the HP software stack for cloud computing

that covers all relevant service levels IaaS (Infrastructure as a Service) PaaS (Platform as a

Service) and SaaS (Software as a Service) Although it rests at the base of the stack ie only

offers the IaaS level it is an extremely complex product since it interacts with all

infrastructures computing (ie physical and virtualized servers) storage (from individual

drives to disk arrays) and networking (Ethernet and FC networks)

Despite all the (real) infrastructureacutes complexity that CSM deals with the delivery (to

end users ndash aka infrastructure consumers) of infrastructures for application support

becomes a conceptually simple task (1) the administrator defines which infrastructure

resources are available to integrate the cloud offer (2) the architect defines templates for

those architectures he deems appropriate for the end users (eg 3-tier architecture for an ERP

- Enterprise Resource Planning - solution) (3) the end user chooses the template that better

suits its needs and then submits a request for the delivery of the infrastructure

The interaction between the different counterparts (1) (2) and (3) and the CSM is

fundamentally realised over portals however especially in the case of the end user the portal

has been considered complex since it presents too much technical information rigid

since it is not customizable (eg to suppress the too much technical information) and

coarse since it does not allow a finer-graned specification of the infrastructureacutes attributes

that are required (eg it allows to change the number of CPUs and the amount of memory in

the server but it does not allow one to choose the disk technologies eg SSD instead of FC

or 15K instead 10K rpm) Therefore the final goal of this dissertation is to develop a

framework that allows with a set of pre-defined settings and customizable layouts to define

portals that are integrated with HP CloudSystem Matrix and enables a simpler user

interaction

In this work we studied service and cloud implementation models virtualization (not

only server virtualization but also storage and network virtualization) the foundation of all

cloud technologies modules and APIs that interoperate with CSM namely API-MOE and

API-VMware Finally we present a framework (prototype) implemented in a multi-layer

architecture (N-tier) with standard technologies TCPIP for the communication stack REST

(Representational State Transfer) to control the interaction and the clientserver information

flows and XML (eXtensible Markup Language) and JSON (JavaScript Object Notation) for

the data formats

Keywords Cloud Computing Interaction Portal Binary Translation Server Virtualization

Storage Virtualization and Network Virtualization

X

Glossaacuterio e Lista de siglas

API Application Programming Interface

BIOS Basic InputOutput System

CC Computaccedilatildeo em Cloud

CIFS Common Internet File System

CL Command Line

CMS Console Monitor System

CP Control Program

CPU Central Processing Unit

CSS Cascading Style Sheets

DAS Direct-Attached Storage

Dom0 Domiacutenio 0 do XenServer

DomU Domiacutenio U do XenServer

DVFilter Distributed Virtual Filter

DynaRecs Dynamic Recompilation

EIDE Enhanced Integrated Drive Electronics

FC Fibre Channel

FCoE Fibre Channel over Ethernet

FTP File Transfer Protocol

GUEST Sistema Virtualizado

HD Hard Drive

HOST Servidor Hospedeiro

HP Hewlett-Packard

HPCMS HP Console Management System

CSM HP CloudSystem Matrix (Hewlett-Packard)

IC Insight Control (Hewlett-Packard)

ID Insight Dynamics (Hewlett-Packard)

IO Infrastructure Orchestration (Hewlett-Packard)

SA Server Automation (Hewlett-Packard)

SS SiteScope (Hewlett-Packard)

UD Universal Discovery (Hewlett-Packard)

HPVM HP Integrity Virtual Machine

VMAN Virtualization Manager (Hewlett-Packard)

VMMGR HP Integrity Virtual Machines Manager (Hewlett-Packard)

XI

HTTP HyperText Transfer Protocol

HVM Virtualizaccedilatildeo assistida por hardware

IO InputOutput

IaaS Infrastructure as a Service

IBM International Business Machines Corporation

IDE Integrated Development Environment

iSCSI Internet Small Computer System Interface

J2EE Java2 Platform Enterprise Edition

JS JavaScript

JSON JavaScript Object Notation

JVM Java Virtual Machine

LAN Local Area Network

LUN Logical Unit Number

LVM Logical Volume Manager

MAC Apple Macintosh

MOE Matrix Operating Environment

MSCS Microsoft Cluster Server

NAS Network Attached Storage

nbAPI Northbound API

NetApp Network Appliance

NFS Network File System

NIC Adaptador de rede (Network Interface Controller)

NVRAM Non-Volatile Random Access Memory

PaaS Plataform as a Service

PATA Parallel Advanced Technology Attachment

pNIC Physical Network Interface Controller

POSIX Portable Operating System Interface

PV Para-Virtualizaccedilatildeo

PVHVM Para-Virtualizaccedilatildeo + Virtualizaccedilatildeo assistida por hardware

QOS Quality Of Service

RAID Redundant Array of Independent Disks

RAM Random Access Memory

REST REpresentational State Transfer

RPC Remote Procedure Call

SaaS Software as a Service

XII

SAN Storage Area Network

SAP Sistemas Aplicaccedilotildees e Produtos

SAS Serial Attached SCSI

SATA Serial ATA

SCSI Small Computer System Interface

SCVMM System Center Virtual Machine Manager

SF Sistema de Ficheiros

SLA Service Level Agreement

SMTP Simple Mail Transfer Protocol

SO Sistema Operativo

SOA Service-Oriented Architecture

SOAP Simple Object Access Protocol

SSD Solid-State Drive

TCPIP Transmission Control ProtocolInternet Protocol

TI Tecnologias de Informaccedilatildeo

URI Uniform Resource Identifier

URL Uniform Resource Locator

UUID Identificador Uacutenico Universal

VDI Virtual Disk Image

vDS vNetwork Distributed Switch

VHD Virtual Hard Disk (Microsoft)

VLAN Virtual LAN

VM Virtual Machine

VMBus Virtual Machine Buss

VMDK Virtual Machine Disk (VMware)

VMFS Virtual Machine File System

VMM hipervisor (tambeacutem designado Virtual Machine Manager)

vNIC Virtual Network Interface Controller

VSC Virtual Service Client

VSP Virtual Service Provider

vSwitch Virtual Switch

WOA Web-Oriented Architecture

WS Web Service

WWW World Wide Web

XML Extensible Markup Language

XIII

Iacutendice

1 Introduccedilatildeo 1

11 Descriccedilatildeo e contexto 1

12 Objectivos 3

13 Organizaccedilatildeo 3

14 Contribuiccedilotildees 4

15 Resumo 5

2 Virtualizaccedilatildeo 6

21 Evoluccedilatildeo histoacuterica 6

22 Virtualizaccedilatildeo de Servidores 7

221 VMware (VMware Inc) 8

222 Xen (Citrix Systems Inc) 9

223 Integrity VM (HP) 10

224 Hyper-V (Microsoft) 11

23 Virtualizaccedilatildeo do Armazenamento 12

231 Armazenamento em ambientes virtualizados 14

24 Virtualizaccedilatildeo da Rede 16

25 Resumo 18

3 Computaccedilatildeo na Cloud 19

31 Periacutemetro de uma cloud 19

32 Modelos de serviccedilo 20

33 Resumo 22

4 HP Cloud Stack 23

41 HP CloudSystem Matrix 23

42 Modelos de interacccedilatildeo com o HP CSM 25

43 Papeacuteis e Portais de interacccedilatildeo 26

44 Conceitos fundamentais da plataforma HP CSM 28

45 Limitaccedilotildees do HP CloudSystem Matrix 30

46 Resumo 31

5 O framework e a sua Realizaccedilatildeo 32

51 Arquitectura 32

52 Integraccedilatildeo da framework no HP CSM (MOE e VMware) 33

53 Um desenho guiado pela Interface Utilizador 34

54 Camada de apresentaccedilatildeo 38

XIV

541 Do lado do cliente 38

542 Do lado do servidor 39

543 Lista de primitivas na oacuteptica dos recursos 40

55 Camada ServiccedilosLoacutegica 41

551 Camada de Serviccedilos 42

552 Camada Loacutegica 42

56 Camada de Dados 68

561 Dados natildeo persistentes 68

562 Dados persistentes 69

57 Feedback 72

58 Questotildees principais 73

59 Visatildeo global 75

510 Resumo 76

6 Consideraccedilotildees Finais 77

61 Conclusotildees 78

62 Trabalho futuro 79

63 Resumo 80

Referecircncias bibliograacuteficas 81

XV

Iacutendice de Figuras

Figura 1 - Ambiente natildeo Virtualizado 1

Figura 2 - Ambiente Virtualizado 1

Figura 3 - Infra-estrutura CSM 2

Figura 4 - Arquitectura VMware ESXi (Tipo-1) 9

Figura 5 - Arquitectura XenServer 10

Figura 6 - Arquitectura Hyper-V 11

Figura 7 - Redundant Array Independent Disks (RAID) 12

Figura 8 - Storage Area Network (SAN) 13

Figura 9 - Network Attached Storage (NAS) 13

Figura 10 - Datastore e VMs 14

Figura 11 - Sistema de Ficheiros VMFS 15

Figura 12 - Network File System (NFS) 15

Figura 13 - Infra-estrutura de rede tradicional 16

Figura 14 - Infra-estrutura de rede virtual 17

Figura 15 - vNetwork Distributed Switch ndash vDS 17

Figura 16 - Distributed Virtual Filter (DVFilter) 18

Figura 17 - Relaccedilatildeo entre serviccedilos e responsabilidades 21

Figura 18 - Relaccedilotildees e papeacuteis dos envolventes nos modelos de Cloud Computing 22

Figura 19 - Contributos CloudStack 23

Figura 20 - Desenho publicaccedilatildeo e implementaccedilatildeo do cataacutelogo de serviccedilos 24

Figura 21 - Infra-estrutura HP CloudSystem Matrix 25

Figura 22 - Utilizadores de TI em cloud e respectivos papeacuteis (roles) 26

Figura 23 - Portal do Administrador 27

Figura 24 - Portal do Arquitecto 27

Figura 25 - Portal do Utilizador final 28

Figura 26 - Arquitectura n-tier 32

Figura 27 - Relaccedilatildeo dos VMIDs (WebService-MOE-vCenter) 33

Figura 28 - Estrutura em aacutervore do menu lateral esquerdo 35

Figura 29 - Portal 36

Figura 30 - Diagrama de Sequecircncia (Criaccedilatildeo de um Serviccedilo) 37

Figura 31 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull 41

Figura 32 - Execuccedilatildeo tab ldquoTemplaterdquo 45

Figura 33 - Execuccedilatildeo tab ldquoServicerdquo 48

Figura 34 - Execuccedilatildeo tab ldquoServerGroupsrdquo 51

Figura 35 - Execuccedilatildeo tab ldquoServerrdquo 56

XVI

Figura 36 - Execuccedilatildeo tab ldquoDisksrdquo 60

Figura 37 - Execuccedilatildeo tab ldquoSoftwarerdquo 61

Figura 38 - Execuccedilatildeo tab ldquoInterfacerdquo 62

Figura 39 - Listagem das redes existentes 64

Figura 40 - Execuccedilatildeo tab ldquoSnapshotrdquo 65

Figura 41 - Execuccedilatildeo tab ldquoRequestsrdquo 66

Figura 42 - Execuccedilatildeo tab ldquoServerPoolsrdquo 68

Figura 43 - Realm JAAS (Java Authentication and Authorization Service) 69

Figura 44 - Modelo ER 71

Figura 45 - Mensagens SOAP na invocaccedilatildeo de processos do MOE 75

Figura 46 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull do WEBSERVICE 76

Figura 47 - VMM ou hypervisor do Tipo-2 87

Figura 48 - VMM ou hypervisor do ldquohiacutebridordquo 88

Figura 49 - VMM ou hypervisor do Tipo-1 88

Figura 50 - Emulaccedilatildeo de Hardware 89

Figura 51 - Virtualizaccedilatildeo Completa 90

Figura 52 - Para-Virtualizaccedilatildeo 91

Figura 53 - Virtualizaccedilatildeo assistida por Hardware 91

Figura 54 - LUN num SAN iSCSI ou SAN FC 99

Figura 55 - Network File System (NFS) 100

Figura 56 - Projecto ldquoDynamic Web Projectrdquo no eclipse 102

Figura 57 - Plataforma Java 107

Figura 58 - Comando ldquojava -versionrdquo 108

Figura 59 - Instalaccedilatildeo da Plataforma Java 109

Figura 60 - Variaacutevel de sistema ldquoPathrdquo 109

Figura 61 - Variaacutevel de sistema ldquoCLASSPATHrdquo 110

Figura 62 - Variaacutevel de sistema ldquoJAVA_HOMErdquo 110

Figura 63 - Directoria de instalaccedilatildeo do Servidor Apache Tomcat 111

Figura 64 - Link localhost Apache Tomcat 112

Figura 65 - Add repository 113

Figura 66 - Dynamic Web Project 114

Figura 68 - Propriedades do Dynamic Web Project 115

Figura 69 - Webxml do Dynamic Web Project 115

Figura 70 - Directoria base do Dynamic Web Project 116

Figura 71 - Criar uma classe 117

Figura 72 - Servidor Apache Tomcat dentro do Eclipse 118

Figura 73 - Execuccedilatildeo no Browser 118

XVII

Figura 74 - Projecto base MOE 119

Figura 75 - Importaccedilatildeo do projecto real MOE 119

Figura 76 - Projecto real MOE 120

Figura 77 - Ficheiro ldquoadminUsersListtxtrdquo 121

Figura 78 - Ficheiro ldquohp-io-v5wsdlrdquo 121

Figura 79 - WSDL do HPMOE 121

Figura 80 - Ficheiro ldquologinconfigrdquo 122

Figura 81 - Ficheiro ldquologinconfigrdquo 122

Figura 82 - Ficheiro ldquovmwareAcesstxtrdquo 123

Figura 83 - Servidor Apache Tomcat dentro do Eclipse 123

Figura 84 - Compilaccedilatildeo do projecto MOE 124

Figura 85 - Login page MOE 124

Figura 86 - Data page MOE 124

Figura 87 - Detalhes gerais do Template ldquoTemplate_3srvrdquo 125

Figura 88 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo 126

Figura 89 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 126

Figura 90 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 127

Figura 91 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 127

Figura 92 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 127

Figura 93 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo 128

Figura 94 - Criaccedilatildeo do serviccedilo ldquomyServicerdquo 128

Figura 95 - Lista de pedidos do utilizador 129

Figura 96 - Eventual cancelamento de um pedido 129

Figura 97 - Serviccedilo ldquomyServicerdquo criado 130

Figura 98 - Listagem dos acessos remotos 130

Figura 99 - Acesso remoto na tab ldquoServerrdquo 131

Figura 100 - Acesso remoto por RDP 131

Figura 101 - Acesso remoto por Telnet 131

Figura 102 - Acesso remoto por VMRC 131

Figura 103 - Menu lateral esquerdo ldquoMOE Helprdquo 132

Figura 104 - Menu lateral esquerdo ldquoMOE Helprdquo 132

Figura 105 - ldquoImport xmlrdquo help 133

Figura 106 - Template info Tab 134

Figura 107 - Service info Tab 134

Figura 108 - ServerGroup info Tab 135

Figura 109 - Server info Tab 135

Figura 110 - Disk info Tab 136

XVIII

Figura 111 - Software info Tab 136

Figura 112 - Interface info Tab 137

Figura 113 - Request info Tab 137

Figura 114 - About info Tab 138

Figura 115 - Team info Tab 138

Figura 116 - Javadoc info Tab 139

Figura 117 - ldquoMapsrdquo da relaccedilatildeo Host VM 140

Figura 118 - ldquoMapsrdquo da relaccedilatildeo Host Network 141

Figura 119 - ldquoMapsrdquo da relaccedilatildeo Host Datastore 142

Figura 120 - ldquoMapsrdquo da relaccedilatildeo VM Network 143

Figura 121 - ldquoMapsrdquo da relaccedilatildeo Host Datastore 144

Figura 122 - Detalhes gerais do Template ldquoTemplate_3srvrdquo 146

Figura 123 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo 146

Figura 124 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 147

Figura 125 - Detalhes dos Custos do Servidor ldquoSvrGrp1-1rdquo 147

Figura 126 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 147

Figura 127 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 147

Figura 128 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo 148

Figura 129 - Ficheiro ldquoTemplateListxmlrdquo 148

Figura 130 - Ficheiro ldquoTemplate_3srvxmlrdquo 149

Figura 131 - Importaccedilatildeo de um Template em formato XML 149

Figura 132 - InfoWindow ldquoDelete Templaterdquo 149

Figura 133 - InfoWindow com a visualizaccedilatildeo do Template em XML 150

Figura 134 - Ficheiro ldquoTemplate_3srv_ServiceListxmlrdquo 150

Figura 135 - Criaccedilatildeo de um Serviccedilo com base no Template ldquoTemplate_3srvlrdquo 151

Figura 136 - Lista de todos os pedidos do utilizador 151

Figura 137 - Eventual cancelamento de um pedido 152

Figura 138 - Lista dos pedidos resultantes da relaccedilatildeo Templateutilizador 152

Figura 139 - Detalhes do Serviccedilo ldquomyServicerdquo do Template ldquoTemplate_3srvrdquo 153

Figura 140 - Ficheiro ldquoallServicesListxmlrdquo 153

Figura 141 - Ficheiro ldquomyServicexmlrdquo 154

Figura 142 - InfoWindow com a visualizaccedilatildeo do Serviccedilo em XML 154

Figura 143 - Remoccedilatildeo de um Serviccedilo 154

Figura 144 - Power ON de um Serviccedilo 155

Figura 145 - Power OFF de um Serviccedilo 155

Figura 146 - Power Cycle de um Serviccedilo 155

Figura 147 - Activaccedilatildeo de um Serviccedilo 155

XIX

Figura 148 - Desactivaccedilatildeo de um Serviccedilo 155

Figura 149 - Lista dos Service Actions 156

Figura 150 - Lista dos Acessos Remotos do um Serviccedilo 156

Figura 151 - Acesso remoto por RDP 156

Figura 152 - Acesso remoto por Telnet 156

Figura 153 - Acesso remoto por VMRC 157

Figura 154 - Listagem dos pedidos por Serviccedilo 157

Figura 155 - Detalhes do Grupo de Servidores ldquoSvrGrp1rdquo do Serviccedilo ldquomyServicerdquo 158

Figura 156 - Ficheiro ldquoSvrGrp1xmlrdquo 158

Figura 157 - InfoWindow com a visualizaccedilatildeo do Grupo de Servidores em XML 159

Figura 158 - Adiccedilatildeo de Servidores ao Grupo de Servidores 159

Figura 159 - Remoccedilatildeo de Servidores ao Grupo de Servidores 159

Figura 160 - Ediccedilatildeo de Servidores ao Grupo de Servidores 160

Figura 161 - Power ON de um ServerGroup 160

Figura 162 - Power OFF de um ServerGroup 160

Figura 163 - Power Cycle de um ServerGroup 160

Figura 164 - Activaccedilatildeo de um ServerGroup 161

Figura 165 - Desactivaccedilatildeo de um ServerGroup 161

Figura 166 - Listagem de todos os Snapshots existentes no Grupo de Servidores 161

Figura 167 - Acccedilotildees SnapshotServidor 161

Figura 168 - Revert Snapshot 161

Figura 169 - Delete Snapshot 162

Figura 170 - Create Snapshot 162

Figura 171 - Lista de ldquoStereotype Disksrdquo 162

Figura 172 - Adicionar um disco virtual ldquoDisk62rdquo ao Grupo de Servidores 162

Figura 173 - Adicionar um disco fiacutesico ldquoDisk788rdquo ao Grupo de Servidores 163

Figura 174 - Detalhes do Servidor ldquoSvrGrp1-1rdquo do Serviccedilo ldquomyServicerdquo 163

Figura 175 - Ficheiro ldquohostmygostr01_lsxmlrdquo 164

Figura 176 - InfoWindow com a visualizaccedilatildeo do Servidor em XML 164

Figura 177 - Remoccedilatildeo de um Servidor 165

Figura 178 - Ediccedilatildeo de um Servidor 165

Figura 179 - Power ON de um Servidor 165

Figura 180 - Power OFF de um Servidor 165

Figura 181 - Power Cycle de um Servidor 166

Figura 182 - Activaccedilatildeo de um Servidor 166

Figura 183 - Desactivaccedilatildeo de um Servidor 166

Figura 184 - Create Snapshot 166

XX

Figura 185 - Pools de Servidores 167

Figura 186 - Criar uma Pools de Servidores 167

Figura 187 - Remoccedilatildeo de uma Pools de Servidores 167

Figura 188 - InfoWindo de aviso ao administrador 167

Figura 189 - Informaccedilatildeo dos hosts fiacutesicos 168

Figura 190 - Sessotildees Remotas num Servidor 168

Figura 191 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 169

Figura 192 - Criaccedilatildeo de um ldquoStereotype Disksrdquo 169

Figura 193 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 170

Figura 194 - Lista de Software 170

Figura 195 - Detalhes do Software 171

Figura 196 - Detalhes do Interface NIC0rdquo do Servidor ldquoSvrGrp1-1rdquo 171

Figura 197 - Listagem de todas as redes 172

Figura 198 - Detalhe da rede 172

Figura 199 - Adiccedilatildeo de um IP flutuante agrave Interface ldquoNIC0rdquo 172

Figura 200 - Remoccedilatildeo de um IP flutuante pertencente agrave Interface ldquoNIC0rdquo 173

Figura 201 - Mover um IP flutuante para a Interface ldquoNIC0rdquo 173

XXI

Iacutendice de Tabelas

Tabela 1 - Funccedilotildees associadas agrave inicializaccedilatildeo do Webservice 43

Tabela 2 - Funccedilotildees associadas ao Template 47

Tabela 3 - Funccedilotildees associadas ao Serviccedilo 50

Tabela 4 - Funccedilotildees associadas ao Grupo de Servidores 54

Tabela 5 - Funccedilotildees associadas aos Servidores 58

Tabela 6 - Funccedilotildees associadas aos Discos 60

Tabela 7 - Funccedilotildees associadas ao Software 62

Tabela 8 - Funccedilotildees associadas agraves Interfaces 63

Tabela 9 - Funccedilotildees associadas agraves Redes 65

Tabela 10 - Funccedilotildees associadas aos Snapshots 65

Tabela 11 - Funccedilotildees associadas aos Requests 67

Tabela 12 - Funccedilotildees associadas agraves Pools de Servidores 68

Tabela 13 - Dados gerais VMWARE 93

Tabela 14 - Detalhes VMWARE 93

Tabela 15 - Dados gerais Citrix 94

Tabela 16 - Dados detalhados Citrix 94

Tabela 17 - Dados gerais HP 95

Tabela 18 - Dados detalhados HP 95

Tabela 19 - Dados gerais Microsoft 96

Tabela 20 - Dados detalhados Microsoft 96

XXII

Iacutendice de Anexos

Anexo A (Virtualizaccedilatildeo Vantagens e inconvenientes) 84

Anexo B (Virtualizaccedilatildeo Arquitectura) 87

Anexo C (Virtualizaccedilatildeo Tipos de Implementaccedilatildeo) 89

Anexo D (Detalhes da plataforma e restriccedilotildees da VMware) 93

Anexo E (Detalhes da plataforma e restriccedilotildees da Citrix) 94

Anexo F (Detalhes da plataforma e restriccedilotildees da HP) 95

Anexo G (Detalhes da plataforma e restriccedilotildees da Microsoft) 96

Anexo H (Ambiente de armazenamento VMware ESXi e Citrix Xen) 97

Anexo I (Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo) 102

Anexo J (Ferramentas de desenvolvimento WebService) 107

Anexo K (Criar e executar um ldquoDynamic Web Projectrdquo no Eclipse) 114

Anexo L (Importar configurar e executar o RESTWEBSERVICE - MOE) 119

Anexo M (Criaccedilatildeo de um Serviccedilo e ligaccedilatildeo agraves VMs) 125

Anexo N (MOE Help) 132

Anexo O (VMware - Virtual Machine Resources) 140

Anexo P (Scenario view) 146

1

1 Introduccedilatildeo

11 Descriccedilatildeo e contexto

A evoluccedilatildeo do poder de processamento dos computadores actuais eacute notoacuteria nestes

uacuteltimos anos Infelizmente uma grande parte desse poder natildeo eacute efectivamente usada

no quotidiano havendo por isso uma crescente preocupaccedilatildeo com os desperdiacutecios que

resultam dessa subutilizaccedilatildeo Tecnologias como a virtualizaccedilatildeo em primeiro lugar e

a Cloud Computing como estaacutegio mais avanccedilado desta satildeo formas de reduccedilatildeo de tais

desperdiacutecios

Virtualizaccedilatildeo

Observando as duas primeiras figuras rapidamente ficamos com a ideia do

que eacute real figura 1 e do que eacute virtual figura 2 Assim entenda-se o real como algo

com caracteriacutesticas fiacutesicas concretas palpaacuteveis e o virtual associado a algo simulado

abstracto uma imitaccedilatildeo do real Eacute aqui que se enquadra a virtualizaccedilatildeo o simular de

um ambiente real que suporta todo um ambiente que vai do sistema de operaccedilatildeo agraves

aplicaccedilotildees sem necessidade de acesso agrave maacutequina real que neste caso funciona como

hospedeira desta tecnologia

A virtualizaccedilatildeo encaixa-se num mundo ilusoacuterio de vaacuterias maacutequinas virtuais

(Virtual Machines - VMs) independentes e isoladas entre si cada uma com um

Sistema Operativo (SO) proacuteprio e potencialmente diferente do SO das demais

Figura 1 - Ambiente natildeo Virtualizado

Figura 2 - Ambiente Virtualizado

2

Cloud Computing

As estrateacutegias de consolidaccedilatildeo de servidores propiciadas pelo uso de

virtualizaccedilatildeo conduzem de facto agrave reduccedilatildeo de custos de hardware software e

energia mas natildeo evitam (e podem ateacute aumentar) o nuacutemero de servidores agora

virtuais a gerir acrescentando o custo humano agrave equaccedilatildeo A adopccedilatildeo do paradigma

cloud (a ver na secccedilatildeo 2) eacute o passo a dar para manter o custo total sob controlo

O HP CloudSystem Matrix (CSM) [1] faz parte de uma pilha de software HP

para computaccedilatildeo na cloud que cobre todos os niacuteveis de serviccedilo considerados

relevantes IaaS (Infra-estrutura como Serviccedilo) PaaS (Plataforma como Serviccedilo) e

SaaS (Software como Serviccedilo) Apesar de ser a base desta pilha ie oferecer o niacutevel

IaaS eacute um produto extremamente complexo pois interage com todas as infra-

estruturas as computacionais (ie servidores fiacutesicos ou virtuais) as de

armazenamento (do disco interno aos discos em servidores de armazenamento) e as

de interligaccedilatildeo (redes Ethernet e FC)

Apesar de toda a complexidade da infra-estrutura real e virtual que gere o

CSM torna conceptualmente simples a entrega aos consumidores de infra-estruturas

para suporte a aplicaccedilotildees 1) o administrador define que recursos da infra-estrutura

estatildeo disponiacuteveis para integrar a ldquooferta cloudrdquo 2) o arquitecto define templates para

as arquitecturas que considera adequadas para necessidades dos utilizadores

consumidores (eg arquitectura 3-tier para uma soluccedilatildeo ERP1) e 3) o consumidor

escolhe o template que melhor se ajusta agraves suas necessidades e efectua um pedido de

aprovisionamento de uma infra-estrutura

Figura 3 - Infra-estrutura CSM

A interacccedilatildeo entre os diferentes interlocutores (1) (2) (3) e o CSM eacute

fundamentalmente realizada sobre portais contudo especialmente no caso do

utilizador-consumidor o portal disponibilizado pelo produto tem sido considerado

1 ERP (Enterprise Resource Planning) cobre uma larga fatia das necessidades de uma empresa Permite uma

visatildeo integrada em tempo real dos seus principais processos de negoacutecios

3

como ldquocomplexordquo por apresentar informaccedilatildeo demasiado teacutecnica ldquoriacutegidordquo por natildeo

poder ser customizado (por exemplo para suprimir a ldquoinformaccedilatildeo demasiado

teacutecnicardquo) e ldquogrosseirordquo por natildeo permitir a especificaccedilatildeo mais fina das caracteriacutesticas

da infra-estrutura que se quer aprovisionar (por exemplo permite variar o nuacutemero de

CPUs e a quantidade de memoacuteria de um servidor mas natildeo permite escolher a

tecnologia dos discos que se pretendem aprovisionar eg SSD (Solid-State Drive)

em vez de FC 15K em vez de 10K RPM)

12 Objectivos

O objectivo desta tese eacute desenvolver um framework que permita com base num

conjunto (extensiacutevelconfiguraacutevel) de opccedilotildees preacute-definidas e em layouts

customizaacuteveis definir portais que se integram com o HP CloudSystem Matrix e que

permitam aos utilizadores (consumidores IaaS) uma interacccedilatildeo mais simples praacutetica e

organizada natildeo soacute na visualizaccedilatildeo de toda a informaccedilatildeo mas tambeacutem das acccedilotildees

possiacuteveis de serem executadas nos recursos disponibilizados que satildeo ampliadas face agrave

oferta disponiacutevel no portal standard do CSM

Neste trabalho foram estudados modelos de serviccedilo e de implantaccedilatildeo

(deployment) de clouds a virtualizaccedilatildeo (natildeo somente de servidores mas tambeacutem de

armazenamento e de redes) pedra base de toda a tecnologia cloud e os moacutedulos e

APIs disponiacuteveis para interoperar com o CSM nomeadamente a API-MOE e a API-

VMware para desenvolver um framework com uma arquitectura multicamada (N-tier)

sobre TCPIP e usando o protocolo REST (Representational State Transfer) para troca

de informaccedilatildeo

13 Organizaccedilatildeo

O presente trabalho encontra-se organizado em 6 secccedilotildees que vatildeo desde o estudo

preacutevio das diferentes tecnologias ateacute agraves Consideraccedilotildees finais tidas como conclusatildeo

Assim a secccedilatildeo 1 eacute a presente introduccedilatildeo onde se apresenta a virtualizaccedilatildeo

como tecnologia nuclear ao trabalho enunciam-se os objectivos a organizaccedilatildeo de

todo o relatoacuterio e as suas contribuiccedilotildees

Na secccedilatildeo 2 eacute feita uma abordagem agrave virtualizaccedilatildeo desde a sua evoluccedilatildeo

histoacuterica culminando com a visatildeo actual das quatro tecnologias mais representativas

no mercado VMware Citrix HP e Microsoft Aborda-se natildeo soacute a virtualizaccedilatildeo de

servidores mas tambeacutem a de armazenamento e de rede

Na secccedilatildeo 3 apresenta-se uma nova tecnologia computaccedilatildeo na Cloud

resultado da uniatildeo da virtualizaccedilatildeo e moacutedulos de orquestraccedilatildeo Satildeo abordados os seus

modelos de implementaccedilatildeo e os diferentes niacuteveis de serviccedilo que podem ser oferecidos

neste paradigma

Na secccedilatildeo 4 descreve-se uma nova tecnologia HP Cloud Stack como pilha de

software e hardware Satildeo abordadas tecnologias como HP CloudSystem Matrix os

4

seus modelos de interacccedilatildeo papeis e portais conceitos fundamentais para perceber o

restante relatoacuterio e as limitaccedilotildees desta uacuteltima tecnologia razatildeo de ser deste trabalho

Na secccedilatildeo 5 eacute apresentada a framework (protoacutetipo) desde a arquitectura

implementaccedilatildeo dos diferentes moacutedulos execuccedilatildeo nos cenaacuterios possiacuteveis e coacutedigo

principal e finalmente feedback dos orientadores e redefiniccedilatildeo de objectivos ou

estrateacutegias de realizaccedilatildeo e por uacuteltimo a discussatildeo da relaccedilatildeo entre os serviccedilos e

funcionalidades do HP MOE e a framework implementada

Na secccedilatildeo 6 satildeo apresentadas as conclusotildees sobre o trabalho realizado

perspectivas para desenvolvimentos futuros fazendo-se uma discussatildeo final sobre as

dificuldades encontradas na implementaccedilatildeo

14 Contribuiccedilotildees

Todo o estudo de conceitos relaccedilotildees e teorias tem sempre como objectivo uacuteltimo a

aquisiccedilatildeo de mais conhecimento e acima de tudo aplicabilidade Nesse intuito a

principal contribuiccedilatildeo deste trabalho estaacute directamente relacionada com o principal

objectivo um framework modelo de acesso raacutepido intuitivo organizado

personalizaacutevel e acima de tudo praacutetico no acesso a recursos de uma infra-estrutura

Apresentam-se de seguida todas as contribuiccedilotildees identificadas

Um modelo simples com uma curta curva de aprendizagem e uma

flexibilidade com acessos proacuteprios individuais e personalizados a cada utilizador O

acesso a toda a informaccedilatildeorecursos eacute feita numa visualizaccedilatildeo das componentes

principais em aacutervore permitindo assim uma raacutepida visualizaccedilatildeo das configuraccedilotildees de

todo o Serviccedilo criado e um acesso raacutepido e intuitivo aos detalhes de cada componente

Visualizaccedilatildeo imediata do Cataacutelogo de Serviccedilos com todos os Templates e a

correspondente associaccedilatildeo dos serviccedilos por Template A descriccedilatildeo eacute a mesma

relativamente aos recursos associados a cada Serviccedilo A informaccedilatildeo visualizada eacute

apenas a necessaacuteria em cada visualizaccedilatildeo e instanciaccedilatildeo

Modelo personalizaacutevel com acccedilotildees como ocultar ou visualizar paineacuteis de

informaccedilatildeo lista de todos os pedidos listagem por Template por Serviccedilo layout de

toda a interface do menu em aacutervore um simples clique e toda o portal fica

personalizaacutevel a um determinado utilizador

Disponibilizaccedilatildeo de todas as acccedilotildees possiacuteveis a cada recurso na tab respectiva

da visualizaccedilatildeo da informaccedilatildeo associada a esse recurso Acccedilotildees acessiacuteveis e raacutepidas

de executar sem menus e submenus com sucessivos cliques que soacute atrasam todo o

processo A acessibilidade aos recursos eacute completa com acccedilotildees de grupo e acccedilatildeo

individuais a cada recurso permitindo assim o verdadeiro aproveitamento de todo o

Serviccedilo criado

Uma informaccedilatildeo hierarquizada e organizada em agrupamentos loacutegicos por

recursos eacute um processo muito faacutecil de seguir e perceber associada a esta

5

disponibilizaccedilatildeo de informaccedilatildeo acccedilotildees que possam ser executadas nesses recursos eacute

o objectivo da simplicidade e performance deste modelo

15 Resumo

Neste capiacutetulo fez-se uma descriccedilatildeo e contexto introdutoacuterio de conceitos como

Virtualizaccedilatildeo Cloud Computing e HP CloudSystem Matrix onde se descreveram as

mais-valias do uso destas tecnologias vantagens e inconvenientes e os papeacuteisfunccedilotildees

dos principais interlocutores Descreveram-se os objectivos desta dissertaccedilatildeo um

framework que solucione e melhore os problemas existentes em modelos

implementados actualmente Foi igualmente descrita toda a organizaccedilatildeo das diferentes

secccedilotildees e por ultimo as contribuiccedilotildees tidas no presente trabalho

6

2 Virtualizaccedilatildeo

21 Evoluccedilatildeo histoacuterica

Os primeiros passos da virtualizaccedilatildeo foram dados aproximadamente haacute meio seacuteculo e

tiveram origem em preocupaccedilotildees como heterogeneidade portabilidade estabilidade e

utilizaccedilatildeo mais eficiente de recursos Tudo comeccedilou na IBM com a sua longa lista de

variantes de uma dada arquitectura-base com as novas geraccedilotildees incompatiacuteveis com as

anteriores com muacuteltiplos SOs (mono-utilizador interactivo batch timesharing etc)

criando insatisfaccedilatildeo nos clientes Como resposta IBM lanccedilou nos anos 60 a

arquitectura 360 com suporte para virtualizaccedilatildeo (ao niacutevel do hardware) e com o

sistema de operaccedilatildeo CPCMS O CP (Control Program) era usado para gerir as VMs

e que executavam o CMS (Console Monitor System) um SO interactivo com uma

interface ldquolinha de comandordquo

Por outro lado um outro tipo de virtualizaccedilatildeo dito virtualizaccedilatildeo de aplicaccedilotildees

procura que uma aplicaccedilatildeo possa ser executada numa variedade de plataformas

distintas que apenas tecircm em comum o sistema de run-time que implementa a VM (natildeo

requer que uma VM seja ldquototalmenterdquo equivalente a uma maacutequina fiacutesica e portanto

capaz de executar um SO) Tal eacute o caso da JVM (Java Virtual Machine) capaz de

executar aplicaccedilotildees desenvolvidas na linguagem Java (nascida em 1990 de um

projecto denominado ldquoStealthrdquo da Sun Microsystems)

A implementaccedilatildeo desta tecnologia tatildeo bem aceite e cada vez mais usada nas

organizaccedilotildees demonstra a mais-valia das propriedades que caracterizam o seu

funcionamento

Isolamento Os processos das diferentes maacutequinas virtuais natildeo podem

interferir entre si ou seja um processo de uma VM natildeo pode interferir

noutra VM nem sequer no proacuteprio sistema hospedeiro (host) que suporta

toda a virtualizaccedilatildeo

Inspecccedilatildeo O gestor de maacutequinas virtuais (Virtual Machine Manager -

VMM) ou hipervisor deve ter acesso e controlo sobre todas as VMs e ateacute

sobre todos os seus processos

Interposiccedilatildeo O VMM deve poder interagir com as VMs controlar as suas

operaccedilotildees ter acesso ao fluxo de instruccedilotildees maacutequina que estas executam e

remover adicionar ou alterar essas instruccedilotildees se for necessaacuterio

Eficiecircncia As instruccedilotildees natildeo privilegiadas devem poder ser executadas

directamente no hardware sem interposiccedilatildeo do VMM

Gestatildeo O VMM deve natildeo soacute permitir manipular uma VM isoladamente

mas tambeacutem executar uma operaccedilatildeo de uma soacute vez sobre muacuteltiplas VMs

Compatibilidade de software A virtualizaccedilatildeo simula uma determinada

plataforma (real) e desse modo todo o software disponiacutevel para essa

plataforma deve poder ser executado ldquotal como estaacute (original)rdquo numa VM

7

Desempenho A sobrecarga (overhead) da camada extra de software pode

sacrificar o desempenho do sistema hospedado (guest) mas a relaccedilatildeo

custobenefiacutecios do uso da virtualizaccedilatildeo deve ser francamente positiva

O Anexo A descreve mais detalhadamente as vantagens e inconvenientes da

virtualizaccedilatildeo

22 Virtualizaccedilatildeo de Servidores

O dinamismo do triacircngulo existente entre fornecedores de software hardware e seus

clientes eacute uma constante Fornecedores como a VMware e a Microsoft publicitam as

suas soluccedilotildees de virtualizaccedilatildeo destacando as mais-valias como a utilizaccedilatildeo eficiente

de recursos partilhados gestatildeo centralizada e migraccedilatildeo dinacircmica os fornecedores de

hardware publicitam menores consumos de energia e maior interoperabilidade e

suporte as organizaccedilotildees olham para este mundo com o objectivo uacuteltimo da eficiecircncia

produtividade e custos A virtualizaccedilatildeo aparece como uma forma eficaz de fazer mais

com menos investimento

A primeira razatildeo pela qual se torna muito interessante executar muacuteltiplas VMs

num uacutenico servidor eacute a mesma pela qual executamos muacuteltiplas aplicaccedilotildees num uacutenico

servidor os recursos estariam se natildeo o fizeacutessemos muito subaproveitados Sendo

assim porque natildeo executar simplesmente muacuteltiplas aplicaccedilotildees no servidor usando um

soacute SO Podemos avanccedilar desde jaacute com uma razatildeo simples os fornecedores certificam

os seus produtos aplicaccedilotildees e serviccedilos apenas para determinados ambientes e pilhas

de software vejamos alguns exemplos 1) a Microsoft natildeo certifica configuraccedilotildees

MSCS (Microsoft Cluster Server) que incluam o serviccedilo Active Domain num dos noacutes

dos cluster 2) a VMware disponibiliza o seu produto de gestatildeo vCenter Server sobre

Unix (SUSE Linux) na forma de uma appliance fornecida pela proacutepria VMware

Assim se dispusermos de um servidor que tem os recursos apropriados para suportar

um noacute MSCS e uma instacircncia vCenter teremos de os instalar sob a forma duas VMs a

correrem sob um hipervisor instalado nesse servidor Uma outra situaccedilatildeo que ldquoobrigardquo

(do ponto de vista financeiro) agrave utilizaccedilatildeo de VMs eacute a de aplicaccedilotildees legacy uma

aplicaccedilatildeo antiga (e eacute demasiado oneroso actualizaacute-la) estaacute certificada apenas para uma

dada versatildeo de SO tambeacutem antigo que natildeo possui drivers adequados para os

servidores mais actuais sendo que o servidor antigo jaacute natildeo tem capacidade para

executar a aplicaccedilatildeo (e eacute muito oneroso mantecirc-lo) Uma soluccedilatildeo simples eacute instalar um

hipervisor num servidor recente criar uma VM e nela instalar a versatildeo antiga do SO

e a aplicaccedilatildeo

A arquitectura da virtualizaccedilatildeo estaacute descrita no Anexo B e os Tipos de

Implementaccedilatildeo no Anexo C uma leitura ajuda a perceber todos estes conceitos e

tecnologias que se seguem

Actualmente o nuacutemero de tecnologias disponiacuteveis para implementaccedilatildeo e

gestatildeo de maacutequinas virtuais tem vindo a crescer destacando-se algumas pela

8

disponibilizaccedilatildeo de um conjunto de ferramentas que as tornam vencedoras nos

mercados Seguem-se quatro exemplos das empresas (e suas tecnologias) que mais se

destacam hoje em dia

VmWare Inc VmWare Player Workstation Fusion ESXi

Citrix Systems Inc XenServer

Hewlett-Packard HP Integrity Virtual Machines

Microsoft Virtual PC Hyper-V

221 VMware (VMware Inc)

O VMware apresenta-se como uma plataforma liacuteder (80) no mercado da

virtualizaccedilatildeo com uma tecnologia de virtualizaccedilatildeo do tipo 1 (virtualizaccedilatildeo completa

tambeacutem designada nativa ou bare metal) Oferece um vasto leque de produtos desde

os hipervisores para desktops e laptops (VMware PlayerWorkstationFusion) aos

para servidores de grande porte (VMware vSphere ESXi) e ainda um vasto conjunto

de software de gestatildeo de VMs orquestraccedilatildeo de operaccedilotildees Cloud IaaS etc

De todos os produtos da VMware interessa-nos destacar aqui apenas a

tecnologia de virtualizaccedilatildeo ESXi oferecida para servidores que descrevemos em

seguida muito sucintamente

VMware vSphere ESXi Eacute uma VMM ou hipervisor tipo 1 garantindo um

elevado niacutevel de isolamento entre os recursos oferecidos agraves VMs sejam

estes o processador memoacuteria discos ou adaptadores de rede Eacute instalado

directamente sobre o hardware do servidor eliminando assim a

sobrecarga de ter um SO standard sobre o qual corre um hipervisor os

hipervisores de tipo 1 exibem portanto melhor desempenho e aumentam

a seguranccedila O facto de permitir que tudo seja virtualizado torna a VM

ainda mais completa O pacote inclui apenas o hipervisor ESXi e

ferramentas baacutesicas de gestatildeo

A forma como as instruccedilotildees do sistema hospedado (guest) satildeo executadas num

ambiente ESXi pode ser descrita com ajuda da figura 4 [8] 1) as instruccedilotildees oriundas

de aplicaccedilotildees que se executam sobre o SO hospedado satildeo executadas directamente no

processador real 2) as instruccedilotildees oriundas do proacuteprio SO hospedado satildeo verificadas

antes de serem executadas sendo que as privilegiadas satildeo traduzidas ou modificadas

para comandos ou instruccedilotildees do proacuteprio hipervisor uma teacutecnica que eacute denominada

como ldquoTraduccedilatildeo Binaacuteriardquo

Esta teacutecnica complementada com outras teacutecnicas de ldquoaceleraccedilatildeordquo de

operaccedilotildees sobre IO memoacuteria e de gestatildeo de recursos entre VMs fazem com que a

VMware consiga atingir desempenhos muito proacuteximos de um ambiente nativo ie

natildeo virtualizado

9

Figura 4 - Arquitectura VMware ESXi (Tipo-1)

Na versatildeo vSphere para servidores de grande porte estatildeo disponiacuteveis muitas

funcionalidades [9] como a migraccedilatildeo automaacutetica de VMs (balanceamento de carga)

a alta disponibilidade para vCenter (suportada pelo vCenter Server Heartbeat) a

recuperaccedilatildeo de destastres (Site Recovery Manager)

Para maiores detalhes e restriccedilotildees da VMware consultar o Anexo D [1011]

222 Xen (Citrix Systems Inc)

O XenServer eacute a plataforma de virtualizaccedilatildeo da Citrix baseada no hipervisor Xen a

versatildeo base designada Standard eacute gratuita e oferece para aleacutem do hipervisor

ferramentas como o XenCenter uma consola de gestatildeo para muacuteltiplos servidores e o

XenMotion para migraccedilatildeo ldquoin vivordquo de VMs

O hipervisor Xen na sua mais recente versatildeo eacute uma tecnologia de

virtualizaccedilatildeo do tipo 1 instalada num nuacutecleo Linux (x86 x86-64 ou IA-64 SUSE

Linux) que permite a criaccedilatildeo de vaacuterias VMs com recursos e aplicaccedilotildees partilhadas

Contrariamente ao VMware natildeo usa a traduccedilatildeo binaacuteria mas uma combinaccedilatildeo de

paravirtualizaccedilatildeo [12] (eliminando a latecircncia no desempenho introduzida pela

traduccedilatildeo binaacuteria) e virtualizaccedilatildeo assistida por hardware [13] Na paravirtualizaccedilatildeo a

maacutequina abstracta eacute quase mas natildeo completamente igual ao hardware hospedeiro

por isso o SO hospedado (guest) tem de ser modificado Como tal soacute eacute possiacutevel para

SOs disponiacuteveis em coacutedigo aberto o Xen executa os outros (eg Windows)

recorrendo a uma combinaccedilatildeo da paravirtualizaccedilatildeo com a virtualizaccedilatildeo assistida por

hardware oferecida nos processadores Intel (Intel-VT) e AMD (AMD-V)

Na arquitectura XenServer figura 5 existe uma VM privilegiada para controlo

do hipervisor denominada ldquoDom0rdquo esta VM eacute parte integrante do ambiente

10

XenServer executa uma versatildeo paravirtualizada do Linux e conteacutem os drivers dos

dispositivos disponiacuteveis no sistema As outras VMs satildeo os ldquoDomUsrdquo (domiacutenios do

utilizador) Nesta arquitectura os DomUs comunicam directamente com o hipervisor

que controla a memoacuteria e o processador do hospedeiro e se usam paravirtualizaccedilatildeo

comunicam com o Dom0 para operaccedilotildees de IO

Figura 5 - Arquitectura XenServer

O Anexo E descreve os detalhes da plataforma e restriccedilotildees da Citrix [1014]

223 Integrity VM (HP)

HP Integrity Virtual Machines (Integrity VM ou HPVM) eacute uma tecnologia de

virtualizaccedilatildeo do tipo 1 instalada num servidor da linha Integrity IA-64 com o sistema

de operaccedilatildeo HP-UX 11i v3

A gestatildeo do hipervisor eacute efectuada com a ferramenta HP Integrity Virtual

Machines Manager (HPVMMGR) mas tambeacutem eacute possiacutevel gerir os proacuteprios sistemas

hospedados desde que nestes sejam instalados os agentes HPVirtualMachine e

HPVSwitch Esta ferramenta apresenta benefiacutecios como flexibilidade e maximizaccedilatildeo

dos recursos do servidor consolidaccedilatildeo de servidores organizacionais rapidez na

implementaccedilatildeo e disponibilizaccedilatildeo de novos ambientes permite a migraccedilatildeo online e

offline isolamento de VMs oferece alta disponibilidade monitoriza automaticamente

todas as aplicaccedilotildees e permite a visualizaccedilatildeo e configuraccedilatildeo simplificada com

ferramentas como HP Integrity Virtual Machines Manager (HPVMMGR) System

Management Home (HPSMH) e HP Virtualization Manager (HPVMAN)

O Anexo F descreve os detalhes e restriccedilotildees Integrity Virtual Machines da HP

[10]

11

224 Hyper-V (Microsoft)

O Hyper-V eacute uma tecnologia de virtualizaccedilatildeo do tipo 1 da Microsoft para servidores

x86-64 com suporte agrave virtualizaccedilatildeo assistida por hardware O produto eacute

disponibilizado de forma isolada (standalone) ou integrado em versotildees Windows

Server (2008 R2 ou 2012)

A gestatildeo do ambiente virtual eacute efectuada com a ferramenta System Center

Virtual Machine Manager (SCVMM) que fornece 3 formas distintas de interactuar

com o hipervisor consola de administraccedilatildeo portal self-service (para utilizadores

finais) e Windows PowerShell (usando commandlets)

Na arquitectura Hyper-V [15] figura 6 existem dois tipos de particcedilatildeo 1) a

ldquoparticcedilatildeo pairdquo uma VM de administraccedilatildeo de todo o sistema com um Windows

Server 2008 2008 R2 ou 2012 drivers de acesso e controlo do hardware e

ferramentas de gestatildeo 2) as particcedilotildees filhas nas quais satildeo criadas as restantes VMs

completamente isoladas e sem acesso directo ao hardware No acesso ao hardware haacute

3 componentes importantes a mencionar a) o VSP (Virtual Service Provider)

responsaacutevel por receber as chamadas das particcedilotildees filhas e aceder aos drivers dos

perifeacutericos b) VSC (Virtual Service Client) um moacutedulo instalado no SO hospedado

que solicita via VMBus o acesso aos perifeacutericos da particcedilatildeo pai c) o VMBus canal

de comunicaccedilatildeo entre VSC e VSP onde se desenrolam as comunicaccedilotildees entre as

particcedilotildees

Figura 6 - Arquitectura Hyper-V

A Microsoft apresenta-nos na recente versatildeo Hyper-V 2012 uma panoacuteplia de

funcionalidades que a colocam na primeira linha das soluccedilotildees de virtualizaccedilatildeo a par

da VMware migraccedilatildeo online e replicaccedilatildeo de VMs migraccedilatildeo de armazenamento e

Clustering

O Anexo D descreve os detalhes as restriccedilotildees do Hyper-V da Microsoft

[101617]

12

23 Virtualizaccedilatildeo do Armazenamento

Haacute muito que o armazenamento passou a ser um toacutepico de ldquoprimeira classerdquo tal como

ldquoa rederdquo Para tal contribuiu significativamente a introduccedilatildeo de tecnologias tais como

o RAID (Redundant Array of Independent Disks) [18] que promoveram o

desempenho eou a toleracircncia a faltas a (comparativamente) baixo custo ndash note-se que

no artigo original de Patterson o I significava Inexpensive Com a introduccedilatildeo do

RAID rapidamente apareceram os armaacuterios de discos (disk arrays) externos ao

ldquosistemardquo e uma vez que o protocolo SCSI suportava a interligaccedilatildeo de discos

(Logical Units) a muacuteltiplos adaptadores e daiacute a muacuteltiplos sistemas o conceito de

rede de armazenamento aparece naturalmente

Como se mostra na figura 7 o disco loacutegico aparece como uma forma

elementar de virtualizaccedilatildeo jaacute que ldquoaglutinardquo elementos de diferentes discos fiacutesicos

mas eacute apresentado ao sistema como um uacutenico disco ndash ao ponto de ser impossiacutevel ao

proacuteprio sistema de operaccedilatildeo distingui-lo de um disco fiacutesico

Figura 7 - Redundant Array Independent Disks (RAID)

Numa rede de armazenamento que interliga vaacuterios armaacuterios de discos e

servidores (hosts) os primeiros oferecem volumes (ou discos loacutegicos) acessiacuteveis por

identificadores uacutenicos e os segundos tomam posse desses volumes (tipicamente cada

host tem uso exclusivo de um ou mais volumes) e formatam-nos neles instalando

sistemas de ficheiros (eg ext3 XFS NTFS) que depois usam da forma mais

conveniente Este conceito de rede de armazenamento eacute conhecido como SAN ndash

Storage Area Network figura 8

A forma mais comum de SAN usa uma infra-estrutura Fibre Channel (FC) o

que significa que tanto hosts como disk arrays possuem interfaces FC e na rede

existem comutadores (switches) FC aos quais hosts e arrays (e eventualmente outros

switches) se interligam Uma outra tecnologia que pode ser usada em SANs eacute a

Ethernet neste caso hosts disk arrays e switches tecircm interfaces Ethernet e o

protocolo de transporte usado eacute FCoE (Fibre Channel over Ethernet) A figura

seguinte mostra-se um ambiente que inclui simultaneamente uma outra tecnologia de

ldquotransporterdquo ISCSI e uma ldquozonardquo FC

13

Figura 8 - Storage Area Network (SAN)

Se bem que a relaccedilatildeo volumehost de um-para-um seja de longe a mais

frequente tambeacutem eacute possiacutevel estabelecer uma relaccedilatildeo de um-para-muitos na qual um

volume eacute detido de forma partilhada por muacuteltiplos hosts tal situaccedilatildeo implica

necessariamente o uso de sistemas de ficheiros (SF) especializados conhecidos como

shared-disk file systems Como exemplo indica-se o GFS [19] GPFS [20] e VMFS

[21] este uacuteltimo desenvolvido especificamente para armazenar VMs Num SF para

discos partilhados todos os hosts que partilham um dado volume tecircm uma visatildeo

coerente do estado do volume Em situaccedilotildees de toleracircncia a faltas esta arquitectura de

discos partilhados eacute muito apeteciacutevel pois em caso de falha de um host um dos

restantes inicia uma recuperaccedilatildeo (ao estilo de um sistema transaccional) das uacuteltimas

operaccedilotildees e rapidamente o SF regressa a um estado coerente

Figura 9 - Network Attached Storage (NAS)

Uma outra forma completamente distinta de armazenar informaccedilatildeo eacute usar um

SF distribuiacutedo neste caso natildeo haacute partilha de discos fiacutesicos mas sim de ficheiros

sendo que um host pode deter apenas parte da aacutervore do SF (eg AFS) ou nos SFs

distribuiacutedos com arquitectura clienteservidor um host dito cliente dispotildee de um

14

moacutedulo que lhe permite aceder ao SF remoto de um outro host dito servidor (eg

NFS e CIFS) como se o SF remoto fosse local

231 Armazenamento em ambientes virtualizados

Quando se aborda o armazenamento em ambientes virtualizados satildeo de considerar os

seguintes aspectos a) como representar a arquitectura de uma VM propriamente dita

(quanta memoacuteria e CPUs tem qual o chipset utilizado que adaptadores ndash de LAN

SAN graacuteficos ndash possui etc) b) como representar um disco acessiacutevel agrave VM e c)

como armazenar conteuacutedos (volaacuteteis ou natildeo) de componentes da VM tais como a

memoacuteria RAM e a memoacuteria natildeo volaacutetil NVRAM que conteacutem o BIOS

A soluccedilatildeo adoptada pelo hipervisor VMware ESXi2 eacute a seguinte a) a

representaccedilatildeo da arquitectura eacute efectuada em XML que possui as informaccedilotildees de

configuraccedilatildeo b) um disco acessiacutevel agrave VM eacute representado ou por um ficheiro que

virtualiza o proacuteprio disco ou por um ficheiro que ao estilo de uma ligaccedilatildeo simboacutelica

descreve o caminho para um disco real e finalmente c) tais conteuacutedos satildeo

armazenados em ficheiros Isto eacute tudo eacute representado por ou via ficheiros

A pergunta que se segue eacute oacutebvia onde armazenar esses ficheiros E a

resposta evidente num repositoacuterio (datastore na terminologia da VMware) gerido

pelo hipervisor onde uma VM aparece como um pasta e os seus componentes como

ficheiros no interior dessa pasta como se mostra na figura 10

Figura 10 - Datastore e VMs

O VMware ESXi suporta armazenamento em sistema de ficheiros VMFS

(sobre discos) ou NFS no caso do VMFS os discos podem ser internos ao servidor

ou podem estar numa SAN

Sistema de Ficheiros VMFS

O VMFS (Virtual Machine File System) eacute um sistema de ficheiros em cluster

e foi optimizado para armazenar grandes ficheiros e realizar operaccedilotildees de entrada e

2 Para uma comparaccedilatildeo entre o VMware ESXi e o Citrix Xen ver Anexo H

15

saiacuteda (IO) com que movimentam grandes volumes de dados Os dois servidores

figura 11 tecircm portanto uma visatildeo coerente do datastore e das VMs nele existentes

por isso eacute quando comparamos esta arquitectura com uma na qual cada servidor tem

a sua datastore muito mais simples e eficiente mover uma VM activa de um servidor

para o outro jaacute que apenas as paacuteginas modificadas residentes em memoacuteria tecircm de ser

copiadas (o resto estaacute no SF partilhado)

Figura 11 - Sistema de Ficheiros VMFS

Network File System

Nos casos em que os datastores residem num sistema de ficheiros NFS [22] os

servidores ESXi podem tambeacutem partilhar o mesmo datastore como se vecirc na figura

12 assim a movimentaccedilatildeo de VMs entre servidores por razotildees de equiliacutebrio de

cargas ou de manutenccedilatildeo de um ou outro servidor tambeacutem satildeo muito eficientes

Figura 12 - Network File System (NFS)

Para concluir note-se que se abrem nos ambientes virtualizados duas

oportunidades muito importantes quando um disco virtual eacute realizado sob a forma de

ficheiro a) a potencial poupanccedila de espaccedilo e b) a possibilidade de implementar com

facilidade uma teacutecnica de snapshots No primeiro caso conhecido como thin

provisioning referimo-nos agrave possibilidade de usar um ficheiro esparso para atribuir

um espaccedilo loacutegico de endereccedilamento ao disco (ficheiro) muito superior ao espaccedilo de

16

facto ldquoconsumidordquo pelo ficheiro no SF No segundo usando um mecanismo de

versotildees baseado em teacutecnicas de copy-on-write armazenar snapshots da VM em

determinados instantes e para usar como mecanismo de recuperaccedilatildeo do estado em

caso de ldquofalhardquo

24 Virtualizaccedilatildeo da Rede

A virtualizaccedilatildeo eacute algo mais que consolidaccedilatildeo de servidores - CPU memoacuteria e

armazenamento depois de analisada toda a infra-estrutura de suporte a uma

implementaccedilatildeo desta natureza torna-se evidente a ideia simplista desse triacircngulo A

infra-estrutura de rede virtual funciona como ligaccedilatildeo de componentes nessa

plataforma ligaccedilotildees virtuais atraveacutes dos controladores de rede virtual (Virtual

Network Interface Card - vNIC3) ligaccedilotildees fiacutesicas com os adaptadores fiacutesicos

(Physical Network Interface Card - pNIC) comutadores virtuais (vSwitch) para essas

ligaccedilotildees etc uma vasta lista de software e hardware responsaacuteveis pela comunicaccedilatildeo

de todos os componentes dos pares VMVM VMservidor e servidorservidor [23]

Numa infra-estrutura de rede tradicional figura 13 cada servidor tem uma ou

mais placas de rede (NIC) para comunicaccedilatildeo com os restantes

Figura 13 - Infra-estrutura de rede tradicional

Como sabemos um hipervisor eacute responsaacutevel pela abstracccedilatildeo do hardware

oferecido agraves VMs e na visatildeo de uma VM este hardware (virtual) de que dispotildee eacute

seu e eacute completo desconhecendo que esse hardware possa estar a ser partilhado com

outras VMs ou que eventualmente nem exista A interface virtual de rede (vNIC)

figura 14 natildeo possui qualquer componente fiacutesico eacute apenas software contudo ela

exibe as mesmas propriedades de uma placa fiacutesica incluindo um endereccedilo MAC

(IEEE 802-2001 Standard) Uma vNIC eacute ligada a uma outra abstracccedilatildeo o vSwitch

sendo que este pode comutar traacutefego que flui apenas no interior do servidor que

alberga as VMs ou estar associado a uma (ou mais para redundacircncia eou aumento

da largura de banda) placa de rede fiacutesica (pNIC)

3 Mais uma vez seguimos aqui a terminologia da VMware por simplicidade

17

Figura 14 - Infra-estrutura de rede virtual

Nesta infra-estrutura natildeo existe o limite associado agrave velocidade da placa de

rede mas sim associado agrave largura de banda (LB) da memoacuteria facilmente se

depreende tambeacutem que toda a rede entre VMs hospedadas num servidor natildeo

contribui para o congestionamento da rede fiacutesica (entre servidores) Contudo o

administrador pode impor quotas na utilizaccedilatildeo de recursos por exemplo na LB da

vNIC

Os vSwitch tecircm todas as funcionalidades de um switch real suportam

agregaccedilatildeo de traacutefego (IEEE 802ad) VLANs (IEEE 8021Q) etc Nesse sentido a

virtualizaccedilatildeo comeccedila a ir contra-corrente no que deveria ser o simplificar a

administraccedilatildeo de uma infra-estrutura pois o administrador de redes tem agora de

administrar os switches reais e ainda os virtuais

Figura 15 - vNetwork Distributed Switch ndash vDS

Para resolver este problema a VMware propotildee (figura 15) um switch virtual

distribuiacutedo (vNetwork Distributed Switch ndash vDS) [23] que representa a agregaccedilatildeo de

vaacuterios switchs virtuais de diferentes servidores ocultando as camadas inferiores e

oferecendo um suporte de rede uniforme que simplifica entre outras a administraccedilatildeo

da rede as migraccedilotildees de VMs e o desempenho ndash por exemplo ao associar um vDS a

18

muacuteltiplas pNICs o hipervisor pode de forma automaacutetica alterar a loacutegica de

encaminhamento de pacotes para redistribuir o traacutefego entre as pNICs aumentado o

desempenho e minimizando as falhas

Na infra-estrutura de rede virtualizada os aspectos relativos agrave seguranccedila dessa

rede satildeo tambeacutem contemplados sendo apresentadas soluccedilotildees de inspecccedilatildeo de fluxos

de pacotes como eacute o caso dos Distributed Virtual Filter (DVFilter) [23] apresentado

na figura 16

Figura 16 - Distributed Virtual Filter (DVFilter)

25 Resumo

Neste capiacutetulo fez-se uma breve descriccedilatildeo histoacuterica para enquadramento do restante

capiacutetulo A virtualizaccedilatildeo de servidores aparece como nuacutecleo central nas suas quatro

plataformas de virtualizaccedilatildeo que considerei mais importantes ESXi (VMware Inc)

XenServer (Citrix Systems Inc) HP Integrity Virtual Machines (Hewlett-Packard) e

o Hyper-V (Microsoft) Foram tambeacutem abordadas tecnologias na aacuterea da virtualizaccedilatildeo

de armazenamento em conceitos como RAID SAN NAS e nos ambientes

virtualizados VMFS e NFS Tambeacutem a virtualizaccedilatildeo de rede natildeo foi descurada e

nesse intuito foram abordados conceitos como vNIC pNIC VLANs vNetwork

Distributed Switch e Distributed Virtual Filter

19

3 Computaccedilatildeo na Cloud

Como anteriormente referimos o uso crescente de Tecnologias de Informaccedilatildeo (TI) nas

organizaccedilotildees leva geralmente a uma proliferaccedilatildeo de servidores fiacutesicos o que as obriga

mais cedo ou mais tarde a adoptar estrateacutegias de consolidaccedilatildeo de servidores com a

consequente reduccedilatildeo de custos de hardware e energia Resolvidas estas questotildees restam

contudo outras - o uso de virtualizaccedilatildeo natildeo reduz por si soacute o esforccedilo de administraccedilatildeo

das infra-estruturas nem resolve problemas de disponibilidade desempenho seguranccedila

etc que satildeo questotildees que nem todas as organizaccedilotildees querem ou estatildeo aptas a resolver

preferindo por vezes que ldquoalgueacutemrdquo assuma esta responsabilidade

A Computaccedilatildeo na Cloud (CC) apresenta-se assim como uma sequecircncia de passos

nesse sentido cada um correspondendo a um modelo de serviccedilo (ver em 32) e resolvendo

mais uma ldquofatiardquo dos problemas enunciados A CC eacute actualmente associada a palavras

chave como padronizaccedilatildeo automatizaccedilatildeo velocidade disponibilidade elasticidade

acesso global e agrave ideia de usar um conjunto de recursos partilhados As organizaccedilotildees

podem entatildeo preocupar-se essencialmente com as melhorias operacionais e para isso

procuram soluccedilotildees que possibilitem uma afectaccedilatildeo (e posteriormente libertaccedilatildeo) de

recursos de forma raacutepida e automaacutetica

ldquoCloud computing is a model for enabling ubiquitous convenient on-demand network access

to a shared pool of configurable computing resources (eg networks servers storage

applications and services) that can be rapidly provisioned and released with minimal

management effort or service provider interactionrdquo

The NIST Definition of Cloud Computing [Online] Available

httpwwwnistgovitlcsdcloud-102511cfm

31 Periacutemetro de uma cloud

Designamos por periacutemetro (ou modelo de implantaccedilatildeo) de uma cloud a forma como

caracterizamos o conjunto dos utilizadores com acesso aos serviccedilos dessa cloud

Nesta secccedilatildeo apresentamos apenas os trecircs tipos mais comuns deixando de fora outros

como as clouds partilhadas e federadas

Clouds Privadas

Ambientes construiacutedos exclusivamente para os utilizadores de uma uacutenica

organizaccedilatildeo Nesta tipologia os recursos (infra-estrutura e aplicaccedilotildees) satildeo totalmente

detidos pela organizaccedilatildeo podendo ser administrados pela proacutepria organizaccedilatildeo por

terceiros ou ainda pela combinaccedilatildeo das duas entidades A infra-estrutura estaacute

normalmente instalada num data center privado e as maiores preocupaccedilotildees satildeo

geralmente a garantia de disponibilidade e o desempenho dos serviccedilos e aplicaccedilotildees

20

Clouds Puacuteblicas

Ambientes construiacutedos para oferecer serviccedilos quer a utilizadores individuais

quer a organizaccedilotildees Nesta tipologia a infra-estrutura eacute geralmente detida pela

organizaccedilatildeo que comercializa os referidos serviccedilos que satildeo tipicamente cobrados na

forma ldquopay-per-userdquo As maiores preocupaccedilotildees da entidade gestora satildeo garantir a

privacidade e a seguranccedila (note-se que os ldquoutilizadoresrdquo podem de facto ser

administradores dos servidores que detecircm e podem instalar software) o isolamento

entre recursos detidos por utilizadores distintos e ainda assim garantir bom

desempenho dos serviccedilos e aplicaccedilotildees

Clouds Hiacutebridas

As clouds hiacutebridas representam a junccedilatildeo de dois modelos de cloud privada e

puacuteblica Este modelo eacute normalmente implantado em organizaccedilotildees que tecircm picos de

trabalho que por uma ou outra razatildeo natildeo podem suportar na sua cloud privada e

nessas alturas a ldquoelasticidaderdquo eacute usada para aprovisionar recursos de uma cloud

puacuteblica

32 Modelos de serviccedilo

Existem trecircs modelos base de serviccedilos de Cloud Computing que podem ser oferecidos

agraves organizaccedilotildees e que se diferenciam pelas configuraccedilotildees e responsabilidades do

provedor de serviccedilos figura 17

IaaS (Infrastructure as a Service)

No modelo ldquoinfra-estrutura como serviccedilordquo o provedor oferece ao consumidor

uma infra-estrutura de processamento e armazenamento com a configuraccedilatildeo que se

adequa agraves suas necessidades o cliente natildeo tem assim necessidade de adquirir

servidores racks software e ateacute mesmo espaccedilo fiacutesico Satildeo exemplos de provedores

puacuteblicos IaaS a Amazon EC2 [2] e o GoGrid [3] jaacute o Eucalyptus [4] o vCloud (da

VMware) e o HP CloudSystem Matrix satildeo exemplo de produtos software para a

criaccedilatildeo de clouds privadas

PaaS (Platform as a Service)

No modelo ldquoplataforma como serviccedilordquo o provedor disponibiliza plataformas

computacionais completas (incluindo naturalmente a infra-estrutura computacional)

para os utilizadoresconsumidores dessas plataformas integrarem as suas aplicaccedilotildees

(existentes ou a desenvolver) sendo que estas seratildeo posteriormente disponibilizadas

na cloud Como exemplo indicam-se as plataformas LAMP (Linux Apache MySQL

PHP) Google AppEngine [5] e Microsoft Azure [6]

21

SaaS (Software as a Service)

Neste modelo o provedor disponibiliza ao cliente final uma aplicaccedilatildeo pronta-

a-usar como exemplos mencionam-se as Google Apps [7] Google Docs e Microsoft

SharePoint Online Este eacute o paradigma cloud por excelecircncia utilidade facilidade

(interacccedilatildeo via browser) disponibilidade e por vezes ateacute alguma capacidade de

personalizaccedilatildeo

Figura 17 - Relaccedilatildeo entre serviccedilos e responsabilidades

Associados agrave CC vaacuterios modelos ldquoAs a Servicerdquo tecircm surgido para responder

agraves necessidades das organizaccedilotildees contudo todos acabam por ser enquadrados nos

trecircs tipos base (Infra-estrutura Plataforma e Software) de acordo com os serviccedilos que

disponibilizam

ldquoDatabase As A Service (DBaaS or DaaS) Network As A Service (NaaS) DataCenter As A

Service (DCaaS) Storage As A Service (StoraaS) Everything As A Service (EaaS) Data As

A Service (DaaS) Security As A Service (SecaaS) Computing As A Service (CaaS) Desktop

As A Service (VDI) Voice As A Service (VaaS) Communication As A Service (ComaaS)

Testing As A Service (TaaS) Backup As A Service (BaaS) Monitoring As A Service

(MaaS) Recovery As A Service (RaaS) Content Delivery Network As a Service (CDNaaS)

Application As A Service (AaaS) Business Intelligence As A Service (BIaaS) etcrdquo

Cloud9IDE [Online] Available httpsc9io

As relaccedilotildees entre os modelos IaaS PaaS e SaaS satildeo hieraacuterquicas como se

pode observar na figura 18 que ainda ilustra os papeacuteis do provedor de serviccedilos

equipas de desenvolvimento e utilizadores finais Como se observa o IaaS fornece

recursos de hardware e software ao PaaS e SaaS o PaaS oferece ferramentas para

desenvolvimento ao SaaS e por fim o SaaS executa e disponibiliza aplicaccedilotildees aos

utilizadores finais

22

Figura 18 - Relaccedilotildees e papeacuteis dos envolventes nos modelos de Cloud Computing

33 Resumo

O presente capiacutetulo descreve a tecnologia de Computaccedilatildeo na Cloud (Cloud

Computing) vantagens do seu uso e conceitos tais como periacutemetro (onde se

enquadram designaccedilotildees como Clouds Privadas e Puacuteblicas passando pelas Hiacutebridas) e

modelos de Serviccedilo IaaS PaaS e SaaS sendo o IaaS o foco desta dissertaccedilatildeo

A virtualizaccedilatildeo apresenta-se como a tecnologia chave de todo este processo

ela desempenha e continuaraacute a desempenhar um papel indispensaacutevel para que os

prestadores de serviccedilo continuem a oferecer ambientes de CC que permitem um

dimensionamento correcto e economicamente ajustado das infra-estruturas de TI

oferecendo ainda funcionalidades como gestatildeo centralizada disponibilidade e

seguranccedila

23

4 HP Cloud Stack

O OpenStack eacute presentemente um consoacutercio que inclui entidades como a ATampT HP

IBM Rackspace Red Hat Suse etc fortemente empenhadas na computaccedilatildeo na cloud e

que tecircm por objectivo colocar no mercado uma implementaccedilatildeo ubiacutequa para clouds tanto

puacuteblicas como privadas e uma pilha de software em coacutedigo aberto que suporta

heterogeneidade (por exemplo nos hipervisores) e uma enorme riqueza em recursos (de

computaccedilatildeo armazenamento e interligaccedilatildeo)

O OpenStack promove uma arquitectura comum ou seja um framework que eacute

extensiacutevel e permite que terceiros (incluindo os parceiros do consoacutercio) ampliem as suas

funcionalidades quer por via de desenvolvimentos adicionais quer por integraccedilatildeo de

produtos jaacute existentes embora a pilha-base jaacute permita por meio de portais quer a

administraccedilatildeo das pools de computaccedilatildeo armazenamento e rede quer o provisionamento

de recursos

As plataformas Cloud em Open Source tornam-se atraentes pelo seu baixo custo

inicial de implementaccedilatildeo e pela perspectiva da portabilidade

41 HP CloudSystem Matrix

A HP CloudSystem Matrix eacute uma soluccedilatildeo proprietaacuteria que assenta na plataforma

OpenStack para lhe acrescentar moacutedulos de seguranccedila gestatildeo e automaccedilatildeo

abrangente a toda a infra-estrutura como mostra a figura 19 Eacute uma soluccedilatildeo IaaS

tanto para clouds privadas como para hiacutebridas

Figura 19 - Contributos CloudStack

Norteado por uma visatildeo de ldquosimplificaccedilatildeo como chaverdquo o HP Cloud System

Matrix permite entregar soluccedilotildees preacute-definidas num cataacutelogo de serviccedilos de TI a

consumidores da infra-estrutura (utilizadores) que as requisitaram a partir de um

portal self-service

24

Figura 20 - Desenho publicaccedilatildeo e implementaccedilatildeo do cataacutelogo de serviccedilos

A soluccedilatildeo HP CloudSystem Matrix oferece

Um ambiente de trabalho (Matrix Operating Environment - MOE)

altamente automatizado que automaticamente se ajusta a todo o

dinamismo de negoacutecio permitindo um raacutepido desenho provisionamento e

modificaccedilatildeo de toda a infra-estrutura e uma optimizaccedilatildeo dos ambientes

fiacutesicos e virtuais a fornecer como serviccedilo

Uma pilha de tecnologias de gestatildeo figura 21 HP Console Management

System (CMS) que inclui ferramentas como HP Universal Discovery

(UD) para detectar automaticamente todos os objectos do ambiente HP

SiteScope [25] (opcional) que monitoriza a disponibilidade e desempenho

de toda a infra-estrutura - aplicaccedilotildees servidores SO serviccedilos de rede

armazenamento [24] e software de virtualizaccedilatildeo - evitando e resolvendo

alguns problemas de desempenho (estrangulamentos por escassez de

recursos)

Uma infra-estrutura convergente (HP Converged Infrastructure) apoiada

em soluccedilotildees como o HP Insight Control (IC) para gestatildeo da infra-

estrutura e o HP Insight Dynamics (ID) uma consola de Data Center para

uma gestatildeo centralizada de agregados (pools) de recursos e de pacotes

preacute-configurados de hardware e software Eacute aqui que se criam as pools de

recursos para posterior fornecimento ao MOE

O MOE assenta nesta pilha como o uacuteltimo niacutevel de software um ambiente de

trabalho altamente automatizado permitindo que seja possiacutevel a reduccedilatildeo draacutestica de

custos tempo e esforccedilo na implementaccedilatildeo de toda a estrutura necessaacuteria assim como

das aplicaccedilotildees mercecirc do seu moacutedulo de orquestraccedilatildeo da infra-estrutura (Infrastructure

Orchestration - IO) e opcionalmente do moacutedulo de automaccedilatildeo de servidores (Server

Automation - SA) Em suma trata-se de um ambiente optimizado para gestatildeo e

aprovisionamento de infra-estruturas hiacutebridas incluindo servidores fiacutesicos (Integrity e

x86) e virtuais rede e armazenamento [23] O CloudSystem Matrix estaacute igualmente

integrado com tecnologias de virtualizaccedilatildeo como o ESXi da VMware e o Hiper-V da

Microsoft

25

Figura 21 - Infra-estrutura HP CloudSystem Matrix

42 Modelos de interacccedilatildeo com o HP CSM

Definidos os modelos de implementaccedilatildeo e serviccedilo resta definir as formas de

comunicaccedilatildeo os modos de interacccedilatildeo entre as infra-estruturas aplicaccedilotildees e processos

O modelo eacute transparente para o utilizador final sendo disponibilizadas trecircs opccedilotildees

Web Service API

Este eacute o meacutetodo preferido para controlar os processos dentro da TI Um Web

Service (WS) eacute de acordo com o W3C4 ldquoa software system designed to support

interoperable machine-to-machine interaction over a network It has an interface

described in a machine-processable format (specifically WSDL) Other systems

interact with the Web service in a manner prescribed by its description using SOAP

messages typically conveyed using HTTP with an XML serialization in conjunction

with other Web-related standardsrdquo A HP CloudSystem Matrix oferece uma API

baseada no protocolo SOAP (Simple Object Access Protocol) para troca de

informaccedilatildeo estruturada numa plataforma descentralizada e distribuiacuteda Eacute um

protocolo baseado numa linguagem de marcaccedilatildeo extensiacutevel (Extensible Markup

Language ndash XML) para o formato das mensagens enviadas e recebidas e no protocolo

de transferecircncia de hipertexto (HyperText Transfer Protocol ndash HTTP) para negociaccedilatildeo

e transmissatildeo de mensagens Como protocolo de transporte usa igualmente HTTP

garantindo assim uma certa ldquofacilidaderdquo para funcionar em ambientes protegidos por

firewalls

4 httpwwww3orgTRws-archwhatis

26

Command line interface (CLI)

Uma interface de linha de comando que inclui natildeo soacute todas as opccedilotildees

disponiacuteveis na API WebService como outras natildeo disponiacuteveis nas outras APIs

Northbound API (nbAPI)

Uma interface de controlo remoto atraveacutes de um URL (Uniform Resource

Locator) endereccedilo de um determinado recurso disponiacutevel numa rede o acesso pode

ser efectuado por HTTP FTP etc (ex protocolomaacutequinacaminhorecurso)

43 Papeacuteis e Portais de interacccedilatildeo

Os provedores de serviccedilo cloud satildeo responsaacuteveis por fornecer toda a infra-estrutura do

serviccedilo contratado Nestas arquitecturas existem normalmente trecircs tipos de (papeacuteis de)

utilizadores da cloud que se associam aos respectivos portais figura 22

Administrador Arquitecto e Utilizador final (ou consumidor de serviccedilos cloud)

Figura 22 - Utilizadores de TI em cloud e respectivos papeacuteis (roles)

Administrador Cloud

O administrador usando as ferramentas de ao seu dispor cria monitoriza e

manteacutem a pool de recursos (de computaccedilatildeo memoacuteria armazenamento e rede) a

disponibilizar na cloud Normalmente este papel tambeacutem envolve a implementaccedilatildeo

de acordos de niacutevel de serviccedilo (Service Level Agreement - SLA) onde satildeo definidas

as poliacuteticas entre o fornecedor de serviccedilos cloud e os seus ldquoclientesrdquo O portal

associado a este utilizador eacute o portal do Administrador figura 23

27

Figura 23 - Portal do Administrador

Arquitecto Cloud

O arquitecto eacute um utilizador teacutecnico responsaacutevel por projectardesenhar

montar e tornar disponiacuteveis (publicar) serviccedilos que a proacutepria infra-estrutura pode

disponibilizar para os utilizadores mediante poliacuteticas e necessidades dos objectivos

estrateacutegicos de uma organizaccedilatildeo Esses serviccedilos podem ser personalizaacuteveis e

especiacuteficos para um determinado utilizador grupo de utilizadores ou para uso geral O

arquitecto pode ainda criar fluxos de trabalho (workflows) que passo a passo ajudam

na interacccedilatildeo utilizador-ambiente oferecendo serviccedilos como personalizaccedilatildeo gestatildeo

simplificaccedilatildeo de processos e a proacutepria integraccedilatildeo de TIs O portal associado a este

tipo de utilizador eacute o Designer Portal onde o arquitecto desenha a infra-estrutura e os

modelos de serviccedilo (templates de que adiante falaremos) a incluir no cataacutelogo

Figura 24 - Portal do Arquitecto

28

Consumidor IaaS

O portal associado a este tipo de utilizador eacute o Self-service Portal (ou user

portal) onde o utilizador poderaacute seleccionar visualizar e instanciar os modelos de

serviccedilo preacute-definidos pelo Arquitecto O utilizador depois de escolher de entre os que

existem no cataacutelogo de serviccedilos o ldquomodelo de infra-estruturardquo que mais se adequa agraves

suas necessidades solicita a sua instanciaccedilatildeo para obter os recursos de computaccedilatildeo

memoacuteria armazenamento e rede Este portal permite ainda ao utilizador efectuar a

gestatildeo dos serviccedilos solicitados

Figura 25 - Portal do Utilizador final

44 Conceitos fundamentais da plataforma HP CSM

Apresentamos agora um leque de conceitos fundamentais para compreender o HP

CSM e o trabalho que realizaacutemos Nalguns casos poderemos apresentar exemplos

concretos para melhor ilustrar esses conceitos

Template

Num template o Arquitecto da infra-estrutura captura uma configuraccedilatildeo tiacutepica

em TI especificando os seus componentes-base (hardware e software) e desenha as

suas inter-relaccedilotildees que servidores existem quais as suas caracteriacutesticas (CPUs

memoacuteria discos interfaces) como se interligam os servidores entre si (as conexotildees

de rede) e se for o caso como um ou mais desses servidores se ligam ao ldquoexteriorrdquo do

Centro de Dados Do template tambeacutem faz parte o software haveraacute servidores com

Linux outros com Windows Server uns podem ter Apache e outros SQL Server para

dar alguns exemplos Os templates apoacutes publicaccedilatildeo passam a fazer parte de um

cataacutelogo de serviccedilos para uso dos consumidores de serviccedilos dessa infra-estrutura de

cloud

29

Como exemplo vejamos a seguinte situaccedilatildeo em TI a pilha LAMP (Linux

Apache MySQL PHP) eacute um padratildeo comum e bastante usado assim o arquitecto

poderaacute criar dois templates LAMP-base com um uacutenico servidor e toda a pilha nele

instalada e LAMP-elaacutestico em que haacute uma farm de servidores Apache-PHP que se

ligam a um ldquofailover clusterrdquo de dois servidores MySQL

Server Group

Um ldquoGrupo de Servidoresrdquo eacute constituiacutedo por um ou mais servidores com as

mesmas caracteriacutesticas e configuraccedilotildees software discos interfaces etc O arquitecto

usa os Grupos de Servidores para organizar os servidores em torno da funccedilatildeo que

estes desempenham eou das suas caracteriacutesticas

Por exemplo o arquitecto definiria no template LAMP-base um uacutenico grupo

de servidor(es) mas jaacute no caso do template LAMP-elaacutestico definiria o grupo APfarm

(que incluiria um proto-servidor com determinadas caracteriacutesticas ndash 2 interfaces LAN

Linux Apache e PHP) e o grupo MySQLfo (com um proto-servidor tambeacutem com 2

interfaces LAN mas com Linux Linux-HA e MySQL) Soacute que o grupo APfarm

permitiria um miacutenimo de 1 e um maacuteximo de digamos 4 servidores enquanto o grupo

MySQLfo seria instanciado sempre com 2 servidores

Server

Eacute obviamente um servidor (virtual quase sempre embora o HP CSM permita

ldquoinstanciarrdquo ndash leia-se instalar o software e configurar ndash servidores fiacutesicos) com

atributos (muitos deles especificaacuteveis por um intervalo de valores entre um miacutenimo o

default e um maacuteximo) como memoacuteria (RAM) nuacutemero de processadores e

correspondente velocidade de reloacutegio discos lista de software associado interfaces

de rede (LAN eou SAN) etc

Software

O termo ldquoSoftwarerdquo refere-se a um produto software instalaacutevel no servidor

(pode ser o SO um SGBD um qualquer middleware ou ateacute uma aplicaccedilatildeo) Haacute duas

formas de efectuar essa instalaccedilatildeo automaticamente no acto de instanciaccedilatildeo do

servidor usando um pacote opcional o HP Server Automation (SA) ou manualmente

(a usada neste trabalho por natildeo dispormos do HP SA) ndash e neste caso temos de criar

uma VM instalar o software e depois transformar a VM numa VM-template (o que

se faz directamente no software de virtualizaccedilatildeo eg VMware vCenter Server)

Disk

Eacute um disco virtual ou fiacutesico que pode ser acedido pelo(s) servidor(es) pode

ser bootable shareable (partilhaacutevel entre servidores) suportado numa tecnologia

magneacutetica ou SSD acessiacutevel por ligaccedilatildeo FC ou iSCSI etc

Interface

Uma ldquointerfacerdquo eacute um ponto de contacto entre o servidor e as redes (que lhe

satildeo) externas de um ponto de vista pragmaacutetico deixando de lado infra-estruturas

30

pouco comuns em centros de dados de TI (por contraposiccedilatildeo aos CDs HPC) as infra-

estruturas relevantes satildeo Fibre Channel (FC) e Ethernet Assim as interfaces em

questatildeo satildeo HBAs (FC) e NICs (Ethernet)

Service

Um Service corresponde a uma instanciaccedilatildeo de um template e herda deste

todas as configuraccedilotildees base que poderatildeo ser posteriormente editadas com mais ou

menos servidores processamento memoacuteria discos etc ateacute ao limite maacuteximo

definido no Template

A criaccedilatildeo do serviccedilo eacute efectuada pelo consumidor5 IaaS que faz a definiccedilatildeo

fina das caracteriacutesticas da infra-estrutura que quer aprovisionar Continuando com os

exemplos baseados na pilha LAMP um consumidor do departamento de TI poderia

num dado momento criar um serviccedilo LAMP-testes baseado no template LAMP-base e

que usaria para fazer testes ao ldquoprodutordquo que estaacute a desenvolver e solicitar ao

administrador da cloud o respectivo aprovisionamento e mais tarde criar um serviccedilo

LAMP-produccedilatildeo baseado no template LAMP-elaacutestico e que usaria para colocar on-

line o produto

45 Limitaccedilotildees do HP CloudSystem Matrix

Em resumo o HP CloudSystem Matrix eacute um software stack para a implementaccedilatildeo de

clouds privadas que oferecem infra-estruturas como serviccedilo (IaaS) isto eacute permite aos

utilizadores (consumidores) dos seus serviccedilos aprovisionar de uma forma faacutecil e

raacutepida (minutos) uma infra-estrutura computacional completa de servidores6 (CPU

memoacuteria e discos) com o SO jaacute instalado interligados por uma topologia de rede mais

ou menos complexa

Contudo o supracitado ldquoaprovisionar de uma forma faacutecil e raacutepida (minutos)

uma infra-estrutura computacional completa de servidoresrdquo soacute eacute de facto faacutecil se

baseada na instanciaccedilatildeo de um template que serve exactamente as necessidades do

utilizador jaacute que na instanciaccedilatildeo apenas se pode modificar para cada servidor o

nuacutemero de CPUs e a quantidade de memoacuteria deixando de fora por exemplo opccedilotildees

de rede eou de armazenamento discos fiacutesicos vs virtuais aprovisionamento thin vs

thick (ver 23) escolha da tecnologia da interface (SATA vs SAS vs FC) ou do disco

(magneacutetico vs SSD)

Por outro lado a interacccedilatildeo atraveacutes do portal self-service do utilizador tambeacutem

apresenta algumas desvantagens a informaccedilatildeo apresentada pode ser em muitos casos

considerada demasiadamente teacutecnica eou desnecessaacuteria sendo que o portal natildeo pode

ser configurado para a omitir

5 Muitas vezes designado utilizador-consumidor ou simplesmente utilizador ndash e nesse caso eacute importante natildeo o

confundir com um mero utilizador final 6 Uma das vantagens do HPCSM eacute permitir aprovisionar natildeo soacute servidores virtuais mas tambeacutem reais (estes

uacuteltimos tecircm obrigatoriamente de ser fabricados pela HP)

31

46 Resumo

Este capiacutetulo descreve a HP CloudSystem Matrix uma pilha de software que

implementa o modelo IaaS para clouds privadas e faz parte de um leque mais vasto

da oferta HP que passa pela CloudSystem Enterprise (clouds privadas e hiacutebridas) e

culmina com a CloudSystem System Provider (que acrescenta as clouds puacuteblicas)

A HP CloudSystem Matrix eacute o nuacutecleo de trabalho deste framework razatildeo de

ser deste estudo e deste capiacutetulo Todo o hardware e pilha de software em que assenta

toda a infra-estrutura HP CloudSystem Matrix foi descrita nomeadamente os seus trecircs

Modelos de interacccedilatildeo (API CLI e nbAPI) os papeacuteis e portais de interacccedilatildeo

(Administrador Arquitecto e Utilizador) Concluiacutemos com uma abordagem modular

da infra-estrutura com a explicaccedilatildeo dos moacutedulos principais e finalmente as limitaccedilotildees

desta infra-estrutura em particular do portal actualmente em uso

32

5 O framework e a sua Realizaccedilatildeo

51 Arquitectura

A arquitectura proposta assenta em 3 camadas (3-tier) apresentaccedilatildeo loacutegica e dados

este tipo de arquitectura eacute bem conhecida apresentando como resultado da

modularidade uma seacuterie de benefiacutecios que incluem a escalabilidade que resulta da

possibilidade de executar uma ou outra camada num servidor distinto ou ateacute em

certos casos numa farm de servidores A comunicaccedilatildeo entre as camadas apresentaccedilatildeo

e loacutegicaserviccedilos assenta num protocolo REST (ou seja a arquitectura eacute orientada agrave

Web (WOA) com Axiom0a [28] - Universality2 com um URI por cada recurso

importante) e dados em formato XML (visualizaccedilatildeo) ou JSON (programaccedilatildeo)

transportados em HTTP sobre TCPIP Relativamente agrave comunicaccedilatildeo com o HP

CSM ela processa-se sobre HTTPS numa arquitectura SOA com o protocolo SOAP

Figura 26 - Arquitectura n-tier

Camada de Apresentaccedilatildeo

Define e realiza a interface do utilizador o formato de interacccedilatildeo e

visualizaccedilatildeo foi optimizada para o navegador Google Chrome mas funciona

igualmente noutros browsers Eacute a camada de mais alto niacutevel e eacute responsaacutevel natildeo soacute

pelo contacto utilizadoraplicaccedilatildeo atraveacutes de um conjunto de interfaces que podem ser

apresentadas num browser mas tambeacutem por lhe fazer chegar a informaccedilatildeo das

camadas inferiores

33

Camada Loacutegicanegoacutecio

Tambeacutem conhecida como a camada de negoacutecio eacute o nuacutecleo da aplicaccedilatildeo e eacute

responsaacutevel por controlar as suas funcionalidades tem igualmente a responsabilidade

de realizar a transiccedilatildeo de dados entre as camadas de apresentaccedilatildeo e dados e ainda

todas as transiccedilotildees necessaacuterias entre a proacutepria aplicaccedilatildeo e a camada de serviccedilos

Camada de Serviccedilos

Camada que realiza toda a comunicaccedilatildeo com os webservices do CSM

nomeadamente via API do MOE e outras APIs como eacute o caso da API da VMware

Camada de Dados

Camada responsaacutevel por guardar e gerir os dados em texto (ou numa base de

dados opccedilatildeo que activamos quando queremos trabalhar offline ndash o que neste

momento apenas fazemos para testes) e cache de leituras (cookies) com a informaccedilatildeo

sobre o utilizador e outras informaccedilotildees proveniente da camada de loacutegicaserviccedilos

como eacute o caso da implementaccedilatildeo Realm JAAS no moacutedulo de login JAAS

52 Integraccedilatildeo da framework no HP CSM (MOE e VMware)

Nesta secccedilatildeo propositadamente muito simples mostramos (figura 27) as relaccedilotildees

entre a framework agrave esquerda a plataforma HP CSM (MOE) com o qual esta

interage ao centro e a plataforma VMware vCenter que gere o hipervisor ESXi que

em ultima instacircncia eacute quem suporta as VMs que se disponibilizam na cloud

Figura 27 - Relaccedilatildeo dos VMIDs (WebService-MOE-vCenter)

34

53 Um desenho guiado pela Interface Utilizador

A portal is a window into a much broader set of capabilities in the IT world Its critical that portals be user-friendly and fairly intuitive to use

Ken Stephens vice president of Xerox Corp

O desenvolvimento deste framework teve sempre como objectivo uacuteltimo o

utilizador com acessos consulta de informaccedilatildeo e interacccedilotildees raacutepidas intuitivas faacuteceis

e acima de tudo praacuteticas Pretendeu-se simplicidade com uma curta curva de

aprendizagem e uma flexibilidade com acessos proacuteprios e individuais a cada

utilizador associados a um username e role (admin ou user) dispensando a

necessidade da se ter de usar dua interfaces distintas uma para o administrador outra

para um utilizador-consumidor de serviccedilos

These users want to see performance graphs and have the capability to build complex configurations and templates for their end users

Lauren Nelson Forrester Research Inc

A visualizaccedilatildeo em tempo real de todas as acccedilotildees do utilizador com a

disponibilizaccedilatildeo de uma ldquobarra de progressordquo a visualizaccedilatildeo do estado geral do

webservice e das suas configuraccedilotildeesrecursos tambeacutem natildeo foram descuradas A

descriccedilatildeo dos componentes principais em aacutervore permite a raacutepida visualizaccedilatildeo das

configuraccedilotildees de todo o Serviccedilo criado das suas hierarquias e relaccedilotildees e um acesso

raacutepido e intuitivo aos detalhes de cada componente

35

Figura 28 - Estrutura em aacutervore do menu lateral esquerdo

Developers want a clean easy-to-use [product] to select prebuilt templates -- but they dont need to see any of the complex performance or payment configurations

Lauren Nelson

O Cataacutelogo de Templates publicados pelo Arquitecto eacute imediatamente

visualizado no menu em aacutervore quando o webservice eacute inicializado que eacute

imediatamente povoada com os Serviccedilos (e seus recursos) anteriormente criados por

esse utilizador

Para criar um novo Serviccedilo o utilizador seleciona o template que mais se

adequa agraves suas necessidades e cria o Serviccedilo Todos os Serviccedilos associados a um

determinado Template ficam como ramos na aacutervore desse Template o mesmo

acontecendo relativamente aos recursos associados a cada Serviccedilo A informaccedilatildeo

visualizada eacute apenas a necessaacuteria a cada visualizaccedilatildeo e instanciaccedilatildeo

A interface eacute assim raacutepida acessiacutevel intuitiva organizada e personalizaacutevel as

acccedilotildees satildeo acessiacuteveis e raacutepidas de executar sem menus e submenus com sucessivos

cliques que soacute atrasam todo o processo

36

Figura 29 - Portal

37

Figura 30 - Diagrama de Sequecircncia (Criaccedilatildeo de um Serviccedilo)

38

What you want and what you get in most cases depends on the users persona -- either an IT manager or a developerhellip By making portals task-

based youre not just seeing a bunch of random menus or links If youre

searching for something youll find it quicklyrdquo

Bill Forsyth vice president of portal development at Savvis

Um portal personalizaacutevel em funccedilatildeo do utilizador ocultar ou exibir paineacuteis de

informaccedilatildeo a lista de pedidos limitar a exibiccedilatildeo por Template ou por Serviccedilo - um

simples clique e todo o portal eacute personalizaacutevel

Paying attention to details and being able to organize information for larger enterprises is important

Bill Forsyth

A organizaccedilatildeo de toda a informaccedilatildeo a disponibilizar eacute a chave de todo este

processo e diferencia um portal agradaacutevel e intuitivo de um portal confuso no seu

amontoado de informaccedilatildeo e complexidade quanto maior eacute a informaccedilatildeo a

disponibilizar maior eacute evidente esta diferenccedila Uma informaccedilatildeo hierarquizada e

organizada em agrupamentos loacutegicos por recursos eacute um processo muito faacutecil de seguir

e perceber e associada a esta disponibilizaccedilatildeo de informaccedilatildeo apenas exibir acccedilotildees

que possam ser executadas sobre esse(s) recurso(s) eacute o objectivo da simplicidade e

desempenho de uma interface Por uacuteltimo uma paacutegina web de ajuda a toda a interface

(Anexo N) para consulta de qualquer duacutevida faz com que tudo seja uacutetil e praacutetico [33]

54 Camada de apresentaccedilatildeo

A realizaccedilatildeo da camada de apresentaccedilatildeo pode ser apresentada subdividindo-a em duas

partes sendo a primeira correspondente agrave realizaccedilatildeo do lado do cliente (client-side) e

a segunda agrave realizaccedilatildeo do lado do servidor (server-side)

541 Do lado do cliente

A visualizaccedilatildeo de uma paacutegina web num navegador como Google Chrome Firefox ou

Internet Explorer soacute eacute possiacutevel se estes ldquoentenderemrdquo a linguagem na qual estaacute

construiacuteda ldquoa paacuteginardquo e forem capazes de a processar sem necessidade de qualquer

espeacutecie de preacute-tratamento Surgiram muitas linguagens conhecidas como linguagens

de marcaccedilatildeo um sistema moderno para anotaccedilatildeo de um documento de uma forma que

ldquoo programardquo eacute sintaticamente distinguiacutevel do texto normal

Do lado do cliente a principal linguagem de marcaccedilatildeo eacute a HTML agrave qual se

adiciona a JavaScript na qual os programas acompanham um documento html

incluiacutedos em ficheiros com a extensatildeo js ou satildeo incorporados directamente no

39

coacutedigo html entre tags ltscriptgtltscriptgt o documento html eacute entatildeo carregado pelo

navegador do utilizador e com ele todo o coacutedigo JavaScript

A linguagem JavaScript eacute usada para incutir dinamismo no coacutedigo html

facilitando por exemplo a interacccedilatildeo com o utilizador no preenchimento de

formulaacuterios (aquando da criaccedilatildeo de um serviccedilo) ou promovendo o upload de um

modelo de template em formato XML ou executando acccedilotildees ou eventos consoante

determinado comportamento do utilizador etc As funccedilotildees JavaScript e das suas

bibliotecas como JQuery satildeo executadas aquando do carregamento da proacutepria paacutegina

html ou quando invocadas por eventos como sejam a inicializaccedilatildeo da framework

leitura inicial dos dadosrecursos relativos ao utilizador criaccedilatildeo de cookies ou acccedilotildees

do utilizador como o login ou o preenchimento de formulaacuterios

Tambeacutem eacute usado AJAX (Asynchronous JavaScript and XML) [36] um padratildeo

para o uso de comandos JavaScript para de uma forma siacutencrona ou assiacutencrona trocar

dadosinformaccedilatildeo com o servidor e actualizar conteuacutedos de paacuteginas web jaacute exibidas

em que natildeo eacute necessaacuterio carregar toda a paacutegina para a actualizar Um padratildeo ideal

para usar com o protocolo REST (Representational State Transfer) para troca de

informaccedilatildeo permite o uso de dados em texto HTML XML e JSON (JavaScript

Object Notation) como formato da informaccedilatildeo para enviar e receber dados usando

HTTP e URI exactamente como as interacccedilotildees HTTP foram concebidas GET

POST PUT e DELETE Com AJAX as operaccedilotildees CRUD (Create Read Update e

Delete) satildeo muito intuitivas e faacuteceis de usar

Finalmente CSS (Cascading Style Sheets) eacute a linguagem responsaacutevel pela

formataccedilatildeo dos dados em termos de visualizaccedilatildeo para o utilizador que eacute usada para

descrever a apresentaccedilatildeo das paacuteginas Web incluindo cores layout e fontes

542 Do lado do servidor

As linguagens caracterizadas como ldquodo lado do servidorrdquo satildeo necessaacuterias para

especificar os programas que tecircm de ser executados no servidor como ldquorespostardquo agraves

acccedilotildees desencadeadas do lado do browser quando o resultado tem de ser enviado

para o browser eacute-o na forma de ficheiro HTML

Linguagens de conteuacutedo e comportamento como JSP (JavaServer Pages) uma

mistura de HTML com scriptlet contecircm um elemento script (blocos de coacutedigo em

Java) o que as caracteriza como linguagens que correm no servidor Os scriptlet

como todo o coacutedigo Java eacute executado no servidor e o output direcionado para o resto

da paacutegina JSP e finalmente apresentado ao utilizador A facilidade de comunicaccedilatildeo

em variaacuteveis de sessatildeo torna esta linguagem muito apelativa ao uso dessas variaacuteveis

como eacute o cado da paacutegina loginjsp onde se desenrola grande parte da comunicaccedilatildeo

browserservidor atraveacutes da API MOE logoutjsp e vmrcjsp para ligaccedilatildeo agraves VMs e

comunicaccedilatildeo com a API VMware

40

543 Lista de primitivas na oacuteptica dos recursos

Segue-se a lista de primitivas apresentada numa oacuteptica de recursos que cada

uma manipula

actionsjs - Lista as ldquoactionsGridrdquo atribuiacutedas aos Serviccedilos Grupo de

Servidores ou Servidores e permite todas as acccedilotildees associadas nestas

listagens

cookiesjs - Leitura e criaccedilatildeo de cookies associados ao utilizador e todo o

webservice Cookies de login com dados como username e role e outros

dado associados agraves acccedilotildees do utilizador e webservice como layout de

visualizaccedilatildeo da paacutegina (globaltheme) menu lateral esquerdo (treetheme)

paineacuteis de visualizaccedilatildeo de informaccedilatildeo (northregion westregion

eastregion southregion) etc

disksjs - Leitura das informaccedilotildees associadas aos discos nas suas trecircs

versotildees ldquostereotype disksrdquo discos virtuais e fiacutesicos Todas as acccedilotildees

possiacuteveis em discos estatildeo igualmente configuradas neste ficheiro

geraljs - Leitura das informaccedilotildees gerais associadas ao webservice Dados

iniciais de informaccedilatildeo de todos os Templates do Cataacutelogo de Serviccedilos e

dados de Serviccedilos jaacute existentes nos diferentes formatos (JSON e XML)

configuraccedilotildees gerais do webservice como tabelas de listagens conversotildees

de datas (ldquodate2epochrdquordquoepoch2daterdquo) construccedilatildeo do menu lateral

esquerdo em aacutervore listeners para acccedilotildees do utilizador e mensagens de

erros e informaccedilatildeo do webservice

helpjs - Configuraccedilotildees de todo o layout das ajudas ao utilizador

interfacesjs - Leitura das informaccedilotildees associadas agraves interfaces redes e

endereccedilos IP Todas as acccedilotildees passiacuteveis de serem executadas nas

interfaces estatildeo igualmente configuradas neste ficheiro

remoteSessionsjs - Listagem de todas as Sessotildees Remotas do Serviccedilo e

acccedilotildees associadas a essas Sessotildees Remotas por Servidor e suas Interfaces

requestsjs - Listagem de todos os pedidos por Template ou Serviccedilo

Todas as acccedilotildees passiacuteveis de serem executadas relativas aos pedidos do

utilizador estatildeo igualmente configuradas neste ficheiro

serverGroupsjs - Leitura das informaccedilotildees associadas ao Grupo de

Servidores quer nos Templaste quer nos Serviccedilos Todas as acccedilotildees

relativas ao Grupo de Servidores estatildeo igualmente configuradas neste

ficheiro

serverPoolsjs - Listagem de todos as Pools de Servidores com a

informaccedilatildeo respectiva a cada Pool Todas as acccedilotildees passiacuteveis de serem

executadas nas Pools de Servidores estatildeo configuradas neste ficheiro

41

serversjs - Leitura das informaccedilotildees associadas a cada Servidor quer nos

Templaste quer nos Serviccedilos Todas as acccedilotildees relativas aos Servidores

estatildeo configuradas neste ficheiro

servicesjs - Leitura das informaccedilotildees associadas a cada Serviccedilo Todas as

acccedilotildees passiacuteveis de serem executadas nos Serviccedilos estatildeo configuradas

neste ficheiro

snapshotsjs - Listagem de todos os Snapshots com a informaccedilatildeo

respectiva ao par ServerSnapshot Todas as acccedilotildees passiacuteveis de serem

executadas nos Snapshots estatildeo configuradas neste ficheiro

softwarejs - Listagem de todo Software existente no sistema e informaccedilatildeo

relativa a cada Software em particular

templatesjs - Listagem de todos os recursos do Template e informaccedilatildeo

relativa a cada recurso base Toda a disponibilizaccedilatildeo de informaccedilatildeo e as

acccedilotildees associadas aos Templates estatildeo configuradas neste ficheiro

55 Camada ServiccedilosLoacutegica

Como referido (ver 51) a comunicaccedilatildeo entre a camada de apresentaccedilatildeo e a

loacutegicaserviccedilos assenta num protocolo REST e usa XML e JSON como formato para

enviar e receber informaccedilatildeo usando HTTP e URI (operaccedilotildees CRUD - Create Read

Update e Delete) [29]

Figura 31 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull

Por seu lado o REST assenta em quatro princiacutepios fundamentais 1) Recurso

cada recurso tem uma identificaccedilatildeo uacutenica e global associada ao URI

httpexemplocomencomenda20121088563 2) Acesso usando URIs acede-se a

um recurso por um ID uacutenico e global independente da sua localizaccedilatildeo 3) Formatos

um recurso pode ser representado em diferentes formatos por exemplo HTML XML

ou JSON sendo a escolha ditada pela finalidade especiacutefica de utilizaccedilatildeo do recurso

4) Comunicaccedilatildeo stateless - o cliente pode receber toda a informaccedilatildeo necessaacuteria num

primeiro contacto com o servidor executar o processamento e finalmente ligar-se

uma segunda vez ao servidor para reportar os resultados

As APIs usadas e directamente relacionadas com serviccedilos REST foram as

seguintes 1) JAX-RS (JSR 311 - Java Specification Requests) Atualmente parte

42

integrante do Java EE eacute uma API Java para serviccedilos Web RESTfull sobre HTTP

JAVAX-RS como especificaccedilatildeo desta API [30] fornece anotaccedilotildees que simplificam as

configuraccedilotildees 2) Jersey eacute uma implementaccedilatildeo open-source de referecircncia do

JAVAX-RS [31] 3) RestEasy eacute uma outra implementaccedilatildeo do JAVAX-RS com

opccedilotildees de suporte para outros protocolos aleacutem do HTML e que permite conexotildees

assiacutencronas e tem suporte de cache [32]

551 Camada de Serviccedilos

Como sabemos o HP CloudSystem Matrix gere recursos de computaccedilatildeo

armazenamento rede e software de uma forma unificada para oferecer um ambiente

virtualizado e altamente automatizado Contudo natildeo eacute um produto fechado

disponibilizando natildeo soacute um CLI mas tambeacutem uma API com uma WSDL (Web

Service Description Language) que inclui todas as operaccedilotildees possiacuteveis (https ltcms-

ip-addressgt 51443hpiocontrollersoapv5 wsdl)

A camada de serviccedilos eacute um cliente do CSM que funciona segundo o padratildeo

autenticaccedilatildeoperfil-pedido(s)-fecho na fase de autenticaccedilatildeo o utilizador (registado na

infra-estrutura MOE) faz o seu login a partir desse momento estaacute criada uma sessatildeo

que por HTTPS permite o acesso a todos os recursos disponiacuteveis para a combinaccedilatildeo

utilizadorperfil (role)

552 Camada Loacutegica

A camada loacutegica segue o mesmo princiacutepio estaacute centrada nos recursos em termos de

tecnologias usa o protocolo REST para a comunicaccedilatildeo clienteservidor e a

linguagem Java para o desenvolvimento

A realizaccedilatildeo foi idealizada numa prespectiva hieraacuterquica o que facilita a

compreensatildeo de toda a estrutura O menu lateral esquerdo eacute exemplo disso mesmo a

estrutura em aacutervore espelha esta ideia simples mas eficaz os recursos comeccedilam por

ser apresentados como listas sobre as quais podemos realizar acccedilotildeesfunccedilotildees ldquode

grupordquo pois satildeo apenas aquelas que satildeo comuns a todos os membros da lista mas agrave

medida que nos vamos aproximando das folhas da estrutura em aacutervore as

acccedilotildeesfunccedilotildees ficam mais especiacuteficas relativamente aos recursos-alvo

Por exemplo quando se realiza a acccedilatildeo ldquoPower ONrdquo a um grupo de

servidores todos os servidores do grupo satildeo ligados quando se efectua essa mesma

acccedilatildeo sobre um servidor apenas o servidor seleccionado eacute ligado

A disponibilizaccedilatildeo de informaccedilatildeo relativa a grandes ldquoconjuntos de dadosrdquo

como eacute o caso de listagens de pedidos de acccedilotildees de sessotildees remotas de snapshots

de stereotype disks de software e de subnets foi realizada com datagrids (tabelas)

para melhor visualizaccedilatildeo

43

As acccedilotildeesfunccedilotildees disponibilizadas estatildeo distribuiacutedas pelas tabs respectivas e

executam serviccedilos no niacutevel em que se encontram disponibilizadas A tiacutetulo de

exemplo as acccedilotildees que se encontram disponiacuteveis para execuccedilatildeo no grupo de

servidores apenas podem ser encontradas no tab ldquoGrouprdquo e reflectem-se sobre todos

os membros do grupo Uma acccedilatildeo especiacutefica de servidor encontra-se somente

disponiacutevel na tab ldquoServerrdquo e afecta apenas e soacute esse servidor

Segue-se uma descriccedilatildeo natildeo exaustiva da camada loacutegica nuacutecleo desta

framework desde a sua inicializaccedilatildeo ateacute aos recursos e moacutedulos principais

5521 Init

Aquando da inicializaccedilatildeo da aplicaccedilatildeo e no seguimento do login do utilizador eacute

desencadeada uma sequencia de pedidos ao servidor por informaccedilotildees relativas aos

Templates do Cataacutelogo de Serviccedilos e de todos os Serviccedilos do utilizador Se as

permissotildees associadas ao utilizador for de simples utilizador do webservice visualiza

apenas as instacircncias que criou jaacute um utilizador com permissotildees de administraccedilatildeo

visualiza os seus serviccedilos e todos os serviccedilos dos restantes utilizadores

Tabela 1 - Funccedilotildees associadas agrave inicializaccedilatildeo do Webservice

Funccedilatildeo Descriccedilatildeo

getVersion Funccedilatildeo de teste Obteacutem a informaccedilatildeo da versatildeo da API

principal Funccedilatildeo usada aquando do login do utilizador Obteacutem os

detalhes do utilizador como USERNAME e ROLE

listAllDataDetailsJson Funccedilatildeo usada apoacutes login do utilizador e iniciaccedilatildeo da

aplicaccedilatildeo Obteacutem os detalhes dos Serviccedilos associados ao

Utilizador Lista a informaccedilatildeo de todos os Templates e

Serviccedilos do Utilizador no formato JSON Funccedilatildeo para uso

excluivo do webservice

downloadTabJsonView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa aos recursos do Utilizador em formato

JSON Eacute criado um ficheiro com extenccedilatildeo JSON

downloadTabXmlView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa aos recursos do Utilizador em formato

XML Eacute criado um ficheiro com extenccedilatildeo XML

44

listEnumsJson Funccedilatildeo usada apoacutes login do utilizador e iniciaccedilatildeo da

aplicaccedilatildeo Obteacutem os detalhes de todos os ENUMS possiacuteveis

no webservice Lista a informaccedilatildeo de todos os ENUMS no

formato JSON Funccedilatildeo para uso excluivo do webservice

listEnumsXml Menu lateral direito do webservice Opccedilatildeo de visualizaccedilatildeo da

informaccedilatildeo relativa agraves opccedilotildees ENUMS possiveis no

webservice

downloadTabEnumsView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa agraves opccedilotildees ENUMS possiveis no

webservice Eacute criado um ficheiro com extenccedilatildeo XML com a

informaccedilatildeo visualizada

listAllDataDetailsXml Menu lateral direito do webservice Opccedilatildeo de visualizaccedilatildeo da

informaccedilatildeo relativa ao Utilizador em formato XML

5522 Template

Como jaacute referido o desenhoconstruccedilatildeo dos Templates fica a cargo do Arquitecto do

MOE que desenha esses mesmos Templates mediante pedido especifico de um

determinado utilizador tendo em vista um grupo de utilizadores infra-estrutura

disponibilizada ideias preacute-definidas resposta a uma ou mais situaccedilotildees especiacuteficas

etc

Nos detalhes gerais do Template obtemos informaccedilotildees como o nome do

Template a data de criaccedilatildeo e modificaccedilatildeo versatildeo custo geral se eacute ou natildeo

customizaacutevel e o numero de ServerGroups associados assim como discos e serviccedilos

que jaacute foram criados tendo por base este template

Todos os detalhes do Template ficam disponiacuteveis ao utilizador 1) Grupo de

servidores com informaccedilotildees como nome quantidade miacutenima de servidores e que seraacute

a base do serviccedilo criado e quantidade maacutexima de servidores sinal que o serviccedilo

poderaacute crescer em termos de quantidade de servidores Tipo de cluster e o nuacutemero de

servidores loacutegicos existentes no grupo 2) Servidores onde o utilizador obteacutem

informaccedilotildees como nome hostname tipo de virtualizaccedilatildeo memoacuteria usada e

quantidade maacutexima de memoacuteria processadores usados e quantidade maacutexima de

processadores se eacute ou natildeo virtual e se estaacute ou natildeo em cloud 3) Custos em detalhes

ficam disponiacuteveis ao utilizador Informaccedilotildees sobre custo total custo de base por cada

servidor custo por processador e memoacuteria 3) Os discos tambeacutem apresentam

informaccedilatildeo como nome tipo de storage tamanho raid level se eacute ou natildeo bootable

shareable e custo do disco 4) Software preacute-instalado ou instalado posteriormente pelo

utilizador Informaccedilotildees como nome tipo OS e virtualizaccedilatildeo estatildeo disponiacuteveis 5)

Interfaces com informaccedilotildees como nome da interface se eacute ou natildeo primaacuteria

45

redundacircncia subnet publica shareable tipo de IP endereccedilo DHCP activo ou natildeo e

custo final

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa a Templates

Figura 32 - Execuccedilatildeo tab ldquoTemplaterdquo

Export All Templates

Acccedilatildeo disponiacutevel apenas ao administrador permite o download em

ficheiro XML dos detalhes de todos os Templates para que o administrador possa

consultar essa informaccedilatildeo em modo offline se assim o entender Detalhes que

ficam disponiacuteveis para visualizaccedilatildeo no clique do iacutecon Template no menu lateral

esquerdo

O ficheiro XML pode depois ser visualizado mesmo no browser ou

qualquer programa que suporte essa visualizaccedilatildeo como eacute o caso do Notepad++

Export Template

Acccedilatildeo disponiacutevel apenas ao administrador permite o download em

ficheiro XML dos detalhes do Template em visualizaccedilatildeo igualmente como a

acccedilatildeo ldquoExport All Templatesrdquo o administrador poderaacute consultar mais tarde em

modo offline se assim o entender Detalhes que ficam disponiacuteveis para

visualizaccedilatildeo no clique do icon do nome do Template respectivo no menu lateral

esquerdo

Import Template

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel

adicionar mais Templates ao Cataacutelogo de Serviccedilos ficando assim disponiacutevel ao

utilizador mais opccedilotildees com novas configuraccedilotildees A leitura eacute feita directamente de

um ficheiro XML natildeo eacute admissiacutevel outro tipo de formato

Delete Template

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel

remover um Templates do Cataacutelogo de Serviccedilos Como todos os Serviccedilos tem por

base um Template a remoccedilatildeo de um Template implica a remoccedilatildeo de todos os

46

Serviccedilos que tem como base esse Template Tal situaccedilatildeo eacute salvaguardada

obrigando o administrador a clicar em OK numa InfoWindow de aviso

XML View

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel a

visualizaccedilatildeo de todos os detalhes do Templates directamente numa InfoWindow

dentro do webservice A informaccedilatildeo em XML torna-se vantajosa ao administrador

para a visualizaccedilatildeo de detalhes mais pormenorizados e organizaccedilatildeo de toda a

infra-estrutura

Export All Services

Acccedilatildeo que agrave semelhanccedila do ldquoExport All Templatesrdquo permite o download

em ficheiro XML dos detalhes de todos os Serviccedilos associados ao Template em

visualizaccedilatildeo e a um determinado utilizador para que possa consultar em modo

offline se assim o entender Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no

clique do iacutecon Service no menu lateral esquerdo

O ficheiro XML pode depois ser visualizado no browser ou qualquer

programa que suporte essa visualizaccedilatildeo como eacute o caso do Notepad++

Create Service

Finalmente a acccedilatildeoobjectivo de todo o webservice a criaccedilatildeo e

disponibilizaccedilatildeo de Serviccedilos Como jaacute foi referido um Serviccedilo tem como base um

Template por isso na visualizaccedilatildeo dos detalhes do Template esta opccedilatildeo estaacute

disponiacutevel Aquando da criaccedilatildeo de um Serviccedilo este teraacute como base o Template

em visualizaccedilatildeo

Existem campos de preenchimento obrigatoacuterios como nome do serviccedilo

hostname tempo atribuiacutedo ao serviccedilo (1 mecircs por defeito) e email do utilizador

As opccedilotildees ldquoNotesrdquo e ldquoBilling coderdquo satildeo opcionais

All Requests

Todas os pedidos realizados no webservice por um determinado utilizador

ficam disponiacuteveis para visualizaccedilatildeo do seu estado e inclusive desencadear acccedilotildees

nesses mesmos pedidos como cancelamento (percentagem inferior a 100) mediante

decisatildeo do utilizador

A salientar que existem pedidos que carecem da aprovaccedilatildeo do administrador

por isso o pedido poderaacute ficar parado numa determinada percentagem () a espera

dessa aprovaccedilatildeo Se o pedido natildeo necessitar de aprovaccedilatildeo continuaraacute a sua execuccedilatildeo

ateacute estar completo (100) e automaticamente seraacute adicionado ao menu lateral

esquerdo do utilizador

Template Requests

Todas os pedidos associados a um determinado Template por um determinado

utilizador ficam igualmente disponiacuteveis para visualizaccedilatildeo do seu estado

47

Tabela 2 - Funccedilotildees associadas ao Template

Funccedilatildeo Descriccedilatildeo

listTemplates Funccedilatildeo que obtem uma listagem da informaccedilatildeo relativa

aos Templates do Cataacutelogo de Serviccedilos

importTemplate Funccedilatildeo que permite o Upload da informaccedilatildeo relativa a

um Template em formato XML Operaccedilatildeo executada

apenas pelo Administrador ou Arquitecto de toda a

infra-estrutura de orquestraccedilatildeo

exportTemplate Funccedilatildeo que obteacutem toda a informaccedilatildeo relativa a um

Template e permite o download dessa informaccedilatildeo em

formato XML Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura de

orquestraccedilatildeo

exportTemplateList Funccedilatildeo de complemento a toda a informaccedilatildeo dos

Templates do Cataacutelogo de Serviccedilo Uso exclusivo do

webservice

deleteTemplate Funccedilatildeo que permite a remoccedilatildeo de um Template do

Cataacutelogo de Serviccedilos Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura de

orquestraccedilatildeo

listServicesByTemplateName Funccedilatildeo que obteacutem todos os Serviccedilos associados a um

determinado Template Para visualizaccedilatildeo de informaccedilatildeo

e opccedilatildeo de download

5523 Serviccedilo

O Serviccedilo tem sempre como base as definiccedilotildees de um Template e nesse sentido tudo

que o utilizador poderaacute fazer nesse Serviccedilo satildeo acccedilotildees que estatildeo disponiacuteveis nesses

Template como limites miacutenimos e maacuteximos de servidores processadores memoacuteria

etc Outras opccedilotildees como discos e interfaces ficam disponiacuteveis ao utilizador que

poderaacute adicionar se assim o entender com os custos inerentes a este upgrade de

Serviccedilo

Um Serviccedilo eacute composto por dados base relativos a informaccedilotildees gerais desse

Serviccedilo listas de acccedilotildees associadas e uma lista de grupos de servidores sendo que

cada grupo poderaacute ser diferente entre si com recursos funcionalidades e softwares

completamente diacutespares

Assim em termos de informaccedilatildeo disponiacutevel associada ao serviccedilo o utilizador

poderaacute obter o nome do serviccedilo id (apenas acessiacutevel ao administrador) notas status

48

o Template base que lhe deu origem data de criaccedilatildeo e ultima data de modificaccedilatildeo o

custo geral do serviccedilo custo fixo o periacuteodo de uso do serviccedilo (por defeito 1 mecircs)

nome do utilizador que criou o serviccedilo organizaccedilatildeo e tamanho das listas associadas

nomeadamente acccedilotildees e grupo de servidores

Os Serviccedilos assim como os Templates ficam disponiacuteveis em listagem no menu

lateral esquerdo num formato em aacutervore intuitivo e raacutepido de selecionar Cada

Serviccedilo fica na cadeia hieraacuterquica do Template que lhe deu origem Associado a cada

Serviccedilo tambeacutem poderemos visualizar nesses mesmo menu todos os recursos

associados a esse Serviccedilo como listagem dos grupos de servidores em cada grupo os

seu servidores e em cada servidor os recursos como discos software e interfaces

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Serviccedilo

Figura 33 - Execuccedilatildeo tab ldquoServicerdquo

Export All Services

Acccedilatildeo que permite o download em ficheiro XML dos detalhes de todos os

Serviccedilos do utilizador permitindo a posterior consulta em modo offline Detalhes

que ficam disponiacuteveis para visualizaccedilatildeo no clique do iacutecons Service no menu

lateral esquerdo

Export Service

Permite o download em ficheiro XML dos detalhes do Serviccedilo em

visualizaccedilatildeo igualmente como a acccedilatildeo ldquoExport All Servicesrdquo o utilizador poderaacute

consultar mais tarde em modo offline os detalhes do serviccedilo Detalhes que ficam

49

disponiacuteveis para visualizaccedilatildeo no clique do icon do nome do Serviccedilo respectivo no

menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Serviccedilo

directamente numa InfoWindow dentro do webservice A informaccedilatildeo em XML

torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Create Service

Mesma acccedilatildeo existente nos Templates Directamente da visualizaccedilatildeo de

um Serviccedilo eacute possiacutevel criar um outro Serviccedilo tendo igualmente por base o

mesmo Template O Serviccedilo criado seraacute igual ao Serviccedilo base em visualizaccedilatildeo

Delete Service

Permite a remoccedilatildeo do Serviccedilo em visualizaccedilatildeo Apoacutes esta acccedilatildeo deixam

de ser cobrado qualquer custo associado ao Serviccedilo que foi removido

Power ON Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo sejam ligados e fiquem disponiacuteveis para utilizaccedilatildeo Esta

acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==OFFrdquo

Power OFF Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo sejam desligados deixando de estar disponiacuteveis para

utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==UPrdquo

Power Cycle Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo faccedilam um reboot e continuem disponiacuteveis para utilizaccedilatildeo

Esta acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==UPrdquo

Activate Service

Permite que todos os Servidores de todos os ServerGroups existentes no

Serviccedilo sejam activados No final desta operaccedilatildeo o Serviccedilo fica em modo

ldquoserviceStatus==UPrdquo e todos os servidores ficam automaticamente disponiacuteveis

para utilizaccedilatildeo

50

Deactivate Service

Permite que todos os Servidores de todos os ServerGroups existentes no

Serviccedilo sejam desactivados No final desta operaccedilatildeo o Serviccedilo fica em modo

ldquoserviceStatus==DEACTIVATEDrdquo

Service Actions

Os ldquotriggered actionsrdquo associadas a cada Template satildeo parte integrante do

Serviccedilo criado Tambeacutem esta informaccedilatildeo estaacute disponiacutevel em forma de listagem

Estas acccedilotildees automaticamente desencadeadas pelo webservice poderatildeo pertencer

ao Serviccedilo propriamente dito ou entatildeo existirem apenas num serverGroup ou ateacute

mesmo apenas num Server

List Remote Session

No final da criaccedilatildeo de um Serviccedilo o objectivo eacute a ligaccedilatildeo as VMs

associadas a esse mesmo Serviccedilo Nesse intuito directamente da tab Serviccedilo

atraveacutes desta acccedilatildeo ficam disponiacuteveis numa lista todas as VMs com os acessos

remotos permissiacuteveis

RDP (Remote Desktop Protocol)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet

VMRC (VMware Remote Console)

Todos os pedidos associados a um determinado Serviccedilo por um

determinado utilizador ficam igualmente disponiacuteveis para visualizaccedilatildeo do seu

estado Quando a listagem de pedidos tem grandes dimensotildees ou se a visualizaccedilatildeo

do pedido diz respeito a este Serviccedilo fazer apenas a listagem dos pedidos pelo

Serviccedilo em causa torna-se mais simples uacutetil e directa

Tabela 3 - Funccedilotildees associadas ao Serviccedilo

Funccedilatildeo Descriccedilatildeo

listServices Detalhes dos Serviccedilos associados a um determinado Utilizador

Para visualizaccedilatildeo de informaccedilatildeo e opccedilatildeo de download O

Administrador obtem todos os Serviccedilos existentes no

webservice

getService Informaccedilatildeo associada a um determinado Serviccedilo Para

visualizaccedilatildeo de informaccedilatildeo e opccedilatildeo de download

createService Criaccedilatildeo de um Serviccedilo

deleteService Remoccedilatildeo de um Serviccedilo associado a um Template

deactivateService Desactivaccedilatildeo de um Serviccedilo

51

activateService Activaccedilatildeo de um Serviccedilo

changeServiceLease Ediccedilatildeo do Lease period asociado a um Serviccedilo

powerOnService Ligar um Serviccedilo

powerOffService Desligar um Serviccedilo

powerCycleService Ligar um Serviccedilo apoacutes reboot

getRemoteSessionsList Listagem de todos os servidores e seus IPs associados para

posterior listagem das sessotildees remotas

5524 Grupo de Servidores

Cada Serviccedilo tem os seus recursos associados nomeadamente uma lista de Grupo de

Servidores onde o utilizador poderaacute obter informaccedilotildees como o nome do Serviccedilo

nome do Grupo de Servidores o Status nuacutemero miacutenimo e maacuteximo de Servidores

uma progressbar com indicaccedilatildeo do nuacutemero de servidores disponiacuteveis no momento se

tem uma sequencia Boot datas de criaccedilatildeo e ultima modificaccedilatildeo e finalmente uma

lista de Servidores

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Grupo de Servidores

Figura 34 - Execuccedilatildeo tab ldquoServerGroupsrdquo

52

Export Server Group

Permite o download em ficheiro XML dos detalhes do Grupo de

Servidores em visualizaccedilatildeo o utilizador poderaacute consultar esses detalhes mais

tarde em modo offline Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no clique

do icon do nome do Grupo de Servidores respectivo no menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Grupo de

Servidores directamente numa InfoWindow dentro do webservice A informaccedilatildeo

em XML torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Add Servers (UP)

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores aumentando o

nuacutemero de Servidores dentro desse Grupo de Servidores Esta opccedilatildeo soacute fica

visiacutevel e acessiacutevel ao utilizador se o limite maacuteximo do nuacutemero de Servidores for

superior ao actualmente existente em utilizaccedilatildeo Limite definido nas

configuraccedilotildees do Serviccedilo que vieram por arrasto das configuraccedilotildees do Template

aquando da criaccedilatildeo desse Serviccedilo Estas alteraccedilotildees implicam o aumento do custo

total do Serviccedilo

Remove Servers (DOWN)

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores diminuindo o

nuacutemero de Servidores dentro desse Grupo de Servidores eacute disponibilizada a lista

de Servidores existentes e o utilizador seleciona um ou mais para remoccedilatildeo Esta

opccedilatildeo soacute fica visiacutevel e acessiacutevel ao utilizador se o limite miacutenimo do nuacutemero de

Servidores for inferior ao actualmente existente em utilizaccedilatildeo Limite definido nas

configuraccedilotildees do Serviccedilo que vieram por arrasto das configuraccedilotildees do Template

aquando da criaccedilatildeo desse Serviccedilo Estas alteraccedilotildees implicam a diminuiccedilatildeo do

custo total do Serviccedilo

Edit ServerGroup

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores relativamente a

memoacuteria e processadores A ediccedilatildeo vai ser efectuada em todos os Servidores do

Grupo de Servidores Como nos limites maacuteximos e miacutenimos de Servidores

tambeacutem os limites de memoacuteria e processadores vieram por arrasto das

configuraccedilotildees do Template aquando da criaccedilatildeo do Serviccedilo Estas alteraccedilotildees

implicam a diminuiccedilatildeo ou aumento do custo total do Serviccedilo

Power ON ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo sejam ligados e fiquem disponiacuteveis para utilizaccedilatildeo Esta acccedilatildeo eacute

dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==OFFrdquo

53

Power OFF ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo sejam desligados deixando de estar disponiacuteveis para utilizaccedilatildeo Esta

acccedilatildeo eacute dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==UPrdquo

Power Cycle ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo faccedilam um reboot e continuem disponiacuteveis para utilizaccedilatildeo Esta acccedilatildeo

eacute dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==UPrdquo

Activate ServerGroup

Permite que todos os Servidores do ServerGroups em visualizaccedilatildeo sejam

activados No final desta operaccedilatildeo o Grupo de Servidores fica em modo

ldquoserverGroupStatus==UPrdquo e todos os servidores ficam automaticamente

disponiacuteveis para utilizaccedilatildeo

Deactivate ServerGroup

Permite que todos os Servidores do ServerGroups em visualizaccedilatildeo sejam

desactivados No final desta operaccedilatildeo o Grupo de Servidores fica em modo

ldquoserverGroupStatus==DEACTIVATEDrdquo

Actions ServerGroup

Como no Serviccedilo os ldquotriggered actionsrdquo associadas a cada Template satildeo

parte integrante do Serviccedilo criado inclusive no Grupo de Servidores Se o Grupo

de Servidores em visualizaccedilatildeo tiver ldquotriggered actionsrdquo esta acccedilotildees estaraacute visiacutevel

ao utilizador para listagem

List Snapshots

Acccedilatildeo que permite listar todos os Snapshots existentes no Grupo de

Servidores

Nessa listagem eacute possiacutevel executar acccedilotildees como ldquoRevert Snapshotrdquo que

reverte um determinado Snapshot para o servidor especiacutefico ou ldquoDelete Snapshotrdquo

que permite a remoccedilatildeo de um Snapshot do sistema

Create Snapshot

Acccedilatildeo que permite a criaccedilatildeo de Snapshots no Grupo de Servidores

Existem campos obrigatoacuterios como o nome do Snapshot e a selecccedilatildeo de

um ou mais servidores de uma lista de servidores pertencentes ao Grupo de

Servidores Opccedilotildees como ldquoInclude Memory Staterdquo ou ldquoQuiesce filesystemrdquo estatildeo

tambeacutem disponiacuteveis para selecccedilatildeo aquando da criaccedilatildeo do Snapshot

54

Add Stereotype Disks

Acccedilatildeo que permite adicionar discos a um Grupo de Servidores O disco

adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores Satildeo

considerados ldquoStereotype Disksrdquo todos os discos existentes no grupo excepto

discos de boot

Qualquer acccedilatildeo de adiccedilatildeo de discos a um Grupo de Servidores soacute eacute

possiacutevel se natildeo existirem Snapshots relativos a qualquer Servidor desse Grupo de

Servidores

Esta acccedilatildeo lista todos os ldquoStereotype Disksrdquo jaacute existentes O utilizador

seleciona o que deseja clonar (disco base) e eacute adicionado um novo disco ao Grupo

de Servidores Esta acccedilatildeo carece da aprovaccedilatildeo do administrador

Add Virtual Disks

Acccedilatildeo que permite adicionar discos virtuais a um Grupo de Servidores O

disco adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores

Existem campos de preenchimento obrigatoacuterio como o nome do disco e

tamanho O webservice fornece um nome uacutenico e 10Gb de tamanho por defeito o

utilizador pode alterar estes campos Esta acccedilatildeo carece da aprovaccedilatildeo do

administrador Aleacutem de aprovar ou desaprovar este pedido pode inclusive definir

um novo custo

Add Physical Disks

Acccedilatildeo que permite adicionar discos fiacutesicos a um Grupo de Servidores O

disco adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores

Igualmente como a adiccedilatildeo de discos virtuais existem campos de

preenchimento obrigatoacuterio como o nome do disco tamanho e nesta opccedilatildeo o tipo

de RAID Acccedilatildeo que carece igualmente da aprovaccedilatildeo do administrador

Tabela 4 - Funccedilotildees associadas ao Grupo de Servidores

Funccedilatildeo Descriccedilatildeo

getLogicalServerGroup Obteacutem os detalhes associados a um Grupo de

Servidores Loacutegico em XML para visualizaccedilatildeo na

infowindow e opccedilatildeo de download

addServersToLogicalServerGroup Adiciona um Servidor a um Grupo de Servidores

Opccedilatildeo permissvel apenas se o nuacutemero de servidores

activos (ldquoactiveServerCountrdquo) for menor que o

nuacutemero maacuteximo de servidores

(ldquomaxServerCountrdquo)

55

removeServersFromLogicalServerGr

oup

Remove um Servidor de um Grupo de Servidores

Loacutegicos Opccedilatildeo permissvel apenas se o nuacutemero

miacutenimo de servidores (variaacutevel ldquominServerCountrdquo)

for menor que o nuacutemero de servidores activos

(variaacutevel ldquoactiveServerCountrdquo)

editLogicalServersServersGroup Permite a ediccedilatildeo de todos os Servidores

pertencentes a um Grupo de Servidores Loacutegicos

powerOnLogicalServersGroup Liga todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

powerOffLogicalServersGroup Desliga todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

powerCycleLogicalServersGroup Faz o reboot de todos os Servidores que pertencem

a um mesmo Grupo de Servidores Loacutegicos

activateLogicalServerGroup Activa todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

deactivateLogicalServerGroup Desactiva todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

5525 Servidores

Um Grupo de Servidores eacute constituiacutedo por uma lista de Servidores Cada grupo como

jaacute foi referido pode ser completamente diacutespar dos demais dentro de um mesmo

Serviccedilo O mesmo jaacute natildeo acontece nos Servidores dentro de um mesmo Grupo de

Servidores As configuraccedilotildees dos Servidores dentro de um mesmo Grupo de

Servidores tem todos as mesmas caracteriacutesticas podendo variar apenas no numero de

discos memoacuteria e processamento

O utilizador poderaacute obter informaccedilotildees como nome do Servidor status se eacute ou

natildeo virtual se estaacute em cloud se eacute o servidor base memoacuteria e processamento para

futuros upgrades com progressbars para facilmente visualizar o estado actual custo

datas de criaccedilatildeo e modificaccedilatildeo localizaccedilatildeo do ficheiro da VM (acessiacutevel apenas ao

administrador) e as listas associadas de discos software e interfaces

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa aos Servidores

56

Figura 35 - Execuccedilatildeo tab ldquoServerrdquo

Export Server

Permite o download em ficheiro XML dos detalhes do Servidor em

visualizaccedilatildeo o utilizador poderaacute consultar mais tarde em modo offline os detalhes

desse Servidor Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no clique do

icon do nome do Servidor respectivo no menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Servidor

directamente numa InfoWindow dentro do webservice A informaccedilatildeo em XML

torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Remove Server

A diferenccedila desta acccedilatildeo no Servidor para a mesma acccedilatildeo no Grupo de

Servidores eacute o facto da remoccedilatildeo ser do Servidor em visualizaccedilatildeo Para remover

mais do que um Servidor essa operaccedilatildeo teraacute obrigatoriamente que ser no Grupo

de Servidores

57

Edit Server

Como na remoccedilatildeo de servidores a diferenccedila desta acccedilatildeo para a mesma

acccedilatildeo no Grupo de Servidores eacute que a ediccedilatildeo de Servidores na tab Servidor apenas

afectaraacute o Servidor em visualizaccedilatildeo e natildeo os restantes Servidores do Grupo de

Servidores

Power ON Server

Acccedilatildeo que permite a ligaccedilatildeo do Servidor em visualizaccedilatildeo e que este fique

disponiacutevel para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica

activa quando ldquoserverStatus==OFFrdquo

Power OFF Server

Acccedilatildeo que permite que um Servidor seja desligado e que este fique

indisponiacutevel para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica

activa quando ldquoserverStatus==UPrdquo

Power Cycle Server

Acccedilatildeo que permite fazer o reboot a um Servidor e este continue disponiacutevel

para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica activa quando

ldquoserverStatus==UPrdquo

Activate Server

Permite a activaccedilatildeo do Servidor em visualizaccedilatildeo No final desta operaccedilatildeo

o Servidor fica em modo ldquoserverStatus==UPrdquo e ficam automaticamente disponiacutevel

para utilizaccedilatildeo

Deactivate Server

Permite a desactivaccedilatildeo do Servidor em visualizaccedilatildeo No final desta

operaccedilatildeo o Servidor fica em modo ldquoserverStatus==DEACTIVATEDrdquo

Actions Server

Como no Grupo de Servidores os ldquotriggered actionsrdquo associadas a cada

Servidor satildeo parte integrante do Serviccedilo criado Se o Servidor em visualizaccedilatildeo

tiver ldquotriggered actionsrdquo esta acccedilatildeo estaraacute visiacutevel ao utilizador para listagem

List Snapshots

Acccedilatildeo que permite listar todos os Snapshots associados ao Servidor em

visualizaccedilatildeo Todas as acccedilotildees nos Snapshots satildeo relativas ao Servidor em questatildeo

Create Snapshot

Acccedilatildeo que permite a criaccedilatildeo de Snapshots no Servidor

Existem campos obrigatoacuterios como o nome do Snapshot O nome do

Servidor eacute preenchido automaticamente com o nome do Servidor que estaacute a ser

visualizado Opccedilotildees como ldquoInclude Memory Staterdquo ou ldquoQuiesce filesystemrdquo

estatildeo tambeacutem disponiacuteveis para selecccedilatildeo aquando da criaccedilatildeo do Snapshot

58

List ServerPool

Acccedilatildeo que permite a listagem de todas as pools de Servidores existentes no

webservice Na imagem seguinte podemos visualizar quatro pools de Servidores

que foram criadas pelo administrador

ldquoCreate Server Poolrdquo eacute uma acccedilatildeo atribuiacutedas apenas ao administrador com

campos obrigatoacuterios como nome da Pool

ldquoDelete Server Poolrdquo eacute outra acccedilatildeo atribuiacutedas apenas ao administrador

permitindo a remoccedilatildeo de uma Pool de Servidores do sistema

Esta operaccedilatildeo natildeo remove Servidores nem Serviccedilos mas remover todas as

associaccedilotildees jaacute existentes entre Servidores e utilizadores Como acccedilatildeo importante

o webservice evidencia isso mesmo com uma InfoWindow de aviso ao

administrador

VM Host

Acccedilatildeo que permite a listagem de todos os hosts fiacutesicos associados a uma

determinada Pool de Servidores

Nesta operaccedilatildeo obtecircm-se detalhes relativos ao host como eacute o caso do

nome id endereccedilo IP domiacutenio DNS tipo de virtualizaccedilatildeo modelo cluster

memoacuteria total e consumida dados dos processadores e ainda dados relativos ao

armazenamento (DataStores) e rede (VirtualSwitch)

Remote Session

Acccedilatildeo que permite a listagem de todas as Sessotildees Remotas atribuiacutedas ao

Servidor em visualizaccedilatildeo

Esta acccedilatildeo eacute dependente do status do Servidor fica activa quando

ldquoserverStatus==UPrdquo

A imagem seguinte evidencia as duas ligaccedilotildees existentes para a VM do

Servidor especiacutefico Duas ligaccedilotildees relativas agraves duas Interfaces disponiacuteveis no

Servidor uma na rede ldquoHP Networkrdquo com o endereccedilamento IP 16231875 e

outra na rede local da infra-estrutura rede ldquoCloudSystemrdquo com o endereccedilamento

IP 19216810203

As opccedilotildees de Sessotildees Remotas possiacuteveis satildeo as que jaacute foram descritas na

listagem das ldquoRemote Sessionsrdquo do Serviccedilo Neste caso direccionadas apenas ao

um uacutenico Servidor

Tabela 5 - Funccedilotildees associadas aos Servidores

Funccedilatildeo Descriccedilatildeo

getLogicalServer Obteacutem os detalhes de um Servidor Logico em formato XML

para visualizaccedilatildeo na infowindow e opccedilatildeo de download

59

findLogicalServer Obteacutem os Detalhes de um Servidor Loacutegico especiacutefico

addServer Addiciona um Servidor a um Grupo de Servidores Loacutegicos

se o nuacutemero de servidores activos (variaacutevel

ldquoactiveServerCountrdquo) for menor que o nuacutemero maacuteximo de

servidores (variaacutevel ldquomaxServerCountrdquo)

removeServer Remove um Servidor de um Grupo de Servidores Loacutegicos se

o nuacutemero miacutenimo de servidores (variaacutevel

ldquominServerCountrdquo) for menor que o nuacutemero de servidores

activos (variaacutevel ldquoactiveServerCountrdquo)

editLogicalServer Permite a ediccedilatildeo de memoacuteria e processamento de um

determinado Servidor Loacutegico

powerOnLogicalServer Liga um Servidor Loacutegico especiacutefico

powerOffLogicalServer Desliga um Servidor Loacutegico especiacutefico

powerCycleLogicalServer Reboot de um Servidor Loacutegico especiacutefico

activateLogicalServer Activaccedilatildeo de um Servidor Loacutegico especiacutefico

deactivateLogicalServer Desactivaccedilatildeo de um Servidor Loacutegico especiacutefico

getRdpFile Obteacutem o ficheiro RDP para download e posterior acesso

remoto

getLogicalServersAndIPs Obteacutem uma lista de todos os IPs das Interfaces de um

determinado Servidor Loacutegico

getVmHost Obteacutem os detalhes do Host associado a um Servidor Loacutegico

5526 Disco

Cada servidor tem necessariamente um ou mais discos associados estes podem ser

rotulados de ldquoStereotyperdquo ldquoVirtualrdquo ou ldquoPhysicalrdquo Um disco ldquoStereotyperdquo

corresponde a um disco-base ie um disco que existe no template (do servidor)

excepto disco de boot os restantes como o proacuteprio nome indica satildeo discos virtuais

ou fiacutesicos

Nesta tab o utilizador pode obter informaccedilatildeo do nome do disco tamanho tipo

de RAID tipo de Storage se eacute ou natildeo Bootable Shareable tipo de Raw Mapping

(VIRTUAL PHYSICAL NONE e OTHER) custo associado ficheiro do disco

(virtual - acessiacutevel apenas ao administrador) e data de criaccedilatildeo e modificaccedilatildeo

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa aos discos

60

Figura 36 - Execuccedilatildeo tab ldquoDisksrdquo

Add Stereotype Disks

Acccedilatildeo jaacute enunciada no Grupo de Servidores Como estamos a visualizar

um disco e as suas configuraccedilotildees esta acccedilatildeo estaraacute apenas disponiacutevel se o disco

em visualizaccedilatildeo natildeo for bootable Como jaacute referido apenas os discos que natildeo

sejam bootable satildeo considerados ldquoStereotype Disksrdquo e poderatildeo ser criados novos

discos com base no disco em questatildeo

Como no Grupo de Servidores tambeacutem nos discos esta opccedilatildeo soacute seraacute

possiacutevel se natildeo existirem Snapshots relativos a qualquer Servidor desse Grupo de

Servidores Esta acccedilatildeo carece da aprovaccedilatildeo do administrador

Tabela 6 - Funccedilotildees associadas aos Discos

Funccedilatildeo Descriccedilatildeo

addDiskToLogicalServerGroup Adiciona um Stereotype Disk a um Grupo de

Servidores Loacutegicos Operaccedilatildeo que carece da aprovaccedilatildeo

do Administrador

addNewDiskToLogicalServerGro

up

Adiciona um disco virtual ou fiacutesico a um Grupo de

Servidores Loacutegicos Operaccedilatildeo que carece da aprovaccedilatildeo

do Administrador O tamanho do disco eacute

automaticamente determinado pelo tipo do Grupo de

Servidor Loacutegico

61

5527 Software

Recursos como Software tambeacutem fazem parte dos recursos do Servidor Mediante a

instalaccedilatildeo preacutevia do ldquoServer Automationrdquo no MOE aquando da criaccedilatildeo do Template

poderatildeo ser associados nos recursos de cada Servidor uma lista de software como lista

de packages com SO software antiviacuterus base de dados etc previamente instalados

em VM e posteriormente transformados em Tamplate

Cada Servidor pertencente a um mesmo Grupo de Servidores teraacute uma mesma

lista de software base associado

Informaccedilotildees relativas ao software tambeacutem estatildeo disponiacutevel ao utilizador como

nome tipo tipo de OS tipo de Deployment Service ficheiro de configuraccedilatildeo do OS

(acessiacutevel apenas ao administrador) tipo de virtualizaccedilatildeo localizaccedilatildeo do ficheiro

relativo ao software (acessiacutevel apenas ao administrador) e data de criaccedilatildeo e

modificaccedilatildeo

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Software

Figura 37 - Execuccedilatildeo tab ldquoSoftwarerdquo

List Softwares

Acccedilatildeo disponiacutevel apenas ao administrador permite a listagem de todo o

Software disponiacutevel no sistema O software pertencente ao Grupo de

ServidoresServidor estaacute disponiacutevel directamente no menu lateral esquerdo

Mediante a instalaccedilatildeo preacutevia do ldquoServer Automationrdquo no MOE aquando

da criaccedilatildeo do Template poderaacute ser associado nos recursos de cada Grupo de

ServidoresServidor uma lista de software como lista de packages com SO

software antiviacuterus base de dados etc

Software Detals

Acccedilatildeo disponiacutevel apenas ao administrador permite a visualizaccedilatildeo de todos

os detalhes do Software

62

Tabela 7 - Funccedilotildees associadas ao Software

Funccedilatildeo Descriccedilatildeo

listSoftware Obteacutem a lista de todo o Software disponiacutevel no

webservice Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura

de orquestraccedilatildeo

getSoftware Obteacutem os detalhes de um Software especiacutefico

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

5528 Interface

As Interfaces (NICs) fazem igualmente parte das configuraccedilotildees base de cada Servidor

podendo no entanto existir redundacircncia ou natildeo

Informaccedilotildees das Interfaces disponiacutevel na tab respectiva como nome se eacute a

interface primaacuteria data de criaccedilatildeo modificaccedilatildeo e informaccedilotildees sobre a rede como

nome se eacute puacuteblica partilhada tipo e endereccedilo IP com informaccedilotildees como o endereccedilo

IP propriamente dito tipo de atribuiccedilatildeo custo e uma lista de NatEntrys (Network

Address Translation)

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa as Interfaces

Figura 38 - Execuccedilatildeo tab ldquoInterfacerdquo

List Subnets

Acccedilatildeo disponiacutevel apenas ao administrador permite a listagem de todas as

redes existentes no sistema com informaccedilotildees como nome da rede endereccedilo

mascara source tipo de IP se eacute uma rede puacuteblica e os endereccedilamentos DHCP e

estaacutecticos nuacutemero de IPs usados e em uso etc

63

Add IPAddress

Acccedilatildeo que permite atribuir automaticamente (pelo sistema) um IP

flutuante a uma Interface Uma Interface associada a um Servidor dentro de um

determinado Serviccedilo

Com esta acccedilatildeo o utilizador solicita um IP flutuante de uma pool de IPs

que o administrador tenha criado Nesse sentido o utilizador apenas solicita um IP

flutuante para uma Interface (NIC0) de um determinado Servidor pertencente a

um Serviccedilo Como o utilizador estaacute a visualizar a Interface os campos satildeo

automaticamente preenchidos Operaccedilatildeo apenas permitida em servidores loacutegicos

em cloud

Remove IPAddress

Acccedilatildeo que permite remover um IP flutuante Neste caso o utilizador tem

que fornecer o endereccedilo IP flutuante previamente adquirido

Move IPAddress

Acccedilatildeo que permite mover um determinado IP flutuante entre instacircncias

Na eventualidade do utilizador jaacute for detentor de um IP flutuante pode move-lo

atribuindo-o agrave Interface em visualizaccedilatildeo Operaccedilatildeo apenas permitida em

servidores loacutegicos em cloud

VM Access

Acccedilotildees de acesso remoto directamente na Interface

Esta acccedilotildees satildeo dependente do status do Servidor ficam activas quando

ldquoserverStatus==UPrdquo

Como estamos directamente a visualizar uma Interface o acesso remoto eacute

feito atraveacutes dessa Interface desse IP conhecido

As opccedilotildees de Sessotildees Remotas possiacuteveis satildeo as que jaacute foram descritas na

listagem das ldquoRemote Sessionsrdquo do Serviccedilo

RDP (Remote Desktop Protocol)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet

VMRC (VMware Remote Console)

Tabela 8 - Funccedilotildees associadas agraves Interfaces

Funccedilatildeo Descriccedilatildeo

getVMID Obteacutem o ID de uma VM atarveacutes do endereccedilo IP da

Interface

64

executeRDP Execuccedilatildeo directa do comando RDP mstscexe

vIPAddress console

addFloatingIPAddress Adiciona automaticamente um endereccedilo IP flutuante a

uma determinada Interface Operaccedilotildees de IP flutuante natildeo

satildeo suportadas para Servidores Loacutegicos que natildeo estejam

em cloud

removeFloatingIPAddress Remove um determinado endereccedilo IP flutuante de um

Servidor Loacutegico Operaccedilotildees de IP flutuante natildeo satildeo

suportadas para Servidores Loacutegicos que natildeo estejam em

cloud

moveFloatingIPAddress Associa um determinado endereccedilo IP flutuante jaacute

existente a uma Interface Operaccedilotildees de IP flutuante natildeo

satildeo suportadas para Servidores Loacutegicos que natildeo estejam

em cloud

5529 Redes

As Redes como o Software teratildeo que estar previamente configuradas e

implementadas para posterior uso em Templates e Serviccedilos A listagem de redes

existentes na infra-estrutura estaacute apenas disponiacutevel ao Administrador ou Arquitecto de

toda a infra-estrutura de orquestraccedilatildeo e permite a visalizaccedilatildeo de todas as redes

existentes com informaccedilotildees como o nome da rede gama de endereccedilos IP mascara

tipo de IPV e se eacute um endereccedilamento estaacutectico ou obtido por DHCP

Figura 39 - Listagem das redes existentes

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa agraves Redes

65

Tabela 9 - Funccedilotildees associadas agraves Redes

Funccedilatildeo Descriccedilatildeo

listSubnets Obteacutem uma lista com todas as redes existentes no

webservice

listSubnet Obteacutem os detalhes de uma rede especiacutefica

55210 Snapshots

Os Snapshots satildeo um recurso valioso quando nos deparamos com problemas de

inconsistecircncias desastres seguranccedila etc que natildeo sendo backup permite a

recuperaccedilatildeo do servidor em segundos contrariamente a restauraccedilatildeo a partir de um

backup tradicional recuperaccedilatildeo ou reinstalaccedilatildeo de um SO ou qualquer outra teacutecnica

com o seu exagerado tempo de consolidaccedilatildeo

A listagem de todos os Snapshots estaacute disponiacutevel aquando da visualizaccedilatildeo da

informaccedilatildeo relativa ao Grupo de Servidores onde satildeo visualizados todos os Snapshots

pertencentes ao grupo e no Servidor onde apenas satildeo visualizados os Snapshots desse

Servidor em visualizaccedilatildeo

Uma lista relacionada de Snapshots sucessivos com informaccedilotildees como nomes

do Serviccedilo do Grupo de Servidores e do Servidor assim como nome do Snapshot a

sua relaccedilatildeo parental e se estaacute ou natildeo activo ficam disponiacuteveis ao utilizador

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa aos Snapshots

Figura 40 - Execuccedilatildeo tab ldquoSnapshotrdquo

Tabela 10 - Funccedilotildees associadas aos Snapshots

Funccedilatildeo Descriccedilatildeo

listServerSnapshots Obteacutem a listagem de todos os Snapshots de um Servidor

Loacutegico especiacutefico

listServerGroupSnapshots Obteacutem a listagem de todos os Snapshots de um Grupo de

Servidor Loacutegico

66

snapshotCreate Cria um Snapshot de um Servidor especiacutefico

revertServerSnapshot Reverte um determinado Snapshot para o Servidor

correspondente

deleteServerSnapshot Remove um Snapshot do sistema

55211 Request

A visualizaccedilatildeo do estado actual das acccedilotildees do utilizador eacute considerado um dos pontos

chave desta framework O simples update da ldquoprogressbarrdquo carece de uma perfeita

sincronizaccedilatildeo entre o Webservice e o MOE

O utilizador poderaacute visualizar sempre uma listagem de todos os seus pedidos ou

pormenoriza-los por relaccedilotildees 1) UtilizadorServiccedilos 2) TemplateServiccedilos 3)

Serviccedilo

A listagem de todos os pedidos estaacute disponiacutevel aquando da visualizaccedilatildeo da

informaccedilatildeo relativa a qualquer recurso sendo que a opccedilatildeo 1) eacute geral e sempre

disponiacutevel e as opccedilotildees 2) e 3) satildeo especiacuteficas a recursos em visualizaccedilatildeo Ficam assim

disponiacuteveis informaccedilotildees como tipo data submissatildeo do pedido comeccedilo e fim status

progresso () nome do Serviccedilo ao qual o pedido estaacute associado etc

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo da listagem

dos pedidos do utilizador

Figura 41 - Execuccedilatildeo tab ldquoRequestsrdquo

Opccedilotildees como ldquoAproval Staterdquo e ldquoContinuerdquo de pedidos que carecem da

aprovaccedilatildeo do Administrador ficam apenas acessiacuteveis aos utilizadores com permissotildees

de administraccedilatildeo e a opccedilatildeo de cancelamento acessiacutevel aos utilizadores que solicitaram

esses pedidos

67

Tabela 11 - Funccedilotildees associadas aos Requests

Funccedilatildeo Descriccedilatildeo

listRequests Listagem de todos os pedidos do utilizador

listRequestsTemplateDetails Listagem de todos os pedidos do par utilizadorTemplate

listRequestsServiceDetails Listagem de todos os pedidos do par utilizadorServiccedilo

getRequestInfo Obteacutem detalhes de toda a informaccedilatildeo associada a um

determinado pedido

getPercentComplete Obteacutem a percentagem de um pedido

getRequest Obteacutem os detalhes particulares de um pedido

setRequestApprovalState Aprovaccedilatildeo de um pedido feito por um utilizador e que

esteja no estado PAUSED_FOR_APPROVAL

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

continueRequest Permite a continuaccedilatildeo de um pedido feito por um

utilizador e que esteja no estado IN_PROGRESS

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

cancelRequest Cancelamento de um pedido

55212 Pools de Servidores

Uma pool de servidores eacute um grupo de um ou mais hosts de virtualizaccedilatildeo com a uma

mesma arquitetura com acesso agraves mesmas redes virtuais e fiacutesicas e recursos de

armazenamento As Pools de servidores permitem balanceamento de carga recursos

de alta disponibilidade e partilha de alguns recursos para todos os membros dessa

pool

Informaccedilotildees das Pools disponiacutevel na tab respectiva como nome ID da

organizaccedilatildeo Ids dos Hosts e o grupo de utilizadores associados a cada Pool de

Servidores

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa a uma determinada Pool de Servidores

68

Figura 42 - Execuccedilatildeo tab ldquoServerPoolsrdquo

Tabela 12 - Funccedilotildees associadas agraves Pools de Servidores

Funccedilatildeo Descriccedilatildeo

listServerPools Obteacutem uma listagem de todas as Pools de Servidores para

a criaccedilatildeo de um Serviccedilo

listServerPoolsTab Obteacutem todas as Pools de Servidores existentes no

webservice Informaccedilatildeo disponibilizada na tab

serverPools

listVmHostIds Obteacutem uma lista com todos os Hosts associados a uma

Pool de Servidores

getServerPool Obteacutem os detalhes de uma Pool de Servidores

createServerPool Permite a criaccedilatildeo de uma nova Pool de Servidores

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

deleteServerPool Remove uma Pool de Servidores do systema Operaccedilatildeo

executada apenas pelo Administrador ou Arquitecto de

toda a infra-estrutura de orquestraccedilatildeo

56 Camada de Dados

Numa orientaccedilatildeo a objectos os objectos considerados ldquopersistentesrdquo satildeo todos os

objectos que continuam a existir apoacutes o teacutermino de execuccedilatildeo do programa por norma

guardados numa base de dados relacional ou mesmo em ficheiros em disco Jaacute os

objectos considerados ldquonatildeo persistentesrdquo deixam de existir quando o programa

termina satildeo objectos armazenados em tempo de execuccedilatildeo e satildeo usados apenas

durante esse periacuteodo

561 Dados natildeo persistentes

Os dados natildeo persistentes nesta framework destinam-se exclusivamente ao

utilizador permissotildees de acesso e seguranccedila Internamente o servidor guarda em

tempo de execuccedilatildeo dados relativos ao utilizador como eacute o caso do username

69

(userPrincipal) password (IOClientPasswordHandler) privileacutegios de acesso

(rolePrincipal) grupo de utilizadores (userGroups) e credenciaccedilotildees necessaacuteria

(TrustAllX509TrustManager) para comunicaccedilatildeo com a API do MOE A comunicaccedilatildeo

eacute estabelecida (IOSoapServicePort_Client) e quando existir a solicitaccedilatildeo de

determinados conteuacutedos estes satildeo disponibilizados ou natildeo mediante o ldquotipordquo (role)

de utilizador e suas permissotildees

Neste contexto a autenticaccedilatildeo eacute todo um processo de determinar se uma

entidade eacute quem quem diz ser e a autorizaccedilatildeo o processo de conceder permissotildees de

acesso a recursos Logicamente a autenticaccedilatildeo precede a autorizaccedilatildeo

O moacutedulo login implementa isso mesmo todos os passos de autenticaccedilatildeo

credenciaccedilatildeo e permissotildees uma teacutecnica conhecida como Realm JAAS (Java

Authentication and Authorization Service) como conjunto de interfaces de

programaccedilatildeo de aplicaccedilotildees (APIs) com opccedilotildees de autenticaccedilotildees em modo Basic e

Form usando para isso os denominados realms File e JDBC (Java Database

Connectivity) em runtime

Figura 43 - Realm JAAS (Java Authentication and Authorization Service)

562 Dados persistentes

5621 Cookies HTTP

Os dados persistentes destinam-se especialmente ao utilizador e foram idealizados

nesse sentido tornar a relaccedilatildeo utilizadorwebservice mais amigaacutevel e acima de tudo

praacutetica e independente do ldquostatusrdquo da infra-estrutura

Os tatildeo conhecidos COOKIEs HTTP satildeo dados armazenado no

navegadorbrowser do utilizador quando este acede a um determinado site Eacute um

mecanismo usado para guardar as informaccedilotildees relativas a um utilizador como

username formataccedilatildeo de conteuacutedos actividades escolhas cliques etc para quando

aceder novamente a esse site essas configuraccedilotildees anteriores estarem preacute-definidas e

configuradas

70

Os cookies de autenticaccedilotildees em sites web satildeo o meacutetodo mais comum e nesta

framework este meacutetodo foi usado para guardar dados relativos ao utilizador O

servidor natildeo precisa de suportar o peso das ligaccedilotildees siacutencronas para saber se um

determinado utilizador estaacute logado ou natildeo e neste sentido este meacutetodo torna-se eficaz

Os dados guardados e relativos ao utilizador que satildeo dados como username

role layout do webservice (gtheme) layout do menu lateral esquerdo (ttheme)

informaccedilatildeo relativa agraves regiotildees do webservice visualizada ou omitida (nregion

wregion eregion sregion) e um boolean (islogin) para uma mensagem de boas

vindas aquando do login Cada vez que um determinado utilizador alterar o layout do

webservice ou fechar o painel de visualizaccedilatildeo de determinada informaccedilatildeo satildeo passos

que satildeo guardados e durante toda a navegaccedilatildeo estas acccedilotildees permaneceratildeo guardadas

mesmo em futuros logins desse utilizador

5622 Modelo ER

Uma infra-estrutura como o MOE eacute desenhada e implementada para funcionamento

online e todas as alteraccedilotildees como criaccedilatildeo de um Serviccedilo ediccedilatildeo desse Serviccedilo

criaccedilatildeo de Discos etc satildeo alteraccedilotildees com acccedilatildeo imediata na infra-estrutura

Infelizmente nem tudo corre sempre como queremos e quando mais precisamos de

uma ou outra implementaccedilatildeo ou configuraccedilatildeo eacute quando o serviccedilo estaacute em baixo e por

uma ou outra razatildeo ficamos impossibilitados de o fazer

A implementaccedilatildeo de uma Base de Dados com toda a informaccedilatildeo relativa ao

utilizador colmata sempre estas falhas imprevistas Um implementaccedilatildeo independente

da infra-estrutura que permite ao utilizador ter acesso total aos seus dados crie edite

apague recursos em modo offline com sincronizaccedilatildeo com o MOE automaacuteticamente ou

por acccedilatildeo do utilizador

Um moacutedulo uacutetil e praacutetico que facilita o acesso e configuraccedilotildees dos serviccedilos do

utilizador Acccedilotildees que carecem de algum tempo de implementaccedilatildeo apoacutes a sua

solicitaccedilatildeo Acccedilotildees agarradas ao utilizador ao seu tempo e disposiccedilatildeo e natildeo agrave infra-

estrutura Acccedilotildees tidas pelo utilizador que sem preocupaccedilatildeo com tempos de execuccedilatildeo

e implementaccedilatildeo cria edita ou apaga o seu Serviccedilo e numa futura ligaccedilatildeo tudo eacute

sincronizado automaticamente

Segue-se o modelo ER implementado que descreve conceptualmente os dados

e seus relacionamentos em UML Em realce os principais recursos

71

Figura 44 - Modelo ER

Pela anaacutelise do modelo ER facilmente se percebe como os recursos se

relacionam entre siacute Segue-se uma explicaccedilatildeo do modelo e dos seus recursos

principais

Cada Template tem uma lista de Serviccedilos associados que aquando da sua

implementaccedilatildeo tiveram esse Template como base e apresenta um e um soacute custo total

que corresponde a soma de todos os recursos implementados e permitidos nesse

Template

72

Um Serviccedilo como jaacute referido tem sempre por base um e um soacute Template um

e um soacute ldquoLeasePeriodrdquo que corresponde ao tempo de utilizaccedilatildeo e um e um soacute custo

total associado Este custo eacute igualmente a soma de todos os recursos instanciados e

em uso nesse Serviccedilo No Serviccedilo eacute possiacutevel implementar uma nova Entidade

denominada ldquoServiceActionrdquo que corresponde a um e um soacute conjunto de acccedilotildees a

executar automaticamente antes durante ou depois da criaccedilatildeo desse Serviccedilo O

Serviccedilo encontra-se sempre em um e um soacute estado (ServiceEntityStatusEnum) de cada

vez que eacute acedido Logicamente como referido ao longo do presente relatoacuterio um

Serviccedilo eacute constituiacutedo por uma lista de Grupos de Servidores numa relaccedilatildeo de um para

muitos

Um Grupo de Servidores como o Serviccedilo apresenta tambeacutem um e um soacute

conjunto de acccedilotildees a executar automaticamente antes durante ou depois da criaccedilatildeo

desse Serviccedilo nesse Grupo de Servidores em especiacutefico Novas Entidades satildeo aqui

retratadas como seguranccedila (LogicalFirwallRuleGoup) e balanceamento de carga

(LogicalLoadBalancer) com a relaccedilatildeo de muitos para um Um Grupo de Servidores

estaacute sempre associado a um e um soacute Serviccedilo e eacute constituiacutedo por uma lista de

Servidores numa relaccedilatildeo de um para muitos Uma nova Entidade aparece no Grupo de

Servidores (LogicalIPAddress) com a atribuiccedilatildeo de um IP uacutenico ao Grupo

Um Servidor relaciona-se com o Grupo de Servidores numa relaccedilatildeo de muitos

para um contrariamente agrave relaccedilatildeo com as Entidades LogicalSoftware e LogicalDisk

cuja relaccedilatildeo eacute de muitos para muitos Jaacute a relaccedilatildeo com LogicalNetworkInterface eacute

apenas uma relaccedilatildeo de um para muitos um Servidor pode ter muitas Interfaces mas

uma Interfaces estaacute sempre associada a um e um soacute Servidor

Por uacuteltimo como componentes do Servidor Software Discos e Interfaces

Um mesmo Software pode estar instanciado em muitos Servidores assim como

muitos Servidores podem ter uma lista de Software Os Discos com a opccedilatildeo ldquosharedrdquo

podem pertencer a vaacuterios Servidores e vice-versa As Interfaces aleacutem de pertencer a

um e um soacute Servidor tem igualmente um e um soacute IP associado

57 Feedback

O presente trabalho como jaacute referido teve sempre como objectivo uacuteltimo a facilidade

de acccedilotildees do utilizador visualizaccedilatildeo e organizaccedilatildeo da disponibilizaccedilatildeo de toda a

informaccedilatildeo e nesse intuito ao longo de toda a elaboraccedilatildeo foram desencadeadas vaacuterias

apresentaccedilotildees ao Orientador da Tese professor Paulo Lopes e Orientador da

elaboraccedilatildeo na HP Rui Ramos Os Feedbacks serviram para redireccionamentos e

orientaccedilotildees de programaccedilatildeo

A disponibilizaccedilatildeo da informaccedilatildeo por Tabs transmite toda a informaccedilatildeo ao

utilizador de uma forma organizada facilmente acessiacutevel e raacutepida na percepccedilatildeo dessa

informaccedilatildeo e suas acccedilotildees possiacuteveis associadas

73

A alteraccedilatildeo aconselhada pelo Rui Ramos na ediccedilatildeo de Servidores do Grupo de

Servidores como a passagem de listagens para um simples ldquobuttonrdquo com um sinal ldquo+rdquo

para adicionar Servidores ou um sinal ldquo-rdquo para remover tornou-se mais praacutetica e

intuitiva

Disponibilizaccedilatildeo de mais meios de acesso agraves VMs como a opccedilatildeo VMRC

(VMware Remote Console) ou RDP (Remote Desktop Protocol) satildeo sempre opccedilotildees

vaacutelidas e uacuteteis para o utilizador final

A disponibilizaccedilatildeo da informaccedilatildeo e das acccedilotildees associadas agrave medida que o

utilizador vai descendo no menu em aacutervore (menu lateral esquerdo) torna-se uacutetil pela

visualizaccedilatildeo hieraacuterquica de todos os recursos e acima de tudo praacutetico ao que o

utilizador realmente pretende com um simples clique

Personalizaccedilatildeo do layout aconselhada pelo professor Paulo Lopes com os

diversos ldquoThemesrdquo opccedilotildees de visualizaccedilatildeoocultaccedilatildeo de informaccedilatildeo etc com as

valecircncias jaacute descritas no iniacutecio deste capiacutetulo

Opccedilatildeo ldquoDatagridrdquo onde a disponibilizaccedilatildeo da informaccedilatildeo passa de simples

Tabs para listagem em tabelas Visualizaccedilatildeo uacutetil quando a informaccedilatildeo eacute demasiada

evitando assim o scroll do utilizador na busca da restante informaccedilatildeo bastando para

isso selecionar a ldquoquantidaderdquo de informaccedilatildeo que pretende visualizar naquele

momento

Feedbacks sempre positivos e atempados para as alteraccedilotildees necessaacuterias a

efectuar no framework

58 Questotildees principais

No decorrer da elaboraccedilatildeo deste webservice foram seguidos caminhos e

implementaccedilotildees que de um modo geral se tornaram praacuteticas e uacuteteis existindo no

entanto algumas desaconselhadas pela especificidade deste tipo de implementaccedilotildees

Foi implementada a opccedilatildeo de visualizaccedilatildeo e acccedilotildees em modo offline Foi

criada uma base de dados que suportava todos os dados do MOE a sincronizar

aquando do refresh do webservice ou por acccedilatildeo do utilizador Tal opccedilatildeo foi

desaconselhada pelo facto do sistema estar sempre online disponiacutevel e ter custos

associados

A transformaccedilatildeo de datas ldquoepoch2daterdquo e ldquodate2epochrdquo foi uma das opccedilotildees

que mais trabalho deu pelo facto da API natildeo indicar que o referido nuacutemero eacute a data

em eacutepoca e as casas decimais que entram na conversatildeo Uma eacutepoca em Unix (o

conhecido Unix timestamp) eacute o nuacutemero em segundos que distam de 01 de Janeiro de

1970 ou seja eacute o tempo Unix 0 que corresponde agrave meia-noite de 01011970 Por

norma uma data em eacutepoca eacute um nuacutemero inteiro de 32 bits As duas funccedilotildees

ldquoepoch2daterdquo e ldquodate2epochrdquo tratam dessas converotildees para o utilizador poder

observar as datas numa formataccedilatildeo legiacutevel Esta formataccedilatildeo ainda carece de uma

74

transformaccedilatildeo do dia com o mecircs para ser apresentada no formato europeu

diamecircsano

Existe coacutedigo HTML que eacute criado dinamicamente esta opccedilatildeo tornou-se

bastante uacutetil pela disponibilizaccedilatildeo de grandes quantidades de informaccedilatildeo nos mesmos

ldquoinput boxesrdquo como eacute o caso de toda a informaccedilatildeo do Servidor dentro de um mesmo

Grupo de Servidores A informaccedilatildeo eacute diferente mas o layout eacute o mesmo por isso uma

organizaccedilatildeo adequada de IDs criados dinamicamente faz toda a diferenccedila

O tratamento de erros eacute algo que por vezes eacute decurado no dueto utilizador-

webservice Um webservice quer-se amigaacutevel e nesse intuito paacuteginas em branco

completamente diferentes do layout do webservice com erros como 404 ou 500 satildeo

desaconcelhadas Assim foi inicialmente implementado esse tratamento directamente

no ficheiro ldquoWebContentWEB-INF webxmlrdquo que redirecionava o utilizador para

paacuteginas HTML com layout igual ao webservice com o respectivo nuacutemero do erro e a

mensagem correspendente para informaccedilatildeo Uma mudanccedila e redireccionamento

draacutestico obrigando o utilizador a voltar atras e tentar de novo Optou-se pelo

tratamento directo em javascript com a visualizaccedilatildeo da mensagem de erro numa

ldquoInfoWindowrdquo sem redireccionamentos nem novas paacuteginas

A API do MOE apresenta igualmente alguns pontos que precisam de ser

melhorados em futuras versotildees Foram implementados alguns caminhos secundaacuterios

quando tudo poderia ser mais faacutecil se a API fornecesse essa implementaccedilatildeo

directamente

Informaccedilatildeo detalhada dos Templates

O objectivo deste webservice eacute criar serviccedilos e apoacutes criaccedilatildeo fazer uso dos

recursos A implementaccedilatildeo de um Serviccedilo tem por base um Template que lhe estaraacute

sempre associado Templates existentes num Cataacutelogo de Serviccedilos e com informaccedilatildeo

sobre os recursos que ficaram disponiacuteveis apoacutes a criaccedilatildeo do Serviccedilo

Naturalmente o utlizador percorre todos os Templates na busca da informaccedilatildeo

que melhor se adapte agraves suas necessidades Se esse informaccedilatildeo se apresenta escassa o

utilizador natildeo vai ficar a saber dos detalhes dos recursos que poderaacute usar aquando da

criaccedilatildeo do serviccedilo

A API natildeo fornece informaccedilatildeo detalhada dos Templates apenas uma

informaccedilatildeo muito resumida natildeo disponibilizando ao utilizador a informaccedilatildeo

associada por exemplo ao custo de cada servidor memoacuteria processador nuacutemero de

interfaces software etc

O presente webservice jaacute disponibiliza toda essa informaccedilatildeo ao utilizador

sendo que este pode navegar no Cataacutelogo de Serviccedilos do menu lateral esquedo e

visualizar toda a informaccedilatildeo detalhada dos Templates escolher o que melhor se

enquadre dentro das suas necessidades e finalmente criar o Serviccedilo

75

VMID

O utilizador pode assim usar os recursos depois do Serviccedilo criado Para a

criaccedilatildeo de uma sessatildeo remota o ID da VM era essencial Tal informaccedilatildeo natildeo existe

na API do MOE Uma listagem de VMIDs por utilizador associadas a cada serviccedilo

por servidor por interface qualquer uma destas quatro opccedilotildees era vaacutelida

ldquocustomTemplateAttributesrdquo na criaccedilatildeo do Serviccedilo

Na criaccedilatildeo de um Serviccedilo existem campos de preenchimento automaacutetico

campos obrigatoacuterios e outros opcionais Assim eacute necessaacuterio fornecer o

ldquoserviceNamerdquo (obrigatoacuterio) templateName (automatico) leasePeriod (automatico

mas o utilizador pode mudar) hostname (obrigatoacuterio) serverPoolNames (automaacutetico

mas o utilizador pode mudar) ownerEmailAddress (obrigatoacuterio) note (opcional)

billingCode (opcional) e customTemplateAttributes (opcional) A falta da API reside

neste uacuteltimo campo ldquocustomTemplateAttributesrdquo onde o utilizador poderia escolher

previamente o nuacutemero de servidores memoacuteria processadores tipo de endereccedilamento

das interfaces etc

computeServerIds do ServerPools

Uma informaccedilatildeo valiosa para a criaccedilatildeo de Pools de Servidores natildeo sabendo

os IDs dos computeServerIds natildeo eacute possiacutevel chegar aos Compute Resources para

poder adicionar recursos agraves Pools Outra falha detectada

59 Visatildeo global

Uma interface baseada no protocolo REST (Representational State Transfer) para

troca de informaccedilatildeo e direcionada aos recursos disponibilizados na Web apresenta-se

como vantagem quando estamos a lidar com isso mesmo recursos

Um conjunto de princiacutepios como HTTP e URIs que usando REST exploram

a arquitectura Web para o seu benefiacutecio usando a simplicidade natildeo soacute de transporte

como tambeacutem de protocolos

Espelhadas as vantagens do protocolo REST o presente webservice torna-se

assim mais simples em comunicaccedilatildeo e no acesso aos recursos sem o atraso da

sobrecarga apreciaacutevel na construccedilatildeo de mensagens do protocolo SOAP (Simple

Object Access Protocol) do MOE

Figura 45 - Mensagens SOAP na invocaccedilatildeo de processos do MOE

76

Figura 46 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull do WEBSERVICE

Comparativamente agrave implementaccedilatildeo em siacute no MOE existe um uacutenico menu de

acesso a todas as acccedilotildees possiacuteveis as operaccedilotildees de Grupo tornam-se assim cansativas

e desmotivadoras arrantando o utilizador para uma sequecircncia de cliques ateacute a acccedilatildeo

final Opccedilotildees como ediccedilatildeo do Grupo de Servidores natildeo existem tal eacute possiacutevel apenas

na ediccedilatildeo directa em cada Servidor No webservice basta um clique e eacute executada

uma acccedilatildeo de grupo como por exemplo desligar todo o Grupo de Servidores A ediccedilatildeo

do Grupo de Servidores eacute arrastada a todos os Servidores do Grupo apenas com uma

simples ediccedilatildeo de memoacuteria e processamento no Grupo

Como nas acccedilotildees de Grupo se o utilizador pretender uma acccedilatildeo numa

interface especiacutefica teraacute que percorrer a sequecircncia e cliques contrariamente ao

presente webservice com acccedilatildeo directa quer no menu lateral esquerdo quer na

visualizaccedilatildeo directa da informaccedilatildeo da interface

Toda a informaccedilatildeo a apresentar relativamente aos recursos eacute vasta requerendo

uma organizaccedilatildeo inteligente nessa apresentaccedilatildeo com opccedilotildees de

visualizaccedilatildeoocultaccedilatildeo dessa informaccedilatildeo se o utilizador assim o entender Acccedilotildees

possiacuteveis aquando da visualizaccedilatildeo de determinada informaccedilatildeo devem estar visiacuteveis e

acessiacuteveis No MOE isso eacute difiacutecil ou quase impossiacutevel porque a interface natildeo foi

desenhada desse modo a informaccedilatildeo apresentada torna-se desorganizada e

desmotivada a leitura

510 Resumo

Este capiacutetulo comeccedila por descreve a arquitectura usada e as suas camadas seguindo-

se um exemplo simplificado das relaccedilotildees da framework e plataformas (MOE e

VMware) Satildeo apresentados conceitos como rapidez organizaccedilatildeo e personalizaccedilatildeo

nm desenho guiado pela Interface do Utilizador Como nuacutecleo deste capiacutetulo eacute feita

toda a descriccedilatildeo da framework por camadas da Arquitectura apresentada

apresentaccedilatildeo loacutegicaserviccedilos e dados onde satildeo descritas todas as acccedilotildees passiveis de

serem executadas por recurso Por uacuteltimo os feedback tidos ao longo da

implementaccedilatildeo algumas questotildees consideradas importantes e finalmente uma visatildeo

global como foco

77

6 Consideraccedilotildees Finais

Esta tese resultou de uma proposta de tema de tese que a HP Portugal submeteu ao

Departamento de Informaacutetica da FCTUNL e que apoacutes algumas interacccedilotildees resultou no

tema intitulado Framework para a construccedilatildeo de ldquoportais de negoacuteciordquo para gestatildeo de

solicitaccedilotildees IaaS na HP Cloud

A primeira fase de Preparaccedilatildeo de Dissertaccedilatildeo ocorreu no 1ordm semestre do ano

lectivo de 20122013 e realizou-se essencialmente neste departamento pontuada por

esporaacutedicas reuniotildees na HP Portugal (Quinta da Fonte Paccedilo De Arcos) A segunda de

Elaboraccedilatildeo da Dissertaccedilatildeo decorreu imediatamente apoacutes a primeira e cumpriu-se

totalmente nas instalaccedilotildees da HP Portugal

Durante a primeira fase estudou-se o paradigma de computaccedilatildeo na cloud os seus

periacutemetros (modelos de implantaccedilatildeo) e modelos de serviccedilo Estudou-se tambeacutem a

virtualizaccedilatildeo tecnologia base da computaccedilatildeo na cloud desde a sua origem ao seu estado

actual Estudaram-se ainda as plataformas de virtualizaccedilatildeo de servidores com maior

presenccedila nos centros de dados o ESXi da VMware o XenServer da Citrix Systems e o

Hyper-V da Microsoft e ainda a tecnologia proprietaacuteria da HP designada HP Integrity

Virtual Machines Estudaram-se ainda as tecnologias de armazenamento abordando-se os

aspectos de integridade fiabilidade e desempenho oferecidos pelos Redundant Array of

Independent Disks as redes de armazenamento orientadas ao bloco Storage Area

Networks e aos ficheiros Network Attached Storage A virtualizaccedilatildeo do armazenamento

ndash tanto ao niacutevel da sua utilizaccedilatildeo para armazenar VMs como para constituir ldquodiscosrdquo de

VMs foi estudada em seguida Os aspectos da virtualizaccedilatildeo das redes foram tambeacutem

estudados

Abordados todos os conceitos e tecnologias base seguiu-se o estudo da HP Cloud

em particular a HP CloudSystem Matrix no seu ambiente Matrix Operating Environment

como infra-estrutura de trabalho da segunda parte da dissertaccedilatildeo um vasto conjunto de

componentes software e hardware que vatildeo desde os servidores ProLiant sistemas de

armazenamento EVA infra-estruturas de rede (switches e NICs) etc ateacute ao ambiente de

operaccedilatildeo Matrix com o vCenter Numa perspectiva mais conceptual estudamos os papeacuteis

dos ldquoutilizadores da cloudrdquo administrador arquitecto e consumidor de serviccedilos bem

como a funccedilatildeo do Cataacutelogo de Serviccedilos do Template e a possibilidade de definir

operaccedilotildees de orquestraccedilatildeo da infra-estrutura

Com a noccedilatildeo exacta do trabalho a implementar foram estudadas diversas

linguagens e paradigmas e suas vantagens e inconvenientes Finalmente foi apresentada

uma arquitectura da soluccedilatildeo e um cronograma para a segunda fase dos trabalhos O

esforccedilo dispendido na primeira fase foi por natildeo ter outra tarefa que natildeo fosse a realizaccedilatildeo

da preparaccedilatildeo de uma quase total dedicaccedilatildeo a esta

Durante a segunda parte desta dissertaccedilatildeo a full-time na HP foi desenvolvido um

protoacutetipo do framework totalmente funcional A realizaccedilatildeo conseguida cumpre na iacutentegra

78

a calendarizaccedilatildeo proposta na primeira fase conseguindo-se agrave custa de um razoaacutevel

esforccedilo adicional evitar atrasos e falhas

As linguagens usadas foram as jaacute descritas no capiacutetulo 5 e incluem na camada de

apresentaccedilatildeo do lado do cliente HTML CSS JavaScript JQUERY AJAX e do lado do

servidor JSP Na camada loacutegicaserviccedilos usou-se fundamentalmente Java e REST

O desenvolvimento do framework foi guiado por duas consideraccedilotildees uma do

lado do programador e com o pensamento em futuras actualizaccedilotildees e outra do lado do

utilizador com uma interface organizada intuitiva e de raacutepido acesso e acima de tudo que

possibilitasse a interacccedilatildeo com todos os recursos do Serviccedilo instanciado quer a niacutevel de

grupos quer a niacutevel dos recursos individuais Assim na oacuteptica do programador

organizou-se toda a programaccedilatildeo em torno do ldquorecursordquo como entidade fundamental em

todas as camadas em que ldquoelerdquo existe Deste modo actualizaccedilotildees ao framework podem

ser feitas olhando somente para o recurso a actualizar quer a alteraccedilatildeo seja ao niacutevel da

informaccedilatildeo ou das acccedilotildees que este suporta

Em cada uma das duas vertentes programador e utilizador foram implementadas

diversas ajudas para que estes melhor entendam toda a estrutura e implementaccedilatildeo o

referido apoio estaacute disponiacutevel no proacuteprio protoacutetipo e em manuais de ajuda em anexo a

este relatoacuterio

61 Conclusotildees

A primeira conclusatildeo que apresentamos sem falsas modeacutestias eacute a de que o portal eacute

sob o ponto de vista dos resultados conseguidos e face ao objectivo um sucesso Natildeo

soacute eacute operacionalmente funcional cumprindo o objectivo essencial mas tambeacutem o eacute na

usabilidade Destacamos sumariamente alguns aspectos desta uacuteltima

A visualizaccedilatildeo da informaccedilatildeo assim como as acccedilotildees possiacuteveis satildeo guiadas

pelos recursos o utilizador apenas selecciona o recurso e tem tudo disponiacutevel

informaccedilatildeo e acccedilotildees que pode executar tudo associado a esse e apenas esse

recurso

No menu lateral esquerdo do protoacutetipo o utilizador estaacute sempre a visualizar a

ldquoposiccedilatildeordquo de um recurso na hierarquia tornando-se assim muito faacutecil executar

acccedilotildees de grupo ou acccedilotildees individualizadas bastando para isso um simples

clique

Na versatildeo 5 da API do MOE detectamos algumas insuficiecircncias que devem

ser corrigidas em futuras versotildees Nomeadamente

Haacute atributos dos templates cuja consulta apenas eacute possiacutevel ao administrador

quando satildeo fundamentais para uma melhor experiecircncia do utilizador

referimo-nos por exemplo aos valores maacuteximos de um dado recurso (eg

nuacutemero de maacuteximo de CPUs custo de um dado disco) natildeo serem

disponibilizados aquando da criaccedilatildeo de um Serviccedilo Note-se que o protoacutetipo

79

ultrapassa esta limitaccedilatildeo executando o ldquoinitrdquo da sessatildeo como administrador e

carregando nessa altura todos esses atributos

Para aceder agrave consola de um servidor eacute necessaacuterio conhecer o ID da VM o

que natildeo eacute fornecido pela API MOE o protoacutetipo ultrapassou esta limitaccedilatildeo

usando a API disponibilizada pelo VMware vCenter

Em conclusatildeo oferecemos um protoacutetipo amigaacutevel intuitivo com uma curva

de aprendizagem muito curta organizado na vasta informaccedilatildeo a disponibilizar e

usando na sua realizaccedilatildeo tecnologias estado-da-arte no formato de informaccedilatildeo XML

e JSON Um protoacutetipo praacutetico no que ao acesso e utilizaccedilatildeo dos recursos diz respeito

objectivos uacuteltimos de todo este trabalho

Fica assim aberta uma porta para a equipa de desenvolvimento de software da

HP nas proacuteximas decisotildees sobre o caminho a seguir no desenvolvimento de novas

implementaccedilotildees e futuras versotildees da API O protoacutetipo foi submetido a testes de

usabilidade que podem ser considerados em futuras integraccedilotildees

62 Trabalho futuro

Um framework que se queira actualizado nunca pode ser considerado acabado novas

actualizaccedilotildees em resposta a solicitaccedilotildees do mercado ou a alteraccedilotildees na(s) API(s) nos

hipervisores ou decorrentes da necessidade de ldquohibridizaccedilatildeordquo com outras clouds

fazem desse framework um trabalho actualizado mas nunca terminado

No desenvolvimento deste framework tivemos acesso a uma infra-estrutura

que como eacute natural (pela complexidade do software necessaacuterio) apenas incluiacutea

alguma das opccedilotildees do vasto leque HP CSM em particular a) apenas dispunha da

pilha de virtualizaccedilatildeo VMware (ESXi e vCenter) e b) natildeo dispunha do moacutedulo

Storage Provisioning Manager (SPM)

Do exposto surgem imediatamente duas propostas para trabalho futuro a

primeira passa por dotar o portal de uma capacidade de ldquoidentificaccedilatildeo automaacuteticardquo

da(s) plataformas de virtualizaccedilatildeo que estatildeo acessiacuteveis ao utilizador disponibilizando

as ferramentas adequadas ndash por exemplo se o utilizador apenas tivesse acesso agrave infra-

estrutura Hyper-V teria apenas o iacutecone da consola Hyper-V (em vez da consola

VMware) a segunda seria ampliar as funcionalidades do framework para suportar a

interacccedilatildeo com a API do SPM cumprindo assim um dos objectivos que era permitir

ao consumidor IaaS escolher as tecnologias de armazenamento ndash SSD em vez de FC

FCoE em vez de iSCSI etc

Uma outra avenida para trabalho futuro seria a avaliaccedilatildeo e eventual realizaccedilatildeo

do framework sobre a API OpenStack

80

63 Resumo

Neste capiacutetulo foi descrito todo o trabalho efectuado nesta dissertaccedilatildeo bem como os

resultados obtidos e ainda os ldquoalertasrdquo relativos a aspectos que consideramos

merecedores de atenccedilatildeo por parte da HP Tal soacute foi possiacutevel pelo detalhe com que

toda a infra-estrutura e API foram estudadas e testadas Foram referidas as principais

contribuiccedilotildees e destacaram-se as melhorias relativamente ao portal actualmente

disponibilizado pela HP

Finalmente deixam-se algumas propostas para trabalhos futuros

81

Referecircncias bibliograacuteficas

[1] Understanding the HP CloudSystem Reference Architecture [Online]

Available httph20195www2hpcomV2GetPDFaspx4AA0-5550ENWpdf

[2] Amazon Elastic Compute Cloud (Amazon EC2) [Online] Available

httpawsamazoncomptec2

[3] GoGrid Cloud Hosting [Online] Available httpwwwgogridcom

[4] Eucalyptus [Online] Available httpwwweucalyptuscom

[5] Google AppEngine [Online] Available httpsdevelopersgooglecom

appengine

[6] Microsoft Azure [Online] Available httpwwwwindowsazurecompt-br

[7] Google Apps [Online] Available httpwwwgooglecomenterpriseapps

business

[8] Agensen O et al The Evolution of an x86 Virtual Machine Monitor ACM

Operating Systems Review Vol 44 Number 4 December 2010 pp 3-18

[9] VMware Virtualization Products for Virtual Servers Virtual Desktops and Data

Center [Online] Available httpwwwvmwarecomproducts

[10] Comparison of Platform Virtual Machines Wikipedia the Free Encyclopedia

Dezembro 12 2012 [Online] Available httpenwikipediaorgwindexphp

title=Comparison_of_platform_virtual_machinesampoldid=527691634

[11] Vsphere-51-configuration-maximums VMware Inc 2012

[12] Barham P et al Xen and the art of virtualization In Proceedings of the

nineteenth ACM symposium on Operating systems principles (SOSP03) 2003

pp 164-177

[13] Zhang X and Dong Y Optimizing Xen VMM Based on Intelreg Virtualization

Technology In Proceedings of the 2008 International Conference on Internet

Computing in Science and Engineering (ICICSE 08) IEEE Computer Society

pp 367-374

[14] CTX134582 - XenServer 610 Release Notes - Citrix Knowledge Center

[Online] Available httpsupportcitrixcomarticleCTX134582

[15] Haga Y et al Windows Server 2008 R2 Hyper-V Server Virtualization

Fujitsu Sci Tech J Vol 47 No 3 2011 pp 340-355

[16] Feature Comparison Windows Server 2008 R2 Hyper-V and Windows Server

2012 Hyper-V Windows Server Microsoft Corporation 2012

[17] Hyper-V Scalability in Windows Server 2012 [Online] Available

httptechnetmicrosoftcomen-uslibraryjj680093aspx

82

[18] Patterson D et al A Case for Redundant Arrays of Inexpensive Disks (RAID)

Proceedings of the 1989 ACM-SIGMOD International Conference on the

Management of Data ACM 1989 pp 109-116

[19] Whitehouse S The GFS2 Filesystem Proceedings of the Linux Symposium

June 27th-30th 2007 Ottawa Canada

[20] Schmuk F and Haskin R GPFS A Shared-Disk File System for Large

Computing Clusters Proceedings of the Conference on File and Storage

Technologies (FASTrsquo02) 28ndash30 January 2002 Monterey CA pp 231ndash244

[21] Vaghani S Virtual Machine File System ACM Operating Systems Review

Vol 44 Number 4 December 2010 pp 57-70

[22] Pawlowski B et al NFS version 3 design and implementation Proceedings of

the Summer USENIX Conference June 1994 pp 137-152

[23] Zhou S Virtual Networking ACM Operating Systems Review Vol 44

Number 4 December 2010 pp 80-85

[24] HP Sitescope 112 Data Sheet [Online] Available

httpwwwhpcomhpinfonewsroompress_kits2012HPDiscover2012HP_Sit

escope_112_Data_Sheetpdf

[25] Veritas Storage Foundationtrade and High Availability Solutions Application

Note Support for HP-UX Integrity Virtual Machines Symantec Corporation

2011

[26] Kennedy S et al StoRHm a protocol adapter for mapping SOAP based Web

Services to RESTful HTTP format Electronic Commerce Research September

2011 Volume 11 Issue 3 pp 245-269

[27] Silvia Schreier Modeling RESTful applications In Proceedings of the Second

International Workshop on RESTful Design (WS-REST 11) Cesare Pautasso

and Erik Wilde (Eds) ACM New York NY USA 2011 pp 15-21

[28] Axioms [Online] Available httpwwww3orgDesignIssuesAxiomshtml

[29] Sandoval Jose Restful Java Web Services Master core REST concepts and

create RESTful web services in Java Packt Publishing November 2009 pp 43-

179

[30] Burke Bill Restful Java with Jax-RS OrsquoReilly Media Inc November 2009 1st

ed

[31] Jersey 117 User Guide [Online] Available

httpsjerseyjavanetdocumentation117indexhtml

[32] Jerome Louvel Thierry Templier and Thierry Boileau Restlet in Action

Developing Restful Web Apis in Java Manning Publications Co 2012

Greenwich CT USA pp 1-165

83

[33] Johnson Sally Cloud providers can enable self-service IT with a cloud portal

[Online] Available httpsearchcloudprovidertechtargetcomfeatureCloud-

providers-can-enable-self-service-IT-with-a-cloud-

portalasrc=EM_ERU_22442845amputm_medium=EMamputm_source=ERUamputm

_campaign=20130709_ERU20Transmission20for200709201320(User

Universe20607658)_myka-reportstechtargetcomampsrc=5144272

[34] jQuery EasyUI framework [Online] Available httpwwwjeasyuicom

[35] jQuery UI Library [Online] Available httpjqueryuicomdemos

[36] jQuery API [Online] Available httpapijquerycom

84

Anexo A (Virtualizaccedilatildeo Vantagens e inconvenientes)

Virtualizaccedilatildeo Vantagens e inconvenientes

A virtualizaccedilatildeo tem vindo a crescer e a ganhar terreno principalmente nas meacutedias e

grandes empresas Tem vindo a demonstrar a sua mais-valia na gestatildeo das TIs uma

mudanccedila completa e um aliviar de trabalho para administradores e gestores

A1 Vantagens da tecnologia

Um mundo onde passa a ser possiacutevel executar software incompatiacutevel com o SO host

executar SOrsquos distintos num mesmo conjunto de hardware isoladamente sem

interferecircncias etc uma mudanccedila draacutestica na tradicional visatildeo de um SO para um

conjunto de hardware apenas

Seguranccedila Dentro de um servidor podemos ter vaacuterios VMs isoladas e

independentes do SO host Tal garante que qualquer interferecircncia no SO host

(errosataques acidentais ou intencionais) natildeo afecte as VMs nele instaladas

Isolamento Qualquer processo de uma VMs natildeo pode interferir nos

processos de outra VMs este isolamento intimamente ligado agrave seguranccedila

vem de encontro a um dos princiacutepios baacutesicos aquando da implementaccedilatildeo

desta tecnologia Esta vantagem garante-nos confidencialidade entre VMs

assim como integridade e contenccedilatildeo de erros entre VMs (seguranccedila)

Custos A quantidade de diferentes servidores existentes para diferentes SOrsquos

e aplicaccedilotildees eacute agora compactada num mesmo hardware onde existe a

possibilidade de termos vaacuterias VMs com diferentes SOrsquos com as mais

variadas aplicaccedilotildees Temos um tudo-em-um que vai reduzir os custos de uma

organizaccedilatildeo na altura do upgrade bastando para isso o upgrade de um uacutenico

servidor que suporta todos os serviccedilos da organizaccedilatildeo

Energia Propriedade intimamente ligada aos custos Com a compactaccedilatildeo do

hardware satildeo dispensando todos os demais equipamentos quer de

sustentaccedilatildeo de toda uma infra-estrutura quer os proacuteprios equipamentos de

apoio Eacute assim conseguida uma economia de energia bastante significativa

para a organizaccedilatildeo

Espaccedilo Fiacutesico A compactaccedilatildeo eacute inerente aacute diminuiccedilatildeo do espaccedilo ocupado

Um Data Center tem sempre o problema de ldquofalta de espaccedilordquo e por isso a

compactaccedilatildeo de hardware associada agrave virtualizaccedilatildeo vem resolver natildeo soacute este

problema de espaccedilo como tambeacutem a proacutepria refrigeraccedilatildeo e circulaccedilatildeo de ar

dentro do Data Center

85

Hardware Estaacute provado que cada servidor em meacutedia gasta cerca de 30 do

seu poder de processamento para executar a funccedilatildeo para a qual foi

implementado Assim sendo estamos na presenccedila de um subaproveitamento

deste poder computacional A ideia anterior aacute virtualizaccedilatildeo de adquirir um

novo servidor para uma nova aplicaccedilatildeo cai agora por terra com o objetivo de

aproveitar ao maacuteximo o poder computacional de cada servidor aproveitando

melhor todo esse hardware disponiacutevel

Implementaccedilatildeo de SOrsquos A associaccedilatildeo de um SO por cada maacutequina fica

agora tambeacutem em desuso uma vez que a virtualizaccedilatildeo possibilita-nos a

instalaccedilatildeo de vaacuterios SOrsquos em cada maacutequina melhor aleacutem de vaacuterios SOrsquos

estes tambeacutem podem ser diferentes entre si (Windows linuz etc) Esta

vantagem permite assim instalar SOrsquos cujo hardware original (host) nem

sequer os suportam como o caso do SO MAC (Macintosh Apple) em

hardware x86 ou SO Windows em notebooks (Apple)

Migraccedilatildeo A camada que suporta a virtualizaccedilatildeo permite-nos esta mais-valia

A migraccedilatildeo natildeo soacute do ambiente em si como do proacuteprio hardware bastando

para isso uma simples coacutepia entre discos virtuais

Testes de software e hardware A virtualizaccedilatildeo simula tanto um software

como um hardware logo testes em software firmware e hardware podem ser

realizados nestas VMs construiacutedas especificamente para esse fim Estes

primeiros testes podem ser efectuados sem a necessidade de um SO instalado

de raiz ou mesmo a presenccedila fiacutesica do hardware especiacutefico

Reduccedilatildeo de administradores e gestores Esta compactaccedilatildeo associada agrave

virtualizaccedilatildeo como jaacute referido reduz espaccedilo ocupado reduz hardware reduz

configuraccedilotildees e gestatildeo individual abrindo caminho agrave centralizaccedilatildeo Assim a

reduccedilatildeo da equipa responsaacutevel pela administraccedilatildeo e gestatildeo eacute evidente

A2 Desvantagens da tecnologia

Satildeo notoacuterias as vantagens da virtualizaccedilatildeo mas problemas como incompatibilidades entre

aplicaccedilotildees e perda de desempenho pelo simples adicionar de mais uma camada agrave

arquitectura teratildeo que ser consideradas aquando da escolha

Seguranccedila A seguranccedila neste caso prende-se agrave proacutepria camada adicionada

agrave arquitectura (VMM ou hypervisor) Se o proacuteprio SO host tiver algum

problema de raiz implementado ou adquirido tambeacutem o proacuteprio VMM

contemplaraacute este erro assim como todas as VMs instaladas nesse SO host

Gestatildeo O principal problema da implementaccedilatildeo desta tecnologia eacute a gestatildeo

da proacutepria virtualizaccedilatildeo os ambientes virtualizados precisam de ser

instanciados geridos configurados etc Eacute neste ponto que se prende a

preocupaccedilatildeo das organizaccedilotildees pelos seus investimentos nesta tecnologia

trata-se de uma opccedilatildeo que por norma eacute licenciada

86

Desempenho Mais uma camada de software (VMM ou hypervisor) implica

mais processamento Incerteza da quantidade de VMsprocessador sem que

seja afectado a QOS (Quality Of Service) e a garantia dessa emulaccedilatildeo em

termos da disponibilizaccedilatildeo maacutexima que o host pode dispensar como eacute o caso

do processamento e memoacuteria graacutefica

87

Anexo B (Virtualizaccedilatildeo Arquitectura)

Virtualizaccedilatildeo Arquitectura

A base de uma arquitectura de virtualizaccedilatildeo eacute o VMM ou hypervisor o Virtual Machine

Manager responsaacutevel pela criaccedilatildeo gestatildeo isolamento e preservaccedilatildeo do estado da VM

assim como toda a orquestraccedilatildeo do acesso aos recursos do sistema host

O VMM permite que seja possiacutevel a execuccedilatildeo de vaacuterios SOrsquos em VMs contudo

estaacute limitado a SOrsquos que possam ser executados nativamente no processador fiacutesico do

sistema Essa valecircncia torna-se hoje uma das maiores procuras de todos os sistemas de

virtualizaccedilatildeo

Em termos de implementaccedilotildees arquitecturais temos VMMrsquos Tipo-2 modelo

ldquohybridordquo e Tipo-1 O VMM ou hypervisor do Tipo-2 figura 47 eacute implementado dentro

do proacuteprio SO real (Linux ou Windows - hostsystem) e executando paralelamente eacute mais

um processo Neste caso trata-se de uma camada hypervisor proacutepria como um segundo e

distinto niacutevel de software Os sistemas operativos convidados correm num terceiro niacutevel

acima do hardware Nesta arquitectura o SO guest acede directamente o SO host (nativo)

por intermeacutedio de uma API cedida pelo hipervisor ao SO guest O SO guest acede assim

ao hardware atraveacutes de um device driver especiacutefico pelo hypervisor e pelo SO host sendo

por isso uma implementaccedilatildeo que apresenta menor desempenho e maior sobrecarga ao

sistema O Java VM VMware Workstation VMware Player Sun Microsystems

VirtualBox e KVM satildeo alguns exemplos que usam esta arquitectura

Figura 47 - VMM ou hypervisor do Tipo-2

No modelo rdquohiacutebridordquo figura 48 o VMM natildeo eacute executado uma camada acima do

SO host (ou abaixo) mas sim concorrentemente (peer) com o SO host e natildeo depende de

instruccedilotildees especiacuteficas no processador Microsoft Virtual Server 2005 R2 e Virtual PC satildeo

alguns exemplos que usam esta arquitectura

88

Figura 48 - VMM ou hypervisor do ldquohiacutebridordquo

No VMM ou hypervisor do Tipo-1 figura 49 eacute executado directamente no

hadware a camada mais baixa de todas as particcedilotildees da VM sem necessidade da

existecircncia de qualquer SO host O SO guest acede directamente ao hardware atraveacutes do

hipervisor tal eacute possiacutevel pelas modificaccedilotildees feitas no SO guest e no hipervisor Esta eacute a

implementaccedilatildeo que atinge niacuteveis mais elevados de eficiecircncia por isso permite uma maior

densidade de VMs eacute a implementaccedilatildeo claacutessica de arquitecturas VM VMware

ESXESXi Citrix XEN Server e Microsoft Hyper-V satildeo alguns exemplos que usam esta

arquitectura

Figura 49 - VMM ou hypervisor do Tipo-1

89

Anexo C (Virtualizaccedilatildeo Tipos de Implementaccedilatildeo)

Virtualizaccedilatildeo Tipos de Implementaccedilatildeo

C1 Emulaccedilatildeo de Hardware

Neste tipo de virtualizaccedilatildeo figura 50 pretende-se a virtualizaccedilatildeo completa do hardware

o seu comportamentoestados de execuccedilatildeo (ciclos de clock conjunto de instruccedilotildees

pipeline memoacuteria cache) por isso eacute a forma de virtualizaccedilatildeo mais complexa Todo o

hardware da VM eacute criado via software no sistema hospedeiro para emulaccedilatildeo do hardware

proposto criando assim grandes overheads7 com fracos desempenhos comparativamente

ao hadware real Este tipo de virtualizaccedilatildeo apresenta mais-valias como o facto de poder

ser usado um SO guest sem qualquer modificaccedilatildeo ou adaptaccedilatildeo os programadores podem

fazer testes de firmware e hardware em hardware que natildeo o real nem necessitam da

existecircncia deste e ainda a valecircncia de ser possiacutevel emular hardware que na maior parte

das vezes eacute bastante diferente do hardware real

Figura 50 - Emulaccedilatildeo de Hardware

C2 Virtualizaccedilatildeo completa

A virtualizaccedilatildeo completa figura 51 tambeacutem conhecida como ldquonativardquo eacute em todo igual a

emulaccedilatildeo de hardware excepto agrave natildeo representatividade dos estados de execuccedilatildeo do

hardware emulado por esse facto esta teacutecnica de virtualizaccedilatildeo apresenta resultados mais

satisfatoacuterios no seu desempenho mas ainda aqueacutem dos SOrsquos em execuccedilatildeo nativa Esta

teacutecnica permite assim a execuccedilatildeo de todos os SOrsquos originais sem alteraccedilatildeo fornecendo

uma reacuteplica de todo o hardware dessa maacutequina levando-os a ter a ilusatildeo de estar a

executar directamente no hardware

Os grandes obstaacuteculos desta teacutecnica foram desde logo as diferenccedilas arquitecturais

e os comportamentos particulares das instruccedilotildees muitas impossiacuteveis de serem emuladas

ou capturadas pois muitas dependem do niacutevel de privileacutegio Assim para lidar com a

7 Overhead Diferenccedila de performance (latecircncialentidatildeo) no SO guest

90

heterogeneidade de processadores e comportamento de instruccedilotildees usa-se uma abordagem

chamada de Traduccedilatildeo Binaacuteria Nesta abordagem a VMM analisa todas as instruccedilotildees da

VM quer instruccedilotildees natildeo privilegiadas que depois acedem ao hardware com drivers

geneacutericos quer instruccedilotildees privilegiadas e quando na presenccedila destas faz a emulaccedilatildeo e

reescreve dinamicamente o coacutedigo Este teste a todas as instruccedilotildees acarreta uma latecircncia

significativa no desempenho

Figura 51 - Virtualizaccedilatildeo Completa

C3 Para-Virtualizaccedilatildeo (PV)

A para-virtualizaccedilatildeo ou virtualizaccedilatildeo assistida por SO figura 52 eacute uma alternativa aacute

virtualizaccedilatildeo completa O SO guest eacute modificado (perdendo a portabilidade) para

melhorar a eficiecircncia usando todos os ldquolimitesrdquo do sistema A ideia eacute acelerar a execuccedilatildeo

das instruccedilotildees e para isso a VMM testa apenas instruccedilatildeo que podem alterar o estado do

sistema (instruccedilotildees sensiacuteveis) aumentando significativamente o desempenho Esta

substituiccedilatildeo de uma instruccedilatildeo sensiacutevel pelo tratador de interrupccedilatildeo de software eacute chamada

de hypercall satildeo instruccedilotildees executadas atraveacutes de traduccedilatildeo binaacuteria O SO guest eacute assim

modificado para chamar a VMM sempre que estamos na presenccedila dessas instruccedilotildees

sensiacuteveis

Esta alternativa de virtualizaccedilatildeo com a modificaccedilatildeo do kernel tambeacutem permite

que o SO guest aceda directamente aos recursos de hardware com os drivers da proacutepria

maacutequina virtual e deste modo natildeo usando os drivers geneacutericos (virtualizaccedilatildeo completa)

usam a capacidade total dos dispositivos Assim a para-virtualizaccedilatildeo apresenta um ganho

significativo em relaccedilatildeo agrave virtualizaccedilatildeo completa compensando as modificaccedilotildees

implementadas no SO guest

91

Figura 52 - Para-Virtualizaccedilatildeo

C5 Virtualizaccedilatildeo assistida por Hardware (HVM)

As teacutecnicas descritas apresentam alguns inconvenientes que enfraquecem o desempenho

como o teste a todas as instruccedilotildees e traduccedilatildeo das instruccedilotildees privilegiadas na Virtualizaccedilatildeo

Total e a alteraccedilatildeo do SO guest na Para-Virtualizaccedilatildeo agarrando o SO aacute arquitectura

limitando a compatibilidade e suporte

A Virtualizaccedilatildeo assistida por Hardware figura 53 eacute aplicada directamente nos

processadores e restante hardware satildeo usadas extensotildees de virtualizaccedilatildeo do processador e

hardware para virtualizaccedilatildeo dos guestrsquos fornecendo assim um recurso que permita ao

hypervisor executar ainda mais proacuteximo do hardware As instruccedilotildees sensiacuteveis satildeo agora

entregues sem a necessidade da traduccedilatildeo binaacuteria aumentando significativamente o

desempenho mas ainda um pouco mais lento que a PV A opccedilatildeo do uso de drivers como a

PV torna-se um avanccedilo notoacuterio neste tipo de implementaccedilatildeo Natildeo emular IO e

armazenamento e ainda oferecer uma plataforma de VMs com SOrsquos natildeo modificados eacute

uma junccedilatildeo das mais-valias dos dois mundos (PVHVM ou PV-on-HVM drivers) Torna-

se assim possiacutevel por exemplo obter um oacuteptimo desempenho no conjunto SO guest

Windows + XenServer

Figura 53 - Virtualizaccedilatildeo assistida por Hardware

C4 Recompilaccedilatildeo dinacircmica

Esta teacutecnica de virtualizaccedilatildeo recompilaccedilatildeo dinacircmica (dynamic recompilation -

DynaRecs) tambeacutem denominada como traduccedilatildeo dinacircmica (dynamic translation) eacute

bastante utilizada Traduz as instruccedilotildees de um determinado formato para outro formato

durante a proacutepria execuccedilatildeo do programa permitindo assim a criaccedilatildeo do ambiente nativo

92

do programa Essa traduccedilatildeo eacute relativa a instruccedilotildees do SO guest e das suas aplicaccedilotildees

mais proacuteximas do SO host Assim o VMM ou hipervisor analisa reorganiza e traduz as

sequecircncias de instruccedilotildees emitidas pelo SO guest em novas sequecircncias de instruccedilotildees

(coacutedigo de mais alto niacutevel) compiladas na linguagem nativa do sistema host para que esse

coacutedigo gerado seja mais eficiente

Essa eficiecircncia de coacutedigo prende-se com adaptaccedilatildeo de instruccedilotildees agrave interface ISA

do sistema real detectar e tratar instruccedilotildees sensiacuteveis e ainda analisar reorganizar e

optimizar sequecircncias de instruccedilotildees do SO guest com o fim uacuteltimo da eficiecircncia e

desempenho da sua execuccedilatildeo Nesta ultima anaacutelise eacute usual guardar em cache a traduccedilatildeo

dos blocos de instruccedilotildees frequentes melhorando assim ainda mais o desempenho Eacute

notoacuteria a vantagem desta teacutecnica como o acesso a coacutedigo em tempo de execuccedilatildeo natildeo

alcanccedilaacutevel a um compilador estaacutetico mas em contrapartida tambeacutem exige muito mais

processamento

93

Anexo D (Detalhes da plataforma e restriccedilotildees da VMware)

Detalhes da plataforma e restriccedilotildees da VMWARE

Tabela 13 - Dados gerais VMWARE

Criador VMM Tipo Finalidade Uso Host VMs

host

Servidor

dedicado

Gestatildeo

Central

Gestatildeo

Remota Guest OSrsquos Host OSrsquos Guest Licenccedila

VMware

Player Tipo 2

Descktop

Utilizadores finais

Criar

Testar

Seguranccedila

Intel e AMD

(32-64 bits)

1-2 Natildeo Natildeo Natildeo

Intel e AMD

(32-64 bits)

Windows Windows

Windows Server 2012 8 Server 2008 R2 7

Server 2008 Vista Server 2003 XP 2000 NT

40 ME 98 95 MS-DOS 622 e Windows

31x

Linux

Asianux Server CentOS Debian Fedora

Mandrake Mandriva Novell openSUSE

Oracle Enterprise Red Hat Enterprise Red

Hat Sun Java Desktop System SUSE

Enterprise SUSE Turbolinux Ubuntu

UNIX e outros OSrsquos

Mac OS X Server eComStation FreeBSD

IBM OS2 Warp Netware Solaris SCO

Livre

Server GSX Tipo 2

Consolidar

Testar

Desenvolver

Windows Linux Proprietaacuterio

(desc)

Workstation Tipo 2 Criar

Testar

Desenvolver

lt 10 Natildeo Natildeo Natildeo Windows Linux

Proprietaacuterio

Fusion Tipo 2 Mac OS X

Proprietaacuterio

vSphere

ESXi Tipo 1

Datacenter

Infra-estrutura Cloud

Consolidar

Disponibilidade

Cloud

Criar

Testar

Desenvolver

512 Sim Natildeo Sim Sem OS Livre

Proprietaacuterio

ESX Tipo 1 512 Sim Sim Sim Sem OS Proprietaacuterio

(desc)

Tabela 14 - Detalhes VMWARE

VMM

(Configuraccedilotildees maacuteximas) Cluster Hosts VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

VMware Player 50 - - - 4 8 Sem lim 8GB (32bits)

64GB (64bits) NA (2TB) - -

VMware Server 20 - - 64 16 2 Sem lim 8GB NA 4 IDE + 60 SCSI (950GB) - descontinuado

VMware Workstation 90 - - - igual 8 Sem lim 8GB (32bits)

64GB (64bits) NA 4 IDE + 60 SCSI (2TB)

10 NICs SO Windows

255 NICs SO Linux Snapshots

VMware

vSphere 51

VM - - - - 64 - 1TB - 4 IDE + 60 SCSI (2TB) 10 NICs 128MB graacutefica

ESX ESXi 32 - 512host

4000cluster

32 fisicos

160 logicos 32 2TB 1TB

2048 vdisc

(64TB) 4 IDE + 60 SCSI (2TB)

32portas Ethernet a 1Gb

4 NICs fiacutesicos a 10Gb

Portas Infiniband etc

-

vCloud Director - 2000 30000 - - - - 10000 DC - 10000 -

vCenter Server - 1000 15000 - - - - 500 - 10 vCenter Servers ligados -

94

Anexo E (Detalhes da plataforma e restriccedilotildees da Citrix)

Detalhes da plataforma e restriccedilotildees da Citrix

Tabela 15 - Dados gerais Citrix

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Xensource Xen Tipo 1

Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

x86

x86-64

IA-64

x86

x86-64

IA-64

NetBSD Linux Solaris

FreeBSD NetBSD Linux Solaris Windows XP Windows Server 2003 Plan 9 Versatildeo 61

Ubuntu CentOS

Red Hat Enterprise Linux

Oracle Enterprise Linux

Windows 8 (32-bit64-bit)

Windows Server 2012

GPL ndash livre

Advanced Edition - Proprietaacuterio

Enterprise Edition - Proprietaacuterio

Platinum Edition - Proprietaacuterio

Tabela 16 - Dados detalhados Citrix

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Redehost Outros

Host VM Host VM Host VM

XenServer 61 16 150host

1600cluster

160 loacutegicos

900 virtuais 32 1 TB 128 GB 512 virtuais

16 virtuais

NFS e LVM (2TB)

7 NICrsquos virtuaisVM

16 NICrsquos fiacutesicos

512 NICrsquos virtuais

800 VLANrsquos

4 GPUshost

95

Anexo F (Detalhes da plataforma e restriccedilotildees da HP)

Detalhes da plataforma e restriccedilotildees da HP

Tabela 17 - Dados gerais HP

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Hewlett-Packard Integrity Virtual Machines Tipo 1

Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

IA-64 IA-64 HP-UX 11i v3

HP-UX 11i v2 e v3 Windows Server 2003 (SP1 e SP2 RHEL AP 44 45 SLES 10 SP

Proprietaacuterio

Tabela 18 - Dados detalhados HP

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

HP Integrity Virtual Machines 61 512 HP-UX limit 16 HP-UX limit 128GB HP-UX limit 4 IDE + 256 SCSI (2TB) 62 NICrsquos

96

Anexo G (Detalhes da plataforma e restriccedilotildees da Microsoft)

Detalhes da plataforma e restriccedilotildees da Microsoft

Tabela 19 - Dados gerais Microsoft

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Microsoft

Virtual PC 2007 Tipo 2

Criar

Testar

Hobby

Estaccedilatildeo de trabalho

Negoacutecios

x86 x86-64 x86

Windows Vista (Business

Enterprise Ultimate) XP Pro XP

Tablet PC Edition

DOS Windows OS2

Linux (SUSE Xubuntu) OpenSolaris (Belenix) Proprietaacuterio

Virtual PC 7 for Mac Tipo 2 PowerPC x86 Mac OS X Windows OS2

Linux Proprietaacuterio

Virtual Server 2005 R2 Tipo 2 Server

Server farm x86 x86-64 x86 Windows 2003 XP

Windows NT 2000 2003

Linux (Red Hat SUSE) Proprietaacuterio

Hyper-V Server 2008 R2 Tipo 1 Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

x86-64

(Intel VT-x ou AMD-V)

x86-64

x86 (ateacute 8 CPUs fiacutesicos)

Windows 2008 com Hyper-V

Windows Hyper-V Server

Windows 2000 2003 e 2008 Windows XP e Vista

Linux (SUSE 10) Proprietaacuterio

Hyper-V Server 2012 Tipo 1

x86-64

(Intel VT-x ou AMD-V apenas

para RemoteFX)

x86-64

(ateacute 64 CPUs fiacutesicos) Windows 2012 com Hyper-V

Windows NT

Linux (SUSE10 RHEL 6 CentOS 6) Proprietaacuterio

Tabela 20 - Dados detalhados Microsoft

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

Hyper-V Server 2008 R2 16 384host

1000cluster

8 fiacutesicos

64 loacutegicos

512 virtuais

4

1 TB 64GB No limit 4 IDE + 256 SCSI (2TB) - -

Hyper-V Server 2012 64 1024host

8000cluster

64 fiacutesicos

320 loacutegicos

2048 virtuais

64

4 TB 1 TB No limit

4 IDE + 256 SCSI

(VHD 2 TB)

(VHDX 64 TB)

32 NICrsquos

10GB migraccedilatildeocluster

REST

powershell

snapshots

suporte VMConnect

para RemoteFX

97

Anexo H (Ambiente de armazenamento VMware ESXi e Citrix Xen)

Ambiente de armazenamento VMware ESXi e Citrix Xen

H1 VMware (VmWare In)

VMFS (Virtual Machine File System) eacute um sistema de ficheiros num Cluster eacute

proprietaacuterio da VMware e foi optimizado para operaccedilotildees de entrada e saiacuteda (IO) com

ficheiros grandes realidade das imagens das maacutequinas virtuais Representa uma soluccedilatildeo

escalaacutevel e de alto desempenho para hospedagem de VMs no bloco de armazenamento

oferecendo partilha e isolamento O serviccedilo VMFS constitui a base de aplicaccedilotildees num

cluster VMware como vMotion (onde existe partilha de dados) Storage VMotion

agendamento de recursos distribuiacutedos alta disponibilidade e toleracircncia a falhas Os

metadados da maacutequina virtual satildeo serializados para ficheiros e o software VMFS fornece

uma interface POSIX (Portable Operating System Interface) - API com a opccedilatildeo de

consola Command Line (CL) e utilidades de interfaces) - para cluster com operaccedilotildees

seguras de gestatildeo de maacutequinas virtuais

Este tipo de armazenamento de dados pode ser feito em qualquer dispositivo de

armazenamento com base em ligaccedilotildees de armazenamento como

Armazenamento de ligaccedilatildeo direta (SCSI local) ligaccedilatildeo local direta aos discos

de armazenamento interno ou externo geralmente SATA IDE (Integrated

Drive Electronics) EIDE etc

Fibre Channel protocolo de transporte usado em SANrsquos onde o Fibre Channel

encapsula comandos SCSI sobre o protocolo FC

FCoE O uso do FC sobre Ethernet onde o traacutefego FC eacute encapsulado em

quadros Ethernet

iSCSI iSCSI transporta comandos SCSI sobre redes IP

IP ligaccedilatildeo IP aos datastores em NAS suportados pelo vSphere ESX

Vista do armazenamento pelo SO Guest

Uma VM na arquitectura ESX usa espaccedilo em disco para armazenar os seus

metadados de configuraccedilatildeo e os proacuteprios dados um pequeno nuacutemero de imagens

aproximadamente 30 a 100 por VM O espaccedilo de armazenamento em disco contem estes

ficheiros de texto muito pequenos (bytes ou KB) mas tambeacutem conteacutem ficheiros do

proacuteprio disco virtual que normalmente satildeo ficheiros muito grandes (centenas de MB ou

GB) e ainda ficheiros de swap (ficheiros guardados pelo SO para aumento virtual da

memoacuteria de trabalho (RAM))

98

Um dos princiacutepios da virtualizaccedilatildeo diz-nos que um SO guest natildeo deve suportar a

carga da gestatildeo de dispositivos fiacutesicos deve concentrar-se em fornecer um ambiente de

execuccedilatildeo de aplicaccedilotildees Assim um dos objetivos da arquitetura VMFS e em particular do

vSphere ESX eacute simplificar todo este acesso de armazenamento ao SO guest O hardware

virtual apresentado a um SO guest vSphere inclui um conjunto de controladores SCSI e

IDE que possuem drivers comuns disponiacuteveis em quase todos os sistemas operacionais O

SO guest vecirc um disco fiacutesico simples ligado atraveacutes de um controlador padratildeo gravado no

formato VMDK (Virtual Machine Disk) formato da VMWare Esta visatildeo virtualizada de

armazenamento apresentada ao SO guest tem uma seacuterie de vantagens como a gestatildeo

facilitada pelo facto de serem usados controladores padratildeo com drivers incluiacutedas nos

SOrsquos o facto de suportar diferentes ligaccedilatildeo e acessos ao armazenamento como iSCSI e

FCoE disponiacuteveis nos SOrsquos sem que estes suportem os protocolos nativos e a melhoria de

eficiecircncia e disponibilizaccedilatildeo na recuperaccedilatildeo de desastres com a disponibilizaccedilatildeo de

muacuteltiplos caminhos no acesso aos dados contrariamente ao peso da redundacircncia de

muacuteltiplos servidores fiacutesicos

H2 Xen Server (Citrix)

O VMM ou hypervisor Xen eacute apenas responsaacutevel pela gestatildeo de CPU memoacuteria e

interrupccedilotildees ou seja natildeo tem conhecimento do IO de Rede e Armazenamento Para lidar

com entradas e saiacutedas de Rede e Armazenamento o XenServer dispotildee de um domiacutenio de

controlo uma VM especializada denominada ldquoDom0rdquo (Domiacutenio 0) com SO Linux e

privileacutegios especiais eacute considerado parte integrante do XenServer aquando da instalaccedilatildeo

Alem de aceder diretamente o hardware controla todos os acessos de IO e interage com

as outras VMs Esta VM especial contem os drivers padratildeo do coacutedigo aberto Linux de

uma vasta diversidade de hardware e uma interface de controlo (consola ou interface

graacutefica) para controlo do sistema Conteacutem ainda uma pilha de controlo (toolstack) para

fazer toda a gestatildeo das VMs as conhecidas ldquoDomUrsquosrdquo (Domiacutenios dos utilizadores)

relativamente a sua criaccedilatildeo destruiccedilatildeo e configuraccedilatildeo

O XenServer da Citrix armazena as suas VMs diretamente no formato Microsoft

VHD (Virtual Hard Disk) num disco local natildeo partilhado (EXT) ou contrariamente ao

VMware natildeo dispondo do seu proacuteprio sistema de armazenamento aproveita as

capacidades nativas de armazenamento como por exemplo um sistema de armazenamento

partilhado como o NFS Com armazenamentos baseados em iSCSI ou FC o XenServer

estende o VHD do sistema de ficheiros para o padratildeo open source LVM (Logical Volume

Manager) para gestatildeo de volumes numa LUN abstraindo os volumes fiacutesicos em volumes

loacutegicos Permite ainda que seja possiacutevel a criaccedilatildeo de uma LUN por cada VDI

O XenServer oferece assim suporte de armazenamento de VMs em discos locais

iSCSI ou SAN baseado em FC ou NAS estes dois uacuteltimos para migraccedilotildees e alta

disponibilidade Ferramentas como XenCenter Storage Repository para implementaccedilatildeo e

99

StorageLink para integraccedilatildeo de armazenamentos com snapshots clones8 e ldquothin

provisioningrdquo9 satildeo uma mais-valia no XenServer

Cada host XenServer pode aceder a um ou vaacuterios dispositivos de armazenamento

diferentes simultaneamente Estes dispositivos de armazenamento podem ser dedicados

apenas a um host ou partilhados entre hosts permitindo que uma imagem de disco virtual

(VDI) num determinado sistema de armazenamento possa ser iniciada em qualquer host

Armazenamento local

Este tipo de armazenamento eacute local ao host XenServer (IDEPATA Serial ATA

(SATA) SCSI e Serial Attached SCSI (SAS)) e neste contexto satildeo suportados dois tipos

de armazenamento um sistema de ficheiros EXT e LVM (Logical Volume Manager)

numa LUN

Uma LUN num SAN iSCSI ou SAN Fibre Channel

Nestes dois tipos de armazenamento (tratados diferentemente pelo XenServer)

figura 54 os ficheiros satildeo apresentados ao XenServer como ficheiros normais ou mesmo

num sistema de ficheiros LVM numa LUN

Eacute criada uma LUN onde todos os servidores se ligam Essa LUN eacute dividida em

volumes loacutegicos onde apenas uma e uma soacute VM ligada a um desses volumes loacutegicos de

cada vez

Figura 54 - LUN num SAN iSCSI ou SAN FC

Network File System (NFS)

Neste tipo de armazenamento figura 55 eacute criado um NFS onde todos os

servidores se ligam e partilham ficheiros VDI que eacute o disco fiacutesico na visatildeo de uma VM O

XenServer lida com este tipo de armazenamento como um conjunto e discos virtuais

(VDIrsquos) armazenados no formato Microsoft VHD especialmente adequado para

ambientes NSF As imagens das VMs satildeo armazenadas como ficheiros neste formato

8 Clone Um programa ou hardware que imita o produto original e pode ser executado de igual modo como se

fosse original 9 Thin provisioning Meacutetodo de otimizaccedilatildeo da eficiecircncia com que o espaccedilo disponiacutevel eacute utilizado numa SAN

100

(VHD) um disco riacutegido virtual Estes ficheiros permitem que VMs sejam instanciadas em

qualquer host de uma pool de recursos e possam ser feitas migraccedilotildees entre servidores com

o XenMotion

XenServer suporta NFS sobre TCPIP O volume NFS localizado num servidor

NFS eacute acedido montado e usado para as necessidades convenientes de armazenamento

seraacute criada uma diretoria de partilha com um nome que eacute o Identificador Uacutenico Universal

(UUID) atribuiacutedo a esse armazenamento

Figura 55 - Network File System (NFS)

Opccedilotildees de armazenamento de terceiros como NetApp ou Dell EqualLogics

O armazenamento eacute feito por dispositivo especiacuteficos de armazenamento como

NetApp (Network Appliance) ou Dell EqualLogics como fornecedores liacutederes de

armazenamento de ficheiros em rede e sistemas de distribuiccedilatildeo de conteuacutedo A gestatildeo do

armazenamento eacute suportada pelo XenCenter

Vista do armazenamento pelo SO Guest

Existem 2 tipos de VMs no XenServer ldquoDom0rdquo e ldquoDomUrdquo ambas VM guestrsquos

diferindo no seu propoacutesito O Dom0 de controlo e parte integrante de todo o sistema

XenServer dispotildee de acesso privilegiados ao hardware tem drivers dos dispositivos e eacute

instanciada aquando do boot do sistema Os DomUrsquos satildeo totalmente isolados do hardware

e comunicam diretamente com o VMM ou hypervisor que controla a memoacuteria e o

processador do host A comunicaccedilatildeo com os restantes perifeacutericos eacute feita sob o controlo da

VM Dom0 (domiacutenio 0 domiacutenio de controlo) com os drivers especiacuteficos de dispositivos

como Rede e Armazenamento Os DomUrsquos satildeo conhecidos como domiacutenios sem

privileacutegios

Em termos de virtualizaccedilatildeo o Xen suporta em simultacircneo VM guests com para-

virtualizaccedilatildeo (PV) (virtualizaccedilatildeo assistida por SO) ou virtualizaccedilatildeo assistida por hardware

(HVM) Na PV apesar da modificaccedilatildeo do SO natildeo requer virtualizaccedilatildeo do processador

nem do hardware uma vez que dispotildee de drivers para aceder diretamente usando a

capacidade total dos dispositivos Na HVM satildeo usadas extensotildees de virtualizaccedilatildeo do

101

processador e hardware host para virtualizar os guets mas natildeo haacute modificaccedilatildeo do SO

guest eacute mais lento que PV mas apresenta a valecircncia da portabilidade A ultima aposta da

Citrix visando oacutetimos desempenhos foi a junccedilatildeo destes dois mundos para-virtualizaccedilatildeo e

virtualizaccedilatildeo assistida por hardware (PVHVM ou PV-on-HVM drivers)

Uma VM (DomU) no mundo virtual de um XenServer vecirc o seu armazenamento

como um disco local (imagens VDI guardadas na sua representaccedilatildeo Microsoft VHD) Na

realidade o XenServer alocou uma percentagem do armazenamento real e atraveacutes do

hypervisor e Dom0 fez toda a abstraccedilatildeo tornando-o disponiacutevel como um recurso de um

disco para essas VMs O SO guest do Dom0 eacute Linux e neste SO os discos fiacutesicos satildeo

representados como ficheiros desses dispositivos (devsda) Os ficheiros dos dispositivos

de armazenamento podem representar discos conectados localmente (armazenamento

local) ou um nuacutemero de unidade loacutegica (LUN) numa SAN sendo a gestatildeo feita por LVM

e ainda a opccedilatildeo NFS

102

Anexo I (Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo)

Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo

I1 Criaccedilatildeo de um projecto Web Service

Um projecto Web Service figura 56 pode ser criado com o IDE Eclipse IDE for Java EE

Developers Configurado todo o ambiente podemos criar um projecto Web Service

mediante vaacuterias abordagens variando nas suas configuraccedilotildees e especificaccedilotildees

naturalmente

Web Dynamic Web Project

JBoss Central HTML5 Project

JBoss Tools Create a Sample RESTfull Web Service

Maven Maven Project

Web Service Create a Sample RESTfull Web Service

Figura 56 - Projecto ldquoDynamic Web Projectrdquo no eclipse

Webxml

103

Ficheiro responsaacutevel pelo registo do servlet10

fornecido pelo Jersey Um servlet

responsaacutevel por analisar os pedidos http e selecionar a classe e meacutetodo para responder ao

pedido mediante as anotaccedilotildees JAX-RS previamente colocadas aquando da criaccedilatildeo do

coacutedigo Webxml define ainda o path sob o qual o Web Service seraacute disponibilizado

URL httpdominioportanome-da-aplicacaourl-patternpath-das-classes-rest

ltxml version=10 encoding=UTF-8gt ltweb-app xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlns=httpjavasuncomxmlnsjavaee xmlnsweb=httpjavasuncomxmlnsjavaeeweb-app_2_5xsd xsischemaLocation=httpjavasuncomxmlnsjavaee httpjavasuncomxmlnsjavaeeweb-app_2_5xsd id=WebApp_ID version=25gt lt-- nome da aplicaccedilatildeo --gt ltdisplay-namegtdevogellajerseytodoltdisplay-namegt ltservletgt lt-- suporte para aplicaccedilotildees Web baseado em servlet e filtro --gt ltservlet-namegtJersey REST Serviceltservlet-namegt ltservlet-classgtcomsunjerseyspicontainerservletServletContainerltservlet-classgt ltinit-paramgt lt-- define o pacote das classes de recurso java do Web Service --gt ltparam-namegtcomsunjerseyconfigpropertypackagesltparam-namegt ltparam-valuegtdevogellajerseytodoresourcesltparam-valuegt ltinit-paramgt ltload-on-startupgt1ltload-on-startupgt ltservletgt ltservlet-mappinggt lt-- URL pattern define parte da URL base onde o Web Service seraacute disponibilizado --gt ltservlet-namegtJersey REST Serviceltservlet-namegt lturl-patterngtrestlturl-patterngt ltservlet-mappinggt ltweb-appgt

ex httplocalhost8080devogellajerseytodoresttodos1

domiacutenio localhost

porta 8080

nome da aplicaccedilatildeo (webxml display-name) devogellajerseytodo

URL base (webxml url-pattern do servlet-mapping) rest

anotaccedilatildeo Path na classe Java todos

anotaccedilatildeo PathParam 1

10 Servlet Uma classe na linguagem de programaccedilatildeo Java que processa dinamicamente pedidos e

respostas gerando dados HTML e XML para a camada de apresentaccedilatildeo de uma aplicaccedilatildeo Web

104

Principais anotaccedilotildees JAX-RS

PATH(your_path) adiciona mais um paracircmetro ao URL (URL+your_path)

POST O meacutetodo responde a um pedido HTTP POST

GET O meacutetodo responde a um pedido HTTP GET

PUT O meacutetodo responde a um pedido HTTP PUT

DELETE O meacutetodo responde a um pedido HTTP DELETE

Produces(MediaType

TEXT_PLAIN[more-types])

Define o tipo MIME a ser entregue por um meacutetodo GET

Consumes(type[more-ypes ] ) Define o tipo MIME a ser consumido pelo meacutetodo

PathParam Usado para especificar valores da URL num paracircmetro do

meacutetodo

Uma outra anotaccedilatildeo fundamental eacute XmlRootElement para que o Jersey saiba

que os atributos iratildeo passar a noacutes no momento em que o XML como resposta ao cliente

De igual modo se receber um XML no corpo de um pedido o Jersei vai saber fazer a

conversatildeo desse XML para um objeto do tipo da classe em causa

I2 Exemplos de solicitaccedilotildees agrave API do MOE

Adicionar mais um processador a um Servidor

Operaccedilotildees sobre Servidores

Verb URI Description

GET servers Lista servidores

GET serversdetail Lista detalhes dos servidores

POST servers Cria servidor

GET serversid Lista detalhes dos servidores

PUT serversid Atualiza dados dos servidores

DELETE serversid Remove servidor

hellip hellip hellip

Um flavor representa uma configuraccedilatildeo de hardware disponiacutevel para um dado tipo

de servidores e eacute uma combinaccedilatildeo uacutenica de espaccedilo em disco capacidade de memoacuteria

nuacutemero de CPUs etc Um servidor eacute uma instacircncia de uma maacutequina virtual e portanto

eacute definido por um flavor

flavors [ disk 10 id 12 name 256_server ram 256 ldquocpurdquo 2 hellip hellip]

Operaccedilotildees sobre Flavors

Verb URI Description

GET flavors Lista flavors

GET flavorsdetail Lista detalhes dos flavors

105

GET flavorsid Lista detalhe do flavor

hellip hellip hellip

O objectivo eacute alterar o nuacutemero de CPUs de um servidor especiacutefico e para tal

temos de saber o valor desse campo no flavor desse servidor

Algoritmo passo-a-passo

1) Listar todos os servidores existentes

Esta operaccedilatildeo obteacutem uma lista de servidores associados agrave conta de um

determinado utilizador Em cada servidor (da lista) um atributo indica o estado actual do

servidor servidores com o estado ACTIVE estatildeo disponiacuteveis para utilizaccedilatildeo

Verb URI Description

GET servers Lista todos os servidores (apenas os IDs e nomes)

GET serversdetail Lista todos os servidores (todos os detalhes)

Coacutedigo para respostas normais 200 203

Coacutedigo para respostas de ERRO serversFault (400 500) serviceUnavailable

(503) unauthorized (401) badRequest (400) overLimit (413)

Resposta da listagem dos servidores XML (detalhes)

ltxml version=10 encoding=UTF-8gt ltservers xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgtgt ltserver id=1234 name=sample-server imageId=1 flavorId=12 status=BUILD progress=60 hostId=e4d909c290d0fb1ca068ffaddf22cbd0gt ltmetadatagt ltmeta key=Server LabelgtWeb Head 1ltmetagt ltmeta key=Image Versiongt21ltmetagt ltmetadatagt ltaddressesgt

ltpublicgt ltip addr=672310132gt ltip addr=672310131gt ltpublicgt ltprivategt ltip addr=101764216gt ltprivategt ltaddressesgt ltservergt hellip ltserversgt

De entre todos os servidores da lista o utilizador pretende ALTERAR o nuacutemero

de CPUs do servidor (server id=1234) ou seja precisa aceder ao flavor

(flavorId=12)

106

2) Listar o flavor (flavorId=12)

Esta operaccedilatildeo obteacutem os detalhes de um flavor especiacutefico (id)

Verb URI Description

GET flavorsid Lista detalhe do flavor especiacutefico

Coacutedigo para respostas normais 200 203

Error ResponseCode(s) serversFault (400 500) serviceUnavailable (503)

unauthorized (401) badRequest (400) itemNotFound (404) overLimit (413)

Resposta com detalhes de um Flavor XML

ltxml version=10 encoding=UTF-8gt ltflavor xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgt id=1 name=256 MB Server ram=256 disk=10 cpu=rdquo2rdquo gt

3) Alterar o nuacutemero de CPUs de 2 para 3 do servidor (server id=1234) flavor

(flavorId=12)

Esta operaccedilatildeo permite que se atualize o numero de CPUs do flavor associado ao

servidor Facilmente se depreende que esta operaccedilatildeo soacute seraacute possiacutevel se o utilizador puder

efectuar esta operaccedilatildeo (Status Transition ACTIVE)

Verb URI Description

PUT servers1234flavor12cpu3 Atualiza dados dos servidores

Coacutedigo para respostas normais 204

Coacutedigo para respostas de ERRO serversFault (400 500) serviceUnavailable

(503) unauthorized (401) badRequest (400) badMediaType(415) itemNotFound (404)

buildInProgress (409) overLimit (413)

Status Transition ACTIVE CONFIGURESERVER (if configureServer is

true)

Pedido de Update do flavor do servidor XML

ltxml version=10 encoding=UTF-8gt ltserver xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgt server id=1234 flavorId=12 cpu=rdquo3rdquo gt

107

Anexo J (Ferramentas de desenvolvimento WebService)

Principais ferramentas e suas configuraccedilotildees usadas na criaccedilatildeo e desenvolvimento deste

webservice

Plataforma Java

Servidor Apache Tomcat

Ambiente de desenvolvimento Eclipse

JARacutes e Plugins

Macromedia Dreamweaver

Notepad++

J1 Plataforma Java

Java eacute uma linguagem de programaccedilatildeo orientada a objeto e considera-se diferente das

outras linguagens convencionais pelo facto de ser compilada para bytecode e executado

por uma maacutequina virtual contrariamente agrave compilaccedilatildeo para coacutedigo nativo A linguagem

de programaccedilatildeo Java eacute a linguagem convencional da Plataforma Java que pode ser

adquirida no site httpjavacomendownloadindexjsp

Figura 57 - Plataforma Java

Como o RESTWEBSERVICE foi criado e executado em ambiente Windows a

explicaccedilatildeo seraacute feita tendo em vista este ambiente

108

Assim vamos verificar se temos a plataforma java instalada e se eacute a ultima versatildeo

lsquoIniciarrsquo e executar lsquocmdrsquo abre-se uma consola de linha de comando do MS Windows

executamos o comando

ldquojava -versionrdquo

Este comando corresponde agrave chamada da maacutequina virtual para executar

ldquobytecoderdquo

Figura 58 - Comando ldquojava -versionrdquo

Java version ldquo170_25 JDK ou JRE

JRE(Java Runtime Environment) Ambiente de execuccedilatildeo Java (Java Virtual

Machine) Como ambiente seraacute apenas possiacutevel a execuccedilatildeo de coacutedigo Java jaacute

compilado

JDK (Java Development Kit) Kit de desenvolvimento Java onde se inclui o

compilador (javac) e o ambiente de execuccedilatildeo Java (JVM) Neste caso podemos

compilar classes java directamente de coacutedigo fonte e executa-las posteriormente

no JRE maacutequina virtual Java

J11 Instalaccedilatildeo

Caso seja necessaacuteria a instalaccedilatildeo da plataforma java termos que fazer o download (versatildeo

7 update 25) e efectuar a sua instalaccedilatildeo Por defeito apoacutes a instalaccedilatildeo teremos os dois

ambientes JDK e JRE na directoria ldquoCProgram FilesJavardquo

Para testar a instalaccedilatildeo do compilador (JDK) lsquoIniciarrsquo e executar lsquocmdrsquo abre-se

uma consola de linha de comando do MS Windows executamos o comando

109

ldquojavacrdquo

Figura 59 - Instalaccedilatildeo da Plataforma Java

Concluiacuteda a instalaccedilatildeo da plataforma java teremos que definir as variaacuteveis de

ambiente para a posterior execuccedilatildeo do ambiente de desenvolvimento IDE (Integrated

Development Environment ) Eclipse e todas as dependecircncias do Java

J12 Variaacuteveis de ambiente

ldquoIniciarrdquo ldquoPainel de controlerdquo ldquoDefiniccedilotildees avanccediladas do sistemardquo ldquoVariaacuteveis de

ambienterdquo ldquoVariaacuteveis de sistemardquo

PATH ndash adicionar ldquodirectoria de instalaccedilatildeo do JDKrdquobin

ex CProgram FilesJavajdk170_25bin

Figura 60 - Variaacutevel de sistema ldquoPathrdquo

CLASSPATH ndash criar esta variaacutevel

Nome da variaacutevel ldquoCLASSPATHrdquo

Valor da variaacutevel ldquordquo

110

Figura 61 - Variaacutevel de sistema ldquoCLASSPATHrdquo

JAVA_HOME ndash criar esta variaacutevel com a ldquodirectoria de instalaccedilatildeo do

JDKrdquobin

ex CProgram FilesJavajdk170_25bin

Figura 62 - Variaacutevel de sistema ldquoJAVA_HOMErdquo

J13 Teste da instalaccedilatildeo da plataforma java e configuraccedilatildeo das variaacuteveis de

ambiente

Vamos verificar se as variaacuteveis foram definidas correctamente Para isso com o

Notpad++ vamos criar um ficheiro com o nome ldquoTestjavardquo e incluir o seguinte coacutedigo

public class Test public static void main(String[] args) throws Exception Systemoutprintln(Hello RESTWEBSERVICE)

Finalmente vamos compilar a classe na directoria onde foi criada e executaacute-la

utilizando a maacutequina virtual Java Na consola de linha de comando vamos executar os

seguintes comandos

javac Testjava ndash Comando para compilar a classe java criada

java Test - Comando para executar a classe Test

Se as variaacuteveis de ambiente foram definidas correctamente deveremos ter

como resposta

ldquoHello RESTWEBSERVICErdquo

111

J2 Servidor Apache Tomcat

Apache Tomcat eacute uma implementaccedilatildeo de software de fonte aberta das tecnologias Java

Servlet e JavaServer Pages (JSP) Egrave um servidor web HTTP em linguagem java um

servidor de aplicaccedilotildees JEE (Java Enterprise Edition) Tem a vantagem de incluir

ferramentas para gestatildeo e configuraccedilatildeo que podem ser editadas directamente num ficheiro

de configuraccedilatildeo em XML

O download deste servidor pode ser feito directamente no site da Tomcat

httptomcatapacheorgdownload-70cgi

J21 Instalaccedilatildeo

Feito o download basta descompactar o ZIP numa directoria ex C onde seraacute criado

uma pasta com o nome do ZIP Capache-tomcat-7034 Como versatildeo preacute-configurada

disponibiliza de imediato as seguintes configuraccedilotildees

A porta de acesso aacutes aplicaccedilotildees eacute a 8080 Basta para isso digitar o URL

seguido de ldquordquo e a porta 8080

ex httplocalhost8080MOE

Se natildeo existirem redireccionamentos eacute possiacutevel a listagem de directorias

Esta opccedilatildeo eacute sempre desactivada depois nas implementaccedilotildees

Monitorizaccedilatildeo sempre constante qualquer alteraccedilatildeo dos ficheiros natildeo existe a

necessidade de fazer um restart ao servidor

Figura 63 - Directoria de instalaccedilatildeo do Servidor Apache Tomcat

112

J22 Execuccedilatildeo

Para testarmos o servidor Apache Tomcat basta corresmos o executaacutevel ldquoTomcat7exerdquo

da directoria ldquoCTomcat 70binrdquo e aceder ao link httplocalhost8080

Figura 64 - Link localhost Apache Tomcat

J3 Ambiente de desenvolvimento Eclipse

Eclipse eacute um IDE (Integrated Development Environment) ou ambiente integrado de

desenvolvimento eacute um programa com caracteriacutesticas e ferramentas de apoio ao

desenvolvimento de software com a vantagem de ter a maior parte das ferramentas de

desenvolvimento jaacute integradas e prontas a usar Uma orientaccedilatildeo baseada em plugins que

mediante incorporaccedilatildeo satisfazem as necessidades dos diferentes programadores

O download deste IDE pode ser feito directamente no site

httpwwweclipseorgdownloads O package em questatildeo para o desenvolvimento

direcionado agrave web eacute o ldquoEclipse IDE for Java EE Developersrdquo que jaacute vem com a maior

parte dos plugins destinados a este tipo de desenvolvimento

J4 JARs e Plugins

O ambiente de desenvolvimento Eclipse principalmente o ldquoEclipse IDE for Java EE

Developersrdquo jaacute vem com a maior parte dos plugins por defeito para desenvolvimentos

orientados agrave web mas haacute um indispensaacutevel muito uacutetil natildeo soacute no acesso aos menus de

configuraccedilatildeo do projecto como tambeacutem ferramentas de configuraccedilatildeo do servidor Apache

Tomcat plugin ldquoWeb Tools Platform (WTP)rdquo

Podemos fazer o download directo do plugin ou solicitar ao Eclipse que o faccedila por

noacutes e instale directamente Para isso vamos ao menu ldquoHelprdquo ldquoInstall new Softwarerdquo

ldquoaddrdquo

Name Web Tools Platform (WTP)

Location httpdownloadeclipseorgwebtoolsrepositoryindigo

113

Figura 65 - Add repository

Relativamente aos JARs estes satildeo dependents do projecto em siacute e do que se

pretende usar JAR (Java Archive) eacute um formato de ficheiro que normalmente eacute usado

para agregar muitos ficheiros de classes Java e metadados associados recursos como

textos e imagens tudo num uacutenico ficheiro que depois funcionaraacute como bibliotecas na

plataforma Java

Basta para isso colocar os JARs necessaacuterios na directoria

ldquoprojectNameWebContentWEB-INFlibrdquo

J4 Macromedia Dreamweaver

O Adobe Dreamweaver mais conhecido por Macromedia Dreamweaver eacute um software de

desenvolvimento na Web criada pela Macromedia

Um software que fornece suporte para vaacuterias tecnologias web tais como XHTML

CSS JavaScript Ajax PHP ASP ASPNET JSP ColdFusion e outras linguagens

Server-side

Toda a apresentaccedilatildeo web da camada de apresentaccedilatildeo do webservice foi

desenvolvida e testada inicialmente neste software Desenvolvimento de coacutedigo HTML

JSP incorporaccedilatildeo de imagens construccedilatildeo de tabelas etc

A5 Notepad++

Notepad++ eacute um editor de texto e de coacutedigo fonte aberto sob licenccedila GPL Tem a

vantagem de suportar vaacuterias linguagens de programaccedilatildeo como HTML JSP CSS JQuery

Javascript e eacute optimo para alteraccedilotildees raacutepidas de coacutedigo e sua visualizaccedilatildeo

114

Anexo K (Criar e executar um ldquoDynamic Web Projectrdquo no Eclipse)

K1 Criar um ldquoDynamic Web Projectrdquo

Para criar um ldquoDynamic Web Projectrdquo temos que iniciar o Eclipse e nesta primeira

iniciaccedilatildeo vatildeo ser testadas todas as variaacuteveis de ambiente anteriormente criadas e criado

um workspace onde seratildeo guardados todos os nossos projectos

Depois de iniciado o Eclipe para criarmos um ldquoDynamic Web Projectrdquo seguimos

os passos

1 ldquoFilerdquo ldquoNewrdquo ldquoProjectrdquo

2 Na proacutexima janela escolher ldquoWebrdquo ldquoDynamic Web Projectrdquo

Figura 66 - Dynamic Web Project

3 Clique em Next

4 Nas propriedades do projecto

Project name Test

Target runtime Apache Tomcat v70

Dynamic web module version 30

Configuration Default Configuration for Apache Tomcat v70

115

Figura 68 - Propriedades do Dynamic Web Project

5 Clique em Next e depois outra vez em Next

6 Seleccione ldquoGenerate webxml deployment descriptorrdquo para a criaccedilatildeo do

webxml onde seratildeo incluiacutedas todas as definiccedilotildees e configuraccedilotildees do projecto

Figura 69 - Webxml do Dynamic Web Project

7 Clique em Next e todo o projecto eacute criado

116

Figura 70 - Directoria base do Dynamic Web Project

JavaSource (src)

Coacutedigo fonte Java do projeto Recursoso que satildeo automaticamente compilado e os

ficheiros gerados satildeo adicionados ao diretoacuterio WEB-INFclasses

WebContent

Localizaccedilatildeo de todos os recursos da Web incluindo HTML JSP ficheiros

graacuteficos imagens etc Os ficheiros ficam disponiacuteveis apenas nesta directoria ou

subdirectorias quando o servidor eacute executado

META-INF

Esta directoria conteacutem o arquivo MANIFESTMF que eacute usado para mapear o

caminho das classes para os ficheiros JAR dependentes que existem no projecto Quando

um JAR eacute adicionado agrave biblioteca esta entrada eacute adicionada automaticamente neste

ficheiro

WEB-INF

Directoria que conteacutem os recursos da Web de suporte para agrave aplicaccedilatildeo incluindo o

ficheiro webxml e as classes e lib

Classes

Directoria das classes compiladas eacute a directoria de saiacuteda do compilador Java As

classes ldquoclassrdquo satildeo colocados neste directoria automaticamente quando o compilador

Java compila os ficheiros de origem Java que estatildeo no directoria de recursos Java (src)

Lib

Os ficheiros JAR de apoio a toda a aplicaccedilatildeo As classes existentes nos ficheiros

jar ficam disponiacuteveis para uso na aplicaccedilatildeo

Web Deployment Descriptor

O descritor de implementaccedilatildeo de toda a aplicaccedilatildeo o ficheiro webxml

117

K2 Executar um ldquoDynamic Web Projectrdquo

Para testarmos o nosso ldquoDynamic Web Projectrdquo comeccedilamos por criar uma classe na

directoria ldquosrcrdquo ldquoFilerdquo ldquoNewrdquo ldquoOtherrdquo ldquoClassrdquo

Figura 71 - Criar uma classe

Criamos uma classe com o package test e o nome Test e incluiacutemos o seguinte

coacutedigo

package test public class Test public static void main(String[] args) throws Exception Systemoutprintln(Hello RESTWEBSERVICE)

Criamos igualmente um ficheiro HTML na directoria WebContent ldquoFilerdquo ldquoNewrdquo

ldquofilerdquo com o nome ldquotesthtmlrdquo e com o seguinte coacutedigo

lthtmlgt ltheadgt lttitlegtDynamic Web Project HTML pagelttitlegt ltheadgt ltbodygt lth2gt Hello RESTWEBSERVICE lth2gt ltbodygt lthtmlgt

118

Executamos o projecto no menu clicamos em ldquoRunrdquo ldquoRunrdquo escolhemos ldquoRun

on Serverrdquo e a primeira vez que executarmos o projecto temos que fazer a ligaccedilatildeo ao

servidor Apache Tomcat ldquoApacherdquo ldquoTomcat v70 Serverrdquo e ldquoFinishrdquo

Figura 72 - Servidor Apache Tomcat dentro do Eclipse

O projecto estaacute pronto a testar no link httplocalhost8080Testtesthtml

Figura 73 - Execuccedilatildeo no Browser

119

Anexo L (Importar configurar e executar o RESTWEBSERVICE - MOE)

A implementaccedilatildeo RESTWEBSERVICE - MOE eacute um webservice desenvolvido numa

arquitectura orientada a Web (Web-Oriented Architecture - WOA) disponibilizando os seus

recursos na Web atraveacutes do protocolo REST (Representational State Transfer) para troca de

informaccedilatildeo Vantagens como a simplicidade de interaccedilatildeo entre sistemas heterogeacuteneos a

facilidade de comunicaccedilatildeo entre aplicaccedilotildees existentes em muacuteltiplas plataformas e a

independecircncia de plataformas e linguagens de programaccedilatildeo satildeo evidentes

L1 Importaccedilatildeo do ldquoDynamic Web Projectrdquo MOE

A importaccedilatildeo o projecto ldquoMOErdquo (Matrix Operating Environment) para o ambiente de

desenvolvimento Eclipse carece da criaccedilatildeo de um ldquoDynamic Web Projectrdquo base no Eclipse

Assim para a criaccedilatildeo de um ldquoDynamic Web Projectrdquo seguir os passos descritos na

aliacutenea K1 Criar um ldquoDynamic Web Projectrdquo do Anexo K alterando apenas o nome para

ldquoMOErdquo Natildeo eacute necessaacuterio criar nenhuma classe java nem ficheiro HTML

Figura 74 - Projecto base MOE

Depois do projecto MOE criado basta importar o projecto real para o Eclipse ldquoFilerdquo

ldquoImportrdquo ldquoArchive Filerdquo

Figura 75 - Importaccedilatildeo do projecto real MOE

Seleccionar o projecto a importar O projecto deveraacute ficar com uma organizaccedilatildeo de

directorias como na imagem seguinte

120

Figura 76 - Projecto real MOE

L2 Configuraccedilatildeo inicial do MOE

Para que a execuccedilatildeo do MOE seja feita sem erros e todas as ligaccedilotildees e credenciaccedilotildees sejam

efectuadas temos que criar pastas e ficheiros de leitura inicial do MOE Assim vamos criar

uma directoria em C com o nome ldquorestconfigrdquo (Crestconfig) com 4 ficheiros

adminUsersListtxt

Ficheiro com todos os administradores do MOE Esta lista deveraacute ser igual agrave lista dos

administradores do HPMOE Um administrador por linha ldquodomiacutenioadminrdquo (ex

ldquohpptlabpaulopiresrdquo)

121

Figura 77 - Ficheiro ldquoadminUsersListtxtrdquo

hp-io-v5wsdl

Ficheiro WSDL (Web Service Description Language) a definiccedilatildeo das operaccedilotildees de IO

disponiacuteveis

https ltcms-ip-addressgt 51443hpiocontrollersoapv4 wsdl

Neste ficheiro basta alterar o IP do servidor HPMOE linha 5987

ltsoapaddress location=https1623187651443hpiocontrollersoapv5gt

Figura 78 - Ficheiro ldquohp-io-v5wsdlrdquo

Figura 79 - WSDL do HPMOE

loginconfig

Ficheiro de apoio agrave credenciaccedilatildeo (login) no MOE

No acircmbito da seguranccedila em aplicaccedilotildees JavaEE o servidor Apache Tomcat fornece

uma implementaccedilatildeo Realm JAAS (Java Authentication and Authorization Service) para que

os programadores possam implementar moacutedulos de login JAAS e integraacute-los facilmente com

as suas aplicaccedilotildees JAAS permite assim autenticaccedilotildees em modo Basic e Form usando para

isso os denominados realms File e JDBC (Java Database Connectivity) que neste caso eacute em

runtime

122

Figura 80 - Ficheiro ldquologinconfigrdquo

A ligaccedilatildeo ao ficheiro ldquologinconfigrdquo eacute feita no menu do Eclipse ldquoRunrdquo ldquoRun

Configurationsrdquo ldquoTomcat 70rdquo ldquoArgumentsrdquo ldquoVM argumentsrdquo adicionar a linha -

Djavasecurityauthloginconfig=Crestconfigloginconfig

Figura 81 - Ficheiro ldquologinconfigrdquo

vmwareAccesstxt

Ficheiro com dados de acesso agrave VMware para acesso agrave consola das VMs dos serviccedilos

criados

Primeira linha IP da VM onde estaacute o VCenter da VMware

Segunda linha Username do Administrador

Terceira linha Password do Administrador

123

Figura 82 - Ficheiro ldquovmwareAcesstxtrdquo

L3 Execuccedilatildeo do MOE

O MOE pode finalmente ser executado Para isso no menu clicamos em ldquoRunrdquo ldquoRunrdquo

escolhemos ldquoRun on Serverrdquo e a primeira vez que executarmos o projecto temos que fazer a

ligaccedilatildeo ao servidor Apache Tomcat ldquoApacherdquo ldquoTomcat v70 Serverrdquo e ldquoFinishrdquo

Figura 83 - Servidor Apache Tomcat dentro do Eclipse

Aguardar que o projecto seja construiacutedo e compilado Podemos acompanhar a

evoluccedilatildeo do estado directamente na consola do Eclipse

124

Figura 84 - Compilaccedilatildeo do projecto MOE

Finalmente o projecto estaacute disponiacutevel em httplocalhost8080MOE

Figura 85 - Login page MOE

Figura 86 - Data page MOE

125

Anexo M (Criaccedilatildeo de um Serviccedilo e ligaccedilatildeo agraves VMs)

A criaccedilatildeo de um serviccedilo de um determinado utilizador tem por base as

definiccedilotildeesconfiguraccedilotildees existentes num Template previamente definido e listado num

Cataacutelogo de Serviccedilos Configuraccedilotildees como detalhes dos servidores memoacuteria processadores

discos custos interfaces limites maacuteximos e miacutenimos de futuros updates ao serviccedilo etc estatildeo

previamente descritos e implementados sob a forma de Templates nos quais o utilizador pode

navegar verificar as caracteriacutesticas de cada um e escolher um que melhor se adapte as suas

necessidades

Assim o utilizador navega nos Templates existentes no Cataacutelogo de Serviccedilos do

menu lateral esquerdo e seleciona o Template No painel central do webservice painel

ldquoDetalhesrdquo satildeo abertas as tabs dos detalhes do Template selecionado

M1 Detalhes do Template

Nas imagens seguintes podemos verificar os detalhes do Template selecionado Nos detalhes

gerais do Template obtemos informaccedilotildees como o nome do Template a data de criaccedilatildeo e

modificaccedilatildeo versatildeo custo geral se eacute ou natildeo costumizaacutevel e o numero de ServerGroups

associados assim como discos e serviccedilos que jaacute foram criados tendo por base este template

Figura 87 - Detalhes gerais do Template ldquoTemplate_3srvrdquo

126

Todos os detalhes do Template ficam disponiacuteveis ao utilizador Ao niacutevel do grupo de

servidores informaccedilotildees como nome quantidade miacutenima de servidores e que seraacute a base do

serviccedilo criado e quantidade maacutexima de servidores sinal que o serviccedilo poderaacute crescer em

termos de quantidade de servidores Tipo de cluster e o numero de servidores loacutegicos

existentes no grupo

Figura 88 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo

Relativamente aos servidores o utilizador obteacutem informaccedilotildees como nome hostname

tipo de virtualizaccedilatildeo memoacuteria usada e quantidade maacutexima de memoacuteria processadores

usados e quantidade maacutexima de processadores se eacute ou natildeo virtual e se estaacute ou natildeo em cloud

Figura 89 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Informaccedilotildees detalhadas sobre os custos em detalhes ficam disponiacuteveis ao utilizador

Informaccedilotildees sobre custo total custo de base por cada servidor custo por processador e

memoacuteria

127

Figura 90 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Os discos tambeacutem apresentam informaccedilatildeo como nome tipo de storage tamanho raid

level se eacute ou natildeo bootable shareable e custo do disco

Figura 91 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

Cada servidor tem um software preacute-instalado ou instalado posteriormente pelo

utilizador Informaccedilotildees como nome tipo OS e virtualizaccedilatildeo estatildeo disponiacuteveis

Figura 92 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

Finalmente detalhes sobre as interfaces Neste caso duas interfaces uma na rede HP

(HP Network) e outra rede local (CloudSystem) Estatildeo disponiacuteveis informaccedilotildees como nome

da interface se eacute ou natildeo primaacuteria redundacircncia subnet publica shareable tipo de IP

endereccedilo DHCP activo ou natildeo e custo final

128

Figura 93 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo

M2 Criaccedilatildeo de um Serviccedilo

Selecionado o Template que melhor se enquadra nas necessidades do utilizador clicar

na opccedilatildeo preencher todos os dados obrigatoacuterios como nome do

serviccedilo hostname tempo atribuiacutedo ao serviccedilo (acarreta custos) e email do utilizador

As opccedilotildees ldquoNotesrdquo e ldquoBilling coderdquo satildeo opcionais

Figura 94 - Criaccedilatildeo do serviccedilo ldquomyServicerdquo

129

Apoacutes a solicitaccedilatildeo para a criaccedilatildeo do serviccedilo o utilizador eacute encaminhado para uma

lista de pedidos existentes para aquele utilizador e serviccedilo em especiacutefico Pedidos que

poderatildeo ser cancelados (figura 95) mediante decisatildeo do utilizador

Figura 95 - Lista de pedidos do utilizador

A salientar que existem pedidos que carecem da aprovaccedilatildeo do administrador por isso

o pedido poderaacute ficar parado numa determinada percentagem () a espera dessa aprovaccedilatildeo

Se o pedido natildeo necessitar de aprovaccedilatildeo continuaraacute a sua execuccedilatildeo ateacute estar completo

(100) e automaticamente seraacute adicionado ao menu lateral esquerdo do utilizador

Figura 96 - Eventual cancelamento de um pedido

Finalmente o serviccedilo eacute criado e todas as opccedilotildees ficaratildeo agora disponiacuteveis ao

utilizador como ediccedilatildeo de memoacuteria e processadores upgrade de servidores exportaccedilatildeo de

dados em xml visualizaccedilatildeo nesse formato etc

M3 Acesso Remoto

Acesso remoto agrave maquina virtual (VM) como objectivo de toda a implementaccedilatildeo estaacute

igualmente disponiacutevel para os servidores cujo status = ldquoUPrdquo Essa listagem poderaacute ser

efectuada na tab ldquoServiccedilosrdquo em com quatro tipo de ligaccedilotildees

130

RDP (Remote Desktop Protocol) (figura 100)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet (figura 101)

VMRC (VMware Remote Console) (figura 102)

Figura 97 - Serviccedilo ldquomyServicerdquo criado

Figura 98 - Listagem dos acessos remotos

Os acessos remotes poderatildeo ser feitos atraveacutes desta lista ou directamente nos

servidores ou interfaces

131

Figura 99 - Acesso remoto na tab ldquoServerrdquo

Figura 100 - Acesso remoto por RDP

Figura 101 - Acesso remoto por Telnet

Figura 102 - Acesso remoto por VMRC

132

Anexo N (MOE Help)

A informaccedilatildeo disponibilizada eacute vasta e detalhada sobre os recursos disponibilizados e a sua

manipulaccedilatildeo pode criar alguma duacutevida existencial Uma paacutegina ldquoMOE Helprdquo de ajuda eacute

sempre bem vinda e uacutetil bastando para isso clicar no iacutecone que o ajudaraacute a compreender

melhor tido o wevservice e sua distribuiccedilatildeo e organizaccedilatildeo

Figura 103 - Menu lateral esquerdo ldquoMOE Helprdquo

O menu lateral esquerdo agrave semelhanccedila da paacutegina principal do webservice expelha a

hierarquia da organizaccedilatildeo de toda a informaccedilatildeo O utilizador apenas tem que clicar na opccedilatildeo

que deseja maior esclarecimento

Figura 104 - Menu lateral esquerdo ldquoMOE Helprdquo

133

Toda a informaccedilatildeo de ajuda estaacute imediatamente disponiacutevel com as Tabs respectivas jaacute

abertas e prontas a consultar O menu lateral esquerdo serve apenas para selecionar a Tab e

dentro dessa Tab selecionar imediatamente a informaccedilatildeo pretendida Se o utilizador tiver

duacutevidas sobre a a importaccedilatildeo de um Template basta abrir a Tab Template e scroll ateacute agrave

informaccedilatildeo pretendida ou sentatildeo mais faacutecil clicar apenas em ldquoImport xmlrdquo dentro da pasta

Template no menu lateral esquerdo e com um simples clique visualiza imediatamente a

informaccedilatildeo nem necessidade de scroll

Figura 105 - ldquoImport xmlrdquo help

N1 Template

Um Template compreende a uma configuraccedilatildeo especifica de hardware e software desenhado

pelo Arquitecto a infra-estrutura para fazer face a determinadas situaccedilotildees como solicitaccedilotildees

de um utilizador ou grupo de utilizadores que solicitaram essas configuraccedilotildees especificadas

Configuraccedilotildees como nuacutemero de servidores memoacuteria processadores discos software

interface etc Opccedilotildees configuraacuteveis com limites minimos e maacuteximos com o seu

correspondente custo associado

Esses templates apoacutes publicaccedilatildeo fazem parte de uma lista num cataacutelogo de serviccedilos

para uso e instanciaccedilatildeo de serviccedilos de utilizadores dessa infra-estrutura

134

Figura 106 - Template info Tab

N2 Service

Um serviccedilo corresponde a uma instanciaccedilatildeo de um determinado template Todas as

configuraccedilotildees base do template seleccionado pertencem agora a este novo serviccedilo que poderaacute

ser posteriormente editado com mais ou menos servidores processamento memoacuteria discos

etc ateacute um limite maacuteximo definido no template de base de criaccedilatildeo deste serviccedilo A opccedilatildeo de

remoccedilatildeo de servidores definir menos memoacuteria ou processadores tambeacutem satildeo opccedilotildees

disponiacuteveis de ediccedilatildeo

Figura 107 - Service info Tab

135

N3 ServerGroup

Um Grupo de Servidores corresponde a um ou mais servidores com configuraccedilotildees diacutespares

em cada grupo como software discos interfaces etc O grupo de servidores permite a

organizaccedilatildeo dos servidores existentes num serviccedilo por tipo de configuraccedilotildees de hardware e

software

Figura 108 - ServerGroup info Tab

N4 Server

Um servidor eacute o nuacutecleo de um serviccedilo igualmente com configuraccedilotildees especiacuteficas como

memoacuteria processadores velocidade discos software interfaces etc

Figura 109 - Server info Tab

136

N5 Disk

Figura 110 - Disk info Tab

N6 Software

Software a ser disponibilizado na VM do utilizador Software baseado igualmente num

template com configuraccedilotildees especiacuteficas

Figura 111 - Software info Tab

137

N7 Interface

Toda a infra-estrutura tem por base uma lista de redes definidas para comunicaccedilatildeo desde

redes internas a redes externas agrave infra-estrutura

Figura 112 - Interface info Tab

N8 Request

Os pedidossolicitaccedilotildees ficam em histoacuterico durante a sua execuccedilatildeo e apoacutes teacutermino da mesma

Permite que o utilizador acompanhe a progressatildeo do seu pedido e quando terminar (100) o

utilizador eacute informado do status de teacutermino sendo automaticamente feito o refresh da paacutegina

Figura 113 - Request info Tab

138

N9 About

Um pequeno resumo desta Tese

Figura 114 - About info Tab

N10 Team

Intervenientes de todo o projecto

Figura 115 - Team info Tab

139

N11 Javadoc

Informaccedilatildeo sobre todo o webservice meacutetodos moacutedulos de acesso login configuraccedilotildees etc

Informaccedilatildeo disponiacutevel apenas ao Administrador

Figura 116 - Javadoc info Tab

140

Anexo O (VMware - Virtual Machine Resources)

O1 ldquoMapsrdquo ndash Host Options ndash Host to VM

Detalhes da relaccedilatildeo HostVM no final dos 3 serviccedilos criados

Host cifm02hpptlablocal VM Service1HP_hostonehost5

Host cifm05hpptlablocal VM myService_hostmyhostr01

Service2HP_hostrhostr01 02 e 03

Figura 117 - ldquoMapsrdquo da relaccedilatildeo Host VM

141

O2 ldquoMapsrdquo ndash Host Options ndash Host to Network

Detalhes da relaccedilatildeo HostNetwork no final dos 3 serviccedilos criados Os 2 hosts

(cifm02hpptlablocal e cifm05hpptlablocal) estatildeo ligados agraves 3 redes existentes

CloudSystem rede interna MOE (19216810hellip)

HP Network rede externa MOE e interna HP (1623186hellip e 1623187hellip)

HP DataCenter outra rede interna MOE

Figura 118 - ldquoMapsrdquo da relaccedilatildeo Host Network

142

O3 ldquoMapsrdquo ndash Host Options ndash Host to Datastore

Detalhes da relaccedilatildeo HostDatastore no final dos 3 serviccedilos criados

Host cifm02hpptlablocal Datastore CIF02-LOCALDATASTORE-001

Host cifm05hpptlablocal Datastore CIF05-LOCALDATASTORE-001 002 003 e

004

Datastore EVA-VMware-DISK-001 002 003 004 3 005

Figura 119 - ldquoMapsrdquo da relaccedilatildeo Host Datastore

143

O4 ldquoMapsrdquo ndash VM Options ndash VM to Network

Detalhes da relaccedilatildeo VMNetwork no final dos 3 serviccedilos criados

Network CloudSystem VM todas as VMs na rede local MOE

Network HP Network VM todas as VMs na rede externa MOE

Figura 120 - ldquoMapsrdquo da relaccedilatildeo VM Network

144

O5 ldquoMapsrdquo ndash VM Options ndash VM to Datastore

Detalhes da relaccedilatildeo HostDatastore no final dos 3 serviccedilos criados

VM Service1HP_hostonehost5 Datastore EVA-VMware-DISK-004

VM myService_hostmyhostr01 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr01 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr02 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr03 Datastore CIF05-LOCALDATASTORE-004

Figura 121 - ldquoMapsrdquo da relaccedilatildeo Host Datastore

145

O6 ldquoMapsrdquo ndash Host and VM Options ndash all relationships

146

Anexo P (Scenario view)

P1 Template

P11 Informaccedilatildeo

Figura 122 - Detalhes gerais do Template ldquoTemplate_3srvrdquo

Figura 123 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo

147

Figura 124 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Figura 125 - Detalhes dos Custos do Servidor ldquoSvrGrp1-1rdquo

Figura 126 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

Figura 127 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

148

Figura 128 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo

P12 Execuccedilatildeo

Figura 129 - Ficheiro ldquoTemplateListxmlrdquo

149

Export Template

Figura 130 - Ficheiro ldquoTemplate_3srvxmlrdquo

Import Template

Figura 131 - Importaccedilatildeo de um Template em formato XML

Delete Template

Figura 132 - InfoWindow ldquoDelete Templaterdquo

150

XML View

Figura 133 - InfoWindow com a visualizaccedilatildeo do Template em XML

Export All Services

Figura 134 - Ficheiro ldquoTemplate_3srv_ServiceListxmlrdquo

151

Create Service

Figura 135 - Criaccedilatildeo de um Serviccedilo com base no Template ldquoTemplate_3srvlrdquo

All Requests

Figura 136 - Lista de todos os pedidos do utilizador

152

Figura 137 - Eventual cancelamento de um pedido

Template Requests

Figura 138 - Lista dos pedidos resultantes da relaccedilatildeo Templateutilizador

153

P2 Serviccedilo

P21 Informaccedilatildeo

Figura 139 - Detalhes do Serviccedilo ldquomyServicerdquo do Template ldquoTemplate_3srvrdquo

P22 Execuccedilatildeo

Export All Services

Figura 140 - Ficheiro ldquoallServicesListxmlrdquo

154

Export Service

Figura 141 - Ficheiro ldquomyServicexmlrdquo

XML View

Figura 142 - InfoWindow com a visualizaccedilatildeo do Serviccedilo em XML

Delete Service

Figura 143 - Remoccedilatildeo de um Serviccedilo

155

Power ON Service

Figura 144 - Power ON de um Serviccedilo

Power OFF Service

Figura 145 - Power OFF de um Serviccedilo

Power Cycle Service

Figura 146 - Power Cycle de um Serviccedilo

Activate Service

Figura 147 - Activaccedilatildeo de um Serviccedilo

Deactivate Service

Figura 148 - Desactivaccedilatildeo de um Serviccedilo

156

Service Actions

Figura 149 - Lista dos Service Actions

List Remote Session

Figura 150 - Lista dos Acessos Remotos do um Serviccedilo

Figura 151 - Acesso remoto por RDP

Figura 152 - Acesso remoto por Telnet

157

Figura 153 - Acesso remoto por VMRC

Service Requests

Figura 154 - Listagem dos pedidos por Serviccedilo

158

P3 Grupo de Servidores

P31 Informaccedilatildeo

Figura 155 - Detalhes do Grupo de Servidores ldquoSvrGrp1rdquo do Serviccedilo ldquomyServicerdquo

P32 Execuccedilatildeo

Export Server Group

Figura 156 - Ficheiro ldquoSvrGrp1xmlrdquo

159

XML View

Figura 157 - InfoWindow com a visualizaccedilatildeo do Grupo de Servidores em XML

Add Servers (UP)

Figura 158 - Adiccedilatildeo de Servidores ao Grupo de Servidores

Remove Servers (DOWN)

Figura 159 - Remoccedilatildeo de Servidores ao Grupo de Servidores

160

Edit ServerGroup

Figura 160 - Ediccedilatildeo de Servidores ao Grupo de Servidores

Power ON ServerGroup

Figura 161 - Power ON de um ServerGroup

Power OFF ServerGroup

Figura 162 - Power OFF de um ServerGroup

Power Cycle ServerGroup

Figura 163 - Power Cycle de um ServerGroup

161

Activate ServerGroup

Figura 164 - Activaccedilatildeo de um ServerGroup

Deactivate ServerGroup

Figura 165 - Desactivaccedilatildeo de um ServerGroup

List Snapshots

Figura 166 - Listagem de todos os Snapshots existentes no Grupo de Servidores

Figura 167 - Acccedilotildees SnapshotServidor

Figura 168 - Revert Snapshot

162

Figura 169 - Delete Snapshot

Create Snapshot

Figura 170 - Create Snapshot

Add Stereotype Disks

Figura 171 - Lista de ldquoStereotype Disksrdquo

Add Virtual Disks

Figura 172 - Adicionar um disco virtual ldquoDisk62rdquo ao Grupo de Servidores

163

Add Physical Disks

Figura 173 - Adicionar um disco fiacutesico ldquoDisk788rdquo ao Grupo de Servidores

P4 Servidores

P41 Informaccedilatildeo

Figura 174 - Detalhes do Servidor ldquoSvrGrp1-1rdquo do Serviccedilo ldquomyServicerdquo

164

P42 Execuccedilatildeo

Export Server

Figura 175 - Ficheiro ldquohostmygostr01_lsxmlrdquo

XML View

Figura 176 - InfoWindow com a visualizaccedilatildeo do Servidor em XML

165

Remove Server

Figura 177 - Remoccedilatildeo de um Servidor

Edit Server

Figura 178 - Ediccedilatildeo de um Servidor

Power ON Server

Figura 179 - Power ON de um Servidor

Power OFF Server

Figura 180 - Power OFF de um Servidor

166

Power Cycle Server

Figura 181 - Power Cycle de um Servidor

Activate Server

Figura 182 - Activaccedilatildeo de um Servidor

Deactivate Server

Figura 183 - Desactivaccedilatildeo de um Servidor

Create Snapshot

Figura 184 - Create Snapshot

167

List ServerPool

Figura 185 - Pools de Servidores

Figura 186 - Criar uma Pools de Servidores

Figura 187 - Remoccedilatildeo de uma Pools de Servidores

Figura 188 - InfoWindo de aviso ao administrador

168

VM Host

Figura 189 - Informaccedilatildeo dos hosts fiacutesicos

Remote Session

Figura 190 - Sessotildees Remotas num Servidor

169

P5 Discos

P51 Informaccedilatildeo

Figura 191 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

P52 Execuccedilatildeo

Add Stereotype Disks

Figura 192 - Criaccedilatildeo de um ldquoStereotype Disksrdquo

170

P6 Software

P61 Informaccedilatildeo

Figura 193 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

P62 Execuccedilatildeo

List Softwares

Figura 194 - Lista de Software

171

Software Detals

Figura 195 - Detalhes do Software

P7 Interface

P71 Informaccedilatildeo

Figura 196 - Detalhes do Interface NIC0rdquo do Servidor ldquoSvrGrp1-1rdquo

172

P72 Execuccedilatildeo

List Subnets

Figura 197 - Listagem de todas as redes

Figura 198 - Detalhe da rede

Add IPAddress

Figura 199 - Adiccedilatildeo de um IP flutuante agrave Interface ldquoNIC0rdquo

173

Remove IPAddress

Figura 200 - Remoccedilatildeo de um IP flutuante pertencente agrave Interface ldquoNIC0rdquo

Move IPAddress

Figura 201 - Mover um IP flutuante para a Interface ldquoNIC0rdquo

Page 4: Framework para a construção de “portais de negócio” para

IV

V

Framework para a construccedilatildeo de ldquoportais de negoacuteciordquo

para gestatildeo de solicitaccedilotildees de consumidores IaaS

na HP Cloud

copy Copyright - Indicaccedilatildeo dos direitos de coacutepia em nome de Paulo Agostinho Rodrigues Pires

aluno de Mestrado em Engenharia Informaacutetica da FCTUNL

A Faculdade de Ciecircncias e Tecnologia e a Universidade Nova de Lisboa tecircm o direito

perpeacutetuo e sem limites geograacuteficos de arquivar e publicar esta dissertaccedilatildeo atraveacutes de

exemplares impressos reproduzidos em papel ou de forma digital ou por qualquer outro

meio conhecido ou que venha a ser inventado e de a divulgar atraveacutes de repositoacuterios

cientiacuteficos e de admitir a sua coacutepia e distribuiccedilatildeo com objectivos educacionais ou de

investigaccedilatildeo natildeo comerciais desde que seja dado creacutedito ao autor e editor

VI

VII

Agradecimentos

Um profundo agradecimento a todos aqueles que de diferentes formas me apoiaram durante

estes 5 anos enquadrando este trabalho como objectivo uacuteltimo de uma licenciatura e

mestrado integrado em Engenharia Informaacutetica

Comeccedilo assim por agradecer a todos os meus professores da FCT que ao longo

destes 5 anos contribuiacuteram para a minha formaccedilatildeo acadeacutemica

Aos meus amigos que no estudo nas diversotildees nos incentivos conseguiram sempre criar um

ambiente ideal e propiacutecio agrave concretizaccedilatildeo das diferentes etapas deste curso com eacutexito Para

mim foi um privileacutegio ter partilhado com eles esta etapa da minha vida

Agrave HP pela disponibilizaccedilatildeo de todas as infra-estruturas permissotildees e acessos para a

elaboraccedilatildeo deste framework Um abiente acolhedor em pessoas trabalho equipamento e

apoio

Ao meu orientador e responsaacutevel na HP Rui Miguel Ramalho Ramos (TS Consulting

Resource Manager) que sempre ponto a ajudar soube resolver atempadamente todas as

minhas solicitaccedilotildees Um muito obrigado pela camaradagem eficiecircncia e profissionalismo

com que encarou toda a implementaccedilatildeo

Um agradecimento especial ao meu orientador da tese Professor Paulo Orlando Reis

Afonso Lopes (Arquitectura de Sistemas Computacionais) pela sua orientaccedilatildeo

disponibilidade e sugestotildees que me ajudaram na conclusatildeo deste trabalho Um muito

obrigado pela sua constante presenccedila e acima de tudo pela confianccedila que me concedeu

durante toda a tese quer na preparaccedilatildeo quer na elaboraccedilatildeo Uma acessibilidade e presenccedila

que fizeram toda a diferenccedila obrigado professor

Por uacuteltimo agrave minha famiacutelia pelo encorajamento pais irmatilde e sogros Um obrigado

especial ao meu sogro Aires Pereira pelas brincadeiras que proporcionou agrave minha filha

entretendo-a para que eu pudesse estudar e desenvolver esta tese

Agrave minha esposa Nadia Pires e a minha filha Lara merecem uma menccedilatildeo especial

Agradeccedilo agrave minha esposa pelo apoio prestado nesta etapa da minha vida obrigada pelo amor

pela paciecircncia pelo otimismo pela motivaccedilatildeo e por me ter acompanhado nas horas mais

difiacuteceis desta etapa estarei eternamente grato Na minha ausecircncia soube sempre ser o Pai e a

Matildee que uma famiacutelia precisa

Agrave minha querida filha um agradecimento muito especial e um pedido de desculpas

em simultacircneo Obrigada pelos sorrisos pelos abracinhos pelos beijinhos enfimhellip por todos

os carinhos que soacute uma menina doce como ela sabe dar e que me ajudaram a ultrapassar os

momentos mais difiacuteceis desta jornada Desculpa pela falta de paciecircncia e por todos os

momentos que natildeo podemos estar juntos

VIII

Resumo

O HP CloudSystem Matrix (CSM) faz parte de uma pilha de software HP para computaccedilatildeo

na cloud que cobre todos os niacuteveis de serviccedilo considerados relevantes IaaS (Infra-estrutura

como Serviccedilo) PaaS (Plataforma como Serviccedilo) e SaaS (Software como Serviccedilo) Apesar de

ser a base desta pilha ie oferecer o niacutevel IaaS eacute um produto extremamente complexo pois

interage com todas as infra-estruturas as computacionais (ie servidores fiacutesicos ou virtuais)

as de armazenamento (do disco interno aos discos em servidores de armazenamento) e as de

interligaccedilatildeo (redes Ethernet e FC)

Apesar de toda a complexidade da infra-estrutura real e virtual que gere o CSM

torna conceptualmente simples a entrega aos consumidores de infra-estruturas para suporte a

aplicaccedilotildees 1) o administrador define que recursos da infra-estrutura estatildeo disponiacuteveis para

integrar a ldquooferta cloudrdquo 2) o arquitecto define templates para as arquitecturas que considera

adequadas para necessidades dos consumidores (eg arquitectura 3-tier para uma soluccedilatildeo

ERP - Enterprise Resource Planning) e 3) o consumidor escolhe o template que melhor se

ajusta agraves suas necessidades e efectua um pedido de aprovisionamento da infra-estrutura

A interacccedilatildeo entre os diferentes interlocutores (1) (2) (3) e o CSM eacute

fundamentalmente realizada sobre portais contudo especialmente no caso do consumidor o

portal disponibilizado pelo produto tem sido considerado como ldquocomplexordquo por apresentar

informaccedilatildeo demasiado teacutecnica ldquoriacutegidordquo por natildeo poder ser customizado (por exemplo para

suprimir a ldquoinformaccedilatildeo demasiado teacutecnicardquo) e ldquogrosseirordquo por natildeo permitir a especificaccedilatildeo

mais fina das caracteriacutesticas da infra-estrutura que se quer aprovisionar (por exemplo permite

variar o nuacutemero de CPUs e a quantidade de memoacuteria de um servidor mas natildeo permite

escolher a tecnologia dos discos que se pretendem aprovisionar eg SSD em vez de FC 15K

em vez de 10K rpm) Assim o objectivo final da dissertaccedilatildeo eacute desenvolver um framework

que permita com base num conjunto (extensiacutevel e configuraacutevel) de opccedilotildees preacute-definidas e

em layouts customizaacuteveis definir portais que se integram com o HP CloudSystem Matrix e

que permitam aos utilizadores (consumidores) uma interacccedilatildeo natildeo soacute mais simples mas

tambeacutem mais versaacutetil

Neste trabalho satildeo abordados os modelos de serviccedilo e de implantaccedilatildeo (deployment)

de clouds a virtualizaccedilatildeo (natildeo somente de servidores mas tambeacutem de armazenamento e de

redes) pedra base de toda a tecnologia cloud e os moacutedulos e APIs disponiacuteveis para

interoperar com o CSM nomeadamente API-MOE e API-VMware Por fim eacute apresentada

uma framework com uma arquitectura multicamada (N-tier) implementada com tecnologias

padratildeo TCPIP para a pilha de comunicaccedilotildees REST (Representational State Transfer) para

regular a interacccedilatildeo e troca de informaccedilatildeo clienteservidor e XML (Extensible Markup

Language) e JSON (JavaScript Object Notation) como formatos de dados

Palavras-chave Computaccedilatildeo na nuvem Portal de interacccedilatildeo Traduccedilatildeo Binaacuteria

Virtualizaccedilatildeo de Servidores Virtualizaccedilatildeo de Armazenamento e Virtualizaccedilatildeo da Rede

IX

Abstract

The HP CloudSystem Matrix (CSM) is a part of the HP software stack for cloud computing

that covers all relevant service levels IaaS (Infrastructure as a Service) PaaS (Platform as a

Service) and SaaS (Software as a Service) Although it rests at the base of the stack ie only

offers the IaaS level it is an extremely complex product since it interacts with all

infrastructures computing (ie physical and virtualized servers) storage (from individual

drives to disk arrays) and networking (Ethernet and FC networks)

Despite all the (real) infrastructureacutes complexity that CSM deals with the delivery (to

end users ndash aka infrastructure consumers) of infrastructures for application support

becomes a conceptually simple task (1) the administrator defines which infrastructure

resources are available to integrate the cloud offer (2) the architect defines templates for

those architectures he deems appropriate for the end users (eg 3-tier architecture for an ERP

- Enterprise Resource Planning - solution) (3) the end user chooses the template that better

suits its needs and then submits a request for the delivery of the infrastructure

The interaction between the different counterparts (1) (2) and (3) and the CSM is

fundamentally realised over portals however especially in the case of the end user the portal

has been considered complex since it presents too much technical information rigid

since it is not customizable (eg to suppress the too much technical information) and

coarse since it does not allow a finer-graned specification of the infrastructureacutes attributes

that are required (eg it allows to change the number of CPUs and the amount of memory in

the server but it does not allow one to choose the disk technologies eg SSD instead of FC

or 15K instead 10K rpm) Therefore the final goal of this dissertation is to develop a

framework that allows with a set of pre-defined settings and customizable layouts to define

portals that are integrated with HP CloudSystem Matrix and enables a simpler user

interaction

In this work we studied service and cloud implementation models virtualization (not

only server virtualization but also storage and network virtualization) the foundation of all

cloud technologies modules and APIs that interoperate with CSM namely API-MOE and

API-VMware Finally we present a framework (prototype) implemented in a multi-layer

architecture (N-tier) with standard technologies TCPIP for the communication stack REST

(Representational State Transfer) to control the interaction and the clientserver information

flows and XML (eXtensible Markup Language) and JSON (JavaScript Object Notation) for

the data formats

Keywords Cloud Computing Interaction Portal Binary Translation Server Virtualization

Storage Virtualization and Network Virtualization

X

Glossaacuterio e Lista de siglas

API Application Programming Interface

BIOS Basic InputOutput System

CC Computaccedilatildeo em Cloud

CIFS Common Internet File System

CL Command Line

CMS Console Monitor System

CP Control Program

CPU Central Processing Unit

CSS Cascading Style Sheets

DAS Direct-Attached Storage

Dom0 Domiacutenio 0 do XenServer

DomU Domiacutenio U do XenServer

DVFilter Distributed Virtual Filter

DynaRecs Dynamic Recompilation

EIDE Enhanced Integrated Drive Electronics

FC Fibre Channel

FCoE Fibre Channel over Ethernet

FTP File Transfer Protocol

GUEST Sistema Virtualizado

HD Hard Drive

HOST Servidor Hospedeiro

HP Hewlett-Packard

HPCMS HP Console Management System

CSM HP CloudSystem Matrix (Hewlett-Packard)

IC Insight Control (Hewlett-Packard)

ID Insight Dynamics (Hewlett-Packard)

IO Infrastructure Orchestration (Hewlett-Packard)

SA Server Automation (Hewlett-Packard)

SS SiteScope (Hewlett-Packard)

UD Universal Discovery (Hewlett-Packard)

HPVM HP Integrity Virtual Machine

VMAN Virtualization Manager (Hewlett-Packard)

VMMGR HP Integrity Virtual Machines Manager (Hewlett-Packard)

XI

HTTP HyperText Transfer Protocol

HVM Virtualizaccedilatildeo assistida por hardware

IO InputOutput

IaaS Infrastructure as a Service

IBM International Business Machines Corporation

IDE Integrated Development Environment

iSCSI Internet Small Computer System Interface

J2EE Java2 Platform Enterprise Edition

JS JavaScript

JSON JavaScript Object Notation

JVM Java Virtual Machine

LAN Local Area Network

LUN Logical Unit Number

LVM Logical Volume Manager

MAC Apple Macintosh

MOE Matrix Operating Environment

MSCS Microsoft Cluster Server

NAS Network Attached Storage

nbAPI Northbound API

NetApp Network Appliance

NFS Network File System

NIC Adaptador de rede (Network Interface Controller)

NVRAM Non-Volatile Random Access Memory

PaaS Plataform as a Service

PATA Parallel Advanced Technology Attachment

pNIC Physical Network Interface Controller

POSIX Portable Operating System Interface

PV Para-Virtualizaccedilatildeo

PVHVM Para-Virtualizaccedilatildeo + Virtualizaccedilatildeo assistida por hardware

QOS Quality Of Service

RAID Redundant Array of Independent Disks

RAM Random Access Memory

REST REpresentational State Transfer

RPC Remote Procedure Call

SaaS Software as a Service

XII

SAN Storage Area Network

SAP Sistemas Aplicaccedilotildees e Produtos

SAS Serial Attached SCSI

SATA Serial ATA

SCSI Small Computer System Interface

SCVMM System Center Virtual Machine Manager

SF Sistema de Ficheiros

SLA Service Level Agreement

SMTP Simple Mail Transfer Protocol

SO Sistema Operativo

SOA Service-Oriented Architecture

SOAP Simple Object Access Protocol

SSD Solid-State Drive

TCPIP Transmission Control ProtocolInternet Protocol

TI Tecnologias de Informaccedilatildeo

URI Uniform Resource Identifier

URL Uniform Resource Locator

UUID Identificador Uacutenico Universal

VDI Virtual Disk Image

vDS vNetwork Distributed Switch

VHD Virtual Hard Disk (Microsoft)

VLAN Virtual LAN

VM Virtual Machine

VMBus Virtual Machine Buss

VMDK Virtual Machine Disk (VMware)

VMFS Virtual Machine File System

VMM hipervisor (tambeacutem designado Virtual Machine Manager)

vNIC Virtual Network Interface Controller

VSC Virtual Service Client

VSP Virtual Service Provider

vSwitch Virtual Switch

WOA Web-Oriented Architecture

WS Web Service

WWW World Wide Web

XML Extensible Markup Language

XIII

Iacutendice

1 Introduccedilatildeo 1

11 Descriccedilatildeo e contexto 1

12 Objectivos 3

13 Organizaccedilatildeo 3

14 Contribuiccedilotildees 4

15 Resumo 5

2 Virtualizaccedilatildeo 6

21 Evoluccedilatildeo histoacuterica 6

22 Virtualizaccedilatildeo de Servidores 7

221 VMware (VMware Inc) 8

222 Xen (Citrix Systems Inc) 9

223 Integrity VM (HP) 10

224 Hyper-V (Microsoft) 11

23 Virtualizaccedilatildeo do Armazenamento 12

231 Armazenamento em ambientes virtualizados 14

24 Virtualizaccedilatildeo da Rede 16

25 Resumo 18

3 Computaccedilatildeo na Cloud 19

31 Periacutemetro de uma cloud 19

32 Modelos de serviccedilo 20

33 Resumo 22

4 HP Cloud Stack 23

41 HP CloudSystem Matrix 23

42 Modelos de interacccedilatildeo com o HP CSM 25

43 Papeacuteis e Portais de interacccedilatildeo 26

44 Conceitos fundamentais da plataforma HP CSM 28

45 Limitaccedilotildees do HP CloudSystem Matrix 30

46 Resumo 31

5 O framework e a sua Realizaccedilatildeo 32

51 Arquitectura 32

52 Integraccedilatildeo da framework no HP CSM (MOE e VMware) 33

53 Um desenho guiado pela Interface Utilizador 34

54 Camada de apresentaccedilatildeo 38

XIV

541 Do lado do cliente 38

542 Do lado do servidor 39

543 Lista de primitivas na oacuteptica dos recursos 40

55 Camada ServiccedilosLoacutegica 41

551 Camada de Serviccedilos 42

552 Camada Loacutegica 42

56 Camada de Dados 68

561 Dados natildeo persistentes 68

562 Dados persistentes 69

57 Feedback 72

58 Questotildees principais 73

59 Visatildeo global 75

510 Resumo 76

6 Consideraccedilotildees Finais 77

61 Conclusotildees 78

62 Trabalho futuro 79

63 Resumo 80

Referecircncias bibliograacuteficas 81

XV

Iacutendice de Figuras

Figura 1 - Ambiente natildeo Virtualizado 1

Figura 2 - Ambiente Virtualizado 1

Figura 3 - Infra-estrutura CSM 2

Figura 4 - Arquitectura VMware ESXi (Tipo-1) 9

Figura 5 - Arquitectura XenServer 10

Figura 6 - Arquitectura Hyper-V 11

Figura 7 - Redundant Array Independent Disks (RAID) 12

Figura 8 - Storage Area Network (SAN) 13

Figura 9 - Network Attached Storage (NAS) 13

Figura 10 - Datastore e VMs 14

Figura 11 - Sistema de Ficheiros VMFS 15

Figura 12 - Network File System (NFS) 15

Figura 13 - Infra-estrutura de rede tradicional 16

Figura 14 - Infra-estrutura de rede virtual 17

Figura 15 - vNetwork Distributed Switch ndash vDS 17

Figura 16 - Distributed Virtual Filter (DVFilter) 18

Figura 17 - Relaccedilatildeo entre serviccedilos e responsabilidades 21

Figura 18 - Relaccedilotildees e papeacuteis dos envolventes nos modelos de Cloud Computing 22

Figura 19 - Contributos CloudStack 23

Figura 20 - Desenho publicaccedilatildeo e implementaccedilatildeo do cataacutelogo de serviccedilos 24

Figura 21 - Infra-estrutura HP CloudSystem Matrix 25

Figura 22 - Utilizadores de TI em cloud e respectivos papeacuteis (roles) 26

Figura 23 - Portal do Administrador 27

Figura 24 - Portal do Arquitecto 27

Figura 25 - Portal do Utilizador final 28

Figura 26 - Arquitectura n-tier 32

Figura 27 - Relaccedilatildeo dos VMIDs (WebService-MOE-vCenter) 33

Figura 28 - Estrutura em aacutervore do menu lateral esquerdo 35

Figura 29 - Portal 36

Figura 30 - Diagrama de Sequecircncia (Criaccedilatildeo de um Serviccedilo) 37

Figura 31 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull 41

Figura 32 - Execuccedilatildeo tab ldquoTemplaterdquo 45

Figura 33 - Execuccedilatildeo tab ldquoServicerdquo 48

Figura 34 - Execuccedilatildeo tab ldquoServerGroupsrdquo 51

Figura 35 - Execuccedilatildeo tab ldquoServerrdquo 56

XVI

Figura 36 - Execuccedilatildeo tab ldquoDisksrdquo 60

Figura 37 - Execuccedilatildeo tab ldquoSoftwarerdquo 61

Figura 38 - Execuccedilatildeo tab ldquoInterfacerdquo 62

Figura 39 - Listagem das redes existentes 64

Figura 40 - Execuccedilatildeo tab ldquoSnapshotrdquo 65

Figura 41 - Execuccedilatildeo tab ldquoRequestsrdquo 66

Figura 42 - Execuccedilatildeo tab ldquoServerPoolsrdquo 68

Figura 43 - Realm JAAS (Java Authentication and Authorization Service) 69

Figura 44 - Modelo ER 71

Figura 45 - Mensagens SOAP na invocaccedilatildeo de processos do MOE 75

Figura 46 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull do WEBSERVICE 76

Figura 47 - VMM ou hypervisor do Tipo-2 87

Figura 48 - VMM ou hypervisor do ldquohiacutebridordquo 88

Figura 49 - VMM ou hypervisor do Tipo-1 88

Figura 50 - Emulaccedilatildeo de Hardware 89

Figura 51 - Virtualizaccedilatildeo Completa 90

Figura 52 - Para-Virtualizaccedilatildeo 91

Figura 53 - Virtualizaccedilatildeo assistida por Hardware 91

Figura 54 - LUN num SAN iSCSI ou SAN FC 99

Figura 55 - Network File System (NFS) 100

Figura 56 - Projecto ldquoDynamic Web Projectrdquo no eclipse 102

Figura 57 - Plataforma Java 107

Figura 58 - Comando ldquojava -versionrdquo 108

Figura 59 - Instalaccedilatildeo da Plataforma Java 109

Figura 60 - Variaacutevel de sistema ldquoPathrdquo 109

Figura 61 - Variaacutevel de sistema ldquoCLASSPATHrdquo 110

Figura 62 - Variaacutevel de sistema ldquoJAVA_HOMErdquo 110

Figura 63 - Directoria de instalaccedilatildeo do Servidor Apache Tomcat 111

Figura 64 - Link localhost Apache Tomcat 112

Figura 65 - Add repository 113

Figura 66 - Dynamic Web Project 114

Figura 68 - Propriedades do Dynamic Web Project 115

Figura 69 - Webxml do Dynamic Web Project 115

Figura 70 - Directoria base do Dynamic Web Project 116

Figura 71 - Criar uma classe 117

Figura 72 - Servidor Apache Tomcat dentro do Eclipse 118

Figura 73 - Execuccedilatildeo no Browser 118

XVII

Figura 74 - Projecto base MOE 119

Figura 75 - Importaccedilatildeo do projecto real MOE 119

Figura 76 - Projecto real MOE 120

Figura 77 - Ficheiro ldquoadminUsersListtxtrdquo 121

Figura 78 - Ficheiro ldquohp-io-v5wsdlrdquo 121

Figura 79 - WSDL do HPMOE 121

Figura 80 - Ficheiro ldquologinconfigrdquo 122

Figura 81 - Ficheiro ldquologinconfigrdquo 122

Figura 82 - Ficheiro ldquovmwareAcesstxtrdquo 123

Figura 83 - Servidor Apache Tomcat dentro do Eclipse 123

Figura 84 - Compilaccedilatildeo do projecto MOE 124

Figura 85 - Login page MOE 124

Figura 86 - Data page MOE 124

Figura 87 - Detalhes gerais do Template ldquoTemplate_3srvrdquo 125

Figura 88 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo 126

Figura 89 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 126

Figura 90 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 127

Figura 91 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 127

Figura 92 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 127

Figura 93 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo 128

Figura 94 - Criaccedilatildeo do serviccedilo ldquomyServicerdquo 128

Figura 95 - Lista de pedidos do utilizador 129

Figura 96 - Eventual cancelamento de um pedido 129

Figura 97 - Serviccedilo ldquomyServicerdquo criado 130

Figura 98 - Listagem dos acessos remotos 130

Figura 99 - Acesso remoto na tab ldquoServerrdquo 131

Figura 100 - Acesso remoto por RDP 131

Figura 101 - Acesso remoto por Telnet 131

Figura 102 - Acesso remoto por VMRC 131

Figura 103 - Menu lateral esquerdo ldquoMOE Helprdquo 132

Figura 104 - Menu lateral esquerdo ldquoMOE Helprdquo 132

Figura 105 - ldquoImport xmlrdquo help 133

Figura 106 - Template info Tab 134

Figura 107 - Service info Tab 134

Figura 108 - ServerGroup info Tab 135

Figura 109 - Server info Tab 135

Figura 110 - Disk info Tab 136

XVIII

Figura 111 - Software info Tab 136

Figura 112 - Interface info Tab 137

Figura 113 - Request info Tab 137

Figura 114 - About info Tab 138

Figura 115 - Team info Tab 138

Figura 116 - Javadoc info Tab 139

Figura 117 - ldquoMapsrdquo da relaccedilatildeo Host VM 140

Figura 118 - ldquoMapsrdquo da relaccedilatildeo Host Network 141

Figura 119 - ldquoMapsrdquo da relaccedilatildeo Host Datastore 142

Figura 120 - ldquoMapsrdquo da relaccedilatildeo VM Network 143

Figura 121 - ldquoMapsrdquo da relaccedilatildeo Host Datastore 144

Figura 122 - Detalhes gerais do Template ldquoTemplate_3srvrdquo 146

Figura 123 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo 146

Figura 124 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 147

Figura 125 - Detalhes dos Custos do Servidor ldquoSvrGrp1-1rdquo 147

Figura 126 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 147

Figura 127 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 147

Figura 128 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo 148

Figura 129 - Ficheiro ldquoTemplateListxmlrdquo 148

Figura 130 - Ficheiro ldquoTemplate_3srvxmlrdquo 149

Figura 131 - Importaccedilatildeo de um Template em formato XML 149

Figura 132 - InfoWindow ldquoDelete Templaterdquo 149

Figura 133 - InfoWindow com a visualizaccedilatildeo do Template em XML 150

Figura 134 - Ficheiro ldquoTemplate_3srv_ServiceListxmlrdquo 150

Figura 135 - Criaccedilatildeo de um Serviccedilo com base no Template ldquoTemplate_3srvlrdquo 151

Figura 136 - Lista de todos os pedidos do utilizador 151

Figura 137 - Eventual cancelamento de um pedido 152

Figura 138 - Lista dos pedidos resultantes da relaccedilatildeo Templateutilizador 152

Figura 139 - Detalhes do Serviccedilo ldquomyServicerdquo do Template ldquoTemplate_3srvrdquo 153

Figura 140 - Ficheiro ldquoallServicesListxmlrdquo 153

Figura 141 - Ficheiro ldquomyServicexmlrdquo 154

Figura 142 - InfoWindow com a visualizaccedilatildeo do Serviccedilo em XML 154

Figura 143 - Remoccedilatildeo de um Serviccedilo 154

Figura 144 - Power ON de um Serviccedilo 155

Figura 145 - Power OFF de um Serviccedilo 155

Figura 146 - Power Cycle de um Serviccedilo 155

Figura 147 - Activaccedilatildeo de um Serviccedilo 155

XIX

Figura 148 - Desactivaccedilatildeo de um Serviccedilo 155

Figura 149 - Lista dos Service Actions 156

Figura 150 - Lista dos Acessos Remotos do um Serviccedilo 156

Figura 151 - Acesso remoto por RDP 156

Figura 152 - Acesso remoto por Telnet 156

Figura 153 - Acesso remoto por VMRC 157

Figura 154 - Listagem dos pedidos por Serviccedilo 157

Figura 155 - Detalhes do Grupo de Servidores ldquoSvrGrp1rdquo do Serviccedilo ldquomyServicerdquo 158

Figura 156 - Ficheiro ldquoSvrGrp1xmlrdquo 158

Figura 157 - InfoWindow com a visualizaccedilatildeo do Grupo de Servidores em XML 159

Figura 158 - Adiccedilatildeo de Servidores ao Grupo de Servidores 159

Figura 159 - Remoccedilatildeo de Servidores ao Grupo de Servidores 159

Figura 160 - Ediccedilatildeo de Servidores ao Grupo de Servidores 160

Figura 161 - Power ON de um ServerGroup 160

Figura 162 - Power OFF de um ServerGroup 160

Figura 163 - Power Cycle de um ServerGroup 160

Figura 164 - Activaccedilatildeo de um ServerGroup 161

Figura 165 - Desactivaccedilatildeo de um ServerGroup 161

Figura 166 - Listagem de todos os Snapshots existentes no Grupo de Servidores 161

Figura 167 - Acccedilotildees SnapshotServidor 161

Figura 168 - Revert Snapshot 161

Figura 169 - Delete Snapshot 162

Figura 170 - Create Snapshot 162

Figura 171 - Lista de ldquoStereotype Disksrdquo 162

Figura 172 - Adicionar um disco virtual ldquoDisk62rdquo ao Grupo de Servidores 162

Figura 173 - Adicionar um disco fiacutesico ldquoDisk788rdquo ao Grupo de Servidores 163

Figura 174 - Detalhes do Servidor ldquoSvrGrp1-1rdquo do Serviccedilo ldquomyServicerdquo 163

Figura 175 - Ficheiro ldquohostmygostr01_lsxmlrdquo 164

Figura 176 - InfoWindow com a visualizaccedilatildeo do Servidor em XML 164

Figura 177 - Remoccedilatildeo de um Servidor 165

Figura 178 - Ediccedilatildeo de um Servidor 165

Figura 179 - Power ON de um Servidor 165

Figura 180 - Power OFF de um Servidor 165

Figura 181 - Power Cycle de um Servidor 166

Figura 182 - Activaccedilatildeo de um Servidor 166

Figura 183 - Desactivaccedilatildeo de um Servidor 166

Figura 184 - Create Snapshot 166

XX

Figura 185 - Pools de Servidores 167

Figura 186 - Criar uma Pools de Servidores 167

Figura 187 - Remoccedilatildeo de uma Pools de Servidores 167

Figura 188 - InfoWindo de aviso ao administrador 167

Figura 189 - Informaccedilatildeo dos hosts fiacutesicos 168

Figura 190 - Sessotildees Remotas num Servidor 168

Figura 191 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 169

Figura 192 - Criaccedilatildeo de um ldquoStereotype Disksrdquo 169

Figura 193 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 170

Figura 194 - Lista de Software 170

Figura 195 - Detalhes do Software 171

Figura 196 - Detalhes do Interface NIC0rdquo do Servidor ldquoSvrGrp1-1rdquo 171

Figura 197 - Listagem de todas as redes 172

Figura 198 - Detalhe da rede 172

Figura 199 - Adiccedilatildeo de um IP flutuante agrave Interface ldquoNIC0rdquo 172

Figura 200 - Remoccedilatildeo de um IP flutuante pertencente agrave Interface ldquoNIC0rdquo 173

Figura 201 - Mover um IP flutuante para a Interface ldquoNIC0rdquo 173

XXI

Iacutendice de Tabelas

Tabela 1 - Funccedilotildees associadas agrave inicializaccedilatildeo do Webservice 43

Tabela 2 - Funccedilotildees associadas ao Template 47

Tabela 3 - Funccedilotildees associadas ao Serviccedilo 50

Tabela 4 - Funccedilotildees associadas ao Grupo de Servidores 54

Tabela 5 - Funccedilotildees associadas aos Servidores 58

Tabela 6 - Funccedilotildees associadas aos Discos 60

Tabela 7 - Funccedilotildees associadas ao Software 62

Tabela 8 - Funccedilotildees associadas agraves Interfaces 63

Tabela 9 - Funccedilotildees associadas agraves Redes 65

Tabela 10 - Funccedilotildees associadas aos Snapshots 65

Tabela 11 - Funccedilotildees associadas aos Requests 67

Tabela 12 - Funccedilotildees associadas agraves Pools de Servidores 68

Tabela 13 - Dados gerais VMWARE 93

Tabela 14 - Detalhes VMWARE 93

Tabela 15 - Dados gerais Citrix 94

Tabela 16 - Dados detalhados Citrix 94

Tabela 17 - Dados gerais HP 95

Tabela 18 - Dados detalhados HP 95

Tabela 19 - Dados gerais Microsoft 96

Tabela 20 - Dados detalhados Microsoft 96

XXII

Iacutendice de Anexos

Anexo A (Virtualizaccedilatildeo Vantagens e inconvenientes) 84

Anexo B (Virtualizaccedilatildeo Arquitectura) 87

Anexo C (Virtualizaccedilatildeo Tipos de Implementaccedilatildeo) 89

Anexo D (Detalhes da plataforma e restriccedilotildees da VMware) 93

Anexo E (Detalhes da plataforma e restriccedilotildees da Citrix) 94

Anexo F (Detalhes da plataforma e restriccedilotildees da HP) 95

Anexo G (Detalhes da plataforma e restriccedilotildees da Microsoft) 96

Anexo H (Ambiente de armazenamento VMware ESXi e Citrix Xen) 97

Anexo I (Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo) 102

Anexo J (Ferramentas de desenvolvimento WebService) 107

Anexo K (Criar e executar um ldquoDynamic Web Projectrdquo no Eclipse) 114

Anexo L (Importar configurar e executar o RESTWEBSERVICE - MOE) 119

Anexo M (Criaccedilatildeo de um Serviccedilo e ligaccedilatildeo agraves VMs) 125

Anexo N (MOE Help) 132

Anexo O (VMware - Virtual Machine Resources) 140

Anexo P (Scenario view) 146

1

1 Introduccedilatildeo

11 Descriccedilatildeo e contexto

A evoluccedilatildeo do poder de processamento dos computadores actuais eacute notoacuteria nestes

uacuteltimos anos Infelizmente uma grande parte desse poder natildeo eacute efectivamente usada

no quotidiano havendo por isso uma crescente preocupaccedilatildeo com os desperdiacutecios que

resultam dessa subutilizaccedilatildeo Tecnologias como a virtualizaccedilatildeo em primeiro lugar e

a Cloud Computing como estaacutegio mais avanccedilado desta satildeo formas de reduccedilatildeo de tais

desperdiacutecios

Virtualizaccedilatildeo

Observando as duas primeiras figuras rapidamente ficamos com a ideia do

que eacute real figura 1 e do que eacute virtual figura 2 Assim entenda-se o real como algo

com caracteriacutesticas fiacutesicas concretas palpaacuteveis e o virtual associado a algo simulado

abstracto uma imitaccedilatildeo do real Eacute aqui que se enquadra a virtualizaccedilatildeo o simular de

um ambiente real que suporta todo um ambiente que vai do sistema de operaccedilatildeo agraves

aplicaccedilotildees sem necessidade de acesso agrave maacutequina real que neste caso funciona como

hospedeira desta tecnologia

A virtualizaccedilatildeo encaixa-se num mundo ilusoacuterio de vaacuterias maacutequinas virtuais

(Virtual Machines - VMs) independentes e isoladas entre si cada uma com um

Sistema Operativo (SO) proacuteprio e potencialmente diferente do SO das demais

Figura 1 - Ambiente natildeo Virtualizado

Figura 2 - Ambiente Virtualizado

2

Cloud Computing

As estrateacutegias de consolidaccedilatildeo de servidores propiciadas pelo uso de

virtualizaccedilatildeo conduzem de facto agrave reduccedilatildeo de custos de hardware software e

energia mas natildeo evitam (e podem ateacute aumentar) o nuacutemero de servidores agora

virtuais a gerir acrescentando o custo humano agrave equaccedilatildeo A adopccedilatildeo do paradigma

cloud (a ver na secccedilatildeo 2) eacute o passo a dar para manter o custo total sob controlo

O HP CloudSystem Matrix (CSM) [1] faz parte de uma pilha de software HP

para computaccedilatildeo na cloud que cobre todos os niacuteveis de serviccedilo considerados

relevantes IaaS (Infra-estrutura como Serviccedilo) PaaS (Plataforma como Serviccedilo) e

SaaS (Software como Serviccedilo) Apesar de ser a base desta pilha ie oferecer o niacutevel

IaaS eacute um produto extremamente complexo pois interage com todas as infra-

estruturas as computacionais (ie servidores fiacutesicos ou virtuais) as de

armazenamento (do disco interno aos discos em servidores de armazenamento) e as

de interligaccedilatildeo (redes Ethernet e FC)

Apesar de toda a complexidade da infra-estrutura real e virtual que gere o

CSM torna conceptualmente simples a entrega aos consumidores de infra-estruturas

para suporte a aplicaccedilotildees 1) o administrador define que recursos da infra-estrutura

estatildeo disponiacuteveis para integrar a ldquooferta cloudrdquo 2) o arquitecto define templates para

as arquitecturas que considera adequadas para necessidades dos utilizadores

consumidores (eg arquitectura 3-tier para uma soluccedilatildeo ERP1) e 3) o consumidor

escolhe o template que melhor se ajusta agraves suas necessidades e efectua um pedido de

aprovisionamento de uma infra-estrutura

Figura 3 - Infra-estrutura CSM

A interacccedilatildeo entre os diferentes interlocutores (1) (2) (3) e o CSM eacute

fundamentalmente realizada sobre portais contudo especialmente no caso do

utilizador-consumidor o portal disponibilizado pelo produto tem sido considerado

1 ERP (Enterprise Resource Planning) cobre uma larga fatia das necessidades de uma empresa Permite uma

visatildeo integrada em tempo real dos seus principais processos de negoacutecios

3

como ldquocomplexordquo por apresentar informaccedilatildeo demasiado teacutecnica ldquoriacutegidordquo por natildeo

poder ser customizado (por exemplo para suprimir a ldquoinformaccedilatildeo demasiado

teacutecnicardquo) e ldquogrosseirordquo por natildeo permitir a especificaccedilatildeo mais fina das caracteriacutesticas

da infra-estrutura que se quer aprovisionar (por exemplo permite variar o nuacutemero de

CPUs e a quantidade de memoacuteria de um servidor mas natildeo permite escolher a

tecnologia dos discos que se pretendem aprovisionar eg SSD (Solid-State Drive)

em vez de FC 15K em vez de 10K RPM)

12 Objectivos

O objectivo desta tese eacute desenvolver um framework que permita com base num

conjunto (extensiacutevelconfiguraacutevel) de opccedilotildees preacute-definidas e em layouts

customizaacuteveis definir portais que se integram com o HP CloudSystem Matrix e que

permitam aos utilizadores (consumidores IaaS) uma interacccedilatildeo mais simples praacutetica e

organizada natildeo soacute na visualizaccedilatildeo de toda a informaccedilatildeo mas tambeacutem das acccedilotildees

possiacuteveis de serem executadas nos recursos disponibilizados que satildeo ampliadas face agrave

oferta disponiacutevel no portal standard do CSM

Neste trabalho foram estudados modelos de serviccedilo e de implantaccedilatildeo

(deployment) de clouds a virtualizaccedilatildeo (natildeo somente de servidores mas tambeacutem de

armazenamento e de redes) pedra base de toda a tecnologia cloud e os moacutedulos e

APIs disponiacuteveis para interoperar com o CSM nomeadamente a API-MOE e a API-

VMware para desenvolver um framework com uma arquitectura multicamada (N-tier)

sobre TCPIP e usando o protocolo REST (Representational State Transfer) para troca

de informaccedilatildeo

13 Organizaccedilatildeo

O presente trabalho encontra-se organizado em 6 secccedilotildees que vatildeo desde o estudo

preacutevio das diferentes tecnologias ateacute agraves Consideraccedilotildees finais tidas como conclusatildeo

Assim a secccedilatildeo 1 eacute a presente introduccedilatildeo onde se apresenta a virtualizaccedilatildeo

como tecnologia nuclear ao trabalho enunciam-se os objectivos a organizaccedilatildeo de

todo o relatoacuterio e as suas contribuiccedilotildees

Na secccedilatildeo 2 eacute feita uma abordagem agrave virtualizaccedilatildeo desde a sua evoluccedilatildeo

histoacuterica culminando com a visatildeo actual das quatro tecnologias mais representativas

no mercado VMware Citrix HP e Microsoft Aborda-se natildeo soacute a virtualizaccedilatildeo de

servidores mas tambeacutem a de armazenamento e de rede

Na secccedilatildeo 3 apresenta-se uma nova tecnologia computaccedilatildeo na Cloud

resultado da uniatildeo da virtualizaccedilatildeo e moacutedulos de orquestraccedilatildeo Satildeo abordados os seus

modelos de implementaccedilatildeo e os diferentes niacuteveis de serviccedilo que podem ser oferecidos

neste paradigma

Na secccedilatildeo 4 descreve-se uma nova tecnologia HP Cloud Stack como pilha de

software e hardware Satildeo abordadas tecnologias como HP CloudSystem Matrix os

4

seus modelos de interacccedilatildeo papeis e portais conceitos fundamentais para perceber o

restante relatoacuterio e as limitaccedilotildees desta uacuteltima tecnologia razatildeo de ser deste trabalho

Na secccedilatildeo 5 eacute apresentada a framework (protoacutetipo) desde a arquitectura

implementaccedilatildeo dos diferentes moacutedulos execuccedilatildeo nos cenaacuterios possiacuteveis e coacutedigo

principal e finalmente feedback dos orientadores e redefiniccedilatildeo de objectivos ou

estrateacutegias de realizaccedilatildeo e por uacuteltimo a discussatildeo da relaccedilatildeo entre os serviccedilos e

funcionalidades do HP MOE e a framework implementada

Na secccedilatildeo 6 satildeo apresentadas as conclusotildees sobre o trabalho realizado

perspectivas para desenvolvimentos futuros fazendo-se uma discussatildeo final sobre as

dificuldades encontradas na implementaccedilatildeo

14 Contribuiccedilotildees

Todo o estudo de conceitos relaccedilotildees e teorias tem sempre como objectivo uacuteltimo a

aquisiccedilatildeo de mais conhecimento e acima de tudo aplicabilidade Nesse intuito a

principal contribuiccedilatildeo deste trabalho estaacute directamente relacionada com o principal

objectivo um framework modelo de acesso raacutepido intuitivo organizado

personalizaacutevel e acima de tudo praacutetico no acesso a recursos de uma infra-estrutura

Apresentam-se de seguida todas as contribuiccedilotildees identificadas

Um modelo simples com uma curta curva de aprendizagem e uma

flexibilidade com acessos proacuteprios individuais e personalizados a cada utilizador O

acesso a toda a informaccedilatildeorecursos eacute feita numa visualizaccedilatildeo das componentes

principais em aacutervore permitindo assim uma raacutepida visualizaccedilatildeo das configuraccedilotildees de

todo o Serviccedilo criado e um acesso raacutepido e intuitivo aos detalhes de cada componente

Visualizaccedilatildeo imediata do Cataacutelogo de Serviccedilos com todos os Templates e a

correspondente associaccedilatildeo dos serviccedilos por Template A descriccedilatildeo eacute a mesma

relativamente aos recursos associados a cada Serviccedilo A informaccedilatildeo visualizada eacute

apenas a necessaacuteria em cada visualizaccedilatildeo e instanciaccedilatildeo

Modelo personalizaacutevel com acccedilotildees como ocultar ou visualizar paineacuteis de

informaccedilatildeo lista de todos os pedidos listagem por Template por Serviccedilo layout de

toda a interface do menu em aacutervore um simples clique e toda o portal fica

personalizaacutevel a um determinado utilizador

Disponibilizaccedilatildeo de todas as acccedilotildees possiacuteveis a cada recurso na tab respectiva

da visualizaccedilatildeo da informaccedilatildeo associada a esse recurso Acccedilotildees acessiacuteveis e raacutepidas

de executar sem menus e submenus com sucessivos cliques que soacute atrasam todo o

processo A acessibilidade aos recursos eacute completa com acccedilotildees de grupo e acccedilatildeo

individuais a cada recurso permitindo assim o verdadeiro aproveitamento de todo o

Serviccedilo criado

Uma informaccedilatildeo hierarquizada e organizada em agrupamentos loacutegicos por

recursos eacute um processo muito faacutecil de seguir e perceber associada a esta

5

disponibilizaccedilatildeo de informaccedilatildeo acccedilotildees que possam ser executadas nesses recursos eacute

o objectivo da simplicidade e performance deste modelo

15 Resumo

Neste capiacutetulo fez-se uma descriccedilatildeo e contexto introdutoacuterio de conceitos como

Virtualizaccedilatildeo Cloud Computing e HP CloudSystem Matrix onde se descreveram as

mais-valias do uso destas tecnologias vantagens e inconvenientes e os papeacuteisfunccedilotildees

dos principais interlocutores Descreveram-se os objectivos desta dissertaccedilatildeo um

framework que solucione e melhore os problemas existentes em modelos

implementados actualmente Foi igualmente descrita toda a organizaccedilatildeo das diferentes

secccedilotildees e por ultimo as contribuiccedilotildees tidas no presente trabalho

6

2 Virtualizaccedilatildeo

21 Evoluccedilatildeo histoacuterica

Os primeiros passos da virtualizaccedilatildeo foram dados aproximadamente haacute meio seacuteculo e

tiveram origem em preocupaccedilotildees como heterogeneidade portabilidade estabilidade e

utilizaccedilatildeo mais eficiente de recursos Tudo comeccedilou na IBM com a sua longa lista de

variantes de uma dada arquitectura-base com as novas geraccedilotildees incompatiacuteveis com as

anteriores com muacuteltiplos SOs (mono-utilizador interactivo batch timesharing etc)

criando insatisfaccedilatildeo nos clientes Como resposta IBM lanccedilou nos anos 60 a

arquitectura 360 com suporte para virtualizaccedilatildeo (ao niacutevel do hardware) e com o

sistema de operaccedilatildeo CPCMS O CP (Control Program) era usado para gerir as VMs

e que executavam o CMS (Console Monitor System) um SO interactivo com uma

interface ldquolinha de comandordquo

Por outro lado um outro tipo de virtualizaccedilatildeo dito virtualizaccedilatildeo de aplicaccedilotildees

procura que uma aplicaccedilatildeo possa ser executada numa variedade de plataformas

distintas que apenas tecircm em comum o sistema de run-time que implementa a VM (natildeo

requer que uma VM seja ldquototalmenterdquo equivalente a uma maacutequina fiacutesica e portanto

capaz de executar um SO) Tal eacute o caso da JVM (Java Virtual Machine) capaz de

executar aplicaccedilotildees desenvolvidas na linguagem Java (nascida em 1990 de um

projecto denominado ldquoStealthrdquo da Sun Microsystems)

A implementaccedilatildeo desta tecnologia tatildeo bem aceite e cada vez mais usada nas

organizaccedilotildees demonstra a mais-valia das propriedades que caracterizam o seu

funcionamento

Isolamento Os processos das diferentes maacutequinas virtuais natildeo podem

interferir entre si ou seja um processo de uma VM natildeo pode interferir

noutra VM nem sequer no proacuteprio sistema hospedeiro (host) que suporta

toda a virtualizaccedilatildeo

Inspecccedilatildeo O gestor de maacutequinas virtuais (Virtual Machine Manager -

VMM) ou hipervisor deve ter acesso e controlo sobre todas as VMs e ateacute

sobre todos os seus processos

Interposiccedilatildeo O VMM deve poder interagir com as VMs controlar as suas

operaccedilotildees ter acesso ao fluxo de instruccedilotildees maacutequina que estas executam e

remover adicionar ou alterar essas instruccedilotildees se for necessaacuterio

Eficiecircncia As instruccedilotildees natildeo privilegiadas devem poder ser executadas

directamente no hardware sem interposiccedilatildeo do VMM

Gestatildeo O VMM deve natildeo soacute permitir manipular uma VM isoladamente

mas tambeacutem executar uma operaccedilatildeo de uma soacute vez sobre muacuteltiplas VMs

Compatibilidade de software A virtualizaccedilatildeo simula uma determinada

plataforma (real) e desse modo todo o software disponiacutevel para essa

plataforma deve poder ser executado ldquotal como estaacute (original)rdquo numa VM

7

Desempenho A sobrecarga (overhead) da camada extra de software pode

sacrificar o desempenho do sistema hospedado (guest) mas a relaccedilatildeo

custobenefiacutecios do uso da virtualizaccedilatildeo deve ser francamente positiva

O Anexo A descreve mais detalhadamente as vantagens e inconvenientes da

virtualizaccedilatildeo

22 Virtualizaccedilatildeo de Servidores

O dinamismo do triacircngulo existente entre fornecedores de software hardware e seus

clientes eacute uma constante Fornecedores como a VMware e a Microsoft publicitam as

suas soluccedilotildees de virtualizaccedilatildeo destacando as mais-valias como a utilizaccedilatildeo eficiente

de recursos partilhados gestatildeo centralizada e migraccedilatildeo dinacircmica os fornecedores de

hardware publicitam menores consumos de energia e maior interoperabilidade e

suporte as organizaccedilotildees olham para este mundo com o objectivo uacuteltimo da eficiecircncia

produtividade e custos A virtualizaccedilatildeo aparece como uma forma eficaz de fazer mais

com menos investimento

A primeira razatildeo pela qual se torna muito interessante executar muacuteltiplas VMs

num uacutenico servidor eacute a mesma pela qual executamos muacuteltiplas aplicaccedilotildees num uacutenico

servidor os recursos estariam se natildeo o fizeacutessemos muito subaproveitados Sendo

assim porque natildeo executar simplesmente muacuteltiplas aplicaccedilotildees no servidor usando um

soacute SO Podemos avanccedilar desde jaacute com uma razatildeo simples os fornecedores certificam

os seus produtos aplicaccedilotildees e serviccedilos apenas para determinados ambientes e pilhas

de software vejamos alguns exemplos 1) a Microsoft natildeo certifica configuraccedilotildees

MSCS (Microsoft Cluster Server) que incluam o serviccedilo Active Domain num dos noacutes

dos cluster 2) a VMware disponibiliza o seu produto de gestatildeo vCenter Server sobre

Unix (SUSE Linux) na forma de uma appliance fornecida pela proacutepria VMware

Assim se dispusermos de um servidor que tem os recursos apropriados para suportar

um noacute MSCS e uma instacircncia vCenter teremos de os instalar sob a forma duas VMs a

correrem sob um hipervisor instalado nesse servidor Uma outra situaccedilatildeo que ldquoobrigardquo

(do ponto de vista financeiro) agrave utilizaccedilatildeo de VMs eacute a de aplicaccedilotildees legacy uma

aplicaccedilatildeo antiga (e eacute demasiado oneroso actualizaacute-la) estaacute certificada apenas para uma

dada versatildeo de SO tambeacutem antigo que natildeo possui drivers adequados para os

servidores mais actuais sendo que o servidor antigo jaacute natildeo tem capacidade para

executar a aplicaccedilatildeo (e eacute muito oneroso mantecirc-lo) Uma soluccedilatildeo simples eacute instalar um

hipervisor num servidor recente criar uma VM e nela instalar a versatildeo antiga do SO

e a aplicaccedilatildeo

A arquitectura da virtualizaccedilatildeo estaacute descrita no Anexo B e os Tipos de

Implementaccedilatildeo no Anexo C uma leitura ajuda a perceber todos estes conceitos e

tecnologias que se seguem

Actualmente o nuacutemero de tecnologias disponiacuteveis para implementaccedilatildeo e

gestatildeo de maacutequinas virtuais tem vindo a crescer destacando-se algumas pela

8

disponibilizaccedilatildeo de um conjunto de ferramentas que as tornam vencedoras nos

mercados Seguem-se quatro exemplos das empresas (e suas tecnologias) que mais se

destacam hoje em dia

VmWare Inc VmWare Player Workstation Fusion ESXi

Citrix Systems Inc XenServer

Hewlett-Packard HP Integrity Virtual Machines

Microsoft Virtual PC Hyper-V

221 VMware (VMware Inc)

O VMware apresenta-se como uma plataforma liacuteder (80) no mercado da

virtualizaccedilatildeo com uma tecnologia de virtualizaccedilatildeo do tipo 1 (virtualizaccedilatildeo completa

tambeacutem designada nativa ou bare metal) Oferece um vasto leque de produtos desde

os hipervisores para desktops e laptops (VMware PlayerWorkstationFusion) aos

para servidores de grande porte (VMware vSphere ESXi) e ainda um vasto conjunto

de software de gestatildeo de VMs orquestraccedilatildeo de operaccedilotildees Cloud IaaS etc

De todos os produtos da VMware interessa-nos destacar aqui apenas a

tecnologia de virtualizaccedilatildeo ESXi oferecida para servidores que descrevemos em

seguida muito sucintamente

VMware vSphere ESXi Eacute uma VMM ou hipervisor tipo 1 garantindo um

elevado niacutevel de isolamento entre os recursos oferecidos agraves VMs sejam

estes o processador memoacuteria discos ou adaptadores de rede Eacute instalado

directamente sobre o hardware do servidor eliminando assim a

sobrecarga de ter um SO standard sobre o qual corre um hipervisor os

hipervisores de tipo 1 exibem portanto melhor desempenho e aumentam

a seguranccedila O facto de permitir que tudo seja virtualizado torna a VM

ainda mais completa O pacote inclui apenas o hipervisor ESXi e

ferramentas baacutesicas de gestatildeo

A forma como as instruccedilotildees do sistema hospedado (guest) satildeo executadas num

ambiente ESXi pode ser descrita com ajuda da figura 4 [8] 1) as instruccedilotildees oriundas

de aplicaccedilotildees que se executam sobre o SO hospedado satildeo executadas directamente no

processador real 2) as instruccedilotildees oriundas do proacuteprio SO hospedado satildeo verificadas

antes de serem executadas sendo que as privilegiadas satildeo traduzidas ou modificadas

para comandos ou instruccedilotildees do proacuteprio hipervisor uma teacutecnica que eacute denominada

como ldquoTraduccedilatildeo Binaacuteriardquo

Esta teacutecnica complementada com outras teacutecnicas de ldquoaceleraccedilatildeordquo de

operaccedilotildees sobre IO memoacuteria e de gestatildeo de recursos entre VMs fazem com que a

VMware consiga atingir desempenhos muito proacuteximos de um ambiente nativo ie

natildeo virtualizado

9

Figura 4 - Arquitectura VMware ESXi (Tipo-1)

Na versatildeo vSphere para servidores de grande porte estatildeo disponiacuteveis muitas

funcionalidades [9] como a migraccedilatildeo automaacutetica de VMs (balanceamento de carga)

a alta disponibilidade para vCenter (suportada pelo vCenter Server Heartbeat) a

recuperaccedilatildeo de destastres (Site Recovery Manager)

Para maiores detalhes e restriccedilotildees da VMware consultar o Anexo D [1011]

222 Xen (Citrix Systems Inc)

O XenServer eacute a plataforma de virtualizaccedilatildeo da Citrix baseada no hipervisor Xen a

versatildeo base designada Standard eacute gratuita e oferece para aleacutem do hipervisor

ferramentas como o XenCenter uma consola de gestatildeo para muacuteltiplos servidores e o

XenMotion para migraccedilatildeo ldquoin vivordquo de VMs

O hipervisor Xen na sua mais recente versatildeo eacute uma tecnologia de

virtualizaccedilatildeo do tipo 1 instalada num nuacutecleo Linux (x86 x86-64 ou IA-64 SUSE

Linux) que permite a criaccedilatildeo de vaacuterias VMs com recursos e aplicaccedilotildees partilhadas

Contrariamente ao VMware natildeo usa a traduccedilatildeo binaacuteria mas uma combinaccedilatildeo de

paravirtualizaccedilatildeo [12] (eliminando a latecircncia no desempenho introduzida pela

traduccedilatildeo binaacuteria) e virtualizaccedilatildeo assistida por hardware [13] Na paravirtualizaccedilatildeo a

maacutequina abstracta eacute quase mas natildeo completamente igual ao hardware hospedeiro

por isso o SO hospedado (guest) tem de ser modificado Como tal soacute eacute possiacutevel para

SOs disponiacuteveis em coacutedigo aberto o Xen executa os outros (eg Windows)

recorrendo a uma combinaccedilatildeo da paravirtualizaccedilatildeo com a virtualizaccedilatildeo assistida por

hardware oferecida nos processadores Intel (Intel-VT) e AMD (AMD-V)

Na arquitectura XenServer figura 5 existe uma VM privilegiada para controlo

do hipervisor denominada ldquoDom0rdquo esta VM eacute parte integrante do ambiente

10

XenServer executa uma versatildeo paravirtualizada do Linux e conteacutem os drivers dos

dispositivos disponiacuteveis no sistema As outras VMs satildeo os ldquoDomUsrdquo (domiacutenios do

utilizador) Nesta arquitectura os DomUs comunicam directamente com o hipervisor

que controla a memoacuteria e o processador do hospedeiro e se usam paravirtualizaccedilatildeo

comunicam com o Dom0 para operaccedilotildees de IO

Figura 5 - Arquitectura XenServer

O Anexo E descreve os detalhes da plataforma e restriccedilotildees da Citrix [1014]

223 Integrity VM (HP)

HP Integrity Virtual Machines (Integrity VM ou HPVM) eacute uma tecnologia de

virtualizaccedilatildeo do tipo 1 instalada num servidor da linha Integrity IA-64 com o sistema

de operaccedilatildeo HP-UX 11i v3

A gestatildeo do hipervisor eacute efectuada com a ferramenta HP Integrity Virtual

Machines Manager (HPVMMGR) mas tambeacutem eacute possiacutevel gerir os proacuteprios sistemas

hospedados desde que nestes sejam instalados os agentes HPVirtualMachine e

HPVSwitch Esta ferramenta apresenta benefiacutecios como flexibilidade e maximizaccedilatildeo

dos recursos do servidor consolidaccedilatildeo de servidores organizacionais rapidez na

implementaccedilatildeo e disponibilizaccedilatildeo de novos ambientes permite a migraccedilatildeo online e

offline isolamento de VMs oferece alta disponibilidade monitoriza automaticamente

todas as aplicaccedilotildees e permite a visualizaccedilatildeo e configuraccedilatildeo simplificada com

ferramentas como HP Integrity Virtual Machines Manager (HPVMMGR) System

Management Home (HPSMH) e HP Virtualization Manager (HPVMAN)

O Anexo F descreve os detalhes e restriccedilotildees Integrity Virtual Machines da HP

[10]

11

224 Hyper-V (Microsoft)

O Hyper-V eacute uma tecnologia de virtualizaccedilatildeo do tipo 1 da Microsoft para servidores

x86-64 com suporte agrave virtualizaccedilatildeo assistida por hardware O produto eacute

disponibilizado de forma isolada (standalone) ou integrado em versotildees Windows

Server (2008 R2 ou 2012)

A gestatildeo do ambiente virtual eacute efectuada com a ferramenta System Center

Virtual Machine Manager (SCVMM) que fornece 3 formas distintas de interactuar

com o hipervisor consola de administraccedilatildeo portal self-service (para utilizadores

finais) e Windows PowerShell (usando commandlets)

Na arquitectura Hyper-V [15] figura 6 existem dois tipos de particcedilatildeo 1) a

ldquoparticcedilatildeo pairdquo uma VM de administraccedilatildeo de todo o sistema com um Windows

Server 2008 2008 R2 ou 2012 drivers de acesso e controlo do hardware e

ferramentas de gestatildeo 2) as particcedilotildees filhas nas quais satildeo criadas as restantes VMs

completamente isoladas e sem acesso directo ao hardware No acesso ao hardware haacute

3 componentes importantes a mencionar a) o VSP (Virtual Service Provider)

responsaacutevel por receber as chamadas das particcedilotildees filhas e aceder aos drivers dos

perifeacutericos b) VSC (Virtual Service Client) um moacutedulo instalado no SO hospedado

que solicita via VMBus o acesso aos perifeacutericos da particcedilatildeo pai c) o VMBus canal

de comunicaccedilatildeo entre VSC e VSP onde se desenrolam as comunicaccedilotildees entre as

particcedilotildees

Figura 6 - Arquitectura Hyper-V

A Microsoft apresenta-nos na recente versatildeo Hyper-V 2012 uma panoacuteplia de

funcionalidades que a colocam na primeira linha das soluccedilotildees de virtualizaccedilatildeo a par

da VMware migraccedilatildeo online e replicaccedilatildeo de VMs migraccedilatildeo de armazenamento e

Clustering

O Anexo D descreve os detalhes as restriccedilotildees do Hyper-V da Microsoft

[101617]

12

23 Virtualizaccedilatildeo do Armazenamento

Haacute muito que o armazenamento passou a ser um toacutepico de ldquoprimeira classerdquo tal como

ldquoa rederdquo Para tal contribuiu significativamente a introduccedilatildeo de tecnologias tais como

o RAID (Redundant Array of Independent Disks) [18] que promoveram o

desempenho eou a toleracircncia a faltas a (comparativamente) baixo custo ndash note-se que

no artigo original de Patterson o I significava Inexpensive Com a introduccedilatildeo do

RAID rapidamente apareceram os armaacuterios de discos (disk arrays) externos ao

ldquosistemardquo e uma vez que o protocolo SCSI suportava a interligaccedilatildeo de discos

(Logical Units) a muacuteltiplos adaptadores e daiacute a muacuteltiplos sistemas o conceito de

rede de armazenamento aparece naturalmente

Como se mostra na figura 7 o disco loacutegico aparece como uma forma

elementar de virtualizaccedilatildeo jaacute que ldquoaglutinardquo elementos de diferentes discos fiacutesicos

mas eacute apresentado ao sistema como um uacutenico disco ndash ao ponto de ser impossiacutevel ao

proacuteprio sistema de operaccedilatildeo distingui-lo de um disco fiacutesico

Figura 7 - Redundant Array Independent Disks (RAID)

Numa rede de armazenamento que interliga vaacuterios armaacuterios de discos e

servidores (hosts) os primeiros oferecem volumes (ou discos loacutegicos) acessiacuteveis por

identificadores uacutenicos e os segundos tomam posse desses volumes (tipicamente cada

host tem uso exclusivo de um ou mais volumes) e formatam-nos neles instalando

sistemas de ficheiros (eg ext3 XFS NTFS) que depois usam da forma mais

conveniente Este conceito de rede de armazenamento eacute conhecido como SAN ndash

Storage Area Network figura 8

A forma mais comum de SAN usa uma infra-estrutura Fibre Channel (FC) o

que significa que tanto hosts como disk arrays possuem interfaces FC e na rede

existem comutadores (switches) FC aos quais hosts e arrays (e eventualmente outros

switches) se interligam Uma outra tecnologia que pode ser usada em SANs eacute a

Ethernet neste caso hosts disk arrays e switches tecircm interfaces Ethernet e o

protocolo de transporte usado eacute FCoE (Fibre Channel over Ethernet) A figura

seguinte mostra-se um ambiente que inclui simultaneamente uma outra tecnologia de

ldquotransporterdquo ISCSI e uma ldquozonardquo FC

13

Figura 8 - Storage Area Network (SAN)

Se bem que a relaccedilatildeo volumehost de um-para-um seja de longe a mais

frequente tambeacutem eacute possiacutevel estabelecer uma relaccedilatildeo de um-para-muitos na qual um

volume eacute detido de forma partilhada por muacuteltiplos hosts tal situaccedilatildeo implica

necessariamente o uso de sistemas de ficheiros (SF) especializados conhecidos como

shared-disk file systems Como exemplo indica-se o GFS [19] GPFS [20] e VMFS

[21] este uacuteltimo desenvolvido especificamente para armazenar VMs Num SF para

discos partilhados todos os hosts que partilham um dado volume tecircm uma visatildeo

coerente do estado do volume Em situaccedilotildees de toleracircncia a faltas esta arquitectura de

discos partilhados eacute muito apeteciacutevel pois em caso de falha de um host um dos

restantes inicia uma recuperaccedilatildeo (ao estilo de um sistema transaccional) das uacuteltimas

operaccedilotildees e rapidamente o SF regressa a um estado coerente

Figura 9 - Network Attached Storage (NAS)

Uma outra forma completamente distinta de armazenar informaccedilatildeo eacute usar um

SF distribuiacutedo neste caso natildeo haacute partilha de discos fiacutesicos mas sim de ficheiros

sendo que um host pode deter apenas parte da aacutervore do SF (eg AFS) ou nos SFs

distribuiacutedos com arquitectura clienteservidor um host dito cliente dispotildee de um

14

moacutedulo que lhe permite aceder ao SF remoto de um outro host dito servidor (eg

NFS e CIFS) como se o SF remoto fosse local

231 Armazenamento em ambientes virtualizados

Quando se aborda o armazenamento em ambientes virtualizados satildeo de considerar os

seguintes aspectos a) como representar a arquitectura de uma VM propriamente dita

(quanta memoacuteria e CPUs tem qual o chipset utilizado que adaptadores ndash de LAN

SAN graacuteficos ndash possui etc) b) como representar um disco acessiacutevel agrave VM e c)

como armazenar conteuacutedos (volaacuteteis ou natildeo) de componentes da VM tais como a

memoacuteria RAM e a memoacuteria natildeo volaacutetil NVRAM que conteacutem o BIOS

A soluccedilatildeo adoptada pelo hipervisor VMware ESXi2 eacute a seguinte a) a

representaccedilatildeo da arquitectura eacute efectuada em XML que possui as informaccedilotildees de

configuraccedilatildeo b) um disco acessiacutevel agrave VM eacute representado ou por um ficheiro que

virtualiza o proacuteprio disco ou por um ficheiro que ao estilo de uma ligaccedilatildeo simboacutelica

descreve o caminho para um disco real e finalmente c) tais conteuacutedos satildeo

armazenados em ficheiros Isto eacute tudo eacute representado por ou via ficheiros

A pergunta que se segue eacute oacutebvia onde armazenar esses ficheiros E a

resposta evidente num repositoacuterio (datastore na terminologia da VMware) gerido

pelo hipervisor onde uma VM aparece como um pasta e os seus componentes como

ficheiros no interior dessa pasta como se mostra na figura 10

Figura 10 - Datastore e VMs

O VMware ESXi suporta armazenamento em sistema de ficheiros VMFS

(sobre discos) ou NFS no caso do VMFS os discos podem ser internos ao servidor

ou podem estar numa SAN

Sistema de Ficheiros VMFS

O VMFS (Virtual Machine File System) eacute um sistema de ficheiros em cluster

e foi optimizado para armazenar grandes ficheiros e realizar operaccedilotildees de entrada e

2 Para uma comparaccedilatildeo entre o VMware ESXi e o Citrix Xen ver Anexo H

15

saiacuteda (IO) com que movimentam grandes volumes de dados Os dois servidores

figura 11 tecircm portanto uma visatildeo coerente do datastore e das VMs nele existentes

por isso eacute quando comparamos esta arquitectura com uma na qual cada servidor tem

a sua datastore muito mais simples e eficiente mover uma VM activa de um servidor

para o outro jaacute que apenas as paacuteginas modificadas residentes em memoacuteria tecircm de ser

copiadas (o resto estaacute no SF partilhado)

Figura 11 - Sistema de Ficheiros VMFS

Network File System

Nos casos em que os datastores residem num sistema de ficheiros NFS [22] os

servidores ESXi podem tambeacutem partilhar o mesmo datastore como se vecirc na figura

12 assim a movimentaccedilatildeo de VMs entre servidores por razotildees de equiliacutebrio de

cargas ou de manutenccedilatildeo de um ou outro servidor tambeacutem satildeo muito eficientes

Figura 12 - Network File System (NFS)

Para concluir note-se que se abrem nos ambientes virtualizados duas

oportunidades muito importantes quando um disco virtual eacute realizado sob a forma de

ficheiro a) a potencial poupanccedila de espaccedilo e b) a possibilidade de implementar com

facilidade uma teacutecnica de snapshots No primeiro caso conhecido como thin

provisioning referimo-nos agrave possibilidade de usar um ficheiro esparso para atribuir

um espaccedilo loacutegico de endereccedilamento ao disco (ficheiro) muito superior ao espaccedilo de

16

facto ldquoconsumidordquo pelo ficheiro no SF No segundo usando um mecanismo de

versotildees baseado em teacutecnicas de copy-on-write armazenar snapshots da VM em

determinados instantes e para usar como mecanismo de recuperaccedilatildeo do estado em

caso de ldquofalhardquo

24 Virtualizaccedilatildeo da Rede

A virtualizaccedilatildeo eacute algo mais que consolidaccedilatildeo de servidores - CPU memoacuteria e

armazenamento depois de analisada toda a infra-estrutura de suporte a uma

implementaccedilatildeo desta natureza torna-se evidente a ideia simplista desse triacircngulo A

infra-estrutura de rede virtual funciona como ligaccedilatildeo de componentes nessa

plataforma ligaccedilotildees virtuais atraveacutes dos controladores de rede virtual (Virtual

Network Interface Card - vNIC3) ligaccedilotildees fiacutesicas com os adaptadores fiacutesicos

(Physical Network Interface Card - pNIC) comutadores virtuais (vSwitch) para essas

ligaccedilotildees etc uma vasta lista de software e hardware responsaacuteveis pela comunicaccedilatildeo

de todos os componentes dos pares VMVM VMservidor e servidorservidor [23]

Numa infra-estrutura de rede tradicional figura 13 cada servidor tem uma ou

mais placas de rede (NIC) para comunicaccedilatildeo com os restantes

Figura 13 - Infra-estrutura de rede tradicional

Como sabemos um hipervisor eacute responsaacutevel pela abstracccedilatildeo do hardware

oferecido agraves VMs e na visatildeo de uma VM este hardware (virtual) de que dispotildee eacute

seu e eacute completo desconhecendo que esse hardware possa estar a ser partilhado com

outras VMs ou que eventualmente nem exista A interface virtual de rede (vNIC)

figura 14 natildeo possui qualquer componente fiacutesico eacute apenas software contudo ela

exibe as mesmas propriedades de uma placa fiacutesica incluindo um endereccedilo MAC

(IEEE 802-2001 Standard) Uma vNIC eacute ligada a uma outra abstracccedilatildeo o vSwitch

sendo que este pode comutar traacutefego que flui apenas no interior do servidor que

alberga as VMs ou estar associado a uma (ou mais para redundacircncia eou aumento

da largura de banda) placa de rede fiacutesica (pNIC)

3 Mais uma vez seguimos aqui a terminologia da VMware por simplicidade

17

Figura 14 - Infra-estrutura de rede virtual

Nesta infra-estrutura natildeo existe o limite associado agrave velocidade da placa de

rede mas sim associado agrave largura de banda (LB) da memoacuteria facilmente se

depreende tambeacutem que toda a rede entre VMs hospedadas num servidor natildeo

contribui para o congestionamento da rede fiacutesica (entre servidores) Contudo o

administrador pode impor quotas na utilizaccedilatildeo de recursos por exemplo na LB da

vNIC

Os vSwitch tecircm todas as funcionalidades de um switch real suportam

agregaccedilatildeo de traacutefego (IEEE 802ad) VLANs (IEEE 8021Q) etc Nesse sentido a

virtualizaccedilatildeo comeccedila a ir contra-corrente no que deveria ser o simplificar a

administraccedilatildeo de uma infra-estrutura pois o administrador de redes tem agora de

administrar os switches reais e ainda os virtuais

Figura 15 - vNetwork Distributed Switch ndash vDS

Para resolver este problema a VMware propotildee (figura 15) um switch virtual

distribuiacutedo (vNetwork Distributed Switch ndash vDS) [23] que representa a agregaccedilatildeo de

vaacuterios switchs virtuais de diferentes servidores ocultando as camadas inferiores e

oferecendo um suporte de rede uniforme que simplifica entre outras a administraccedilatildeo

da rede as migraccedilotildees de VMs e o desempenho ndash por exemplo ao associar um vDS a

18

muacuteltiplas pNICs o hipervisor pode de forma automaacutetica alterar a loacutegica de

encaminhamento de pacotes para redistribuir o traacutefego entre as pNICs aumentado o

desempenho e minimizando as falhas

Na infra-estrutura de rede virtualizada os aspectos relativos agrave seguranccedila dessa

rede satildeo tambeacutem contemplados sendo apresentadas soluccedilotildees de inspecccedilatildeo de fluxos

de pacotes como eacute o caso dos Distributed Virtual Filter (DVFilter) [23] apresentado

na figura 16

Figura 16 - Distributed Virtual Filter (DVFilter)

25 Resumo

Neste capiacutetulo fez-se uma breve descriccedilatildeo histoacuterica para enquadramento do restante

capiacutetulo A virtualizaccedilatildeo de servidores aparece como nuacutecleo central nas suas quatro

plataformas de virtualizaccedilatildeo que considerei mais importantes ESXi (VMware Inc)

XenServer (Citrix Systems Inc) HP Integrity Virtual Machines (Hewlett-Packard) e

o Hyper-V (Microsoft) Foram tambeacutem abordadas tecnologias na aacuterea da virtualizaccedilatildeo

de armazenamento em conceitos como RAID SAN NAS e nos ambientes

virtualizados VMFS e NFS Tambeacutem a virtualizaccedilatildeo de rede natildeo foi descurada e

nesse intuito foram abordados conceitos como vNIC pNIC VLANs vNetwork

Distributed Switch e Distributed Virtual Filter

19

3 Computaccedilatildeo na Cloud

Como anteriormente referimos o uso crescente de Tecnologias de Informaccedilatildeo (TI) nas

organizaccedilotildees leva geralmente a uma proliferaccedilatildeo de servidores fiacutesicos o que as obriga

mais cedo ou mais tarde a adoptar estrateacutegias de consolidaccedilatildeo de servidores com a

consequente reduccedilatildeo de custos de hardware e energia Resolvidas estas questotildees restam

contudo outras - o uso de virtualizaccedilatildeo natildeo reduz por si soacute o esforccedilo de administraccedilatildeo

das infra-estruturas nem resolve problemas de disponibilidade desempenho seguranccedila

etc que satildeo questotildees que nem todas as organizaccedilotildees querem ou estatildeo aptas a resolver

preferindo por vezes que ldquoalgueacutemrdquo assuma esta responsabilidade

A Computaccedilatildeo na Cloud (CC) apresenta-se assim como uma sequecircncia de passos

nesse sentido cada um correspondendo a um modelo de serviccedilo (ver em 32) e resolvendo

mais uma ldquofatiardquo dos problemas enunciados A CC eacute actualmente associada a palavras

chave como padronizaccedilatildeo automatizaccedilatildeo velocidade disponibilidade elasticidade

acesso global e agrave ideia de usar um conjunto de recursos partilhados As organizaccedilotildees

podem entatildeo preocupar-se essencialmente com as melhorias operacionais e para isso

procuram soluccedilotildees que possibilitem uma afectaccedilatildeo (e posteriormente libertaccedilatildeo) de

recursos de forma raacutepida e automaacutetica

ldquoCloud computing is a model for enabling ubiquitous convenient on-demand network access

to a shared pool of configurable computing resources (eg networks servers storage

applications and services) that can be rapidly provisioned and released with minimal

management effort or service provider interactionrdquo

The NIST Definition of Cloud Computing [Online] Available

httpwwwnistgovitlcsdcloud-102511cfm

31 Periacutemetro de uma cloud

Designamos por periacutemetro (ou modelo de implantaccedilatildeo) de uma cloud a forma como

caracterizamos o conjunto dos utilizadores com acesso aos serviccedilos dessa cloud

Nesta secccedilatildeo apresentamos apenas os trecircs tipos mais comuns deixando de fora outros

como as clouds partilhadas e federadas

Clouds Privadas

Ambientes construiacutedos exclusivamente para os utilizadores de uma uacutenica

organizaccedilatildeo Nesta tipologia os recursos (infra-estrutura e aplicaccedilotildees) satildeo totalmente

detidos pela organizaccedilatildeo podendo ser administrados pela proacutepria organizaccedilatildeo por

terceiros ou ainda pela combinaccedilatildeo das duas entidades A infra-estrutura estaacute

normalmente instalada num data center privado e as maiores preocupaccedilotildees satildeo

geralmente a garantia de disponibilidade e o desempenho dos serviccedilos e aplicaccedilotildees

20

Clouds Puacuteblicas

Ambientes construiacutedos para oferecer serviccedilos quer a utilizadores individuais

quer a organizaccedilotildees Nesta tipologia a infra-estrutura eacute geralmente detida pela

organizaccedilatildeo que comercializa os referidos serviccedilos que satildeo tipicamente cobrados na

forma ldquopay-per-userdquo As maiores preocupaccedilotildees da entidade gestora satildeo garantir a

privacidade e a seguranccedila (note-se que os ldquoutilizadoresrdquo podem de facto ser

administradores dos servidores que detecircm e podem instalar software) o isolamento

entre recursos detidos por utilizadores distintos e ainda assim garantir bom

desempenho dos serviccedilos e aplicaccedilotildees

Clouds Hiacutebridas

As clouds hiacutebridas representam a junccedilatildeo de dois modelos de cloud privada e

puacuteblica Este modelo eacute normalmente implantado em organizaccedilotildees que tecircm picos de

trabalho que por uma ou outra razatildeo natildeo podem suportar na sua cloud privada e

nessas alturas a ldquoelasticidaderdquo eacute usada para aprovisionar recursos de uma cloud

puacuteblica

32 Modelos de serviccedilo

Existem trecircs modelos base de serviccedilos de Cloud Computing que podem ser oferecidos

agraves organizaccedilotildees e que se diferenciam pelas configuraccedilotildees e responsabilidades do

provedor de serviccedilos figura 17

IaaS (Infrastructure as a Service)

No modelo ldquoinfra-estrutura como serviccedilordquo o provedor oferece ao consumidor

uma infra-estrutura de processamento e armazenamento com a configuraccedilatildeo que se

adequa agraves suas necessidades o cliente natildeo tem assim necessidade de adquirir

servidores racks software e ateacute mesmo espaccedilo fiacutesico Satildeo exemplos de provedores

puacuteblicos IaaS a Amazon EC2 [2] e o GoGrid [3] jaacute o Eucalyptus [4] o vCloud (da

VMware) e o HP CloudSystem Matrix satildeo exemplo de produtos software para a

criaccedilatildeo de clouds privadas

PaaS (Platform as a Service)

No modelo ldquoplataforma como serviccedilordquo o provedor disponibiliza plataformas

computacionais completas (incluindo naturalmente a infra-estrutura computacional)

para os utilizadoresconsumidores dessas plataformas integrarem as suas aplicaccedilotildees

(existentes ou a desenvolver) sendo que estas seratildeo posteriormente disponibilizadas

na cloud Como exemplo indicam-se as plataformas LAMP (Linux Apache MySQL

PHP) Google AppEngine [5] e Microsoft Azure [6]

21

SaaS (Software as a Service)

Neste modelo o provedor disponibiliza ao cliente final uma aplicaccedilatildeo pronta-

a-usar como exemplos mencionam-se as Google Apps [7] Google Docs e Microsoft

SharePoint Online Este eacute o paradigma cloud por excelecircncia utilidade facilidade

(interacccedilatildeo via browser) disponibilidade e por vezes ateacute alguma capacidade de

personalizaccedilatildeo

Figura 17 - Relaccedilatildeo entre serviccedilos e responsabilidades

Associados agrave CC vaacuterios modelos ldquoAs a Servicerdquo tecircm surgido para responder

agraves necessidades das organizaccedilotildees contudo todos acabam por ser enquadrados nos

trecircs tipos base (Infra-estrutura Plataforma e Software) de acordo com os serviccedilos que

disponibilizam

ldquoDatabase As A Service (DBaaS or DaaS) Network As A Service (NaaS) DataCenter As A

Service (DCaaS) Storage As A Service (StoraaS) Everything As A Service (EaaS) Data As

A Service (DaaS) Security As A Service (SecaaS) Computing As A Service (CaaS) Desktop

As A Service (VDI) Voice As A Service (VaaS) Communication As A Service (ComaaS)

Testing As A Service (TaaS) Backup As A Service (BaaS) Monitoring As A Service

(MaaS) Recovery As A Service (RaaS) Content Delivery Network As a Service (CDNaaS)

Application As A Service (AaaS) Business Intelligence As A Service (BIaaS) etcrdquo

Cloud9IDE [Online] Available httpsc9io

As relaccedilotildees entre os modelos IaaS PaaS e SaaS satildeo hieraacuterquicas como se

pode observar na figura 18 que ainda ilustra os papeacuteis do provedor de serviccedilos

equipas de desenvolvimento e utilizadores finais Como se observa o IaaS fornece

recursos de hardware e software ao PaaS e SaaS o PaaS oferece ferramentas para

desenvolvimento ao SaaS e por fim o SaaS executa e disponibiliza aplicaccedilotildees aos

utilizadores finais

22

Figura 18 - Relaccedilotildees e papeacuteis dos envolventes nos modelos de Cloud Computing

33 Resumo

O presente capiacutetulo descreve a tecnologia de Computaccedilatildeo na Cloud (Cloud

Computing) vantagens do seu uso e conceitos tais como periacutemetro (onde se

enquadram designaccedilotildees como Clouds Privadas e Puacuteblicas passando pelas Hiacutebridas) e

modelos de Serviccedilo IaaS PaaS e SaaS sendo o IaaS o foco desta dissertaccedilatildeo

A virtualizaccedilatildeo apresenta-se como a tecnologia chave de todo este processo

ela desempenha e continuaraacute a desempenhar um papel indispensaacutevel para que os

prestadores de serviccedilo continuem a oferecer ambientes de CC que permitem um

dimensionamento correcto e economicamente ajustado das infra-estruturas de TI

oferecendo ainda funcionalidades como gestatildeo centralizada disponibilidade e

seguranccedila

23

4 HP Cloud Stack

O OpenStack eacute presentemente um consoacutercio que inclui entidades como a ATampT HP

IBM Rackspace Red Hat Suse etc fortemente empenhadas na computaccedilatildeo na cloud e

que tecircm por objectivo colocar no mercado uma implementaccedilatildeo ubiacutequa para clouds tanto

puacuteblicas como privadas e uma pilha de software em coacutedigo aberto que suporta

heterogeneidade (por exemplo nos hipervisores) e uma enorme riqueza em recursos (de

computaccedilatildeo armazenamento e interligaccedilatildeo)

O OpenStack promove uma arquitectura comum ou seja um framework que eacute

extensiacutevel e permite que terceiros (incluindo os parceiros do consoacutercio) ampliem as suas

funcionalidades quer por via de desenvolvimentos adicionais quer por integraccedilatildeo de

produtos jaacute existentes embora a pilha-base jaacute permita por meio de portais quer a

administraccedilatildeo das pools de computaccedilatildeo armazenamento e rede quer o provisionamento

de recursos

As plataformas Cloud em Open Source tornam-se atraentes pelo seu baixo custo

inicial de implementaccedilatildeo e pela perspectiva da portabilidade

41 HP CloudSystem Matrix

A HP CloudSystem Matrix eacute uma soluccedilatildeo proprietaacuteria que assenta na plataforma

OpenStack para lhe acrescentar moacutedulos de seguranccedila gestatildeo e automaccedilatildeo

abrangente a toda a infra-estrutura como mostra a figura 19 Eacute uma soluccedilatildeo IaaS

tanto para clouds privadas como para hiacutebridas

Figura 19 - Contributos CloudStack

Norteado por uma visatildeo de ldquosimplificaccedilatildeo como chaverdquo o HP Cloud System

Matrix permite entregar soluccedilotildees preacute-definidas num cataacutelogo de serviccedilos de TI a

consumidores da infra-estrutura (utilizadores) que as requisitaram a partir de um

portal self-service

24

Figura 20 - Desenho publicaccedilatildeo e implementaccedilatildeo do cataacutelogo de serviccedilos

A soluccedilatildeo HP CloudSystem Matrix oferece

Um ambiente de trabalho (Matrix Operating Environment - MOE)

altamente automatizado que automaticamente se ajusta a todo o

dinamismo de negoacutecio permitindo um raacutepido desenho provisionamento e

modificaccedilatildeo de toda a infra-estrutura e uma optimizaccedilatildeo dos ambientes

fiacutesicos e virtuais a fornecer como serviccedilo

Uma pilha de tecnologias de gestatildeo figura 21 HP Console Management

System (CMS) que inclui ferramentas como HP Universal Discovery

(UD) para detectar automaticamente todos os objectos do ambiente HP

SiteScope [25] (opcional) que monitoriza a disponibilidade e desempenho

de toda a infra-estrutura - aplicaccedilotildees servidores SO serviccedilos de rede

armazenamento [24] e software de virtualizaccedilatildeo - evitando e resolvendo

alguns problemas de desempenho (estrangulamentos por escassez de

recursos)

Uma infra-estrutura convergente (HP Converged Infrastructure) apoiada

em soluccedilotildees como o HP Insight Control (IC) para gestatildeo da infra-

estrutura e o HP Insight Dynamics (ID) uma consola de Data Center para

uma gestatildeo centralizada de agregados (pools) de recursos e de pacotes

preacute-configurados de hardware e software Eacute aqui que se criam as pools de

recursos para posterior fornecimento ao MOE

O MOE assenta nesta pilha como o uacuteltimo niacutevel de software um ambiente de

trabalho altamente automatizado permitindo que seja possiacutevel a reduccedilatildeo draacutestica de

custos tempo e esforccedilo na implementaccedilatildeo de toda a estrutura necessaacuteria assim como

das aplicaccedilotildees mercecirc do seu moacutedulo de orquestraccedilatildeo da infra-estrutura (Infrastructure

Orchestration - IO) e opcionalmente do moacutedulo de automaccedilatildeo de servidores (Server

Automation - SA) Em suma trata-se de um ambiente optimizado para gestatildeo e

aprovisionamento de infra-estruturas hiacutebridas incluindo servidores fiacutesicos (Integrity e

x86) e virtuais rede e armazenamento [23] O CloudSystem Matrix estaacute igualmente

integrado com tecnologias de virtualizaccedilatildeo como o ESXi da VMware e o Hiper-V da

Microsoft

25

Figura 21 - Infra-estrutura HP CloudSystem Matrix

42 Modelos de interacccedilatildeo com o HP CSM

Definidos os modelos de implementaccedilatildeo e serviccedilo resta definir as formas de

comunicaccedilatildeo os modos de interacccedilatildeo entre as infra-estruturas aplicaccedilotildees e processos

O modelo eacute transparente para o utilizador final sendo disponibilizadas trecircs opccedilotildees

Web Service API

Este eacute o meacutetodo preferido para controlar os processos dentro da TI Um Web

Service (WS) eacute de acordo com o W3C4 ldquoa software system designed to support

interoperable machine-to-machine interaction over a network It has an interface

described in a machine-processable format (specifically WSDL) Other systems

interact with the Web service in a manner prescribed by its description using SOAP

messages typically conveyed using HTTP with an XML serialization in conjunction

with other Web-related standardsrdquo A HP CloudSystem Matrix oferece uma API

baseada no protocolo SOAP (Simple Object Access Protocol) para troca de

informaccedilatildeo estruturada numa plataforma descentralizada e distribuiacuteda Eacute um

protocolo baseado numa linguagem de marcaccedilatildeo extensiacutevel (Extensible Markup

Language ndash XML) para o formato das mensagens enviadas e recebidas e no protocolo

de transferecircncia de hipertexto (HyperText Transfer Protocol ndash HTTP) para negociaccedilatildeo

e transmissatildeo de mensagens Como protocolo de transporte usa igualmente HTTP

garantindo assim uma certa ldquofacilidaderdquo para funcionar em ambientes protegidos por

firewalls

4 httpwwww3orgTRws-archwhatis

26

Command line interface (CLI)

Uma interface de linha de comando que inclui natildeo soacute todas as opccedilotildees

disponiacuteveis na API WebService como outras natildeo disponiacuteveis nas outras APIs

Northbound API (nbAPI)

Uma interface de controlo remoto atraveacutes de um URL (Uniform Resource

Locator) endereccedilo de um determinado recurso disponiacutevel numa rede o acesso pode

ser efectuado por HTTP FTP etc (ex protocolomaacutequinacaminhorecurso)

43 Papeacuteis e Portais de interacccedilatildeo

Os provedores de serviccedilo cloud satildeo responsaacuteveis por fornecer toda a infra-estrutura do

serviccedilo contratado Nestas arquitecturas existem normalmente trecircs tipos de (papeacuteis de)

utilizadores da cloud que se associam aos respectivos portais figura 22

Administrador Arquitecto e Utilizador final (ou consumidor de serviccedilos cloud)

Figura 22 - Utilizadores de TI em cloud e respectivos papeacuteis (roles)

Administrador Cloud

O administrador usando as ferramentas de ao seu dispor cria monitoriza e

manteacutem a pool de recursos (de computaccedilatildeo memoacuteria armazenamento e rede) a

disponibilizar na cloud Normalmente este papel tambeacutem envolve a implementaccedilatildeo

de acordos de niacutevel de serviccedilo (Service Level Agreement - SLA) onde satildeo definidas

as poliacuteticas entre o fornecedor de serviccedilos cloud e os seus ldquoclientesrdquo O portal

associado a este utilizador eacute o portal do Administrador figura 23

27

Figura 23 - Portal do Administrador

Arquitecto Cloud

O arquitecto eacute um utilizador teacutecnico responsaacutevel por projectardesenhar

montar e tornar disponiacuteveis (publicar) serviccedilos que a proacutepria infra-estrutura pode

disponibilizar para os utilizadores mediante poliacuteticas e necessidades dos objectivos

estrateacutegicos de uma organizaccedilatildeo Esses serviccedilos podem ser personalizaacuteveis e

especiacuteficos para um determinado utilizador grupo de utilizadores ou para uso geral O

arquitecto pode ainda criar fluxos de trabalho (workflows) que passo a passo ajudam

na interacccedilatildeo utilizador-ambiente oferecendo serviccedilos como personalizaccedilatildeo gestatildeo

simplificaccedilatildeo de processos e a proacutepria integraccedilatildeo de TIs O portal associado a este

tipo de utilizador eacute o Designer Portal onde o arquitecto desenha a infra-estrutura e os

modelos de serviccedilo (templates de que adiante falaremos) a incluir no cataacutelogo

Figura 24 - Portal do Arquitecto

28

Consumidor IaaS

O portal associado a este tipo de utilizador eacute o Self-service Portal (ou user

portal) onde o utilizador poderaacute seleccionar visualizar e instanciar os modelos de

serviccedilo preacute-definidos pelo Arquitecto O utilizador depois de escolher de entre os que

existem no cataacutelogo de serviccedilos o ldquomodelo de infra-estruturardquo que mais se adequa agraves

suas necessidades solicita a sua instanciaccedilatildeo para obter os recursos de computaccedilatildeo

memoacuteria armazenamento e rede Este portal permite ainda ao utilizador efectuar a

gestatildeo dos serviccedilos solicitados

Figura 25 - Portal do Utilizador final

44 Conceitos fundamentais da plataforma HP CSM

Apresentamos agora um leque de conceitos fundamentais para compreender o HP

CSM e o trabalho que realizaacutemos Nalguns casos poderemos apresentar exemplos

concretos para melhor ilustrar esses conceitos

Template

Num template o Arquitecto da infra-estrutura captura uma configuraccedilatildeo tiacutepica

em TI especificando os seus componentes-base (hardware e software) e desenha as

suas inter-relaccedilotildees que servidores existem quais as suas caracteriacutesticas (CPUs

memoacuteria discos interfaces) como se interligam os servidores entre si (as conexotildees

de rede) e se for o caso como um ou mais desses servidores se ligam ao ldquoexteriorrdquo do

Centro de Dados Do template tambeacutem faz parte o software haveraacute servidores com

Linux outros com Windows Server uns podem ter Apache e outros SQL Server para

dar alguns exemplos Os templates apoacutes publicaccedilatildeo passam a fazer parte de um

cataacutelogo de serviccedilos para uso dos consumidores de serviccedilos dessa infra-estrutura de

cloud

29

Como exemplo vejamos a seguinte situaccedilatildeo em TI a pilha LAMP (Linux

Apache MySQL PHP) eacute um padratildeo comum e bastante usado assim o arquitecto

poderaacute criar dois templates LAMP-base com um uacutenico servidor e toda a pilha nele

instalada e LAMP-elaacutestico em que haacute uma farm de servidores Apache-PHP que se

ligam a um ldquofailover clusterrdquo de dois servidores MySQL

Server Group

Um ldquoGrupo de Servidoresrdquo eacute constituiacutedo por um ou mais servidores com as

mesmas caracteriacutesticas e configuraccedilotildees software discos interfaces etc O arquitecto

usa os Grupos de Servidores para organizar os servidores em torno da funccedilatildeo que

estes desempenham eou das suas caracteriacutesticas

Por exemplo o arquitecto definiria no template LAMP-base um uacutenico grupo

de servidor(es) mas jaacute no caso do template LAMP-elaacutestico definiria o grupo APfarm

(que incluiria um proto-servidor com determinadas caracteriacutesticas ndash 2 interfaces LAN

Linux Apache e PHP) e o grupo MySQLfo (com um proto-servidor tambeacutem com 2

interfaces LAN mas com Linux Linux-HA e MySQL) Soacute que o grupo APfarm

permitiria um miacutenimo de 1 e um maacuteximo de digamos 4 servidores enquanto o grupo

MySQLfo seria instanciado sempre com 2 servidores

Server

Eacute obviamente um servidor (virtual quase sempre embora o HP CSM permita

ldquoinstanciarrdquo ndash leia-se instalar o software e configurar ndash servidores fiacutesicos) com

atributos (muitos deles especificaacuteveis por um intervalo de valores entre um miacutenimo o

default e um maacuteximo) como memoacuteria (RAM) nuacutemero de processadores e

correspondente velocidade de reloacutegio discos lista de software associado interfaces

de rede (LAN eou SAN) etc

Software

O termo ldquoSoftwarerdquo refere-se a um produto software instalaacutevel no servidor

(pode ser o SO um SGBD um qualquer middleware ou ateacute uma aplicaccedilatildeo) Haacute duas

formas de efectuar essa instalaccedilatildeo automaticamente no acto de instanciaccedilatildeo do

servidor usando um pacote opcional o HP Server Automation (SA) ou manualmente

(a usada neste trabalho por natildeo dispormos do HP SA) ndash e neste caso temos de criar

uma VM instalar o software e depois transformar a VM numa VM-template (o que

se faz directamente no software de virtualizaccedilatildeo eg VMware vCenter Server)

Disk

Eacute um disco virtual ou fiacutesico que pode ser acedido pelo(s) servidor(es) pode

ser bootable shareable (partilhaacutevel entre servidores) suportado numa tecnologia

magneacutetica ou SSD acessiacutevel por ligaccedilatildeo FC ou iSCSI etc

Interface

Uma ldquointerfacerdquo eacute um ponto de contacto entre o servidor e as redes (que lhe

satildeo) externas de um ponto de vista pragmaacutetico deixando de lado infra-estruturas

30

pouco comuns em centros de dados de TI (por contraposiccedilatildeo aos CDs HPC) as infra-

estruturas relevantes satildeo Fibre Channel (FC) e Ethernet Assim as interfaces em

questatildeo satildeo HBAs (FC) e NICs (Ethernet)

Service

Um Service corresponde a uma instanciaccedilatildeo de um template e herda deste

todas as configuraccedilotildees base que poderatildeo ser posteriormente editadas com mais ou

menos servidores processamento memoacuteria discos etc ateacute ao limite maacuteximo

definido no Template

A criaccedilatildeo do serviccedilo eacute efectuada pelo consumidor5 IaaS que faz a definiccedilatildeo

fina das caracteriacutesticas da infra-estrutura que quer aprovisionar Continuando com os

exemplos baseados na pilha LAMP um consumidor do departamento de TI poderia

num dado momento criar um serviccedilo LAMP-testes baseado no template LAMP-base e

que usaria para fazer testes ao ldquoprodutordquo que estaacute a desenvolver e solicitar ao

administrador da cloud o respectivo aprovisionamento e mais tarde criar um serviccedilo

LAMP-produccedilatildeo baseado no template LAMP-elaacutestico e que usaria para colocar on-

line o produto

45 Limitaccedilotildees do HP CloudSystem Matrix

Em resumo o HP CloudSystem Matrix eacute um software stack para a implementaccedilatildeo de

clouds privadas que oferecem infra-estruturas como serviccedilo (IaaS) isto eacute permite aos

utilizadores (consumidores) dos seus serviccedilos aprovisionar de uma forma faacutecil e

raacutepida (minutos) uma infra-estrutura computacional completa de servidores6 (CPU

memoacuteria e discos) com o SO jaacute instalado interligados por uma topologia de rede mais

ou menos complexa

Contudo o supracitado ldquoaprovisionar de uma forma faacutecil e raacutepida (minutos)

uma infra-estrutura computacional completa de servidoresrdquo soacute eacute de facto faacutecil se

baseada na instanciaccedilatildeo de um template que serve exactamente as necessidades do

utilizador jaacute que na instanciaccedilatildeo apenas se pode modificar para cada servidor o

nuacutemero de CPUs e a quantidade de memoacuteria deixando de fora por exemplo opccedilotildees

de rede eou de armazenamento discos fiacutesicos vs virtuais aprovisionamento thin vs

thick (ver 23) escolha da tecnologia da interface (SATA vs SAS vs FC) ou do disco

(magneacutetico vs SSD)

Por outro lado a interacccedilatildeo atraveacutes do portal self-service do utilizador tambeacutem

apresenta algumas desvantagens a informaccedilatildeo apresentada pode ser em muitos casos

considerada demasiadamente teacutecnica eou desnecessaacuteria sendo que o portal natildeo pode

ser configurado para a omitir

5 Muitas vezes designado utilizador-consumidor ou simplesmente utilizador ndash e nesse caso eacute importante natildeo o

confundir com um mero utilizador final 6 Uma das vantagens do HPCSM eacute permitir aprovisionar natildeo soacute servidores virtuais mas tambeacutem reais (estes

uacuteltimos tecircm obrigatoriamente de ser fabricados pela HP)

31

46 Resumo

Este capiacutetulo descreve a HP CloudSystem Matrix uma pilha de software que

implementa o modelo IaaS para clouds privadas e faz parte de um leque mais vasto

da oferta HP que passa pela CloudSystem Enterprise (clouds privadas e hiacutebridas) e

culmina com a CloudSystem System Provider (que acrescenta as clouds puacuteblicas)

A HP CloudSystem Matrix eacute o nuacutecleo de trabalho deste framework razatildeo de

ser deste estudo e deste capiacutetulo Todo o hardware e pilha de software em que assenta

toda a infra-estrutura HP CloudSystem Matrix foi descrita nomeadamente os seus trecircs

Modelos de interacccedilatildeo (API CLI e nbAPI) os papeacuteis e portais de interacccedilatildeo

(Administrador Arquitecto e Utilizador) Concluiacutemos com uma abordagem modular

da infra-estrutura com a explicaccedilatildeo dos moacutedulos principais e finalmente as limitaccedilotildees

desta infra-estrutura em particular do portal actualmente em uso

32

5 O framework e a sua Realizaccedilatildeo

51 Arquitectura

A arquitectura proposta assenta em 3 camadas (3-tier) apresentaccedilatildeo loacutegica e dados

este tipo de arquitectura eacute bem conhecida apresentando como resultado da

modularidade uma seacuterie de benefiacutecios que incluem a escalabilidade que resulta da

possibilidade de executar uma ou outra camada num servidor distinto ou ateacute em

certos casos numa farm de servidores A comunicaccedilatildeo entre as camadas apresentaccedilatildeo

e loacutegicaserviccedilos assenta num protocolo REST (ou seja a arquitectura eacute orientada agrave

Web (WOA) com Axiom0a [28] - Universality2 com um URI por cada recurso

importante) e dados em formato XML (visualizaccedilatildeo) ou JSON (programaccedilatildeo)

transportados em HTTP sobre TCPIP Relativamente agrave comunicaccedilatildeo com o HP

CSM ela processa-se sobre HTTPS numa arquitectura SOA com o protocolo SOAP

Figura 26 - Arquitectura n-tier

Camada de Apresentaccedilatildeo

Define e realiza a interface do utilizador o formato de interacccedilatildeo e

visualizaccedilatildeo foi optimizada para o navegador Google Chrome mas funciona

igualmente noutros browsers Eacute a camada de mais alto niacutevel e eacute responsaacutevel natildeo soacute

pelo contacto utilizadoraplicaccedilatildeo atraveacutes de um conjunto de interfaces que podem ser

apresentadas num browser mas tambeacutem por lhe fazer chegar a informaccedilatildeo das

camadas inferiores

33

Camada Loacutegicanegoacutecio

Tambeacutem conhecida como a camada de negoacutecio eacute o nuacutecleo da aplicaccedilatildeo e eacute

responsaacutevel por controlar as suas funcionalidades tem igualmente a responsabilidade

de realizar a transiccedilatildeo de dados entre as camadas de apresentaccedilatildeo e dados e ainda

todas as transiccedilotildees necessaacuterias entre a proacutepria aplicaccedilatildeo e a camada de serviccedilos

Camada de Serviccedilos

Camada que realiza toda a comunicaccedilatildeo com os webservices do CSM

nomeadamente via API do MOE e outras APIs como eacute o caso da API da VMware

Camada de Dados

Camada responsaacutevel por guardar e gerir os dados em texto (ou numa base de

dados opccedilatildeo que activamos quando queremos trabalhar offline ndash o que neste

momento apenas fazemos para testes) e cache de leituras (cookies) com a informaccedilatildeo

sobre o utilizador e outras informaccedilotildees proveniente da camada de loacutegicaserviccedilos

como eacute o caso da implementaccedilatildeo Realm JAAS no moacutedulo de login JAAS

52 Integraccedilatildeo da framework no HP CSM (MOE e VMware)

Nesta secccedilatildeo propositadamente muito simples mostramos (figura 27) as relaccedilotildees

entre a framework agrave esquerda a plataforma HP CSM (MOE) com o qual esta

interage ao centro e a plataforma VMware vCenter que gere o hipervisor ESXi que

em ultima instacircncia eacute quem suporta as VMs que se disponibilizam na cloud

Figura 27 - Relaccedilatildeo dos VMIDs (WebService-MOE-vCenter)

34

53 Um desenho guiado pela Interface Utilizador

A portal is a window into a much broader set of capabilities in the IT world Its critical that portals be user-friendly and fairly intuitive to use

Ken Stephens vice president of Xerox Corp

O desenvolvimento deste framework teve sempre como objectivo uacuteltimo o

utilizador com acessos consulta de informaccedilatildeo e interacccedilotildees raacutepidas intuitivas faacuteceis

e acima de tudo praacuteticas Pretendeu-se simplicidade com uma curta curva de

aprendizagem e uma flexibilidade com acessos proacuteprios e individuais a cada

utilizador associados a um username e role (admin ou user) dispensando a

necessidade da se ter de usar dua interfaces distintas uma para o administrador outra

para um utilizador-consumidor de serviccedilos

These users want to see performance graphs and have the capability to build complex configurations and templates for their end users

Lauren Nelson Forrester Research Inc

A visualizaccedilatildeo em tempo real de todas as acccedilotildees do utilizador com a

disponibilizaccedilatildeo de uma ldquobarra de progressordquo a visualizaccedilatildeo do estado geral do

webservice e das suas configuraccedilotildeesrecursos tambeacutem natildeo foram descuradas A

descriccedilatildeo dos componentes principais em aacutervore permite a raacutepida visualizaccedilatildeo das

configuraccedilotildees de todo o Serviccedilo criado das suas hierarquias e relaccedilotildees e um acesso

raacutepido e intuitivo aos detalhes de cada componente

35

Figura 28 - Estrutura em aacutervore do menu lateral esquerdo

Developers want a clean easy-to-use [product] to select prebuilt templates -- but they dont need to see any of the complex performance or payment configurations

Lauren Nelson

O Cataacutelogo de Templates publicados pelo Arquitecto eacute imediatamente

visualizado no menu em aacutervore quando o webservice eacute inicializado que eacute

imediatamente povoada com os Serviccedilos (e seus recursos) anteriormente criados por

esse utilizador

Para criar um novo Serviccedilo o utilizador seleciona o template que mais se

adequa agraves suas necessidades e cria o Serviccedilo Todos os Serviccedilos associados a um

determinado Template ficam como ramos na aacutervore desse Template o mesmo

acontecendo relativamente aos recursos associados a cada Serviccedilo A informaccedilatildeo

visualizada eacute apenas a necessaacuteria a cada visualizaccedilatildeo e instanciaccedilatildeo

A interface eacute assim raacutepida acessiacutevel intuitiva organizada e personalizaacutevel as

acccedilotildees satildeo acessiacuteveis e raacutepidas de executar sem menus e submenus com sucessivos

cliques que soacute atrasam todo o processo

36

Figura 29 - Portal

37

Figura 30 - Diagrama de Sequecircncia (Criaccedilatildeo de um Serviccedilo)

38

What you want and what you get in most cases depends on the users persona -- either an IT manager or a developerhellip By making portals task-

based youre not just seeing a bunch of random menus or links If youre

searching for something youll find it quicklyrdquo

Bill Forsyth vice president of portal development at Savvis

Um portal personalizaacutevel em funccedilatildeo do utilizador ocultar ou exibir paineacuteis de

informaccedilatildeo a lista de pedidos limitar a exibiccedilatildeo por Template ou por Serviccedilo - um

simples clique e todo o portal eacute personalizaacutevel

Paying attention to details and being able to organize information for larger enterprises is important

Bill Forsyth

A organizaccedilatildeo de toda a informaccedilatildeo a disponibilizar eacute a chave de todo este

processo e diferencia um portal agradaacutevel e intuitivo de um portal confuso no seu

amontoado de informaccedilatildeo e complexidade quanto maior eacute a informaccedilatildeo a

disponibilizar maior eacute evidente esta diferenccedila Uma informaccedilatildeo hierarquizada e

organizada em agrupamentos loacutegicos por recursos eacute um processo muito faacutecil de seguir

e perceber e associada a esta disponibilizaccedilatildeo de informaccedilatildeo apenas exibir acccedilotildees

que possam ser executadas sobre esse(s) recurso(s) eacute o objectivo da simplicidade e

desempenho de uma interface Por uacuteltimo uma paacutegina web de ajuda a toda a interface

(Anexo N) para consulta de qualquer duacutevida faz com que tudo seja uacutetil e praacutetico [33]

54 Camada de apresentaccedilatildeo

A realizaccedilatildeo da camada de apresentaccedilatildeo pode ser apresentada subdividindo-a em duas

partes sendo a primeira correspondente agrave realizaccedilatildeo do lado do cliente (client-side) e

a segunda agrave realizaccedilatildeo do lado do servidor (server-side)

541 Do lado do cliente

A visualizaccedilatildeo de uma paacutegina web num navegador como Google Chrome Firefox ou

Internet Explorer soacute eacute possiacutevel se estes ldquoentenderemrdquo a linguagem na qual estaacute

construiacuteda ldquoa paacuteginardquo e forem capazes de a processar sem necessidade de qualquer

espeacutecie de preacute-tratamento Surgiram muitas linguagens conhecidas como linguagens

de marcaccedilatildeo um sistema moderno para anotaccedilatildeo de um documento de uma forma que

ldquoo programardquo eacute sintaticamente distinguiacutevel do texto normal

Do lado do cliente a principal linguagem de marcaccedilatildeo eacute a HTML agrave qual se

adiciona a JavaScript na qual os programas acompanham um documento html

incluiacutedos em ficheiros com a extensatildeo js ou satildeo incorporados directamente no

39

coacutedigo html entre tags ltscriptgtltscriptgt o documento html eacute entatildeo carregado pelo

navegador do utilizador e com ele todo o coacutedigo JavaScript

A linguagem JavaScript eacute usada para incutir dinamismo no coacutedigo html

facilitando por exemplo a interacccedilatildeo com o utilizador no preenchimento de

formulaacuterios (aquando da criaccedilatildeo de um serviccedilo) ou promovendo o upload de um

modelo de template em formato XML ou executando acccedilotildees ou eventos consoante

determinado comportamento do utilizador etc As funccedilotildees JavaScript e das suas

bibliotecas como JQuery satildeo executadas aquando do carregamento da proacutepria paacutegina

html ou quando invocadas por eventos como sejam a inicializaccedilatildeo da framework

leitura inicial dos dadosrecursos relativos ao utilizador criaccedilatildeo de cookies ou acccedilotildees

do utilizador como o login ou o preenchimento de formulaacuterios

Tambeacutem eacute usado AJAX (Asynchronous JavaScript and XML) [36] um padratildeo

para o uso de comandos JavaScript para de uma forma siacutencrona ou assiacutencrona trocar

dadosinformaccedilatildeo com o servidor e actualizar conteuacutedos de paacuteginas web jaacute exibidas

em que natildeo eacute necessaacuterio carregar toda a paacutegina para a actualizar Um padratildeo ideal

para usar com o protocolo REST (Representational State Transfer) para troca de

informaccedilatildeo permite o uso de dados em texto HTML XML e JSON (JavaScript

Object Notation) como formato da informaccedilatildeo para enviar e receber dados usando

HTTP e URI exactamente como as interacccedilotildees HTTP foram concebidas GET

POST PUT e DELETE Com AJAX as operaccedilotildees CRUD (Create Read Update e

Delete) satildeo muito intuitivas e faacuteceis de usar

Finalmente CSS (Cascading Style Sheets) eacute a linguagem responsaacutevel pela

formataccedilatildeo dos dados em termos de visualizaccedilatildeo para o utilizador que eacute usada para

descrever a apresentaccedilatildeo das paacuteginas Web incluindo cores layout e fontes

542 Do lado do servidor

As linguagens caracterizadas como ldquodo lado do servidorrdquo satildeo necessaacuterias para

especificar os programas que tecircm de ser executados no servidor como ldquorespostardquo agraves

acccedilotildees desencadeadas do lado do browser quando o resultado tem de ser enviado

para o browser eacute-o na forma de ficheiro HTML

Linguagens de conteuacutedo e comportamento como JSP (JavaServer Pages) uma

mistura de HTML com scriptlet contecircm um elemento script (blocos de coacutedigo em

Java) o que as caracteriza como linguagens que correm no servidor Os scriptlet

como todo o coacutedigo Java eacute executado no servidor e o output direcionado para o resto

da paacutegina JSP e finalmente apresentado ao utilizador A facilidade de comunicaccedilatildeo

em variaacuteveis de sessatildeo torna esta linguagem muito apelativa ao uso dessas variaacuteveis

como eacute o cado da paacutegina loginjsp onde se desenrola grande parte da comunicaccedilatildeo

browserservidor atraveacutes da API MOE logoutjsp e vmrcjsp para ligaccedilatildeo agraves VMs e

comunicaccedilatildeo com a API VMware

40

543 Lista de primitivas na oacuteptica dos recursos

Segue-se a lista de primitivas apresentada numa oacuteptica de recursos que cada

uma manipula

actionsjs - Lista as ldquoactionsGridrdquo atribuiacutedas aos Serviccedilos Grupo de

Servidores ou Servidores e permite todas as acccedilotildees associadas nestas

listagens

cookiesjs - Leitura e criaccedilatildeo de cookies associados ao utilizador e todo o

webservice Cookies de login com dados como username e role e outros

dado associados agraves acccedilotildees do utilizador e webservice como layout de

visualizaccedilatildeo da paacutegina (globaltheme) menu lateral esquerdo (treetheme)

paineacuteis de visualizaccedilatildeo de informaccedilatildeo (northregion westregion

eastregion southregion) etc

disksjs - Leitura das informaccedilotildees associadas aos discos nas suas trecircs

versotildees ldquostereotype disksrdquo discos virtuais e fiacutesicos Todas as acccedilotildees

possiacuteveis em discos estatildeo igualmente configuradas neste ficheiro

geraljs - Leitura das informaccedilotildees gerais associadas ao webservice Dados

iniciais de informaccedilatildeo de todos os Templates do Cataacutelogo de Serviccedilos e

dados de Serviccedilos jaacute existentes nos diferentes formatos (JSON e XML)

configuraccedilotildees gerais do webservice como tabelas de listagens conversotildees

de datas (ldquodate2epochrdquordquoepoch2daterdquo) construccedilatildeo do menu lateral

esquerdo em aacutervore listeners para acccedilotildees do utilizador e mensagens de

erros e informaccedilatildeo do webservice

helpjs - Configuraccedilotildees de todo o layout das ajudas ao utilizador

interfacesjs - Leitura das informaccedilotildees associadas agraves interfaces redes e

endereccedilos IP Todas as acccedilotildees passiacuteveis de serem executadas nas

interfaces estatildeo igualmente configuradas neste ficheiro

remoteSessionsjs - Listagem de todas as Sessotildees Remotas do Serviccedilo e

acccedilotildees associadas a essas Sessotildees Remotas por Servidor e suas Interfaces

requestsjs - Listagem de todos os pedidos por Template ou Serviccedilo

Todas as acccedilotildees passiacuteveis de serem executadas relativas aos pedidos do

utilizador estatildeo igualmente configuradas neste ficheiro

serverGroupsjs - Leitura das informaccedilotildees associadas ao Grupo de

Servidores quer nos Templaste quer nos Serviccedilos Todas as acccedilotildees

relativas ao Grupo de Servidores estatildeo igualmente configuradas neste

ficheiro

serverPoolsjs - Listagem de todos as Pools de Servidores com a

informaccedilatildeo respectiva a cada Pool Todas as acccedilotildees passiacuteveis de serem

executadas nas Pools de Servidores estatildeo configuradas neste ficheiro

41

serversjs - Leitura das informaccedilotildees associadas a cada Servidor quer nos

Templaste quer nos Serviccedilos Todas as acccedilotildees relativas aos Servidores

estatildeo configuradas neste ficheiro

servicesjs - Leitura das informaccedilotildees associadas a cada Serviccedilo Todas as

acccedilotildees passiacuteveis de serem executadas nos Serviccedilos estatildeo configuradas

neste ficheiro

snapshotsjs - Listagem de todos os Snapshots com a informaccedilatildeo

respectiva ao par ServerSnapshot Todas as acccedilotildees passiacuteveis de serem

executadas nos Snapshots estatildeo configuradas neste ficheiro

softwarejs - Listagem de todo Software existente no sistema e informaccedilatildeo

relativa a cada Software em particular

templatesjs - Listagem de todos os recursos do Template e informaccedilatildeo

relativa a cada recurso base Toda a disponibilizaccedilatildeo de informaccedilatildeo e as

acccedilotildees associadas aos Templates estatildeo configuradas neste ficheiro

55 Camada ServiccedilosLoacutegica

Como referido (ver 51) a comunicaccedilatildeo entre a camada de apresentaccedilatildeo e a

loacutegicaserviccedilos assenta num protocolo REST e usa XML e JSON como formato para

enviar e receber informaccedilatildeo usando HTTP e URI (operaccedilotildees CRUD - Create Read

Update e Delete) [29]

Figura 31 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull

Por seu lado o REST assenta em quatro princiacutepios fundamentais 1) Recurso

cada recurso tem uma identificaccedilatildeo uacutenica e global associada ao URI

httpexemplocomencomenda20121088563 2) Acesso usando URIs acede-se a

um recurso por um ID uacutenico e global independente da sua localizaccedilatildeo 3) Formatos

um recurso pode ser representado em diferentes formatos por exemplo HTML XML

ou JSON sendo a escolha ditada pela finalidade especiacutefica de utilizaccedilatildeo do recurso

4) Comunicaccedilatildeo stateless - o cliente pode receber toda a informaccedilatildeo necessaacuteria num

primeiro contacto com o servidor executar o processamento e finalmente ligar-se

uma segunda vez ao servidor para reportar os resultados

As APIs usadas e directamente relacionadas com serviccedilos REST foram as

seguintes 1) JAX-RS (JSR 311 - Java Specification Requests) Atualmente parte

42

integrante do Java EE eacute uma API Java para serviccedilos Web RESTfull sobre HTTP

JAVAX-RS como especificaccedilatildeo desta API [30] fornece anotaccedilotildees que simplificam as

configuraccedilotildees 2) Jersey eacute uma implementaccedilatildeo open-source de referecircncia do

JAVAX-RS [31] 3) RestEasy eacute uma outra implementaccedilatildeo do JAVAX-RS com

opccedilotildees de suporte para outros protocolos aleacutem do HTML e que permite conexotildees

assiacutencronas e tem suporte de cache [32]

551 Camada de Serviccedilos

Como sabemos o HP CloudSystem Matrix gere recursos de computaccedilatildeo

armazenamento rede e software de uma forma unificada para oferecer um ambiente

virtualizado e altamente automatizado Contudo natildeo eacute um produto fechado

disponibilizando natildeo soacute um CLI mas tambeacutem uma API com uma WSDL (Web

Service Description Language) que inclui todas as operaccedilotildees possiacuteveis (https ltcms-

ip-addressgt 51443hpiocontrollersoapv5 wsdl)

A camada de serviccedilos eacute um cliente do CSM que funciona segundo o padratildeo

autenticaccedilatildeoperfil-pedido(s)-fecho na fase de autenticaccedilatildeo o utilizador (registado na

infra-estrutura MOE) faz o seu login a partir desse momento estaacute criada uma sessatildeo

que por HTTPS permite o acesso a todos os recursos disponiacuteveis para a combinaccedilatildeo

utilizadorperfil (role)

552 Camada Loacutegica

A camada loacutegica segue o mesmo princiacutepio estaacute centrada nos recursos em termos de

tecnologias usa o protocolo REST para a comunicaccedilatildeo clienteservidor e a

linguagem Java para o desenvolvimento

A realizaccedilatildeo foi idealizada numa prespectiva hieraacuterquica o que facilita a

compreensatildeo de toda a estrutura O menu lateral esquerdo eacute exemplo disso mesmo a

estrutura em aacutervore espelha esta ideia simples mas eficaz os recursos comeccedilam por

ser apresentados como listas sobre as quais podemos realizar acccedilotildeesfunccedilotildees ldquode

grupordquo pois satildeo apenas aquelas que satildeo comuns a todos os membros da lista mas agrave

medida que nos vamos aproximando das folhas da estrutura em aacutervore as

acccedilotildeesfunccedilotildees ficam mais especiacuteficas relativamente aos recursos-alvo

Por exemplo quando se realiza a acccedilatildeo ldquoPower ONrdquo a um grupo de

servidores todos os servidores do grupo satildeo ligados quando se efectua essa mesma

acccedilatildeo sobre um servidor apenas o servidor seleccionado eacute ligado

A disponibilizaccedilatildeo de informaccedilatildeo relativa a grandes ldquoconjuntos de dadosrdquo

como eacute o caso de listagens de pedidos de acccedilotildees de sessotildees remotas de snapshots

de stereotype disks de software e de subnets foi realizada com datagrids (tabelas)

para melhor visualizaccedilatildeo

43

As acccedilotildeesfunccedilotildees disponibilizadas estatildeo distribuiacutedas pelas tabs respectivas e

executam serviccedilos no niacutevel em que se encontram disponibilizadas A tiacutetulo de

exemplo as acccedilotildees que se encontram disponiacuteveis para execuccedilatildeo no grupo de

servidores apenas podem ser encontradas no tab ldquoGrouprdquo e reflectem-se sobre todos

os membros do grupo Uma acccedilatildeo especiacutefica de servidor encontra-se somente

disponiacutevel na tab ldquoServerrdquo e afecta apenas e soacute esse servidor

Segue-se uma descriccedilatildeo natildeo exaustiva da camada loacutegica nuacutecleo desta

framework desde a sua inicializaccedilatildeo ateacute aos recursos e moacutedulos principais

5521 Init

Aquando da inicializaccedilatildeo da aplicaccedilatildeo e no seguimento do login do utilizador eacute

desencadeada uma sequencia de pedidos ao servidor por informaccedilotildees relativas aos

Templates do Cataacutelogo de Serviccedilos e de todos os Serviccedilos do utilizador Se as

permissotildees associadas ao utilizador for de simples utilizador do webservice visualiza

apenas as instacircncias que criou jaacute um utilizador com permissotildees de administraccedilatildeo

visualiza os seus serviccedilos e todos os serviccedilos dos restantes utilizadores

Tabela 1 - Funccedilotildees associadas agrave inicializaccedilatildeo do Webservice

Funccedilatildeo Descriccedilatildeo

getVersion Funccedilatildeo de teste Obteacutem a informaccedilatildeo da versatildeo da API

principal Funccedilatildeo usada aquando do login do utilizador Obteacutem os

detalhes do utilizador como USERNAME e ROLE

listAllDataDetailsJson Funccedilatildeo usada apoacutes login do utilizador e iniciaccedilatildeo da

aplicaccedilatildeo Obteacutem os detalhes dos Serviccedilos associados ao

Utilizador Lista a informaccedilatildeo de todos os Templates e

Serviccedilos do Utilizador no formato JSON Funccedilatildeo para uso

excluivo do webservice

downloadTabJsonView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa aos recursos do Utilizador em formato

JSON Eacute criado um ficheiro com extenccedilatildeo JSON

downloadTabXmlView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa aos recursos do Utilizador em formato

XML Eacute criado um ficheiro com extenccedilatildeo XML

44

listEnumsJson Funccedilatildeo usada apoacutes login do utilizador e iniciaccedilatildeo da

aplicaccedilatildeo Obteacutem os detalhes de todos os ENUMS possiacuteveis

no webservice Lista a informaccedilatildeo de todos os ENUMS no

formato JSON Funccedilatildeo para uso excluivo do webservice

listEnumsXml Menu lateral direito do webservice Opccedilatildeo de visualizaccedilatildeo da

informaccedilatildeo relativa agraves opccedilotildees ENUMS possiveis no

webservice

downloadTabEnumsView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa agraves opccedilotildees ENUMS possiveis no

webservice Eacute criado um ficheiro com extenccedilatildeo XML com a

informaccedilatildeo visualizada

listAllDataDetailsXml Menu lateral direito do webservice Opccedilatildeo de visualizaccedilatildeo da

informaccedilatildeo relativa ao Utilizador em formato XML

5522 Template

Como jaacute referido o desenhoconstruccedilatildeo dos Templates fica a cargo do Arquitecto do

MOE que desenha esses mesmos Templates mediante pedido especifico de um

determinado utilizador tendo em vista um grupo de utilizadores infra-estrutura

disponibilizada ideias preacute-definidas resposta a uma ou mais situaccedilotildees especiacuteficas

etc

Nos detalhes gerais do Template obtemos informaccedilotildees como o nome do

Template a data de criaccedilatildeo e modificaccedilatildeo versatildeo custo geral se eacute ou natildeo

customizaacutevel e o numero de ServerGroups associados assim como discos e serviccedilos

que jaacute foram criados tendo por base este template

Todos os detalhes do Template ficam disponiacuteveis ao utilizador 1) Grupo de

servidores com informaccedilotildees como nome quantidade miacutenima de servidores e que seraacute

a base do serviccedilo criado e quantidade maacutexima de servidores sinal que o serviccedilo

poderaacute crescer em termos de quantidade de servidores Tipo de cluster e o nuacutemero de

servidores loacutegicos existentes no grupo 2) Servidores onde o utilizador obteacutem

informaccedilotildees como nome hostname tipo de virtualizaccedilatildeo memoacuteria usada e

quantidade maacutexima de memoacuteria processadores usados e quantidade maacutexima de

processadores se eacute ou natildeo virtual e se estaacute ou natildeo em cloud 3) Custos em detalhes

ficam disponiacuteveis ao utilizador Informaccedilotildees sobre custo total custo de base por cada

servidor custo por processador e memoacuteria 3) Os discos tambeacutem apresentam

informaccedilatildeo como nome tipo de storage tamanho raid level se eacute ou natildeo bootable

shareable e custo do disco 4) Software preacute-instalado ou instalado posteriormente pelo

utilizador Informaccedilotildees como nome tipo OS e virtualizaccedilatildeo estatildeo disponiacuteveis 5)

Interfaces com informaccedilotildees como nome da interface se eacute ou natildeo primaacuteria

45

redundacircncia subnet publica shareable tipo de IP endereccedilo DHCP activo ou natildeo e

custo final

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa a Templates

Figura 32 - Execuccedilatildeo tab ldquoTemplaterdquo

Export All Templates

Acccedilatildeo disponiacutevel apenas ao administrador permite o download em

ficheiro XML dos detalhes de todos os Templates para que o administrador possa

consultar essa informaccedilatildeo em modo offline se assim o entender Detalhes que

ficam disponiacuteveis para visualizaccedilatildeo no clique do iacutecon Template no menu lateral

esquerdo

O ficheiro XML pode depois ser visualizado mesmo no browser ou

qualquer programa que suporte essa visualizaccedilatildeo como eacute o caso do Notepad++

Export Template

Acccedilatildeo disponiacutevel apenas ao administrador permite o download em

ficheiro XML dos detalhes do Template em visualizaccedilatildeo igualmente como a

acccedilatildeo ldquoExport All Templatesrdquo o administrador poderaacute consultar mais tarde em

modo offline se assim o entender Detalhes que ficam disponiacuteveis para

visualizaccedilatildeo no clique do icon do nome do Template respectivo no menu lateral

esquerdo

Import Template

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel

adicionar mais Templates ao Cataacutelogo de Serviccedilos ficando assim disponiacutevel ao

utilizador mais opccedilotildees com novas configuraccedilotildees A leitura eacute feita directamente de

um ficheiro XML natildeo eacute admissiacutevel outro tipo de formato

Delete Template

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel

remover um Templates do Cataacutelogo de Serviccedilos Como todos os Serviccedilos tem por

base um Template a remoccedilatildeo de um Template implica a remoccedilatildeo de todos os

46

Serviccedilos que tem como base esse Template Tal situaccedilatildeo eacute salvaguardada

obrigando o administrador a clicar em OK numa InfoWindow de aviso

XML View

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel a

visualizaccedilatildeo de todos os detalhes do Templates directamente numa InfoWindow

dentro do webservice A informaccedilatildeo em XML torna-se vantajosa ao administrador

para a visualizaccedilatildeo de detalhes mais pormenorizados e organizaccedilatildeo de toda a

infra-estrutura

Export All Services

Acccedilatildeo que agrave semelhanccedila do ldquoExport All Templatesrdquo permite o download

em ficheiro XML dos detalhes de todos os Serviccedilos associados ao Template em

visualizaccedilatildeo e a um determinado utilizador para que possa consultar em modo

offline se assim o entender Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no

clique do iacutecon Service no menu lateral esquerdo

O ficheiro XML pode depois ser visualizado no browser ou qualquer

programa que suporte essa visualizaccedilatildeo como eacute o caso do Notepad++

Create Service

Finalmente a acccedilatildeoobjectivo de todo o webservice a criaccedilatildeo e

disponibilizaccedilatildeo de Serviccedilos Como jaacute foi referido um Serviccedilo tem como base um

Template por isso na visualizaccedilatildeo dos detalhes do Template esta opccedilatildeo estaacute

disponiacutevel Aquando da criaccedilatildeo de um Serviccedilo este teraacute como base o Template

em visualizaccedilatildeo

Existem campos de preenchimento obrigatoacuterios como nome do serviccedilo

hostname tempo atribuiacutedo ao serviccedilo (1 mecircs por defeito) e email do utilizador

As opccedilotildees ldquoNotesrdquo e ldquoBilling coderdquo satildeo opcionais

All Requests

Todas os pedidos realizados no webservice por um determinado utilizador

ficam disponiacuteveis para visualizaccedilatildeo do seu estado e inclusive desencadear acccedilotildees

nesses mesmos pedidos como cancelamento (percentagem inferior a 100) mediante

decisatildeo do utilizador

A salientar que existem pedidos que carecem da aprovaccedilatildeo do administrador

por isso o pedido poderaacute ficar parado numa determinada percentagem () a espera

dessa aprovaccedilatildeo Se o pedido natildeo necessitar de aprovaccedilatildeo continuaraacute a sua execuccedilatildeo

ateacute estar completo (100) e automaticamente seraacute adicionado ao menu lateral

esquerdo do utilizador

Template Requests

Todas os pedidos associados a um determinado Template por um determinado

utilizador ficam igualmente disponiacuteveis para visualizaccedilatildeo do seu estado

47

Tabela 2 - Funccedilotildees associadas ao Template

Funccedilatildeo Descriccedilatildeo

listTemplates Funccedilatildeo que obtem uma listagem da informaccedilatildeo relativa

aos Templates do Cataacutelogo de Serviccedilos

importTemplate Funccedilatildeo que permite o Upload da informaccedilatildeo relativa a

um Template em formato XML Operaccedilatildeo executada

apenas pelo Administrador ou Arquitecto de toda a

infra-estrutura de orquestraccedilatildeo

exportTemplate Funccedilatildeo que obteacutem toda a informaccedilatildeo relativa a um

Template e permite o download dessa informaccedilatildeo em

formato XML Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura de

orquestraccedilatildeo

exportTemplateList Funccedilatildeo de complemento a toda a informaccedilatildeo dos

Templates do Cataacutelogo de Serviccedilo Uso exclusivo do

webservice

deleteTemplate Funccedilatildeo que permite a remoccedilatildeo de um Template do

Cataacutelogo de Serviccedilos Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura de

orquestraccedilatildeo

listServicesByTemplateName Funccedilatildeo que obteacutem todos os Serviccedilos associados a um

determinado Template Para visualizaccedilatildeo de informaccedilatildeo

e opccedilatildeo de download

5523 Serviccedilo

O Serviccedilo tem sempre como base as definiccedilotildees de um Template e nesse sentido tudo

que o utilizador poderaacute fazer nesse Serviccedilo satildeo acccedilotildees que estatildeo disponiacuteveis nesses

Template como limites miacutenimos e maacuteximos de servidores processadores memoacuteria

etc Outras opccedilotildees como discos e interfaces ficam disponiacuteveis ao utilizador que

poderaacute adicionar se assim o entender com os custos inerentes a este upgrade de

Serviccedilo

Um Serviccedilo eacute composto por dados base relativos a informaccedilotildees gerais desse

Serviccedilo listas de acccedilotildees associadas e uma lista de grupos de servidores sendo que

cada grupo poderaacute ser diferente entre si com recursos funcionalidades e softwares

completamente diacutespares

Assim em termos de informaccedilatildeo disponiacutevel associada ao serviccedilo o utilizador

poderaacute obter o nome do serviccedilo id (apenas acessiacutevel ao administrador) notas status

48

o Template base que lhe deu origem data de criaccedilatildeo e ultima data de modificaccedilatildeo o

custo geral do serviccedilo custo fixo o periacuteodo de uso do serviccedilo (por defeito 1 mecircs)

nome do utilizador que criou o serviccedilo organizaccedilatildeo e tamanho das listas associadas

nomeadamente acccedilotildees e grupo de servidores

Os Serviccedilos assim como os Templates ficam disponiacuteveis em listagem no menu

lateral esquerdo num formato em aacutervore intuitivo e raacutepido de selecionar Cada

Serviccedilo fica na cadeia hieraacuterquica do Template que lhe deu origem Associado a cada

Serviccedilo tambeacutem poderemos visualizar nesses mesmo menu todos os recursos

associados a esse Serviccedilo como listagem dos grupos de servidores em cada grupo os

seu servidores e em cada servidor os recursos como discos software e interfaces

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Serviccedilo

Figura 33 - Execuccedilatildeo tab ldquoServicerdquo

Export All Services

Acccedilatildeo que permite o download em ficheiro XML dos detalhes de todos os

Serviccedilos do utilizador permitindo a posterior consulta em modo offline Detalhes

que ficam disponiacuteveis para visualizaccedilatildeo no clique do iacutecons Service no menu

lateral esquerdo

Export Service

Permite o download em ficheiro XML dos detalhes do Serviccedilo em

visualizaccedilatildeo igualmente como a acccedilatildeo ldquoExport All Servicesrdquo o utilizador poderaacute

consultar mais tarde em modo offline os detalhes do serviccedilo Detalhes que ficam

49

disponiacuteveis para visualizaccedilatildeo no clique do icon do nome do Serviccedilo respectivo no

menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Serviccedilo

directamente numa InfoWindow dentro do webservice A informaccedilatildeo em XML

torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Create Service

Mesma acccedilatildeo existente nos Templates Directamente da visualizaccedilatildeo de

um Serviccedilo eacute possiacutevel criar um outro Serviccedilo tendo igualmente por base o

mesmo Template O Serviccedilo criado seraacute igual ao Serviccedilo base em visualizaccedilatildeo

Delete Service

Permite a remoccedilatildeo do Serviccedilo em visualizaccedilatildeo Apoacutes esta acccedilatildeo deixam

de ser cobrado qualquer custo associado ao Serviccedilo que foi removido

Power ON Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo sejam ligados e fiquem disponiacuteveis para utilizaccedilatildeo Esta

acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==OFFrdquo

Power OFF Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo sejam desligados deixando de estar disponiacuteveis para

utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==UPrdquo

Power Cycle Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo faccedilam um reboot e continuem disponiacuteveis para utilizaccedilatildeo

Esta acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==UPrdquo

Activate Service

Permite que todos os Servidores de todos os ServerGroups existentes no

Serviccedilo sejam activados No final desta operaccedilatildeo o Serviccedilo fica em modo

ldquoserviceStatus==UPrdquo e todos os servidores ficam automaticamente disponiacuteveis

para utilizaccedilatildeo

50

Deactivate Service

Permite que todos os Servidores de todos os ServerGroups existentes no

Serviccedilo sejam desactivados No final desta operaccedilatildeo o Serviccedilo fica em modo

ldquoserviceStatus==DEACTIVATEDrdquo

Service Actions

Os ldquotriggered actionsrdquo associadas a cada Template satildeo parte integrante do

Serviccedilo criado Tambeacutem esta informaccedilatildeo estaacute disponiacutevel em forma de listagem

Estas acccedilotildees automaticamente desencadeadas pelo webservice poderatildeo pertencer

ao Serviccedilo propriamente dito ou entatildeo existirem apenas num serverGroup ou ateacute

mesmo apenas num Server

List Remote Session

No final da criaccedilatildeo de um Serviccedilo o objectivo eacute a ligaccedilatildeo as VMs

associadas a esse mesmo Serviccedilo Nesse intuito directamente da tab Serviccedilo

atraveacutes desta acccedilatildeo ficam disponiacuteveis numa lista todas as VMs com os acessos

remotos permissiacuteveis

RDP (Remote Desktop Protocol)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet

VMRC (VMware Remote Console)

Todos os pedidos associados a um determinado Serviccedilo por um

determinado utilizador ficam igualmente disponiacuteveis para visualizaccedilatildeo do seu

estado Quando a listagem de pedidos tem grandes dimensotildees ou se a visualizaccedilatildeo

do pedido diz respeito a este Serviccedilo fazer apenas a listagem dos pedidos pelo

Serviccedilo em causa torna-se mais simples uacutetil e directa

Tabela 3 - Funccedilotildees associadas ao Serviccedilo

Funccedilatildeo Descriccedilatildeo

listServices Detalhes dos Serviccedilos associados a um determinado Utilizador

Para visualizaccedilatildeo de informaccedilatildeo e opccedilatildeo de download O

Administrador obtem todos os Serviccedilos existentes no

webservice

getService Informaccedilatildeo associada a um determinado Serviccedilo Para

visualizaccedilatildeo de informaccedilatildeo e opccedilatildeo de download

createService Criaccedilatildeo de um Serviccedilo

deleteService Remoccedilatildeo de um Serviccedilo associado a um Template

deactivateService Desactivaccedilatildeo de um Serviccedilo

51

activateService Activaccedilatildeo de um Serviccedilo

changeServiceLease Ediccedilatildeo do Lease period asociado a um Serviccedilo

powerOnService Ligar um Serviccedilo

powerOffService Desligar um Serviccedilo

powerCycleService Ligar um Serviccedilo apoacutes reboot

getRemoteSessionsList Listagem de todos os servidores e seus IPs associados para

posterior listagem das sessotildees remotas

5524 Grupo de Servidores

Cada Serviccedilo tem os seus recursos associados nomeadamente uma lista de Grupo de

Servidores onde o utilizador poderaacute obter informaccedilotildees como o nome do Serviccedilo

nome do Grupo de Servidores o Status nuacutemero miacutenimo e maacuteximo de Servidores

uma progressbar com indicaccedilatildeo do nuacutemero de servidores disponiacuteveis no momento se

tem uma sequencia Boot datas de criaccedilatildeo e ultima modificaccedilatildeo e finalmente uma

lista de Servidores

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Grupo de Servidores

Figura 34 - Execuccedilatildeo tab ldquoServerGroupsrdquo

52

Export Server Group

Permite o download em ficheiro XML dos detalhes do Grupo de

Servidores em visualizaccedilatildeo o utilizador poderaacute consultar esses detalhes mais

tarde em modo offline Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no clique

do icon do nome do Grupo de Servidores respectivo no menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Grupo de

Servidores directamente numa InfoWindow dentro do webservice A informaccedilatildeo

em XML torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Add Servers (UP)

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores aumentando o

nuacutemero de Servidores dentro desse Grupo de Servidores Esta opccedilatildeo soacute fica

visiacutevel e acessiacutevel ao utilizador se o limite maacuteximo do nuacutemero de Servidores for

superior ao actualmente existente em utilizaccedilatildeo Limite definido nas

configuraccedilotildees do Serviccedilo que vieram por arrasto das configuraccedilotildees do Template

aquando da criaccedilatildeo desse Serviccedilo Estas alteraccedilotildees implicam o aumento do custo

total do Serviccedilo

Remove Servers (DOWN)

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores diminuindo o

nuacutemero de Servidores dentro desse Grupo de Servidores eacute disponibilizada a lista

de Servidores existentes e o utilizador seleciona um ou mais para remoccedilatildeo Esta

opccedilatildeo soacute fica visiacutevel e acessiacutevel ao utilizador se o limite miacutenimo do nuacutemero de

Servidores for inferior ao actualmente existente em utilizaccedilatildeo Limite definido nas

configuraccedilotildees do Serviccedilo que vieram por arrasto das configuraccedilotildees do Template

aquando da criaccedilatildeo desse Serviccedilo Estas alteraccedilotildees implicam a diminuiccedilatildeo do

custo total do Serviccedilo

Edit ServerGroup

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores relativamente a

memoacuteria e processadores A ediccedilatildeo vai ser efectuada em todos os Servidores do

Grupo de Servidores Como nos limites maacuteximos e miacutenimos de Servidores

tambeacutem os limites de memoacuteria e processadores vieram por arrasto das

configuraccedilotildees do Template aquando da criaccedilatildeo do Serviccedilo Estas alteraccedilotildees

implicam a diminuiccedilatildeo ou aumento do custo total do Serviccedilo

Power ON ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo sejam ligados e fiquem disponiacuteveis para utilizaccedilatildeo Esta acccedilatildeo eacute

dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==OFFrdquo

53

Power OFF ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo sejam desligados deixando de estar disponiacuteveis para utilizaccedilatildeo Esta

acccedilatildeo eacute dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==UPrdquo

Power Cycle ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo faccedilam um reboot e continuem disponiacuteveis para utilizaccedilatildeo Esta acccedilatildeo

eacute dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==UPrdquo

Activate ServerGroup

Permite que todos os Servidores do ServerGroups em visualizaccedilatildeo sejam

activados No final desta operaccedilatildeo o Grupo de Servidores fica em modo

ldquoserverGroupStatus==UPrdquo e todos os servidores ficam automaticamente

disponiacuteveis para utilizaccedilatildeo

Deactivate ServerGroup

Permite que todos os Servidores do ServerGroups em visualizaccedilatildeo sejam

desactivados No final desta operaccedilatildeo o Grupo de Servidores fica em modo

ldquoserverGroupStatus==DEACTIVATEDrdquo

Actions ServerGroup

Como no Serviccedilo os ldquotriggered actionsrdquo associadas a cada Template satildeo

parte integrante do Serviccedilo criado inclusive no Grupo de Servidores Se o Grupo

de Servidores em visualizaccedilatildeo tiver ldquotriggered actionsrdquo esta acccedilotildees estaraacute visiacutevel

ao utilizador para listagem

List Snapshots

Acccedilatildeo que permite listar todos os Snapshots existentes no Grupo de

Servidores

Nessa listagem eacute possiacutevel executar acccedilotildees como ldquoRevert Snapshotrdquo que

reverte um determinado Snapshot para o servidor especiacutefico ou ldquoDelete Snapshotrdquo

que permite a remoccedilatildeo de um Snapshot do sistema

Create Snapshot

Acccedilatildeo que permite a criaccedilatildeo de Snapshots no Grupo de Servidores

Existem campos obrigatoacuterios como o nome do Snapshot e a selecccedilatildeo de

um ou mais servidores de uma lista de servidores pertencentes ao Grupo de

Servidores Opccedilotildees como ldquoInclude Memory Staterdquo ou ldquoQuiesce filesystemrdquo estatildeo

tambeacutem disponiacuteveis para selecccedilatildeo aquando da criaccedilatildeo do Snapshot

54

Add Stereotype Disks

Acccedilatildeo que permite adicionar discos a um Grupo de Servidores O disco

adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores Satildeo

considerados ldquoStereotype Disksrdquo todos os discos existentes no grupo excepto

discos de boot

Qualquer acccedilatildeo de adiccedilatildeo de discos a um Grupo de Servidores soacute eacute

possiacutevel se natildeo existirem Snapshots relativos a qualquer Servidor desse Grupo de

Servidores

Esta acccedilatildeo lista todos os ldquoStereotype Disksrdquo jaacute existentes O utilizador

seleciona o que deseja clonar (disco base) e eacute adicionado um novo disco ao Grupo

de Servidores Esta acccedilatildeo carece da aprovaccedilatildeo do administrador

Add Virtual Disks

Acccedilatildeo que permite adicionar discos virtuais a um Grupo de Servidores O

disco adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores

Existem campos de preenchimento obrigatoacuterio como o nome do disco e

tamanho O webservice fornece um nome uacutenico e 10Gb de tamanho por defeito o

utilizador pode alterar estes campos Esta acccedilatildeo carece da aprovaccedilatildeo do

administrador Aleacutem de aprovar ou desaprovar este pedido pode inclusive definir

um novo custo

Add Physical Disks

Acccedilatildeo que permite adicionar discos fiacutesicos a um Grupo de Servidores O

disco adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores

Igualmente como a adiccedilatildeo de discos virtuais existem campos de

preenchimento obrigatoacuterio como o nome do disco tamanho e nesta opccedilatildeo o tipo

de RAID Acccedilatildeo que carece igualmente da aprovaccedilatildeo do administrador

Tabela 4 - Funccedilotildees associadas ao Grupo de Servidores

Funccedilatildeo Descriccedilatildeo

getLogicalServerGroup Obteacutem os detalhes associados a um Grupo de

Servidores Loacutegico em XML para visualizaccedilatildeo na

infowindow e opccedilatildeo de download

addServersToLogicalServerGroup Adiciona um Servidor a um Grupo de Servidores

Opccedilatildeo permissvel apenas se o nuacutemero de servidores

activos (ldquoactiveServerCountrdquo) for menor que o

nuacutemero maacuteximo de servidores

(ldquomaxServerCountrdquo)

55

removeServersFromLogicalServerGr

oup

Remove um Servidor de um Grupo de Servidores

Loacutegicos Opccedilatildeo permissvel apenas se o nuacutemero

miacutenimo de servidores (variaacutevel ldquominServerCountrdquo)

for menor que o nuacutemero de servidores activos

(variaacutevel ldquoactiveServerCountrdquo)

editLogicalServersServersGroup Permite a ediccedilatildeo de todos os Servidores

pertencentes a um Grupo de Servidores Loacutegicos

powerOnLogicalServersGroup Liga todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

powerOffLogicalServersGroup Desliga todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

powerCycleLogicalServersGroup Faz o reboot de todos os Servidores que pertencem

a um mesmo Grupo de Servidores Loacutegicos

activateLogicalServerGroup Activa todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

deactivateLogicalServerGroup Desactiva todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

5525 Servidores

Um Grupo de Servidores eacute constituiacutedo por uma lista de Servidores Cada grupo como

jaacute foi referido pode ser completamente diacutespar dos demais dentro de um mesmo

Serviccedilo O mesmo jaacute natildeo acontece nos Servidores dentro de um mesmo Grupo de

Servidores As configuraccedilotildees dos Servidores dentro de um mesmo Grupo de

Servidores tem todos as mesmas caracteriacutesticas podendo variar apenas no numero de

discos memoacuteria e processamento

O utilizador poderaacute obter informaccedilotildees como nome do Servidor status se eacute ou

natildeo virtual se estaacute em cloud se eacute o servidor base memoacuteria e processamento para

futuros upgrades com progressbars para facilmente visualizar o estado actual custo

datas de criaccedilatildeo e modificaccedilatildeo localizaccedilatildeo do ficheiro da VM (acessiacutevel apenas ao

administrador) e as listas associadas de discos software e interfaces

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa aos Servidores

56

Figura 35 - Execuccedilatildeo tab ldquoServerrdquo

Export Server

Permite o download em ficheiro XML dos detalhes do Servidor em

visualizaccedilatildeo o utilizador poderaacute consultar mais tarde em modo offline os detalhes

desse Servidor Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no clique do

icon do nome do Servidor respectivo no menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Servidor

directamente numa InfoWindow dentro do webservice A informaccedilatildeo em XML

torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Remove Server

A diferenccedila desta acccedilatildeo no Servidor para a mesma acccedilatildeo no Grupo de

Servidores eacute o facto da remoccedilatildeo ser do Servidor em visualizaccedilatildeo Para remover

mais do que um Servidor essa operaccedilatildeo teraacute obrigatoriamente que ser no Grupo

de Servidores

57

Edit Server

Como na remoccedilatildeo de servidores a diferenccedila desta acccedilatildeo para a mesma

acccedilatildeo no Grupo de Servidores eacute que a ediccedilatildeo de Servidores na tab Servidor apenas

afectaraacute o Servidor em visualizaccedilatildeo e natildeo os restantes Servidores do Grupo de

Servidores

Power ON Server

Acccedilatildeo que permite a ligaccedilatildeo do Servidor em visualizaccedilatildeo e que este fique

disponiacutevel para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica

activa quando ldquoserverStatus==OFFrdquo

Power OFF Server

Acccedilatildeo que permite que um Servidor seja desligado e que este fique

indisponiacutevel para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica

activa quando ldquoserverStatus==UPrdquo

Power Cycle Server

Acccedilatildeo que permite fazer o reboot a um Servidor e este continue disponiacutevel

para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica activa quando

ldquoserverStatus==UPrdquo

Activate Server

Permite a activaccedilatildeo do Servidor em visualizaccedilatildeo No final desta operaccedilatildeo

o Servidor fica em modo ldquoserverStatus==UPrdquo e ficam automaticamente disponiacutevel

para utilizaccedilatildeo

Deactivate Server

Permite a desactivaccedilatildeo do Servidor em visualizaccedilatildeo No final desta

operaccedilatildeo o Servidor fica em modo ldquoserverStatus==DEACTIVATEDrdquo

Actions Server

Como no Grupo de Servidores os ldquotriggered actionsrdquo associadas a cada

Servidor satildeo parte integrante do Serviccedilo criado Se o Servidor em visualizaccedilatildeo

tiver ldquotriggered actionsrdquo esta acccedilatildeo estaraacute visiacutevel ao utilizador para listagem

List Snapshots

Acccedilatildeo que permite listar todos os Snapshots associados ao Servidor em

visualizaccedilatildeo Todas as acccedilotildees nos Snapshots satildeo relativas ao Servidor em questatildeo

Create Snapshot

Acccedilatildeo que permite a criaccedilatildeo de Snapshots no Servidor

Existem campos obrigatoacuterios como o nome do Snapshot O nome do

Servidor eacute preenchido automaticamente com o nome do Servidor que estaacute a ser

visualizado Opccedilotildees como ldquoInclude Memory Staterdquo ou ldquoQuiesce filesystemrdquo

estatildeo tambeacutem disponiacuteveis para selecccedilatildeo aquando da criaccedilatildeo do Snapshot

58

List ServerPool

Acccedilatildeo que permite a listagem de todas as pools de Servidores existentes no

webservice Na imagem seguinte podemos visualizar quatro pools de Servidores

que foram criadas pelo administrador

ldquoCreate Server Poolrdquo eacute uma acccedilatildeo atribuiacutedas apenas ao administrador com

campos obrigatoacuterios como nome da Pool

ldquoDelete Server Poolrdquo eacute outra acccedilatildeo atribuiacutedas apenas ao administrador

permitindo a remoccedilatildeo de uma Pool de Servidores do sistema

Esta operaccedilatildeo natildeo remove Servidores nem Serviccedilos mas remover todas as

associaccedilotildees jaacute existentes entre Servidores e utilizadores Como acccedilatildeo importante

o webservice evidencia isso mesmo com uma InfoWindow de aviso ao

administrador

VM Host

Acccedilatildeo que permite a listagem de todos os hosts fiacutesicos associados a uma

determinada Pool de Servidores

Nesta operaccedilatildeo obtecircm-se detalhes relativos ao host como eacute o caso do

nome id endereccedilo IP domiacutenio DNS tipo de virtualizaccedilatildeo modelo cluster

memoacuteria total e consumida dados dos processadores e ainda dados relativos ao

armazenamento (DataStores) e rede (VirtualSwitch)

Remote Session

Acccedilatildeo que permite a listagem de todas as Sessotildees Remotas atribuiacutedas ao

Servidor em visualizaccedilatildeo

Esta acccedilatildeo eacute dependente do status do Servidor fica activa quando

ldquoserverStatus==UPrdquo

A imagem seguinte evidencia as duas ligaccedilotildees existentes para a VM do

Servidor especiacutefico Duas ligaccedilotildees relativas agraves duas Interfaces disponiacuteveis no

Servidor uma na rede ldquoHP Networkrdquo com o endereccedilamento IP 16231875 e

outra na rede local da infra-estrutura rede ldquoCloudSystemrdquo com o endereccedilamento

IP 19216810203

As opccedilotildees de Sessotildees Remotas possiacuteveis satildeo as que jaacute foram descritas na

listagem das ldquoRemote Sessionsrdquo do Serviccedilo Neste caso direccionadas apenas ao

um uacutenico Servidor

Tabela 5 - Funccedilotildees associadas aos Servidores

Funccedilatildeo Descriccedilatildeo

getLogicalServer Obteacutem os detalhes de um Servidor Logico em formato XML

para visualizaccedilatildeo na infowindow e opccedilatildeo de download

59

findLogicalServer Obteacutem os Detalhes de um Servidor Loacutegico especiacutefico

addServer Addiciona um Servidor a um Grupo de Servidores Loacutegicos

se o nuacutemero de servidores activos (variaacutevel

ldquoactiveServerCountrdquo) for menor que o nuacutemero maacuteximo de

servidores (variaacutevel ldquomaxServerCountrdquo)

removeServer Remove um Servidor de um Grupo de Servidores Loacutegicos se

o nuacutemero miacutenimo de servidores (variaacutevel

ldquominServerCountrdquo) for menor que o nuacutemero de servidores

activos (variaacutevel ldquoactiveServerCountrdquo)

editLogicalServer Permite a ediccedilatildeo de memoacuteria e processamento de um

determinado Servidor Loacutegico

powerOnLogicalServer Liga um Servidor Loacutegico especiacutefico

powerOffLogicalServer Desliga um Servidor Loacutegico especiacutefico

powerCycleLogicalServer Reboot de um Servidor Loacutegico especiacutefico

activateLogicalServer Activaccedilatildeo de um Servidor Loacutegico especiacutefico

deactivateLogicalServer Desactivaccedilatildeo de um Servidor Loacutegico especiacutefico

getRdpFile Obteacutem o ficheiro RDP para download e posterior acesso

remoto

getLogicalServersAndIPs Obteacutem uma lista de todos os IPs das Interfaces de um

determinado Servidor Loacutegico

getVmHost Obteacutem os detalhes do Host associado a um Servidor Loacutegico

5526 Disco

Cada servidor tem necessariamente um ou mais discos associados estes podem ser

rotulados de ldquoStereotyperdquo ldquoVirtualrdquo ou ldquoPhysicalrdquo Um disco ldquoStereotyperdquo

corresponde a um disco-base ie um disco que existe no template (do servidor)

excepto disco de boot os restantes como o proacuteprio nome indica satildeo discos virtuais

ou fiacutesicos

Nesta tab o utilizador pode obter informaccedilatildeo do nome do disco tamanho tipo

de RAID tipo de Storage se eacute ou natildeo Bootable Shareable tipo de Raw Mapping

(VIRTUAL PHYSICAL NONE e OTHER) custo associado ficheiro do disco

(virtual - acessiacutevel apenas ao administrador) e data de criaccedilatildeo e modificaccedilatildeo

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa aos discos

60

Figura 36 - Execuccedilatildeo tab ldquoDisksrdquo

Add Stereotype Disks

Acccedilatildeo jaacute enunciada no Grupo de Servidores Como estamos a visualizar

um disco e as suas configuraccedilotildees esta acccedilatildeo estaraacute apenas disponiacutevel se o disco

em visualizaccedilatildeo natildeo for bootable Como jaacute referido apenas os discos que natildeo

sejam bootable satildeo considerados ldquoStereotype Disksrdquo e poderatildeo ser criados novos

discos com base no disco em questatildeo

Como no Grupo de Servidores tambeacutem nos discos esta opccedilatildeo soacute seraacute

possiacutevel se natildeo existirem Snapshots relativos a qualquer Servidor desse Grupo de

Servidores Esta acccedilatildeo carece da aprovaccedilatildeo do administrador

Tabela 6 - Funccedilotildees associadas aos Discos

Funccedilatildeo Descriccedilatildeo

addDiskToLogicalServerGroup Adiciona um Stereotype Disk a um Grupo de

Servidores Loacutegicos Operaccedilatildeo que carece da aprovaccedilatildeo

do Administrador

addNewDiskToLogicalServerGro

up

Adiciona um disco virtual ou fiacutesico a um Grupo de

Servidores Loacutegicos Operaccedilatildeo que carece da aprovaccedilatildeo

do Administrador O tamanho do disco eacute

automaticamente determinado pelo tipo do Grupo de

Servidor Loacutegico

61

5527 Software

Recursos como Software tambeacutem fazem parte dos recursos do Servidor Mediante a

instalaccedilatildeo preacutevia do ldquoServer Automationrdquo no MOE aquando da criaccedilatildeo do Template

poderatildeo ser associados nos recursos de cada Servidor uma lista de software como lista

de packages com SO software antiviacuterus base de dados etc previamente instalados

em VM e posteriormente transformados em Tamplate

Cada Servidor pertencente a um mesmo Grupo de Servidores teraacute uma mesma

lista de software base associado

Informaccedilotildees relativas ao software tambeacutem estatildeo disponiacutevel ao utilizador como

nome tipo tipo de OS tipo de Deployment Service ficheiro de configuraccedilatildeo do OS

(acessiacutevel apenas ao administrador) tipo de virtualizaccedilatildeo localizaccedilatildeo do ficheiro

relativo ao software (acessiacutevel apenas ao administrador) e data de criaccedilatildeo e

modificaccedilatildeo

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Software

Figura 37 - Execuccedilatildeo tab ldquoSoftwarerdquo

List Softwares

Acccedilatildeo disponiacutevel apenas ao administrador permite a listagem de todo o

Software disponiacutevel no sistema O software pertencente ao Grupo de

ServidoresServidor estaacute disponiacutevel directamente no menu lateral esquerdo

Mediante a instalaccedilatildeo preacutevia do ldquoServer Automationrdquo no MOE aquando

da criaccedilatildeo do Template poderaacute ser associado nos recursos de cada Grupo de

ServidoresServidor uma lista de software como lista de packages com SO

software antiviacuterus base de dados etc

Software Detals

Acccedilatildeo disponiacutevel apenas ao administrador permite a visualizaccedilatildeo de todos

os detalhes do Software

62

Tabela 7 - Funccedilotildees associadas ao Software

Funccedilatildeo Descriccedilatildeo

listSoftware Obteacutem a lista de todo o Software disponiacutevel no

webservice Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura

de orquestraccedilatildeo

getSoftware Obteacutem os detalhes de um Software especiacutefico

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

5528 Interface

As Interfaces (NICs) fazem igualmente parte das configuraccedilotildees base de cada Servidor

podendo no entanto existir redundacircncia ou natildeo

Informaccedilotildees das Interfaces disponiacutevel na tab respectiva como nome se eacute a

interface primaacuteria data de criaccedilatildeo modificaccedilatildeo e informaccedilotildees sobre a rede como

nome se eacute puacuteblica partilhada tipo e endereccedilo IP com informaccedilotildees como o endereccedilo

IP propriamente dito tipo de atribuiccedilatildeo custo e uma lista de NatEntrys (Network

Address Translation)

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa as Interfaces

Figura 38 - Execuccedilatildeo tab ldquoInterfacerdquo

List Subnets

Acccedilatildeo disponiacutevel apenas ao administrador permite a listagem de todas as

redes existentes no sistema com informaccedilotildees como nome da rede endereccedilo

mascara source tipo de IP se eacute uma rede puacuteblica e os endereccedilamentos DHCP e

estaacutecticos nuacutemero de IPs usados e em uso etc

63

Add IPAddress

Acccedilatildeo que permite atribuir automaticamente (pelo sistema) um IP

flutuante a uma Interface Uma Interface associada a um Servidor dentro de um

determinado Serviccedilo

Com esta acccedilatildeo o utilizador solicita um IP flutuante de uma pool de IPs

que o administrador tenha criado Nesse sentido o utilizador apenas solicita um IP

flutuante para uma Interface (NIC0) de um determinado Servidor pertencente a

um Serviccedilo Como o utilizador estaacute a visualizar a Interface os campos satildeo

automaticamente preenchidos Operaccedilatildeo apenas permitida em servidores loacutegicos

em cloud

Remove IPAddress

Acccedilatildeo que permite remover um IP flutuante Neste caso o utilizador tem

que fornecer o endereccedilo IP flutuante previamente adquirido

Move IPAddress

Acccedilatildeo que permite mover um determinado IP flutuante entre instacircncias

Na eventualidade do utilizador jaacute for detentor de um IP flutuante pode move-lo

atribuindo-o agrave Interface em visualizaccedilatildeo Operaccedilatildeo apenas permitida em

servidores loacutegicos em cloud

VM Access

Acccedilotildees de acesso remoto directamente na Interface

Esta acccedilotildees satildeo dependente do status do Servidor ficam activas quando

ldquoserverStatus==UPrdquo

Como estamos directamente a visualizar uma Interface o acesso remoto eacute

feito atraveacutes dessa Interface desse IP conhecido

As opccedilotildees de Sessotildees Remotas possiacuteveis satildeo as que jaacute foram descritas na

listagem das ldquoRemote Sessionsrdquo do Serviccedilo

RDP (Remote Desktop Protocol)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet

VMRC (VMware Remote Console)

Tabela 8 - Funccedilotildees associadas agraves Interfaces

Funccedilatildeo Descriccedilatildeo

getVMID Obteacutem o ID de uma VM atarveacutes do endereccedilo IP da

Interface

64

executeRDP Execuccedilatildeo directa do comando RDP mstscexe

vIPAddress console

addFloatingIPAddress Adiciona automaticamente um endereccedilo IP flutuante a

uma determinada Interface Operaccedilotildees de IP flutuante natildeo

satildeo suportadas para Servidores Loacutegicos que natildeo estejam

em cloud

removeFloatingIPAddress Remove um determinado endereccedilo IP flutuante de um

Servidor Loacutegico Operaccedilotildees de IP flutuante natildeo satildeo

suportadas para Servidores Loacutegicos que natildeo estejam em

cloud

moveFloatingIPAddress Associa um determinado endereccedilo IP flutuante jaacute

existente a uma Interface Operaccedilotildees de IP flutuante natildeo

satildeo suportadas para Servidores Loacutegicos que natildeo estejam

em cloud

5529 Redes

As Redes como o Software teratildeo que estar previamente configuradas e

implementadas para posterior uso em Templates e Serviccedilos A listagem de redes

existentes na infra-estrutura estaacute apenas disponiacutevel ao Administrador ou Arquitecto de

toda a infra-estrutura de orquestraccedilatildeo e permite a visalizaccedilatildeo de todas as redes

existentes com informaccedilotildees como o nome da rede gama de endereccedilos IP mascara

tipo de IPV e se eacute um endereccedilamento estaacutectico ou obtido por DHCP

Figura 39 - Listagem das redes existentes

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa agraves Redes

65

Tabela 9 - Funccedilotildees associadas agraves Redes

Funccedilatildeo Descriccedilatildeo

listSubnets Obteacutem uma lista com todas as redes existentes no

webservice

listSubnet Obteacutem os detalhes de uma rede especiacutefica

55210 Snapshots

Os Snapshots satildeo um recurso valioso quando nos deparamos com problemas de

inconsistecircncias desastres seguranccedila etc que natildeo sendo backup permite a

recuperaccedilatildeo do servidor em segundos contrariamente a restauraccedilatildeo a partir de um

backup tradicional recuperaccedilatildeo ou reinstalaccedilatildeo de um SO ou qualquer outra teacutecnica

com o seu exagerado tempo de consolidaccedilatildeo

A listagem de todos os Snapshots estaacute disponiacutevel aquando da visualizaccedilatildeo da

informaccedilatildeo relativa ao Grupo de Servidores onde satildeo visualizados todos os Snapshots

pertencentes ao grupo e no Servidor onde apenas satildeo visualizados os Snapshots desse

Servidor em visualizaccedilatildeo

Uma lista relacionada de Snapshots sucessivos com informaccedilotildees como nomes

do Serviccedilo do Grupo de Servidores e do Servidor assim como nome do Snapshot a

sua relaccedilatildeo parental e se estaacute ou natildeo activo ficam disponiacuteveis ao utilizador

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa aos Snapshots

Figura 40 - Execuccedilatildeo tab ldquoSnapshotrdquo

Tabela 10 - Funccedilotildees associadas aos Snapshots

Funccedilatildeo Descriccedilatildeo

listServerSnapshots Obteacutem a listagem de todos os Snapshots de um Servidor

Loacutegico especiacutefico

listServerGroupSnapshots Obteacutem a listagem de todos os Snapshots de um Grupo de

Servidor Loacutegico

66

snapshotCreate Cria um Snapshot de um Servidor especiacutefico

revertServerSnapshot Reverte um determinado Snapshot para o Servidor

correspondente

deleteServerSnapshot Remove um Snapshot do sistema

55211 Request

A visualizaccedilatildeo do estado actual das acccedilotildees do utilizador eacute considerado um dos pontos

chave desta framework O simples update da ldquoprogressbarrdquo carece de uma perfeita

sincronizaccedilatildeo entre o Webservice e o MOE

O utilizador poderaacute visualizar sempre uma listagem de todos os seus pedidos ou

pormenoriza-los por relaccedilotildees 1) UtilizadorServiccedilos 2) TemplateServiccedilos 3)

Serviccedilo

A listagem de todos os pedidos estaacute disponiacutevel aquando da visualizaccedilatildeo da

informaccedilatildeo relativa a qualquer recurso sendo que a opccedilatildeo 1) eacute geral e sempre

disponiacutevel e as opccedilotildees 2) e 3) satildeo especiacuteficas a recursos em visualizaccedilatildeo Ficam assim

disponiacuteveis informaccedilotildees como tipo data submissatildeo do pedido comeccedilo e fim status

progresso () nome do Serviccedilo ao qual o pedido estaacute associado etc

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo da listagem

dos pedidos do utilizador

Figura 41 - Execuccedilatildeo tab ldquoRequestsrdquo

Opccedilotildees como ldquoAproval Staterdquo e ldquoContinuerdquo de pedidos que carecem da

aprovaccedilatildeo do Administrador ficam apenas acessiacuteveis aos utilizadores com permissotildees

de administraccedilatildeo e a opccedilatildeo de cancelamento acessiacutevel aos utilizadores que solicitaram

esses pedidos

67

Tabela 11 - Funccedilotildees associadas aos Requests

Funccedilatildeo Descriccedilatildeo

listRequests Listagem de todos os pedidos do utilizador

listRequestsTemplateDetails Listagem de todos os pedidos do par utilizadorTemplate

listRequestsServiceDetails Listagem de todos os pedidos do par utilizadorServiccedilo

getRequestInfo Obteacutem detalhes de toda a informaccedilatildeo associada a um

determinado pedido

getPercentComplete Obteacutem a percentagem de um pedido

getRequest Obteacutem os detalhes particulares de um pedido

setRequestApprovalState Aprovaccedilatildeo de um pedido feito por um utilizador e que

esteja no estado PAUSED_FOR_APPROVAL

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

continueRequest Permite a continuaccedilatildeo de um pedido feito por um

utilizador e que esteja no estado IN_PROGRESS

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

cancelRequest Cancelamento de um pedido

55212 Pools de Servidores

Uma pool de servidores eacute um grupo de um ou mais hosts de virtualizaccedilatildeo com a uma

mesma arquitetura com acesso agraves mesmas redes virtuais e fiacutesicas e recursos de

armazenamento As Pools de servidores permitem balanceamento de carga recursos

de alta disponibilidade e partilha de alguns recursos para todos os membros dessa

pool

Informaccedilotildees das Pools disponiacutevel na tab respectiva como nome ID da

organizaccedilatildeo Ids dos Hosts e o grupo de utilizadores associados a cada Pool de

Servidores

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa a uma determinada Pool de Servidores

68

Figura 42 - Execuccedilatildeo tab ldquoServerPoolsrdquo

Tabela 12 - Funccedilotildees associadas agraves Pools de Servidores

Funccedilatildeo Descriccedilatildeo

listServerPools Obteacutem uma listagem de todas as Pools de Servidores para

a criaccedilatildeo de um Serviccedilo

listServerPoolsTab Obteacutem todas as Pools de Servidores existentes no

webservice Informaccedilatildeo disponibilizada na tab

serverPools

listVmHostIds Obteacutem uma lista com todos os Hosts associados a uma

Pool de Servidores

getServerPool Obteacutem os detalhes de uma Pool de Servidores

createServerPool Permite a criaccedilatildeo de uma nova Pool de Servidores

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

deleteServerPool Remove uma Pool de Servidores do systema Operaccedilatildeo

executada apenas pelo Administrador ou Arquitecto de

toda a infra-estrutura de orquestraccedilatildeo

56 Camada de Dados

Numa orientaccedilatildeo a objectos os objectos considerados ldquopersistentesrdquo satildeo todos os

objectos que continuam a existir apoacutes o teacutermino de execuccedilatildeo do programa por norma

guardados numa base de dados relacional ou mesmo em ficheiros em disco Jaacute os

objectos considerados ldquonatildeo persistentesrdquo deixam de existir quando o programa

termina satildeo objectos armazenados em tempo de execuccedilatildeo e satildeo usados apenas

durante esse periacuteodo

561 Dados natildeo persistentes

Os dados natildeo persistentes nesta framework destinam-se exclusivamente ao

utilizador permissotildees de acesso e seguranccedila Internamente o servidor guarda em

tempo de execuccedilatildeo dados relativos ao utilizador como eacute o caso do username

69

(userPrincipal) password (IOClientPasswordHandler) privileacutegios de acesso

(rolePrincipal) grupo de utilizadores (userGroups) e credenciaccedilotildees necessaacuteria

(TrustAllX509TrustManager) para comunicaccedilatildeo com a API do MOE A comunicaccedilatildeo

eacute estabelecida (IOSoapServicePort_Client) e quando existir a solicitaccedilatildeo de

determinados conteuacutedos estes satildeo disponibilizados ou natildeo mediante o ldquotipordquo (role)

de utilizador e suas permissotildees

Neste contexto a autenticaccedilatildeo eacute todo um processo de determinar se uma

entidade eacute quem quem diz ser e a autorizaccedilatildeo o processo de conceder permissotildees de

acesso a recursos Logicamente a autenticaccedilatildeo precede a autorizaccedilatildeo

O moacutedulo login implementa isso mesmo todos os passos de autenticaccedilatildeo

credenciaccedilatildeo e permissotildees uma teacutecnica conhecida como Realm JAAS (Java

Authentication and Authorization Service) como conjunto de interfaces de

programaccedilatildeo de aplicaccedilotildees (APIs) com opccedilotildees de autenticaccedilotildees em modo Basic e

Form usando para isso os denominados realms File e JDBC (Java Database

Connectivity) em runtime

Figura 43 - Realm JAAS (Java Authentication and Authorization Service)

562 Dados persistentes

5621 Cookies HTTP

Os dados persistentes destinam-se especialmente ao utilizador e foram idealizados

nesse sentido tornar a relaccedilatildeo utilizadorwebservice mais amigaacutevel e acima de tudo

praacutetica e independente do ldquostatusrdquo da infra-estrutura

Os tatildeo conhecidos COOKIEs HTTP satildeo dados armazenado no

navegadorbrowser do utilizador quando este acede a um determinado site Eacute um

mecanismo usado para guardar as informaccedilotildees relativas a um utilizador como

username formataccedilatildeo de conteuacutedos actividades escolhas cliques etc para quando

aceder novamente a esse site essas configuraccedilotildees anteriores estarem preacute-definidas e

configuradas

70

Os cookies de autenticaccedilotildees em sites web satildeo o meacutetodo mais comum e nesta

framework este meacutetodo foi usado para guardar dados relativos ao utilizador O

servidor natildeo precisa de suportar o peso das ligaccedilotildees siacutencronas para saber se um

determinado utilizador estaacute logado ou natildeo e neste sentido este meacutetodo torna-se eficaz

Os dados guardados e relativos ao utilizador que satildeo dados como username

role layout do webservice (gtheme) layout do menu lateral esquerdo (ttheme)

informaccedilatildeo relativa agraves regiotildees do webservice visualizada ou omitida (nregion

wregion eregion sregion) e um boolean (islogin) para uma mensagem de boas

vindas aquando do login Cada vez que um determinado utilizador alterar o layout do

webservice ou fechar o painel de visualizaccedilatildeo de determinada informaccedilatildeo satildeo passos

que satildeo guardados e durante toda a navegaccedilatildeo estas acccedilotildees permaneceratildeo guardadas

mesmo em futuros logins desse utilizador

5622 Modelo ER

Uma infra-estrutura como o MOE eacute desenhada e implementada para funcionamento

online e todas as alteraccedilotildees como criaccedilatildeo de um Serviccedilo ediccedilatildeo desse Serviccedilo

criaccedilatildeo de Discos etc satildeo alteraccedilotildees com acccedilatildeo imediata na infra-estrutura

Infelizmente nem tudo corre sempre como queremos e quando mais precisamos de

uma ou outra implementaccedilatildeo ou configuraccedilatildeo eacute quando o serviccedilo estaacute em baixo e por

uma ou outra razatildeo ficamos impossibilitados de o fazer

A implementaccedilatildeo de uma Base de Dados com toda a informaccedilatildeo relativa ao

utilizador colmata sempre estas falhas imprevistas Um implementaccedilatildeo independente

da infra-estrutura que permite ao utilizador ter acesso total aos seus dados crie edite

apague recursos em modo offline com sincronizaccedilatildeo com o MOE automaacuteticamente ou

por acccedilatildeo do utilizador

Um moacutedulo uacutetil e praacutetico que facilita o acesso e configuraccedilotildees dos serviccedilos do

utilizador Acccedilotildees que carecem de algum tempo de implementaccedilatildeo apoacutes a sua

solicitaccedilatildeo Acccedilotildees agarradas ao utilizador ao seu tempo e disposiccedilatildeo e natildeo agrave infra-

estrutura Acccedilotildees tidas pelo utilizador que sem preocupaccedilatildeo com tempos de execuccedilatildeo

e implementaccedilatildeo cria edita ou apaga o seu Serviccedilo e numa futura ligaccedilatildeo tudo eacute

sincronizado automaticamente

Segue-se o modelo ER implementado que descreve conceptualmente os dados

e seus relacionamentos em UML Em realce os principais recursos

71

Figura 44 - Modelo ER

Pela anaacutelise do modelo ER facilmente se percebe como os recursos se

relacionam entre siacute Segue-se uma explicaccedilatildeo do modelo e dos seus recursos

principais

Cada Template tem uma lista de Serviccedilos associados que aquando da sua

implementaccedilatildeo tiveram esse Template como base e apresenta um e um soacute custo total

que corresponde a soma de todos os recursos implementados e permitidos nesse

Template

72

Um Serviccedilo como jaacute referido tem sempre por base um e um soacute Template um

e um soacute ldquoLeasePeriodrdquo que corresponde ao tempo de utilizaccedilatildeo e um e um soacute custo

total associado Este custo eacute igualmente a soma de todos os recursos instanciados e

em uso nesse Serviccedilo No Serviccedilo eacute possiacutevel implementar uma nova Entidade

denominada ldquoServiceActionrdquo que corresponde a um e um soacute conjunto de acccedilotildees a

executar automaticamente antes durante ou depois da criaccedilatildeo desse Serviccedilo O

Serviccedilo encontra-se sempre em um e um soacute estado (ServiceEntityStatusEnum) de cada

vez que eacute acedido Logicamente como referido ao longo do presente relatoacuterio um

Serviccedilo eacute constituiacutedo por uma lista de Grupos de Servidores numa relaccedilatildeo de um para

muitos

Um Grupo de Servidores como o Serviccedilo apresenta tambeacutem um e um soacute

conjunto de acccedilotildees a executar automaticamente antes durante ou depois da criaccedilatildeo

desse Serviccedilo nesse Grupo de Servidores em especiacutefico Novas Entidades satildeo aqui

retratadas como seguranccedila (LogicalFirwallRuleGoup) e balanceamento de carga

(LogicalLoadBalancer) com a relaccedilatildeo de muitos para um Um Grupo de Servidores

estaacute sempre associado a um e um soacute Serviccedilo e eacute constituiacutedo por uma lista de

Servidores numa relaccedilatildeo de um para muitos Uma nova Entidade aparece no Grupo de

Servidores (LogicalIPAddress) com a atribuiccedilatildeo de um IP uacutenico ao Grupo

Um Servidor relaciona-se com o Grupo de Servidores numa relaccedilatildeo de muitos

para um contrariamente agrave relaccedilatildeo com as Entidades LogicalSoftware e LogicalDisk

cuja relaccedilatildeo eacute de muitos para muitos Jaacute a relaccedilatildeo com LogicalNetworkInterface eacute

apenas uma relaccedilatildeo de um para muitos um Servidor pode ter muitas Interfaces mas

uma Interfaces estaacute sempre associada a um e um soacute Servidor

Por uacuteltimo como componentes do Servidor Software Discos e Interfaces

Um mesmo Software pode estar instanciado em muitos Servidores assim como

muitos Servidores podem ter uma lista de Software Os Discos com a opccedilatildeo ldquosharedrdquo

podem pertencer a vaacuterios Servidores e vice-versa As Interfaces aleacutem de pertencer a

um e um soacute Servidor tem igualmente um e um soacute IP associado

57 Feedback

O presente trabalho como jaacute referido teve sempre como objectivo uacuteltimo a facilidade

de acccedilotildees do utilizador visualizaccedilatildeo e organizaccedilatildeo da disponibilizaccedilatildeo de toda a

informaccedilatildeo e nesse intuito ao longo de toda a elaboraccedilatildeo foram desencadeadas vaacuterias

apresentaccedilotildees ao Orientador da Tese professor Paulo Lopes e Orientador da

elaboraccedilatildeo na HP Rui Ramos Os Feedbacks serviram para redireccionamentos e

orientaccedilotildees de programaccedilatildeo

A disponibilizaccedilatildeo da informaccedilatildeo por Tabs transmite toda a informaccedilatildeo ao

utilizador de uma forma organizada facilmente acessiacutevel e raacutepida na percepccedilatildeo dessa

informaccedilatildeo e suas acccedilotildees possiacuteveis associadas

73

A alteraccedilatildeo aconselhada pelo Rui Ramos na ediccedilatildeo de Servidores do Grupo de

Servidores como a passagem de listagens para um simples ldquobuttonrdquo com um sinal ldquo+rdquo

para adicionar Servidores ou um sinal ldquo-rdquo para remover tornou-se mais praacutetica e

intuitiva

Disponibilizaccedilatildeo de mais meios de acesso agraves VMs como a opccedilatildeo VMRC

(VMware Remote Console) ou RDP (Remote Desktop Protocol) satildeo sempre opccedilotildees

vaacutelidas e uacuteteis para o utilizador final

A disponibilizaccedilatildeo da informaccedilatildeo e das acccedilotildees associadas agrave medida que o

utilizador vai descendo no menu em aacutervore (menu lateral esquerdo) torna-se uacutetil pela

visualizaccedilatildeo hieraacuterquica de todos os recursos e acima de tudo praacutetico ao que o

utilizador realmente pretende com um simples clique

Personalizaccedilatildeo do layout aconselhada pelo professor Paulo Lopes com os

diversos ldquoThemesrdquo opccedilotildees de visualizaccedilatildeoocultaccedilatildeo de informaccedilatildeo etc com as

valecircncias jaacute descritas no iniacutecio deste capiacutetulo

Opccedilatildeo ldquoDatagridrdquo onde a disponibilizaccedilatildeo da informaccedilatildeo passa de simples

Tabs para listagem em tabelas Visualizaccedilatildeo uacutetil quando a informaccedilatildeo eacute demasiada

evitando assim o scroll do utilizador na busca da restante informaccedilatildeo bastando para

isso selecionar a ldquoquantidaderdquo de informaccedilatildeo que pretende visualizar naquele

momento

Feedbacks sempre positivos e atempados para as alteraccedilotildees necessaacuterias a

efectuar no framework

58 Questotildees principais

No decorrer da elaboraccedilatildeo deste webservice foram seguidos caminhos e

implementaccedilotildees que de um modo geral se tornaram praacuteticas e uacuteteis existindo no

entanto algumas desaconselhadas pela especificidade deste tipo de implementaccedilotildees

Foi implementada a opccedilatildeo de visualizaccedilatildeo e acccedilotildees em modo offline Foi

criada uma base de dados que suportava todos os dados do MOE a sincronizar

aquando do refresh do webservice ou por acccedilatildeo do utilizador Tal opccedilatildeo foi

desaconselhada pelo facto do sistema estar sempre online disponiacutevel e ter custos

associados

A transformaccedilatildeo de datas ldquoepoch2daterdquo e ldquodate2epochrdquo foi uma das opccedilotildees

que mais trabalho deu pelo facto da API natildeo indicar que o referido nuacutemero eacute a data

em eacutepoca e as casas decimais que entram na conversatildeo Uma eacutepoca em Unix (o

conhecido Unix timestamp) eacute o nuacutemero em segundos que distam de 01 de Janeiro de

1970 ou seja eacute o tempo Unix 0 que corresponde agrave meia-noite de 01011970 Por

norma uma data em eacutepoca eacute um nuacutemero inteiro de 32 bits As duas funccedilotildees

ldquoepoch2daterdquo e ldquodate2epochrdquo tratam dessas converotildees para o utilizador poder

observar as datas numa formataccedilatildeo legiacutevel Esta formataccedilatildeo ainda carece de uma

74

transformaccedilatildeo do dia com o mecircs para ser apresentada no formato europeu

diamecircsano

Existe coacutedigo HTML que eacute criado dinamicamente esta opccedilatildeo tornou-se

bastante uacutetil pela disponibilizaccedilatildeo de grandes quantidades de informaccedilatildeo nos mesmos

ldquoinput boxesrdquo como eacute o caso de toda a informaccedilatildeo do Servidor dentro de um mesmo

Grupo de Servidores A informaccedilatildeo eacute diferente mas o layout eacute o mesmo por isso uma

organizaccedilatildeo adequada de IDs criados dinamicamente faz toda a diferenccedila

O tratamento de erros eacute algo que por vezes eacute decurado no dueto utilizador-

webservice Um webservice quer-se amigaacutevel e nesse intuito paacuteginas em branco

completamente diferentes do layout do webservice com erros como 404 ou 500 satildeo

desaconcelhadas Assim foi inicialmente implementado esse tratamento directamente

no ficheiro ldquoWebContentWEB-INF webxmlrdquo que redirecionava o utilizador para

paacuteginas HTML com layout igual ao webservice com o respectivo nuacutemero do erro e a

mensagem correspendente para informaccedilatildeo Uma mudanccedila e redireccionamento

draacutestico obrigando o utilizador a voltar atras e tentar de novo Optou-se pelo

tratamento directo em javascript com a visualizaccedilatildeo da mensagem de erro numa

ldquoInfoWindowrdquo sem redireccionamentos nem novas paacuteginas

A API do MOE apresenta igualmente alguns pontos que precisam de ser

melhorados em futuras versotildees Foram implementados alguns caminhos secundaacuterios

quando tudo poderia ser mais faacutecil se a API fornecesse essa implementaccedilatildeo

directamente

Informaccedilatildeo detalhada dos Templates

O objectivo deste webservice eacute criar serviccedilos e apoacutes criaccedilatildeo fazer uso dos

recursos A implementaccedilatildeo de um Serviccedilo tem por base um Template que lhe estaraacute

sempre associado Templates existentes num Cataacutelogo de Serviccedilos e com informaccedilatildeo

sobre os recursos que ficaram disponiacuteveis apoacutes a criaccedilatildeo do Serviccedilo

Naturalmente o utlizador percorre todos os Templates na busca da informaccedilatildeo

que melhor se adapte agraves suas necessidades Se esse informaccedilatildeo se apresenta escassa o

utilizador natildeo vai ficar a saber dos detalhes dos recursos que poderaacute usar aquando da

criaccedilatildeo do serviccedilo

A API natildeo fornece informaccedilatildeo detalhada dos Templates apenas uma

informaccedilatildeo muito resumida natildeo disponibilizando ao utilizador a informaccedilatildeo

associada por exemplo ao custo de cada servidor memoacuteria processador nuacutemero de

interfaces software etc

O presente webservice jaacute disponibiliza toda essa informaccedilatildeo ao utilizador

sendo que este pode navegar no Cataacutelogo de Serviccedilos do menu lateral esquedo e

visualizar toda a informaccedilatildeo detalhada dos Templates escolher o que melhor se

enquadre dentro das suas necessidades e finalmente criar o Serviccedilo

75

VMID

O utilizador pode assim usar os recursos depois do Serviccedilo criado Para a

criaccedilatildeo de uma sessatildeo remota o ID da VM era essencial Tal informaccedilatildeo natildeo existe

na API do MOE Uma listagem de VMIDs por utilizador associadas a cada serviccedilo

por servidor por interface qualquer uma destas quatro opccedilotildees era vaacutelida

ldquocustomTemplateAttributesrdquo na criaccedilatildeo do Serviccedilo

Na criaccedilatildeo de um Serviccedilo existem campos de preenchimento automaacutetico

campos obrigatoacuterios e outros opcionais Assim eacute necessaacuterio fornecer o

ldquoserviceNamerdquo (obrigatoacuterio) templateName (automatico) leasePeriod (automatico

mas o utilizador pode mudar) hostname (obrigatoacuterio) serverPoolNames (automaacutetico

mas o utilizador pode mudar) ownerEmailAddress (obrigatoacuterio) note (opcional)

billingCode (opcional) e customTemplateAttributes (opcional) A falta da API reside

neste uacuteltimo campo ldquocustomTemplateAttributesrdquo onde o utilizador poderia escolher

previamente o nuacutemero de servidores memoacuteria processadores tipo de endereccedilamento

das interfaces etc

computeServerIds do ServerPools

Uma informaccedilatildeo valiosa para a criaccedilatildeo de Pools de Servidores natildeo sabendo

os IDs dos computeServerIds natildeo eacute possiacutevel chegar aos Compute Resources para

poder adicionar recursos agraves Pools Outra falha detectada

59 Visatildeo global

Uma interface baseada no protocolo REST (Representational State Transfer) para

troca de informaccedilatildeo e direcionada aos recursos disponibilizados na Web apresenta-se

como vantagem quando estamos a lidar com isso mesmo recursos

Um conjunto de princiacutepios como HTTP e URIs que usando REST exploram

a arquitectura Web para o seu benefiacutecio usando a simplicidade natildeo soacute de transporte

como tambeacutem de protocolos

Espelhadas as vantagens do protocolo REST o presente webservice torna-se

assim mais simples em comunicaccedilatildeo e no acesso aos recursos sem o atraso da

sobrecarga apreciaacutevel na construccedilatildeo de mensagens do protocolo SOAP (Simple

Object Access Protocol) do MOE

Figura 45 - Mensagens SOAP na invocaccedilatildeo de processos do MOE

76

Figura 46 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull do WEBSERVICE

Comparativamente agrave implementaccedilatildeo em siacute no MOE existe um uacutenico menu de

acesso a todas as acccedilotildees possiacuteveis as operaccedilotildees de Grupo tornam-se assim cansativas

e desmotivadoras arrantando o utilizador para uma sequecircncia de cliques ateacute a acccedilatildeo

final Opccedilotildees como ediccedilatildeo do Grupo de Servidores natildeo existem tal eacute possiacutevel apenas

na ediccedilatildeo directa em cada Servidor No webservice basta um clique e eacute executada

uma acccedilatildeo de grupo como por exemplo desligar todo o Grupo de Servidores A ediccedilatildeo

do Grupo de Servidores eacute arrastada a todos os Servidores do Grupo apenas com uma

simples ediccedilatildeo de memoacuteria e processamento no Grupo

Como nas acccedilotildees de Grupo se o utilizador pretender uma acccedilatildeo numa

interface especiacutefica teraacute que percorrer a sequecircncia e cliques contrariamente ao

presente webservice com acccedilatildeo directa quer no menu lateral esquerdo quer na

visualizaccedilatildeo directa da informaccedilatildeo da interface

Toda a informaccedilatildeo a apresentar relativamente aos recursos eacute vasta requerendo

uma organizaccedilatildeo inteligente nessa apresentaccedilatildeo com opccedilotildees de

visualizaccedilatildeoocultaccedilatildeo dessa informaccedilatildeo se o utilizador assim o entender Acccedilotildees

possiacuteveis aquando da visualizaccedilatildeo de determinada informaccedilatildeo devem estar visiacuteveis e

acessiacuteveis No MOE isso eacute difiacutecil ou quase impossiacutevel porque a interface natildeo foi

desenhada desse modo a informaccedilatildeo apresentada torna-se desorganizada e

desmotivada a leitura

510 Resumo

Este capiacutetulo comeccedila por descreve a arquitectura usada e as suas camadas seguindo-

se um exemplo simplificado das relaccedilotildees da framework e plataformas (MOE e

VMware) Satildeo apresentados conceitos como rapidez organizaccedilatildeo e personalizaccedilatildeo

nm desenho guiado pela Interface do Utilizador Como nuacutecleo deste capiacutetulo eacute feita

toda a descriccedilatildeo da framework por camadas da Arquitectura apresentada

apresentaccedilatildeo loacutegicaserviccedilos e dados onde satildeo descritas todas as acccedilotildees passiveis de

serem executadas por recurso Por uacuteltimo os feedback tidos ao longo da

implementaccedilatildeo algumas questotildees consideradas importantes e finalmente uma visatildeo

global como foco

77

6 Consideraccedilotildees Finais

Esta tese resultou de uma proposta de tema de tese que a HP Portugal submeteu ao

Departamento de Informaacutetica da FCTUNL e que apoacutes algumas interacccedilotildees resultou no

tema intitulado Framework para a construccedilatildeo de ldquoportais de negoacuteciordquo para gestatildeo de

solicitaccedilotildees IaaS na HP Cloud

A primeira fase de Preparaccedilatildeo de Dissertaccedilatildeo ocorreu no 1ordm semestre do ano

lectivo de 20122013 e realizou-se essencialmente neste departamento pontuada por

esporaacutedicas reuniotildees na HP Portugal (Quinta da Fonte Paccedilo De Arcos) A segunda de

Elaboraccedilatildeo da Dissertaccedilatildeo decorreu imediatamente apoacutes a primeira e cumpriu-se

totalmente nas instalaccedilotildees da HP Portugal

Durante a primeira fase estudou-se o paradigma de computaccedilatildeo na cloud os seus

periacutemetros (modelos de implantaccedilatildeo) e modelos de serviccedilo Estudou-se tambeacutem a

virtualizaccedilatildeo tecnologia base da computaccedilatildeo na cloud desde a sua origem ao seu estado

actual Estudaram-se ainda as plataformas de virtualizaccedilatildeo de servidores com maior

presenccedila nos centros de dados o ESXi da VMware o XenServer da Citrix Systems e o

Hyper-V da Microsoft e ainda a tecnologia proprietaacuteria da HP designada HP Integrity

Virtual Machines Estudaram-se ainda as tecnologias de armazenamento abordando-se os

aspectos de integridade fiabilidade e desempenho oferecidos pelos Redundant Array of

Independent Disks as redes de armazenamento orientadas ao bloco Storage Area

Networks e aos ficheiros Network Attached Storage A virtualizaccedilatildeo do armazenamento

ndash tanto ao niacutevel da sua utilizaccedilatildeo para armazenar VMs como para constituir ldquodiscosrdquo de

VMs foi estudada em seguida Os aspectos da virtualizaccedilatildeo das redes foram tambeacutem

estudados

Abordados todos os conceitos e tecnologias base seguiu-se o estudo da HP Cloud

em particular a HP CloudSystem Matrix no seu ambiente Matrix Operating Environment

como infra-estrutura de trabalho da segunda parte da dissertaccedilatildeo um vasto conjunto de

componentes software e hardware que vatildeo desde os servidores ProLiant sistemas de

armazenamento EVA infra-estruturas de rede (switches e NICs) etc ateacute ao ambiente de

operaccedilatildeo Matrix com o vCenter Numa perspectiva mais conceptual estudamos os papeacuteis

dos ldquoutilizadores da cloudrdquo administrador arquitecto e consumidor de serviccedilos bem

como a funccedilatildeo do Cataacutelogo de Serviccedilos do Template e a possibilidade de definir

operaccedilotildees de orquestraccedilatildeo da infra-estrutura

Com a noccedilatildeo exacta do trabalho a implementar foram estudadas diversas

linguagens e paradigmas e suas vantagens e inconvenientes Finalmente foi apresentada

uma arquitectura da soluccedilatildeo e um cronograma para a segunda fase dos trabalhos O

esforccedilo dispendido na primeira fase foi por natildeo ter outra tarefa que natildeo fosse a realizaccedilatildeo

da preparaccedilatildeo de uma quase total dedicaccedilatildeo a esta

Durante a segunda parte desta dissertaccedilatildeo a full-time na HP foi desenvolvido um

protoacutetipo do framework totalmente funcional A realizaccedilatildeo conseguida cumpre na iacutentegra

78

a calendarizaccedilatildeo proposta na primeira fase conseguindo-se agrave custa de um razoaacutevel

esforccedilo adicional evitar atrasos e falhas

As linguagens usadas foram as jaacute descritas no capiacutetulo 5 e incluem na camada de

apresentaccedilatildeo do lado do cliente HTML CSS JavaScript JQUERY AJAX e do lado do

servidor JSP Na camada loacutegicaserviccedilos usou-se fundamentalmente Java e REST

O desenvolvimento do framework foi guiado por duas consideraccedilotildees uma do

lado do programador e com o pensamento em futuras actualizaccedilotildees e outra do lado do

utilizador com uma interface organizada intuitiva e de raacutepido acesso e acima de tudo que

possibilitasse a interacccedilatildeo com todos os recursos do Serviccedilo instanciado quer a niacutevel de

grupos quer a niacutevel dos recursos individuais Assim na oacuteptica do programador

organizou-se toda a programaccedilatildeo em torno do ldquorecursordquo como entidade fundamental em

todas as camadas em que ldquoelerdquo existe Deste modo actualizaccedilotildees ao framework podem

ser feitas olhando somente para o recurso a actualizar quer a alteraccedilatildeo seja ao niacutevel da

informaccedilatildeo ou das acccedilotildees que este suporta

Em cada uma das duas vertentes programador e utilizador foram implementadas

diversas ajudas para que estes melhor entendam toda a estrutura e implementaccedilatildeo o

referido apoio estaacute disponiacutevel no proacuteprio protoacutetipo e em manuais de ajuda em anexo a

este relatoacuterio

61 Conclusotildees

A primeira conclusatildeo que apresentamos sem falsas modeacutestias eacute a de que o portal eacute

sob o ponto de vista dos resultados conseguidos e face ao objectivo um sucesso Natildeo

soacute eacute operacionalmente funcional cumprindo o objectivo essencial mas tambeacutem o eacute na

usabilidade Destacamos sumariamente alguns aspectos desta uacuteltima

A visualizaccedilatildeo da informaccedilatildeo assim como as acccedilotildees possiacuteveis satildeo guiadas

pelos recursos o utilizador apenas selecciona o recurso e tem tudo disponiacutevel

informaccedilatildeo e acccedilotildees que pode executar tudo associado a esse e apenas esse

recurso

No menu lateral esquerdo do protoacutetipo o utilizador estaacute sempre a visualizar a

ldquoposiccedilatildeordquo de um recurso na hierarquia tornando-se assim muito faacutecil executar

acccedilotildees de grupo ou acccedilotildees individualizadas bastando para isso um simples

clique

Na versatildeo 5 da API do MOE detectamos algumas insuficiecircncias que devem

ser corrigidas em futuras versotildees Nomeadamente

Haacute atributos dos templates cuja consulta apenas eacute possiacutevel ao administrador

quando satildeo fundamentais para uma melhor experiecircncia do utilizador

referimo-nos por exemplo aos valores maacuteximos de um dado recurso (eg

nuacutemero de maacuteximo de CPUs custo de um dado disco) natildeo serem

disponibilizados aquando da criaccedilatildeo de um Serviccedilo Note-se que o protoacutetipo

79

ultrapassa esta limitaccedilatildeo executando o ldquoinitrdquo da sessatildeo como administrador e

carregando nessa altura todos esses atributos

Para aceder agrave consola de um servidor eacute necessaacuterio conhecer o ID da VM o

que natildeo eacute fornecido pela API MOE o protoacutetipo ultrapassou esta limitaccedilatildeo

usando a API disponibilizada pelo VMware vCenter

Em conclusatildeo oferecemos um protoacutetipo amigaacutevel intuitivo com uma curva

de aprendizagem muito curta organizado na vasta informaccedilatildeo a disponibilizar e

usando na sua realizaccedilatildeo tecnologias estado-da-arte no formato de informaccedilatildeo XML

e JSON Um protoacutetipo praacutetico no que ao acesso e utilizaccedilatildeo dos recursos diz respeito

objectivos uacuteltimos de todo este trabalho

Fica assim aberta uma porta para a equipa de desenvolvimento de software da

HP nas proacuteximas decisotildees sobre o caminho a seguir no desenvolvimento de novas

implementaccedilotildees e futuras versotildees da API O protoacutetipo foi submetido a testes de

usabilidade que podem ser considerados em futuras integraccedilotildees

62 Trabalho futuro

Um framework que se queira actualizado nunca pode ser considerado acabado novas

actualizaccedilotildees em resposta a solicitaccedilotildees do mercado ou a alteraccedilotildees na(s) API(s) nos

hipervisores ou decorrentes da necessidade de ldquohibridizaccedilatildeordquo com outras clouds

fazem desse framework um trabalho actualizado mas nunca terminado

No desenvolvimento deste framework tivemos acesso a uma infra-estrutura

que como eacute natural (pela complexidade do software necessaacuterio) apenas incluiacutea

alguma das opccedilotildees do vasto leque HP CSM em particular a) apenas dispunha da

pilha de virtualizaccedilatildeo VMware (ESXi e vCenter) e b) natildeo dispunha do moacutedulo

Storage Provisioning Manager (SPM)

Do exposto surgem imediatamente duas propostas para trabalho futuro a

primeira passa por dotar o portal de uma capacidade de ldquoidentificaccedilatildeo automaacuteticardquo

da(s) plataformas de virtualizaccedilatildeo que estatildeo acessiacuteveis ao utilizador disponibilizando

as ferramentas adequadas ndash por exemplo se o utilizador apenas tivesse acesso agrave infra-

estrutura Hyper-V teria apenas o iacutecone da consola Hyper-V (em vez da consola

VMware) a segunda seria ampliar as funcionalidades do framework para suportar a

interacccedilatildeo com a API do SPM cumprindo assim um dos objectivos que era permitir

ao consumidor IaaS escolher as tecnologias de armazenamento ndash SSD em vez de FC

FCoE em vez de iSCSI etc

Uma outra avenida para trabalho futuro seria a avaliaccedilatildeo e eventual realizaccedilatildeo

do framework sobre a API OpenStack

80

63 Resumo

Neste capiacutetulo foi descrito todo o trabalho efectuado nesta dissertaccedilatildeo bem como os

resultados obtidos e ainda os ldquoalertasrdquo relativos a aspectos que consideramos

merecedores de atenccedilatildeo por parte da HP Tal soacute foi possiacutevel pelo detalhe com que

toda a infra-estrutura e API foram estudadas e testadas Foram referidas as principais

contribuiccedilotildees e destacaram-se as melhorias relativamente ao portal actualmente

disponibilizado pela HP

Finalmente deixam-se algumas propostas para trabalhos futuros

81

Referecircncias bibliograacuteficas

[1] Understanding the HP CloudSystem Reference Architecture [Online]

Available httph20195www2hpcomV2GetPDFaspx4AA0-5550ENWpdf

[2] Amazon Elastic Compute Cloud (Amazon EC2) [Online] Available

httpawsamazoncomptec2

[3] GoGrid Cloud Hosting [Online] Available httpwwwgogridcom

[4] Eucalyptus [Online] Available httpwwweucalyptuscom

[5] Google AppEngine [Online] Available httpsdevelopersgooglecom

appengine

[6] Microsoft Azure [Online] Available httpwwwwindowsazurecompt-br

[7] Google Apps [Online] Available httpwwwgooglecomenterpriseapps

business

[8] Agensen O et al The Evolution of an x86 Virtual Machine Monitor ACM

Operating Systems Review Vol 44 Number 4 December 2010 pp 3-18

[9] VMware Virtualization Products for Virtual Servers Virtual Desktops and Data

Center [Online] Available httpwwwvmwarecomproducts

[10] Comparison of Platform Virtual Machines Wikipedia the Free Encyclopedia

Dezembro 12 2012 [Online] Available httpenwikipediaorgwindexphp

title=Comparison_of_platform_virtual_machinesampoldid=527691634

[11] Vsphere-51-configuration-maximums VMware Inc 2012

[12] Barham P et al Xen and the art of virtualization In Proceedings of the

nineteenth ACM symposium on Operating systems principles (SOSP03) 2003

pp 164-177

[13] Zhang X and Dong Y Optimizing Xen VMM Based on Intelreg Virtualization

Technology In Proceedings of the 2008 International Conference on Internet

Computing in Science and Engineering (ICICSE 08) IEEE Computer Society

pp 367-374

[14] CTX134582 - XenServer 610 Release Notes - Citrix Knowledge Center

[Online] Available httpsupportcitrixcomarticleCTX134582

[15] Haga Y et al Windows Server 2008 R2 Hyper-V Server Virtualization

Fujitsu Sci Tech J Vol 47 No 3 2011 pp 340-355

[16] Feature Comparison Windows Server 2008 R2 Hyper-V and Windows Server

2012 Hyper-V Windows Server Microsoft Corporation 2012

[17] Hyper-V Scalability in Windows Server 2012 [Online] Available

httptechnetmicrosoftcomen-uslibraryjj680093aspx

82

[18] Patterson D et al A Case for Redundant Arrays of Inexpensive Disks (RAID)

Proceedings of the 1989 ACM-SIGMOD International Conference on the

Management of Data ACM 1989 pp 109-116

[19] Whitehouse S The GFS2 Filesystem Proceedings of the Linux Symposium

June 27th-30th 2007 Ottawa Canada

[20] Schmuk F and Haskin R GPFS A Shared-Disk File System for Large

Computing Clusters Proceedings of the Conference on File and Storage

Technologies (FASTrsquo02) 28ndash30 January 2002 Monterey CA pp 231ndash244

[21] Vaghani S Virtual Machine File System ACM Operating Systems Review

Vol 44 Number 4 December 2010 pp 57-70

[22] Pawlowski B et al NFS version 3 design and implementation Proceedings of

the Summer USENIX Conference June 1994 pp 137-152

[23] Zhou S Virtual Networking ACM Operating Systems Review Vol 44

Number 4 December 2010 pp 80-85

[24] HP Sitescope 112 Data Sheet [Online] Available

httpwwwhpcomhpinfonewsroompress_kits2012HPDiscover2012HP_Sit

escope_112_Data_Sheetpdf

[25] Veritas Storage Foundationtrade and High Availability Solutions Application

Note Support for HP-UX Integrity Virtual Machines Symantec Corporation

2011

[26] Kennedy S et al StoRHm a protocol adapter for mapping SOAP based Web

Services to RESTful HTTP format Electronic Commerce Research September

2011 Volume 11 Issue 3 pp 245-269

[27] Silvia Schreier Modeling RESTful applications In Proceedings of the Second

International Workshop on RESTful Design (WS-REST 11) Cesare Pautasso

and Erik Wilde (Eds) ACM New York NY USA 2011 pp 15-21

[28] Axioms [Online] Available httpwwww3orgDesignIssuesAxiomshtml

[29] Sandoval Jose Restful Java Web Services Master core REST concepts and

create RESTful web services in Java Packt Publishing November 2009 pp 43-

179

[30] Burke Bill Restful Java with Jax-RS OrsquoReilly Media Inc November 2009 1st

ed

[31] Jersey 117 User Guide [Online] Available

httpsjerseyjavanetdocumentation117indexhtml

[32] Jerome Louvel Thierry Templier and Thierry Boileau Restlet in Action

Developing Restful Web Apis in Java Manning Publications Co 2012

Greenwich CT USA pp 1-165

83

[33] Johnson Sally Cloud providers can enable self-service IT with a cloud portal

[Online] Available httpsearchcloudprovidertechtargetcomfeatureCloud-

providers-can-enable-self-service-IT-with-a-cloud-

portalasrc=EM_ERU_22442845amputm_medium=EMamputm_source=ERUamputm

_campaign=20130709_ERU20Transmission20for200709201320(User

Universe20607658)_myka-reportstechtargetcomampsrc=5144272

[34] jQuery EasyUI framework [Online] Available httpwwwjeasyuicom

[35] jQuery UI Library [Online] Available httpjqueryuicomdemos

[36] jQuery API [Online] Available httpapijquerycom

84

Anexo A (Virtualizaccedilatildeo Vantagens e inconvenientes)

Virtualizaccedilatildeo Vantagens e inconvenientes

A virtualizaccedilatildeo tem vindo a crescer e a ganhar terreno principalmente nas meacutedias e

grandes empresas Tem vindo a demonstrar a sua mais-valia na gestatildeo das TIs uma

mudanccedila completa e um aliviar de trabalho para administradores e gestores

A1 Vantagens da tecnologia

Um mundo onde passa a ser possiacutevel executar software incompatiacutevel com o SO host

executar SOrsquos distintos num mesmo conjunto de hardware isoladamente sem

interferecircncias etc uma mudanccedila draacutestica na tradicional visatildeo de um SO para um

conjunto de hardware apenas

Seguranccedila Dentro de um servidor podemos ter vaacuterios VMs isoladas e

independentes do SO host Tal garante que qualquer interferecircncia no SO host

(errosataques acidentais ou intencionais) natildeo afecte as VMs nele instaladas

Isolamento Qualquer processo de uma VMs natildeo pode interferir nos

processos de outra VMs este isolamento intimamente ligado agrave seguranccedila

vem de encontro a um dos princiacutepios baacutesicos aquando da implementaccedilatildeo

desta tecnologia Esta vantagem garante-nos confidencialidade entre VMs

assim como integridade e contenccedilatildeo de erros entre VMs (seguranccedila)

Custos A quantidade de diferentes servidores existentes para diferentes SOrsquos

e aplicaccedilotildees eacute agora compactada num mesmo hardware onde existe a

possibilidade de termos vaacuterias VMs com diferentes SOrsquos com as mais

variadas aplicaccedilotildees Temos um tudo-em-um que vai reduzir os custos de uma

organizaccedilatildeo na altura do upgrade bastando para isso o upgrade de um uacutenico

servidor que suporta todos os serviccedilos da organizaccedilatildeo

Energia Propriedade intimamente ligada aos custos Com a compactaccedilatildeo do

hardware satildeo dispensando todos os demais equipamentos quer de

sustentaccedilatildeo de toda uma infra-estrutura quer os proacuteprios equipamentos de

apoio Eacute assim conseguida uma economia de energia bastante significativa

para a organizaccedilatildeo

Espaccedilo Fiacutesico A compactaccedilatildeo eacute inerente aacute diminuiccedilatildeo do espaccedilo ocupado

Um Data Center tem sempre o problema de ldquofalta de espaccedilordquo e por isso a

compactaccedilatildeo de hardware associada agrave virtualizaccedilatildeo vem resolver natildeo soacute este

problema de espaccedilo como tambeacutem a proacutepria refrigeraccedilatildeo e circulaccedilatildeo de ar

dentro do Data Center

85

Hardware Estaacute provado que cada servidor em meacutedia gasta cerca de 30 do

seu poder de processamento para executar a funccedilatildeo para a qual foi

implementado Assim sendo estamos na presenccedila de um subaproveitamento

deste poder computacional A ideia anterior aacute virtualizaccedilatildeo de adquirir um

novo servidor para uma nova aplicaccedilatildeo cai agora por terra com o objetivo de

aproveitar ao maacuteximo o poder computacional de cada servidor aproveitando

melhor todo esse hardware disponiacutevel

Implementaccedilatildeo de SOrsquos A associaccedilatildeo de um SO por cada maacutequina fica

agora tambeacutem em desuso uma vez que a virtualizaccedilatildeo possibilita-nos a

instalaccedilatildeo de vaacuterios SOrsquos em cada maacutequina melhor aleacutem de vaacuterios SOrsquos

estes tambeacutem podem ser diferentes entre si (Windows linuz etc) Esta

vantagem permite assim instalar SOrsquos cujo hardware original (host) nem

sequer os suportam como o caso do SO MAC (Macintosh Apple) em

hardware x86 ou SO Windows em notebooks (Apple)

Migraccedilatildeo A camada que suporta a virtualizaccedilatildeo permite-nos esta mais-valia

A migraccedilatildeo natildeo soacute do ambiente em si como do proacuteprio hardware bastando

para isso uma simples coacutepia entre discos virtuais

Testes de software e hardware A virtualizaccedilatildeo simula tanto um software

como um hardware logo testes em software firmware e hardware podem ser

realizados nestas VMs construiacutedas especificamente para esse fim Estes

primeiros testes podem ser efectuados sem a necessidade de um SO instalado

de raiz ou mesmo a presenccedila fiacutesica do hardware especiacutefico

Reduccedilatildeo de administradores e gestores Esta compactaccedilatildeo associada agrave

virtualizaccedilatildeo como jaacute referido reduz espaccedilo ocupado reduz hardware reduz

configuraccedilotildees e gestatildeo individual abrindo caminho agrave centralizaccedilatildeo Assim a

reduccedilatildeo da equipa responsaacutevel pela administraccedilatildeo e gestatildeo eacute evidente

A2 Desvantagens da tecnologia

Satildeo notoacuterias as vantagens da virtualizaccedilatildeo mas problemas como incompatibilidades entre

aplicaccedilotildees e perda de desempenho pelo simples adicionar de mais uma camada agrave

arquitectura teratildeo que ser consideradas aquando da escolha

Seguranccedila A seguranccedila neste caso prende-se agrave proacutepria camada adicionada

agrave arquitectura (VMM ou hypervisor) Se o proacuteprio SO host tiver algum

problema de raiz implementado ou adquirido tambeacutem o proacuteprio VMM

contemplaraacute este erro assim como todas as VMs instaladas nesse SO host

Gestatildeo O principal problema da implementaccedilatildeo desta tecnologia eacute a gestatildeo

da proacutepria virtualizaccedilatildeo os ambientes virtualizados precisam de ser

instanciados geridos configurados etc Eacute neste ponto que se prende a

preocupaccedilatildeo das organizaccedilotildees pelos seus investimentos nesta tecnologia

trata-se de uma opccedilatildeo que por norma eacute licenciada

86

Desempenho Mais uma camada de software (VMM ou hypervisor) implica

mais processamento Incerteza da quantidade de VMsprocessador sem que

seja afectado a QOS (Quality Of Service) e a garantia dessa emulaccedilatildeo em

termos da disponibilizaccedilatildeo maacutexima que o host pode dispensar como eacute o caso

do processamento e memoacuteria graacutefica

87

Anexo B (Virtualizaccedilatildeo Arquitectura)

Virtualizaccedilatildeo Arquitectura

A base de uma arquitectura de virtualizaccedilatildeo eacute o VMM ou hypervisor o Virtual Machine

Manager responsaacutevel pela criaccedilatildeo gestatildeo isolamento e preservaccedilatildeo do estado da VM

assim como toda a orquestraccedilatildeo do acesso aos recursos do sistema host

O VMM permite que seja possiacutevel a execuccedilatildeo de vaacuterios SOrsquos em VMs contudo

estaacute limitado a SOrsquos que possam ser executados nativamente no processador fiacutesico do

sistema Essa valecircncia torna-se hoje uma das maiores procuras de todos os sistemas de

virtualizaccedilatildeo

Em termos de implementaccedilotildees arquitecturais temos VMMrsquos Tipo-2 modelo

ldquohybridordquo e Tipo-1 O VMM ou hypervisor do Tipo-2 figura 47 eacute implementado dentro

do proacuteprio SO real (Linux ou Windows - hostsystem) e executando paralelamente eacute mais

um processo Neste caso trata-se de uma camada hypervisor proacutepria como um segundo e

distinto niacutevel de software Os sistemas operativos convidados correm num terceiro niacutevel

acima do hardware Nesta arquitectura o SO guest acede directamente o SO host (nativo)

por intermeacutedio de uma API cedida pelo hipervisor ao SO guest O SO guest acede assim

ao hardware atraveacutes de um device driver especiacutefico pelo hypervisor e pelo SO host sendo

por isso uma implementaccedilatildeo que apresenta menor desempenho e maior sobrecarga ao

sistema O Java VM VMware Workstation VMware Player Sun Microsystems

VirtualBox e KVM satildeo alguns exemplos que usam esta arquitectura

Figura 47 - VMM ou hypervisor do Tipo-2

No modelo rdquohiacutebridordquo figura 48 o VMM natildeo eacute executado uma camada acima do

SO host (ou abaixo) mas sim concorrentemente (peer) com o SO host e natildeo depende de

instruccedilotildees especiacuteficas no processador Microsoft Virtual Server 2005 R2 e Virtual PC satildeo

alguns exemplos que usam esta arquitectura

88

Figura 48 - VMM ou hypervisor do ldquohiacutebridordquo

No VMM ou hypervisor do Tipo-1 figura 49 eacute executado directamente no

hadware a camada mais baixa de todas as particcedilotildees da VM sem necessidade da

existecircncia de qualquer SO host O SO guest acede directamente ao hardware atraveacutes do

hipervisor tal eacute possiacutevel pelas modificaccedilotildees feitas no SO guest e no hipervisor Esta eacute a

implementaccedilatildeo que atinge niacuteveis mais elevados de eficiecircncia por isso permite uma maior

densidade de VMs eacute a implementaccedilatildeo claacutessica de arquitecturas VM VMware

ESXESXi Citrix XEN Server e Microsoft Hyper-V satildeo alguns exemplos que usam esta

arquitectura

Figura 49 - VMM ou hypervisor do Tipo-1

89

Anexo C (Virtualizaccedilatildeo Tipos de Implementaccedilatildeo)

Virtualizaccedilatildeo Tipos de Implementaccedilatildeo

C1 Emulaccedilatildeo de Hardware

Neste tipo de virtualizaccedilatildeo figura 50 pretende-se a virtualizaccedilatildeo completa do hardware

o seu comportamentoestados de execuccedilatildeo (ciclos de clock conjunto de instruccedilotildees

pipeline memoacuteria cache) por isso eacute a forma de virtualizaccedilatildeo mais complexa Todo o

hardware da VM eacute criado via software no sistema hospedeiro para emulaccedilatildeo do hardware

proposto criando assim grandes overheads7 com fracos desempenhos comparativamente

ao hadware real Este tipo de virtualizaccedilatildeo apresenta mais-valias como o facto de poder

ser usado um SO guest sem qualquer modificaccedilatildeo ou adaptaccedilatildeo os programadores podem

fazer testes de firmware e hardware em hardware que natildeo o real nem necessitam da

existecircncia deste e ainda a valecircncia de ser possiacutevel emular hardware que na maior parte

das vezes eacute bastante diferente do hardware real

Figura 50 - Emulaccedilatildeo de Hardware

C2 Virtualizaccedilatildeo completa

A virtualizaccedilatildeo completa figura 51 tambeacutem conhecida como ldquonativardquo eacute em todo igual a

emulaccedilatildeo de hardware excepto agrave natildeo representatividade dos estados de execuccedilatildeo do

hardware emulado por esse facto esta teacutecnica de virtualizaccedilatildeo apresenta resultados mais

satisfatoacuterios no seu desempenho mas ainda aqueacutem dos SOrsquos em execuccedilatildeo nativa Esta

teacutecnica permite assim a execuccedilatildeo de todos os SOrsquos originais sem alteraccedilatildeo fornecendo

uma reacuteplica de todo o hardware dessa maacutequina levando-os a ter a ilusatildeo de estar a

executar directamente no hardware

Os grandes obstaacuteculos desta teacutecnica foram desde logo as diferenccedilas arquitecturais

e os comportamentos particulares das instruccedilotildees muitas impossiacuteveis de serem emuladas

ou capturadas pois muitas dependem do niacutevel de privileacutegio Assim para lidar com a

7 Overhead Diferenccedila de performance (latecircncialentidatildeo) no SO guest

90

heterogeneidade de processadores e comportamento de instruccedilotildees usa-se uma abordagem

chamada de Traduccedilatildeo Binaacuteria Nesta abordagem a VMM analisa todas as instruccedilotildees da

VM quer instruccedilotildees natildeo privilegiadas que depois acedem ao hardware com drivers

geneacutericos quer instruccedilotildees privilegiadas e quando na presenccedila destas faz a emulaccedilatildeo e

reescreve dinamicamente o coacutedigo Este teste a todas as instruccedilotildees acarreta uma latecircncia

significativa no desempenho

Figura 51 - Virtualizaccedilatildeo Completa

C3 Para-Virtualizaccedilatildeo (PV)

A para-virtualizaccedilatildeo ou virtualizaccedilatildeo assistida por SO figura 52 eacute uma alternativa aacute

virtualizaccedilatildeo completa O SO guest eacute modificado (perdendo a portabilidade) para

melhorar a eficiecircncia usando todos os ldquolimitesrdquo do sistema A ideia eacute acelerar a execuccedilatildeo

das instruccedilotildees e para isso a VMM testa apenas instruccedilatildeo que podem alterar o estado do

sistema (instruccedilotildees sensiacuteveis) aumentando significativamente o desempenho Esta

substituiccedilatildeo de uma instruccedilatildeo sensiacutevel pelo tratador de interrupccedilatildeo de software eacute chamada

de hypercall satildeo instruccedilotildees executadas atraveacutes de traduccedilatildeo binaacuteria O SO guest eacute assim

modificado para chamar a VMM sempre que estamos na presenccedila dessas instruccedilotildees

sensiacuteveis

Esta alternativa de virtualizaccedilatildeo com a modificaccedilatildeo do kernel tambeacutem permite

que o SO guest aceda directamente aos recursos de hardware com os drivers da proacutepria

maacutequina virtual e deste modo natildeo usando os drivers geneacutericos (virtualizaccedilatildeo completa)

usam a capacidade total dos dispositivos Assim a para-virtualizaccedilatildeo apresenta um ganho

significativo em relaccedilatildeo agrave virtualizaccedilatildeo completa compensando as modificaccedilotildees

implementadas no SO guest

91

Figura 52 - Para-Virtualizaccedilatildeo

C5 Virtualizaccedilatildeo assistida por Hardware (HVM)

As teacutecnicas descritas apresentam alguns inconvenientes que enfraquecem o desempenho

como o teste a todas as instruccedilotildees e traduccedilatildeo das instruccedilotildees privilegiadas na Virtualizaccedilatildeo

Total e a alteraccedilatildeo do SO guest na Para-Virtualizaccedilatildeo agarrando o SO aacute arquitectura

limitando a compatibilidade e suporte

A Virtualizaccedilatildeo assistida por Hardware figura 53 eacute aplicada directamente nos

processadores e restante hardware satildeo usadas extensotildees de virtualizaccedilatildeo do processador e

hardware para virtualizaccedilatildeo dos guestrsquos fornecendo assim um recurso que permita ao

hypervisor executar ainda mais proacuteximo do hardware As instruccedilotildees sensiacuteveis satildeo agora

entregues sem a necessidade da traduccedilatildeo binaacuteria aumentando significativamente o

desempenho mas ainda um pouco mais lento que a PV A opccedilatildeo do uso de drivers como a

PV torna-se um avanccedilo notoacuterio neste tipo de implementaccedilatildeo Natildeo emular IO e

armazenamento e ainda oferecer uma plataforma de VMs com SOrsquos natildeo modificados eacute

uma junccedilatildeo das mais-valias dos dois mundos (PVHVM ou PV-on-HVM drivers) Torna-

se assim possiacutevel por exemplo obter um oacuteptimo desempenho no conjunto SO guest

Windows + XenServer

Figura 53 - Virtualizaccedilatildeo assistida por Hardware

C4 Recompilaccedilatildeo dinacircmica

Esta teacutecnica de virtualizaccedilatildeo recompilaccedilatildeo dinacircmica (dynamic recompilation -

DynaRecs) tambeacutem denominada como traduccedilatildeo dinacircmica (dynamic translation) eacute

bastante utilizada Traduz as instruccedilotildees de um determinado formato para outro formato

durante a proacutepria execuccedilatildeo do programa permitindo assim a criaccedilatildeo do ambiente nativo

92

do programa Essa traduccedilatildeo eacute relativa a instruccedilotildees do SO guest e das suas aplicaccedilotildees

mais proacuteximas do SO host Assim o VMM ou hipervisor analisa reorganiza e traduz as

sequecircncias de instruccedilotildees emitidas pelo SO guest em novas sequecircncias de instruccedilotildees

(coacutedigo de mais alto niacutevel) compiladas na linguagem nativa do sistema host para que esse

coacutedigo gerado seja mais eficiente

Essa eficiecircncia de coacutedigo prende-se com adaptaccedilatildeo de instruccedilotildees agrave interface ISA

do sistema real detectar e tratar instruccedilotildees sensiacuteveis e ainda analisar reorganizar e

optimizar sequecircncias de instruccedilotildees do SO guest com o fim uacuteltimo da eficiecircncia e

desempenho da sua execuccedilatildeo Nesta ultima anaacutelise eacute usual guardar em cache a traduccedilatildeo

dos blocos de instruccedilotildees frequentes melhorando assim ainda mais o desempenho Eacute

notoacuteria a vantagem desta teacutecnica como o acesso a coacutedigo em tempo de execuccedilatildeo natildeo

alcanccedilaacutevel a um compilador estaacutetico mas em contrapartida tambeacutem exige muito mais

processamento

93

Anexo D (Detalhes da plataforma e restriccedilotildees da VMware)

Detalhes da plataforma e restriccedilotildees da VMWARE

Tabela 13 - Dados gerais VMWARE

Criador VMM Tipo Finalidade Uso Host VMs

host

Servidor

dedicado

Gestatildeo

Central

Gestatildeo

Remota Guest OSrsquos Host OSrsquos Guest Licenccedila

VMware

Player Tipo 2

Descktop

Utilizadores finais

Criar

Testar

Seguranccedila

Intel e AMD

(32-64 bits)

1-2 Natildeo Natildeo Natildeo

Intel e AMD

(32-64 bits)

Windows Windows

Windows Server 2012 8 Server 2008 R2 7

Server 2008 Vista Server 2003 XP 2000 NT

40 ME 98 95 MS-DOS 622 e Windows

31x

Linux

Asianux Server CentOS Debian Fedora

Mandrake Mandriva Novell openSUSE

Oracle Enterprise Red Hat Enterprise Red

Hat Sun Java Desktop System SUSE

Enterprise SUSE Turbolinux Ubuntu

UNIX e outros OSrsquos

Mac OS X Server eComStation FreeBSD

IBM OS2 Warp Netware Solaris SCO

Livre

Server GSX Tipo 2

Consolidar

Testar

Desenvolver

Windows Linux Proprietaacuterio

(desc)

Workstation Tipo 2 Criar

Testar

Desenvolver

lt 10 Natildeo Natildeo Natildeo Windows Linux

Proprietaacuterio

Fusion Tipo 2 Mac OS X

Proprietaacuterio

vSphere

ESXi Tipo 1

Datacenter

Infra-estrutura Cloud

Consolidar

Disponibilidade

Cloud

Criar

Testar

Desenvolver

512 Sim Natildeo Sim Sem OS Livre

Proprietaacuterio

ESX Tipo 1 512 Sim Sim Sim Sem OS Proprietaacuterio

(desc)

Tabela 14 - Detalhes VMWARE

VMM

(Configuraccedilotildees maacuteximas) Cluster Hosts VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

VMware Player 50 - - - 4 8 Sem lim 8GB (32bits)

64GB (64bits) NA (2TB) - -

VMware Server 20 - - 64 16 2 Sem lim 8GB NA 4 IDE + 60 SCSI (950GB) - descontinuado

VMware Workstation 90 - - - igual 8 Sem lim 8GB (32bits)

64GB (64bits) NA 4 IDE + 60 SCSI (2TB)

10 NICs SO Windows

255 NICs SO Linux Snapshots

VMware

vSphere 51

VM - - - - 64 - 1TB - 4 IDE + 60 SCSI (2TB) 10 NICs 128MB graacutefica

ESX ESXi 32 - 512host

4000cluster

32 fisicos

160 logicos 32 2TB 1TB

2048 vdisc

(64TB) 4 IDE + 60 SCSI (2TB)

32portas Ethernet a 1Gb

4 NICs fiacutesicos a 10Gb

Portas Infiniband etc

-

vCloud Director - 2000 30000 - - - - 10000 DC - 10000 -

vCenter Server - 1000 15000 - - - - 500 - 10 vCenter Servers ligados -

94

Anexo E (Detalhes da plataforma e restriccedilotildees da Citrix)

Detalhes da plataforma e restriccedilotildees da Citrix

Tabela 15 - Dados gerais Citrix

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Xensource Xen Tipo 1

Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

x86

x86-64

IA-64

x86

x86-64

IA-64

NetBSD Linux Solaris

FreeBSD NetBSD Linux Solaris Windows XP Windows Server 2003 Plan 9 Versatildeo 61

Ubuntu CentOS

Red Hat Enterprise Linux

Oracle Enterprise Linux

Windows 8 (32-bit64-bit)

Windows Server 2012

GPL ndash livre

Advanced Edition - Proprietaacuterio

Enterprise Edition - Proprietaacuterio

Platinum Edition - Proprietaacuterio

Tabela 16 - Dados detalhados Citrix

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Redehost Outros

Host VM Host VM Host VM

XenServer 61 16 150host

1600cluster

160 loacutegicos

900 virtuais 32 1 TB 128 GB 512 virtuais

16 virtuais

NFS e LVM (2TB)

7 NICrsquos virtuaisVM

16 NICrsquos fiacutesicos

512 NICrsquos virtuais

800 VLANrsquos

4 GPUshost

95

Anexo F (Detalhes da plataforma e restriccedilotildees da HP)

Detalhes da plataforma e restriccedilotildees da HP

Tabela 17 - Dados gerais HP

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Hewlett-Packard Integrity Virtual Machines Tipo 1

Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

IA-64 IA-64 HP-UX 11i v3

HP-UX 11i v2 e v3 Windows Server 2003 (SP1 e SP2 RHEL AP 44 45 SLES 10 SP

Proprietaacuterio

Tabela 18 - Dados detalhados HP

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

HP Integrity Virtual Machines 61 512 HP-UX limit 16 HP-UX limit 128GB HP-UX limit 4 IDE + 256 SCSI (2TB) 62 NICrsquos

96

Anexo G (Detalhes da plataforma e restriccedilotildees da Microsoft)

Detalhes da plataforma e restriccedilotildees da Microsoft

Tabela 19 - Dados gerais Microsoft

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Microsoft

Virtual PC 2007 Tipo 2

Criar

Testar

Hobby

Estaccedilatildeo de trabalho

Negoacutecios

x86 x86-64 x86

Windows Vista (Business

Enterprise Ultimate) XP Pro XP

Tablet PC Edition

DOS Windows OS2

Linux (SUSE Xubuntu) OpenSolaris (Belenix) Proprietaacuterio

Virtual PC 7 for Mac Tipo 2 PowerPC x86 Mac OS X Windows OS2

Linux Proprietaacuterio

Virtual Server 2005 R2 Tipo 2 Server

Server farm x86 x86-64 x86 Windows 2003 XP

Windows NT 2000 2003

Linux (Red Hat SUSE) Proprietaacuterio

Hyper-V Server 2008 R2 Tipo 1 Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

x86-64

(Intel VT-x ou AMD-V)

x86-64

x86 (ateacute 8 CPUs fiacutesicos)

Windows 2008 com Hyper-V

Windows Hyper-V Server

Windows 2000 2003 e 2008 Windows XP e Vista

Linux (SUSE 10) Proprietaacuterio

Hyper-V Server 2012 Tipo 1

x86-64

(Intel VT-x ou AMD-V apenas

para RemoteFX)

x86-64

(ateacute 64 CPUs fiacutesicos) Windows 2012 com Hyper-V

Windows NT

Linux (SUSE10 RHEL 6 CentOS 6) Proprietaacuterio

Tabela 20 - Dados detalhados Microsoft

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

Hyper-V Server 2008 R2 16 384host

1000cluster

8 fiacutesicos

64 loacutegicos

512 virtuais

4

1 TB 64GB No limit 4 IDE + 256 SCSI (2TB) - -

Hyper-V Server 2012 64 1024host

8000cluster

64 fiacutesicos

320 loacutegicos

2048 virtuais

64

4 TB 1 TB No limit

4 IDE + 256 SCSI

(VHD 2 TB)

(VHDX 64 TB)

32 NICrsquos

10GB migraccedilatildeocluster

REST

powershell

snapshots

suporte VMConnect

para RemoteFX

97

Anexo H (Ambiente de armazenamento VMware ESXi e Citrix Xen)

Ambiente de armazenamento VMware ESXi e Citrix Xen

H1 VMware (VmWare In)

VMFS (Virtual Machine File System) eacute um sistema de ficheiros num Cluster eacute

proprietaacuterio da VMware e foi optimizado para operaccedilotildees de entrada e saiacuteda (IO) com

ficheiros grandes realidade das imagens das maacutequinas virtuais Representa uma soluccedilatildeo

escalaacutevel e de alto desempenho para hospedagem de VMs no bloco de armazenamento

oferecendo partilha e isolamento O serviccedilo VMFS constitui a base de aplicaccedilotildees num

cluster VMware como vMotion (onde existe partilha de dados) Storage VMotion

agendamento de recursos distribuiacutedos alta disponibilidade e toleracircncia a falhas Os

metadados da maacutequina virtual satildeo serializados para ficheiros e o software VMFS fornece

uma interface POSIX (Portable Operating System Interface) - API com a opccedilatildeo de

consola Command Line (CL) e utilidades de interfaces) - para cluster com operaccedilotildees

seguras de gestatildeo de maacutequinas virtuais

Este tipo de armazenamento de dados pode ser feito em qualquer dispositivo de

armazenamento com base em ligaccedilotildees de armazenamento como

Armazenamento de ligaccedilatildeo direta (SCSI local) ligaccedilatildeo local direta aos discos

de armazenamento interno ou externo geralmente SATA IDE (Integrated

Drive Electronics) EIDE etc

Fibre Channel protocolo de transporte usado em SANrsquos onde o Fibre Channel

encapsula comandos SCSI sobre o protocolo FC

FCoE O uso do FC sobre Ethernet onde o traacutefego FC eacute encapsulado em

quadros Ethernet

iSCSI iSCSI transporta comandos SCSI sobre redes IP

IP ligaccedilatildeo IP aos datastores em NAS suportados pelo vSphere ESX

Vista do armazenamento pelo SO Guest

Uma VM na arquitectura ESX usa espaccedilo em disco para armazenar os seus

metadados de configuraccedilatildeo e os proacuteprios dados um pequeno nuacutemero de imagens

aproximadamente 30 a 100 por VM O espaccedilo de armazenamento em disco contem estes

ficheiros de texto muito pequenos (bytes ou KB) mas tambeacutem conteacutem ficheiros do

proacuteprio disco virtual que normalmente satildeo ficheiros muito grandes (centenas de MB ou

GB) e ainda ficheiros de swap (ficheiros guardados pelo SO para aumento virtual da

memoacuteria de trabalho (RAM))

98

Um dos princiacutepios da virtualizaccedilatildeo diz-nos que um SO guest natildeo deve suportar a

carga da gestatildeo de dispositivos fiacutesicos deve concentrar-se em fornecer um ambiente de

execuccedilatildeo de aplicaccedilotildees Assim um dos objetivos da arquitetura VMFS e em particular do

vSphere ESX eacute simplificar todo este acesso de armazenamento ao SO guest O hardware

virtual apresentado a um SO guest vSphere inclui um conjunto de controladores SCSI e

IDE que possuem drivers comuns disponiacuteveis em quase todos os sistemas operacionais O

SO guest vecirc um disco fiacutesico simples ligado atraveacutes de um controlador padratildeo gravado no

formato VMDK (Virtual Machine Disk) formato da VMWare Esta visatildeo virtualizada de

armazenamento apresentada ao SO guest tem uma seacuterie de vantagens como a gestatildeo

facilitada pelo facto de serem usados controladores padratildeo com drivers incluiacutedas nos

SOrsquos o facto de suportar diferentes ligaccedilatildeo e acessos ao armazenamento como iSCSI e

FCoE disponiacuteveis nos SOrsquos sem que estes suportem os protocolos nativos e a melhoria de

eficiecircncia e disponibilizaccedilatildeo na recuperaccedilatildeo de desastres com a disponibilizaccedilatildeo de

muacuteltiplos caminhos no acesso aos dados contrariamente ao peso da redundacircncia de

muacuteltiplos servidores fiacutesicos

H2 Xen Server (Citrix)

O VMM ou hypervisor Xen eacute apenas responsaacutevel pela gestatildeo de CPU memoacuteria e

interrupccedilotildees ou seja natildeo tem conhecimento do IO de Rede e Armazenamento Para lidar

com entradas e saiacutedas de Rede e Armazenamento o XenServer dispotildee de um domiacutenio de

controlo uma VM especializada denominada ldquoDom0rdquo (Domiacutenio 0) com SO Linux e

privileacutegios especiais eacute considerado parte integrante do XenServer aquando da instalaccedilatildeo

Alem de aceder diretamente o hardware controla todos os acessos de IO e interage com

as outras VMs Esta VM especial contem os drivers padratildeo do coacutedigo aberto Linux de

uma vasta diversidade de hardware e uma interface de controlo (consola ou interface

graacutefica) para controlo do sistema Conteacutem ainda uma pilha de controlo (toolstack) para

fazer toda a gestatildeo das VMs as conhecidas ldquoDomUrsquosrdquo (Domiacutenios dos utilizadores)

relativamente a sua criaccedilatildeo destruiccedilatildeo e configuraccedilatildeo

O XenServer da Citrix armazena as suas VMs diretamente no formato Microsoft

VHD (Virtual Hard Disk) num disco local natildeo partilhado (EXT) ou contrariamente ao

VMware natildeo dispondo do seu proacuteprio sistema de armazenamento aproveita as

capacidades nativas de armazenamento como por exemplo um sistema de armazenamento

partilhado como o NFS Com armazenamentos baseados em iSCSI ou FC o XenServer

estende o VHD do sistema de ficheiros para o padratildeo open source LVM (Logical Volume

Manager) para gestatildeo de volumes numa LUN abstraindo os volumes fiacutesicos em volumes

loacutegicos Permite ainda que seja possiacutevel a criaccedilatildeo de uma LUN por cada VDI

O XenServer oferece assim suporte de armazenamento de VMs em discos locais

iSCSI ou SAN baseado em FC ou NAS estes dois uacuteltimos para migraccedilotildees e alta

disponibilidade Ferramentas como XenCenter Storage Repository para implementaccedilatildeo e

99

StorageLink para integraccedilatildeo de armazenamentos com snapshots clones8 e ldquothin

provisioningrdquo9 satildeo uma mais-valia no XenServer

Cada host XenServer pode aceder a um ou vaacuterios dispositivos de armazenamento

diferentes simultaneamente Estes dispositivos de armazenamento podem ser dedicados

apenas a um host ou partilhados entre hosts permitindo que uma imagem de disco virtual

(VDI) num determinado sistema de armazenamento possa ser iniciada em qualquer host

Armazenamento local

Este tipo de armazenamento eacute local ao host XenServer (IDEPATA Serial ATA

(SATA) SCSI e Serial Attached SCSI (SAS)) e neste contexto satildeo suportados dois tipos

de armazenamento um sistema de ficheiros EXT e LVM (Logical Volume Manager)

numa LUN

Uma LUN num SAN iSCSI ou SAN Fibre Channel

Nestes dois tipos de armazenamento (tratados diferentemente pelo XenServer)

figura 54 os ficheiros satildeo apresentados ao XenServer como ficheiros normais ou mesmo

num sistema de ficheiros LVM numa LUN

Eacute criada uma LUN onde todos os servidores se ligam Essa LUN eacute dividida em

volumes loacutegicos onde apenas uma e uma soacute VM ligada a um desses volumes loacutegicos de

cada vez

Figura 54 - LUN num SAN iSCSI ou SAN FC

Network File System (NFS)

Neste tipo de armazenamento figura 55 eacute criado um NFS onde todos os

servidores se ligam e partilham ficheiros VDI que eacute o disco fiacutesico na visatildeo de uma VM O

XenServer lida com este tipo de armazenamento como um conjunto e discos virtuais

(VDIrsquos) armazenados no formato Microsoft VHD especialmente adequado para

ambientes NSF As imagens das VMs satildeo armazenadas como ficheiros neste formato

8 Clone Um programa ou hardware que imita o produto original e pode ser executado de igual modo como se

fosse original 9 Thin provisioning Meacutetodo de otimizaccedilatildeo da eficiecircncia com que o espaccedilo disponiacutevel eacute utilizado numa SAN

100

(VHD) um disco riacutegido virtual Estes ficheiros permitem que VMs sejam instanciadas em

qualquer host de uma pool de recursos e possam ser feitas migraccedilotildees entre servidores com

o XenMotion

XenServer suporta NFS sobre TCPIP O volume NFS localizado num servidor

NFS eacute acedido montado e usado para as necessidades convenientes de armazenamento

seraacute criada uma diretoria de partilha com um nome que eacute o Identificador Uacutenico Universal

(UUID) atribuiacutedo a esse armazenamento

Figura 55 - Network File System (NFS)

Opccedilotildees de armazenamento de terceiros como NetApp ou Dell EqualLogics

O armazenamento eacute feito por dispositivo especiacuteficos de armazenamento como

NetApp (Network Appliance) ou Dell EqualLogics como fornecedores liacutederes de

armazenamento de ficheiros em rede e sistemas de distribuiccedilatildeo de conteuacutedo A gestatildeo do

armazenamento eacute suportada pelo XenCenter

Vista do armazenamento pelo SO Guest

Existem 2 tipos de VMs no XenServer ldquoDom0rdquo e ldquoDomUrdquo ambas VM guestrsquos

diferindo no seu propoacutesito O Dom0 de controlo e parte integrante de todo o sistema

XenServer dispotildee de acesso privilegiados ao hardware tem drivers dos dispositivos e eacute

instanciada aquando do boot do sistema Os DomUrsquos satildeo totalmente isolados do hardware

e comunicam diretamente com o VMM ou hypervisor que controla a memoacuteria e o

processador do host A comunicaccedilatildeo com os restantes perifeacutericos eacute feita sob o controlo da

VM Dom0 (domiacutenio 0 domiacutenio de controlo) com os drivers especiacuteficos de dispositivos

como Rede e Armazenamento Os DomUrsquos satildeo conhecidos como domiacutenios sem

privileacutegios

Em termos de virtualizaccedilatildeo o Xen suporta em simultacircneo VM guests com para-

virtualizaccedilatildeo (PV) (virtualizaccedilatildeo assistida por SO) ou virtualizaccedilatildeo assistida por hardware

(HVM) Na PV apesar da modificaccedilatildeo do SO natildeo requer virtualizaccedilatildeo do processador

nem do hardware uma vez que dispotildee de drivers para aceder diretamente usando a

capacidade total dos dispositivos Na HVM satildeo usadas extensotildees de virtualizaccedilatildeo do

101

processador e hardware host para virtualizar os guets mas natildeo haacute modificaccedilatildeo do SO

guest eacute mais lento que PV mas apresenta a valecircncia da portabilidade A ultima aposta da

Citrix visando oacutetimos desempenhos foi a junccedilatildeo destes dois mundos para-virtualizaccedilatildeo e

virtualizaccedilatildeo assistida por hardware (PVHVM ou PV-on-HVM drivers)

Uma VM (DomU) no mundo virtual de um XenServer vecirc o seu armazenamento

como um disco local (imagens VDI guardadas na sua representaccedilatildeo Microsoft VHD) Na

realidade o XenServer alocou uma percentagem do armazenamento real e atraveacutes do

hypervisor e Dom0 fez toda a abstraccedilatildeo tornando-o disponiacutevel como um recurso de um

disco para essas VMs O SO guest do Dom0 eacute Linux e neste SO os discos fiacutesicos satildeo

representados como ficheiros desses dispositivos (devsda) Os ficheiros dos dispositivos

de armazenamento podem representar discos conectados localmente (armazenamento

local) ou um nuacutemero de unidade loacutegica (LUN) numa SAN sendo a gestatildeo feita por LVM

e ainda a opccedilatildeo NFS

102

Anexo I (Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo)

Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo

I1 Criaccedilatildeo de um projecto Web Service

Um projecto Web Service figura 56 pode ser criado com o IDE Eclipse IDE for Java EE

Developers Configurado todo o ambiente podemos criar um projecto Web Service

mediante vaacuterias abordagens variando nas suas configuraccedilotildees e especificaccedilotildees

naturalmente

Web Dynamic Web Project

JBoss Central HTML5 Project

JBoss Tools Create a Sample RESTfull Web Service

Maven Maven Project

Web Service Create a Sample RESTfull Web Service

Figura 56 - Projecto ldquoDynamic Web Projectrdquo no eclipse

Webxml

103

Ficheiro responsaacutevel pelo registo do servlet10

fornecido pelo Jersey Um servlet

responsaacutevel por analisar os pedidos http e selecionar a classe e meacutetodo para responder ao

pedido mediante as anotaccedilotildees JAX-RS previamente colocadas aquando da criaccedilatildeo do

coacutedigo Webxml define ainda o path sob o qual o Web Service seraacute disponibilizado

URL httpdominioportanome-da-aplicacaourl-patternpath-das-classes-rest

ltxml version=10 encoding=UTF-8gt ltweb-app xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlns=httpjavasuncomxmlnsjavaee xmlnsweb=httpjavasuncomxmlnsjavaeeweb-app_2_5xsd xsischemaLocation=httpjavasuncomxmlnsjavaee httpjavasuncomxmlnsjavaeeweb-app_2_5xsd id=WebApp_ID version=25gt lt-- nome da aplicaccedilatildeo --gt ltdisplay-namegtdevogellajerseytodoltdisplay-namegt ltservletgt lt-- suporte para aplicaccedilotildees Web baseado em servlet e filtro --gt ltservlet-namegtJersey REST Serviceltservlet-namegt ltservlet-classgtcomsunjerseyspicontainerservletServletContainerltservlet-classgt ltinit-paramgt lt-- define o pacote das classes de recurso java do Web Service --gt ltparam-namegtcomsunjerseyconfigpropertypackagesltparam-namegt ltparam-valuegtdevogellajerseytodoresourcesltparam-valuegt ltinit-paramgt ltload-on-startupgt1ltload-on-startupgt ltservletgt ltservlet-mappinggt lt-- URL pattern define parte da URL base onde o Web Service seraacute disponibilizado --gt ltservlet-namegtJersey REST Serviceltservlet-namegt lturl-patterngtrestlturl-patterngt ltservlet-mappinggt ltweb-appgt

ex httplocalhost8080devogellajerseytodoresttodos1

domiacutenio localhost

porta 8080

nome da aplicaccedilatildeo (webxml display-name) devogellajerseytodo

URL base (webxml url-pattern do servlet-mapping) rest

anotaccedilatildeo Path na classe Java todos

anotaccedilatildeo PathParam 1

10 Servlet Uma classe na linguagem de programaccedilatildeo Java que processa dinamicamente pedidos e

respostas gerando dados HTML e XML para a camada de apresentaccedilatildeo de uma aplicaccedilatildeo Web

104

Principais anotaccedilotildees JAX-RS

PATH(your_path) adiciona mais um paracircmetro ao URL (URL+your_path)

POST O meacutetodo responde a um pedido HTTP POST

GET O meacutetodo responde a um pedido HTTP GET

PUT O meacutetodo responde a um pedido HTTP PUT

DELETE O meacutetodo responde a um pedido HTTP DELETE

Produces(MediaType

TEXT_PLAIN[more-types])

Define o tipo MIME a ser entregue por um meacutetodo GET

Consumes(type[more-ypes ] ) Define o tipo MIME a ser consumido pelo meacutetodo

PathParam Usado para especificar valores da URL num paracircmetro do

meacutetodo

Uma outra anotaccedilatildeo fundamental eacute XmlRootElement para que o Jersey saiba

que os atributos iratildeo passar a noacutes no momento em que o XML como resposta ao cliente

De igual modo se receber um XML no corpo de um pedido o Jersei vai saber fazer a

conversatildeo desse XML para um objeto do tipo da classe em causa

I2 Exemplos de solicitaccedilotildees agrave API do MOE

Adicionar mais um processador a um Servidor

Operaccedilotildees sobre Servidores

Verb URI Description

GET servers Lista servidores

GET serversdetail Lista detalhes dos servidores

POST servers Cria servidor

GET serversid Lista detalhes dos servidores

PUT serversid Atualiza dados dos servidores

DELETE serversid Remove servidor

hellip hellip hellip

Um flavor representa uma configuraccedilatildeo de hardware disponiacutevel para um dado tipo

de servidores e eacute uma combinaccedilatildeo uacutenica de espaccedilo em disco capacidade de memoacuteria

nuacutemero de CPUs etc Um servidor eacute uma instacircncia de uma maacutequina virtual e portanto

eacute definido por um flavor

flavors [ disk 10 id 12 name 256_server ram 256 ldquocpurdquo 2 hellip hellip]

Operaccedilotildees sobre Flavors

Verb URI Description

GET flavors Lista flavors

GET flavorsdetail Lista detalhes dos flavors

105

GET flavorsid Lista detalhe do flavor

hellip hellip hellip

O objectivo eacute alterar o nuacutemero de CPUs de um servidor especiacutefico e para tal

temos de saber o valor desse campo no flavor desse servidor

Algoritmo passo-a-passo

1) Listar todos os servidores existentes

Esta operaccedilatildeo obteacutem uma lista de servidores associados agrave conta de um

determinado utilizador Em cada servidor (da lista) um atributo indica o estado actual do

servidor servidores com o estado ACTIVE estatildeo disponiacuteveis para utilizaccedilatildeo

Verb URI Description

GET servers Lista todos os servidores (apenas os IDs e nomes)

GET serversdetail Lista todos os servidores (todos os detalhes)

Coacutedigo para respostas normais 200 203

Coacutedigo para respostas de ERRO serversFault (400 500) serviceUnavailable

(503) unauthorized (401) badRequest (400) overLimit (413)

Resposta da listagem dos servidores XML (detalhes)

ltxml version=10 encoding=UTF-8gt ltservers xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgtgt ltserver id=1234 name=sample-server imageId=1 flavorId=12 status=BUILD progress=60 hostId=e4d909c290d0fb1ca068ffaddf22cbd0gt ltmetadatagt ltmeta key=Server LabelgtWeb Head 1ltmetagt ltmeta key=Image Versiongt21ltmetagt ltmetadatagt ltaddressesgt

ltpublicgt ltip addr=672310132gt ltip addr=672310131gt ltpublicgt ltprivategt ltip addr=101764216gt ltprivategt ltaddressesgt ltservergt hellip ltserversgt

De entre todos os servidores da lista o utilizador pretende ALTERAR o nuacutemero

de CPUs do servidor (server id=1234) ou seja precisa aceder ao flavor

(flavorId=12)

106

2) Listar o flavor (flavorId=12)

Esta operaccedilatildeo obteacutem os detalhes de um flavor especiacutefico (id)

Verb URI Description

GET flavorsid Lista detalhe do flavor especiacutefico

Coacutedigo para respostas normais 200 203

Error ResponseCode(s) serversFault (400 500) serviceUnavailable (503)

unauthorized (401) badRequest (400) itemNotFound (404) overLimit (413)

Resposta com detalhes de um Flavor XML

ltxml version=10 encoding=UTF-8gt ltflavor xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgt id=1 name=256 MB Server ram=256 disk=10 cpu=rdquo2rdquo gt

3) Alterar o nuacutemero de CPUs de 2 para 3 do servidor (server id=1234) flavor

(flavorId=12)

Esta operaccedilatildeo permite que se atualize o numero de CPUs do flavor associado ao

servidor Facilmente se depreende que esta operaccedilatildeo soacute seraacute possiacutevel se o utilizador puder

efectuar esta operaccedilatildeo (Status Transition ACTIVE)

Verb URI Description

PUT servers1234flavor12cpu3 Atualiza dados dos servidores

Coacutedigo para respostas normais 204

Coacutedigo para respostas de ERRO serversFault (400 500) serviceUnavailable

(503) unauthorized (401) badRequest (400) badMediaType(415) itemNotFound (404)

buildInProgress (409) overLimit (413)

Status Transition ACTIVE CONFIGURESERVER (if configureServer is

true)

Pedido de Update do flavor do servidor XML

ltxml version=10 encoding=UTF-8gt ltserver xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgt server id=1234 flavorId=12 cpu=rdquo3rdquo gt

107

Anexo J (Ferramentas de desenvolvimento WebService)

Principais ferramentas e suas configuraccedilotildees usadas na criaccedilatildeo e desenvolvimento deste

webservice

Plataforma Java

Servidor Apache Tomcat

Ambiente de desenvolvimento Eclipse

JARacutes e Plugins

Macromedia Dreamweaver

Notepad++

J1 Plataforma Java

Java eacute uma linguagem de programaccedilatildeo orientada a objeto e considera-se diferente das

outras linguagens convencionais pelo facto de ser compilada para bytecode e executado

por uma maacutequina virtual contrariamente agrave compilaccedilatildeo para coacutedigo nativo A linguagem

de programaccedilatildeo Java eacute a linguagem convencional da Plataforma Java que pode ser

adquirida no site httpjavacomendownloadindexjsp

Figura 57 - Plataforma Java

Como o RESTWEBSERVICE foi criado e executado em ambiente Windows a

explicaccedilatildeo seraacute feita tendo em vista este ambiente

108

Assim vamos verificar se temos a plataforma java instalada e se eacute a ultima versatildeo

lsquoIniciarrsquo e executar lsquocmdrsquo abre-se uma consola de linha de comando do MS Windows

executamos o comando

ldquojava -versionrdquo

Este comando corresponde agrave chamada da maacutequina virtual para executar

ldquobytecoderdquo

Figura 58 - Comando ldquojava -versionrdquo

Java version ldquo170_25 JDK ou JRE

JRE(Java Runtime Environment) Ambiente de execuccedilatildeo Java (Java Virtual

Machine) Como ambiente seraacute apenas possiacutevel a execuccedilatildeo de coacutedigo Java jaacute

compilado

JDK (Java Development Kit) Kit de desenvolvimento Java onde se inclui o

compilador (javac) e o ambiente de execuccedilatildeo Java (JVM) Neste caso podemos

compilar classes java directamente de coacutedigo fonte e executa-las posteriormente

no JRE maacutequina virtual Java

J11 Instalaccedilatildeo

Caso seja necessaacuteria a instalaccedilatildeo da plataforma java termos que fazer o download (versatildeo

7 update 25) e efectuar a sua instalaccedilatildeo Por defeito apoacutes a instalaccedilatildeo teremos os dois

ambientes JDK e JRE na directoria ldquoCProgram FilesJavardquo

Para testar a instalaccedilatildeo do compilador (JDK) lsquoIniciarrsquo e executar lsquocmdrsquo abre-se

uma consola de linha de comando do MS Windows executamos o comando

109

ldquojavacrdquo

Figura 59 - Instalaccedilatildeo da Plataforma Java

Concluiacuteda a instalaccedilatildeo da plataforma java teremos que definir as variaacuteveis de

ambiente para a posterior execuccedilatildeo do ambiente de desenvolvimento IDE (Integrated

Development Environment ) Eclipse e todas as dependecircncias do Java

J12 Variaacuteveis de ambiente

ldquoIniciarrdquo ldquoPainel de controlerdquo ldquoDefiniccedilotildees avanccediladas do sistemardquo ldquoVariaacuteveis de

ambienterdquo ldquoVariaacuteveis de sistemardquo

PATH ndash adicionar ldquodirectoria de instalaccedilatildeo do JDKrdquobin

ex CProgram FilesJavajdk170_25bin

Figura 60 - Variaacutevel de sistema ldquoPathrdquo

CLASSPATH ndash criar esta variaacutevel

Nome da variaacutevel ldquoCLASSPATHrdquo

Valor da variaacutevel ldquordquo

110

Figura 61 - Variaacutevel de sistema ldquoCLASSPATHrdquo

JAVA_HOME ndash criar esta variaacutevel com a ldquodirectoria de instalaccedilatildeo do

JDKrdquobin

ex CProgram FilesJavajdk170_25bin

Figura 62 - Variaacutevel de sistema ldquoJAVA_HOMErdquo

J13 Teste da instalaccedilatildeo da plataforma java e configuraccedilatildeo das variaacuteveis de

ambiente

Vamos verificar se as variaacuteveis foram definidas correctamente Para isso com o

Notpad++ vamos criar um ficheiro com o nome ldquoTestjavardquo e incluir o seguinte coacutedigo

public class Test public static void main(String[] args) throws Exception Systemoutprintln(Hello RESTWEBSERVICE)

Finalmente vamos compilar a classe na directoria onde foi criada e executaacute-la

utilizando a maacutequina virtual Java Na consola de linha de comando vamos executar os

seguintes comandos

javac Testjava ndash Comando para compilar a classe java criada

java Test - Comando para executar a classe Test

Se as variaacuteveis de ambiente foram definidas correctamente deveremos ter

como resposta

ldquoHello RESTWEBSERVICErdquo

111

J2 Servidor Apache Tomcat

Apache Tomcat eacute uma implementaccedilatildeo de software de fonte aberta das tecnologias Java

Servlet e JavaServer Pages (JSP) Egrave um servidor web HTTP em linguagem java um

servidor de aplicaccedilotildees JEE (Java Enterprise Edition) Tem a vantagem de incluir

ferramentas para gestatildeo e configuraccedilatildeo que podem ser editadas directamente num ficheiro

de configuraccedilatildeo em XML

O download deste servidor pode ser feito directamente no site da Tomcat

httptomcatapacheorgdownload-70cgi

J21 Instalaccedilatildeo

Feito o download basta descompactar o ZIP numa directoria ex C onde seraacute criado

uma pasta com o nome do ZIP Capache-tomcat-7034 Como versatildeo preacute-configurada

disponibiliza de imediato as seguintes configuraccedilotildees

A porta de acesso aacutes aplicaccedilotildees eacute a 8080 Basta para isso digitar o URL

seguido de ldquordquo e a porta 8080

ex httplocalhost8080MOE

Se natildeo existirem redireccionamentos eacute possiacutevel a listagem de directorias

Esta opccedilatildeo eacute sempre desactivada depois nas implementaccedilotildees

Monitorizaccedilatildeo sempre constante qualquer alteraccedilatildeo dos ficheiros natildeo existe a

necessidade de fazer um restart ao servidor

Figura 63 - Directoria de instalaccedilatildeo do Servidor Apache Tomcat

112

J22 Execuccedilatildeo

Para testarmos o servidor Apache Tomcat basta corresmos o executaacutevel ldquoTomcat7exerdquo

da directoria ldquoCTomcat 70binrdquo e aceder ao link httplocalhost8080

Figura 64 - Link localhost Apache Tomcat

J3 Ambiente de desenvolvimento Eclipse

Eclipse eacute um IDE (Integrated Development Environment) ou ambiente integrado de

desenvolvimento eacute um programa com caracteriacutesticas e ferramentas de apoio ao

desenvolvimento de software com a vantagem de ter a maior parte das ferramentas de

desenvolvimento jaacute integradas e prontas a usar Uma orientaccedilatildeo baseada em plugins que

mediante incorporaccedilatildeo satisfazem as necessidades dos diferentes programadores

O download deste IDE pode ser feito directamente no site

httpwwweclipseorgdownloads O package em questatildeo para o desenvolvimento

direcionado agrave web eacute o ldquoEclipse IDE for Java EE Developersrdquo que jaacute vem com a maior

parte dos plugins destinados a este tipo de desenvolvimento

J4 JARs e Plugins

O ambiente de desenvolvimento Eclipse principalmente o ldquoEclipse IDE for Java EE

Developersrdquo jaacute vem com a maior parte dos plugins por defeito para desenvolvimentos

orientados agrave web mas haacute um indispensaacutevel muito uacutetil natildeo soacute no acesso aos menus de

configuraccedilatildeo do projecto como tambeacutem ferramentas de configuraccedilatildeo do servidor Apache

Tomcat plugin ldquoWeb Tools Platform (WTP)rdquo

Podemos fazer o download directo do plugin ou solicitar ao Eclipse que o faccedila por

noacutes e instale directamente Para isso vamos ao menu ldquoHelprdquo ldquoInstall new Softwarerdquo

ldquoaddrdquo

Name Web Tools Platform (WTP)

Location httpdownloadeclipseorgwebtoolsrepositoryindigo

113

Figura 65 - Add repository

Relativamente aos JARs estes satildeo dependents do projecto em siacute e do que se

pretende usar JAR (Java Archive) eacute um formato de ficheiro que normalmente eacute usado

para agregar muitos ficheiros de classes Java e metadados associados recursos como

textos e imagens tudo num uacutenico ficheiro que depois funcionaraacute como bibliotecas na

plataforma Java

Basta para isso colocar os JARs necessaacuterios na directoria

ldquoprojectNameWebContentWEB-INFlibrdquo

J4 Macromedia Dreamweaver

O Adobe Dreamweaver mais conhecido por Macromedia Dreamweaver eacute um software de

desenvolvimento na Web criada pela Macromedia

Um software que fornece suporte para vaacuterias tecnologias web tais como XHTML

CSS JavaScript Ajax PHP ASP ASPNET JSP ColdFusion e outras linguagens

Server-side

Toda a apresentaccedilatildeo web da camada de apresentaccedilatildeo do webservice foi

desenvolvida e testada inicialmente neste software Desenvolvimento de coacutedigo HTML

JSP incorporaccedilatildeo de imagens construccedilatildeo de tabelas etc

A5 Notepad++

Notepad++ eacute um editor de texto e de coacutedigo fonte aberto sob licenccedila GPL Tem a

vantagem de suportar vaacuterias linguagens de programaccedilatildeo como HTML JSP CSS JQuery

Javascript e eacute optimo para alteraccedilotildees raacutepidas de coacutedigo e sua visualizaccedilatildeo

114

Anexo K (Criar e executar um ldquoDynamic Web Projectrdquo no Eclipse)

K1 Criar um ldquoDynamic Web Projectrdquo

Para criar um ldquoDynamic Web Projectrdquo temos que iniciar o Eclipse e nesta primeira

iniciaccedilatildeo vatildeo ser testadas todas as variaacuteveis de ambiente anteriormente criadas e criado

um workspace onde seratildeo guardados todos os nossos projectos

Depois de iniciado o Eclipe para criarmos um ldquoDynamic Web Projectrdquo seguimos

os passos

1 ldquoFilerdquo ldquoNewrdquo ldquoProjectrdquo

2 Na proacutexima janela escolher ldquoWebrdquo ldquoDynamic Web Projectrdquo

Figura 66 - Dynamic Web Project

3 Clique em Next

4 Nas propriedades do projecto

Project name Test

Target runtime Apache Tomcat v70

Dynamic web module version 30

Configuration Default Configuration for Apache Tomcat v70

115

Figura 68 - Propriedades do Dynamic Web Project

5 Clique em Next e depois outra vez em Next

6 Seleccione ldquoGenerate webxml deployment descriptorrdquo para a criaccedilatildeo do

webxml onde seratildeo incluiacutedas todas as definiccedilotildees e configuraccedilotildees do projecto

Figura 69 - Webxml do Dynamic Web Project

7 Clique em Next e todo o projecto eacute criado

116

Figura 70 - Directoria base do Dynamic Web Project

JavaSource (src)

Coacutedigo fonte Java do projeto Recursoso que satildeo automaticamente compilado e os

ficheiros gerados satildeo adicionados ao diretoacuterio WEB-INFclasses

WebContent

Localizaccedilatildeo de todos os recursos da Web incluindo HTML JSP ficheiros

graacuteficos imagens etc Os ficheiros ficam disponiacuteveis apenas nesta directoria ou

subdirectorias quando o servidor eacute executado

META-INF

Esta directoria conteacutem o arquivo MANIFESTMF que eacute usado para mapear o

caminho das classes para os ficheiros JAR dependentes que existem no projecto Quando

um JAR eacute adicionado agrave biblioteca esta entrada eacute adicionada automaticamente neste

ficheiro

WEB-INF

Directoria que conteacutem os recursos da Web de suporte para agrave aplicaccedilatildeo incluindo o

ficheiro webxml e as classes e lib

Classes

Directoria das classes compiladas eacute a directoria de saiacuteda do compilador Java As

classes ldquoclassrdquo satildeo colocados neste directoria automaticamente quando o compilador

Java compila os ficheiros de origem Java que estatildeo no directoria de recursos Java (src)

Lib

Os ficheiros JAR de apoio a toda a aplicaccedilatildeo As classes existentes nos ficheiros

jar ficam disponiacuteveis para uso na aplicaccedilatildeo

Web Deployment Descriptor

O descritor de implementaccedilatildeo de toda a aplicaccedilatildeo o ficheiro webxml

117

K2 Executar um ldquoDynamic Web Projectrdquo

Para testarmos o nosso ldquoDynamic Web Projectrdquo comeccedilamos por criar uma classe na

directoria ldquosrcrdquo ldquoFilerdquo ldquoNewrdquo ldquoOtherrdquo ldquoClassrdquo

Figura 71 - Criar uma classe

Criamos uma classe com o package test e o nome Test e incluiacutemos o seguinte

coacutedigo

package test public class Test public static void main(String[] args) throws Exception Systemoutprintln(Hello RESTWEBSERVICE)

Criamos igualmente um ficheiro HTML na directoria WebContent ldquoFilerdquo ldquoNewrdquo

ldquofilerdquo com o nome ldquotesthtmlrdquo e com o seguinte coacutedigo

lthtmlgt ltheadgt lttitlegtDynamic Web Project HTML pagelttitlegt ltheadgt ltbodygt lth2gt Hello RESTWEBSERVICE lth2gt ltbodygt lthtmlgt

118

Executamos o projecto no menu clicamos em ldquoRunrdquo ldquoRunrdquo escolhemos ldquoRun

on Serverrdquo e a primeira vez que executarmos o projecto temos que fazer a ligaccedilatildeo ao

servidor Apache Tomcat ldquoApacherdquo ldquoTomcat v70 Serverrdquo e ldquoFinishrdquo

Figura 72 - Servidor Apache Tomcat dentro do Eclipse

O projecto estaacute pronto a testar no link httplocalhost8080Testtesthtml

Figura 73 - Execuccedilatildeo no Browser

119

Anexo L (Importar configurar e executar o RESTWEBSERVICE - MOE)

A implementaccedilatildeo RESTWEBSERVICE - MOE eacute um webservice desenvolvido numa

arquitectura orientada a Web (Web-Oriented Architecture - WOA) disponibilizando os seus

recursos na Web atraveacutes do protocolo REST (Representational State Transfer) para troca de

informaccedilatildeo Vantagens como a simplicidade de interaccedilatildeo entre sistemas heterogeacuteneos a

facilidade de comunicaccedilatildeo entre aplicaccedilotildees existentes em muacuteltiplas plataformas e a

independecircncia de plataformas e linguagens de programaccedilatildeo satildeo evidentes

L1 Importaccedilatildeo do ldquoDynamic Web Projectrdquo MOE

A importaccedilatildeo o projecto ldquoMOErdquo (Matrix Operating Environment) para o ambiente de

desenvolvimento Eclipse carece da criaccedilatildeo de um ldquoDynamic Web Projectrdquo base no Eclipse

Assim para a criaccedilatildeo de um ldquoDynamic Web Projectrdquo seguir os passos descritos na

aliacutenea K1 Criar um ldquoDynamic Web Projectrdquo do Anexo K alterando apenas o nome para

ldquoMOErdquo Natildeo eacute necessaacuterio criar nenhuma classe java nem ficheiro HTML

Figura 74 - Projecto base MOE

Depois do projecto MOE criado basta importar o projecto real para o Eclipse ldquoFilerdquo

ldquoImportrdquo ldquoArchive Filerdquo

Figura 75 - Importaccedilatildeo do projecto real MOE

Seleccionar o projecto a importar O projecto deveraacute ficar com uma organizaccedilatildeo de

directorias como na imagem seguinte

120

Figura 76 - Projecto real MOE

L2 Configuraccedilatildeo inicial do MOE

Para que a execuccedilatildeo do MOE seja feita sem erros e todas as ligaccedilotildees e credenciaccedilotildees sejam

efectuadas temos que criar pastas e ficheiros de leitura inicial do MOE Assim vamos criar

uma directoria em C com o nome ldquorestconfigrdquo (Crestconfig) com 4 ficheiros

adminUsersListtxt

Ficheiro com todos os administradores do MOE Esta lista deveraacute ser igual agrave lista dos

administradores do HPMOE Um administrador por linha ldquodomiacutenioadminrdquo (ex

ldquohpptlabpaulopiresrdquo)

121

Figura 77 - Ficheiro ldquoadminUsersListtxtrdquo

hp-io-v5wsdl

Ficheiro WSDL (Web Service Description Language) a definiccedilatildeo das operaccedilotildees de IO

disponiacuteveis

https ltcms-ip-addressgt 51443hpiocontrollersoapv4 wsdl

Neste ficheiro basta alterar o IP do servidor HPMOE linha 5987

ltsoapaddress location=https1623187651443hpiocontrollersoapv5gt

Figura 78 - Ficheiro ldquohp-io-v5wsdlrdquo

Figura 79 - WSDL do HPMOE

loginconfig

Ficheiro de apoio agrave credenciaccedilatildeo (login) no MOE

No acircmbito da seguranccedila em aplicaccedilotildees JavaEE o servidor Apache Tomcat fornece

uma implementaccedilatildeo Realm JAAS (Java Authentication and Authorization Service) para que

os programadores possam implementar moacutedulos de login JAAS e integraacute-los facilmente com

as suas aplicaccedilotildees JAAS permite assim autenticaccedilotildees em modo Basic e Form usando para

isso os denominados realms File e JDBC (Java Database Connectivity) que neste caso eacute em

runtime

122

Figura 80 - Ficheiro ldquologinconfigrdquo

A ligaccedilatildeo ao ficheiro ldquologinconfigrdquo eacute feita no menu do Eclipse ldquoRunrdquo ldquoRun

Configurationsrdquo ldquoTomcat 70rdquo ldquoArgumentsrdquo ldquoVM argumentsrdquo adicionar a linha -

Djavasecurityauthloginconfig=Crestconfigloginconfig

Figura 81 - Ficheiro ldquologinconfigrdquo

vmwareAccesstxt

Ficheiro com dados de acesso agrave VMware para acesso agrave consola das VMs dos serviccedilos

criados

Primeira linha IP da VM onde estaacute o VCenter da VMware

Segunda linha Username do Administrador

Terceira linha Password do Administrador

123

Figura 82 - Ficheiro ldquovmwareAcesstxtrdquo

L3 Execuccedilatildeo do MOE

O MOE pode finalmente ser executado Para isso no menu clicamos em ldquoRunrdquo ldquoRunrdquo

escolhemos ldquoRun on Serverrdquo e a primeira vez que executarmos o projecto temos que fazer a

ligaccedilatildeo ao servidor Apache Tomcat ldquoApacherdquo ldquoTomcat v70 Serverrdquo e ldquoFinishrdquo

Figura 83 - Servidor Apache Tomcat dentro do Eclipse

Aguardar que o projecto seja construiacutedo e compilado Podemos acompanhar a

evoluccedilatildeo do estado directamente na consola do Eclipse

124

Figura 84 - Compilaccedilatildeo do projecto MOE

Finalmente o projecto estaacute disponiacutevel em httplocalhost8080MOE

Figura 85 - Login page MOE

Figura 86 - Data page MOE

125

Anexo M (Criaccedilatildeo de um Serviccedilo e ligaccedilatildeo agraves VMs)

A criaccedilatildeo de um serviccedilo de um determinado utilizador tem por base as

definiccedilotildeesconfiguraccedilotildees existentes num Template previamente definido e listado num

Cataacutelogo de Serviccedilos Configuraccedilotildees como detalhes dos servidores memoacuteria processadores

discos custos interfaces limites maacuteximos e miacutenimos de futuros updates ao serviccedilo etc estatildeo

previamente descritos e implementados sob a forma de Templates nos quais o utilizador pode

navegar verificar as caracteriacutesticas de cada um e escolher um que melhor se adapte as suas

necessidades

Assim o utilizador navega nos Templates existentes no Cataacutelogo de Serviccedilos do

menu lateral esquerdo e seleciona o Template No painel central do webservice painel

ldquoDetalhesrdquo satildeo abertas as tabs dos detalhes do Template selecionado

M1 Detalhes do Template

Nas imagens seguintes podemos verificar os detalhes do Template selecionado Nos detalhes

gerais do Template obtemos informaccedilotildees como o nome do Template a data de criaccedilatildeo e

modificaccedilatildeo versatildeo custo geral se eacute ou natildeo costumizaacutevel e o numero de ServerGroups

associados assim como discos e serviccedilos que jaacute foram criados tendo por base este template

Figura 87 - Detalhes gerais do Template ldquoTemplate_3srvrdquo

126

Todos os detalhes do Template ficam disponiacuteveis ao utilizador Ao niacutevel do grupo de

servidores informaccedilotildees como nome quantidade miacutenima de servidores e que seraacute a base do

serviccedilo criado e quantidade maacutexima de servidores sinal que o serviccedilo poderaacute crescer em

termos de quantidade de servidores Tipo de cluster e o numero de servidores loacutegicos

existentes no grupo

Figura 88 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo

Relativamente aos servidores o utilizador obteacutem informaccedilotildees como nome hostname

tipo de virtualizaccedilatildeo memoacuteria usada e quantidade maacutexima de memoacuteria processadores

usados e quantidade maacutexima de processadores se eacute ou natildeo virtual e se estaacute ou natildeo em cloud

Figura 89 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Informaccedilotildees detalhadas sobre os custos em detalhes ficam disponiacuteveis ao utilizador

Informaccedilotildees sobre custo total custo de base por cada servidor custo por processador e

memoacuteria

127

Figura 90 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Os discos tambeacutem apresentam informaccedilatildeo como nome tipo de storage tamanho raid

level se eacute ou natildeo bootable shareable e custo do disco

Figura 91 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

Cada servidor tem um software preacute-instalado ou instalado posteriormente pelo

utilizador Informaccedilotildees como nome tipo OS e virtualizaccedilatildeo estatildeo disponiacuteveis

Figura 92 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

Finalmente detalhes sobre as interfaces Neste caso duas interfaces uma na rede HP

(HP Network) e outra rede local (CloudSystem) Estatildeo disponiacuteveis informaccedilotildees como nome

da interface se eacute ou natildeo primaacuteria redundacircncia subnet publica shareable tipo de IP

endereccedilo DHCP activo ou natildeo e custo final

128

Figura 93 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo

M2 Criaccedilatildeo de um Serviccedilo

Selecionado o Template que melhor se enquadra nas necessidades do utilizador clicar

na opccedilatildeo preencher todos os dados obrigatoacuterios como nome do

serviccedilo hostname tempo atribuiacutedo ao serviccedilo (acarreta custos) e email do utilizador

As opccedilotildees ldquoNotesrdquo e ldquoBilling coderdquo satildeo opcionais

Figura 94 - Criaccedilatildeo do serviccedilo ldquomyServicerdquo

129

Apoacutes a solicitaccedilatildeo para a criaccedilatildeo do serviccedilo o utilizador eacute encaminhado para uma

lista de pedidos existentes para aquele utilizador e serviccedilo em especiacutefico Pedidos que

poderatildeo ser cancelados (figura 95) mediante decisatildeo do utilizador

Figura 95 - Lista de pedidos do utilizador

A salientar que existem pedidos que carecem da aprovaccedilatildeo do administrador por isso

o pedido poderaacute ficar parado numa determinada percentagem () a espera dessa aprovaccedilatildeo

Se o pedido natildeo necessitar de aprovaccedilatildeo continuaraacute a sua execuccedilatildeo ateacute estar completo

(100) e automaticamente seraacute adicionado ao menu lateral esquerdo do utilizador

Figura 96 - Eventual cancelamento de um pedido

Finalmente o serviccedilo eacute criado e todas as opccedilotildees ficaratildeo agora disponiacuteveis ao

utilizador como ediccedilatildeo de memoacuteria e processadores upgrade de servidores exportaccedilatildeo de

dados em xml visualizaccedilatildeo nesse formato etc

M3 Acesso Remoto

Acesso remoto agrave maquina virtual (VM) como objectivo de toda a implementaccedilatildeo estaacute

igualmente disponiacutevel para os servidores cujo status = ldquoUPrdquo Essa listagem poderaacute ser

efectuada na tab ldquoServiccedilosrdquo em com quatro tipo de ligaccedilotildees

130

RDP (Remote Desktop Protocol) (figura 100)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet (figura 101)

VMRC (VMware Remote Console) (figura 102)

Figura 97 - Serviccedilo ldquomyServicerdquo criado

Figura 98 - Listagem dos acessos remotos

Os acessos remotes poderatildeo ser feitos atraveacutes desta lista ou directamente nos

servidores ou interfaces

131

Figura 99 - Acesso remoto na tab ldquoServerrdquo

Figura 100 - Acesso remoto por RDP

Figura 101 - Acesso remoto por Telnet

Figura 102 - Acesso remoto por VMRC

132

Anexo N (MOE Help)

A informaccedilatildeo disponibilizada eacute vasta e detalhada sobre os recursos disponibilizados e a sua

manipulaccedilatildeo pode criar alguma duacutevida existencial Uma paacutegina ldquoMOE Helprdquo de ajuda eacute

sempre bem vinda e uacutetil bastando para isso clicar no iacutecone que o ajudaraacute a compreender

melhor tido o wevservice e sua distribuiccedilatildeo e organizaccedilatildeo

Figura 103 - Menu lateral esquerdo ldquoMOE Helprdquo

O menu lateral esquerdo agrave semelhanccedila da paacutegina principal do webservice expelha a

hierarquia da organizaccedilatildeo de toda a informaccedilatildeo O utilizador apenas tem que clicar na opccedilatildeo

que deseja maior esclarecimento

Figura 104 - Menu lateral esquerdo ldquoMOE Helprdquo

133

Toda a informaccedilatildeo de ajuda estaacute imediatamente disponiacutevel com as Tabs respectivas jaacute

abertas e prontas a consultar O menu lateral esquerdo serve apenas para selecionar a Tab e

dentro dessa Tab selecionar imediatamente a informaccedilatildeo pretendida Se o utilizador tiver

duacutevidas sobre a a importaccedilatildeo de um Template basta abrir a Tab Template e scroll ateacute agrave

informaccedilatildeo pretendida ou sentatildeo mais faacutecil clicar apenas em ldquoImport xmlrdquo dentro da pasta

Template no menu lateral esquerdo e com um simples clique visualiza imediatamente a

informaccedilatildeo nem necessidade de scroll

Figura 105 - ldquoImport xmlrdquo help

N1 Template

Um Template compreende a uma configuraccedilatildeo especifica de hardware e software desenhado

pelo Arquitecto a infra-estrutura para fazer face a determinadas situaccedilotildees como solicitaccedilotildees

de um utilizador ou grupo de utilizadores que solicitaram essas configuraccedilotildees especificadas

Configuraccedilotildees como nuacutemero de servidores memoacuteria processadores discos software

interface etc Opccedilotildees configuraacuteveis com limites minimos e maacuteximos com o seu

correspondente custo associado

Esses templates apoacutes publicaccedilatildeo fazem parte de uma lista num cataacutelogo de serviccedilos

para uso e instanciaccedilatildeo de serviccedilos de utilizadores dessa infra-estrutura

134

Figura 106 - Template info Tab

N2 Service

Um serviccedilo corresponde a uma instanciaccedilatildeo de um determinado template Todas as

configuraccedilotildees base do template seleccionado pertencem agora a este novo serviccedilo que poderaacute

ser posteriormente editado com mais ou menos servidores processamento memoacuteria discos

etc ateacute um limite maacuteximo definido no template de base de criaccedilatildeo deste serviccedilo A opccedilatildeo de

remoccedilatildeo de servidores definir menos memoacuteria ou processadores tambeacutem satildeo opccedilotildees

disponiacuteveis de ediccedilatildeo

Figura 107 - Service info Tab

135

N3 ServerGroup

Um Grupo de Servidores corresponde a um ou mais servidores com configuraccedilotildees diacutespares

em cada grupo como software discos interfaces etc O grupo de servidores permite a

organizaccedilatildeo dos servidores existentes num serviccedilo por tipo de configuraccedilotildees de hardware e

software

Figura 108 - ServerGroup info Tab

N4 Server

Um servidor eacute o nuacutecleo de um serviccedilo igualmente com configuraccedilotildees especiacuteficas como

memoacuteria processadores velocidade discos software interfaces etc

Figura 109 - Server info Tab

136

N5 Disk

Figura 110 - Disk info Tab

N6 Software

Software a ser disponibilizado na VM do utilizador Software baseado igualmente num

template com configuraccedilotildees especiacuteficas

Figura 111 - Software info Tab

137

N7 Interface

Toda a infra-estrutura tem por base uma lista de redes definidas para comunicaccedilatildeo desde

redes internas a redes externas agrave infra-estrutura

Figura 112 - Interface info Tab

N8 Request

Os pedidossolicitaccedilotildees ficam em histoacuterico durante a sua execuccedilatildeo e apoacutes teacutermino da mesma

Permite que o utilizador acompanhe a progressatildeo do seu pedido e quando terminar (100) o

utilizador eacute informado do status de teacutermino sendo automaticamente feito o refresh da paacutegina

Figura 113 - Request info Tab

138

N9 About

Um pequeno resumo desta Tese

Figura 114 - About info Tab

N10 Team

Intervenientes de todo o projecto

Figura 115 - Team info Tab

139

N11 Javadoc

Informaccedilatildeo sobre todo o webservice meacutetodos moacutedulos de acesso login configuraccedilotildees etc

Informaccedilatildeo disponiacutevel apenas ao Administrador

Figura 116 - Javadoc info Tab

140

Anexo O (VMware - Virtual Machine Resources)

O1 ldquoMapsrdquo ndash Host Options ndash Host to VM

Detalhes da relaccedilatildeo HostVM no final dos 3 serviccedilos criados

Host cifm02hpptlablocal VM Service1HP_hostonehost5

Host cifm05hpptlablocal VM myService_hostmyhostr01

Service2HP_hostrhostr01 02 e 03

Figura 117 - ldquoMapsrdquo da relaccedilatildeo Host VM

141

O2 ldquoMapsrdquo ndash Host Options ndash Host to Network

Detalhes da relaccedilatildeo HostNetwork no final dos 3 serviccedilos criados Os 2 hosts

(cifm02hpptlablocal e cifm05hpptlablocal) estatildeo ligados agraves 3 redes existentes

CloudSystem rede interna MOE (19216810hellip)

HP Network rede externa MOE e interna HP (1623186hellip e 1623187hellip)

HP DataCenter outra rede interna MOE

Figura 118 - ldquoMapsrdquo da relaccedilatildeo Host Network

142

O3 ldquoMapsrdquo ndash Host Options ndash Host to Datastore

Detalhes da relaccedilatildeo HostDatastore no final dos 3 serviccedilos criados

Host cifm02hpptlablocal Datastore CIF02-LOCALDATASTORE-001

Host cifm05hpptlablocal Datastore CIF05-LOCALDATASTORE-001 002 003 e

004

Datastore EVA-VMware-DISK-001 002 003 004 3 005

Figura 119 - ldquoMapsrdquo da relaccedilatildeo Host Datastore

143

O4 ldquoMapsrdquo ndash VM Options ndash VM to Network

Detalhes da relaccedilatildeo VMNetwork no final dos 3 serviccedilos criados

Network CloudSystem VM todas as VMs na rede local MOE

Network HP Network VM todas as VMs na rede externa MOE

Figura 120 - ldquoMapsrdquo da relaccedilatildeo VM Network

144

O5 ldquoMapsrdquo ndash VM Options ndash VM to Datastore

Detalhes da relaccedilatildeo HostDatastore no final dos 3 serviccedilos criados

VM Service1HP_hostonehost5 Datastore EVA-VMware-DISK-004

VM myService_hostmyhostr01 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr01 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr02 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr03 Datastore CIF05-LOCALDATASTORE-004

Figura 121 - ldquoMapsrdquo da relaccedilatildeo Host Datastore

145

O6 ldquoMapsrdquo ndash Host and VM Options ndash all relationships

146

Anexo P (Scenario view)

P1 Template

P11 Informaccedilatildeo

Figura 122 - Detalhes gerais do Template ldquoTemplate_3srvrdquo

Figura 123 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo

147

Figura 124 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Figura 125 - Detalhes dos Custos do Servidor ldquoSvrGrp1-1rdquo

Figura 126 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

Figura 127 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

148

Figura 128 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo

P12 Execuccedilatildeo

Figura 129 - Ficheiro ldquoTemplateListxmlrdquo

149

Export Template

Figura 130 - Ficheiro ldquoTemplate_3srvxmlrdquo

Import Template

Figura 131 - Importaccedilatildeo de um Template em formato XML

Delete Template

Figura 132 - InfoWindow ldquoDelete Templaterdquo

150

XML View

Figura 133 - InfoWindow com a visualizaccedilatildeo do Template em XML

Export All Services

Figura 134 - Ficheiro ldquoTemplate_3srv_ServiceListxmlrdquo

151

Create Service

Figura 135 - Criaccedilatildeo de um Serviccedilo com base no Template ldquoTemplate_3srvlrdquo

All Requests

Figura 136 - Lista de todos os pedidos do utilizador

152

Figura 137 - Eventual cancelamento de um pedido

Template Requests

Figura 138 - Lista dos pedidos resultantes da relaccedilatildeo Templateutilizador

153

P2 Serviccedilo

P21 Informaccedilatildeo

Figura 139 - Detalhes do Serviccedilo ldquomyServicerdquo do Template ldquoTemplate_3srvrdquo

P22 Execuccedilatildeo

Export All Services

Figura 140 - Ficheiro ldquoallServicesListxmlrdquo

154

Export Service

Figura 141 - Ficheiro ldquomyServicexmlrdquo

XML View

Figura 142 - InfoWindow com a visualizaccedilatildeo do Serviccedilo em XML

Delete Service

Figura 143 - Remoccedilatildeo de um Serviccedilo

155

Power ON Service

Figura 144 - Power ON de um Serviccedilo

Power OFF Service

Figura 145 - Power OFF de um Serviccedilo

Power Cycle Service

Figura 146 - Power Cycle de um Serviccedilo

Activate Service

Figura 147 - Activaccedilatildeo de um Serviccedilo

Deactivate Service

Figura 148 - Desactivaccedilatildeo de um Serviccedilo

156

Service Actions

Figura 149 - Lista dos Service Actions

List Remote Session

Figura 150 - Lista dos Acessos Remotos do um Serviccedilo

Figura 151 - Acesso remoto por RDP

Figura 152 - Acesso remoto por Telnet

157

Figura 153 - Acesso remoto por VMRC

Service Requests

Figura 154 - Listagem dos pedidos por Serviccedilo

158

P3 Grupo de Servidores

P31 Informaccedilatildeo

Figura 155 - Detalhes do Grupo de Servidores ldquoSvrGrp1rdquo do Serviccedilo ldquomyServicerdquo

P32 Execuccedilatildeo

Export Server Group

Figura 156 - Ficheiro ldquoSvrGrp1xmlrdquo

159

XML View

Figura 157 - InfoWindow com a visualizaccedilatildeo do Grupo de Servidores em XML

Add Servers (UP)

Figura 158 - Adiccedilatildeo de Servidores ao Grupo de Servidores

Remove Servers (DOWN)

Figura 159 - Remoccedilatildeo de Servidores ao Grupo de Servidores

160

Edit ServerGroup

Figura 160 - Ediccedilatildeo de Servidores ao Grupo de Servidores

Power ON ServerGroup

Figura 161 - Power ON de um ServerGroup

Power OFF ServerGroup

Figura 162 - Power OFF de um ServerGroup

Power Cycle ServerGroup

Figura 163 - Power Cycle de um ServerGroup

161

Activate ServerGroup

Figura 164 - Activaccedilatildeo de um ServerGroup

Deactivate ServerGroup

Figura 165 - Desactivaccedilatildeo de um ServerGroup

List Snapshots

Figura 166 - Listagem de todos os Snapshots existentes no Grupo de Servidores

Figura 167 - Acccedilotildees SnapshotServidor

Figura 168 - Revert Snapshot

162

Figura 169 - Delete Snapshot

Create Snapshot

Figura 170 - Create Snapshot

Add Stereotype Disks

Figura 171 - Lista de ldquoStereotype Disksrdquo

Add Virtual Disks

Figura 172 - Adicionar um disco virtual ldquoDisk62rdquo ao Grupo de Servidores

163

Add Physical Disks

Figura 173 - Adicionar um disco fiacutesico ldquoDisk788rdquo ao Grupo de Servidores

P4 Servidores

P41 Informaccedilatildeo

Figura 174 - Detalhes do Servidor ldquoSvrGrp1-1rdquo do Serviccedilo ldquomyServicerdquo

164

P42 Execuccedilatildeo

Export Server

Figura 175 - Ficheiro ldquohostmygostr01_lsxmlrdquo

XML View

Figura 176 - InfoWindow com a visualizaccedilatildeo do Servidor em XML

165

Remove Server

Figura 177 - Remoccedilatildeo de um Servidor

Edit Server

Figura 178 - Ediccedilatildeo de um Servidor

Power ON Server

Figura 179 - Power ON de um Servidor

Power OFF Server

Figura 180 - Power OFF de um Servidor

166

Power Cycle Server

Figura 181 - Power Cycle de um Servidor

Activate Server

Figura 182 - Activaccedilatildeo de um Servidor

Deactivate Server

Figura 183 - Desactivaccedilatildeo de um Servidor

Create Snapshot

Figura 184 - Create Snapshot

167

List ServerPool

Figura 185 - Pools de Servidores

Figura 186 - Criar uma Pools de Servidores

Figura 187 - Remoccedilatildeo de uma Pools de Servidores

Figura 188 - InfoWindo de aviso ao administrador

168

VM Host

Figura 189 - Informaccedilatildeo dos hosts fiacutesicos

Remote Session

Figura 190 - Sessotildees Remotas num Servidor

169

P5 Discos

P51 Informaccedilatildeo

Figura 191 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

P52 Execuccedilatildeo

Add Stereotype Disks

Figura 192 - Criaccedilatildeo de um ldquoStereotype Disksrdquo

170

P6 Software

P61 Informaccedilatildeo

Figura 193 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

P62 Execuccedilatildeo

List Softwares

Figura 194 - Lista de Software

171

Software Detals

Figura 195 - Detalhes do Software

P7 Interface

P71 Informaccedilatildeo

Figura 196 - Detalhes do Interface NIC0rdquo do Servidor ldquoSvrGrp1-1rdquo

172

P72 Execuccedilatildeo

List Subnets

Figura 197 - Listagem de todas as redes

Figura 198 - Detalhe da rede

Add IPAddress

Figura 199 - Adiccedilatildeo de um IP flutuante agrave Interface ldquoNIC0rdquo

173

Remove IPAddress

Figura 200 - Remoccedilatildeo de um IP flutuante pertencente agrave Interface ldquoNIC0rdquo

Move IPAddress

Figura 201 - Mover um IP flutuante para a Interface ldquoNIC0rdquo

Page 5: Framework para a construção de “portais de negócio” para

V

Framework para a construccedilatildeo de ldquoportais de negoacuteciordquo

para gestatildeo de solicitaccedilotildees de consumidores IaaS

na HP Cloud

copy Copyright - Indicaccedilatildeo dos direitos de coacutepia em nome de Paulo Agostinho Rodrigues Pires

aluno de Mestrado em Engenharia Informaacutetica da FCTUNL

A Faculdade de Ciecircncias e Tecnologia e a Universidade Nova de Lisboa tecircm o direito

perpeacutetuo e sem limites geograacuteficos de arquivar e publicar esta dissertaccedilatildeo atraveacutes de

exemplares impressos reproduzidos em papel ou de forma digital ou por qualquer outro

meio conhecido ou que venha a ser inventado e de a divulgar atraveacutes de repositoacuterios

cientiacuteficos e de admitir a sua coacutepia e distribuiccedilatildeo com objectivos educacionais ou de

investigaccedilatildeo natildeo comerciais desde que seja dado creacutedito ao autor e editor

VI

VII

Agradecimentos

Um profundo agradecimento a todos aqueles que de diferentes formas me apoiaram durante

estes 5 anos enquadrando este trabalho como objectivo uacuteltimo de uma licenciatura e

mestrado integrado em Engenharia Informaacutetica

Comeccedilo assim por agradecer a todos os meus professores da FCT que ao longo

destes 5 anos contribuiacuteram para a minha formaccedilatildeo acadeacutemica

Aos meus amigos que no estudo nas diversotildees nos incentivos conseguiram sempre criar um

ambiente ideal e propiacutecio agrave concretizaccedilatildeo das diferentes etapas deste curso com eacutexito Para

mim foi um privileacutegio ter partilhado com eles esta etapa da minha vida

Agrave HP pela disponibilizaccedilatildeo de todas as infra-estruturas permissotildees e acessos para a

elaboraccedilatildeo deste framework Um abiente acolhedor em pessoas trabalho equipamento e

apoio

Ao meu orientador e responsaacutevel na HP Rui Miguel Ramalho Ramos (TS Consulting

Resource Manager) que sempre ponto a ajudar soube resolver atempadamente todas as

minhas solicitaccedilotildees Um muito obrigado pela camaradagem eficiecircncia e profissionalismo

com que encarou toda a implementaccedilatildeo

Um agradecimento especial ao meu orientador da tese Professor Paulo Orlando Reis

Afonso Lopes (Arquitectura de Sistemas Computacionais) pela sua orientaccedilatildeo

disponibilidade e sugestotildees que me ajudaram na conclusatildeo deste trabalho Um muito

obrigado pela sua constante presenccedila e acima de tudo pela confianccedila que me concedeu

durante toda a tese quer na preparaccedilatildeo quer na elaboraccedilatildeo Uma acessibilidade e presenccedila

que fizeram toda a diferenccedila obrigado professor

Por uacuteltimo agrave minha famiacutelia pelo encorajamento pais irmatilde e sogros Um obrigado

especial ao meu sogro Aires Pereira pelas brincadeiras que proporcionou agrave minha filha

entretendo-a para que eu pudesse estudar e desenvolver esta tese

Agrave minha esposa Nadia Pires e a minha filha Lara merecem uma menccedilatildeo especial

Agradeccedilo agrave minha esposa pelo apoio prestado nesta etapa da minha vida obrigada pelo amor

pela paciecircncia pelo otimismo pela motivaccedilatildeo e por me ter acompanhado nas horas mais

difiacuteceis desta etapa estarei eternamente grato Na minha ausecircncia soube sempre ser o Pai e a

Matildee que uma famiacutelia precisa

Agrave minha querida filha um agradecimento muito especial e um pedido de desculpas

em simultacircneo Obrigada pelos sorrisos pelos abracinhos pelos beijinhos enfimhellip por todos

os carinhos que soacute uma menina doce como ela sabe dar e que me ajudaram a ultrapassar os

momentos mais difiacuteceis desta jornada Desculpa pela falta de paciecircncia e por todos os

momentos que natildeo podemos estar juntos

VIII

Resumo

O HP CloudSystem Matrix (CSM) faz parte de uma pilha de software HP para computaccedilatildeo

na cloud que cobre todos os niacuteveis de serviccedilo considerados relevantes IaaS (Infra-estrutura

como Serviccedilo) PaaS (Plataforma como Serviccedilo) e SaaS (Software como Serviccedilo) Apesar de

ser a base desta pilha ie oferecer o niacutevel IaaS eacute um produto extremamente complexo pois

interage com todas as infra-estruturas as computacionais (ie servidores fiacutesicos ou virtuais)

as de armazenamento (do disco interno aos discos em servidores de armazenamento) e as de

interligaccedilatildeo (redes Ethernet e FC)

Apesar de toda a complexidade da infra-estrutura real e virtual que gere o CSM

torna conceptualmente simples a entrega aos consumidores de infra-estruturas para suporte a

aplicaccedilotildees 1) o administrador define que recursos da infra-estrutura estatildeo disponiacuteveis para

integrar a ldquooferta cloudrdquo 2) o arquitecto define templates para as arquitecturas que considera

adequadas para necessidades dos consumidores (eg arquitectura 3-tier para uma soluccedilatildeo

ERP - Enterprise Resource Planning) e 3) o consumidor escolhe o template que melhor se

ajusta agraves suas necessidades e efectua um pedido de aprovisionamento da infra-estrutura

A interacccedilatildeo entre os diferentes interlocutores (1) (2) (3) e o CSM eacute

fundamentalmente realizada sobre portais contudo especialmente no caso do consumidor o

portal disponibilizado pelo produto tem sido considerado como ldquocomplexordquo por apresentar

informaccedilatildeo demasiado teacutecnica ldquoriacutegidordquo por natildeo poder ser customizado (por exemplo para

suprimir a ldquoinformaccedilatildeo demasiado teacutecnicardquo) e ldquogrosseirordquo por natildeo permitir a especificaccedilatildeo

mais fina das caracteriacutesticas da infra-estrutura que se quer aprovisionar (por exemplo permite

variar o nuacutemero de CPUs e a quantidade de memoacuteria de um servidor mas natildeo permite

escolher a tecnologia dos discos que se pretendem aprovisionar eg SSD em vez de FC 15K

em vez de 10K rpm) Assim o objectivo final da dissertaccedilatildeo eacute desenvolver um framework

que permita com base num conjunto (extensiacutevel e configuraacutevel) de opccedilotildees preacute-definidas e

em layouts customizaacuteveis definir portais que se integram com o HP CloudSystem Matrix e

que permitam aos utilizadores (consumidores) uma interacccedilatildeo natildeo soacute mais simples mas

tambeacutem mais versaacutetil

Neste trabalho satildeo abordados os modelos de serviccedilo e de implantaccedilatildeo (deployment)

de clouds a virtualizaccedilatildeo (natildeo somente de servidores mas tambeacutem de armazenamento e de

redes) pedra base de toda a tecnologia cloud e os moacutedulos e APIs disponiacuteveis para

interoperar com o CSM nomeadamente API-MOE e API-VMware Por fim eacute apresentada

uma framework com uma arquitectura multicamada (N-tier) implementada com tecnologias

padratildeo TCPIP para a pilha de comunicaccedilotildees REST (Representational State Transfer) para

regular a interacccedilatildeo e troca de informaccedilatildeo clienteservidor e XML (Extensible Markup

Language) e JSON (JavaScript Object Notation) como formatos de dados

Palavras-chave Computaccedilatildeo na nuvem Portal de interacccedilatildeo Traduccedilatildeo Binaacuteria

Virtualizaccedilatildeo de Servidores Virtualizaccedilatildeo de Armazenamento e Virtualizaccedilatildeo da Rede

IX

Abstract

The HP CloudSystem Matrix (CSM) is a part of the HP software stack for cloud computing

that covers all relevant service levels IaaS (Infrastructure as a Service) PaaS (Platform as a

Service) and SaaS (Software as a Service) Although it rests at the base of the stack ie only

offers the IaaS level it is an extremely complex product since it interacts with all

infrastructures computing (ie physical and virtualized servers) storage (from individual

drives to disk arrays) and networking (Ethernet and FC networks)

Despite all the (real) infrastructureacutes complexity that CSM deals with the delivery (to

end users ndash aka infrastructure consumers) of infrastructures for application support

becomes a conceptually simple task (1) the administrator defines which infrastructure

resources are available to integrate the cloud offer (2) the architect defines templates for

those architectures he deems appropriate for the end users (eg 3-tier architecture for an ERP

- Enterprise Resource Planning - solution) (3) the end user chooses the template that better

suits its needs and then submits a request for the delivery of the infrastructure

The interaction between the different counterparts (1) (2) and (3) and the CSM is

fundamentally realised over portals however especially in the case of the end user the portal

has been considered complex since it presents too much technical information rigid

since it is not customizable (eg to suppress the too much technical information) and

coarse since it does not allow a finer-graned specification of the infrastructureacutes attributes

that are required (eg it allows to change the number of CPUs and the amount of memory in

the server but it does not allow one to choose the disk technologies eg SSD instead of FC

or 15K instead 10K rpm) Therefore the final goal of this dissertation is to develop a

framework that allows with a set of pre-defined settings and customizable layouts to define

portals that are integrated with HP CloudSystem Matrix and enables a simpler user

interaction

In this work we studied service and cloud implementation models virtualization (not

only server virtualization but also storage and network virtualization) the foundation of all

cloud technologies modules and APIs that interoperate with CSM namely API-MOE and

API-VMware Finally we present a framework (prototype) implemented in a multi-layer

architecture (N-tier) with standard technologies TCPIP for the communication stack REST

(Representational State Transfer) to control the interaction and the clientserver information

flows and XML (eXtensible Markup Language) and JSON (JavaScript Object Notation) for

the data formats

Keywords Cloud Computing Interaction Portal Binary Translation Server Virtualization

Storage Virtualization and Network Virtualization

X

Glossaacuterio e Lista de siglas

API Application Programming Interface

BIOS Basic InputOutput System

CC Computaccedilatildeo em Cloud

CIFS Common Internet File System

CL Command Line

CMS Console Monitor System

CP Control Program

CPU Central Processing Unit

CSS Cascading Style Sheets

DAS Direct-Attached Storage

Dom0 Domiacutenio 0 do XenServer

DomU Domiacutenio U do XenServer

DVFilter Distributed Virtual Filter

DynaRecs Dynamic Recompilation

EIDE Enhanced Integrated Drive Electronics

FC Fibre Channel

FCoE Fibre Channel over Ethernet

FTP File Transfer Protocol

GUEST Sistema Virtualizado

HD Hard Drive

HOST Servidor Hospedeiro

HP Hewlett-Packard

HPCMS HP Console Management System

CSM HP CloudSystem Matrix (Hewlett-Packard)

IC Insight Control (Hewlett-Packard)

ID Insight Dynamics (Hewlett-Packard)

IO Infrastructure Orchestration (Hewlett-Packard)

SA Server Automation (Hewlett-Packard)

SS SiteScope (Hewlett-Packard)

UD Universal Discovery (Hewlett-Packard)

HPVM HP Integrity Virtual Machine

VMAN Virtualization Manager (Hewlett-Packard)

VMMGR HP Integrity Virtual Machines Manager (Hewlett-Packard)

XI

HTTP HyperText Transfer Protocol

HVM Virtualizaccedilatildeo assistida por hardware

IO InputOutput

IaaS Infrastructure as a Service

IBM International Business Machines Corporation

IDE Integrated Development Environment

iSCSI Internet Small Computer System Interface

J2EE Java2 Platform Enterprise Edition

JS JavaScript

JSON JavaScript Object Notation

JVM Java Virtual Machine

LAN Local Area Network

LUN Logical Unit Number

LVM Logical Volume Manager

MAC Apple Macintosh

MOE Matrix Operating Environment

MSCS Microsoft Cluster Server

NAS Network Attached Storage

nbAPI Northbound API

NetApp Network Appliance

NFS Network File System

NIC Adaptador de rede (Network Interface Controller)

NVRAM Non-Volatile Random Access Memory

PaaS Plataform as a Service

PATA Parallel Advanced Technology Attachment

pNIC Physical Network Interface Controller

POSIX Portable Operating System Interface

PV Para-Virtualizaccedilatildeo

PVHVM Para-Virtualizaccedilatildeo + Virtualizaccedilatildeo assistida por hardware

QOS Quality Of Service

RAID Redundant Array of Independent Disks

RAM Random Access Memory

REST REpresentational State Transfer

RPC Remote Procedure Call

SaaS Software as a Service

XII

SAN Storage Area Network

SAP Sistemas Aplicaccedilotildees e Produtos

SAS Serial Attached SCSI

SATA Serial ATA

SCSI Small Computer System Interface

SCVMM System Center Virtual Machine Manager

SF Sistema de Ficheiros

SLA Service Level Agreement

SMTP Simple Mail Transfer Protocol

SO Sistema Operativo

SOA Service-Oriented Architecture

SOAP Simple Object Access Protocol

SSD Solid-State Drive

TCPIP Transmission Control ProtocolInternet Protocol

TI Tecnologias de Informaccedilatildeo

URI Uniform Resource Identifier

URL Uniform Resource Locator

UUID Identificador Uacutenico Universal

VDI Virtual Disk Image

vDS vNetwork Distributed Switch

VHD Virtual Hard Disk (Microsoft)

VLAN Virtual LAN

VM Virtual Machine

VMBus Virtual Machine Buss

VMDK Virtual Machine Disk (VMware)

VMFS Virtual Machine File System

VMM hipervisor (tambeacutem designado Virtual Machine Manager)

vNIC Virtual Network Interface Controller

VSC Virtual Service Client

VSP Virtual Service Provider

vSwitch Virtual Switch

WOA Web-Oriented Architecture

WS Web Service

WWW World Wide Web

XML Extensible Markup Language

XIII

Iacutendice

1 Introduccedilatildeo 1

11 Descriccedilatildeo e contexto 1

12 Objectivos 3

13 Organizaccedilatildeo 3

14 Contribuiccedilotildees 4

15 Resumo 5

2 Virtualizaccedilatildeo 6

21 Evoluccedilatildeo histoacuterica 6

22 Virtualizaccedilatildeo de Servidores 7

221 VMware (VMware Inc) 8

222 Xen (Citrix Systems Inc) 9

223 Integrity VM (HP) 10

224 Hyper-V (Microsoft) 11

23 Virtualizaccedilatildeo do Armazenamento 12

231 Armazenamento em ambientes virtualizados 14

24 Virtualizaccedilatildeo da Rede 16

25 Resumo 18

3 Computaccedilatildeo na Cloud 19

31 Periacutemetro de uma cloud 19

32 Modelos de serviccedilo 20

33 Resumo 22

4 HP Cloud Stack 23

41 HP CloudSystem Matrix 23

42 Modelos de interacccedilatildeo com o HP CSM 25

43 Papeacuteis e Portais de interacccedilatildeo 26

44 Conceitos fundamentais da plataforma HP CSM 28

45 Limitaccedilotildees do HP CloudSystem Matrix 30

46 Resumo 31

5 O framework e a sua Realizaccedilatildeo 32

51 Arquitectura 32

52 Integraccedilatildeo da framework no HP CSM (MOE e VMware) 33

53 Um desenho guiado pela Interface Utilizador 34

54 Camada de apresentaccedilatildeo 38

XIV

541 Do lado do cliente 38

542 Do lado do servidor 39

543 Lista de primitivas na oacuteptica dos recursos 40

55 Camada ServiccedilosLoacutegica 41

551 Camada de Serviccedilos 42

552 Camada Loacutegica 42

56 Camada de Dados 68

561 Dados natildeo persistentes 68

562 Dados persistentes 69

57 Feedback 72

58 Questotildees principais 73

59 Visatildeo global 75

510 Resumo 76

6 Consideraccedilotildees Finais 77

61 Conclusotildees 78

62 Trabalho futuro 79

63 Resumo 80

Referecircncias bibliograacuteficas 81

XV

Iacutendice de Figuras

Figura 1 - Ambiente natildeo Virtualizado 1

Figura 2 - Ambiente Virtualizado 1

Figura 3 - Infra-estrutura CSM 2

Figura 4 - Arquitectura VMware ESXi (Tipo-1) 9

Figura 5 - Arquitectura XenServer 10

Figura 6 - Arquitectura Hyper-V 11

Figura 7 - Redundant Array Independent Disks (RAID) 12

Figura 8 - Storage Area Network (SAN) 13

Figura 9 - Network Attached Storage (NAS) 13

Figura 10 - Datastore e VMs 14

Figura 11 - Sistema de Ficheiros VMFS 15

Figura 12 - Network File System (NFS) 15

Figura 13 - Infra-estrutura de rede tradicional 16

Figura 14 - Infra-estrutura de rede virtual 17

Figura 15 - vNetwork Distributed Switch ndash vDS 17

Figura 16 - Distributed Virtual Filter (DVFilter) 18

Figura 17 - Relaccedilatildeo entre serviccedilos e responsabilidades 21

Figura 18 - Relaccedilotildees e papeacuteis dos envolventes nos modelos de Cloud Computing 22

Figura 19 - Contributos CloudStack 23

Figura 20 - Desenho publicaccedilatildeo e implementaccedilatildeo do cataacutelogo de serviccedilos 24

Figura 21 - Infra-estrutura HP CloudSystem Matrix 25

Figura 22 - Utilizadores de TI em cloud e respectivos papeacuteis (roles) 26

Figura 23 - Portal do Administrador 27

Figura 24 - Portal do Arquitecto 27

Figura 25 - Portal do Utilizador final 28

Figura 26 - Arquitectura n-tier 32

Figura 27 - Relaccedilatildeo dos VMIDs (WebService-MOE-vCenter) 33

Figura 28 - Estrutura em aacutervore do menu lateral esquerdo 35

Figura 29 - Portal 36

Figura 30 - Diagrama de Sequecircncia (Criaccedilatildeo de um Serviccedilo) 37

Figura 31 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull 41

Figura 32 - Execuccedilatildeo tab ldquoTemplaterdquo 45

Figura 33 - Execuccedilatildeo tab ldquoServicerdquo 48

Figura 34 - Execuccedilatildeo tab ldquoServerGroupsrdquo 51

Figura 35 - Execuccedilatildeo tab ldquoServerrdquo 56

XVI

Figura 36 - Execuccedilatildeo tab ldquoDisksrdquo 60

Figura 37 - Execuccedilatildeo tab ldquoSoftwarerdquo 61

Figura 38 - Execuccedilatildeo tab ldquoInterfacerdquo 62

Figura 39 - Listagem das redes existentes 64

Figura 40 - Execuccedilatildeo tab ldquoSnapshotrdquo 65

Figura 41 - Execuccedilatildeo tab ldquoRequestsrdquo 66

Figura 42 - Execuccedilatildeo tab ldquoServerPoolsrdquo 68

Figura 43 - Realm JAAS (Java Authentication and Authorization Service) 69

Figura 44 - Modelo ER 71

Figura 45 - Mensagens SOAP na invocaccedilatildeo de processos do MOE 75

Figura 46 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull do WEBSERVICE 76

Figura 47 - VMM ou hypervisor do Tipo-2 87

Figura 48 - VMM ou hypervisor do ldquohiacutebridordquo 88

Figura 49 - VMM ou hypervisor do Tipo-1 88

Figura 50 - Emulaccedilatildeo de Hardware 89

Figura 51 - Virtualizaccedilatildeo Completa 90

Figura 52 - Para-Virtualizaccedilatildeo 91

Figura 53 - Virtualizaccedilatildeo assistida por Hardware 91

Figura 54 - LUN num SAN iSCSI ou SAN FC 99

Figura 55 - Network File System (NFS) 100

Figura 56 - Projecto ldquoDynamic Web Projectrdquo no eclipse 102

Figura 57 - Plataforma Java 107

Figura 58 - Comando ldquojava -versionrdquo 108

Figura 59 - Instalaccedilatildeo da Plataforma Java 109

Figura 60 - Variaacutevel de sistema ldquoPathrdquo 109

Figura 61 - Variaacutevel de sistema ldquoCLASSPATHrdquo 110

Figura 62 - Variaacutevel de sistema ldquoJAVA_HOMErdquo 110

Figura 63 - Directoria de instalaccedilatildeo do Servidor Apache Tomcat 111

Figura 64 - Link localhost Apache Tomcat 112

Figura 65 - Add repository 113

Figura 66 - Dynamic Web Project 114

Figura 68 - Propriedades do Dynamic Web Project 115

Figura 69 - Webxml do Dynamic Web Project 115

Figura 70 - Directoria base do Dynamic Web Project 116

Figura 71 - Criar uma classe 117

Figura 72 - Servidor Apache Tomcat dentro do Eclipse 118

Figura 73 - Execuccedilatildeo no Browser 118

XVII

Figura 74 - Projecto base MOE 119

Figura 75 - Importaccedilatildeo do projecto real MOE 119

Figura 76 - Projecto real MOE 120

Figura 77 - Ficheiro ldquoadminUsersListtxtrdquo 121

Figura 78 - Ficheiro ldquohp-io-v5wsdlrdquo 121

Figura 79 - WSDL do HPMOE 121

Figura 80 - Ficheiro ldquologinconfigrdquo 122

Figura 81 - Ficheiro ldquologinconfigrdquo 122

Figura 82 - Ficheiro ldquovmwareAcesstxtrdquo 123

Figura 83 - Servidor Apache Tomcat dentro do Eclipse 123

Figura 84 - Compilaccedilatildeo do projecto MOE 124

Figura 85 - Login page MOE 124

Figura 86 - Data page MOE 124

Figura 87 - Detalhes gerais do Template ldquoTemplate_3srvrdquo 125

Figura 88 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo 126

Figura 89 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 126

Figura 90 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 127

Figura 91 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 127

Figura 92 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 127

Figura 93 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo 128

Figura 94 - Criaccedilatildeo do serviccedilo ldquomyServicerdquo 128

Figura 95 - Lista de pedidos do utilizador 129

Figura 96 - Eventual cancelamento de um pedido 129

Figura 97 - Serviccedilo ldquomyServicerdquo criado 130

Figura 98 - Listagem dos acessos remotos 130

Figura 99 - Acesso remoto na tab ldquoServerrdquo 131

Figura 100 - Acesso remoto por RDP 131

Figura 101 - Acesso remoto por Telnet 131

Figura 102 - Acesso remoto por VMRC 131

Figura 103 - Menu lateral esquerdo ldquoMOE Helprdquo 132

Figura 104 - Menu lateral esquerdo ldquoMOE Helprdquo 132

Figura 105 - ldquoImport xmlrdquo help 133

Figura 106 - Template info Tab 134

Figura 107 - Service info Tab 134

Figura 108 - ServerGroup info Tab 135

Figura 109 - Server info Tab 135

Figura 110 - Disk info Tab 136

XVIII

Figura 111 - Software info Tab 136

Figura 112 - Interface info Tab 137

Figura 113 - Request info Tab 137

Figura 114 - About info Tab 138

Figura 115 - Team info Tab 138

Figura 116 - Javadoc info Tab 139

Figura 117 - ldquoMapsrdquo da relaccedilatildeo Host VM 140

Figura 118 - ldquoMapsrdquo da relaccedilatildeo Host Network 141

Figura 119 - ldquoMapsrdquo da relaccedilatildeo Host Datastore 142

Figura 120 - ldquoMapsrdquo da relaccedilatildeo VM Network 143

Figura 121 - ldquoMapsrdquo da relaccedilatildeo Host Datastore 144

Figura 122 - Detalhes gerais do Template ldquoTemplate_3srvrdquo 146

Figura 123 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo 146

Figura 124 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 147

Figura 125 - Detalhes dos Custos do Servidor ldquoSvrGrp1-1rdquo 147

Figura 126 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 147

Figura 127 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 147

Figura 128 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo 148

Figura 129 - Ficheiro ldquoTemplateListxmlrdquo 148

Figura 130 - Ficheiro ldquoTemplate_3srvxmlrdquo 149

Figura 131 - Importaccedilatildeo de um Template em formato XML 149

Figura 132 - InfoWindow ldquoDelete Templaterdquo 149

Figura 133 - InfoWindow com a visualizaccedilatildeo do Template em XML 150

Figura 134 - Ficheiro ldquoTemplate_3srv_ServiceListxmlrdquo 150

Figura 135 - Criaccedilatildeo de um Serviccedilo com base no Template ldquoTemplate_3srvlrdquo 151

Figura 136 - Lista de todos os pedidos do utilizador 151

Figura 137 - Eventual cancelamento de um pedido 152

Figura 138 - Lista dos pedidos resultantes da relaccedilatildeo Templateutilizador 152

Figura 139 - Detalhes do Serviccedilo ldquomyServicerdquo do Template ldquoTemplate_3srvrdquo 153

Figura 140 - Ficheiro ldquoallServicesListxmlrdquo 153

Figura 141 - Ficheiro ldquomyServicexmlrdquo 154

Figura 142 - InfoWindow com a visualizaccedilatildeo do Serviccedilo em XML 154

Figura 143 - Remoccedilatildeo de um Serviccedilo 154

Figura 144 - Power ON de um Serviccedilo 155

Figura 145 - Power OFF de um Serviccedilo 155

Figura 146 - Power Cycle de um Serviccedilo 155

Figura 147 - Activaccedilatildeo de um Serviccedilo 155

XIX

Figura 148 - Desactivaccedilatildeo de um Serviccedilo 155

Figura 149 - Lista dos Service Actions 156

Figura 150 - Lista dos Acessos Remotos do um Serviccedilo 156

Figura 151 - Acesso remoto por RDP 156

Figura 152 - Acesso remoto por Telnet 156

Figura 153 - Acesso remoto por VMRC 157

Figura 154 - Listagem dos pedidos por Serviccedilo 157

Figura 155 - Detalhes do Grupo de Servidores ldquoSvrGrp1rdquo do Serviccedilo ldquomyServicerdquo 158

Figura 156 - Ficheiro ldquoSvrGrp1xmlrdquo 158

Figura 157 - InfoWindow com a visualizaccedilatildeo do Grupo de Servidores em XML 159

Figura 158 - Adiccedilatildeo de Servidores ao Grupo de Servidores 159

Figura 159 - Remoccedilatildeo de Servidores ao Grupo de Servidores 159

Figura 160 - Ediccedilatildeo de Servidores ao Grupo de Servidores 160

Figura 161 - Power ON de um ServerGroup 160

Figura 162 - Power OFF de um ServerGroup 160

Figura 163 - Power Cycle de um ServerGroup 160

Figura 164 - Activaccedilatildeo de um ServerGroup 161

Figura 165 - Desactivaccedilatildeo de um ServerGroup 161

Figura 166 - Listagem de todos os Snapshots existentes no Grupo de Servidores 161

Figura 167 - Acccedilotildees SnapshotServidor 161

Figura 168 - Revert Snapshot 161

Figura 169 - Delete Snapshot 162

Figura 170 - Create Snapshot 162

Figura 171 - Lista de ldquoStereotype Disksrdquo 162

Figura 172 - Adicionar um disco virtual ldquoDisk62rdquo ao Grupo de Servidores 162

Figura 173 - Adicionar um disco fiacutesico ldquoDisk788rdquo ao Grupo de Servidores 163

Figura 174 - Detalhes do Servidor ldquoSvrGrp1-1rdquo do Serviccedilo ldquomyServicerdquo 163

Figura 175 - Ficheiro ldquohostmygostr01_lsxmlrdquo 164

Figura 176 - InfoWindow com a visualizaccedilatildeo do Servidor em XML 164

Figura 177 - Remoccedilatildeo de um Servidor 165

Figura 178 - Ediccedilatildeo de um Servidor 165

Figura 179 - Power ON de um Servidor 165

Figura 180 - Power OFF de um Servidor 165

Figura 181 - Power Cycle de um Servidor 166

Figura 182 - Activaccedilatildeo de um Servidor 166

Figura 183 - Desactivaccedilatildeo de um Servidor 166

Figura 184 - Create Snapshot 166

XX

Figura 185 - Pools de Servidores 167

Figura 186 - Criar uma Pools de Servidores 167

Figura 187 - Remoccedilatildeo de uma Pools de Servidores 167

Figura 188 - InfoWindo de aviso ao administrador 167

Figura 189 - Informaccedilatildeo dos hosts fiacutesicos 168

Figura 190 - Sessotildees Remotas num Servidor 168

Figura 191 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 169

Figura 192 - Criaccedilatildeo de um ldquoStereotype Disksrdquo 169

Figura 193 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 170

Figura 194 - Lista de Software 170

Figura 195 - Detalhes do Software 171

Figura 196 - Detalhes do Interface NIC0rdquo do Servidor ldquoSvrGrp1-1rdquo 171

Figura 197 - Listagem de todas as redes 172

Figura 198 - Detalhe da rede 172

Figura 199 - Adiccedilatildeo de um IP flutuante agrave Interface ldquoNIC0rdquo 172

Figura 200 - Remoccedilatildeo de um IP flutuante pertencente agrave Interface ldquoNIC0rdquo 173

Figura 201 - Mover um IP flutuante para a Interface ldquoNIC0rdquo 173

XXI

Iacutendice de Tabelas

Tabela 1 - Funccedilotildees associadas agrave inicializaccedilatildeo do Webservice 43

Tabela 2 - Funccedilotildees associadas ao Template 47

Tabela 3 - Funccedilotildees associadas ao Serviccedilo 50

Tabela 4 - Funccedilotildees associadas ao Grupo de Servidores 54

Tabela 5 - Funccedilotildees associadas aos Servidores 58

Tabela 6 - Funccedilotildees associadas aos Discos 60

Tabela 7 - Funccedilotildees associadas ao Software 62

Tabela 8 - Funccedilotildees associadas agraves Interfaces 63

Tabela 9 - Funccedilotildees associadas agraves Redes 65

Tabela 10 - Funccedilotildees associadas aos Snapshots 65

Tabela 11 - Funccedilotildees associadas aos Requests 67

Tabela 12 - Funccedilotildees associadas agraves Pools de Servidores 68

Tabela 13 - Dados gerais VMWARE 93

Tabela 14 - Detalhes VMWARE 93

Tabela 15 - Dados gerais Citrix 94

Tabela 16 - Dados detalhados Citrix 94

Tabela 17 - Dados gerais HP 95

Tabela 18 - Dados detalhados HP 95

Tabela 19 - Dados gerais Microsoft 96

Tabela 20 - Dados detalhados Microsoft 96

XXII

Iacutendice de Anexos

Anexo A (Virtualizaccedilatildeo Vantagens e inconvenientes) 84

Anexo B (Virtualizaccedilatildeo Arquitectura) 87

Anexo C (Virtualizaccedilatildeo Tipos de Implementaccedilatildeo) 89

Anexo D (Detalhes da plataforma e restriccedilotildees da VMware) 93

Anexo E (Detalhes da plataforma e restriccedilotildees da Citrix) 94

Anexo F (Detalhes da plataforma e restriccedilotildees da HP) 95

Anexo G (Detalhes da plataforma e restriccedilotildees da Microsoft) 96

Anexo H (Ambiente de armazenamento VMware ESXi e Citrix Xen) 97

Anexo I (Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo) 102

Anexo J (Ferramentas de desenvolvimento WebService) 107

Anexo K (Criar e executar um ldquoDynamic Web Projectrdquo no Eclipse) 114

Anexo L (Importar configurar e executar o RESTWEBSERVICE - MOE) 119

Anexo M (Criaccedilatildeo de um Serviccedilo e ligaccedilatildeo agraves VMs) 125

Anexo N (MOE Help) 132

Anexo O (VMware - Virtual Machine Resources) 140

Anexo P (Scenario view) 146

1

1 Introduccedilatildeo

11 Descriccedilatildeo e contexto

A evoluccedilatildeo do poder de processamento dos computadores actuais eacute notoacuteria nestes

uacuteltimos anos Infelizmente uma grande parte desse poder natildeo eacute efectivamente usada

no quotidiano havendo por isso uma crescente preocupaccedilatildeo com os desperdiacutecios que

resultam dessa subutilizaccedilatildeo Tecnologias como a virtualizaccedilatildeo em primeiro lugar e

a Cloud Computing como estaacutegio mais avanccedilado desta satildeo formas de reduccedilatildeo de tais

desperdiacutecios

Virtualizaccedilatildeo

Observando as duas primeiras figuras rapidamente ficamos com a ideia do

que eacute real figura 1 e do que eacute virtual figura 2 Assim entenda-se o real como algo

com caracteriacutesticas fiacutesicas concretas palpaacuteveis e o virtual associado a algo simulado

abstracto uma imitaccedilatildeo do real Eacute aqui que se enquadra a virtualizaccedilatildeo o simular de

um ambiente real que suporta todo um ambiente que vai do sistema de operaccedilatildeo agraves

aplicaccedilotildees sem necessidade de acesso agrave maacutequina real que neste caso funciona como

hospedeira desta tecnologia

A virtualizaccedilatildeo encaixa-se num mundo ilusoacuterio de vaacuterias maacutequinas virtuais

(Virtual Machines - VMs) independentes e isoladas entre si cada uma com um

Sistema Operativo (SO) proacuteprio e potencialmente diferente do SO das demais

Figura 1 - Ambiente natildeo Virtualizado

Figura 2 - Ambiente Virtualizado

2

Cloud Computing

As estrateacutegias de consolidaccedilatildeo de servidores propiciadas pelo uso de

virtualizaccedilatildeo conduzem de facto agrave reduccedilatildeo de custos de hardware software e

energia mas natildeo evitam (e podem ateacute aumentar) o nuacutemero de servidores agora

virtuais a gerir acrescentando o custo humano agrave equaccedilatildeo A adopccedilatildeo do paradigma

cloud (a ver na secccedilatildeo 2) eacute o passo a dar para manter o custo total sob controlo

O HP CloudSystem Matrix (CSM) [1] faz parte de uma pilha de software HP

para computaccedilatildeo na cloud que cobre todos os niacuteveis de serviccedilo considerados

relevantes IaaS (Infra-estrutura como Serviccedilo) PaaS (Plataforma como Serviccedilo) e

SaaS (Software como Serviccedilo) Apesar de ser a base desta pilha ie oferecer o niacutevel

IaaS eacute um produto extremamente complexo pois interage com todas as infra-

estruturas as computacionais (ie servidores fiacutesicos ou virtuais) as de

armazenamento (do disco interno aos discos em servidores de armazenamento) e as

de interligaccedilatildeo (redes Ethernet e FC)

Apesar de toda a complexidade da infra-estrutura real e virtual que gere o

CSM torna conceptualmente simples a entrega aos consumidores de infra-estruturas

para suporte a aplicaccedilotildees 1) o administrador define que recursos da infra-estrutura

estatildeo disponiacuteveis para integrar a ldquooferta cloudrdquo 2) o arquitecto define templates para

as arquitecturas que considera adequadas para necessidades dos utilizadores

consumidores (eg arquitectura 3-tier para uma soluccedilatildeo ERP1) e 3) o consumidor

escolhe o template que melhor se ajusta agraves suas necessidades e efectua um pedido de

aprovisionamento de uma infra-estrutura

Figura 3 - Infra-estrutura CSM

A interacccedilatildeo entre os diferentes interlocutores (1) (2) (3) e o CSM eacute

fundamentalmente realizada sobre portais contudo especialmente no caso do

utilizador-consumidor o portal disponibilizado pelo produto tem sido considerado

1 ERP (Enterprise Resource Planning) cobre uma larga fatia das necessidades de uma empresa Permite uma

visatildeo integrada em tempo real dos seus principais processos de negoacutecios

3

como ldquocomplexordquo por apresentar informaccedilatildeo demasiado teacutecnica ldquoriacutegidordquo por natildeo

poder ser customizado (por exemplo para suprimir a ldquoinformaccedilatildeo demasiado

teacutecnicardquo) e ldquogrosseirordquo por natildeo permitir a especificaccedilatildeo mais fina das caracteriacutesticas

da infra-estrutura que se quer aprovisionar (por exemplo permite variar o nuacutemero de

CPUs e a quantidade de memoacuteria de um servidor mas natildeo permite escolher a

tecnologia dos discos que se pretendem aprovisionar eg SSD (Solid-State Drive)

em vez de FC 15K em vez de 10K RPM)

12 Objectivos

O objectivo desta tese eacute desenvolver um framework que permita com base num

conjunto (extensiacutevelconfiguraacutevel) de opccedilotildees preacute-definidas e em layouts

customizaacuteveis definir portais que se integram com o HP CloudSystem Matrix e que

permitam aos utilizadores (consumidores IaaS) uma interacccedilatildeo mais simples praacutetica e

organizada natildeo soacute na visualizaccedilatildeo de toda a informaccedilatildeo mas tambeacutem das acccedilotildees

possiacuteveis de serem executadas nos recursos disponibilizados que satildeo ampliadas face agrave

oferta disponiacutevel no portal standard do CSM

Neste trabalho foram estudados modelos de serviccedilo e de implantaccedilatildeo

(deployment) de clouds a virtualizaccedilatildeo (natildeo somente de servidores mas tambeacutem de

armazenamento e de redes) pedra base de toda a tecnologia cloud e os moacutedulos e

APIs disponiacuteveis para interoperar com o CSM nomeadamente a API-MOE e a API-

VMware para desenvolver um framework com uma arquitectura multicamada (N-tier)

sobre TCPIP e usando o protocolo REST (Representational State Transfer) para troca

de informaccedilatildeo

13 Organizaccedilatildeo

O presente trabalho encontra-se organizado em 6 secccedilotildees que vatildeo desde o estudo

preacutevio das diferentes tecnologias ateacute agraves Consideraccedilotildees finais tidas como conclusatildeo

Assim a secccedilatildeo 1 eacute a presente introduccedilatildeo onde se apresenta a virtualizaccedilatildeo

como tecnologia nuclear ao trabalho enunciam-se os objectivos a organizaccedilatildeo de

todo o relatoacuterio e as suas contribuiccedilotildees

Na secccedilatildeo 2 eacute feita uma abordagem agrave virtualizaccedilatildeo desde a sua evoluccedilatildeo

histoacuterica culminando com a visatildeo actual das quatro tecnologias mais representativas

no mercado VMware Citrix HP e Microsoft Aborda-se natildeo soacute a virtualizaccedilatildeo de

servidores mas tambeacutem a de armazenamento e de rede

Na secccedilatildeo 3 apresenta-se uma nova tecnologia computaccedilatildeo na Cloud

resultado da uniatildeo da virtualizaccedilatildeo e moacutedulos de orquestraccedilatildeo Satildeo abordados os seus

modelos de implementaccedilatildeo e os diferentes niacuteveis de serviccedilo que podem ser oferecidos

neste paradigma

Na secccedilatildeo 4 descreve-se uma nova tecnologia HP Cloud Stack como pilha de

software e hardware Satildeo abordadas tecnologias como HP CloudSystem Matrix os

4

seus modelos de interacccedilatildeo papeis e portais conceitos fundamentais para perceber o

restante relatoacuterio e as limitaccedilotildees desta uacuteltima tecnologia razatildeo de ser deste trabalho

Na secccedilatildeo 5 eacute apresentada a framework (protoacutetipo) desde a arquitectura

implementaccedilatildeo dos diferentes moacutedulos execuccedilatildeo nos cenaacuterios possiacuteveis e coacutedigo

principal e finalmente feedback dos orientadores e redefiniccedilatildeo de objectivos ou

estrateacutegias de realizaccedilatildeo e por uacuteltimo a discussatildeo da relaccedilatildeo entre os serviccedilos e

funcionalidades do HP MOE e a framework implementada

Na secccedilatildeo 6 satildeo apresentadas as conclusotildees sobre o trabalho realizado

perspectivas para desenvolvimentos futuros fazendo-se uma discussatildeo final sobre as

dificuldades encontradas na implementaccedilatildeo

14 Contribuiccedilotildees

Todo o estudo de conceitos relaccedilotildees e teorias tem sempre como objectivo uacuteltimo a

aquisiccedilatildeo de mais conhecimento e acima de tudo aplicabilidade Nesse intuito a

principal contribuiccedilatildeo deste trabalho estaacute directamente relacionada com o principal

objectivo um framework modelo de acesso raacutepido intuitivo organizado

personalizaacutevel e acima de tudo praacutetico no acesso a recursos de uma infra-estrutura

Apresentam-se de seguida todas as contribuiccedilotildees identificadas

Um modelo simples com uma curta curva de aprendizagem e uma

flexibilidade com acessos proacuteprios individuais e personalizados a cada utilizador O

acesso a toda a informaccedilatildeorecursos eacute feita numa visualizaccedilatildeo das componentes

principais em aacutervore permitindo assim uma raacutepida visualizaccedilatildeo das configuraccedilotildees de

todo o Serviccedilo criado e um acesso raacutepido e intuitivo aos detalhes de cada componente

Visualizaccedilatildeo imediata do Cataacutelogo de Serviccedilos com todos os Templates e a

correspondente associaccedilatildeo dos serviccedilos por Template A descriccedilatildeo eacute a mesma

relativamente aos recursos associados a cada Serviccedilo A informaccedilatildeo visualizada eacute

apenas a necessaacuteria em cada visualizaccedilatildeo e instanciaccedilatildeo

Modelo personalizaacutevel com acccedilotildees como ocultar ou visualizar paineacuteis de

informaccedilatildeo lista de todos os pedidos listagem por Template por Serviccedilo layout de

toda a interface do menu em aacutervore um simples clique e toda o portal fica

personalizaacutevel a um determinado utilizador

Disponibilizaccedilatildeo de todas as acccedilotildees possiacuteveis a cada recurso na tab respectiva

da visualizaccedilatildeo da informaccedilatildeo associada a esse recurso Acccedilotildees acessiacuteveis e raacutepidas

de executar sem menus e submenus com sucessivos cliques que soacute atrasam todo o

processo A acessibilidade aos recursos eacute completa com acccedilotildees de grupo e acccedilatildeo

individuais a cada recurso permitindo assim o verdadeiro aproveitamento de todo o

Serviccedilo criado

Uma informaccedilatildeo hierarquizada e organizada em agrupamentos loacutegicos por

recursos eacute um processo muito faacutecil de seguir e perceber associada a esta

5

disponibilizaccedilatildeo de informaccedilatildeo acccedilotildees que possam ser executadas nesses recursos eacute

o objectivo da simplicidade e performance deste modelo

15 Resumo

Neste capiacutetulo fez-se uma descriccedilatildeo e contexto introdutoacuterio de conceitos como

Virtualizaccedilatildeo Cloud Computing e HP CloudSystem Matrix onde se descreveram as

mais-valias do uso destas tecnologias vantagens e inconvenientes e os papeacuteisfunccedilotildees

dos principais interlocutores Descreveram-se os objectivos desta dissertaccedilatildeo um

framework que solucione e melhore os problemas existentes em modelos

implementados actualmente Foi igualmente descrita toda a organizaccedilatildeo das diferentes

secccedilotildees e por ultimo as contribuiccedilotildees tidas no presente trabalho

6

2 Virtualizaccedilatildeo

21 Evoluccedilatildeo histoacuterica

Os primeiros passos da virtualizaccedilatildeo foram dados aproximadamente haacute meio seacuteculo e

tiveram origem em preocupaccedilotildees como heterogeneidade portabilidade estabilidade e

utilizaccedilatildeo mais eficiente de recursos Tudo comeccedilou na IBM com a sua longa lista de

variantes de uma dada arquitectura-base com as novas geraccedilotildees incompatiacuteveis com as

anteriores com muacuteltiplos SOs (mono-utilizador interactivo batch timesharing etc)

criando insatisfaccedilatildeo nos clientes Como resposta IBM lanccedilou nos anos 60 a

arquitectura 360 com suporte para virtualizaccedilatildeo (ao niacutevel do hardware) e com o

sistema de operaccedilatildeo CPCMS O CP (Control Program) era usado para gerir as VMs

e que executavam o CMS (Console Monitor System) um SO interactivo com uma

interface ldquolinha de comandordquo

Por outro lado um outro tipo de virtualizaccedilatildeo dito virtualizaccedilatildeo de aplicaccedilotildees

procura que uma aplicaccedilatildeo possa ser executada numa variedade de plataformas

distintas que apenas tecircm em comum o sistema de run-time que implementa a VM (natildeo

requer que uma VM seja ldquototalmenterdquo equivalente a uma maacutequina fiacutesica e portanto

capaz de executar um SO) Tal eacute o caso da JVM (Java Virtual Machine) capaz de

executar aplicaccedilotildees desenvolvidas na linguagem Java (nascida em 1990 de um

projecto denominado ldquoStealthrdquo da Sun Microsystems)

A implementaccedilatildeo desta tecnologia tatildeo bem aceite e cada vez mais usada nas

organizaccedilotildees demonstra a mais-valia das propriedades que caracterizam o seu

funcionamento

Isolamento Os processos das diferentes maacutequinas virtuais natildeo podem

interferir entre si ou seja um processo de uma VM natildeo pode interferir

noutra VM nem sequer no proacuteprio sistema hospedeiro (host) que suporta

toda a virtualizaccedilatildeo

Inspecccedilatildeo O gestor de maacutequinas virtuais (Virtual Machine Manager -

VMM) ou hipervisor deve ter acesso e controlo sobre todas as VMs e ateacute

sobre todos os seus processos

Interposiccedilatildeo O VMM deve poder interagir com as VMs controlar as suas

operaccedilotildees ter acesso ao fluxo de instruccedilotildees maacutequina que estas executam e

remover adicionar ou alterar essas instruccedilotildees se for necessaacuterio

Eficiecircncia As instruccedilotildees natildeo privilegiadas devem poder ser executadas

directamente no hardware sem interposiccedilatildeo do VMM

Gestatildeo O VMM deve natildeo soacute permitir manipular uma VM isoladamente

mas tambeacutem executar uma operaccedilatildeo de uma soacute vez sobre muacuteltiplas VMs

Compatibilidade de software A virtualizaccedilatildeo simula uma determinada

plataforma (real) e desse modo todo o software disponiacutevel para essa

plataforma deve poder ser executado ldquotal como estaacute (original)rdquo numa VM

7

Desempenho A sobrecarga (overhead) da camada extra de software pode

sacrificar o desempenho do sistema hospedado (guest) mas a relaccedilatildeo

custobenefiacutecios do uso da virtualizaccedilatildeo deve ser francamente positiva

O Anexo A descreve mais detalhadamente as vantagens e inconvenientes da

virtualizaccedilatildeo

22 Virtualizaccedilatildeo de Servidores

O dinamismo do triacircngulo existente entre fornecedores de software hardware e seus

clientes eacute uma constante Fornecedores como a VMware e a Microsoft publicitam as

suas soluccedilotildees de virtualizaccedilatildeo destacando as mais-valias como a utilizaccedilatildeo eficiente

de recursos partilhados gestatildeo centralizada e migraccedilatildeo dinacircmica os fornecedores de

hardware publicitam menores consumos de energia e maior interoperabilidade e

suporte as organizaccedilotildees olham para este mundo com o objectivo uacuteltimo da eficiecircncia

produtividade e custos A virtualizaccedilatildeo aparece como uma forma eficaz de fazer mais

com menos investimento

A primeira razatildeo pela qual se torna muito interessante executar muacuteltiplas VMs

num uacutenico servidor eacute a mesma pela qual executamos muacuteltiplas aplicaccedilotildees num uacutenico

servidor os recursos estariam se natildeo o fizeacutessemos muito subaproveitados Sendo

assim porque natildeo executar simplesmente muacuteltiplas aplicaccedilotildees no servidor usando um

soacute SO Podemos avanccedilar desde jaacute com uma razatildeo simples os fornecedores certificam

os seus produtos aplicaccedilotildees e serviccedilos apenas para determinados ambientes e pilhas

de software vejamos alguns exemplos 1) a Microsoft natildeo certifica configuraccedilotildees

MSCS (Microsoft Cluster Server) que incluam o serviccedilo Active Domain num dos noacutes

dos cluster 2) a VMware disponibiliza o seu produto de gestatildeo vCenter Server sobre

Unix (SUSE Linux) na forma de uma appliance fornecida pela proacutepria VMware

Assim se dispusermos de um servidor que tem os recursos apropriados para suportar

um noacute MSCS e uma instacircncia vCenter teremos de os instalar sob a forma duas VMs a

correrem sob um hipervisor instalado nesse servidor Uma outra situaccedilatildeo que ldquoobrigardquo

(do ponto de vista financeiro) agrave utilizaccedilatildeo de VMs eacute a de aplicaccedilotildees legacy uma

aplicaccedilatildeo antiga (e eacute demasiado oneroso actualizaacute-la) estaacute certificada apenas para uma

dada versatildeo de SO tambeacutem antigo que natildeo possui drivers adequados para os

servidores mais actuais sendo que o servidor antigo jaacute natildeo tem capacidade para

executar a aplicaccedilatildeo (e eacute muito oneroso mantecirc-lo) Uma soluccedilatildeo simples eacute instalar um

hipervisor num servidor recente criar uma VM e nela instalar a versatildeo antiga do SO

e a aplicaccedilatildeo

A arquitectura da virtualizaccedilatildeo estaacute descrita no Anexo B e os Tipos de

Implementaccedilatildeo no Anexo C uma leitura ajuda a perceber todos estes conceitos e

tecnologias que se seguem

Actualmente o nuacutemero de tecnologias disponiacuteveis para implementaccedilatildeo e

gestatildeo de maacutequinas virtuais tem vindo a crescer destacando-se algumas pela

8

disponibilizaccedilatildeo de um conjunto de ferramentas que as tornam vencedoras nos

mercados Seguem-se quatro exemplos das empresas (e suas tecnologias) que mais se

destacam hoje em dia

VmWare Inc VmWare Player Workstation Fusion ESXi

Citrix Systems Inc XenServer

Hewlett-Packard HP Integrity Virtual Machines

Microsoft Virtual PC Hyper-V

221 VMware (VMware Inc)

O VMware apresenta-se como uma plataforma liacuteder (80) no mercado da

virtualizaccedilatildeo com uma tecnologia de virtualizaccedilatildeo do tipo 1 (virtualizaccedilatildeo completa

tambeacutem designada nativa ou bare metal) Oferece um vasto leque de produtos desde

os hipervisores para desktops e laptops (VMware PlayerWorkstationFusion) aos

para servidores de grande porte (VMware vSphere ESXi) e ainda um vasto conjunto

de software de gestatildeo de VMs orquestraccedilatildeo de operaccedilotildees Cloud IaaS etc

De todos os produtos da VMware interessa-nos destacar aqui apenas a

tecnologia de virtualizaccedilatildeo ESXi oferecida para servidores que descrevemos em

seguida muito sucintamente

VMware vSphere ESXi Eacute uma VMM ou hipervisor tipo 1 garantindo um

elevado niacutevel de isolamento entre os recursos oferecidos agraves VMs sejam

estes o processador memoacuteria discos ou adaptadores de rede Eacute instalado

directamente sobre o hardware do servidor eliminando assim a

sobrecarga de ter um SO standard sobre o qual corre um hipervisor os

hipervisores de tipo 1 exibem portanto melhor desempenho e aumentam

a seguranccedila O facto de permitir que tudo seja virtualizado torna a VM

ainda mais completa O pacote inclui apenas o hipervisor ESXi e

ferramentas baacutesicas de gestatildeo

A forma como as instruccedilotildees do sistema hospedado (guest) satildeo executadas num

ambiente ESXi pode ser descrita com ajuda da figura 4 [8] 1) as instruccedilotildees oriundas

de aplicaccedilotildees que se executam sobre o SO hospedado satildeo executadas directamente no

processador real 2) as instruccedilotildees oriundas do proacuteprio SO hospedado satildeo verificadas

antes de serem executadas sendo que as privilegiadas satildeo traduzidas ou modificadas

para comandos ou instruccedilotildees do proacuteprio hipervisor uma teacutecnica que eacute denominada

como ldquoTraduccedilatildeo Binaacuteriardquo

Esta teacutecnica complementada com outras teacutecnicas de ldquoaceleraccedilatildeordquo de

operaccedilotildees sobre IO memoacuteria e de gestatildeo de recursos entre VMs fazem com que a

VMware consiga atingir desempenhos muito proacuteximos de um ambiente nativo ie

natildeo virtualizado

9

Figura 4 - Arquitectura VMware ESXi (Tipo-1)

Na versatildeo vSphere para servidores de grande porte estatildeo disponiacuteveis muitas

funcionalidades [9] como a migraccedilatildeo automaacutetica de VMs (balanceamento de carga)

a alta disponibilidade para vCenter (suportada pelo vCenter Server Heartbeat) a

recuperaccedilatildeo de destastres (Site Recovery Manager)

Para maiores detalhes e restriccedilotildees da VMware consultar o Anexo D [1011]

222 Xen (Citrix Systems Inc)

O XenServer eacute a plataforma de virtualizaccedilatildeo da Citrix baseada no hipervisor Xen a

versatildeo base designada Standard eacute gratuita e oferece para aleacutem do hipervisor

ferramentas como o XenCenter uma consola de gestatildeo para muacuteltiplos servidores e o

XenMotion para migraccedilatildeo ldquoin vivordquo de VMs

O hipervisor Xen na sua mais recente versatildeo eacute uma tecnologia de

virtualizaccedilatildeo do tipo 1 instalada num nuacutecleo Linux (x86 x86-64 ou IA-64 SUSE

Linux) que permite a criaccedilatildeo de vaacuterias VMs com recursos e aplicaccedilotildees partilhadas

Contrariamente ao VMware natildeo usa a traduccedilatildeo binaacuteria mas uma combinaccedilatildeo de

paravirtualizaccedilatildeo [12] (eliminando a latecircncia no desempenho introduzida pela

traduccedilatildeo binaacuteria) e virtualizaccedilatildeo assistida por hardware [13] Na paravirtualizaccedilatildeo a

maacutequina abstracta eacute quase mas natildeo completamente igual ao hardware hospedeiro

por isso o SO hospedado (guest) tem de ser modificado Como tal soacute eacute possiacutevel para

SOs disponiacuteveis em coacutedigo aberto o Xen executa os outros (eg Windows)

recorrendo a uma combinaccedilatildeo da paravirtualizaccedilatildeo com a virtualizaccedilatildeo assistida por

hardware oferecida nos processadores Intel (Intel-VT) e AMD (AMD-V)

Na arquitectura XenServer figura 5 existe uma VM privilegiada para controlo

do hipervisor denominada ldquoDom0rdquo esta VM eacute parte integrante do ambiente

10

XenServer executa uma versatildeo paravirtualizada do Linux e conteacutem os drivers dos

dispositivos disponiacuteveis no sistema As outras VMs satildeo os ldquoDomUsrdquo (domiacutenios do

utilizador) Nesta arquitectura os DomUs comunicam directamente com o hipervisor

que controla a memoacuteria e o processador do hospedeiro e se usam paravirtualizaccedilatildeo

comunicam com o Dom0 para operaccedilotildees de IO

Figura 5 - Arquitectura XenServer

O Anexo E descreve os detalhes da plataforma e restriccedilotildees da Citrix [1014]

223 Integrity VM (HP)

HP Integrity Virtual Machines (Integrity VM ou HPVM) eacute uma tecnologia de

virtualizaccedilatildeo do tipo 1 instalada num servidor da linha Integrity IA-64 com o sistema

de operaccedilatildeo HP-UX 11i v3

A gestatildeo do hipervisor eacute efectuada com a ferramenta HP Integrity Virtual

Machines Manager (HPVMMGR) mas tambeacutem eacute possiacutevel gerir os proacuteprios sistemas

hospedados desde que nestes sejam instalados os agentes HPVirtualMachine e

HPVSwitch Esta ferramenta apresenta benefiacutecios como flexibilidade e maximizaccedilatildeo

dos recursos do servidor consolidaccedilatildeo de servidores organizacionais rapidez na

implementaccedilatildeo e disponibilizaccedilatildeo de novos ambientes permite a migraccedilatildeo online e

offline isolamento de VMs oferece alta disponibilidade monitoriza automaticamente

todas as aplicaccedilotildees e permite a visualizaccedilatildeo e configuraccedilatildeo simplificada com

ferramentas como HP Integrity Virtual Machines Manager (HPVMMGR) System

Management Home (HPSMH) e HP Virtualization Manager (HPVMAN)

O Anexo F descreve os detalhes e restriccedilotildees Integrity Virtual Machines da HP

[10]

11

224 Hyper-V (Microsoft)

O Hyper-V eacute uma tecnologia de virtualizaccedilatildeo do tipo 1 da Microsoft para servidores

x86-64 com suporte agrave virtualizaccedilatildeo assistida por hardware O produto eacute

disponibilizado de forma isolada (standalone) ou integrado em versotildees Windows

Server (2008 R2 ou 2012)

A gestatildeo do ambiente virtual eacute efectuada com a ferramenta System Center

Virtual Machine Manager (SCVMM) que fornece 3 formas distintas de interactuar

com o hipervisor consola de administraccedilatildeo portal self-service (para utilizadores

finais) e Windows PowerShell (usando commandlets)

Na arquitectura Hyper-V [15] figura 6 existem dois tipos de particcedilatildeo 1) a

ldquoparticcedilatildeo pairdquo uma VM de administraccedilatildeo de todo o sistema com um Windows

Server 2008 2008 R2 ou 2012 drivers de acesso e controlo do hardware e

ferramentas de gestatildeo 2) as particcedilotildees filhas nas quais satildeo criadas as restantes VMs

completamente isoladas e sem acesso directo ao hardware No acesso ao hardware haacute

3 componentes importantes a mencionar a) o VSP (Virtual Service Provider)

responsaacutevel por receber as chamadas das particcedilotildees filhas e aceder aos drivers dos

perifeacutericos b) VSC (Virtual Service Client) um moacutedulo instalado no SO hospedado

que solicita via VMBus o acesso aos perifeacutericos da particcedilatildeo pai c) o VMBus canal

de comunicaccedilatildeo entre VSC e VSP onde se desenrolam as comunicaccedilotildees entre as

particcedilotildees

Figura 6 - Arquitectura Hyper-V

A Microsoft apresenta-nos na recente versatildeo Hyper-V 2012 uma panoacuteplia de

funcionalidades que a colocam na primeira linha das soluccedilotildees de virtualizaccedilatildeo a par

da VMware migraccedilatildeo online e replicaccedilatildeo de VMs migraccedilatildeo de armazenamento e

Clustering

O Anexo D descreve os detalhes as restriccedilotildees do Hyper-V da Microsoft

[101617]

12

23 Virtualizaccedilatildeo do Armazenamento

Haacute muito que o armazenamento passou a ser um toacutepico de ldquoprimeira classerdquo tal como

ldquoa rederdquo Para tal contribuiu significativamente a introduccedilatildeo de tecnologias tais como

o RAID (Redundant Array of Independent Disks) [18] que promoveram o

desempenho eou a toleracircncia a faltas a (comparativamente) baixo custo ndash note-se que

no artigo original de Patterson o I significava Inexpensive Com a introduccedilatildeo do

RAID rapidamente apareceram os armaacuterios de discos (disk arrays) externos ao

ldquosistemardquo e uma vez que o protocolo SCSI suportava a interligaccedilatildeo de discos

(Logical Units) a muacuteltiplos adaptadores e daiacute a muacuteltiplos sistemas o conceito de

rede de armazenamento aparece naturalmente

Como se mostra na figura 7 o disco loacutegico aparece como uma forma

elementar de virtualizaccedilatildeo jaacute que ldquoaglutinardquo elementos de diferentes discos fiacutesicos

mas eacute apresentado ao sistema como um uacutenico disco ndash ao ponto de ser impossiacutevel ao

proacuteprio sistema de operaccedilatildeo distingui-lo de um disco fiacutesico

Figura 7 - Redundant Array Independent Disks (RAID)

Numa rede de armazenamento que interliga vaacuterios armaacuterios de discos e

servidores (hosts) os primeiros oferecem volumes (ou discos loacutegicos) acessiacuteveis por

identificadores uacutenicos e os segundos tomam posse desses volumes (tipicamente cada

host tem uso exclusivo de um ou mais volumes) e formatam-nos neles instalando

sistemas de ficheiros (eg ext3 XFS NTFS) que depois usam da forma mais

conveniente Este conceito de rede de armazenamento eacute conhecido como SAN ndash

Storage Area Network figura 8

A forma mais comum de SAN usa uma infra-estrutura Fibre Channel (FC) o

que significa que tanto hosts como disk arrays possuem interfaces FC e na rede

existem comutadores (switches) FC aos quais hosts e arrays (e eventualmente outros

switches) se interligam Uma outra tecnologia que pode ser usada em SANs eacute a

Ethernet neste caso hosts disk arrays e switches tecircm interfaces Ethernet e o

protocolo de transporte usado eacute FCoE (Fibre Channel over Ethernet) A figura

seguinte mostra-se um ambiente que inclui simultaneamente uma outra tecnologia de

ldquotransporterdquo ISCSI e uma ldquozonardquo FC

13

Figura 8 - Storage Area Network (SAN)

Se bem que a relaccedilatildeo volumehost de um-para-um seja de longe a mais

frequente tambeacutem eacute possiacutevel estabelecer uma relaccedilatildeo de um-para-muitos na qual um

volume eacute detido de forma partilhada por muacuteltiplos hosts tal situaccedilatildeo implica

necessariamente o uso de sistemas de ficheiros (SF) especializados conhecidos como

shared-disk file systems Como exemplo indica-se o GFS [19] GPFS [20] e VMFS

[21] este uacuteltimo desenvolvido especificamente para armazenar VMs Num SF para

discos partilhados todos os hosts que partilham um dado volume tecircm uma visatildeo

coerente do estado do volume Em situaccedilotildees de toleracircncia a faltas esta arquitectura de

discos partilhados eacute muito apeteciacutevel pois em caso de falha de um host um dos

restantes inicia uma recuperaccedilatildeo (ao estilo de um sistema transaccional) das uacuteltimas

operaccedilotildees e rapidamente o SF regressa a um estado coerente

Figura 9 - Network Attached Storage (NAS)

Uma outra forma completamente distinta de armazenar informaccedilatildeo eacute usar um

SF distribuiacutedo neste caso natildeo haacute partilha de discos fiacutesicos mas sim de ficheiros

sendo que um host pode deter apenas parte da aacutervore do SF (eg AFS) ou nos SFs

distribuiacutedos com arquitectura clienteservidor um host dito cliente dispotildee de um

14

moacutedulo que lhe permite aceder ao SF remoto de um outro host dito servidor (eg

NFS e CIFS) como se o SF remoto fosse local

231 Armazenamento em ambientes virtualizados

Quando se aborda o armazenamento em ambientes virtualizados satildeo de considerar os

seguintes aspectos a) como representar a arquitectura de uma VM propriamente dita

(quanta memoacuteria e CPUs tem qual o chipset utilizado que adaptadores ndash de LAN

SAN graacuteficos ndash possui etc) b) como representar um disco acessiacutevel agrave VM e c)

como armazenar conteuacutedos (volaacuteteis ou natildeo) de componentes da VM tais como a

memoacuteria RAM e a memoacuteria natildeo volaacutetil NVRAM que conteacutem o BIOS

A soluccedilatildeo adoptada pelo hipervisor VMware ESXi2 eacute a seguinte a) a

representaccedilatildeo da arquitectura eacute efectuada em XML que possui as informaccedilotildees de

configuraccedilatildeo b) um disco acessiacutevel agrave VM eacute representado ou por um ficheiro que

virtualiza o proacuteprio disco ou por um ficheiro que ao estilo de uma ligaccedilatildeo simboacutelica

descreve o caminho para um disco real e finalmente c) tais conteuacutedos satildeo

armazenados em ficheiros Isto eacute tudo eacute representado por ou via ficheiros

A pergunta que se segue eacute oacutebvia onde armazenar esses ficheiros E a

resposta evidente num repositoacuterio (datastore na terminologia da VMware) gerido

pelo hipervisor onde uma VM aparece como um pasta e os seus componentes como

ficheiros no interior dessa pasta como se mostra na figura 10

Figura 10 - Datastore e VMs

O VMware ESXi suporta armazenamento em sistema de ficheiros VMFS

(sobre discos) ou NFS no caso do VMFS os discos podem ser internos ao servidor

ou podem estar numa SAN

Sistema de Ficheiros VMFS

O VMFS (Virtual Machine File System) eacute um sistema de ficheiros em cluster

e foi optimizado para armazenar grandes ficheiros e realizar operaccedilotildees de entrada e

2 Para uma comparaccedilatildeo entre o VMware ESXi e o Citrix Xen ver Anexo H

15

saiacuteda (IO) com que movimentam grandes volumes de dados Os dois servidores

figura 11 tecircm portanto uma visatildeo coerente do datastore e das VMs nele existentes

por isso eacute quando comparamos esta arquitectura com uma na qual cada servidor tem

a sua datastore muito mais simples e eficiente mover uma VM activa de um servidor

para o outro jaacute que apenas as paacuteginas modificadas residentes em memoacuteria tecircm de ser

copiadas (o resto estaacute no SF partilhado)

Figura 11 - Sistema de Ficheiros VMFS

Network File System

Nos casos em que os datastores residem num sistema de ficheiros NFS [22] os

servidores ESXi podem tambeacutem partilhar o mesmo datastore como se vecirc na figura

12 assim a movimentaccedilatildeo de VMs entre servidores por razotildees de equiliacutebrio de

cargas ou de manutenccedilatildeo de um ou outro servidor tambeacutem satildeo muito eficientes

Figura 12 - Network File System (NFS)

Para concluir note-se que se abrem nos ambientes virtualizados duas

oportunidades muito importantes quando um disco virtual eacute realizado sob a forma de

ficheiro a) a potencial poupanccedila de espaccedilo e b) a possibilidade de implementar com

facilidade uma teacutecnica de snapshots No primeiro caso conhecido como thin

provisioning referimo-nos agrave possibilidade de usar um ficheiro esparso para atribuir

um espaccedilo loacutegico de endereccedilamento ao disco (ficheiro) muito superior ao espaccedilo de

16

facto ldquoconsumidordquo pelo ficheiro no SF No segundo usando um mecanismo de

versotildees baseado em teacutecnicas de copy-on-write armazenar snapshots da VM em

determinados instantes e para usar como mecanismo de recuperaccedilatildeo do estado em

caso de ldquofalhardquo

24 Virtualizaccedilatildeo da Rede

A virtualizaccedilatildeo eacute algo mais que consolidaccedilatildeo de servidores - CPU memoacuteria e

armazenamento depois de analisada toda a infra-estrutura de suporte a uma

implementaccedilatildeo desta natureza torna-se evidente a ideia simplista desse triacircngulo A

infra-estrutura de rede virtual funciona como ligaccedilatildeo de componentes nessa

plataforma ligaccedilotildees virtuais atraveacutes dos controladores de rede virtual (Virtual

Network Interface Card - vNIC3) ligaccedilotildees fiacutesicas com os adaptadores fiacutesicos

(Physical Network Interface Card - pNIC) comutadores virtuais (vSwitch) para essas

ligaccedilotildees etc uma vasta lista de software e hardware responsaacuteveis pela comunicaccedilatildeo

de todos os componentes dos pares VMVM VMservidor e servidorservidor [23]

Numa infra-estrutura de rede tradicional figura 13 cada servidor tem uma ou

mais placas de rede (NIC) para comunicaccedilatildeo com os restantes

Figura 13 - Infra-estrutura de rede tradicional

Como sabemos um hipervisor eacute responsaacutevel pela abstracccedilatildeo do hardware

oferecido agraves VMs e na visatildeo de uma VM este hardware (virtual) de que dispotildee eacute

seu e eacute completo desconhecendo que esse hardware possa estar a ser partilhado com

outras VMs ou que eventualmente nem exista A interface virtual de rede (vNIC)

figura 14 natildeo possui qualquer componente fiacutesico eacute apenas software contudo ela

exibe as mesmas propriedades de uma placa fiacutesica incluindo um endereccedilo MAC

(IEEE 802-2001 Standard) Uma vNIC eacute ligada a uma outra abstracccedilatildeo o vSwitch

sendo que este pode comutar traacutefego que flui apenas no interior do servidor que

alberga as VMs ou estar associado a uma (ou mais para redundacircncia eou aumento

da largura de banda) placa de rede fiacutesica (pNIC)

3 Mais uma vez seguimos aqui a terminologia da VMware por simplicidade

17

Figura 14 - Infra-estrutura de rede virtual

Nesta infra-estrutura natildeo existe o limite associado agrave velocidade da placa de

rede mas sim associado agrave largura de banda (LB) da memoacuteria facilmente se

depreende tambeacutem que toda a rede entre VMs hospedadas num servidor natildeo

contribui para o congestionamento da rede fiacutesica (entre servidores) Contudo o

administrador pode impor quotas na utilizaccedilatildeo de recursos por exemplo na LB da

vNIC

Os vSwitch tecircm todas as funcionalidades de um switch real suportam

agregaccedilatildeo de traacutefego (IEEE 802ad) VLANs (IEEE 8021Q) etc Nesse sentido a

virtualizaccedilatildeo comeccedila a ir contra-corrente no que deveria ser o simplificar a

administraccedilatildeo de uma infra-estrutura pois o administrador de redes tem agora de

administrar os switches reais e ainda os virtuais

Figura 15 - vNetwork Distributed Switch ndash vDS

Para resolver este problema a VMware propotildee (figura 15) um switch virtual

distribuiacutedo (vNetwork Distributed Switch ndash vDS) [23] que representa a agregaccedilatildeo de

vaacuterios switchs virtuais de diferentes servidores ocultando as camadas inferiores e

oferecendo um suporte de rede uniforme que simplifica entre outras a administraccedilatildeo

da rede as migraccedilotildees de VMs e o desempenho ndash por exemplo ao associar um vDS a

18

muacuteltiplas pNICs o hipervisor pode de forma automaacutetica alterar a loacutegica de

encaminhamento de pacotes para redistribuir o traacutefego entre as pNICs aumentado o

desempenho e minimizando as falhas

Na infra-estrutura de rede virtualizada os aspectos relativos agrave seguranccedila dessa

rede satildeo tambeacutem contemplados sendo apresentadas soluccedilotildees de inspecccedilatildeo de fluxos

de pacotes como eacute o caso dos Distributed Virtual Filter (DVFilter) [23] apresentado

na figura 16

Figura 16 - Distributed Virtual Filter (DVFilter)

25 Resumo

Neste capiacutetulo fez-se uma breve descriccedilatildeo histoacuterica para enquadramento do restante

capiacutetulo A virtualizaccedilatildeo de servidores aparece como nuacutecleo central nas suas quatro

plataformas de virtualizaccedilatildeo que considerei mais importantes ESXi (VMware Inc)

XenServer (Citrix Systems Inc) HP Integrity Virtual Machines (Hewlett-Packard) e

o Hyper-V (Microsoft) Foram tambeacutem abordadas tecnologias na aacuterea da virtualizaccedilatildeo

de armazenamento em conceitos como RAID SAN NAS e nos ambientes

virtualizados VMFS e NFS Tambeacutem a virtualizaccedilatildeo de rede natildeo foi descurada e

nesse intuito foram abordados conceitos como vNIC pNIC VLANs vNetwork

Distributed Switch e Distributed Virtual Filter

19

3 Computaccedilatildeo na Cloud

Como anteriormente referimos o uso crescente de Tecnologias de Informaccedilatildeo (TI) nas

organizaccedilotildees leva geralmente a uma proliferaccedilatildeo de servidores fiacutesicos o que as obriga

mais cedo ou mais tarde a adoptar estrateacutegias de consolidaccedilatildeo de servidores com a

consequente reduccedilatildeo de custos de hardware e energia Resolvidas estas questotildees restam

contudo outras - o uso de virtualizaccedilatildeo natildeo reduz por si soacute o esforccedilo de administraccedilatildeo

das infra-estruturas nem resolve problemas de disponibilidade desempenho seguranccedila

etc que satildeo questotildees que nem todas as organizaccedilotildees querem ou estatildeo aptas a resolver

preferindo por vezes que ldquoalgueacutemrdquo assuma esta responsabilidade

A Computaccedilatildeo na Cloud (CC) apresenta-se assim como uma sequecircncia de passos

nesse sentido cada um correspondendo a um modelo de serviccedilo (ver em 32) e resolvendo

mais uma ldquofatiardquo dos problemas enunciados A CC eacute actualmente associada a palavras

chave como padronizaccedilatildeo automatizaccedilatildeo velocidade disponibilidade elasticidade

acesso global e agrave ideia de usar um conjunto de recursos partilhados As organizaccedilotildees

podem entatildeo preocupar-se essencialmente com as melhorias operacionais e para isso

procuram soluccedilotildees que possibilitem uma afectaccedilatildeo (e posteriormente libertaccedilatildeo) de

recursos de forma raacutepida e automaacutetica

ldquoCloud computing is a model for enabling ubiquitous convenient on-demand network access

to a shared pool of configurable computing resources (eg networks servers storage

applications and services) that can be rapidly provisioned and released with minimal

management effort or service provider interactionrdquo

The NIST Definition of Cloud Computing [Online] Available

httpwwwnistgovitlcsdcloud-102511cfm

31 Periacutemetro de uma cloud

Designamos por periacutemetro (ou modelo de implantaccedilatildeo) de uma cloud a forma como

caracterizamos o conjunto dos utilizadores com acesso aos serviccedilos dessa cloud

Nesta secccedilatildeo apresentamos apenas os trecircs tipos mais comuns deixando de fora outros

como as clouds partilhadas e federadas

Clouds Privadas

Ambientes construiacutedos exclusivamente para os utilizadores de uma uacutenica

organizaccedilatildeo Nesta tipologia os recursos (infra-estrutura e aplicaccedilotildees) satildeo totalmente

detidos pela organizaccedilatildeo podendo ser administrados pela proacutepria organizaccedilatildeo por

terceiros ou ainda pela combinaccedilatildeo das duas entidades A infra-estrutura estaacute

normalmente instalada num data center privado e as maiores preocupaccedilotildees satildeo

geralmente a garantia de disponibilidade e o desempenho dos serviccedilos e aplicaccedilotildees

20

Clouds Puacuteblicas

Ambientes construiacutedos para oferecer serviccedilos quer a utilizadores individuais

quer a organizaccedilotildees Nesta tipologia a infra-estrutura eacute geralmente detida pela

organizaccedilatildeo que comercializa os referidos serviccedilos que satildeo tipicamente cobrados na

forma ldquopay-per-userdquo As maiores preocupaccedilotildees da entidade gestora satildeo garantir a

privacidade e a seguranccedila (note-se que os ldquoutilizadoresrdquo podem de facto ser

administradores dos servidores que detecircm e podem instalar software) o isolamento

entre recursos detidos por utilizadores distintos e ainda assim garantir bom

desempenho dos serviccedilos e aplicaccedilotildees

Clouds Hiacutebridas

As clouds hiacutebridas representam a junccedilatildeo de dois modelos de cloud privada e

puacuteblica Este modelo eacute normalmente implantado em organizaccedilotildees que tecircm picos de

trabalho que por uma ou outra razatildeo natildeo podem suportar na sua cloud privada e

nessas alturas a ldquoelasticidaderdquo eacute usada para aprovisionar recursos de uma cloud

puacuteblica

32 Modelos de serviccedilo

Existem trecircs modelos base de serviccedilos de Cloud Computing que podem ser oferecidos

agraves organizaccedilotildees e que se diferenciam pelas configuraccedilotildees e responsabilidades do

provedor de serviccedilos figura 17

IaaS (Infrastructure as a Service)

No modelo ldquoinfra-estrutura como serviccedilordquo o provedor oferece ao consumidor

uma infra-estrutura de processamento e armazenamento com a configuraccedilatildeo que se

adequa agraves suas necessidades o cliente natildeo tem assim necessidade de adquirir

servidores racks software e ateacute mesmo espaccedilo fiacutesico Satildeo exemplos de provedores

puacuteblicos IaaS a Amazon EC2 [2] e o GoGrid [3] jaacute o Eucalyptus [4] o vCloud (da

VMware) e o HP CloudSystem Matrix satildeo exemplo de produtos software para a

criaccedilatildeo de clouds privadas

PaaS (Platform as a Service)

No modelo ldquoplataforma como serviccedilordquo o provedor disponibiliza plataformas

computacionais completas (incluindo naturalmente a infra-estrutura computacional)

para os utilizadoresconsumidores dessas plataformas integrarem as suas aplicaccedilotildees

(existentes ou a desenvolver) sendo que estas seratildeo posteriormente disponibilizadas

na cloud Como exemplo indicam-se as plataformas LAMP (Linux Apache MySQL

PHP) Google AppEngine [5] e Microsoft Azure [6]

21

SaaS (Software as a Service)

Neste modelo o provedor disponibiliza ao cliente final uma aplicaccedilatildeo pronta-

a-usar como exemplos mencionam-se as Google Apps [7] Google Docs e Microsoft

SharePoint Online Este eacute o paradigma cloud por excelecircncia utilidade facilidade

(interacccedilatildeo via browser) disponibilidade e por vezes ateacute alguma capacidade de

personalizaccedilatildeo

Figura 17 - Relaccedilatildeo entre serviccedilos e responsabilidades

Associados agrave CC vaacuterios modelos ldquoAs a Servicerdquo tecircm surgido para responder

agraves necessidades das organizaccedilotildees contudo todos acabam por ser enquadrados nos

trecircs tipos base (Infra-estrutura Plataforma e Software) de acordo com os serviccedilos que

disponibilizam

ldquoDatabase As A Service (DBaaS or DaaS) Network As A Service (NaaS) DataCenter As A

Service (DCaaS) Storage As A Service (StoraaS) Everything As A Service (EaaS) Data As

A Service (DaaS) Security As A Service (SecaaS) Computing As A Service (CaaS) Desktop

As A Service (VDI) Voice As A Service (VaaS) Communication As A Service (ComaaS)

Testing As A Service (TaaS) Backup As A Service (BaaS) Monitoring As A Service

(MaaS) Recovery As A Service (RaaS) Content Delivery Network As a Service (CDNaaS)

Application As A Service (AaaS) Business Intelligence As A Service (BIaaS) etcrdquo

Cloud9IDE [Online] Available httpsc9io

As relaccedilotildees entre os modelos IaaS PaaS e SaaS satildeo hieraacuterquicas como se

pode observar na figura 18 que ainda ilustra os papeacuteis do provedor de serviccedilos

equipas de desenvolvimento e utilizadores finais Como se observa o IaaS fornece

recursos de hardware e software ao PaaS e SaaS o PaaS oferece ferramentas para

desenvolvimento ao SaaS e por fim o SaaS executa e disponibiliza aplicaccedilotildees aos

utilizadores finais

22

Figura 18 - Relaccedilotildees e papeacuteis dos envolventes nos modelos de Cloud Computing

33 Resumo

O presente capiacutetulo descreve a tecnologia de Computaccedilatildeo na Cloud (Cloud

Computing) vantagens do seu uso e conceitos tais como periacutemetro (onde se

enquadram designaccedilotildees como Clouds Privadas e Puacuteblicas passando pelas Hiacutebridas) e

modelos de Serviccedilo IaaS PaaS e SaaS sendo o IaaS o foco desta dissertaccedilatildeo

A virtualizaccedilatildeo apresenta-se como a tecnologia chave de todo este processo

ela desempenha e continuaraacute a desempenhar um papel indispensaacutevel para que os

prestadores de serviccedilo continuem a oferecer ambientes de CC que permitem um

dimensionamento correcto e economicamente ajustado das infra-estruturas de TI

oferecendo ainda funcionalidades como gestatildeo centralizada disponibilidade e

seguranccedila

23

4 HP Cloud Stack

O OpenStack eacute presentemente um consoacutercio que inclui entidades como a ATampT HP

IBM Rackspace Red Hat Suse etc fortemente empenhadas na computaccedilatildeo na cloud e

que tecircm por objectivo colocar no mercado uma implementaccedilatildeo ubiacutequa para clouds tanto

puacuteblicas como privadas e uma pilha de software em coacutedigo aberto que suporta

heterogeneidade (por exemplo nos hipervisores) e uma enorme riqueza em recursos (de

computaccedilatildeo armazenamento e interligaccedilatildeo)

O OpenStack promove uma arquitectura comum ou seja um framework que eacute

extensiacutevel e permite que terceiros (incluindo os parceiros do consoacutercio) ampliem as suas

funcionalidades quer por via de desenvolvimentos adicionais quer por integraccedilatildeo de

produtos jaacute existentes embora a pilha-base jaacute permita por meio de portais quer a

administraccedilatildeo das pools de computaccedilatildeo armazenamento e rede quer o provisionamento

de recursos

As plataformas Cloud em Open Source tornam-se atraentes pelo seu baixo custo

inicial de implementaccedilatildeo e pela perspectiva da portabilidade

41 HP CloudSystem Matrix

A HP CloudSystem Matrix eacute uma soluccedilatildeo proprietaacuteria que assenta na plataforma

OpenStack para lhe acrescentar moacutedulos de seguranccedila gestatildeo e automaccedilatildeo

abrangente a toda a infra-estrutura como mostra a figura 19 Eacute uma soluccedilatildeo IaaS

tanto para clouds privadas como para hiacutebridas

Figura 19 - Contributos CloudStack

Norteado por uma visatildeo de ldquosimplificaccedilatildeo como chaverdquo o HP Cloud System

Matrix permite entregar soluccedilotildees preacute-definidas num cataacutelogo de serviccedilos de TI a

consumidores da infra-estrutura (utilizadores) que as requisitaram a partir de um

portal self-service

24

Figura 20 - Desenho publicaccedilatildeo e implementaccedilatildeo do cataacutelogo de serviccedilos

A soluccedilatildeo HP CloudSystem Matrix oferece

Um ambiente de trabalho (Matrix Operating Environment - MOE)

altamente automatizado que automaticamente se ajusta a todo o

dinamismo de negoacutecio permitindo um raacutepido desenho provisionamento e

modificaccedilatildeo de toda a infra-estrutura e uma optimizaccedilatildeo dos ambientes

fiacutesicos e virtuais a fornecer como serviccedilo

Uma pilha de tecnologias de gestatildeo figura 21 HP Console Management

System (CMS) que inclui ferramentas como HP Universal Discovery

(UD) para detectar automaticamente todos os objectos do ambiente HP

SiteScope [25] (opcional) que monitoriza a disponibilidade e desempenho

de toda a infra-estrutura - aplicaccedilotildees servidores SO serviccedilos de rede

armazenamento [24] e software de virtualizaccedilatildeo - evitando e resolvendo

alguns problemas de desempenho (estrangulamentos por escassez de

recursos)

Uma infra-estrutura convergente (HP Converged Infrastructure) apoiada

em soluccedilotildees como o HP Insight Control (IC) para gestatildeo da infra-

estrutura e o HP Insight Dynamics (ID) uma consola de Data Center para

uma gestatildeo centralizada de agregados (pools) de recursos e de pacotes

preacute-configurados de hardware e software Eacute aqui que se criam as pools de

recursos para posterior fornecimento ao MOE

O MOE assenta nesta pilha como o uacuteltimo niacutevel de software um ambiente de

trabalho altamente automatizado permitindo que seja possiacutevel a reduccedilatildeo draacutestica de

custos tempo e esforccedilo na implementaccedilatildeo de toda a estrutura necessaacuteria assim como

das aplicaccedilotildees mercecirc do seu moacutedulo de orquestraccedilatildeo da infra-estrutura (Infrastructure

Orchestration - IO) e opcionalmente do moacutedulo de automaccedilatildeo de servidores (Server

Automation - SA) Em suma trata-se de um ambiente optimizado para gestatildeo e

aprovisionamento de infra-estruturas hiacutebridas incluindo servidores fiacutesicos (Integrity e

x86) e virtuais rede e armazenamento [23] O CloudSystem Matrix estaacute igualmente

integrado com tecnologias de virtualizaccedilatildeo como o ESXi da VMware e o Hiper-V da

Microsoft

25

Figura 21 - Infra-estrutura HP CloudSystem Matrix

42 Modelos de interacccedilatildeo com o HP CSM

Definidos os modelos de implementaccedilatildeo e serviccedilo resta definir as formas de

comunicaccedilatildeo os modos de interacccedilatildeo entre as infra-estruturas aplicaccedilotildees e processos

O modelo eacute transparente para o utilizador final sendo disponibilizadas trecircs opccedilotildees

Web Service API

Este eacute o meacutetodo preferido para controlar os processos dentro da TI Um Web

Service (WS) eacute de acordo com o W3C4 ldquoa software system designed to support

interoperable machine-to-machine interaction over a network It has an interface

described in a machine-processable format (specifically WSDL) Other systems

interact with the Web service in a manner prescribed by its description using SOAP

messages typically conveyed using HTTP with an XML serialization in conjunction

with other Web-related standardsrdquo A HP CloudSystem Matrix oferece uma API

baseada no protocolo SOAP (Simple Object Access Protocol) para troca de

informaccedilatildeo estruturada numa plataforma descentralizada e distribuiacuteda Eacute um

protocolo baseado numa linguagem de marcaccedilatildeo extensiacutevel (Extensible Markup

Language ndash XML) para o formato das mensagens enviadas e recebidas e no protocolo

de transferecircncia de hipertexto (HyperText Transfer Protocol ndash HTTP) para negociaccedilatildeo

e transmissatildeo de mensagens Como protocolo de transporte usa igualmente HTTP

garantindo assim uma certa ldquofacilidaderdquo para funcionar em ambientes protegidos por

firewalls

4 httpwwww3orgTRws-archwhatis

26

Command line interface (CLI)

Uma interface de linha de comando que inclui natildeo soacute todas as opccedilotildees

disponiacuteveis na API WebService como outras natildeo disponiacuteveis nas outras APIs

Northbound API (nbAPI)

Uma interface de controlo remoto atraveacutes de um URL (Uniform Resource

Locator) endereccedilo de um determinado recurso disponiacutevel numa rede o acesso pode

ser efectuado por HTTP FTP etc (ex protocolomaacutequinacaminhorecurso)

43 Papeacuteis e Portais de interacccedilatildeo

Os provedores de serviccedilo cloud satildeo responsaacuteveis por fornecer toda a infra-estrutura do

serviccedilo contratado Nestas arquitecturas existem normalmente trecircs tipos de (papeacuteis de)

utilizadores da cloud que se associam aos respectivos portais figura 22

Administrador Arquitecto e Utilizador final (ou consumidor de serviccedilos cloud)

Figura 22 - Utilizadores de TI em cloud e respectivos papeacuteis (roles)

Administrador Cloud

O administrador usando as ferramentas de ao seu dispor cria monitoriza e

manteacutem a pool de recursos (de computaccedilatildeo memoacuteria armazenamento e rede) a

disponibilizar na cloud Normalmente este papel tambeacutem envolve a implementaccedilatildeo

de acordos de niacutevel de serviccedilo (Service Level Agreement - SLA) onde satildeo definidas

as poliacuteticas entre o fornecedor de serviccedilos cloud e os seus ldquoclientesrdquo O portal

associado a este utilizador eacute o portal do Administrador figura 23

27

Figura 23 - Portal do Administrador

Arquitecto Cloud

O arquitecto eacute um utilizador teacutecnico responsaacutevel por projectardesenhar

montar e tornar disponiacuteveis (publicar) serviccedilos que a proacutepria infra-estrutura pode

disponibilizar para os utilizadores mediante poliacuteticas e necessidades dos objectivos

estrateacutegicos de uma organizaccedilatildeo Esses serviccedilos podem ser personalizaacuteveis e

especiacuteficos para um determinado utilizador grupo de utilizadores ou para uso geral O

arquitecto pode ainda criar fluxos de trabalho (workflows) que passo a passo ajudam

na interacccedilatildeo utilizador-ambiente oferecendo serviccedilos como personalizaccedilatildeo gestatildeo

simplificaccedilatildeo de processos e a proacutepria integraccedilatildeo de TIs O portal associado a este

tipo de utilizador eacute o Designer Portal onde o arquitecto desenha a infra-estrutura e os

modelos de serviccedilo (templates de que adiante falaremos) a incluir no cataacutelogo

Figura 24 - Portal do Arquitecto

28

Consumidor IaaS

O portal associado a este tipo de utilizador eacute o Self-service Portal (ou user

portal) onde o utilizador poderaacute seleccionar visualizar e instanciar os modelos de

serviccedilo preacute-definidos pelo Arquitecto O utilizador depois de escolher de entre os que

existem no cataacutelogo de serviccedilos o ldquomodelo de infra-estruturardquo que mais se adequa agraves

suas necessidades solicita a sua instanciaccedilatildeo para obter os recursos de computaccedilatildeo

memoacuteria armazenamento e rede Este portal permite ainda ao utilizador efectuar a

gestatildeo dos serviccedilos solicitados

Figura 25 - Portal do Utilizador final

44 Conceitos fundamentais da plataforma HP CSM

Apresentamos agora um leque de conceitos fundamentais para compreender o HP

CSM e o trabalho que realizaacutemos Nalguns casos poderemos apresentar exemplos

concretos para melhor ilustrar esses conceitos

Template

Num template o Arquitecto da infra-estrutura captura uma configuraccedilatildeo tiacutepica

em TI especificando os seus componentes-base (hardware e software) e desenha as

suas inter-relaccedilotildees que servidores existem quais as suas caracteriacutesticas (CPUs

memoacuteria discos interfaces) como se interligam os servidores entre si (as conexotildees

de rede) e se for o caso como um ou mais desses servidores se ligam ao ldquoexteriorrdquo do

Centro de Dados Do template tambeacutem faz parte o software haveraacute servidores com

Linux outros com Windows Server uns podem ter Apache e outros SQL Server para

dar alguns exemplos Os templates apoacutes publicaccedilatildeo passam a fazer parte de um

cataacutelogo de serviccedilos para uso dos consumidores de serviccedilos dessa infra-estrutura de

cloud

29

Como exemplo vejamos a seguinte situaccedilatildeo em TI a pilha LAMP (Linux

Apache MySQL PHP) eacute um padratildeo comum e bastante usado assim o arquitecto

poderaacute criar dois templates LAMP-base com um uacutenico servidor e toda a pilha nele

instalada e LAMP-elaacutestico em que haacute uma farm de servidores Apache-PHP que se

ligam a um ldquofailover clusterrdquo de dois servidores MySQL

Server Group

Um ldquoGrupo de Servidoresrdquo eacute constituiacutedo por um ou mais servidores com as

mesmas caracteriacutesticas e configuraccedilotildees software discos interfaces etc O arquitecto

usa os Grupos de Servidores para organizar os servidores em torno da funccedilatildeo que

estes desempenham eou das suas caracteriacutesticas

Por exemplo o arquitecto definiria no template LAMP-base um uacutenico grupo

de servidor(es) mas jaacute no caso do template LAMP-elaacutestico definiria o grupo APfarm

(que incluiria um proto-servidor com determinadas caracteriacutesticas ndash 2 interfaces LAN

Linux Apache e PHP) e o grupo MySQLfo (com um proto-servidor tambeacutem com 2

interfaces LAN mas com Linux Linux-HA e MySQL) Soacute que o grupo APfarm

permitiria um miacutenimo de 1 e um maacuteximo de digamos 4 servidores enquanto o grupo

MySQLfo seria instanciado sempre com 2 servidores

Server

Eacute obviamente um servidor (virtual quase sempre embora o HP CSM permita

ldquoinstanciarrdquo ndash leia-se instalar o software e configurar ndash servidores fiacutesicos) com

atributos (muitos deles especificaacuteveis por um intervalo de valores entre um miacutenimo o

default e um maacuteximo) como memoacuteria (RAM) nuacutemero de processadores e

correspondente velocidade de reloacutegio discos lista de software associado interfaces

de rede (LAN eou SAN) etc

Software

O termo ldquoSoftwarerdquo refere-se a um produto software instalaacutevel no servidor

(pode ser o SO um SGBD um qualquer middleware ou ateacute uma aplicaccedilatildeo) Haacute duas

formas de efectuar essa instalaccedilatildeo automaticamente no acto de instanciaccedilatildeo do

servidor usando um pacote opcional o HP Server Automation (SA) ou manualmente

(a usada neste trabalho por natildeo dispormos do HP SA) ndash e neste caso temos de criar

uma VM instalar o software e depois transformar a VM numa VM-template (o que

se faz directamente no software de virtualizaccedilatildeo eg VMware vCenter Server)

Disk

Eacute um disco virtual ou fiacutesico que pode ser acedido pelo(s) servidor(es) pode

ser bootable shareable (partilhaacutevel entre servidores) suportado numa tecnologia

magneacutetica ou SSD acessiacutevel por ligaccedilatildeo FC ou iSCSI etc

Interface

Uma ldquointerfacerdquo eacute um ponto de contacto entre o servidor e as redes (que lhe

satildeo) externas de um ponto de vista pragmaacutetico deixando de lado infra-estruturas

30

pouco comuns em centros de dados de TI (por contraposiccedilatildeo aos CDs HPC) as infra-

estruturas relevantes satildeo Fibre Channel (FC) e Ethernet Assim as interfaces em

questatildeo satildeo HBAs (FC) e NICs (Ethernet)

Service

Um Service corresponde a uma instanciaccedilatildeo de um template e herda deste

todas as configuraccedilotildees base que poderatildeo ser posteriormente editadas com mais ou

menos servidores processamento memoacuteria discos etc ateacute ao limite maacuteximo

definido no Template

A criaccedilatildeo do serviccedilo eacute efectuada pelo consumidor5 IaaS que faz a definiccedilatildeo

fina das caracteriacutesticas da infra-estrutura que quer aprovisionar Continuando com os

exemplos baseados na pilha LAMP um consumidor do departamento de TI poderia

num dado momento criar um serviccedilo LAMP-testes baseado no template LAMP-base e

que usaria para fazer testes ao ldquoprodutordquo que estaacute a desenvolver e solicitar ao

administrador da cloud o respectivo aprovisionamento e mais tarde criar um serviccedilo

LAMP-produccedilatildeo baseado no template LAMP-elaacutestico e que usaria para colocar on-

line o produto

45 Limitaccedilotildees do HP CloudSystem Matrix

Em resumo o HP CloudSystem Matrix eacute um software stack para a implementaccedilatildeo de

clouds privadas que oferecem infra-estruturas como serviccedilo (IaaS) isto eacute permite aos

utilizadores (consumidores) dos seus serviccedilos aprovisionar de uma forma faacutecil e

raacutepida (minutos) uma infra-estrutura computacional completa de servidores6 (CPU

memoacuteria e discos) com o SO jaacute instalado interligados por uma topologia de rede mais

ou menos complexa

Contudo o supracitado ldquoaprovisionar de uma forma faacutecil e raacutepida (minutos)

uma infra-estrutura computacional completa de servidoresrdquo soacute eacute de facto faacutecil se

baseada na instanciaccedilatildeo de um template que serve exactamente as necessidades do

utilizador jaacute que na instanciaccedilatildeo apenas se pode modificar para cada servidor o

nuacutemero de CPUs e a quantidade de memoacuteria deixando de fora por exemplo opccedilotildees

de rede eou de armazenamento discos fiacutesicos vs virtuais aprovisionamento thin vs

thick (ver 23) escolha da tecnologia da interface (SATA vs SAS vs FC) ou do disco

(magneacutetico vs SSD)

Por outro lado a interacccedilatildeo atraveacutes do portal self-service do utilizador tambeacutem

apresenta algumas desvantagens a informaccedilatildeo apresentada pode ser em muitos casos

considerada demasiadamente teacutecnica eou desnecessaacuteria sendo que o portal natildeo pode

ser configurado para a omitir

5 Muitas vezes designado utilizador-consumidor ou simplesmente utilizador ndash e nesse caso eacute importante natildeo o

confundir com um mero utilizador final 6 Uma das vantagens do HPCSM eacute permitir aprovisionar natildeo soacute servidores virtuais mas tambeacutem reais (estes

uacuteltimos tecircm obrigatoriamente de ser fabricados pela HP)

31

46 Resumo

Este capiacutetulo descreve a HP CloudSystem Matrix uma pilha de software que

implementa o modelo IaaS para clouds privadas e faz parte de um leque mais vasto

da oferta HP que passa pela CloudSystem Enterprise (clouds privadas e hiacutebridas) e

culmina com a CloudSystem System Provider (que acrescenta as clouds puacuteblicas)

A HP CloudSystem Matrix eacute o nuacutecleo de trabalho deste framework razatildeo de

ser deste estudo e deste capiacutetulo Todo o hardware e pilha de software em que assenta

toda a infra-estrutura HP CloudSystem Matrix foi descrita nomeadamente os seus trecircs

Modelos de interacccedilatildeo (API CLI e nbAPI) os papeacuteis e portais de interacccedilatildeo

(Administrador Arquitecto e Utilizador) Concluiacutemos com uma abordagem modular

da infra-estrutura com a explicaccedilatildeo dos moacutedulos principais e finalmente as limitaccedilotildees

desta infra-estrutura em particular do portal actualmente em uso

32

5 O framework e a sua Realizaccedilatildeo

51 Arquitectura

A arquitectura proposta assenta em 3 camadas (3-tier) apresentaccedilatildeo loacutegica e dados

este tipo de arquitectura eacute bem conhecida apresentando como resultado da

modularidade uma seacuterie de benefiacutecios que incluem a escalabilidade que resulta da

possibilidade de executar uma ou outra camada num servidor distinto ou ateacute em

certos casos numa farm de servidores A comunicaccedilatildeo entre as camadas apresentaccedilatildeo

e loacutegicaserviccedilos assenta num protocolo REST (ou seja a arquitectura eacute orientada agrave

Web (WOA) com Axiom0a [28] - Universality2 com um URI por cada recurso

importante) e dados em formato XML (visualizaccedilatildeo) ou JSON (programaccedilatildeo)

transportados em HTTP sobre TCPIP Relativamente agrave comunicaccedilatildeo com o HP

CSM ela processa-se sobre HTTPS numa arquitectura SOA com o protocolo SOAP

Figura 26 - Arquitectura n-tier

Camada de Apresentaccedilatildeo

Define e realiza a interface do utilizador o formato de interacccedilatildeo e

visualizaccedilatildeo foi optimizada para o navegador Google Chrome mas funciona

igualmente noutros browsers Eacute a camada de mais alto niacutevel e eacute responsaacutevel natildeo soacute

pelo contacto utilizadoraplicaccedilatildeo atraveacutes de um conjunto de interfaces que podem ser

apresentadas num browser mas tambeacutem por lhe fazer chegar a informaccedilatildeo das

camadas inferiores

33

Camada Loacutegicanegoacutecio

Tambeacutem conhecida como a camada de negoacutecio eacute o nuacutecleo da aplicaccedilatildeo e eacute

responsaacutevel por controlar as suas funcionalidades tem igualmente a responsabilidade

de realizar a transiccedilatildeo de dados entre as camadas de apresentaccedilatildeo e dados e ainda

todas as transiccedilotildees necessaacuterias entre a proacutepria aplicaccedilatildeo e a camada de serviccedilos

Camada de Serviccedilos

Camada que realiza toda a comunicaccedilatildeo com os webservices do CSM

nomeadamente via API do MOE e outras APIs como eacute o caso da API da VMware

Camada de Dados

Camada responsaacutevel por guardar e gerir os dados em texto (ou numa base de

dados opccedilatildeo que activamos quando queremos trabalhar offline ndash o que neste

momento apenas fazemos para testes) e cache de leituras (cookies) com a informaccedilatildeo

sobre o utilizador e outras informaccedilotildees proveniente da camada de loacutegicaserviccedilos

como eacute o caso da implementaccedilatildeo Realm JAAS no moacutedulo de login JAAS

52 Integraccedilatildeo da framework no HP CSM (MOE e VMware)

Nesta secccedilatildeo propositadamente muito simples mostramos (figura 27) as relaccedilotildees

entre a framework agrave esquerda a plataforma HP CSM (MOE) com o qual esta

interage ao centro e a plataforma VMware vCenter que gere o hipervisor ESXi que

em ultima instacircncia eacute quem suporta as VMs que se disponibilizam na cloud

Figura 27 - Relaccedilatildeo dos VMIDs (WebService-MOE-vCenter)

34

53 Um desenho guiado pela Interface Utilizador

A portal is a window into a much broader set of capabilities in the IT world Its critical that portals be user-friendly and fairly intuitive to use

Ken Stephens vice president of Xerox Corp

O desenvolvimento deste framework teve sempre como objectivo uacuteltimo o

utilizador com acessos consulta de informaccedilatildeo e interacccedilotildees raacutepidas intuitivas faacuteceis

e acima de tudo praacuteticas Pretendeu-se simplicidade com uma curta curva de

aprendizagem e uma flexibilidade com acessos proacuteprios e individuais a cada

utilizador associados a um username e role (admin ou user) dispensando a

necessidade da se ter de usar dua interfaces distintas uma para o administrador outra

para um utilizador-consumidor de serviccedilos

These users want to see performance graphs and have the capability to build complex configurations and templates for their end users

Lauren Nelson Forrester Research Inc

A visualizaccedilatildeo em tempo real de todas as acccedilotildees do utilizador com a

disponibilizaccedilatildeo de uma ldquobarra de progressordquo a visualizaccedilatildeo do estado geral do

webservice e das suas configuraccedilotildeesrecursos tambeacutem natildeo foram descuradas A

descriccedilatildeo dos componentes principais em aacutervore permite a raacutepida visualizaccedilatildeo das

configuraccedilotildees de todo o Serviccedilo criado das suas hierarquias e relaccedilotildees e um acesso

raacutepido e intuitivo aos detalhes de cada componente

35

Figura 28 - Estrutura em aacutervore do menu lateral esquerdo

Developers want a clean easy-to-use [product] to select prebuilt templates -- but they dont need to see any of the complex performance or payment configurations

Lauren Nelson

O Cataacutelogo de Templates publicados pelo Arquitecto eacute imediatamente

visualizado no menu em aacutervore quando o webservice eacute inicializado que eacute

imediatamente povoada com os Serviccedilos (e seus recursos) anteriormente criados por

esse utilizador

Para criar um novo Serviccedilo o utilizador seleciona o template que mais se

adequa agraves suas necessidades e cria o Serviccedilo Todos os Serviccedilos associados a um

determinado Template ficam como ramos na aacutervore desse Template o mesmo

acontecendo relativamente aos recursos associados a cada Serviccedilo A informaccedilatildeo

visualizada eacute apenas a necessaacuteria a cada visualizaccedilatildeo e instanciaccedilatildeo

A interface eacute assim raacutepida acessiacutevel intuitiva organizada e personalizaacutevel as

acccedilotildees satildeo acessiacuteveis e raacutepidas de executar sem menus e submenus com sucessivos

cliques que soacute atrasam todo o processo

36

Figura 29 - Portal

37

Figura 30 - Diagrama de Sequecircncia (Criaccedilatildeo de um Serviccedilo)

38

What you want and what you get in most cases depends on the users persona -- either an IT manager or a developerhellip By making portals task-

based youre not just seeing a bunch of random menus or links If youre

searching for something youll find it quicklyrdquo

Bill Forsyth vice president of portal development at Savvis

Um portal personalizaacutevel em funccedilatildeo do utilizador ocultar ou exibir paineacuteis de

informaccedilatildeo a lista de pedidos limitar a exibiccedilatildeo por Template ou por Serviccedilo - um

simples clique e todo o portal eacute personalizaacutevel

Paying attention to details and being able to organize information for larger enterprises is important

Bill Forsyth

A organizaccedilatildeo de toda a informaccedilatildeo a disponibilizar eacute a chave de todo este

processo e diferencia um portal agradaacutevel e intuitivo de um portal confuso no seu

amontoado de informaccedilatildeo e complexidade quanto maior eacute a informaccedilatildeo a

disponibilizar maior eacute evidente esta diferenccedila Uma informaccedilatildeo hierarquizada e

organizada em agrupamentos loacutegicos por recursos eacute um processo muito faacutecil de seguir

e perceber e associada a esta disponibilizaccedilatildeo de informaccedilatildeo apenas exibir acccedilotildees

que possam ser executadas sobre esse(s) recurso(s) eacute o objectivo da simplicidade e

desempenho de uma interface Por uacuteltimo uma paacutegina web de ajuda a toda a interface

(Anexo N) para consulta de qualquer duacutevida faz com que tudo seja uacutetil e praacutetico [33]

54 Camada de apresentaccedilatildeo

A realizaccedilatildeo da camada de apresentaccedilatildeo pode ser apresentada subdividindo-a em duas

partes sendo a primeira correspondente agrave realizaccedilatildeo do lado do cliente (client-side) e

a segunda agrave realizaccedilatildeo do lado do servidor (server-side)

541 Do lado do cliente

A visualizaccedilatildeo de uma paacutegina web num navegador como Google Chrome Firefox ou

Internet Explorer soacute eacute possiacutevel se estes ldquoentenderemrdquo a linguagem na qual estaacute

construiacuteda ldquoa paacuteginardquo e forem capazes de a processar sem necessidade de qualquer

espeacutecie de preacute-tratamento Surgiram muitas linguagens conhecidas como linguagens

de marcaccedilatildeo um sistema moderno para anotaccedilatildeo de um documento de uma forma que

ldquoo programardquo eacute sintaticamente distinguiacutevel do texto normal

Do lado do cliente a principal linguagem de marcaccedilatildeo eacute a HTML agrave qual se

adiciona a JavaScript na qual os programas acompanham um documento html

incluiacutedos em ficheiros com a extensatildeo js ou satildeo incorporados directamente no

39

coacutedigo html entre tags ltscriptgtltscriptgt o documento html eacute entatildeo carregado pelo

navegador do utilizador e com ele todo o coacutedigo JavaScript

A linguagem JavaScript eacute usada para incutir dinamismo no coacutedigo html

facilitando por exemplo a interacccedilatildeo com o utilizador no preenchimento de

formulaacuterios (aquando da criaccedilatildeo de um serviccedilo) ou promovendo o upload de um

modelo de template em formato XML ou executando acccedilotildees ou eventos consoante

determinado comportamento do utilizador etc As funccedilotildees JavaScript e das suas

bibliotecas como JQuery satildeo executadas aquando do carregamento da proacutepria paacutegina

html ou quando invocadas por eventos como sejam a inicializaccedilatildeo da framework

leitura inicial dos dadosrecursos relativos ao utilizador criaccedilatildeo de cookies ou acccedilotildees

do utilizador como o login ou o preenchimento de formulaacuterios

Tambeacutem eacute usado AJAX (Asynchronous JavaScript and XML) [36] um padratildeo

para o uso de comandos JavaScript para de uma forma siacutencrona ou assiacutencrona trocar

dadosinformaccedilatildeo com o servidor e actualizar conteuacutedos de paacuteginas web jaacute exibidas

em que natildeo eacute necessaacuterio carregar toda a paacutegina para a actualizar Um padratildeo ideal

para usar com o protocolo REST (Representational State Transfer) para troca de

informaccedilatildeo permite o uso de dados em texto HTML XML e JSON (JavaScript

Object Notation) como formato da informaccedilatildeo para enviar e receber dados usando

HTTP e URI exactamente como as interacccedilotildees HTTP foram concebidas GET

POST PUT e DELETE Com AJAX as operaccedilotildees CRUD (Create Read Update e

Delete) satildeo muito intuitivas e faacuteceis de usar

Finalmente CSS (Cascading Style Sheets) eacute a linguagem responsaacutevel pela

formataccedilatildeo dos dados em termos de visualizaccedilatildeo para o utilizador que eacute usada para

descrever a apresentaccedilatildeo das paacuteginas Web incluindo cores layout e fontes

542 Do lado do servidor

As linguagens caracterizadas como ldquodo lado do servidorrdquo satildeo necessaacuterias para

especificar os programas que tecircm de ser executados no servidor como ldquorespostardquo agraves

acccedilotildees desencadeadas do lado do browser quando o resultado tem de ser enviado

para o browser eacute-o na forma de ficheiro HTML

Linguagens de conteuacutedo e comportamento como JSP (JavaServer Pages) uma

mistura de HTML com scriptlet contecircm um elemento script (blocos de coacutedigo em

Java) o que as caracteriza como linguagens que correm no servidor Os scriptlet

como todo o coacutedigo Java eacute executado no servidor e o output direcionado para o resto

da paacutegina JSP e finalmente apresentado ao utilizador A facilidade de comunicaccedilatildeo

em variaacuteveis de sessatildeo torna esta linguagem muito apelativa ao uso dessas variaacuteveis

como eacute o cado da paacutegina loginjsp onde se desenrola grande parte da comunicaccedilatildeo

browserservidor atraveacutes da API MOE logoutjsp e vmrcjsp para ligaccedilatildeo agraves VMs e

comunicaccedilatildeo com a API VMware

40

543 Lista de primitivas na oacuteptica dos recursos

Segue-se a lista de primitivas apresentada numa oacuteptica de recursos que cada

uma manipula

actionsjs - Lista as ldquoactionsGridrdquo atribuiacutedas aos Serviccedilos Grupo de

Servidores ou Servidores e permite todas as acccedilotildees associadas nestas

listagens

cookiesjs - Leitura e criaccedilatildeo de cookies associados ao utilizador e todo o

webservice Cookies de login com dados como username e role e outros

dado associados agraves acccedilotildees do utilizador e webservice como layout de

visualizaccedilatildeo da paacutegina (globaltheme) menu lateral esquerdo (treetheme)

paineacuteis de visualizaccedilatildeo de informaccedilatildeo (northregion westregion

eastregion southregion) etc

disksjs - Leitura das informaccedilotildees associadas aos discos nas suas trecircs

versotildees ldquostereotype disksrdquo discos virtuais e fiacutesicos Todas as acccedilotildees

possiacuteveis em discos estatildeo igualmente configuradas neste ficheiro

geraljs - Leitura das informaccedilotildees gerais associadas ao webservice Dados

iniciais de informaccedilatildeo de todos os Templates do Cataacutelogo de Serviccedilos e

dados de Serviccedilos jaacute existentes nos diferentes formatos (JSON e XML)

configuraccedilotildees gerais do webservice como tabelas de listagens conversotildees

de datas (ldquodate2epochrdquordquoepoch2daterdquo) construccedilatildeo do menu lateral

esquerdo em aacutervore listeners para acccedilotildees do utilizador e mensagens de

erros e informaccedilatildeo do webservice

helpjs - Configuraccedilotildees de todo o layout das ajudas ao utilizador

interfacesjs - Leitura das informaccedilotildees associadas agraves interfaces redes e

endereccedilos IP Todas as acccedilotildees passiacuteveis de serem executadas nas

interfaces estatildeo igualmente configuradas neste ficheiro

remoteSessionsjs - Listagem de todas as Sessotildees Remotas do Serviccedilo e

acccedilotildees associadas a essas Sessotildees Remotas por Servidor e suas Interfaces

requestsjs - Listagem de todos os pedidos por Template ou Serviccedilo

Todas as acccedilotildees passiacuteveis de serem executadas relativas aos pedidos do

utilizador estatildeo igualmente configuradas neste ficheiro

serverGroupsjs - Leitura das informaccedilotildees associadas ao Grupo de

Servidores quer nos Templaste quer nos Serviccedilos Todas as acccedilotildees

relativas ao Grupo de Servidores estatildeo igualmente configuradas neste

ficheiro

serverPoolsjs - Listagem de todos as Pools de Servidores com a

informaccedilatildeo respectiva a cada Pool Todas as acccedilotildees passiacuteveis de serem

executadas nas Pools de Servidores estatildeo configuradas neste ficheiro

41

serversjs - Leitura das informaccedilotildees associadas a cada Servidor quer nos

Templaste quer nos Serviccedilos Todas as acccedilotildees relativas aos Servidores

estatildeo configuradas neste ficheiro

servicesjs - Leitura das informaccedilotildees associadas a cada Serviccedilo Todas as

acccedilotildees passiacuteveis de serem executadas nos Serviccedilos estatildeo configuradas

neste ficheiro

snapshotsjs - Listagem de todos os Snapshots com a informaccedilatildeo

respectiva ao par ServerSnapshot Todas as acccedilotildees passiacuteveis de serem

executadas nos Snapshots estatildeo configuradas neste ficheiro

softwarejs - Listagem de todo Software existente no sistema e informaccedilatildeo

relativa a cada Software em particular

templatesjs - Listagem de todos os recursos do Template e informaccedilatildeo

relativa a cada recurso base Toda a disponibilizaccedilatildeo de informaccedilatildeo e as

acccedilotildees associadas aos Templates estatildeo configuradas neste ficheiro

55 Camada ServiccedilosLoacutegica

Como referido (ver 51) a comunicaccedilatildeo entre a camada de apresentaccedilatildeo e a

loacutegicaserviccedilos assenta num protocolo REST e usa XML e JSON como formato para

enviar e receber informaccedilatildeo usando HTTP e URI (operaccedilotildees CRUD - Create Read

Update e Delete) [29]

Figura 31 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull

Por seu lado o REST assenta em quatro princiacutepios fundamentais 1) Recurso

cada recurso tem uma identificaccedilatildeo uacutenica e global associada ao URI

httpexemplocomencomenda20121088563 2) Acesso usando URIs acede-se a

um recurso por um ID uacutenico e global independente da sua localizaccedilatildeo 3) Formatos

um recurso pode ser representado em diferentes formatos por exemplo HTML XML

ou JSON sendo a escolha ditada pela finalidade especiacutefica de utilizaccedilatildeo do recurso

4) Comunicaccedilatildeo stateless - o cliente pode receber toda a informaccedilatildeo necessaacuteria num

primeiro contacto com o servidor executar o processamento e finalmente ligar-se

uma segunda vez ao servidor para reportar os resultados

As APIs usadas e directamente relacionadas com serviccedilos REST foram as

seguintes 1) JAX-RS (JSR 311 - Java Specification Requests) Atualmente parte

42

integrante do Java EE eacute uma API Java para serviccedilos Web RESTfull sobre HTTP

JAVAX-RS como especificaccedilatildeo desta API [30] fornece anotaccedilotildees que simplificam as

configuraccedilotildees 2) Jersey eacute uma implementaccedilatildeo open-source de referecircncia do

JAVAX-RS [31] 3) RestEasy eacute uma outra implementaccedilatildeo do JAVAX-RS com

opccedilotildees de suporte para outros protocolos aleacutem do HTML e que permite conexotildees

assiacutencronas e tem suporte de cache [32]

551 Camada de Serviccedilos

Como sabemos o HP CloudSystem Matrix gere recursos de computaccedilatildeo

armazenamento rede e software de uma forma unificada para oferecer um ambiente

virtualizado e altamente automatizado Contudo natildeo eacute um produto fechado

disponibilizando natildeo soacute um CLI mas tambeacutem uma API com uma WSDL (Web

Service Description Language) que inclui todas as operaccedilotildees possiacuteveis (https ltcms-

ip-addressgt 51443hpiocontrollersoapv5 wsdl)

A camada de serviccedilos eacute um cliente do CSM que funciona segundo o padratildeo

autenticaccedilatildeoperfil-pedido(s)-fecho na fase de autenticaccedilatildeo o utilizador (registado na

infra-estrutura MOE) faz o seu login a partir desse momento estaacute criada uma sessatildeo

que por HTTPS permite o acesso a todos os recursos disponiacuteveis para a combinaccedilatildeo

utilizadorperfil (role)

552 Camada Loacutegica

A camada loacutegica segue o mesmo princiacutepio estaacute centrada nos recursos em termos de

tecnologias usa o protocolo REST para a comunicaccedilatildeo clienteservidor e a

linguagem Java para o desenvolvimento

A realizaccedilatildeo foi idealizada numa prespectiva hieraacuterquica o que facilita a

compreensatildeo de toda a estrutura O menu lateral esquerdo eacute exemplo disso mesmo a

estrutura em aacutervore espelha esta ideia simples mas eficaz os recursos comeccedilam por

ser apresentados como listas sobre as quais podemos realizar acccedilotildeesfunccedilotildees ldquode

grupordquo pois satildeo apenas aquelas que satildeo comuns a todos os membros da lista mas agrave

medida que nos vamos aproximando das folhas da estrutura em aacutervore as

acccedilotildeesfunccedilotildees ficam mais especiacuteficas relativamente aos recursos-alvo

Por exemplo quando se realiza a acccedilatildeo ldquoPower ONrdquo a um grupo de

servidores todos os servidores do grupo satildeo ligados quando se efectua essa mesma

acccedilatildeo sobre um servidor apenas o servidor seleccionado eacute ligado

A disponibilizaccedilatildeo de informaccedilatildeo relativa a grandes ldquoconjuntos de dadosrdquo

como eacute o caso de listagens de pedidos de acccedilotildees de sessotildees remotas de snapshots

de stereotype disks de software e de subnets foi realizada com datagrids (tabelas)

para melhor visualizaccedilatildeo

43

As acccedilotildeesfunccedilotildees disponibilizadas estatildeo distribuiacutedas pelas tabs respectivas e

executam serviccedilos no niacutevel em que se encontram disponibilizadas A tiacutetulo de

exemplo as acccedilotildees que se encontram disponiacuteveis para execuccedilatildeo no grupo de

servidores apenas podem ser encontradas no tab ldquoGrouprdquo e reflectem-se sobre todos

os membros do grupo Uma acccedilatildeo especiacutefica de servidor encontra-se somente

disponiacutevel na tab ldquoServerrdquo e afecta apenas e soacute esse servidor

Segue-se uma descriccedilatildeo natildeo exaustiva da camada loacutegica nuacutecleo desta

framework desde a sua inicializaccedilatildeo ateacute aos recursos e moacutedulos principais

5521 Init

Aquando da inicializaccedilatildeo da aplicaccedilatildeo e no seguimento do login do utilizador eacute

desencadeada uma sequencia de pedidos ao servidor por informaccedilotildees relativas aos

Templates do Cataacutelogo de Serviccedilos e de todos os Serviccedilos do utilizador Se as

permissotildees associadas ao utilizador for de simples utilizador do webservice visualiza

apenas as instacircncias que criou jaacute um utilizador com permissotildees de administraccedilatildeo

visualiza os seus serviccedilos e todos os serviccedilos dos restantes utilizadores

Tabela 1 - Funccedilotildees associadas agrave inicializaccedilatildeo do Webservice

Funccedilatildeo Descriccedilatildeo

getVersion Funccedilatildeo de teste Obteacutem a informaccedilatildeo da versatildeo da API

principal Funccedilatildeo usada aquando do login do utilizador Obteacutem os

detalhes do utilizador como USERNAME e ROLE

listAllDataDetailsJson Funccedilatildeo usada apoacutes login do utilizador e iniciaccedilatildeo da

aplicaccedilatildeo Obteacutem os detalhes dos Serviccedilos associados ao

Utilizador Lista a informaccedilatildeo de todos os Templates e

Serviccedilos do Utilizador no formato JSON Funccedilatildeo para uso

excluivo do webservice

downloadTabJsonView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa aos recursos do Utilizador em formato

JSON Eacute criado um ficheiro com extenccedilatildeo JSON

downloadTabXmlView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa aos recursos do Utilizador em formato

XML Eacute criado um ficheiro com extenccedilatildeo XML

44

listEnumsJson Funccedilatildeo usada apoacutes login do utilizador e iniciaccedilatildeo da

aplicaccedilatildeo Obteacutem os detalhes de todos os ENUMS possiacuteveis

no webservice Lista a informaccedilatildeo de todos os ENUMS no

formato JSON Funccedilatildeo para uso excluivo do webservice

listEnumsXml Menu lateral direito do webservice Opccedilatildeo de visualizaccedilatildeo da

informaccedilatildeo relativa agraves opccedilotildees ENUMS possiveis no

webservice

downloadTabEnumsView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa agraves opccedilotildees ENUMS possiveis no

webservice Eacute criado um ficheiro com extenccedilatildeo XML com a

informaccedilatildeo visualizada

listAllDataDetailsXml Menu lateral direito do webservice Opccedilatildeo de visualizaccedilatildeo da

informaccedilatildeo relativa ao Utilizador em formato XML

5522 Template

Como jaacute referido o desenhoconstruccedilatildeo dos Templates fica a cargo do Arquitecto do

MOE que desenha esses mesmos Templates mediante pedido especifico de um

determinado utilizador tendo em vista um grupo de utilizadores infra-estrutura

disponibilizada ideias preacute-definidas resposta a uma ou mais situaccedilotildees especiacuteficas

etc

Nos detalhes gerais do Template obtemos informaccedilotildees como o nome do

Template a data de criaccedilatildeo e modificaccedilatildeo versatildeo custo geral se eacute ou natildeo

customizaacutevel e o numero de ServerGroups associados assim como discos e serviccedilos

que jaacute foram criados tendo por base este template

Todos os detalhes do Template ficam disponiacuteveis ao utilizador 1) Grupo de

servidores com informaccedilotildees como nome quantidade miacutenima de servidores e que seraacute

a base do serviccedilo criado e quantidade maacutexima de servidores sinal que o serviccedilo

poderaacute crescer em termos de quantidade de servidores Tipo de cluster e o nuacutemero de

servidores loacutegicos existentes no grupo 2) Servidores onde o utilizador obteacutem

informaccedilotildees como nome hostname tipo de virtualizaccedilatildeo memoacuteria usada e

quantidade maacutexima de memoacuteria processadores usados e quantidade maacutexima de

processadores se eacute ou natildeo virtual e se estaacute ou natildeo em cloud 3) Custos em detalhes

ficam disponiacuteveis ao utilizador Informaccedilotildees sobre custo total custo de base por cada

servidor custo por processador e memoacuteria 3) Os discos tambeacutem apresentam

informaccedilatildeo como nome tipo de storage tamanho raid level se eacute ou natildeo bootable

shareable e custo do disco 4) Software preacute-instalado ou instalado posteriormente pelo

utilizador Informaccedilotildees como nome tipo OS e virtualizaccedilatildeo estatildeo disponiacuteveis 5)

Interfaces com informaccedilotildees como nome da interface se eacute ou natildeo primaacuteria

45

redundacircncia subnet publica shareable tipo de IP endereccedilo DHCP activo ou natildeo e

custo final

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa a Templates

Figura 32 - Execuccedilatildeo tab ldquoTemplaterdquo

Export All Templates

Acccedilatildeo disponiacutevel apenas ao administrador permite o download em

ficheiro XML dos detalhes de todos os Templates para que o administrador possa

consultar essa informaccedilatildeo em modo offline se assim o entender Detalhes que

ficam disponiacuteveis para visualizaccedilatildeo no clique do iacutecon Template no menu lateral

esquerdo

O ficheiro XML pode depois ser visualizado mesmo no browser ou

qualquer programa que suporte essa visualizaccedilatildeo como eacute o caso do Notepad++

Export Template

Acccedilatildeo disponiacutevel apenas ao administrador permite o download em

ficheiro XML dos detalhes do Template em visualizaccedilatildeo igualmente como a

acccedilatildeo ldquoExport All Templatesrdquo o administrador poderaacute consultar mais tarde em

modo offline se assim o entender Detalhes que ficam disponiacuteveis para

visualizaccedilatildeo no clique do icon do nome do Template respectivo no menu lateral

esquerdo

Import Template

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel

adicionar mais Templates ao Cataacutelogo de Serviccedilos ficando assim disponiacutevel ao

utilizador mais opccedilotildees com novas configuraccedilotildees A leitura eacute feita directamente de

um ficheiro XML natildeo eacute admissiacutevel outro tipo de formato

Delete Template

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel

remover um Templates do Cataacutelogo de Serviccedilos Como todos os Serviccedilos tem por

base um Template a remoccedilatildeo de um Template implica a remoccedilatildeo de todos os

46

Serviccedilos que tem como base esse Template Tal situaccedilatildeo eacute salvaguardada

obrigando o administrador a clicar em OK numa InfoWindow de aviso

XML View

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel a

visualizaccedilatildeo de todos os detalhes do Templates directamente numa InfoWindow

dentro do webservice A informaccedilatildeo em XML torna-se vantajosa ao administrador

para a visualizaccedilatildeo de detalhes mais pormenorizados e organizaccedilatildeo de toda a

infra-estrutura

Export All Services

Acccedilatildeo que agrave semelhanccedila do ldquoExport All Templatesrdquo permite o download

em ficheiro XML dos detalhes de todos os Serviccedilos associados ao Template em

visualizaccedilatildeo e a um determinado utilizador para que possa consultar em modo

offline se assim o entender Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no

clique do iacutecon Service no menu lateral esquerdo

O ficheiro XML pode depois ser visualizado no browser ou qualquer

programa que suporte essa visualizaccedilatildeo como eacute o caso do Notepad++

Create Service

Finalmente a acccedilatildeoobjectivo de todo o webservice a criaccedilatildeo e

disponibilizaccedilatildeo de Serviccedilos Como jaacute foi referido um Serviccedilo tem como base um

Template por isso na visualizaccedilatildeo dos detalhes do Template esta opccedilatildeo estaacute

disponiacutevel Aquando da criaccedilatildeo de um Serviccedilo este teraacute como base o Template

em visualizaccedilatildeo

Existem campos de preenchimento obrigatoacuterios como nome do serviccedilo

hostname tempo atribuiacutedo ao serviccedilo (1 mecircs por defeito) e email do utilizador

As opccedilotildees ldquoNotesrdquo e ldquoBilling coderdquo satildeo opcionais

All Requests

Todas os pedidos realizados no webservice por um determinado utilizador

ficam disponiacuteveis para visualizaccedilatildeo do seu estado e inclusive desencadear acccedilotildees

nesses mesmos pedidos como cancelamento (percentagem inferior a 100) mediante

decisatildeo do utilizador

A salientar que existem pedidos que carecem da aprovaccedilatildeo do administrador

por isso o pedido poderaacute ficar parado numa determinada percentagem () a espera

dessa aprovaccedilatildeo Se o pedido natildeo necessitar de aprovaccedilatildeo continuaraacute a sua execuccedilatildeo

ateacute estar completo (100) e automaticamente seraacute adicionado ao menu lateral

esquerdo do utilizador

Template Requests

Todas os pedidos associados a um determinado Template por um determinado

utilizador ficam igualmente disponiacuteveis para visualizaccedilatildeo do seu estado

47

Tabela 2 - Funccedilotildees associadas ao Template

Funccedilatildeo Descriccedilatildeo

listTemplates Funccedilatildeo que obtem uma listagem da informaccedilatildeo relativa

aos Templates do Cataacutelogo de Serviccedilos

importTemplate Funccedilatildeo que permite o Upload da informaccedilatildeo relativa a

um Template em formato XML Operaccedilatildeo executada

apenas pelo Administrador ou Arquitecto de toda a

infra-estrutura de orquestraccedilatildeo

exportTemplate Funccedilatildeo que obteacutem toda a informaccedilatildeo relativa a um

Template e permite o download dessa informaccedilatildeo em

formato XML Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura de

orquestraccedilatildeo

exportTemplateList Funccedilatildeo de complemento a toda a informaccedilatildeo dos

Templates do Cataacutelogo de Serviccedilo Uso exclusivo do

webservice

deleteTemplate Funccedilatildeo que permite a remoccedilatildeo de um Template do

Cataacutelogo de Serviccedilos Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura de

orquestraccedilatildeo

listServicesByTemplateName Funccedilatildeo que obteacutem todos os Serviccedilos associados a um

determinado Template Para visualizaccedilatildeo de informaccedilatildeo

e opccedilatildeo de download

5523 Serviccedilo

O Serviccedilo tem sempre como base as definiccedilotildees de um Template e nesse sentido tudo

que o utilizador poderaacute fazer nesse Serviccedilo satildeo acccedilotildees que estatildeo disponiacuteveis nesses

Template como limites miacutenimos e maacuteximos de servidores processadores memoacuteria

etc Outras opccedilotildees como discos e interfaces ficam disponiacuteveis ao utilizador que

poderaacute adicionar se assim o entender com os custos inerentes a este upgrade de

Serviccedilo

Um Serviccedilo eacute composto por dados base relativos a informaccedilotildees gerais desse

Serviccedilo listas de acccedilotildees associadas e uma lista de grupos de servidores sendo que

cada grupo poderaacute ser diferente entre si com recursos funcionalidades e softwares

completamente diacutespares

Assim em termos de informaccedilatildeo disponiacutevel associada ao serviccedilo o utilizador

poderaacute obter o nome do serviccedilo id (apenas acessiacutevel ao administrador) notas status

48

o Template base que lhe deu origem data de criaccedilatildeo e ultima data de modificaccedilatildeo o

custo geral do serviccedilo custo fixo o periacuteodo de uso do serviccedilo (por defeito 1 mecircs)

nome do utilizador que criou o serviccedilo organizaccedilatildeo e tamanho das listas associadas

nomeadamente acccedilotildees e grupo de servidores

Os Serviccedilos assim como os Templates ficam disponiacuteveis em listagem no menu

lateral esquerdo num formato em aacutervore intuitivo e raacutepido de selecionar Cada

Serviccedilo fica na cadeia hieraacuterquica do Template que lhe deu origem Associado a cada

Serviccedilo tambeacutem poderemos visualizar nesses mesmo menu todos os recursos

associados a esse Serviccedilo como listagem dos grupos de servidores em cada grupo os

seu servidores e em cada servidor os recursos como discos software e interfaces

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Serviccedilo

Figura 33 - Execuccedilatildeo tab ldquoServicerdquo

Export All Services

Acccedilatildeo que permite o download em ficheiro XML dos detalhes de todos os

Serviccedilos do utilizador permitindo a posterior consulta em modo offline Detalhes

que ficam disponiacuteveis para visualizaccedilatildeo no clique do iacutecons Service no menu

lateral esquerdo

Export Service

Permite o download em ficheiro XML dos detalhes do Serviccedilo em

visualizaccedilatildeo igualmente como a acccedilatildeo ldquoExport All Servicesrdquo o utilizador poderaacute

consultar mais tarde em modo offline os detalhes do serviccedilo Detalhes que ficam

49

disponiacuteveis para visualizaccedilatildeo no clique do icon do nome do Serviccedilo respectivo no

menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Serviccedilo

directamente numa InfoWindow dentro do webservice A informaccedilatildeo em XML

torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Create Service

Mesma acccedilatildeo existente nos Templates Directamente da visualizaccedilatildeo de

um Serviccedilo eacute possiacutevel criar um outro Serviccedilo tendo igualmente por base o

mesmo Template O Serviccedilo criado seraacute igual ao Serviccedilo base em visualizaccedilatildeo

Delete Service

Permite a remoccedilatildeo do Serviccedilo em visualizaccedilatildeo Apoacutes esta acccedilatildeo deixam

de ser cobrado qualquer custo associado ao Serviccedilo que foi removido

Power ON Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo sejam ligados e fiquem disponiacuteveis para utilizaccedilatildeo Esta

acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==OFFrdquo

Power OFF Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo sejam desligados deixando de estar disponiacuteveis para

utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==UPrdquo

Power Cycle Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo faccedilam um reboot e continuem disponiacuteveis para utilizaccedilatildeo

Esta acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==UPrdquo

Activate Service

Permite que todos os Servidores de todos os ServerGroups existentes no

Serviccedilo sejam activados No final desta operaccedilatildeo o Serviccedilo fica em modo

ldquoserviceStatus==UPrdquo e todos os servidores ficam automaticamente disponiacuteveis

para utilizaccedilatildeo

50

Deactivate Service

Permite que todos os Servidores de todos os ServerGroups existentes no

Serviccedilo sejam desactivados No final desta operaccedilatildeo o Serviccedilo fica em modo

ldquoserviceStatus==DEACTIVATEDrdquo

Service Actions

Os ldquotriggered actionsrdquo associadas a cada Template satildeo parte integrante do

Serviccedilo criado Tambeacutem esta informaccedilatildeo estaacute disponiacutevel em forma de listagem

Estas acccedilotildees automaticamente desencadeadas pelo webservice poderatildeo pertencer

ao Serviccedilo propriamente dito ou entatildeo existirem apenas num serverGroup ou ateacute

mesmo apenas num Server

List Remote Session

No final da criaccedilatildeo de um Serviccedilo o objectivo eacute a ligaccedilatildeo as VMs

associadas a esse mesmo Serviccedilo Nesse intuito directamente da tab Serviccedilo

atraveacutes desta acccedilatildeo ficam disponiacuteveis numa lista todas as VMs com os acessos

remotos permissiacuteveis

RDP (Remote Desktop Protocol)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet

VMRC (VMware Remote Console)

Todos os pedidos associados a um determinado Serviccedilo por um

determinado utilizador ficam igualmente disponiacuteveis para visualizaccedilatildeo do seu

estado Quando a listagem de pedidos tem grandes dimensotildees ou se a visualizaccedilatildeo

do pedido diz respeito a este Serviccedilo fazer apenas a listagem dos pedidos pelo

Serviccedilo em causa torna-se mais simples uacutetil e directa

Tabela 3 - Funccedilotildees associadas ao Serviccedilo

Funccedilatildeo Descriccedilatildeo

listServices Detalhes dos Serviccedilos associados a um determinado Utilizador

Para visualizaccedilatildeo de informaccedilatildeo e opccedilatildeo de download O

Administrador obtem todos os Serviccedilos existentes no

webservice

getService Informaccedilatildeo associada a um determinado Serviccedilo Para

visualizaccedilatildeo de informaccedilatildeo e opccedilatildeo de download

createService Criaccedilatildeo de um Serviccedilo

deleteService Remoccedilatildeo de um Serviccedilo associado a um Template

deactivateService Desactivaccedilatildeo de um Serviccedilo

51

activateService Activaccedilatildeo de um Serviccedilo

changeServiceLease Ediccedilatildeo do Lease period asociado a um Serviccedilo

powerOnService Ligar um Serviccedilo

powerOffService Desligar um Serviccedilo

powerCycleService Ligar um Serviccedilo apoacutes reboot

getRemoteSessionsList Listagem de todos os servidores e seus IPs associados para

posterior listagem das sessotildees remotas

5524 Grupo de Servidores

Cada Serviccedilo tem os seus recursos associados nomeadamente uma lista de Grupo de

Servidores onde o utilizador poderaacute obter informaccedilotildees como o nome do Serviccedilo

nome do Grupo de Servidores o Status nuacutemero miacutenimo e maacuteximo de Servidores

uma progressbar com indicaccedilatildeo do nuacutemero de servidores disponiacuteveis no momento se

tem uma sequencia Boot datas de criaccedilatildeo e ultima modificaccedilatildeo e finalmente uma

lista de Servidores

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Grupo de Servidores

Figura 34 - Execuccedilatildeo tab ldquoServerGroupsrdquo

52

Export Server Group

Permite o download em ficheiro XML dos detalhes do Grupo de

Servidores em visualizaccedilatildeo o utilizador poderaacute consultar esses detalhes mais

tarde em modo offline Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no clique

do icon do nome do Grupo de Servidores respectivo no menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Grupo de

Servidores directamente numa InfoWindow dentro do webservice A informaccedilatildeo

em XML torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Add Servers (UP)

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores aumentando o

nuacutemero de Servidores dentro desse Grupo de Servidores Esta opccedilatildeo soacute fica

visiacutevel e acessiacutevel ao utilizador se o limite maacuteximo do nuacutemero de Servidores for

superior ao actualmente existente em utilizaccedilatildeo Limite definido nas

configuraccedilotildees do Serviccedilo que vieram por arrasto das configuraccedilotildees do Template

aquando da criaccedilatildeo desse Serviccedilo Estas alteraccedilotildees implicam o aumento do custo

total do Serviccedilo

Remove Servers (DOWN)

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores diminuindo o

nuacutemero de Servidores dentro desse Grupo de Servidores eacute disponibilizada a lista

de Servidores existentes e o utilizador seleciona um ou mais para remoccedilatildeo Esta

opccedilatildeo soacute fica visiacutevel e acessiacutevel ao utilizador se o limite miacutenimo do nuacutemero de

Servidores for inferior ao actualmente existente em utilizaccedilatildeo Limite definido nas

configuraccedilotildees do Serviccedilo que vieram por arrasto das configuraccedilotildees do Template

aquando da criaccedilatildeo desse Serviccedilo Estas alteraccedilotildees implicam a diminuiccedilatildeo do

custo total do Serviccedilo

Edit ServerGroup

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores relativamente a

memoacuteria e processadores A ediccedilatildeo vai ser efectuada em todos os Servidores do

Grupo de Servidores Como nos limites maacuteximos e miacutenimos de Servidores

tambeacutem os limites de memoacuteria e processadores vieram por arrasto das

configuraccedilotildees do Template aquando da criaccedilatildeo do Serviccedilo Estas alteraccedilotildees

implicam a diminuiccedilatildeo ou aumento do custo total do Serviccedilo

Power ON ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo sejam ligados e fiquem disponiacuteveis para utilizaccedilatildeo Esta acccedilatildeo eacute

dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==OFFrdquo

53

Power OFF ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo sejam desligados deixando de estar disponiacuteveis para utilizaccedilatildeo Esta

acccedilatildeo eacute dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==UPrdquo

Power Cycle ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo faccedilam um reboot e continuem disponiacuteveis para utilizaccedilatildeo Esta acccedilatildeo

eacute dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==UPrdquo

Activate ServerGroup

Permite que todos os Servidores do ServerGroups em visualizaccedilatildeo sejam

activados No final desta operaccedilatildeo o Grupo de Servidores fica em modo

ldquoserverGroupStatus==UPrdquo e todos os servidores ficam automaticamente

disponiacuteveis para utilizaccedilatildeo

Deactivate ServerGroup

Permite que todos os Servidores do ServerGroups em visualizaccedilatildeo sejam

desactivados No final desta operaccedilatildeo o Grupo de Servidores fica em modo

ldquoserverGroupStatus==DEACTIVATEDrdquo

Actions ServerGroup

Como no Serviccedilo os ldquotriggered actionsrdquo associadas a cada Template satildeo

parte integrante do Serviccedilo criado inclusive no Grupo de Servidores Se o Grupo

de Servidores em visualizaccedilatildeo tiver ldquotriggered actionsrdquo esta acccedilotildees estaraacute visiacutevel

ao utilizador para listagem

List Snapshots

Acccedilatildeo que permite listar todos os Snapshots existentes no Grupo de

Servidores

Nessa listagem eacute possiacutevel executar acccedilotildees como ldquoRevert Snapshotrdquo que

reverte um determinado Snapshot para o servidor especiacutefico ou ldquoDelete Snapshotrdquo

que permite a remoccedilatildeo de um Snapshot do sistema

Create Snapshot

Acccedilatildeo que permite a criaccedilatildeo de Snapshots no Grupo de Servidores

Existem campos obrigatoacuterios como o nome do Snapshot e a selecccedilatildeo de

um ou mais servidores de uma lista de servidores pertencentes ao Grupo de

Servidores Opccedilotildees como ldquoInclude Memory Staterdquo ou ldquoQuiesce filesystemrdquo estatildeo

tambeacutem disponiacuteveis para selecccedilatildeo aquando da criaccedilatildeo do Snapshot

54

Add Stereotype Disks

Acccedilatildeo que permite adicionar discos a um Grupo de Servidores O disco

adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores Satildeo

considerados ldquoStereotype Disksrdquo todos os discos existentes no grupo excepto

discos de boot

Qualquer acccedilatildeo de adiccedilatildeo de discos a um Grupo de Servidores soacute eacute

possiacutevel se natildeo existirem Snapshots relativos a qualquer Servidor desse Grupo de

Servidores

Esta acccedilatildeo lista todos os ldquoStereotype Disksrdquo jaacute existentes O utilizador

seleciona o que deseja clonar (disco base) e eacute adicionado um novo disco ao Grupo

de Servidores Esta acccedilatildeo carece da aprovaccedilatildeo do administrador

Add Virtual Disks

Acccedilatildeo que permite adicionar discos virtuais a um Grupo de Servidores O

disco adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores

Existem campos de preenchimento obrigatoacuterio como o nome do disco e

tamanho O webservice fornece um nome uacutenico e 10Gb de tamanho por defeito o

utilizador pode alterar estes campos Esta acccedilatildeo carece da aprovaccedilatildeo do

administrador Aleacutem de aprovar ou desaprovar este pedido pode inclusive definir

um novo custo

Add Physical Disks

Acccedilatildeo que permite adicionar discos fiacutesicos a um Grupo de Servidores O

disco adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores

Igualmente como a adiccedilatildeo de discos virtuais existem campos de

preenchimento obrigatoacuterio como o nome do disco tamanho e nesta opccedilatildeo o tipo

de RAID Acccedilatildeo que carece igualmente da aprovaccedilatildeo do administrador

Tabela 4 - Funccedilotildees associadas ao Grupo de Servidores

Funccedilatildeo Descriccedilatildeo

getLogicalServerGroup Obteacutem os detalhes associados a um Grupo de

Servidores Loacutegico em XML para visualizaccedilatildeo na

infowindow e opccedilatildeo de download

addServersToLogicalServerGroup Adiciona um Servidor a um Grupo de Servidores

Opccedilatildeo permissvel apenas se o nuacutemero de servidores

activos (ldquoactiveServerCountrdquo) for menor que o

nuacutemero maacuteximo de servidores

(ldquomaxServerCountrdquo)

55

removeServersFromLogicalServerGr

oup

Remove um Servidor de um Grupo de Servidores

Loacutegicos Opccedilatildeo permissvel apenas se o nuacutemero

miacutenimo de servidores (variaacutevel ldquominServerCountrdquo)

for menor que o nuacutemero de servidores activos

(variaacutevel ldquoactiveServerCountrdquo)

editLogicalServersServersGroup Permite a ediccedilatildeo de todos os Servidores

pertencentes a um Grupo de Servidores Loacutegicos

powerOnLogicalServersGroup Liga todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

powerOffLogicalServersGroup Desliga todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

powerCycleLogicalServersGroup Faz o reboot de todos os Servidores que pertencem

a um mesmo Grupo de Servidores Loacutegicos

activateLogicalServerGroup Activa todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

deactivateLogicalServerGroup Desactiva todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

5525 Servidores

Um Grupo de Servidores eacute constituiacutedo por uma lista de Servidores Cada grupo como

jaacute foi referido pode ser completamente diacutespar dos demais dentro de um mesmo

Serviccedilo O mesmo jaacute natildeo acontece nos Servidores dentro de um mesmo Grupo de

Servidores As configuraccedilotildees dos Servidores dentro de um mesmo Grupo de

Servidores tem todos as mesmas caracteriacutesticas podendo variar apenas no numero de

discos memoacuteria e processamento

O utilizador poderaacute obter informaccedilotildees como nome do Servidor status se eacute ou

natildeo virtual se estaacute em cloud se eacute o servidor base memoacuteria e processamento para

futuros upgrades com progressbars para facilmente visualizar o estado actual custo

datas de criaccedilatildeo e modificaccedilatildeo localizaccedilatildeo do ficheiro da VM (acessiacutevel apenas ao

administrador) e as listas associadas de discos software e interfaces

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa aos Servidores

56

Figura 35 - Execuccedilatildeo tab ldquoServerrdquo

Export Server

Permite o download em ficheiro XML dos detalhes do Servidor em

visualizaccedilatildeo o utilizador poderaacute consultar mais tarde em modo offline os detalhes

desse Servidor Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no clique do

icon do nome do Servidor respectivo no menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Servidor

directamente numa InfoWindow dentro do webservice A informaccedilatildeo em XML

torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Remove Server

A diferenccedila desta acccedilatildeo no Servidor para a mesma acccedilatildeo no Grupo de

Servidores eacute o facto da remoccedilatildeo ser do Servidor em visualizaccedilatildeo Para remover

mais do que um Servidor essa operaccedilatildeo teraacute obrigatoriamente que ser no Grupo

de Servidores

57

Edit Server

Como na remoccedilatildeo de servidores a diferenccedila desta acccedilatildeo para a mesma

acccedilatildeo no Grupo de Servidores eacute que a ediccedilatildeo de Servidores na tab Servidor apenas

afectaraacute o Servidor em visualizaccedilatildeo e natildeo os restantes Servidores do Grupo de

Servidores

Power ON Server

Acccedilatildeo que permite a ligaccedilatildeo do Servidor em visualizaccedilatildeo e que este fique

disponiacutevel para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica

activa quando ldquoserverStatus==OFFrdquo

Power OFF Server

Acccedilatildeo que permite que um Servidor seja desligado e que este fique

indisponiacutevel para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica

activa quando ldquoserverStatus==UPrdquo

Power Cycle Server

Acccedilatildeo que permite fazer o reboot a um Servidor e este continue disponiacutevel

para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica activa quando

ldquoserverStatus==UPrdquo

Activate Server

Permite a activaccedilatildeo do Servidor em visualizaccedilatildeo No final desta operaccedilatildeo

o Servidor fica em modo ldquoserverStatus==UPrdquo e ficam automaticamente disponiacutevel

para utilizaccedilatildeo

Deactivate Server

Permite a desactivaccedilatildeo do Servidor em visualizaccedilatildeo No final desta

operaccedilatildeo o Servidor fica em modo ldquoserverStatus==DEACTIVATEDrdquo

Actions Server

Como no Grupo de Servidores os ldquotriggered actionsrdquo associadas a cada

Servidor satildeo parte integrante do Serviccedilo criado Se o Servidor em visualizaccedilatildeo

tiver ldquotriggered actionsrdquo esta acccedilatildeo estaraacute visiacutevel ao utilizador para listagem

List Snapshots

Acccedilatildeo que permite listar todos os Snapshots associados ao Servidor em

visualizaccedilatildeo Todas as acccedilotildees nos Snapshots satildeo relativas ao Servidor em questatildeo

Create Snapshot

Acccedilatildeo que permite a criaccedilatildeo de Snapshots no Servidor

Existem campos obrigatoacuterios como o nome do Snapshot O nome do

Servidor eacute preenchido automaticamente com o nome do Servidor que estaacute a ser

visualizado Opccedilotildees como ldquoInclude Memory Staterdquo ou ldquoQuiesce filesystemrdquo

estatildeo tambeacutem disponiacuteveis para selecccedilatildeo aquando da criaccedilatildeo do Snapshot

58

List ServerPool

Acccedilatildeo que permite a listagem de todas as pools de Servidores existentes no

webservice Na imagem seguinte podemos visualizar quatro pools de Servidores

que foram criadas pelo administrador

ldquoCreate Server Poolrdquo eacute uma acccedilatildeo atribuiacutedas apenas ao administrador com

campos obrigatoacuterios como nome da Pool

ldquoDelete Server Poolrdquo eacute outra acccedilatildeo atribuiacutedas apenas ao administrador

permitindo a remoccedilatildeo de uma Pool de Servidores do sistema

Esta operaccedilatildeo natildeo remove Servidores nem Serviccedilos mas remover todas as

associaccedilotildees jaacute existentes entre Servidores e utilizadores Como acccedilatildeo importante

o webservice evidencia isso mesmo com uma InfoWindow de aviso ao

administrador

VM Host

Acccedilatildeo que permite a listagem de todos os hosts fiacutesicos associados a uma

determinada Pool de Servidores

Nesta operaccedilatildeo obtecircm-se detalhes relativos ao host como eacute o caso do

nome id endereccedilo IP domiacutenio DNS tipo de virtualizaccedilatildeo modelo cluster

memoacuteria total e consumida dados dos processadores e ainda dados relativos ao

armazenamento (DataStores) e rede (VirtualSwitch)

Remote Session

Acccedilatildeo que permite a listagem de todas as Sessotildees Remotas atribuiacutedas ao

Servidor em visualizaccedilatildeo

Esta acccedilatildeo eacute dependente do status do Servidor fica activa quando

ldquoserverStatus==UPrdquo

A imagem seguinte evidencia as duas ligaccedilotildees existentes para a VM do

Servidor especiacutefico Duas ligaccedilotildees relativas agraves duas Interfaces disponiacuteveis no

Servidor uma na rede ldquoHP Networkrdquo com o endereccedilamento IP 16231875 e

outra na rede local da infra-estrutura rede ldquoCloudSystemrdquo com o endereccedilamento

IP 19216810203

As opccedilotildees de Sessotildees Remotas possiacuteveis satildeo as que jaacute foram descritas na

listagem das ldquoRemote Sessionsrdquo do Serviccedilo Neste caso direccionadas apenas ao

um uacutenico Servidor

Tabela 5 - Funccedilotildees associadas aos Servidores

Funccedilatildeo Descriccedilatildeo

getLogicalServer Obteacutem os detalhes de um Servidor Logico em formato XML

para visualizaccedilatildeo na infowindow e opccedilatildeo de download

59

findLogicalServer Obteacutem os Detalhes de um Servidor Loacutegico especiacutefico

addServer Addiciona um Servidor a um Grupo de Servidores Loacutegicos

se o nuacutemero de servidores activos (variaacutevel

ldquoactiveServerCountrdquo) for menor que o nuacutemero maacuteximo de

servidores (variaacutevel ldquomaxServerCountrdquo)

removeServer Remove um Servidor de um Grupo de Servidores Loacutegicos se

o nuacutemero miacutenimo de servidores (variaacutevel

ldquominServerCountrdquo) for menor que o nuacutemero de servidores

activos (variaacutevel ldquoactiveServerCountrdquo)

editLogicalServer Permite a ediccedilatildeo de memoacuteria e processamento de um

determinado Servidor Loacutegico

powerOnLogicalServer Liga um Servidor Loacutegico especiacutefico

powerOffLogicalServer Desliga um Servidor Loacutegico especiacutefico

powerCycleLogicalServer Reboot de um Servidor Loacutegico especiacutefico

activateLogicalServer Activaccedilatildeo de um Servidor Loacutegico especiacutefico

deactivateLogicalServer Desactivaccedilatildeo de um Servidor Loacutegico especiacutefico

getRdpFile Obteacutem o ficheiro RDP para download e posterior acesso

remoto

getLogicalServersAndIPs Obteacutem uma lista de todos os IPs das Interfaces de um

determinado Servidor Loacutegico

getVmHost Obteacutem os detalhes do Host associado a um Servidor Loacutegico

5526 Disco

Cada servidor tem necessariamente um ou mais discos associados estes podem ser

rotulados de ldquoStereotyperdquo ldquoVirtualrdquo ou ldquoPhysicalrdquo Um disco ldquoStereotyperdquo

corresponde a um disco-base ie um disco que existe no template (do servidor)

excepto disco de boot os restantes como o proacuteprio nome indica satildeo discos virtuais

ou fiacutesicos

Nesta tab o utilizador pode obter informaccedilatildeo do nome do disco tamanho tipo

de RAID tipo de Storage se eacute ou natildeo Bootable Shareable tipo de Raw Mapping

(VIRTUAL PHYSICAL NONE e OTHER) custo associado ficheiro do disco

(virtual - acessiacutevel apenas ao administrador) e data de criaccedilatildeo e modificaccedilatildeo

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa aos discos

60

Figura 36 - Execuccedilatildeo tab ldquoDisksrdquo

Add Stereotype Disks

Acccedilatildeo jaacute enunciada no Grupo de Servidores Como estamos a visualizar

um disco e as suas configuraccedilotildees esta acccedilatildeo estaraacute apenas disponiacutevel se o disco

em visualizaccedilatildeo natildeo for bootable Como jaacute referido apenas os discos que natildeo

sejam bootable satildeo considerados ldquoStereotype Disksrdquo e poderatildeo ser criados novos

discos com base no disco em questatildeo

Como no Grupo de Servidores tambeacutem nos discos esta opccedilatildeo soacute seraacute

possiacutevel se natildeo existirem Snapshots relativos a qualquer Servidor desse Grupo de

Servidores Esta acccedilatildeo carece da aprovaccedilatildeo do administrador

Tabela 6 - Funccedilotildees associadas aos Discos

Funccedilatildeo Descriccedilatildeo

addDiskToLogicalServerGroup Adiciona um Stereotype Disk a um Grupo de

Servidores Loacutegicos Operaccedilatildeo que carece da aprovaccedilatildeo

do Administrador

addNewDiskToLogicalServerGro

up

Adiciona um disco virtual ou fiacutesico a um Grupo de

Servidores Loacutegicos Operaccedilatildeo que carece da aprovaccedilatildeo

do Administrador O tamanho do disco eacute

automaticamente determinado pelo tipo do Grupo de

Servidor Loacutegico

61

5527 Software

Recursos como Software tambeacutem fazem parte dos recursos do Servidor Mediante a

instalaccedilatildeo preacutevia do ldquoServer Automationrdquo no MOE aquando da criaccedilatildeo do Template

poderatildeo ser associados nos recursos de cada Servidor uma lista de software como lista

de packages com SO software antiviacuterus base de dados etc previamente instalados

em VM e posteriormente transformados em Tamplate

Cada Servidor pertencente a um mesmo Grupo de Servidores teraacute uma mesma

lista de software base associado

Informaccedilotildees relativas ao software tambeacutem estatildeo disponiacutevel ao utilizador como

nome tipo tipo de OS tipo de Deployment Service ficheiro de configuraccedilatildeo do OS

(acessiacutevel apenas ao administrador) tipo de virtualizaccedilatildeo localizaccedilatildeo do ficheiro

relativo ao software (acessiacutevel apenas ao administrador) e data de criaccedilatildeo e

modificaccedilatildeo

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Software

Figura 37 - Execuccedilatildeo tab ldquoSoftwarerdquo

List Softwares

Acccedilatildeo disponiacutevel apenas ao administrador permite a listagem de todo o

Software disponiacutevel no sistema O software pertencente ao Grupo de

ServidoresServidor estaacute disponiacutevel directamente no menu lateral esquerdo

Mediante a instalaccedilatildeo preacutevia do ldquoServer Automationrdquo no MOE aquando

da criaccedilatildeo do Template poderaacute ser associado nos recursos de cada Grupo de

ServidoresServidor uma lista de software como lista de packages com SO

software antiviacuterus base de dados etc

Software Detals

Acccedilatildeo disponiacutevel apenas ao administrador permite a visualizaccedilatildeo de todos

os detalhes do Software

62

Tabela 7 - Funccedilotildees associadas ao Software

Funccedilatildeo Descriccedilatildeo

listSoftware Obteacutem a lista de todo o Software disponiacutevel no

webservice Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura

de orquestraccedilatildeo

getSoftware Obteacutem os detalhes de um Software especiacutefico

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

5528 Interface

As Interfaces (NICs) fazem igualmente parte das configuraccedilotildees base de cada Servidor

podendo no entanto existir redundacircncia ou natildeo

Informaccedilotildees das Interfaces disponiacutevel na tab respectiva como nome se eacute a

interface primaacuteria data de criaccedilatildeo modificaccedilatildeo e informaccedilotildees sobre a rede como

nome se eacute puacuteblica partilhada tipo e endereccedilo IP com informaccedilotildees como o endereccedilo

IP propriamente dito tipo de atribuiccedilatildeo custo e uma lista de NatEntrys (Network

Address Translation)

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa as Interfaces

Figura 38 - Execuccedilatildeo tab ldquoInterfacerdquo

List Subnets

Acccedilatildeo disponiacutevel apenas ao administrador permite a listagem de todas as

redes existentes no sistema com informaccedilotildees como nome da rede endereccedilo

mascara source tipo de IP se eacute uma rede puacuteblica e os endereccedilamentos DHCP e

estaacutecticos nuacutemero de IPs usados e em uso etc

63

Add IPAddress

Acccedilatildeo que permite atribuir automaticamente (pelo sistema) um IP

flutuante a uma Interface Uma Interface associada a um Servidor dentro de um

determinado Serviccedilo

Com esta acccedilatildeo o utilizador solicita um IP flutuante de uma pool de IPs

que o administrador tenha criado Nesse sentido o utilizador apenas solicita um IP

flutuante para uma Interface (NIC0) de um determinado Servidor pertencente a

um Serviccedilo Como o utilizador estaacute a visualizar a Interface os campos satildeo

automaticamente preenchidos Operaccedilatildeo apenas permitida em servidores loacutegicos

em cloud

Remove IPAddress

Acccedilatildeo que permite remover um IP flutuante Neste caso o utilizador tem

que fornecer o endereccedilo IP flutuante previamente adquirido

Move IPAddress

Acccedilatildeo que permite mover um determinado IP flutuante entre instacircncias

Na eventualidade do utilizador jaacute for detentor de um IP flutuante pode move-lo

atribuindo-o agrave Interface em visualizaccedilatildeo Operaccedilatildeo apenas permitida em

servidores loacutegicos em cloud

VM Access

Acccedilotildees de acesso remoto directamente na Interface

Esta acccedilotildees satildeo dependente do status do Servidor ficam activas quando

ldquoserverStatus==UPrdquo

Como estamos directamente a visualizar uma Interface o acesso remoto eacute

feito atraveacutes dessa Interface desse IP conhecido

As opccedilotildees de Sessotildees Remotas possiacuteveis satildeo as que jaacute foram descritas na

listagem das ldquoRemote Sessionsrdquo do Serviccedilo

RDP (Remote Desktop Protocol)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet

VMRC (VMware Remote Console)

Tabela 8 - Funccedilotildees associadas agraves Interfaces

Funccedilatildeo Descriccedilatildeo

getVMID Obteacutem o ID de uma VM atarveacutes do endereccedilo IP da

Interface

64

executeRDP Execuccedilatildeo directa do comando RDP mstscexe

vIPAddress console

addFloatingIPAddress Adiciona automaticamente um endereccedilo IP flutuante a

uma determinada Interface Operaccedilotildees de IP flutuante natildeo

satildeo suportadas para Servidores Loacutegicos que natildeo estejam

em cloud

removeFloatingIPAddress Remove um determinado endereccedilo IP flutuante de um

Servidor Loacutegico Operaccedilotildees de IP flutuante natildeo satildeo

suportadas para Servidores Loacutegicos que natildeo estejam em

cloud

moveFloatingIPAddress Associa um determinado endereccedilo IP flutuante jaacute

existente a uma Interface Operaccedilotildees de IP flutuante natildeo

satildeo suportadas para Servidores Loacutegicos que natildeo estejam

em cloud

5529 Redes

As Redes como o Software teratildeo que estar previamente configuradas e

implementadas para posterior uso em Templates e Serviccedilos A listagem de redes

existentes na infra-estrutura estaacute apenas disponiacutevel ao Administrador ou Arquitecto de

toda a infra-estrutura de orquestraccedilatildeo e permite a visalizaccedilatildeo de todas as redes

existentes com informaccedilotildees como o nome da rede gama de endereccedilos IP mascara

tipo de IPV e se eacute um endereccedilamento estaacutectico ou obtido por DHCP

Figura 39 - Listagem das redes existentes

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa agraves Redes

65

Tabela 9 - Funccedilotildees associadas agraves Redes

Funccedilatildeo Descriccedilatildeo

listSubnets Obteacutem uma lista com todas as redes existentes no

webservice

listSubnet Obteacutem os detalhes de uma rede especiacutefica

55210 Snapshots

Os Snapshots satildeo um recurso valioso quando nos deparamos com problemas de

inconsistecircncias desastres seguranccedila etc que natildeo sendo backup permite a

recuperaccedilatildeo do servidor em segundos contrariamente a restauraccedilatildeo a partir de um

backup tradicional recuperaccedilatildeo ou reinstalaccedilatildeo de um SO ou qualquer outra teacutecnica

com o seu exagerado tempo de consolidaccedilatildeo

A listagem de todos os Snapshots estaacute disponiacutevel aquando da visualizaccedilatildeo da

informaccedilatildeo relativa ao Grupo de Servidores onde satildeo visualizados todos os Snapshots

pertencentes ao grupo e no Servidor onde apenas satildeo visualizados os Snapshots desse

Servidor em visualizaccedilatildeo

Uma lista relacionada de Snapshots sucessivos com informaccedilotildees como nomes

do Serviccedilo do Grupo de Servidores e do Servidor assim como nome do Snapshot a

sua relaccedilatildeo parental e se estaacute ou natildeo activo ficam disponiacuteveis ao utilizador

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa aos Snapshots

Figura 40 - Execuccedilatildeo tab ldquoSnapshotrdquo

Tabela 10 - Funccedilotildees associadas aos Snapshots

Funccedilatildeo Descriccedilatildeo

listServerSnapshots Obteacutem a listagem de todos os Snapshots de um Servidor

Loacutegico especiacutefico

listServerGroupSnapshots Obteacutem a listagem de todos os Snapshots de um Grupo de

Servidor Loacutegico

66

snapshotCreate Cria um Snapshot de um Servidor especiacutefico

revertServerSnapshot Reverte um determinado Snapshot para o Servidor

correspondente

deleteServerSnapshot Remove um Snapshot do sistema

55211 Request

A visualizaccedilatildeo do estado actual das acccedilotildees do utilizador eacute considerado um dos pontos

chave desta framework O simples update da ldquoprogressbarrdquo carece de uma perfeita

sincronizaccedilatildeo entre o Webservice e o MOE

O utilizador poderaacute visualizar sempre uma listagem de todos os seus pedidos ou

pormenoriza-los por relaccedilotildees 1) UtilizadorServiccedilos 2) TemplateServiccedilos 3)

Serviccedilo

A listagem de todos os pedidos estaacute disponiacutevel aquando da visualizaccedilatildeo da

informaccedilatildeo relativa a qualquer recurso sendo que a opccedilatildeo 1) eacute geral e sempre

disponiacutevel e as opccedilotildees 2) e 3) satildeo especiacuteficas a recursos em visualizaccedilatildeo Ficam assim

disponiacuteveis informaccedilotildees como tipo data submissatildeo do pedido comeccedilo e fim status

progresso () nome do Serviccedilo ao qual o pedido estaacute associado etc

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo da listagem

dos pedidos do utilizador

Figura 41 - Execuccedilatildeo tab ldquoRequestsrdquo

Opccedilotildees como ldquoAproval Staterdquo e ldquoContinuerdquo de pedidos que carecem da

aprovaccedilatildeo do Administrador ficam apenas acessiacuteveis aos utilizadores com permissotildees

de administraccedilatildeo e a opccedilatildeo de cancelamento acessiacutevel aos utilizadores que solicitaram

esses pedidos

67

Tabela 11 - Funccedilotildees associadas aos Requests

Funccedilatildeo Descriccedilatildeo

listRequests Listagem de todos os pedidos do utilizador

listRequestsTemplateDetails Listagem de todos os pedidos do par utilizadorTemplate

listRequestsServiceDetails Listagem de todos os pedidos do par utilizadorServiccedilo

getRequestInfo Obteacutem detalhes de toda a informaccedilatildeo associada a um

determinado pedido

getPercentComplete Obteacutem a percentagem de um pedido

getRequest Obteacutem os detalhes particulares de um pedido

setRequestApprovalState Aprovaccedilatildeo de um pedido feito por um utilizador e que

esteja no estado PAUSED_FOR_APPROVAL

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

continueRequest Permite a continuaccedilatildeo de um pedido feito por um

utilizador e que esteja no estado IN_PROGRESS

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

cancelRequest Cancelamento de um pedido

55212 Pools de Servidores

Uma pool de servidores eacute um grupo de um ou mais hosts de virtualizaccedilatildeo com a uma

mesma arquitetura com acesso agraves mesmas redes virtuais e fiacutesicas e recursos de

armazenamento As Pools de servidores permitem balanceamento de carga recursos

de alta disponibilidade e partilha de alguns recursos para todos os membros dessa

pool

Informaccedilotildees das Pools disponiacutevel na tab respectiva como nome ID da

organizaccedilatildeo Ids dos Hosts e o grupo de utilizadores associados a cada Pool de

Servidores

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa a uma determinada Pool de Servidores

68

Figura 42 - Execuccedilatildeo tab ldquoServerPoolsrdquo

Tabela 12 - Funccedilotildees associadas agraves Pools de Servidores

Funccedilatildeo Descriccedilatildeo

listServerPools Obteacutem uma listagem de todas as Pools de Servidores para

a criaccedilatildeo de um Serviccedilo

listServerPoolsTab Obteacutem todas as Pools de Servidores existentes no

webservice Informaccedilatildeo disponibilizada na tab

serverPools

listVmHostIds Obteacutem uma lista com todos os Hosts associados a uma

Pool de Servidores

getServerPool Obteacutem os detalhes de uma Pool de Servidores

createServerPool Permite a criaccedilatildeo de uma nova Pool de Servidores

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

deleteServerPool Remove uma Pool de Servidores do systema Operaccedilatildeo

executada apenas pelo Administrador ou Arquitecto de

toda a infra-estrutura de orquestraccedilatildeo

56 Camada de Dados

Numa orientaccedilatildeo a objectos os objectos considerados ldquopersistentesrdquo satildeo todos os

objectos que continuam a existir apoacutes o teacutermino de execuccedilatildeo do programa por norma

guardados numa base de dados relacional ou mesmo em ficheiros em disco Jaacute os

objectos considerados ldquonatildeo persistentesrdquo deixam de existir quando o programa

termina satildeo objectos armazenados em tempo de execuccedilatildeo e satildeo usados apenas

durante esse periacuteodo

561 Dados natildeo persistentes

Os dados natildeo persistentes nesta framework destinam-se exclusivamente ao

utilizador permissotildees de acesso e seguranccedila Internamente o servidor guarda em

tempo de execuccedilatildeo dados relativos ao utilizador como eacute o caso do username

69

(userPrincipal) password (IOClientPasswordHandler) privileacutegios de acesso

(rolePrincipal) grupo de utilizadores (userGroups) e credenciaccedilotildees necessaacuteria

(TrustAllX509TrustManager) para comunicaccedilatildeo com a API do MOE A comunicaccedilatildeo

eacute estabelecida (IOSoapServicePort_Client) e quando existir a solicitaccedilatildeo de

determinados conteuacutedos estes satildeo disponibilizados ou natildeo mediante o ldquotipordquo (role)

de utilizador e suas permissotildees

Neste contexto a autenticaccedilatildeo eacute todo um processo de determinar se uma

entidade eacute quem quem diz ser e a autorizaccedilatildeo o processo de conceder permissotildees de

acesso a recursos Logicamente a autenticaccedilatildeo precede a autorizaccedilatildeo

O moacutedulo login implementa isso mesmo todos os passos de autenticaccedilatildeo

credenciaccedilatildeo e permissotildees uma teacutecnica conhecida como Realm JAAS (Java

Authentication and Authorization Service) como conjunto de interfaces de

programaccedilatildeo de aplicaccedilotildees (APIs) com opccedilotildees de autenticaccedilotildees em modo Basic e

Form usando para isso os denominados realms File e JDBC (Java Database

Connectivity) em runtime

Figura 43 - Realm JAAS (Java Authentication and Authorization Service)

562 Dados persistentes

5621 Cookies HTTP

Os dados persistentes destinam-se especialmente ao utilizador e foram idealizados

nesse sentido tornar a relaccedilatildeo utilizadorwebservice mais amigaacutevel e acima de tudo

praacutetica e independente do ldquostatusrdquo da infra-estrutura

Os tatildeo conhecidos COOKIEs HTTP satildeo dados armazenado no

navegadorbrowser do utilizador quando este acede a um determinado site Eacute um

mecanismo usado para guardar as informaccedilotildees relativas a um utilizador como

username formataccedilatildeo de conteuacutedos actividades escolhas cliques etc para quando

aceder novamente a esse site essas configuraccedilotildees anteriores estarem preacute-definidas e

configuradas

70

Os cookies de autenticaccedilotildees em sites web satildeo o meacutetodo mais comum e nesta

framework este meacutetodo foi usado para guardar dados relativos ao utilizador O

servidor natildeo precisa de suportar o peso das ligaccedilotildees siacutencronas para saber se um

determinado utilizador estaacute logado ou natildeo e neste sentido este meacutetodo torna-se eficaz

Os dados guardados e relativos ao utilizador que satildeo dados como username

role layout do webservice (gtheme) layout do menu lateral esquerdo (ttheme)

informaccedilatildeo relativa agraves regiotildees do webservice visualizada ou omitida (nregion

wregion eregion sregion) e um boolean (islogin) para uma mensagem de boas

vindas aquando do login Cada vez que um determinado utilizador alterar o layout do

webservice ou fechar o painel de visualizaccedilatildeo de determinada informaccedilatildeo satildeo passos

que satildeo guardados e durante toda a navegaccedilatildeo estas acccedilotildees permaneceratildeo guardadas

mesmo em futuros logins desse utilizador

5622 Modelo ER

Uma infra-estrutura como o MOE eacute desenhada e implementada para funcionamento

online e todas as alteraccedilotildees como criaccedilatildeo de um Serviccedilo ediccedilatildeo desse Serviccedilo

criaccedilatildeo de Discos etc satildeo alteraccedilotildees com acccedilatildeo imediata na infra-estrutura

Infelizmente nem tudo corre sempre como queremos e quando mais precisamos de

uma ou outra implementaccedilatildeo ou configuraccedilatildeo eacute quando o serviccedilo estaacute em baixo e por

uma ou outra razatildeo ficamos impossibilitados de o fazer

A implementaccedilatildeo de uma Base de Dados com toda a informaccedilatildeo relativa ao

utilizador colmata sempre estas falhas imprevistas Um implementaccedilatildeo independente

da infra-estrutura que permite ao utilizador ter acesso total aos seus dados crie edite

apague recursos em modo offline com sincronizaccedilatildeo com o MOE automaacuteticamente ou

por acccedilatildeo do utilizador

Um moacutedulo uacutetil e praacutetico que facilita o acesso e configuraccedilotildees dos serviccedilos do

utilizador Acccedilotildees que carecem de algum tempo de implementaccedilatildeo apoacutes a sua

solicitaccedilatildeo Acccedilotildees agarradas ao utilizador ao seu tempo e disposiccedilatildeo e natildeo agrave infra-

estrutura Acccedilotildees tidas pelo utilizador que sem preocupaccedilatildeo com tempos de execuccedilatildeo

e implementaccedilatildeo cria edita ou apaga o seu Serviccedilo e numa futura ligaccedilatildeo tudo eacute

sincronizado automaticamente

Segue-se o modelo ER implementado que descreve conceptualmente os dados

e seus relacionamentos em UML Em realce os principais recursos

71

Figura 44 - Modelo ER

Pela anaacutelise do modelo ER facilmente se percebe como os recursos se

relacionam entre siacute Segue-se uma explicaccedilatildeo do modelo e dos seus recursos

principais

Cada Template tem uma lista de Serviccedilos associados que aquando da sua

implementaccedilatildeo tiveram esse Template como base e apresenta um e um soacute custo total

que corresponde a soma de todos os recursos implementados e permitidos nesse

Template

72

Um Serviccedilo como jaacute referido tem sempre por base um e um soacute Template um

e um soacute ldquoLeasePeriodrdquo que corresponde ao tempo de utilizaccedilatildeo e um e um soacute custo

total associado Este custo eacute igualmente a soma de todos os recursos instanciados e

em uso nesse Serviccedilo No Serviccedilo eacute possiacutevel implementar uma nova Entidade

denominada ldquoServiceActionrdquo que corresponde a um e um soacute conjunto de acccedilotildees a

executar automaticamente antes durante ou depois da criaccedilatildeo desse Serviccedilo O

Serviccedilo encontra-se sempre em um e um soacute estado (ServiceEntityStatusEnum) de cada

vez que eacute acedido Logicamente como referido ao longo do presente relatoacuterio um

Serviccedilo eacute constituiacutedo por uma lista de Grupos de Servidores numa relaccedilatildeo de um para

muitos

Um Grupo de Servidores como o Serviccedilo apresenta tambeacutem um e um soacute

conjunto de acccedilotildees a executar automaticamente antes durante ou depois da criaccedilatildeo

desse Serviccedilo nesse Grupo de Servidores em especiacutefico Novas Entidades satildeo aqui

retratadas como seguranccedila (LogicalFirwallRuleGoup) e balanceamento de carga

(LogicalLoadBalancer) com a relaccedilatildeo de muitos para um Um Grupo de Servidores

estaacute sempre associado a um e um soacute Serviccedilo e eacute constituiacutedo por uma lista de

Servidores numa relaccedilatildeo de um para muitos Uma nova Entidade aparece no Grupo de

Servidores (LogicalIPAddress) com a atribuiccedilatildeo de um IP uacutenico ao Grupo

Um Servidor relaciona-se com o Grupo de Servidores numa relaccedilatildeo de muitos

para um contrariamente agrave relaccedilatildeo com as Entidades LogicalSoftware e LogicalDisk

cuja relaccedilatildeo eacute de muitos para muitos Jaacute a relaccedilatildeo com LogicalNetworkInterface eacute

apenas uma relaccedilatildeo de um para muitos um Servidor pode ter muitas Interfaces mas

uma Interfaces estaacute sempre associada a um e um soacute Servidor

Por uacuteltimo como componentes do Servidor Software Discos e Interfaces

Um mesmo Software pode estar instanciado em muitos Servidores assim como

muitos Servidores podem ter uma lista de Software Os Discos com a opccedilatildeo ldquosharedrdquo

podem pertencer a vaacuterios Servidores e vice-versa As Interfaces aleacutem de pertencer a

um e um soacute Servidor tem igualmente um e um soacute IP associado

57 Feedback

O presente trabalho como jaacute referido teve sempre como objectivo uacuteltimo a facilidade

de acccedilotildees do utilizador visualizaccedilatildeo e organizaccedilatildeo da disponibilizaccedilatildeo de toda a

informaccedilatildeo e nesse intuito ao longo de toda a elaboraccedilatildeo foram desencadeadas vaacuterias

apresentaccedilotildees ao Orientador da Tese professor Paulo Lopes e Orientador da

elaboraccedilatildeo na HP Rui Ramos Os Feedbacks serviram para redireccionamentos e

orientaccedilotildees de programaccedilatildeo

A disponibilizaccedilatildeo da informaccedilatildeo por Tabs transmite toda a informaccedilatildeo ao

utilizador de uma forma organizada facilmente acessiacutevel e raacutepida na percepccedilatildeo dessa

informaccedilatildeo e suas acccedilotildees possiacuteveis associadas

73

A alteraccedilatildeo aconselhada pelo Rui Ramos na ediccedilatildeo de Servidores do Grupo de

Servidores como a passagem de listagens para um simples ldquobuttonrdquo com um sinal ldquo+rdquo

para adicionar Servidores ou um sinal ldquo-rdquo para remover tornou-se mais praacutetica e

intuitiva

Disponibilizaccedilatildeo de mais meios de acesso agraves VMs como a opccedilatildeo VMRC

(VMware Remote Console) ou RDP (Remote Desktop Protocol) satildeo sempre opccedilotildees

vaacutelidas e uacuteteis para o utilizador final

A disponibilizaccedilatildeo da informaccedilatildeo e das acccedilotildees associadas agrave medida que o

utilizador vai descendo no menu em aacutervore (menu lateral esquerdo) torna-se uacutetil pela

visualizaccedilatildeo hieraacuterquica de todos os recursos e acima de tudo praacutetico ao que o

utilizador realmente pretende com um simples clique

Personalizaccedilatildeo do layout aconselhada pelo professor Paulo Lopes com os

diversos ldquoThemesrdquo opccedilotildees de visualizaccedilatildeoocultaccedilatildeo de informaccedilatildeo etc com as

valecircncias jaacute descritas no iniacutecio deste capiacutetulo

Opccedilatildeo ldquoDatagridrdquo onde a disponibilizaccedilatildeo da informaccedilatildeo passa de simples

Tabs para listagem em tabelas Visualizaccedilatildeo uacutetil quando a informaccedilatildeo eacute demasiada

evitando assim o scroll do utilizador na busca da restante informaccedilatildeo bastando para

isso selecionar a ldquoquantidaderdquo de informaccedilatildeo que pretende visualizar naquele

momento

Feedbacks sempre positivos e atempados para as alteraccedilotildees necessaacuterias a

efectuar no framework

58 Questotildees principais

No decorrer da elaboraccedilatildeo deste webservice foram seguidos caminhos e

implementaccedilotildees que de um modo geral se tornaram praacuteticas e uacuteteis existindo no

entanto algumas desaconselhadas pela especificidade deste tipo de implementaccedilotildees

Foi implementada a opccedilatildeo de visualizaccedilatildeo e acccedilotildees em modo offline Foi

criada uma base de dados que suportava todos os dados do MOE a sincronizar

aquando do refresh do webservice ou por acccedilatildeo do utilizador Tal opccedilatildeo foi

desaconselhada pelo facto do sistema estar sempre online disponiacutevel e ter custos

associados

A transformaccedilatildeo de datas ldquoepoch2daterdquo e ldquodate2epochrdquo foi uma das opccedilotildees

que mais trabalho deu pelo facto da API natildeo indicar que o referido nuacutemero eacute a data

em eacutepoca e as casas decimais que entram na conversatildeo Uma eacutepoca em Unix (o

conhecido Unix timestamp) eacute o nuacutemero em segundos que distam de 01 de Janeiro de

1970 ou seja eacute o tempo Unix 0 que corresponde agrave meia-noite de 01011970 Por

norma uma data em eacutepoca eacute um nuacutemero inteiro de 32 bits As duas funccedilotildees

ldquoepoch2daterdquo e ldquodate2epochrdquo tratam dessas converotildees para o utilizador poder

observar as datas numa formataccedilatildeo legiacutevel Esta formataccedilatildeo ainda carece de uma

74

transformaccedilatildeo do dia com o mecircs para ser apresentada no formato europeu

diamecircsano

Existe coacutedigo HTML que eacute criado dinamicamente esta opccedilatildeo tornou-se

bastante uacutetil pela disponibilizaccedilatildeo de grandes quantidades de informaccedilatildeo nos mesmos

ldquoinput boxesrdquo como eacute o caso de toda a informaccedilatildeo do Servidor dentro de um mesmo

Grupo de Servidores A informaccedilatildeo eacute diferente mas o layout eacute o mesmo por isso uma

organizaccedilatildeo adequada de IDs criados dinamicamente faz toda a diferenccedila

O tratamento de erros eacute algo que por vezes eacute decurado no dueto utilizador-

webservice Um webservice quer-se amigaacutevel e nesse intuito paacuteginas em branco

completamente diferentes do layout do webservice com erros como 404 ou 500 satildeo

desaconcelhadas Assim foi inicialmente implementado esse tratamento directamente

no ficheiro ldquoWebContentWEB-INF webxmlrdquo que redirecionava o utilizador para

paacuteginas HTML com layout igual ao webservice com o respectivo nuacutemero do erro e a

mensagem correspendente para informaccedilatildeo Uma mudanccedila e redireccionamento

draacutestico obrigando o utilizador a voltar atras e tentar de novo Optou-se pelo

tratamento directo em javascript com a visualizaccedilatildeo da mensagem de erro numa

ldquoInfoWindowrdquo sem redireccionamentos nem novas paacuteginas

A API do MOE apresenta igualmente alguns pontos que precisam de ser

melhorados em futuras versotildees Foram implementados alguns caminhos secundaacuterios

quando tudo poderia ser mais faacutecil se a API fornecesse essa implementaccedilatildeo

directamente

Informaccedilatildeo detalhada dos Templates

O objectivo deste webservice eacute criar serviccedilos e apoacutes criaccedilatildeo fazer uso dos

recursos A implementaccedilatildeo de um Serviccedilo tem por base um Template que lhe estaraacute

sempre associado Templates existentes num Cataacutelogo de Serviccedilos e com informaccedilatildeo

sobre os recursos que ficaram disponiacuteveis apoacutes a criaccedilatildeo do Serviccedilo

Naturalmente o utlizador percorre todos os Templates na busca da informaccedilatildeo

que melhor se adapte agraves suas necessidades Se esse informaccedilatildeo se apresenta escassa o

utilizador natildeo vai ficar a saber dos detalhes dos recursos que poderaacute usar aquando da

criaccedilatildeo do serviccedilo

A API natildeo fornece informaccedilatildeo detalhada dos Templates apenas uma

informaccedilatildeo muito resumida natildeo disponibilizando ao utilizador a informaccedilatildeo

associada por exemplo ao custo de cada servidor memoacuteria processador nuacutemero de

interfaces software etc

O presente webservice jaacute disponibiliza toda essa informaccedilatildeo ao utilizador

sendo que este pode navegar no Cataacutelogo de Serviccedilos do menu lateral esquedo e

visualizar toda a informaccedilatildeo detalhada dos Templates escolher o que melhor se

enquadre dentro das suas necessidades e finalmente criar o Serviccedilo

75

VMID

O utilizador pode assim usar os recursos depois do Serviccedilo criado Para a

criaccedilatildeo de uma sessatildeo remota o ID da VM era essencial Tal informaccedilatildeo natildeo existe

na API do MOE Uma listagem de VMIDs por utilizador associadas a cada serviccedilo

por servidor por interface qualquer uma destas quatro opccedilotildees era vaacutelida

ldquocustomTemplateAttributesrdquo na criaccedilatildeo do Serviccedilo

Na criaccedilatildeo de um Serviccedilo existem campos de preenchimento automaacutetico

campos obrigatoacuterios e outros opcionais Assim eacute necessaacuterio fornecer o

ldquoserviceNamerdquo (obrigatoacuterio) templateName (automatico) leasePeriod (automatico

mas o utilizador pode mudar) hostname (obrigatoacuterio) serverPoolNames (automaacutetico

mas o utilizador pode mudar) ownerEmailAddress (obrigatoacuterio) note (opcional)

billingCode (opcional) e customTemplateAttributes (opcional) A falta da API reside

neste uacuteltimo campo ldquocustomTemplateAttributesrdquo onde o utilizador poderia escolher

previamente o nuacutemero de servidores memoacuteria processadores tipo de endereccedilamento

das interfaces etc

computeServerIds do ServerPools

Uma informaccedilatildeo valiosa para a criaccedilatildeo de Pools de Servidores natildeo sabendo

os IDs dos computeServerIds natildeo eacute possiacutevel chegar aos Compute Resources para

poder adicionar recursos agraves Pools Outra falha detectada

59 Visatildeo global

Uma interface baseada no protocolo REST (Representational State Transfer) para

troca de informaccedilatildeo e direcionada aos recursos disponibilizados na Web apresenta-se

como vantagem quando estamos a lidar com isso mesmo recursos

Um conjunto de princiacutepios como HTTP e URIs que usando REST exploram

a arquitectura Web para o seu benefiacutecio usando a simplicidade natildeo soacute de transporte

como tambeacutem de protocolos

Espelhadas as vantagens do protocolo REST o presente webservice torna-se

assim mais simples em comunicaccedilatildeo e no acesso aos recursos sem o atraso da

sobrecarga apreciaacutevel na construccedilatildeo de mensagens do protocolo SOAP (Simple

Object Access Protocol) do MOE

Figura 45 - Mensagens SOAP na invocaccedilatildeo de processos do MOE

76

Figura 46 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull do WEBSERVICE

Comparativamente agrave implementaccedilatildeo em siacute no MOE existe um uacutenico menu de

acesso a todas as acccedilotildees possiacuteveis as operaccedilotildees de Grupo tornam-se assim cansativas

e desmotivadoras arrantando o utilizador para uma sequecircncia de cliques ateacute a acccedilatildeo

final Opccedilotildees como ediccedilatildeo do Grupo de Servidores natildeo existem tal eacute possiacutevel apenas

na ediccedilatildeo directa em cada Servidor No webservice basta um clique e eacute executada

uma acccedilatildeo de grupo como por exemplo desligar todo o Grupo de Servidores A ediccedilatildeo

do Grupo de Servidores eacute arrastada a todos os Servidores do Grupo apenas com uma

simples ediccedilatildeo de memoacuteria e processamento no Grupo

Como nas acccedilotildees de Grupo se o utilizador pretender uma acccedilatildeo numa

interface especiacutefica teraacute que percorrer a sequecircncia e cliques contrariamente ao

presente webservice com acccedilatildeo directa quer no menu lateral esquerdo quer na

visualizaccedilatildeo directa da informaccedilatildeo da interface

Toda a informaccedilatildeo a apresentar relativamente aos recursos eacute vasta requerendo

uma organizaccedilatildeo inteligente nessa apresentaccedilatildeo com opccedilotildees de

visualizaccedilatildeoocultaccedilatildeo dessa informaccedilatildeo se o utilizador assim o entender Acccedilotildees

possiacuteveis aquando da visualizaccedilatildeo de determinada informaccedilatildeo devem estar visiacuteveis e

acessiacuteveis No MOE isso eacute difiacutecil ou quase impossiacutevel porque a interface natildeo foi

desenhada desse modo a informaccedilatildeo apresentada torna-se desorganizada e

desmotivada a leitura

510 Resumo

Este capiacutetulo comeccedila por descreve a arquitectura usada e as suas camadas seguindo-

se um exemplo simplificado das relaccedilotildees da framework e plataformas (MOE e

VMware) Satildeo apresentados conceitos como rapidez organizaccedilatildeo e personalizaccedilatildeo

nm desenho guiado pela Interface do Utilizador Como nuacutecleo deste capiacutetulo eacute feita

toda a descriccedilatildeo da framework por camadas da Arquitectura apresentada

apresentaccedilatildeo loacutegicaserviccedilos e dados onde satildeo descritas todas as acccedilotildees passiveis de

serem executadas por recurso Por uacuteltimo os feedback tidos ao longo da

implementaccedilatildeo algumas questotildees consideradas importantes e finalmente uma visatildeo

global como foco

77

6 Consideraccedilotildees Finais

Esta tese resultou de uma proposta de tema de tese que a HP Portugal submeteu ao

Departamento de Informaacutetica da FCTUNL e que apoacutes algumas interacccedilotildees resultou no

tema intitulado Framework para a construccedilatildeo de ldquoportais de negoacuteciordquo para gestatildeo de

solicitaccedilotildees IaaS na HP Cloud

A primeira fase de Preparaccedilatildeo de Dissertaccedilatildeo ocorreu no 1ordm semestre do ano

lectivo de 20122013 e realizou-se essencialmente neste departamento pontuada por

esporaacutedicas reuniotildees na HP Portugal (Quinta da Fonte Paccedilo De Arcos) A segunda de

Elaboraccedilatildeo da Dissertaccedilatildeo decorreu imediatamente apoacutes a primeira e cumpriu-se

totalmente nas instalaccedilotildees da HP Portugal

Durante a primeira fase estudou-se o paradigma de computaccedilatildeo na cloud os seus

periacutemetros (modelos de implantaccedilatildeo) e modelos de serviccedilo Estudou-se tambeacutem a

virtualizaccedilatildeo tecnologia base da computaccedilatildeo na cloud desde a sua origem ao seu estado

actual Estudaram-se ainda as plataformas de virtualizaccedilatildeo de servidores com maior

presenccedila nos centros de dados o ESXi da VMware o XenServer da Citrix Systems e o

Hyper-V da Microsoft e ainda a tecnologia proprietaacuteria da HP designada HP Integrity

Virtual Machines Estudaram-se ainda as tecnologias de armazenamento abordando-se os

aspectos de integridade fiabilidade e desempenho oferecidos pelos Redundant Array of

Independent Disks as redes de armazenamento orientadas ao bloco Storage Area

Networks e aos ficheiros Network Attached Storage A virtualizaccedilatildeo do armazenamento

ndash tanto ao niacutevel da sua utilizaccedilatildeo para armazenar VMs como para constituir ldquodiscosrdquo de

VMs foi estudada em seguida Os aspectos da virtualizaccedilatildeo das redes foram tambeacutem

estudados

Abordados todos os conceitos e tecnologias base seguiu-se o estudo da HP Cloud

em particular a HP CloudSystem Matrix no seu ambiente Matrix Operating Environment

como infra-estrutura de trabalho da segunda parte da dissertaccedilatildeo um vasto conjunto de

componentes software e hardware que vatildeo desde os servidores ProLiant sistemas de

armazenamento EVA infra-estruturas de rede (switches e NICs) etc ateacute ao ambiente de

operaccedilatildeo Matrix com o vCenter Numa perspectiva mais conceptual estudamos os papeacuteis

dos ldquoutilizadores da cloudrdquo administrador arquitecto e consumidor de serviccedilos bem

como a funccedilatildeo do Cataacutelogo de Serviccedilos do Template e a possibilidade de definir

operaccedilotildees de orquestraccedilatildeo da infra-estrutura

Com a noccedilatildeo exacta do trabalho a implementar foram estudadas diversas

linguagens e paradigmas e suas vantagens e inconvenientes Finalmente foi apresentada

uma arquitectura da soluccedilatildeo e um cronograma para a segunda fase dos trabalhos O

esforccedilo dispendido na primeira fase foi por natildeo ter outra tarefa que natildeo fosse a realizaccedilatildeo

da preparaccedilatildeo de uma quase total dedicaccedilatildeo a esta

Durante a segunda parte desta dissertaccedilatildeo a full-time na HP foi desenvolvido um

protoacutetipo do framework totalmente funcional A realizaccedilatildeo conseguida cumpre na iacutentegra

78

a calendarizaccedilatildeo proposta na primeira fase conseguindo-se agrave custa de um razoaacutevel

esforccedilo adicional evitar atrasos e falhas

As linguagens usadas foram as jaacute descritas no capiacutetulo 5 e incluem na camada de

apresentaccedilatildeo do lado do cliente HTML CSS JavaScript JQUERY AJAX e do lado do

servidor JSP Na camada loacutegicaserviccedilos usou-se fundamentalmente Java e REST

O desenvolvimento do framework foi guiado por duas consideraccedilotildees uma do

lado do programador e com o pensamento em futuras actualizaccedilotildees e outra do lado do

utilizador com uma interface organizada intuitiva e de raacutepido acesso e acima de tudo que

possibilitasse a interacccedilatildeo com todos os recursos do Serviccedilo instanciado quer a niacutevel de

grupos quer a niacutevel dos recursos individuais Assim na oacuteptica do programador

organizou-se toda a programaccedilatildeo em torno do ldquorecursordquo como entidade fundamental em

todas as camadas em que ldquoelerdquo existe Deste modo actualizaccedilotildees ao framework podem

ser feitas olhando somente para o recurso a actualizar quer a alteraccedilatildeo seja ao niacutevel da

informaccedilatildeo ou das acccedilotildees que este suporta

Em cada uma das duas vertentes programador e utilizador foram implementadas

diversas ajudas para que estes melhor entendam toda a estrutura e implementaccedilatildeo o

referido apoio estaacute disponiacutevel no proacuteprio protoacutetipo e em manuais de ajuda em anexo a

este relatoacuterio

61 Conclusotildees

A primeira conclusatildeo que apresentamos sem falsas modeacutestias eacute a de que o portal eacute

sob o ponto de vista dos resultados conseguidos e face ao objectivo um sucesso Natildeo

soacute eacute operacionalmente funcional cumprindo o objectivo essencial mas tambeacutem o eacute na

usabilidade Destacamos sumariamente alguns aspectos desta uacuteltima

A visualizaccedilatildeo da informaccedilatildeo assim como as acccedilotildees possiacuteveis satildeo guiadas

pelos recursos o utilizador apenas selecciona o recurso e tem tudo disponiacutevel

informaccedilatildeo e acccedilotildees que pode executar tudo associado a esse e apenas esse

recurso

No menu lateral esquerdo do protoacutetipo o utilizador estaacute sempre a visualizar a

ldquoposiccedilatildeordquo de um recurso na hierarquia tornando-se assim muito faacutecil executar

acccedilotildees de grupo ou acccedilotildees individualizadas bastando para isso um simples

clique

Na versatildeo 5 da API do MOE detectamos algumas insuficiecircncias que devem

ser corrigidas em futuras versotildees Nomeadamente

Haacute atributos dos templates cuja consulta apenas eacute possiacutevel ao administrador

quando satildeo fundamentais para uma melhor experiecircncia do utilizador

referimo-nos por exemplo aos valores maacuteximos de um dado recurso (eg

nuacutemero de maacuteximo de CPUs custo de um dado disco) natildeo serem

disponibilizados aquando da criaccedilatildeo de um Serviccedilo Note-se que o protoacutetipo

79

ultrapassa esta limitaccedilatildeo executando o ldquoinitrdquo da sessatildeo como administrador e

carregando nessa altura todos esses atributos

Para aceder agrave consola de um servidor eacute necessaacuterio conhecer o ID da VM o

que natildeo eacute fornecido pela API MOE o protoacutetipo ultrapassou esta limitaccedilatildeo

usando a API disponibilizada pelo VMware vCenter

Em conclusatildeo oferecemos um protoacutetipo amigaacutevel intuitivo com uma curva

de aprendizagem muito curta organizado na vasta informaccedilatildeo a disponibilizar e

usando na sua realizaccedilatildeo tecnologias estado-da-arte no formato de informaccedilatildeo XML

e JSON Um protoacutetipo praacutetico no que ao acesso e utilizaccedilatildeo dos recursos diz respeito

objectivos uacuteltimos de todo este trabalho

Fica assim aberta uma porta para a equipa de desenvolvimento de software da

HP nas proacuteximas decisotildees sobre o caminho a seguir no desenvolvimento de novas

implementaccedilotildees e futuras versotildees da API O protoacutetipo foi submetido a testes de

usabilidade que podem ser considerados em futuras integraccedilotildees

62 Trabalho futuro

Um framework que se queira actualizado nunca pode ser considerado acabado novas

actualizaccedilotildees em resposta a solicitaccedilotildees do mercado ou a alteraccedilotildees na(s) API(s) nos

hipervisores ou decorrentes da necessidade de ldquohibridizaccedilatildeordquo com outras clouds

fazem desse framework um trabalho actualizado mas nunca terminado

No desenvolvimento deste framework tivemos acesso a uma infra-estrutura

que como eacute natural (pela complexidade do software necessaacuterio) apenas incluiacutea

alguma das opccedilotildees do vasto leque HP CSM em particular a) apenas dispunha da

pilha de virtualizaccedilatildeo VMware (ESXi e vCenter) e b) natildeo dispunha do moacutedulo

Storage Provisioning Manager (SPM)

Do exposto surgem imediatamente duas propostas para trabalho futuro a

primeira passa por dotar o portal de uma capacidade de ldquoidentificaccedilatildeo automaacuteticardquo

da(s) plataformas de virtualizaccedilatildeo que estatildeo acessiacuteveis ao utilizador disponibilizando

as ferramentas adequadas ndash por exemplo se o utilizador apenas tivesse acesso agrave infra-

estrutura Hyper-V teria apenas o iacutecone da consola Hyper-V (em vez da consola

VMware) a segunda seria ampliar as funcionalidades do framework para suportar a

interacccedilatildeo com a API do SPM cumprindo assim um dos objectivos que era permitir

ao consumidor IaaS escolher as tecnologias de armazenamento ndash SSD em vez de FC

FCoE em vez de iSCSI etc

Uma outra avenida para trabalho futuro seria a avaliaccedilatildeo e eventual realizaccedilatildeo

do framework sobre a API OpenStack

80

63 Resumo

Neste capiacutetulo foi descrito todo o trabalho efectuado nesta dissertaccedilatildeo bem como os

resultados obtidos e ainda os ldquoalertasrdquo relativos a aspectos que consideramos

merecedores de atenccedilatildeo por parte da HP Tal soacute foi possiacutevel pelo detalhe com que

toda a infra-estrutura e API foram estudadas e testadas Foram referidas as principais

contribuiccedilotildees e destacaram-se as melhorias relativamente ao portal actualmente

disponibilizado pela HP

Finalmente deixam-se algumas propostas para trabalhos futuros

81

Referecircncias bibliograacuteficas

[1] Understanding the HP CloudSystem Reference Architecture [Online]

Available httph20195www2hpcomV2GetPDFaspx4AA0-5550ENWpdf

[2] Amazon Elastic Compute Cloud (Amazon EC2) [Online] Available

httpawsamazoncomptec2

[3] GoGrid Cloud Hosting [Online] Available httpwwwgogridcom

[4] Eucalyptus [Online] Available httpwwweucalyptuscom

[5] Google AppEngine [Online] Available httpsdevelopersgooglecom

appengine

[6] Microsoft Azure [Online] Available httpwwwwindowsazurecompt-br

[7] Google Apps [Online] Available httpwwwgooglecomenterpriseapps

business

[8] Agensen O et al The Evolution of an x86 Virtual Machine Monitor ACM

Operating Systems Review Vol 44 Number 4 December 2010 pp 3-18

[9] VMware Virtualization Products for Virtual Servers Virtual Desktops and Data

Center [Online] Available httpwwwvmwarecomproducts

[10] Comparison of Platform Virtual Machines Wikipedia the Free Encyclopedia

Dezembro 12 2012 [Online] Available httpenwikipediaorgwindexphp

title=Comparison_of_platform_virtual_machinesampoldid=527691634

[11] Vsphere-51-configuration-maximums VMware Inc 2012

[12] Barham P et al Xen and the art of virtualization In Proceedings of the

nineteenth ACM symposium on Operating systems principles (SOSP03) 2003

pp 164-177

[13] Zhang X and Dong Y Optimizing Xen VMM Based on Intelreg Virtualization

Technology In Proceedings of the 2008 International Conference on Internet

Computing in Science and Engineering (ICICSE 08) IEEE Computer Society

pp 367-374

[14] CTX134582 - XenServer 610 Release Notes - Citrix Knowledge Center

[Online] Available httpsupportcitrixcomarticleCTX134582

[15] Haga Y et al Windows Server 2008 R2 Hyper-V Server Virtualization

Fujitsu Sci Tech J Vol 47 No 3 2011 pp 340-355

[16] Feature Comparison Windows Server 2008 R2 Hyper-V and Windows Server

2012 Hyper-V Windows Server Microsoft Corporation 2012

[17] Hyper-V Scalability in Windows Server 2012 [Online] Available

httptechnetmicrosoftcomen-uslibraryjj680093aspx

82

[18] Patterson D et al A Case for Redundant Arrays of Inexpensive Disks (RAID)

Proceedings of the 1989 ACM-SIGMOD International Conference on the

Management of Data ACM 1989 pp 109-116

[19] Whitehouse S The GFS2 Filesystem Proceedings of the Linux Symposium

June 27th-30th 2007 Ottawa Canada

[20] Schmuk F and Haskin R GPFS A Shared-Disk File System for Large

Computing Clusters Proceedings of the Conference on File and Storage

Technologies (FASTrsquo02) 28ndash30 January 2002 Monterey CA pp 231ndash244

[21] Vaghani S Virtual Machine File System ACM Operating Systems Review

Vol 44 Number 4 December 2010 pp 57-70

[22] Pawlowski B et al NFS version 3 design and implementation Proceedings of

the Summer USENIX Conference June 1994 pp 137-152

[23] Zhou S Virtual Networking ACM Operating Systems Review Vol 44

Number 4 December 2010 pp 80-85

[24] HP Sitescope 112 Data Sheet [Online] Available

httpwwwhpcomhpinfonewsroompress_kits2012HPDiscover2012HP_Sit

escope_112_Data_Sheetpdf

[25] Veritas Storage Foundationtrade and High Availability Solutions Application

Note Support for HP-UX Integrity Virtual Machines Symantec Corporation

2011

[26] Kennedy S et al StoRHm a protocol adapter for mapping SOAP based Web

Services to RESTful HTTP format Electronic Commerce Research September

2011 Volume 11 Issue 3 pp 245-269

[27] Silvia Schreier Modeling RESTful applications In Proceedings of the Second

International Workshop on RESTful Design (WS-REST 11) Cesare Pautasso

and Erik Wilde (Eds) ACM New York NY USA 2011 pp 15-21

[28] Axioms [Online] Available httpwwww3orgDesignIssuesAxiomshtml

[29] Sandoval Jose Restful Java Web Services Master core REST concepts and

create RESTful web services in Java Packt Publishing November 2009 pp 43-

179

[30] Burke Bill Restful Java with Jax-RS OrsquoReilly Media Inc November 2009 1st

ed

[31] Jersey 117 User Guide [Online] Available

httpsjerseyjavanetdocumentation117indexhtml

[32] Jerome Louvel Thierry Templier and Thierry Boileau Restlet in Action

Developing Restful Web Apis in Java Manning Publications Co 2012

Greenwich CT USA pp 1-165

83

[33] Johnson Sally Cloud providers can enable self-service IT with a cloud portal

[Online] Available httpsearchcloudprovidertechtargetcomfeatureCloud-

providers-can-enable-self-service-IT-with-a-cloud-

portalasrc=EM_ERU_22442845amputm_medium=EMamputm_source=ERUamputm

_campaign=20130709_ERU20Transmission20for200709201320(User

Universe20607658)_myka-reportstechtargetcomampsrc=5144272

[34] jQuery EasyUI framework [Online] Available httpwwwjeasyuicom

[35] jQuery UI Library [Online] Available httpjqueryuicomdemos

[36] jQuery API [Online] Available httpapijquerycom

84

Anexo A (Virtualizaccedilatildeo Vantagens e inconvenientes)

Virtualizaccedilatildeo Vantagens e inconvenientes

A virtualizaccedilatildeo tem vindo a crescer e a ganhar terreno principalmente nas meacutedias e

grandes empresas Tem vindo a demonstrar a sua mais-valia na gestatildeo das TIs uma

mudanccedila completa e um aliviar de trabalho para administradores e gestores

A1 Vantagens da tecnologia

Um mundo onde passa a ser possiacutevel executar software incompatiacutevel com o SO host

executar SOrsquos distintos num mesmo conjunto de hardware isoladamente sem

interferecircncias etc uma mudanccedila draacutestica na tradicional visatildeo de um SO para um

conjunto de hardware apenas

Seguranccedila Dentro de um servidor podemos ter vaacuterios VMs isoladas e

independentes do SO host Tal garante que qualquer interferecircncia no SO host

(errosataques acidentais ou intencionais) natildeo afecte as VMs nele instaladas

Isolamento Qualquer processo de uma VMs natildeo pode interferir nos

processos de outra VMs este isolamento intimamente ligado agrave seguranccedila

vem de encontro a um dos princiacutepios baacutesicos aquando da implementaccedilatildeo

desta tecnologia Esta vantagem garante-nos confidencialidade entre VMs

assim como integridade e contenccedilatildeo de erros entre VMs (seguranccedila)

Custos A quantidade de diferentes servidores existentes para diferentes SOrsquos

e aplicaccedilotildees eacute agora compactada num mesmo hardware onde existe a

possibilidade de termos vaacuterias VMs com diferentes SOrsquos com as mais

variadas aplicaccedilotildees Temos um tudo-em-um que vai reduzir os custos de uma

organizaccedilatildeo na altura do upgrade bastando para isso o upgrade de um uacutenico

servidor que suporta todos os serviccedilos da organizaccedilatildeo

Energia Propriedade intimamente ligada aos custos Com a compactaccedilatildeo do

hardware satildeo dispensando todos os demais equipamentos quer de

sustentaccedilatildeo de toda uma infra-estrutura quer os proacuteprios equipamentos de

apoio Eacute assim conseguida uma economia de energia bastante significativa

para a organizaccedilatildeo

Espaccedilo Fiacutesico A compactaccedilatildeo eacute inerente aacute diminuiccedilatildeo do espaccedilo ocupado

Um Data Center tem sempre o problema de ldquofalta de espaccedilordquo e por isso a

compactaccedilatildeo de hardware associada agrave virtualizaccedilatildeo vem resolver natildeo soacute este

problema de espaccedilo como tambeacutem a proacutepria refrigeraccedilatildeo e circulaccedilatildeo de ar

dentro do Data Center

85

Hardware Estaacute provado que cada servidor em meacutedia gasta cerca de 30 do

seu poder de processamento para executar a funccedilatildeo para a qual foi

implementado Assim sendo estamos na presenccedila de um subaproveitamento

deste poder computacional A ideia anterior aacute virtualizaccedilatildeo de adquirir um

novo servidor para uma nova aplicaccedilatildeo cai agora por terra com o objetivo de

aproveitar ao maacuteximo o poder computacional de cada servidor aproveitando

melhor todo esse hardware disponiacutevel

Implementaccedilatildeo de SOrsquos A associaccedilatildeo de um SO por cada maacutequina fica

agora tambeacutem em desuso uma vez que a virtualizaccedilatildeo possibilita-nos a

instalaccedilatildeo de vaacuterios SOrsquos em cada maacutequina melhor aleacutem de vaacuterios SOrsquos

estes tambeacutem podem ser diferentes entre si (Windows linuz etc) Esta

vantagem permite assim instalar SOrsquos cujo hardware original (host) nem

sequer os suportam como o caso do SO MAC (Macintosh Apple) em

hardware x86 ou SO Windows em notebooks (Apple)

Migraccedilatildeo A camada que suporta a virtualizaccedilatildeo permite-nos esta mais-valia

A migraccedilatildeo natildeo soacute do ambiente em si como do proacuteprio hardware bastando

para isso uma simples coacutepia entre discos virtuais

Testes de software e hardware A virtualizaccedilatildeo simula tanto um software

como um hardware logo testes em software firmware e hardware podem ser

realizados nestas VMs construiacutedas especificamente para esse fim Estes

primeiros testes podem ser efectuados sem a necessidade de um SO instalado

de raiz ou mesmo a presenccedila fiacutesica do hardware especiacutefico

Reduccedilatildeo de administradores e gestores Esta compactaccedilatildeo associada agrave

virtualizaccedilatildeo como jaacute referido reduz espaccedilo ocupado reduz hardware reduz

configuraccedilotildees e gestatildeo individual abrindo caminho agrave centralizaccedilatildeo Assim a

reduccedilatildeo da equipa responsaacutevel pela administraccedilatildeo e gestatildeo eacute evidente

A2 Desvantagens da tecnologia

Satildeo notoacuterias as vantagens da virtualizaccedilatildeo mas problemas como incompatibilidades entre

aplicaccedilotildees e perda de desempenho pelo simples adicionar de mais uma camada agrave

arquitectura teratildeo que ser consideradas aquando da escolha

Seguranccedila A seguranccedila neste caso prende-se agrave proacutepria camada adicionada

agrave arquitectura (VMM ou hypervisor) Se o proacuteprio SO host tiver algum

problema de raiz implementado ou adquirido tambeacutem o proacuteprio VMM

contemplaraacute este erro assim como todas as VMs instaladas nesse SO host

Gestatildeo O principal problema da implementaccedilatildeo desta tecnologia eacute a gestatildeo

da proacutepria virtualizaccedilatildeo os ambientes virtualizados precisam de ser

instanciados geridos configurados etc Eacute neste ponto que se prende a

preocupaccedilatildeo das organizaccedilotildees pelos seus investimentos nesta tecnologia

trata-se de uma opccedilatildeo que por norma eacute licenciada

86

Desempenho Mais uma camada de software (VMM ou hypervisor) implica

mais processamento Incerteza da quantidade de VMsprocessador sem que

seja afectado a QOS (Quality Of Service) e a garantia dessa emulaccedilatildeo em

termos da disponibilizaccedilatildeo maacutexima que o host pode dispensar como eacute o caso

do processamento e memoacuteria graacutefica

87

Anexo B (Virtualizaccedilatildeo Arquitectura)

Virtualizaccedilatildeo Arquitectura

A base de uma arquitectura de virtualizaccedilatildeo eacute o VMM ou hypervisor o Virtual Machine

Manager responsaacutevel pela criaccedilatildeo gestatildeo isolamento e preservaccedilatildeo do estado da VM

assim como toda a orquestraccedilatildeo do acesso aos recursos do sistema host

O VMM permite que seja possiacutevel a execuccedilatildeo de vaacuterios SOrsquos em VMs contudo

estaacute limitado a SOrsquos que possam ser executados nativamente no processador fiacutesico do

sistema Essa valecircncia torna-se hoje uma das maiores procuras de todos os sistemas de

virtualizaccedilatildeo

Em termos de implementaccedilotildees arquitecturais temos VMMrsquos Tipo-2 modelo

ldquohybridordquo e Tipo-1 O VMM ou hypervisor do Tipo-2 figura 47 eacute implementado dentro

do proacuteprio SO real (Linux ou Windows - hostsystem) e executando paralelamente eacute mais

um processo Neste caso trata-se de uma camada hypervisor proacutepria como um segundo e

distinto niacutevel de software Os sistemas operativos convidados correm num terceiro niacutevel

acima do hardware Nesta arquitectura o SO guest acede directamente o SO host (nativo)

por intermeacutedio de uma API cedida pelo hipervisor ao SO guest O SO guest acede assim

ao hardware atraveacutes de um device driver especiacutefico pelo hypervisor e pelo SO host sendo

por isso uma implementaccedilatildeo que apresenta menor desempenho e maior sobrecarga ao

sistema O Java VM VMware Workstation VMware Player Sun Microsystems

VirtualBox e KVM satildeo alguns exemplos que usam esta arquitectura

Figura 47 - VMM ou hypervisor do Tipo-2

No modelo rdquohiacutebridordquo figura 48 o VMM natildeo eacute executado uma camada acima do

SO host (ou abaixo) mas sim concorrentemente (peer) com o SO host e natildeo depende de

instruccedilotildees especiacuteficas no processador Microsoft Virtual Server 2005 R2 e Virtual PC satildeo

alguns exemplos que usam esta arquitectura

88

Figura 48 - VMM ou hypervisor do ldquohiacutebridordquo

No VMM ou hypervisor do Tipo-1 figura 49 eacute executado directamente no

hadware a camada mais baixa de todas as particcedilotildees da VM sem necessidade da

existecircncia de qualquer SO host O SO guest acede directamente ao hardware atraveacutes do

hipervisor tal eacute possiacutevel pelas modificaccedilotildees feitas no SO guest e no hipervisor Esta eacute a

implementaccedilatildeo que atinge niacuteveis mais elevados de eficiecircncia por isso permite uma maior

densidade de VMs eacute a implementaccedilatildeo claacutessica de arquitecturas VM VMware

ESXESXi Citrix XEN Server e Microsoft Hyper-V satildeo alguns exemplos que usam esta

arquitectura

Figura 49 - VMM ou hypervisor do Tipo-1

89

Anexo C (Virtualizaccedilatildeo Tipos de Implementaccedilatildeo)

Virtualizaccedilatildeo Tipos de Implementaccedilatildeo

C1 Emulaccedilatildeo de Hardware

Neste tipo de virtualizaccedilatildeo figura 50 pretende-se a virtualizaccedilatildeo completa do hardware

o seu comportamentoestados de execuccedilatildeo (ciclos de clock conjunto de instruccedilotildees

pipeline memoacuteria cache) por isso eacute a forma de virtualizaccedilatildeo mais complexa Todo o

hardware da VM eacute criado via software no sistema hospedeiro para emulaccedilatildeo do hardware

proposto criando assim grandes overheads7 com fracos desempenhos comparativamente

ao hadware real Este tipo de virtualizaccedilatildeo apresenta mais-valias como o facto de poder

ser usado um SO guest sem qualquer modificaccedilatildeo ou adaptaccedilatildeo os programadores podem

fazer testes de firmware e hardware em hardware que natildeo o real nem necessitam da

existecircncia deste e ainda a valecircncia de ser possiacutevel emular hardware que na maior parte

das vezes eacute bastante diferente do hardware real

Figura 50 - Emulaccedilatildeo de Hardware

C2 Virtualizaccedilatildeo completa

A virtualizaccedilatildeo completa figura 51 tambeacutem conhecida como ldquonativardquo eacute em todo igual a

emulaccedilatildeo de hardware excepto agrave natildeo representatividade dos estados de execuccedilatildeo do

hardware emulado por esse facto esta teacutecnica de virtualizaccedilatildeo apresenta resultados mais

satisfatoacuterios no seu desempenho mas ainda aqueacutem dos SOrsquos em execuccedilatildeo nativa Esta

teacutecnica permite assim a execuccedilatildeo de todos os SOrsquos originais sem alteraccedilatildeo fornecendo

uma reacuteplica de todo o hardware dessa maacutequina levando-os a ter a ilusatildeo de estar a

executar directamente no hardware

Os grandes obstaacuteculos desta teacutecnica foram desde logo as diferenccedilas arquitecturais

e os comportamentos particulares das instruccedilotildees muitas impossiacuteveis de serem emuladas

ou capturadas pois muitas dependem do niacutevel de privileacutegio Assim para lidar com a

7 Overhead Diferenccedila de performance (latecircncialentidatildeo) no SO guest

90

heterogeneidade de processadores e comportamento de instruccedilotildees usa-se uma abordagem

chamada de Traduccedilatildeo Binaacuteria Nesta abordagem a VMM analisa todas as instruccedilotildees da

VM quer instruccedilotildees natildeo privilegiadas que depois acedem ao hardware com drivers

geneacutericos quer instruccedilotildees privilegiadas e quando na presenccedila destas faz a emulaccedilatildeo e

reescreve dinamicamente o coacutedigo Este teste a todas as instruccedilotildees acarreta uma latecircncia

significativa no desempenho

Figura 51 - Virtualizaccedilatildeo Completa

C3 Para-Virtualizaccedilatildeo (PV)

A para-virtualizaccedilatildeo ou virtualizaccedilatildeo assistida por SO figura 52 eacute uma alternativa aacute

virtualizaccedilatildeo completa O SO guest eacute modificado (perdendo a portabilidade) para

melhorar a eficiecircncia usando todos os ldquolimitesrdquo do sistema A ideia eacute acelerar a execuccedilatildeo

das instruccedilotildees e para isso a VMM testa apenas instruccedilatildeo que podem alterar o estado do

sistema (instruccedilotildees sensiacuteveis) aumentando significativamente o desempenho Esta

substituiccedilatildeo de uma instruccedilatildeo sensiacutevel pelo tratador de interrupccedilatildeo de software eacute chamada

de hypercall satildeo instruccedilotildees executadas atraveacutes de traduccedilatildeo binaacuteria O SO guest eacute assim

modificado para chamar a VMM sempre que estamos na presenccedila dessas instruccedilotildees

sensiacuteveis

Esta alternativa de virtualizaccedilatildeo com a modificaccedilatildeo do kernel tambeacutem permite

que o SO guest aceda directamente aos recursos de hardware com os drivers da proacutepria

maacutequina virtual e deste modo natildeo usando os drivers geneacutericos (virtualizaccedilatildeo completa)

usam a capacidade total dos dispositivos Assim a para-virtualizaccedilatildeo apresenta um ganho

significativo em relaccedilatildeo agrave virtualizaccedilatildeo completa compensando as modificaccedilotildees

implementadas no SO guest

91

Figura 52 - Para-Virtualizaccedilatildeo

C5 Virtualizaccedilatildeo assistida por Hardware (HVM)

As teacutecnicas descritas apresentam alguns inconvenientes que enfraquecem o desempenho

como o teste a todas as instruccedilotildees e traduccedilatildeo das instruccedilotildees privilegiadas na Virtualizaccedilatildeo

Total e a alteraccedilatildeo do SO guest na Para-Virtualizaccedilatildeo agarrando o SO aacute arquitectura

limitando a compatibilidade e suporte

A Virtualizaccedilatildeo assistida por Hardware figura 53 eacute aplicada directamente nos

processadores e restante hardware satildeo usadas extensotildees de virtualizaccedilatildeo do processador e

hardware para virtualizaccedilatildeo dos guestrsquos fornecendo assim um recurso que permita ao

hypervisor executar ainda mais proacuteximo do hardware As instruccedilotildees sensiacuteveis satildeo agora

entregues sem a necessidade da traduccedilatildeo binaacuteria aumentando significativamente o

desempenho mas ainda um pouco mais lento que a PV A opccedilatildeo do uso de drivers como a

PV torna-se um avanccedilo notoacuterio neste tipo de implementaccedilatildeo Natildeo emular IO e

armazenamento e ainda oferecer uma plataforma de VMs com SOrsquos natildeo modificados eacute

uma junccedilatildeo das mais-valias dos dois mundos (PVHVM ou PV-on-HVM drivers) Torna-

se assim possiacutevel por exemplo obter um oacuteptimo desempenho no conjunto SO guest

Windows + XenServer

Figura 53 - Virtualizaccedilatildeo assistida por Hardware

C4 Recompilaccedilatildeo dinacircmica

Esta teacutecnica de virtualizaccedilatildeo recompilaccedilatildeo dinacircmica (dynamic recompilation -

DynaRecs) tambeacutem denominada como traduccedilatildeo dinacircmica (dynamic translation) eacute

bastante utilizada Traduz as instruccedilotildees de um determinado formato para outro formato

durante a proacutepria execuccedilatildeo do programa permitindo assim a criaccedilatildeo do ambiente nativo

92

do programa Essa traduccedilatildeo eacute relativa a instruccedilotildees do SO guest e das suas aplicaccedilotildees

mais proacuteximas do SO host Assim o VMM ou hipervisor analisa reorganiza e traduz as

sequecircncias de instruccedilotildees emitidas pelo SO guest em novas sequecircncias de instruccedilotildees

(coacutedigo de mais alto niacutevel) compiladas na linguagem nativa do sistema host para que esse

coacutedigo gerado seja mais eficiente

Essa eficiecircncia de coacutedigo prende-se com adaptaccedilatildeo de instruccedilotildees agrave interface ISA

do sistema real detectar e tratar instruccedilotildees sensiacuteveis e ainda analisar reorganizar e

optimizar sequecircncias de instruccedilotildees do SO guest com o fim uacuteltimo da eficiecircncia e

desempenho da sua execuccedilatildeo Nesta ultima anaacutelise eacute usual guardar em cache a traduccedilatildeo

dos blocos de instruccedilotildees frequentes melhorando assim ainda mais o desempenho Eacute

notoacuteria a vantagem desta teacutecnica como o acesso a coacutedigo em tempo de execuccedilatildeo natildeo

alcanccedilaacutevel a um compilador estaacutetico mas em contrapartida tambeacutem exige muito mais

processamento

93

Anexo D (Detalhes da plataforma e restriccedilotildees da VMware)

Detalhes da plataforma e restriccedilotildees da VMWARE

Tabela 13 - Dados gerais VMWARE

Criador VMM Tipo Finalidade Uso Host VMs

host

Servidor

dedicado

Gestatildeo

Central

Gestatildeo

Remota Guest OSrsquos Host OSrsquos Guest Licenccedila

VMware

Player Tipo 2

Descktop

Utilizadores finais

Criar

Testar

Seguranccedila

Intel e AMD

(32-64 bits)

1-2 Natildeo Natildeo Natildeo

Intel e AMD

(32-64 bits)

Windows Windows

Windows Server 2012 8 Server 2008 R2 7

Server 2008 Vista Server 2003 XP 2000 NT

40 ME 98 95 MS-DOS 622 e Windows

31x

Linux

Asianux Server CentOS Debian Fedora

Mandrake Mandriva Novell openSUSE

Oracle Enterprise Red Hat Enterprise Red

Hat Sun Java Desktop System SUSE

Enterprise SUSE Turbolinux Ubuntu

UNIX e outros OSrsquos

Mac OS X Server eComStation FreeBSD

IBM OS2 Warp Netware Solaris SCO

Livre

Server GSX Tipo 2

Consolidar

Testar

Desenvolver

Windows Linux Proprietaacuterio

(desc)

Workstation Tipo 2 Criar

Testar

Desenvolver

lt 10 Natildeo Natildeo Natildeo Windows Linux

Proprietaacuterio

Fusion Tipo 2 Mac OS X

Proprietaacuterio

vSphere

ESXi Tipo 1

Datacenter

Infra-estrutura Cloud

Consolidar

Disponibilidade

Cloud

Criar

Testar

Desenvolver

512 Sim Natildeo Sim Sem OS Livre

Proprietaacuterio

ESX Tipo 1 512 Sim Sim Sim Sem OS Proprietaacuterio

(desc)

Tabela 14 - Detalhes VMWARE

VMM

(Configuraccedilotildees maacuteximas) Cluster Hosts VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

VMware Player 50 - - - 4 8 Sem lim 8GB (32bits)

64GB (64bits) NA (2TB) - -

VMware Server 20 - - 64 16 2 Sem lim 8GB NA 4 IDE + 60 SCSI (950GB) - descontinuado

VMware Workstation 90 - - - igual 8 Sem lim 8GB (32bits)

64GB (64bits) NA 4 IDE + 60 SCSI (2TB)

10 NICs SO Windows

255 NICs SO Linux Snapshots

VMware

vSphere 51

VM - - - - 64 - 1TB - 4 IDE + 60 SCSI (2TB) 10 NICs 128MB graacutefica

ESX ESXi 32 - 512host

4000cluster

32 fisicos

160 logicos 32 2TB 1TB

2048 vdisc

(64TB) 4 IDE + 60 SCSI (2TB)

32portas Ethernet a 1Gb

4 NICs fiacutesicos a 10Gb

Portas Infiniband etc

-

vCloud Director - 2000 30000 - - - - 10000 DC - 10000 -

vCenter Server - 1000 15000 - - - - 500 - 10 vCenter Servers ligados -

94

Anexo E (Detalhes da plataforma e restriccedilotildees da Citrix)

Detalhes da plataforma e restriccedilotildees da Citrix

Tabela 15 - Dados gerais Citrix

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Xensource Xen Tipo 1

Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

x86

x86-64

IA-64

x86

x86-64

IA-64

NetBSD Linux Solaris

FreeBSD NetBSD Linux Solaris Windows XP Windows Server 2003 Plan 9 Versatildeo 61

Ubuntu CentOS

Red Hat Enterprise Linux

Oracle Enterprise Linux

Windows 8 (32-bit64-bit)

Windows Server 2012

GPL ndash livre

Advanced Edition - Proprietaacuterio

Enterprise Edition - Proprietaacuterio

Platinum Edition - Proprietaacuterio

Tabela 16 - Dados detalhados Citrix

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Redehost Outros

Host VM Host VM Host VM

XenServer 61 16 150host

1600cluster

160 loacutegicos

900 virtuais 32 1 TB 128 GB 512 virtuais

16 virtuais

NFS e LVM (2TB)

7 NICrsquos virtuaisVM

16 NICrsquos fiacutesicos

512 NICrsquos virtuais

800 VLANrsquos

4 GPUshost

95

Anexo F (Detalhes da plataforma e restriccedilotildees da HP)

Detalhes da plataforma e restriccedilotildees da HP

Tabela 17 - Dados gerais HP

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Hewlett-Packard Integrity Virtual Machines Tipo 1

Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

IA-64 IA-64 HP-UX 11i v3

HP-UX 11i v2 e v3 Windows Server 2003 (SP1 e SP2 RHEL AP 44 45 SLES 10 SP

Proprietaacuterio

Tabela 18 - Dados detalhados HP

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

HP Integrity Virtual Machines 61 512 HP-UX limit 16 HP-UX limit 128GB HP-UX limit 4 IDE + 256 SCSI (2TB) 62 NICrsquos

96

Anexo G (Detalhes da plataforma e restriccedilotildees da Microsoft)

Detalhes da plataforma e restriccedilotildees da Microsoft

Tabela 19 - Dados gerais Microsoft

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Microsoft

Virtual PC 2007 Tipo 2

Criar

Testar

Hobby

Estaccedilatildeo de trabalho

Negoacutecios

x86 x86-64 x86

Windows Vista (Business

Enterprise Ultimate) XP Pro XP

Tablet PC Edition

DOS Windows OS2

Linux (SUSE Xubuntu) OpenSolaris (Belenix) Proprietaacuterio

Virtual PC 7 for Mac Tipo 2 PowerPC x86 Mac OS X Windows OS2

Linux Proprietaacuterio

Virtual Server 2005 R2 Tipo 2 Server

Server farm x86 x86-64 x86 Windows 2003 XP

Windows NT 2000 2003

Linux (Red Hat SUSE) Proprietaacuterio

Hyper-V Server 2008 R2 Tipo 1 Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

x86-64

(Intel VT-x ou AMD-V)

x86-64

x86 (ateacute 8 CPUs fiacutesicos)

Windows 2008 com Hyper-V

Windows Hyper-V Server

Windows 2000 2003 e 2008 Windows XP e Vista

Linux (SUSE 10) Proprietaacuterio

Hyper-V Server 2012 Tipo 1

x86-64

(Intel VT-x ou AMD-V apenas

para RemoteFX)

x86-64

(ateacute 64 CPUs fiacutesicos) Windows 2012 com Hyper-V

Windows NT

Linux (SUSE10 RHEL 6 CentOS 6) Proprietaacuterio

Tabela 20 - Dados detalhados Microsoft

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

Hyper-V Server 2008 R2 16 384host

1000cluster

8 fiacutesicos

64 loacutegicos

512 virtuais

4

1 TB 64GB No limit 4 IDE + 256 SCSI (2TB) - -

Hyper-V Server 2012 64 1024host

8000cluster

64 fiacutesicos

320 loacutegicos

2048 virtuais

64

4 TB 1 TB No limit

4 IDE + 256 SCSI

(VHD 2 TB)

(VHDX 64 TB)

32 NICrsquos

10GB migraccedilatildeocluster

REST

powershell

snapshots

suporte VMConnect

para RemoteFX

97

Anexo H (Ambiente de armazenamento VMware ESXi e Citrix Xen)

Ambiente de armazenamento VMware ESXi e Citrix Xen

H1 VMware (VmWare In)

VMFS (Virtual Machine File System) eacute um sistema de ficheiros num Cluster eacute

proprietaacuterio da VMware e foi optimizado para operaccedilotildees de entrada e saiacuteda (IO) com

ficheiros grandes realidade das imagens das maacutequinas virtuais Representa uma soluccedilatildeo

escalaacutevel e de alto desempenho para hospedagem de VMs no bloco de armazenamento

oferecendo partilha e isolamento O serviccedilo VMFS constitui a base de aplicaccedilotildees num

cluster VMware como vMotion (onde existe partilha de dados) Storage VMotion

agendamento de recursos distribuiacutedos alta disponibilidade e toleracircncia a falhas Os

metadados da maacutequina virtual satildeo serializados para ficheiros e o software VMFS fornece

uma interface POSIX (Portable Operating System Interface) - API com a opccedilatildeo de

consola Command Line (CL) e utilidades de interfaces) - para cluster com operaccedilotildees

seguras de gestatildeo de maacutequinas virtuais

Este tipo de armazenamento de dados pode ser feito em qualquer dispositivo de

armazenamento com base em ligaccedilotildees de armazenamento como

Armazenamento de ligaccedilatildeo direta (SCSI local) ligaccedilatildeo local direta aos discos

de armazenamento interno ou externo geralmente SATA IDE (Integrated

Drive Electronics) EIDE etc

Fibre Channel protocolo de transporte usado em SANrsquos onde o Fibre Channel

encapsula comandos SCSI sobre o protocolo FC

FCoE O uso do FC sobre Ethernet onde o traacutefego FC eacute encapsulado em

quadros Ethernet

iSCSI iSCSI transporta comandos SCSI sobre redes IP

IP ligaccedilatildeo IP aos datastores em NAS suportados pelo vSphere ESX

Vista do armazenamento pelo SO Guest

Uma VM na arquitectura ESX usa espaccedilo em disco para armazenar os seus

metadados de configuraccedilatildeo e os proacuteprios dados um pequeno nuacutemero de imagens

aproximadamente 30 a 100 por VM O espaccedilo de armazenamento em disco contem estes

ficheiros de texto muito pequenos (bytes ou KB) mas tambeacutem conteacutem ficheiros do

proacuteprio disco virtual que normalmente satildeo ficheiros muito grandes (centenas de MB ou

GB) e ainda ficheiros de swap (ficheiros guardados pelo SO para aumento virtual da

memoacuteria de trabalho (RAM))

98

Um dos princiacutepios da virtualizaccedilatildeo diz-nos que um SO guest natildeo deve suportar a

carga da gestatildeo de dispositivos fiacutesicos deve concentrar-se em fornecer um ambiente de

execuccedilatildeo de aplicaccedilotildees Assim um dos objetivos da arquitetura VMFS e em particular do

vSphere ESX eacute simplificar todo este acesso de armazenamento ao SO guest O hardware

virtual apresentado a um SO guest vSphere inclui um conjunto de controladores SCSI e

IDE que possuem drivers comuns disponiacuteveis em quase todos os sistemas operacionais O

SO guest vecirc um disco fiacutesico simples ligado atraveacutes de um controlador padratildeo gravado no

formato VMDK (Virtual Machine Disk) formato da VMWare Esta visatildeo virtualizada de

armazenamento apresentada ao SO guest tem uma seacuterie de vantagens como a gestatildeo

facilitada pelo facto de serem usados controladores padratildeo com drivers incluiacutedas nos

SOrsquos o facto de suportar diferentes ligaccedilatildeo e acessos ao armazenamento como iSCSI e

FCoE disponiacuteveis nos SOrsquos sem que estes suportem os protocolos nativos e a melhoria de

eficiecircncia e disponibilizaccedilatildeo na recuperaccedilatildeo de desastres com a disponibilizaccedilatildeo de

muacuteltiplos caminhos no acesso aos dados contrariamente ao peso da redundacircncia de

muacuteltiplos servidores fiacutesicos

H2 Xen Server (Citrix)

O VMM ou hypervisor Xen eacute apenas responsaacutevel pela gestatildeo de CPU memoacuteria e

interrupccedilotildees ou seja natildeo tem conhecimento do IO de Rede e Armazenamento Para lidar

com entradas e saiacutedas de Rede e Armazenamento o XenServer dispotildee de um domiacutenio de

controlo uma VM especializada denominada ldquoDom0rdquo (Domiacutenio 0) com SO Linux e

privileacutegios especiais eacute considerado parte integrante do XenServer aquando da instalaccedilatildeo

Alem de aceder diretamente o hardware controla todos os acessos de IO e interage com

as outras VMs Esta VM especial contem os drivers padratildeo do coacutedigo aberto Linux de

uma vasta diversidade de hardware e uma interface de controlo (consola ou interface

graacutefica) para controlo do sistema Conteacutem ainda uma pilha de controlo (toolstack) para

fazer toda a gestatildeo das VMs as conhecidas ldquoDomUrsquosrdquo (Domiacutenios dos utilizadores)

relativamente a sua criaccedilatildeo destruiccedilatildeo e configuraccedilatildeo

O XenServer da Citrix armazena as suas VMs diretamente no formato Microsoft

VHD (Virtual Hard Disk) num disco local natildeo partilhado (EXT) ou contrariamente ao

VMware natildeo dispondo do seu proacuteprio sistema de armazenamento aproveita as

capacidades nativas de armazenamento como por exemplo um sistema de armazenamento

partilhado como o NFS Com armazenamentos baseados em iSCSI ou FC o XenServer

estende o VHD do sistema de ficheiros para o padratildeo open source LVM (Logical Volume

Manager) para gestatildeo de volumes numa LUN abstraindo os volumes fiacutesicos em volumes

loacutegicos Permite ainda que seja possiacutevel a criaccedilatildeo de uma LUN por cada VDI

O XenServer oferece assim suporte de armazenamento de VMs em discos locais

iSCSI ou SAN baseado em FC ou NAS estes dois uacuteltimos para migraccedilotildees e alta

disponibilidade Ferramentas como XenCenter Storage Repository para implementaccedilatildeo e

99

StorageLink para integraccedilatildeo de armazenamentos com snapshots clones8 e ldquothin

provisioningrdquo9 satildeo uma mais-valia no XenServer

Cada host XenServer pode aceder a um ou vaacuterios dispositivos de armazenamento

diferentes simultaneamente Estes dispositivos de armazenamento podem ser dedicados

apenas a um host ou partilhados entre hosts permitindo que uma imagem de disco virtual

(VDI) num determinado sistema de armazenamento possa ser iniciada em qualquer host

Armazenamento local

Este tipo de armazenamento eacute local ao host XenServer (IDEPATA Serial ATA

(SATA) SCSI e Serial Attached SCSI (SAS)) e neste contexto satildeo suportados dois tipos

de armazenamento um sistema de ficheiros EXT e LVM (Logical Volume Manager)

numa LUN

Uma LUN num SAN iSCSI ou SAN Fibre Channel

Nestes dois tipos de armazenamento (tratados diferentemente pelo XenServer)

figura 54 os ficheiros satildeo apresentados ao XenServer como ficheiros normais ou mesmo

num sistema de ficheiros LVM numa LUN

Eacute criada uma LUN onde todos os servidores se ligam Essa LUN eacute dividida em

volumes loacutegicos onde apenas uma e uma soacute VM ligada a um desses volumes loacutegicos de

cada vez

Figura 54 - LUN num SAN iSCSI ou SAN FC

Network File System (NFS)

Neste tipo de armazenamento figura 55 eacute criado um NFS onde todos os

servidores se ligam e partilham ficheiros VDI que eacute o disco fiacutesico na visatildeo de uma VM O

XenServer lida com este tipo de armazenamento como um conjunto e discos virtuais

(VDIrsquos) armazenados no formato Microsoft VHD especialmente adequado para

ambientes NSF As imagens das VMs satildeo armazenadas como ficheiros neste formato

8 Clone Um programa ou hardware que imita o produto original e pode ser executado de igual modo como se

fosse original 9 Thin provisioning Meacutetodo de otimizaccedilatildeo da eficiecircncia com que o espaccedilo disponiacutevel eacute utilizado numa SAN

100

(VHD) um disco riacutegido virtual Estes ficheiros permitem que VMs sejam instanciadas em

qualquer host de uma pool de recursos e possam ser feitas migraccedilotildees entre servidores com

o XenMotion

XenServer suporta NFS sobre TCPIP O volume NFS localizado num servidor

NFS eacute acedido montado e usado para as necessidades convenientes de armazenamento

seraacute criada uma diretoria de partilha com um nome que eacute o Identificador Uacutenico Universal

(UUID) atribuiacutedo a esse armazenamento

Figura 55 - Network File System (NFS)

Opccedilotildees de armazenamento de terceiros como NetApp ou Dell EqualLogics

O armazenamento eacute feito por dispositivo especiacuteficos de armazenamento como

NetApp (Network Appliance) ou Dell EqualLogics como fornecedores liacutederes de

armazenamento de ficheiros em rede e sistemas de distribuiccedilatildeo de conteuacutedo A gestatildeo do

armazenamento eacute suportada pelo XenCenter

Vista do armazenamento pelo SO Guest

Existem 2 tipos de VMs no XenServer ldquoDom0rdquo e ldquoDomUrdquo ambas VM guestrsquos

diferindo no seu propoacutesito O Dom0 de controlo e parte integrante de todo o sistema

XenServer dispotildee de acesso privilegiados ao hardware tem drivers dos dispositivos e eacute

instanciada aquando do boot do sistema Os DomUrsquos satildeo totalmente isolados do hardware

e comunicam diretamente com o VMM ou hypervisor que controla a memoacuteria e o

processador do host A comunicaccedilatildeo com os restantes perifeacutericos eacute feita sob o controlo da

VM Dom0 (domiacutenio 0 domiacutenio de controlo) com os drivers especiacuteficos de dispositivos

como Rede e Armazenamento Os DomUrsquos satildeo conhecidos como domiacutenios sem

privileacutegios

Em termos de virtualizaccedilatildeo o Xen suporta em simultacircneo VM guests com para-

virtualizaccedilatildeo (PV) (virtualizaccedilatildeo assistida por SO) ou virtualizaccedilatildeo assistida por hardware

(HVM) Na PV apesar da modificaccedilatildeo do SO natildeo requer virtualizaccedilatildeo do processador

nem do hardware uma vez que dispotildee de drivers para aceder diretamente usando a

capacidade total dos dispositivos Na HVM satildeo usadas extensotildees de virtualizaccedilatildeo do

101

processador e hardware host para virtualizar os guets mas natildeo haacute modificaccedilatildeo do SO

guest eacute mais lento que PV mas apresenta a valecircncia da portabilidade A ultima aposta da

Citrix visando oacutetimos desempenhos foi a junccedilatildeo destes dois mundos para-virtualizaccedilatildeo e

virtualizaccedilatildeo assistida por hardware (PVHVM ou PV-on-HVM drivers)

Uma VM (DomU) no mundo virtual de um XenServer vecirc o seu armazenamento

como um disco local (imagens VDI guardadas na sua representaccedilatildeo Microsoft VHD) Na

realidade o XenServer alocou uma percentagem do armazenamento real e atraveacutes do

hypervisor e Dom0 fez toda a abstraccedilatildeo tornando-o disponiacutevel como um recurso de um

disco para essas VMs O SO guest do Dom0 eacute Linux e neste SO os discos fiacutesicos satildeo

representados como ficheiros desses dispositivos (devsda) Os ficheiros dos dispositivos

de armazenamento podem representar discos conectados localmente (armazenamento

local) ou um nuacutemero de unidade loacutegica (LUN) numa SAN sendo a gestatildeo feita por LVM

e ainda a opccedilatildeo NFS

102

Anexo I (Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo)

Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo

I1 Criaccedilatildeo de um projecto Web Service

Um projecto Web Service figura 56 pode ser criado com o IDE Eclipse IDE for Java EE

Developers Configurado todo o ambiente podemos criar um projecto Web Service

mediante vaacuterias abordagens variando nas suas configuraccedilotildees e especificaccedilotildees

naturalmente

Web Dynamic Web Project

JBoss Central HTML5 Project

JBoss Tools Create a Sample RESTfull Web Service

Maven Maven Project

Web Service Create a Sample RESTfull Web Service

Figura 56 - Projecto ldquoDynamic Web Projectrdquo no eclipse

Webxml

103

Ficheiro responsaacutevel pelo registo do servlet10

fornecido pelo Jersey Um servlet

responsaacutevel por analisar os pedidos http e selecionar a classe e meacutetodo para responder ao

pedido mediante as anotaccedilotildees JAX-RS previamente colocadas aquando da criaccedilatildeo do

coacutedigo Webxml define ainda o path sob o qual o Web Service seraacute disponibilizado

URL httpdominioportanome-da-aplicacaourl-patternpath-das-classes-rest

ltxml version=10 encoding=UTF-8gt ltweb-app xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlns=httpjavasuncomxmlnsjavaee xmlnsweb=httpjavasuncomxmlnsjavaeeweb-app_2_5xsd xsischemaLocation=httpjavasuncomxmlnsjavaee httpjavasuncomxmlnsjavaeeweb-app_2_5xsd id=WebApp_ID version=25gt lt-- nome da aplicaccedilatildeo --gt ltdisplay-namegtdevogellajerseytodoltdisplay-namegt ltservletgt lt-- suporte para aplicaccedilotildees Web baseado em servlet e filtro --gt ltservlet-namegtJersey REST Serviceltservlet-namegt ltservlet-classgtcomsunjerseyspicontainerservletServletContainerltservlet-classgt ltinit-paramgt lt-- define o pacote das classes de recurso java do Web Service --gt ltparam-namegtcomsunjerseyconfigpropertypackagesltparam-namegt ltparam-valuegtdevogellajerseytodoresourcesltparam-valuegt ltinit-paramgt ltload-on-startupgt1ltload-on-startupgt ltservletgt ltservlet-mappinggt lt-- URL pattern define parte da URL base onde o Web Service seraacute disponibilizado --gt ltservlet-namegtJersey REST Serviceltservlet-namegt lturl-patterngtrestlturl-patterngt ltservlet-mappinggt ltweb-appgt

ex httplocalhost8080devogellajerseytodoresttodos1

domiacutenio localhost

porta 8080

nome da aplicaccedilatildeo (webxml display-name) devogellajerseytodo

URL base (webxml url-pattern do servlet-mapping) rest

anotaccedilatildeo Path na classe Java todos

anotaccedilatildeo PathParam 1

10 Servlet Uma classe na linguagem de programaccedilatildeo Java que processa dinamicamente pedidos e

respostas gerando dados HTML e XML para a camada de apresentaccedilatildeo de uma aplicaccedilatildeo Web

104

Principais anotaccedilotildees JAX-RS

PATH(your_path) adiciona mais um paracircmetro ao URL (URL+your_path)

POST O meacutetodo responde a um pedido HTTP POST

GET O meacutetodo responde a um pedido HTTP GET

PUT O meacutetodo responde a um pedido HTTP PUT

DELETE O meacutetodo responde a um pedido HTTP DELETE

Produces(MediaType

TEXT_PLAIN[more-types])

Define o tipo MIME a ser entregue por um meacutetodo GET

Consumes(type[more-ypes ] ) Define o tipo MIME a ser consumido pelo meacutetodo

PathParam Usado para especificar valores da URL num paracircmetro do

meacutetodo

Uma outra anotaccedilatildeo fundamental eacute XmlRootElement para que o Jersey saiba

que os atributos iratildeo passar a noacutes no momento em que o XML como resposta ao cliente

De igual modo se receber um XML no corpo de um pedido o Jersei vai saber fazer a

conversatildeo desse XML para um objeto do tipo da classe em causa

I2 Exemplos de solicitaccedilotildees agrave API do MOE

Adicionar mais um processador a um Servidor

Operaccedilotildees sobre Servidores

Verb URI Description

GET servers Lista servidores

GET serversdetail Lista detalhes dos servidores

POST servers Cria servidor

GET serversid Lista detalhes dos servidores

PUT serversid Atualiza dados dos servidores

DELETE serversid Remove servidor

hellip hellip hellip

Um flavor representa uma configuraccedilatildeo de hardware disponiacutevel para um dado tipo

de servidores e eacute uma combinaccedilatildeo uacutenica de espaccedilo em disco capacidade de memoacuteria

nuacutemero de CPUs etc Um servidor eacute uma instacircncia de uma maacutequina virtual e portanto

eacute definido por um flavor

flavors [ disk 10 id 12 name 256_server ram 256 ldquocpurdquo 2 hellip hellip]

Operaccedilotildees sobre Flavors

Verb URI Description

GET flavors Lista flavors

GET flavorsdetail Lista detalhes dos flavors

105

GET flavorsid Lista detalhe do flavor

hellip hellip hellip

O objectivo eacute alterar o nuacutemero de CPUs de um servidor especiacutefico e para tal

temos de saber o valor desse campo no flavor desse servidor

Algoritmo passo-a-passo

1) Listar todos os servidores existentes

Esta operaccedilatildeo obteacutem uma lista de servidores associados agrave conta de um

determinado utilizador Em cada servidor (da lista) um atributo indica o estado actual do

servidor servidores com o estado ACTIVE estatildeo disponiacuteveis para utilizaccedilatildeo

Verb URI Description

GET servers Lista todos os servidores (apenas os IDs e nomes)

GET serversdetail Lista todos os servidores (todos os detalhes)

Coacutedigo para respostas normais 200 203

Coacutedigo para respostas de ERRO serversFault (400 500) serviceUnavailable

(503) unauthorized (401) badRequest (400) overLimit (413)

Resposta da listagem dos servidores XML (detalhes)

ltxml version=10 encoding=UTF-8gt ltservers xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgtgt ltserver id=1234 name=sample-server imageId=1 flavorId=12 status=BUILD progress=60 hostId=e4d909c290d0fb1ca068ffaddf22cbd0gt ltmetadatagt ltmeta key=Server LabelgtWeb Head 1ltmetagt ltmeta key=Image Versiongt21ltmetagt ltmetadatagt ltaddressesgt

ltpublicgt ltip addr=672310132gt ltip addr=672310131gt ltpublicgt ltprivategt ltip addr=101764216gt ltprivategt ltaddressesgt ltservergt hellip ltserversgt

De entre todos os servidores da lista o utilizador pretende ALTERAR o nuacutemero

de CPUs do servidor (server id=1234) ou seja precisa aceder ao flavor

(flavorId=12)

106

2) Listar o flavor (flavorId=12)

Esta operaccedilatildeo obteacutem os detalhes de um flavor especiacutefico (id)

Verb URI Description

GET flavorsid Lista detalhe do flavor especiacutefico

Coacutedigo para respostas normais 200 203

Error ResponseCode(s) serversFault (400 500) serviceUnavailable (503)

unauthorized (401) badRequest (400) itemNotFound (404) overLimit (413)

Resposta com detalhes de um Flavor XML

ltxml version=10 encoding=UTF-8gt ltflavor xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgt id=1 name=256 MB Server ram=256 disk=10 cpu=rdquo2rdquo gt

3) Alterar o nuacutemero de CPUs de 2 para 3 do servidor (server id=1234) flavor

(flavorId=12)

Esta operaccedilatildeo permite que se atualize o numero de CPUs do flavor associado ao

servidor Facilmente se depreende que esta operaccedilatildeo soacute seraacute possiacutevel se o utilizador puder

efectuar esta operaccedilatildeo (Status Transition ACTIVE)

Verb URI Description

PUT servers1234flavor12cpu3 Atualiza dados dos servidores

Coacutedigo para respostas normais 204

Coacutedigo para respostas de ERRO serversFault (400 500) serviceUnavailable

(503) unauthorized (401) badRequest (400) badMediaType(415) itemNotFound (404)

buildInProgress (409) overLimit (413)

Status Transition ACTIVE CONFIGURESERVER (if configureServer is

true)

Pedido de Update do flavor do servidor XML

ltxml version=10 encoding=UTF-8gt ltserver xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgt server id=1234 flavorId=12 cpu=rdquo3rdquo gt

107

Anexo J (Ferramentas de desenvolvimento WebService)

Principais ferramentas e suas configuraccedilotildees usadas na criaccedilatildeo e desenvolvimento deste

webservice

Plataforma Java

Servidor Apache Tomcat

Ambiente de desenvolvimento Eclipse

JARacutes e Plugins

Macromedia Dreamweaver

Notepad++

J1 Plataforma Java

Java eacute uma linguagem de programaccedilatildeo orientada a objeto e considera-se diferente das

outras linguagens convencionais pelo facto de ser compilada para bytecode e executado

por uma maacutequina virtual contrariamente agrave compilaccedilatildeo para coacutedigo nativo A linguagem

de programaccedilatildeo Java eacute a linguagem convencional da Plataforma Java que pode ser

adquirida no site httpjavacomendownloadindexjsp

Figura 57 - Plataforma Java

Como o RESTWEBSERVICE foi criado e executado em ambiente Windows a

explicaccedilatildeo seraacute feita tendo em vista este ambiente

108

Assim vamos verificar se temos a plataforma java instalada e se eacute a ultima versatildeo

lsquoIniciarrsquo e executar lsquocmdrsquo abre-se uma consola de linha de comando do MS Windows

executamos o comando

ldquojava -versionrdquo

Este comando corresponde agrave chamada da maacutequina virtual para executar

ldquobytecoderdquo

Figura 58 - Comando ldquojava -versionrdquo

Java version ldquo170_25 JDK ou JRE

JRE(Java Runtime Environment) Ambiente de execuccedilatildeo Java (Java Virtual

Machine) Como ambiente seraacute apenas possiacutevel a execuccedilatildeo de coacutedigo Java jaacute

compilado

JDK (Java Development Kit) Kit de desenvolvimento Java onde se inclui o

compilador (javac) e o ambiente de execuccedilatildeo Java (JVM) Neste caso podemos

compilar classes java directamente de coacutedigo fonte e executa-las posteriormente

no JRE maacutequina virtual Java

J11 Instalaccedilatildeo

Caso seja necessaacuteria a instalaccedilatildeo da plataforma java termos que fazer o download (versatildeo

7 update 25) e efectuar a sua instalaccedilatildeo Por defeito apoacutes a instalaccedilatildeo teremos os dois

ambientes JDK e JRE na directoria ldquoCProgram FilesJavardquo

Para testar a instalaccedilatildeo do compilador (JDK) lsquoIniciarrsquo e executar lsquocmdrsquo abre-se

uma consola de linha de comando do MS Windows executamos o comando

109

ldquojavacrdquo

Figura 59 - Instalaccedilatildeo da Plataforma Java

Concluiacuteda a instalaccedilatildeo da plataforma java teremos que definir as variaacuteveis de

ambiente para a posterior execuccedilatildeo do ambiente de desenvolvimento IDE (Integrated

Development Environment ) Eclipse e todas as dependecircncias do Java

J12 Variaacuteveis de ambiente

ldquoIniciarrdquo ldquoPainel de controlerdquo ldquoDefiniccedilotildees avanccediladas do sistemardquo ldquoVariaacuteveis de

ambienterdquo ldquoVariaacuteveis de sistemardquo

PATH ndash adicionar ldquodirectoria de instalaccedilatildeo do JDKrdquobin

ex CProgram FilesJavajdk170_25bin

Figura 60 - Variaacutevel de sistema ldquoPathrdquo

CLASSPATH ndash criar esta variaacutevel

Nome da variaacutevel ldquoCLASSPATHrdquo

Valor da variaacutevel ldquordquo

110

Figura 61 - Variaacutevel de sistema ldquoCLASSPATHrdquo

JAVA_HOME ndash criar esta variaacutevel com a ldquodirectoria de instalaccedilatildeo do

JDKrdquobin

ex CProgram FilesJavajdk170_25bin

Figura 62 - Variaacutevel de sistema ldquoJAVA_HOMErdquo

J13 Teste da instalaccedilatildeo da plataforma java e configuraccedilatildeo das variaacuteveis de

ambiente

Vamos verificar se as variaacuteveis foram definidas correctamente Para isso com o

Notpad++ vamos criar um ficheiro com o nome ldquoTestjavardquo e incluir o seguinte coacutedigo

public class Test public static void main(String[] args) throws Exception Systemoutprintln(Hello RESTWEBSERVICE)

Finalmente vamos compilar a classe na directoria onde foi criada e executaacute-la

utilizando a maacutequina virtual Java Na consola de linha de comando vamos executar os

seguintes comandos

javac Testjava ndash Comando para compilar a classe java criada

java Test - Comando para executar a classe Test

Se as variaacuteveis de ambiente foram definidas correctamente deveremos ter

como resposta

ldquoHello RESTWEBSERVICErdquo

111

J2 Servidor Apache Tomcat

Apache Tomcat eacute uma implementaccedilatildeo de software de fonte aberta das tecnologias Java

Servlet e JavaServer Pages (JSP) Egrave um servidor web HTTP em linguagem java um

servidor de aplicaccedilotildees JEE (Java Enterprise Edition) Tem a vantagem de incluir

ferramentas para gestatildeo e configuraccedilatildeo que podem ser editadas directamente num ficheiro

de configuraccedilatildeo em XML

O download deste servidor pode ser feito directamente no site da Tomcat

httptomcatapacheorgdownload-70cgi

J21 Instalaccedilatildeo

Feito o download basta descompactar o ZIP numa directoria ex C onde seraacute criado

uma pasta com o nome do ZIP Capache-tomcat-7034 Como versatildeo preacute-configurada

disponibiliza de imediato as seguintes configuraccedilotildees

A porta de acesso aacutes aplicaccedilotildees eacute a 8080 Basta para isso digitar o URL

seguido de ldquordquo e a porta 8080

ex httplocalhost8080MOE

Se natildeo existirem redireccionamentos eacute possiacutevel a listagem de directorias

Esta opccedilatildeo eacute sempre desactivada depois nas implementaccedilotildees

Monitorizaccedilatildeo sempre constante qualquer alteraccedilatildeo dos ficheiros natildeo existe a

necessidade de fazer um restart ao servidor

Figura 63 - Directoria de instalaccedilatildeo do Servidor Apache Tomcat

112

J22 Execuccedilatildeo

Para testarmos o servidor Apache Tomcat basta corresmos o executaacutevel ldquoTomcat7exerdquo

da directoria ldquoCTomcat 70binrdquo e aceder ao link httplocalhost8080

Figura 64 - Link localhost Apache Tomcat

J3 Ambiente de desenvolvimento Eclipse

Eclipse eacute um IDE (Integrated Development Environment) ou ambiente integrado de

desenvolvimento eacute um programa com caracteriacutesticas e ferramentas de apoio ao

desenvolvimento de software com a vantagem de ter a maior parte das ferramentas de

desenvolvimento jaacute integradas e prontas a usar Uma orientaccedilatildeo baseada em plugins que

mediante incorporaccedilatildeo satisfazem as necessidades dos diferentes programadores

O download deste IDE pode ser feito directamente no site

httpwwweclipseorgdownloads O package em questatildeo para o desenvolvimento

direcionado agrave web eacute o ldquoEclipse IDE for Java EE Developersrdquo que jaacute vem com a maior

parte dos plugins destinados a este tipo de desenvolvimento

J4 JARs e Plugins

O ambiente de desenvolvimento Eclipse principalmente o ldquoEclipse IDE for Java EE

Developersrdquo jaacute vem com a maior parte dos plugins por defeito para desenvolvimentos

orientados agrave web mas haacute um indispensaacutevel muito uacutetil natildeo soacute no acesso aos menus de

configuraccedilatildeo do projecto como tambeacutem ferramentas de configuraccedilatildeo do servidor Apache

Tomcat plugin ldquoWeb Tools Platform (WTP)rdquo

Podemos fazer o download directo do plugin ou solicitar ao Eclipse que o faccedila por

noacutes e instale directamente Para isso vamos ao menu ldquoHelprdquo ldquoInstall new Softwarerdquo

ldquoaddrdquo

Name Web Tools Platform (WTP)

Location httpdownloadeclipseorgwebtoolsrepositoryindigo

113

Figura 65 - Add repository

Relativamente aos JARs estes satildeo dependents do projecto em siacute e do que se

pretende usar JAR (Java Archive) eacute um formato de ficheiro que normalmente eacute usado

para agregar muitos ficheiros de classes Java e metadados associados recursos como

textos e imagens tudo num uacutenico ficheiro que depois funcionaraacute como bibliotecas na

plataforma Java

Basta para isso colocar os JARs necessaacuterios na directoria

ldquoprojectNameWebContentWEB-INFlibrdquo

J4 Macromedia Dreamweaver

O Adobe Dreamweaver mais conhecido por Macromedia Dreamweaver eacute um software de

desenvolvimento na Web criada pela Macromedia

Um software que fornece suporte para vaacuterias tecnologias web tais como XHTML

CSS JavaScript Ajax PHP ASP ASPNET JSP ColdFusion e outras linguagens

Server-side

Toda a apresentaccedilatildeo web da camada de apresentaccedilatildeo do webservice foi

desenvolvida e testada inicialmente neste software Desenvolvimento de coacutedigo HTML

JSP incorporaccedilatildeo de imagens construccedilatildeo de tabelas etc

A5 Notepad++

Notepad++ eacute um editor de texto e de coacutedigo fonte aberto sob licenccedila GPL Tem a

vantagem de suportar vaacuterias linguagens de programaccedilatildeo como HTML JSP CSS JQuery

Javascript e eacute optimo para alteraccedilotildees raacutepidas de coacutedigo e sua visualizaccedilatildeo

114

Anexo K (Criar e executar um ldquoDynamic Web Projectrdquo no Eclipse)

K1 Criar um ldquoDynamic Web Projectrdquo

Para criar um ldquoDynamic Web Projectrdquo temos que iniciar o Eclipse e nesta primeira

iniciaccedilatildeo vatildeo ser testadas todas as variaacuteveis de ambiente anteriormente criadas e criado

um workspace onde seratildeo guardados todos os nossos projectos

Depois de iniciado o Eclipe para criarmos um ldquoDynamic Web Projectrdquo seguimos

os passos

1 ldquoFilerdquo ldquoNewrdquo ldquoProjectrdquo

2 Na proacutexima janela escolher ldquoWebrdquo ldquoDynamic Web Projectrdquo

Figura 66 - Dynamic Web Project

3 Clique em Next

4 Nas propriedades do projecto

Project name Test

Target runtime Apache Tomcat v70

Dynamic web module version 30

Configuration Default Configuration for Apache Tomcat v70

115

Figura 68 - Propriedades do Dynamic Web Project

5 Clique em Next e depois outra vez em Next

6 Seleccione ldquoGenerate webxml deployment descriptorrdquo para a criaccedilatildeo do

webxml onde seratildeo incluiacutedas todas as definiccedilotildees e configuraccedilotildees do projecto

Figura 69 - Webxml do Dynamic Web Project

7 Clique em Next e todo o projecto eacute criado

116

Figura 70 - Directoria base do Dynamic Web Project

JavaSource (src)

Coacutedigo fonte Java do projeto Recursoso que satildeo automaticamente compilado e os

ficheiros gerados satildeo adicionados ao diretoacuterio WEB-INFclasses

WebContent

Localizaccedilatildeo de todos os recursos da Web incluindo HTML JSP ficheiros

graacuteficos imagens etc Os ficheiros ficam disponiacuteveis apenas nesta directoria ou

subdirectorias quando o servidor eacute executado

META-INF

Esta directoria conteacutem o arquivo MANIFESTMF que eacute usado para mapear o

caminho das classes para os ficheiros JAR dependentes que existem no projecto Quando

um JAR eacute adicionado agrave biblioteca esta entrada eacute adicionada automaticamente neste

ficheiro

WEB-INF

Directoria que conteacutem os recursos da Web de suporte para agrave aplicaccedilatildeo incluindo o

ficheiro webxml e as classes e lib

Classes

Directoria das classes compiladas eacute a directoria de saiacuteda do compilador Java As

classes ldquoclassrdquo satildeo colocados neste directoria automaticamente quando o compilador

Java compila os ficheiros de origem Java que estatildeo no directoria de recursos Java (src)

Lib

Os ficheiros JAR de apoio a toda a aplicaccedilatildeo As classes existentes nos ficheiros

jar ficam disponiacuteveis para uso na aplicaccedilatildeo

Web Deployment Descriptor

O descritor de implementaccedilatildeo de toda a aplicaccedilatildeo o ficheiro webxml

117

K2 Executar um ldquoDynamic Web Projectrdquo

Para testarmos o nosso ldquoDynamic Web Projectrdquo comeccedilamos por criar uma classe na

directoria ldquosrcrdquo ldquoFilerdquo ldquoNewrdquo ldquoOtherrdquo ldquoClassrdquo

Figura 71 - Criar uma classe

Criamos uma classe com o package test e o nome Test e incluiacutemos o seguinte

coacutedigo

package test public class Test public static void main(String[] args) throws Exception Systemoutprintln(Hello RESTWEBSERVICE)

Criamos igualmente um ficheiro HTML na directoria WebContent ldquoFilerdquo ldquoNewrdquo

ldquofilerdquo com o nome ldquotesthtmlrdquo e com o seguinte coacutedigo

lthtmlgt ltheadgt lttitlegtDynamic Web Project HTML pagelttitlegt ltheadgt ltbodygt lth2gt Hello RESTWEBSERVICE lth2gt ltbodygt lthtmlgt

118

Executamos o projecto no menu clicamos em ldquoRunrdquo ldquoRunrdquo escolhemos ldquoRun

on Serverrdquo e a primeira vez que executarmos o projecto temos que fazer a ligaccedilatildeo ao

servidor Apache Tomcat ldquoApacherdquo ldquoTomcat v70 Serverrdquo e ldquoFinishrdquo

Figura 72 - Servidor Apache Tomcat dentro do Eclipse

O projecto estaacute pronto a testar no link httplocalhost8080Testtesthtml

Figura 73 - Execuccedilatildeo no Browser

119

Anexo L (Importar configurar e executar o RESTWEBSERVICE - MOE)

A implementaccedilatildeo RESTWEBSERVICE - MOE eacute um webservice desenvolvido numa

arquitectura orientada a Web (Web-Oriented Architecture - WOA) disponibilizando os seus

recursos na Web atraveacutes do protocolo REST (Representational State Transfer) para troca de

informaccedilatildeo Vantagens como a simplicidade de interaccedilatildeo entre sistemas heterogeacuteneos a

facilidade de comunicaccedilatildeo entre aplicaccedilotildees existentes em muacuteltiplas plataformas e a

independecircncia de plataformas e linguagens de programaccedilatildeo satildeo evidentes

L1 Importaccedilatildeo do ldquoDynamic Web Projectrdquo MOE

A importaccedilatildeo o projecto ldquoMOErdquo (Matrix Operating Environment) para o ambiente de

desenvolvimento Eclipse carece da criaccedilatildeo de um ldquoDynamic Web Projectrdquo base no Eclipse

Assim para a criaccedilatildeo de um ldquoDynamic Web Projectrdquo seguir os passos descritos na

aliacutenea K1 Criar um ldquoDynamic Web Projectrdquo do Anexo K alterando apenas o nome para

ldquoMOErdquo Natildeo eacute necessaacuterio criar nenhuma classe java nem ficheiro HTML

Figura 74 - Projecto base MOE

Depois do projecto MOE criado basta importar o projecto real para o Eclipse ldquoFilerdquo

ldquoImportrdquo ldquoArchive Filerdquo

Figura 75 - Importaccedilatildeo do projecto real MOE

Seleccionar o projecto a importar O projecto deveraacute ficar com uma organizaccedilatildeo de

directorias como na imagem seguinte

120

Figura 76 - Projecto real MOE

L2 Configuraccedilatildeo inicial do MOE

Para que a execuccedilatildeo do MOE seja feita sem erros e todas as ligaccedilotildees e credenciaccedilotildees sejam

efectuadas temos que criar pastas e ficheiros de leitura inicial do MOE Assim vamos criar

uma directoria em C com o nome ldquorestconfigrdquo (Crestconfig) com 4 ficheiros

adminUsersListtxt

Ficheiro com todos os administradores do MOE Esta lista deveraacute ser igual agrave lista dos

administradores do HPMOE Um administrador por linha ldquodomiacutenioadminrdquo (ex

ldquohpptlabpaulopiresrdquo)

121

Figura 77 - Ficheiro ldquoadminUsersListtxtrdquo

hp-io-v5wsdl

Ficheiro WSDL (Web Service Description Language) a definiccedilatildeo das operaccedilotildees de IO

disponiacuteveis

https ltcms-ip-addressgt 51443hpiocontrollersoapv4 wsdl

Neste ficheiro basta alterar o IP do servidor HPMOE linha 5987

ltsoapaddress location=https1623187651443hpiocontrollersoapv5gt

Figura 78 - Ficheiro ldquohp-io-v5wsdlrdquo

Figura 79 - WSDL do HPMOE

loginconfig

Ficheiro de apoio agrave credenciaccedilatildeo (login) no MOE

No acircmbito da seguranccedila em aplicaccedilotildees JavaEE o servidor Apache Tomcat fornece

uma implementaccedilatildeo Realm JAAS (Java Authentication and Authorization Service) para que

os programadores possam implementar moacutedulos de login JAAS e integraacute-los facilmente com

as suas aplicaccedilotildees JAAS permite assim autenticaccedilotildees em modo Basic e Form usando para

isso os denominados realms File e JDBC (Java Database Connectivity) que neste caso eacute em

runtime

122

Figura 80 - Ficheiro ldquologinconfigrdquo

A ligaccedilatildeo ao ficheiro ldquologinconfigrdquo eacute feita no menu do Eclipse ldquoRunrdquo ldquoRun

Configurationsrdquo ldquoTomcat 70rdquo ldquoArgumentsrdquo ldquoVM argumentsrdquo adicionar a linha -

Djavasecurityauthloginconfig=Crestconfigloginconfig

Figura 81 - Ficheiro ldquologinconfigrdquo

vmwareAccesstxt

Ficheiro com dados de acesso agrave VMware para acesso agrave consola das VMs dos serviccedilos

criados

Primeira linha IP da VM onde estaacute o VCenter da VMware

Segunda linha Username do Administrador

Terceira linha Password do Administrador

123

Figura 82 - Ficheiro ldquovmwareAcesstxtrdquo

L3 Execuccedilatildeo do MOE

O MOE pode finalmente ser executado Para isso no menu clicamos em ldquoRunrdquo ldquoRunrdquo

escolhemos ldquoRun on Serverrdquo e a primeira vez que executarmos o projecto temos que fazer a

ligaccedilatildeo ao servidor Apache Tomcat ldquoApacherdquo ldquoTomcat v70 Serverrdquo e ldquoFinishrdquo

Figura 83 - Servidor Apache Tomcat dentro do Eclipse

Aguardar que o projecto seja construiacutedo e compilado Podemos acompanhar a

evoluccedilatildeo do estado directamente na consola do Eclipse

124

Figura 84 - Compilaccedilatildeo do projecto MOE

Finalmente o projecto estaacute disponiacutevel em httplocalhost8080MOE

Figura 85 - Login page MOE

Figura 86 - Data page MOE

125

Anexo M (Criaccedilatildeo de um Serviccedilo e ligaccedilatildeo agraves VMs)

A criaccedilatildeo de um serviccedilo de um determinado utilizador tem por base as

definiccedilotildeesconfiguraccedilotildees existentes num Template previamente definido e listado num

Cataacutelogo de Serviccedilos Configuraccedilotildees como detalhes dos servidores memoacuteria processadores

discos custos interfaces limites maacuteximos e miacutenimos de futuros updates ao serviccedilo etc estatildeo

previamente descritos e implementados sob a forma de Templates nos quais o utilizador pode

navegar verificar as caracteriacutesticas de cada um e escolher um que melhor se adapte as suas

necessidades

Assim o utilizador navega nos Templates existentes no Cataacutelogo de Serviccedilos do

menu lateral esquerdo e seleciona o Template No painel central do webservice painel

ldquoDetalhesrdquo satildeo abertas as tabs dos detalhes do Template selecionado

M1 Detalhes do Template

Nas imagens seguintes podemos verificar os detalhes do Template selecionado Nos detalhes

gerais do Template obtemos informaccedilotildees como o nome do Template a data de criaccedilatildeo e

modificaccedilatildeo versatildeo custo geral se eacute ou natildeo costumizaacutevel e o numero de ServerGroups

associados assim como discos e serviccedilos que jaacute foram criados tendo por base este template

Figura 87 - Detalhes gerais do Template ldquoTemplate_3srvrdquo

126

Todos os detalhes do Template ficam disponiacuteveis ao utilizador Ao niacutevel do grupo de

servidores informaccedilotildees como nome quantidade miacutenima de servidores e que seraacute a base do

serviccedilo criado e quantidade maacutexima de servidores sinal que o serviccedilo poderaacute crescer em

termos de quantidade de servidores Tipo de cluster e o numero de servidores loacutegicos

existentes no grupo

Figura 88 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo

Relativamente aos servidores o utilizador obteacutem informaccedilotildees como nome hostname

tipo de virtualizaccedilatildeo memoacuteria usada e quantidade maacutexima de memoacuteria processadores

usados e quantidade maacutexima de processadores se eacute ou natildeo virtual e se estaacute ou natildeo em cloud

Figura 89 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Informaccedilotildees detalhadas sobre os custos em detalhes ficam disponiacuteveis ao utilizador

Informaccedilotildees sobre custo total custo de base por cada servidor custo por processador e

memoacuteria

127

Figura 90 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Os discos tambeacutem apresentam informaccedilatildeo como nome tipo de storage tamanho raid

level se eacute ou natildeo bootable shareable e custo do disco

Figura 91 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

Cada servidor tem um software preacute-instalado ou instalado posteriormente pelo

utilizador Informaccedilotildees como nome tipo OS e virtualizaccedilatildeo estatildeo disponiacuteveis

Figura 92 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

Finalmente detalhes sobre as interfaces Neste caso duas interfaces uma na rede HP

(HP Network) e outra rede local (CloudSystem) Estatildeo disponiacuteveis informaccedilotildees como nome

da interface se eacute ou natildeo primaacuteria redundacircncia subnet publica shareable tipo de IP

endereccedilo DHCP activo ou natildeo e custo final

128

Figura 93 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo

M2 Criaccedilatildeo de um Serviccedilo

Selecionado o Template que melhor se enquadra nas necessidades do utilizador clicar

na opccedilatildeo preencher todos os dados obrigatoacuterios como nome do

serviccedilo hostname tempo atribuiacutedo ao serviccedilo (acarreta custos) e email do utilizador

As opccedilotildees ldquoNotesrdquo e ldquoBilling coderdquo satildeo opcionais

Figura 94 - Criaccedilatildeo do serviccedilo ldquomyServicerdquo

129

Apoacutes a solicitaccedilatildeo para a criaccedilatildeo do serviccedilo o utilizador eacute encaminhado para uma

lista de pedidos existentes para aquele utilizador e serviccedilo em especiacutefico Pedidos que

poderatildeo ser cancelados (figura 95) mediante decisatildeo do utilizador

Figura 95 - Lista de pedidos do utilizador

A salientar que existem pedidos que carecem da aprovaccedilatildeo do administrador por isso

o pedido poderaacute ficar parado numa determinada percentagem () a espera dessa aprovaccedilatildeo

Se o pedido natildeo necessitar de aprovaccedilatildeo continuaraacute a sua execuccedilatildeo ateacute estar completo

(100) e automaticamente seraacute adicionado ao menu lateral esquerdo do utilizador

Figura 96 - Eventual cancelamento de um pedido

Finalmente o serviccedilo eacute criado e todas as opccedilotildees ficaratildeo agora disponiacuteveis ao

utilizador como ediccedilatildeo de memoacuteria e processadores upgrade de servidores exportaccedilatildeo de

dados em xml visualizaccedilatildeo nesse formato etc

M3 Acesso Remoto

Acesso remoto agrave maquina virtual (VM) como objectivo de toda a implementaccedilatildeo estaacute

igualmente disponiacutevel para os servidores cujo status = ldquoUPrdquo Essa listagem poderaacute ser

efectuada na tab ldquoServiccedilosrdquo em com quatro tipo de ligaccedilotildees

130

RDP (Remote Desktop Protocol) (figura 100)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet (figura 101)

VMRC (VMware Remote Console) (figura 102)

Figura 97 - Serviccedilo ldquomyServicerdquo criado

Figura 98 - Listagem dos acessos remotos

Os acessos remotes poderatildeo ser feitos atraveacutes desta lista ou directamente nos

servidores ou interfaces

131

Figura 99 - Acesso remoto na tab ldquoServerrdquo

Figura 100 - Acesso remoto por RDP

Figura 101 - Acesso remoto por Telnet

Figura 102 - Acesso remoto por VMRC

132

Anexo N (MOE Help)

A informaccedilatildeo disponibilizada eacute vasta e detalhada sobre os recursos disponibilizados e a sua

manipulaccedilatildeo pode criar alguma duacutevida existencial Uma paacutegina ldquoMOE Helprdquo de ajuda eacute

sempre bem vinda e uacutetil bastando para isso clicar no iacutecone que o ajudaraacute a compreender

melhor tido o wevservice e sua distribuiccedilatildeo e organizaccedilatildeo

Figura 103 - Menu lateral esquerdo ldquoMOE Helprdquo

O menu lateral esquerdo agrave semelhanccedila da paacutegina principal do webservice expelha a

hierarquia da organizaccedilatildeo de toda a informaccedilatildeo O utilizador apenas tem que clicar na opccedilatildeo

que deseja maior esclarecimento

Figura 104 - Menu lateral esquerdo ldquoMOE Helprdquo

133

Toda a informaccedilatildeo de ajuda estaacute imediatamente disponiacutevel com as Tabs respectivas jaacute

abertas e prontas a consultar O menu lateral esquerdo serve apenas para selecionar a Tab e

dentro dessa Tab selecionar imediatamente a informaccedilatildeo pretendida Se o utilizador tiver

duacutevidas sobre a a importaccedilatildeo de um Template basta abrir a Tab Template e scroll ateacute agrave

informaccedilatildeo pretendida ou sentatildeo mais faacutecil clicar apenas em ldquoImport xmlrdquo dentro da pasta

Template no menu lateral esquerdo e com um simples clique visualiza imediatamente a

informaccedilatildeo nem necessidade de scroll

Figura 105 - ldquoImport xmlrdquo help

N1 Template

Um Template compreende a uma configuraccedilatildeo especifica de hardware e software desenhado

pelo Arquitecto a infra-estrutura para fazer face a determinadas situaccedilotildees como solicitaccedilotildees

de um utilizador ou grupo de utilizadores que solicitaram essas configuraccedilotildees especificadas

Configuraccedilotildees como nuacutemero de servidores memoacuteria processadores discos software

interface etc Opccedilotildees configuraacuteveis com limites minimos e maacuteximos com o seu

correspondente custo associado

Esses templates apoacutes publicaccedilatildeo fazem parte de uma lista num cataacutelogo de serviccedilos

para uso e instanciaccedilatildeo de serviccedilos de utilizadores dessa infra-estrutura

134

Figura 106 - Template info Tab

N2 Service

Um serviccedilo corresponde a uma instanciaccedilatildeo de um determinado template Todas as

configuraccedilotildees base do template seleccionado pertencem agora a este novo serviccedilo que poderaacute

ser posteriormente editado com mais ou menos servidores processamento memoacuteria discos

etc ateacute um limite maacuteximo definido no template de base de criaccedilatildeo deste serviccedilo A opccedilatildeo de

remoccedilatildeo de servidores definir menos memoacuteria ou processadores tambeacutem satildeo opccedilotildees

disponiacuteveis de ediccedilatildeo

Figura 107 - Service info Tab

135

N3 ServerGroup

Um Grupo de Servidores corresponde a um ou mais servidores com configuraccedilotildees diacutespares

em cada grupo como software discos interfaces etc O grupo de servidores permite a

organizaccedilatildeo dos servidores existentes num serviccedilo por tipo de configuraccedilotildees de hardware e

software

Figura 108 - ServerGroup info Tab

N4 Server

Um servidor eacute o nuacutecleo de um serviccedilo igualmente com configuraccedilotildees especiacuteficas como

memoacuteria processadores velocidade discos software interfaces etc

Figura 109 - Server info Tab

136

N5 Disk

Figura 110 - Disk info Tab

N6 Software

Software a ser disponibilizado na VM do utilizador Software baseado igualmente num

template com configuraccedilotildees especiacuteficas

Figura 111 - Software info Tab

137

N7 Interface

Toda a infra-estrutura tem por base uma lista de redes definidas para comunicaccedilatildeo desde

redes internas a redes externas agrave infra-estrutura

Figura 112 - Interface info Tab

N8 Request

Os pedidossolicitaccedilotildees ficam em histoacuterico durante a sua execuccedilatildeo e apoacutes teacutermino da mesma

Permite que o utilizador acompanhe a progressatildeo do seu pedido e quando terminar (100) o

utilizador eacute informado do status de teacutermino sendo automaticamente feito o refresh da paacutegina

Figura 113 - Request info Tab

138

N9 About

Um pequeno resumo desta Tese

Figura 114 - About info Tab

N10 Team

Intervenientes de todo o projecto

Figura 115 - Team info Tab

139

N11 Javadoc

Informaccedilatildeo sobre todo o webservice meacutetodos moacutedulos de acesso login configuraccedilotildees etc

Informaccedilatildeo disponiacutevel apenas ao Administrador

Figura 116 - Javadoc info Tab

140

Anexo O (VMware - Virtual Machine Resources)

O1 ldquoMapsrdquo ndash Host Options ndash Host to VM

Detalhes da relaccedilatildeo HostVM no final dos 3 serviccedilos criados

Host cifm02hpptlablocal VM Service1HP_hostonehost5

Host cifm05hpptlablocal VM myService_hostmyhostr01

Service2HP_hostrhostr01 02 e 03

Figura 117 - ldquoMapsrdquo da relaccedilatildeo Host VM

141

O2 ldquoMapsrdquo ndash Host Options ndash Host to Network

Detalhes da relaccedilatildeo HostNetwork no final dos 3 serviccedilos criados Os 2 hosts

(cifm02hpptlablocal e cifm05hpptlablocal) estatildeo ligados agraves 3 redes existentes

CloudSystem rede interna MOE (19216810hellip)

HP Network rede externa MOE e interna HP (1623186hellip e 1623187hellip)

HP DataCenter outra rede interna MOE

Figura 118 - ldquoMapsrdquo da relaccedilatildeo Host Network

142

O3 ldquoMapsrdquo ndash Host Options ndash Host to Datastore

Detalhes da relaccedilatildeo HostDatastore no final dos 3 serviccedilos criados

Host cifm02hpptlablocal Datastore CIF02-LOCALDATASTORE-001

Host cifm05hpptlablocal Datastore CIF05-LOCALDATASTORE-001 002 003 e

004

Datastore EVA-VMware-DISK-001 002 003 004 3 005

Figura 119 - ldquoMapsrdquo da relaccedilatildeo Host Datastore

143

O4 ldquoMapsrdquo ndash VM Options ndash VM to Network

Detalhes da relaccedilatildeo VMNetwork no final dos 3 serviccedilos criados

Network CloudSystem VM todas as VMs na rede local MOE

Network HP Network VM todas as VMs na rede externa MOE

Figura 120 - ldquoMapsrdquo da relaccedilatildeo VM Network

144

O5 ldquoMapsrdquo ndash VM Options ndash VM to Datastore

Detalhes da relaccedilatildeo HostDatastore no final dos 3 serviccedilos criados

VM Service1HP_hostonehost5 Datastore EVA-VMware-DISK-004

VM myService_hostmyhostr01 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr01 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr02 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr03 Datastore CIF05-LOCALDATASTORE-004

Figura 121 - ldquoMapsrdquo da relaccedilatildeo Host Datastore

145

O6 ldquoMapsrdquo ndash Host and VM Options ndash all relationships

146

Anexo P (Scenario view)

P1 Template

P11 Informaccedilatildeo

Figura 122 - Detalhes gerais do Template ldquoTemplate_3srvrdquo

Figura 123 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo

147

Figura 124 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Figura 125 - Detalhes dos Custos do Servidor ldquoSvrGrp1-1rdquo

Figura 126 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

Figura 127 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

148

Figura 128 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo

P12 Execuccedilatildeo

Figura 129 - Ficheiro ldquoTemplateListxmlrdquo

149

Export Template

Figura 130 - Ficheiro ldquoTemplate_3srvxmlrdquo

Import Template

Figura 131 - Importaccedilatildeo de um Template em formato XML

Delete Template

Figura 132 - InfoWindow ldquoDelete Templaterdquo

150

XML View

Figura 133 - InfoWindow com a visualizaccedilatildeo do Template em XML

Export All Services

Figura 134 - Ficheiro ldquoTemplate_3srv_ServiceListxmlrdquo

151

Create Service

Figura 135 - Criaccedilatildeo de um Serviccedilo com base no Template ldquoTemplate_3srvlrdquo

All Requests

Figura 136 - Lista de todos os pedidos do utilizador

152

Figura 137 - Eventual cancelamento de um pedido

Template Requests

Figura 138 - Lista dos pedidos resultantes da relaccedilatildeo Templateutilizador

153

P2 Serviccedilo

P21 Informaccedilatildeo

Figura 139 - Detalhes do Serviccedilo ldquomyServicerdquo do Template ldquoTemplate_3srvrdquo

P22 Execuccedilatildeo

Export All Services

Figura 140 - Ficheiro ldquoallServicesListxmlrdquo

154

Export Service

Figura 141 - Ficheiro ldquomyServicexmlrdquo

XML View

Figura 142 - InfoWindow com a visualizaccedilatildeo do Serviccedilo em XML

Delete Service

Figura 143 - Remoccedilatildeo de um Serviccedilo

155

Power ON Service

Figura 144 - Power ON de um Serviccedilo

Power OFF Service

Figura 145 - Power OFF de um Serviccedilo

Power Cycle Service

Figura 146 - Power Cycle de um Serviccedilo

Activate Service

Figura 147 - Activaccedilatildeo de um Serviccedilo

Deactivate Service

Figura 148 - Desactivaccedilatildeo de um Serviccedilo

156

Service Actions

Figura 149 - Lista dos Service Actions

List Remote Session

Figura 150 - Lista dos Acessos Remotos do um Serviccedilo

Figura 151 - Acesso remoto por RDP

Figura 152 - Acesso remoto por Telnet

157

Figura 153 - Acesso remoto por VMRC

Service Requests

Figura 154 - Listagem dos pedidos por Serviccedilo

158

P3 Grupo de Servidores

P31 Informaccedilatildeo

Figura 155 - Detalhes do Grupo de Servidores ldquoSvrGrp1rdquo do Serviccedilo ldquomyServicerdquo

P32 Execuccedilatildeo

Export Server Group

Figura 156 - Ficheiro ldquoSvrGrp1xmlrdquo

159

XML View

Figura 157 - InfoWindow com a visualizaccedilatildeo do Grupo de Servidores em XML

Add Servers (UP)

Figura 158 - Adiccedilatildeo de Servidores ao Grupo de Servidores

Remove Servers (DOWN)

Figura 159 - Remoccedilatildeo de Servidores ao Grupo de Servidores

160

Edit ServerGroup

Figura 160 - Ediccedilatildeo de Servidores ao Grupo de Servidores

Power ON ServerGroup

Figura 161 - Power ON de um ServerGroup

Power OFF ServerGroup

Figura 162 - Power OFF de um ServerGroup

Power Cycle ServerGroup

Figura 163 - Power Cycle de um ServerGroup

161

Activate ServerGroup

Figura 164 - Activaccedilatildeo de um ServerGroup

Deactivate ServerGroup

Figura 165 - Desactivaccedilatildeo de um ServerGroup

List Snapshots

Figura 166 - Listagem de todos os Snapshots existentes no Grupo de Servidores

Figura 167 - Acccedilotildees SnapshotServidor

Figura 168 - Revert Snapshot

162

Figura 169 - Delete Snapshot

Create Snapshot

Figura 170 - Create Snapshot

Add Stereotype Disks

Figura 171 - Lista de ldquoStereotype Disksrdquo

Add Virtual Disks

Figura 172 - Adicionar um disco virtual ldquoDisk62rdquo ao Grupo de Servidores

163

Add Physical Disks

Figura 173 - Adicionar um disco fiacutesico ldquoDisk788rdquo ao Grupo de Servidores

P4 Servidores

P41 Informaccedilatildeo

Figura 174 - Detalhes do Servidor ldquoSvrGrp1-1rdquo do Serviccedilo ldquomyServicerdquo

164

P42 Execuccedilatildeo

Export Server

Figura 175 - Ficheiro ldquohostmygostr01_lsxmlrdquo

XML View

Figura 176 - InfoWindow com a visualizaccedilatildeo do Servidor em XML

165

Remove Server

Figura 177 - Remoccedilatildeo de um Servidor

Edit Server

Figura 178 - Ediccedilatildeo de um Servidor

Power ON Server

Figura 179 - Power ON de um Servidor

Power OFF Server

Figura 180 - Power OFF de um Servidor

166

Power Cycle Server

Figura 181 - Power Cycle de um Servidor

Activate Server

Figura 182 - Activaccedilatildeo de um Servidor

Deactivate Server

Figura 183 - Desactivaccedilatildeo de um Servidor

Create Snapshot

Figura 184 - Create Snapshot

167

List ServerPool

Figura 185 - Pools de Servidores

Figura 186 - Criar uma Pools de Servidores

Figura 187 - Remoccedilatildeo de uma Pools de Servidores

Figura 188 - InfoWindo de aviso ao administrador

168

VM Host

Figura 189 - Informaccedilatildeo dos hosts fiacutesicos

Remote Session

Figura 190 - Sessotildees Remotas num Servidor

169

P5 Discos

P51 Informaccedilatildeo

Figura 191 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

P52 Execuccedilatildeo

Add Stereotype Disks

Figura 192 - Criaccedilatildeo de um ldquoStereotype Disksrdquo

170

P6 Software

P61 Informaccedilatildeo

Figura 193 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

P62 Execuccedilatildeo

List Softwares

Figura 194 - Lista de Software

171

Software Detals

Figura 195 - Detalhes do Software

P7 Interface

P71 Informaccedilatildeo

Figura 196 - Detalhes do Interface NIC0rdquo do Servidor ldquoSvrGrp1-1rdquo

172

P72 Execuccedilatildeo

List Subnets

Figura 197 - Listagem de todas as redes

Figura 198 - Detalhe da rede

Add IPAddress

Figura 199 - Adiccedilatildeo de um IP flutuante agrave Interface ldquoNIC0rdquo

173

Remove IPAddress

Figura 200 - Remoccedilatildeo de um IP flutuante pertencente agrave Interface ldquoNIC0rdquo

Move IPAddress

Figura 201 - Mover um IP flutuante para a Interface ldquoNIC0rdquo

Page 6: Framework para a construção de “portais de negócio” para

VI

VII

Agradecimentos

Um profundo agradecimento a todos aqueles que de diferentes formas me apoiaram durante

estes 5 anos enquadrando este trabalho como objectivo uacuteltimo de uma licenciatura e

mestrado integrado em Engenharia Informaacutetica

Comeccedilo assim por agradecer a todos os meus professores da FCT que ao longo

destes 5 anos contribuiacuteram para a minha formaccedilatildeo acadeacutemica

Aos meus amigos que no estudo nas diversotildees nos incentivos conseguiram sempre criar um

ambiente ideal e propiacutecio agrave concretizaccedilatildeo das diferentes etapas deste curso com eacutexito Para

mim foi um privileacutegio ter partilhado com eles esta etapa da minha vida

Agrave HP pela disponibilizaccedilatildeo de todas as infra-estruturas permissotildees e acessos para a

elaboraccedilatildeo deste framework Um abiente acolhedor em pessoas trabalho equipamento e

apoio

Ao meu orientador e responsaacutevel na HP Rui Miguel Ramalho Ramos (TS Consulting

Resource Manager) que sempre ponto a ajudar soube resolver atempadamente todas as

minhas solicitaccedilotildees Um muito obrigado pela camaradagem eficiecircncia e profissionalismo

com que encarou toda a implementaccedilatildeo

Um agradecimento especial ao meu orientador da tese Professor Paulo Orlando Reis

Afonso Lopes (Arquitectura de Sistemas Computacionais) pela sua orientaccedilatildeo

disponibilidade e sugestotildees que me ajudaram na conclusatildeo deste trabalho Um muito

obrigado pela sua constante presenccedila e acima de tudo pela confianccedila que me concedeu

durante toda a tese quer na preparaccedilatildeo quer na elaboraccedilatildeo Uma acessibilidade e presenccedila

que fizeram toda a diferenccedila obrigado professor

Por uacuteltimo agrave minha famiacutelia pelo encorajamento pais irmatilde e sogros Um obrigado

especial ao meu sogro Aires Pereira pelas brincadeiras que proporcionou agrave minha filha

entretendo-a para que eu pudesse estudar e desenvolver esta tese

Agrave minha esposa Nadia Pires e a minha filha Lara merecem uma menccedilatildeo especial

Agradeccedilo agrave minha esposa pelo apoio prestado nesta etapa da minha vida obrigada pelo amor

pela paciecircncia pelo otimismo pela motivaccedilatildeo e por me ter acompanhado nas horas mais

difiacuteceis desta etapa estarei eternamente grato Na minha ausecircncia soube sempre ser o Pai e a

Matildee que uma famiacutelia precisa

Agrave minha querida filha um agradecimento muito especial e um pedido de desculpas

em simultacircneo Obrigada pelos sorrisos pelos abracinhos pelos beijinhos enfimhellip por todos

os carinhos que soacute uma menina doce como ela sabe dar e que me ajudaram a ultrapassar os

momentos mais difiacuteceis desta jornada Desculpa pela falta de paciecircncia e por todos os

momentos que natildeo podemos estar juntos

VIII

Resumo

O HP CloudSystem Matrix (CSM) faz parte de uma pilha de software HP para computaccedilatildeo

na cloud que cobre todos os niacuteveis de serviccedilo considerados relevantes IaaS (Infra-estrutura

como Serviccedilo) PaaS (Plataforma como Serviccedilo) e SaaS (Software como Serviccedilo) Apesar de

ser a base desta pilha ie oferecer o niacutevel IaaS eacute um produto extremamente complexo pois

interage com todas as infra-estruturas as computacionais (ie servidores fiacutesicos ou virtuais)

as de armazenamento (do disco interno aos discos em servidores de armazenamento) e as de

interligaccedilatildeo (redes Ethernet e FC)

Apesar de toda a complexidade da infra-estrutura real e virtual que gere o CSM

torna conceptualmente simples a entrega aos consumidores de infra-estruturas para suporte a

aplicaccedilotildees 1) o administrador define que recursos da infra-estrutura estatildeo disponiacuteveis para

integrar a ldquooferta cloudrdquo 2) o arquitecto define templates para as arquitecturas que considera

adequadas para necessidades dos consumidores (eg arquitectura 3-tier para uma soluccedilatildeo

ERP - Enterprise Resource Planning) e 3) o consumidor escolhe o template que melhor se

ajusta agraves suas necessidades e efectua um pedido de aprovisionamento da infra-estrutura

A interacccedilatildeo entre os diferentes interlocutores (1) (2) (3) e o CSM eacute

fundamentalmente realizada sobre portais contudo especialmente no caso do consumidor o

portal disponibilizado pelo produto tem sido considerado como ldquocomplexordquo por apresentar

informaccedilatildeo demasiado teacutecnica ldquoriacutegidordquo por natildeo poder ser customizado (por exemplo para

suprimir a ldquoinformaccedilatildeo demasiado teacutecnicardquo) e ldquogrosseirordquo por natildeo permitir a especificaccedilatildeo

mais fina das caracteriacutesticas da infra-estrutura que se quer aprovisionar (por exemplo permite

variar o nuacutemero de CPUs e a quantidade de memoacuteria de um servidor mas natildeo permite

escolher a tecnologia dos discos que se pretendem aprovisionar eg SSD em vez de FC 15K

em vez de 10K rpm) Assim o objectivo final da dissertaccedilatildeo eacute desenvolver um framework

que permita com base num conjunto (extensiacutevel e configuraacutevel) de opccedilotildees preacute-definidas e

em layouts customizaacuteveis definir portais que se integram com o HP CloudSystem Matrix e

que permitam aos utilizadores (consumidores) uma interacccedilatildeo natildeo soacute mais simples mas

tambeacutem mais versaacutetil

Neste trabalho satildeo abordados os modelos de serviccedilo e de implantaccedilatildeo (deployment)

de clouds a virtualizaccedilatildeo (natildeo somente de servidores mas tambeacutem de armazenamento e de

redes) pedra base de toda a tecnologia cloud e os moacutedulos e APIs disponiacuteveis para

interoperar com o CSM nomeadamente API-MOE e API-VMware Por fim eacute apresentada

uma framework com uma arquitectura multicamada (N-tier) implementada com tecnologias

padratildeo TCPIP para a pilha de comunicaccedilotildees REST (Representational State Transfer) para

regular a interacccedilatildeo e troca de informaccedilatildeo clienteservidor e XML (Extensible Markup

Language) e JSON (JavaScript Object Notation) como formatos de dados

Palavras-chave Computaccedilatildeo na nuvem Portal de interacccedilatildeo Traduccedilatildeo Binaacuteria

Virtualizaccedilatildeo de Servidores Virtualizaccedilatildeo de Armazenamento e Virtualizaccedilatildeo da Rede

IX

Abstract

The HP CloudSystem Matrix (CSM) is a part of the HP software stack for cloud computing

that covers all relevant service levels IaaS (Infrastructure as a Service) PaaS (Platform as a

Service) and SaaS (Software as a Service) Although it rests at the base of the stack ie only

offers the IaaS level it is an extremely complex product since it interacts with all

infrastructures computing (ie physical and virtualized servers) storage (from individual

drives to disk arrays) and networking (Ethernet and FC networks)

Despite all the (real) infrastructureacutes complexity that CSM deals with the delivery (to

end users ndash aka infrastructure consumers) of infrastructures for application support

becomes a conceptually simple task (1) the administrator defines which infrastructure

resources are available to integrate the cloud offer (2) the architect defines templates for

those architectures he deems appropriate for the end users (eg 3-tier architecture for an ERP

- Enterprise Resource Planning - solution) (3) the end user chooses the template that better

suits its needs and then submits a request for the delivery of the infrastructure

The interaction between the different counterparts (1) (2) and (3) and the CSM is

fundamentally realised over portals however especially in the case of the end user the portal

has been considered complex since it presents too much technical information rigid

since it is not customizable (eg to suppress the too much technical information) and

coarse since it does not allow a finer-graned specification of the infrastructureacutes attributes

that are required (eg it allows to change the number of CPUs and the amount of memory in

the server but it does not allow one to choose the disk technologies eg SSD instead of FC

or 15K instead 10K rpm) Therefore the final goal of this dissertation is to develop a

framework that allows with a set of pre-defined settings and customizable layouts to define

portals that are integrated with HP CloudSystem Matrix and enables a simpler user

interaction

In this work we studied service and cloud implementation models virtualization (not

only server virtualization but also storage and network virtualization) the foundation of all

cloud technologies modules and APIs that interoperate with CSM namely API-MOE and

API-VMware Finally we present a framework (prototype) implemented in a multi-layer

architecture (N-tier) with standard technologies TCPIP for the communication stack REST

(Representational State Transfer) to control the interaction and the clientserver information

flows and XML (eXtensible Markup Language) and JSON (JavaScript Object Notation) for

the data formats

Keywords Cloud Computing Interaction Portal Binary Translation Server Virtualization

Storage Virtualization and Network Virtualization

X

Glossaacuterio e Lista de siglas

API Application Programming Interface

BIOS Basic InputOutput System

CC Computaccedilatildeo em Cloud

CIFS Common Internet File System

CL Command Line

CMS Console Monitor System

CP Control Program

CPU Central Processing Unit

CSS Cascading Style Sheets

DAS Direct-Attached Storage

Dom0 Domiacutenio 0 do XenServer

DomU Domiacutenio U do XenServer

DVFilter Distributed Virtual Filter

DynaRecs Dynamic Recompilation

EIDE Enhanced Integrated Drive Electronics

FC Fibre Channel

FCoE Fibre Channel over Ethernet

FTP File Transfer Protocol

GUEST Sistema Virtualizado

HD Hard Drive

HOST Servidor Hospedeiro

HP Hewlett-Packard

HPCMS HP Console Management System

CSM HP CloudSystem Matrix (Hewlett-Packard)

IC Insight Control (Hewlett-Packard)

ID Insight Dynamics (Hewlett-Packard)

IO Infrastructure Orchestration (Hewlett-Packard)

SA Server Automation (Hewlett-Packard)

SS SiteScope (Hewlett-Packard)

UD Universal Discovery (Hewlett-Packard)

HPVM HP Integrity Virtual Machine

VMAN Virtualization Manager (Hewlett-Packard)

VMMGR HP Integrity Virtual Machines Manager (Hewlett-Packard)

XI

HTTP HyperText Transfer Protocol

HVM Virtualizaccedilatildeo assistida por hardware

IO InputOutput

IaaS Infrastructure as a Service

IBM International Business Machines Corporation

IDE Integrated Development Environment

iSCSI Internet Small Computer System Interface

J2EE Java2 Platform Enterprise Edition

JS JavaScript

JSON JavaScript Object Notation

JVM Java Virtual Machine

LAN Local Area Network

LUN Logical Unit Number

LVM Logical Volume Manager

MAC Apple Macintosh

MOE Matrix Operating Environment

MSCS Microsoft Cluster Server

NAS Network Attached Storage

nbAPI Northbound API

NetApp Network Appliance

NFS Network File System

NIC Adaptador de rede (Network Interface Controller)

NVRAM Non-Volatile Random Access Memory

PaaS Plataform as a Service

PATA Parallel Advanced Technology Attachment

pNIC Physical Network Interface Controller

POSIX Portable Operating System Interface

PV Para-Virtualizaccedilatildeo

PVHVM Para-Virtualizaccedilatildeo + Virtualizaccedilatildeo assistida por hardware

QOS Quality Of Service

RAID Redundant Array of Independent Disks

RAM Random Access Memory

REST REpresentational State Transfer

RPC Remote Procedure Call

SaaS Software as a Service

XII

SAN Storage Area Network

SAP Sistemas Aplicaccedilotildees e Produtos

SAS Serial Attached SCSI

SATA Serial ATA

SCSI Small Computer System Interface

SCVMM System Center Virtual Machine Manager

SF Sistema de Ficheiros

SLA Service Level Agreement

SMTP Simple Mail Transfer Protocol

SO Sistema Operativo

SOA Service-Oriented Architecture

SOAP Simple Object Access Protocol

SSD Solid-State Drive

TCPIP Transmission Control ProtocolInternet Protocol

TI Tecnologias de Informaccedilatildeo

URI Uniform Resource Identifier

URL Uniform Resource Locator

UUID Identificador Uacutenico Universal

VDI Virtual Disk Image

vDS vNetwork Distributed Switch

VHD Virtual Hard Disk (Microsoft)

VLAN Virtual LAN

VM Virtual Machine

VMBus Virtual Machine Buss

VMDK Virtual Machine Disk (VMware)

VMFS Virtual Machine File System

VMM hipervisor (tambeacutem designado Virtual Machine Manager)

vNIC Virtual Network Interface Controller

VSC Virtual Service Client

VSP Virtual Service Provider

vSwitch Virtual Switch

WOA Web-Oriented Architecture

WS Web Service

WWW World Wide Web

XML Extensible Markup Language

XIII

Iacutendice

1 Introduccedilatildeo 1

11 Descriccedilatildeo e contexto 1

12 Objectivos 3

13 Organizaccedilatildeo 3

14 Contribuiccedilotildees 4

15 Resumo 5

2 Virtualizaccedilatildeo 6

21 Evoluccedilatildeo histoacuterica 6

22 Virtualizaccedilatildeo de Servidores 7

221 VMware (VMware Inc) 8

222 Xen (Citrix Systems Inc) 9

223 Integrity VM (HP) 10

224 Hyper-V (Microsoft) 11

23 Virtualizaccedilatildeo do Armazenamento 12

231 Armazenamento em ambientes virtualizados 14

24 Virtualizaccedilatildeo da Rede 16

25 Resumo 18

3 Computaccedilatildeo na Cloud 19

31 Periacutemetro de uma cloud 19

32 Modelos de serviccedilo 20

33 Resumo 22

4 HP Cloud Stack 23

41 HP CloudSystem Matrix 23

42 Modelos de interacccedilatildeo com o HP CSM 25

43 Papeacuteis e Portais de interacccedilatildeo 26

44 Conceitos fundamentais da plataforma HP CSM 28

45 Limitaccedilotildees do HP CloudSystem Matrix 30

46 Resumo 31

5 O framework e a sua Realizaccedilatildeo 32

51 Arquitectura 32

52 Integraccedilatildeo da framework no HP CSM (MOE e VMware) 33

53 Um desenho guiado pela Interface Utilizador 34

54 Camada de apresentaccedilatildeo 38

XIV

541 Do lado do cliente 38

542 Do lado do servidor 39

543 Lista de primitivas na oacuteptica dos recursos 40

55 Camada ServiccedilosLoacutegica 41

551 Camada de Serviccedilos 42

552 Camada Loacutegica 42

56 Camada de Dados 68

561 Dados natildeo persistentes 68

562 Dados persistentes 69

57 Feedback 72

58 Questotildees principais 73

59 Visatildeo global 75

510 Resumo 76

6 Consideraccedilotildees Finais 77

61 Conclusotildees 78

62 Trabalho futuro 79

63 Resumo 80

Referecircncias bibliograacuteficas 81

XV

Iacutendice de Figuras

Figura 1 - Ambiente natildeo Virtualizado 1

Figura 2 - Ambiente Virtualizado 1

Figura 3 - Infra-estrutura CSM 2

Figura 4 - Arquitectura VMware ESXi (Tipo-1) 9

Figura 5 - Arquitectura XenServer 10

Figura 6 - Arquitectura Hyper-V 11

Figura 7 - Redundant Array Independent Disks (RAID) 12

Figura 8 - Storage Area Network (SAN) 13

Figura 9 - Network Attached Storage (NAS) 13

Figura 10 - Datastore e VMs 14

Figura 11 - Sistema de Ficheiros VMFS 15

Figura 12 - Network File System (NFS) 15

Figura 13 - Infra-estrutura de rede tradicional 16

Figura 14 - Infra-estrutura de rede virtual 17

Figura 15 - vNetwork Distributed Switch ndash vDS 17

Figura 16 - Distributed Virtual Filter (DVFilter) 18

Figura 17 - Relaccedilatildeo entre serviccedilos e responsabilidades 21

Figura 18 - Relaccedilotildees e papeacuteis dos envolventes nos modelos de Cloud Computing 22

Figura 19 - Contributos CloudStack 23

Figura 20 - Desenho publicaccedilatildeo e implementaccedilatildeo do cataacutelogo de serviccedilos 24

Figura 21 - Infra-estrutura HP CloudSystem Matrix 25

Figura 22 - Utilizadores de TI em cloud e respectivos papeacuteis (roles) 26

Figura 23 - Portal do Administrador 27

Figura 24 - Portal do Arquitecto 27

Figura 25 - Portal do Utilizador final 28

Figura 26 - Arquitectura n-tier 32

Figura 27 - Relaccedilatildeo dos VMIDs (WebService-MOE-vCenter) 33

Figura 28 - Estrutura em aacutervore do menu lateral esquerdo 35

Figura 29 - Portal 36

Figura 30 - Diagrama de Sequecircncia (Criaccedilatildeo de um Serviccedilo) 37

Figura 31 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull 41

Figura 32 - Execuccedilatildeo tab ldquoTemplaterdquo 45

Figura 33 - Execuccedilatildeo tab ldquoServicerdquo 48

Figura 34 - Execuccedilatildeo tab ldquoServerGroupsrdquo 51

Figura 35 - Execuccedilatildeo tab ldquoServerrdquo 56

XVI

Figura 36 - Execuccedilatildeo tab ldquoDisksrdquo 60

Figura 37 - Execuccedilatildeo tab ldquoSoftwarerdquo 61

Figura 38 - Execuccedilatildeo tab ldquoInterfacerdquo 62

Figura 39 - Listagem das redes existentes 64

Figura 40 - Execuccedilatildeo tab ldquoSnapshotrdquo 65

Figura 41 - Execuccedilatildeo tab ldquoRequestsrdquo 66

Figura 42 - Execuccedilatildeo tab ldquoServerPoolsrdquo 68

Figura 43 - Realm JAAS (Java Authentication and Authorization Service) 69

Figura 44 - Modelo ER 71

Figura 45 - Mensagens SOAP na invocaccedilatildeo de processos do MOE 75

Figura 46 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull do WEBSERVICE 76

Figura 47 - VMM ou hypervisor do Tipo-2 87

Figura 48 - VMM ou hypervisor do ldquohiacutebridordquo 88

Figura 49 - VMM ou hypervisor do Tipo-1 88

Figura 50 - Emulaccedilatildeo de Hardware 89

Figura 51 - Virtualizaccedilatildeo Completa 90

Figura 52 - Para-Virtualizaccedilatildeo 91

Figura 53 - Virtualizaccedilatildeo assistida por Hardware 91

Figura 54 - LUN num SAN iSCSI ou SAN FC 99

Figura 55 - Network File System (NFS) 100

Figura 56 - Projecto ldquoDynamic Web Projectrdquo no eclipse 102

Figura 57 - Plataforma Java 107

Figura 58 - Comando ldquojava -versionrdquo 108

Figura 59 - Instalaccedilatildeo da Plataforma Java 109

Figura 60 - Variaacutevel de sistema ldquoPathrdquo 109

Figura 61 - Variaacutevel de sistema ldquoCLASSPATHrdquo 110

Figura 62 - Variaacutevel de sistema ldquoJAVA_HOMErdquo 110

Figura 63 - Directoria de instalaccedilatildeo do Servidor Apache Tomcat 111

Figura 64 - Link localhost Apache Tomcat 112

Figura 65 - Add repository 113

Figura 66 - Dynamic Web Project 114

Figura 68 - Propriedades do Dynamic Web Project 115

Figura 69 - Webxml do Dynamic Web Project 115

Figura 70 - Directoria base do Dynamic Web Project 116

Figura 71 - Criar uma classe 117

Figura 72 - Servidor Apache Tomcat dentro do Eclipse 118

Figura 73 - Execuccedilatildeo no Browser 118

XVII

Figura 74 - Projecto base MOE 119

Figura 75 - Importaccedilatildeo do projecto real MOE 119

Figura 76 - Projecto real MOE 120

Figura 77 - Ficheiro ldquoadminUsersListtxtrdquo 121

Figura 78 - Ficheiro ldquohp-io-v5wsdlrdquo 121

Figura 79 - WSDL do HPMOE 121

Figura 80 - Ficheiro ldquologinconfigrdquo 122

Figura 81 - Ficheiro ldquologinconfigrdquo 122

Figura 82 - Ficheiro ldquovmwareAcesstxtrdquo 123

Figura 83 - Servidor Apache Tomcat dentro do Eclipse 123

Figura 84 - Compilaccedilatildeo do projecto MOE 124

Figura 85 - Login page MOE 124

Figura 86 - Data page MOE 124

Figura 87 - Detalhes gerais do Template ldquoTemplate_3srvrdquo 125

Figura 88 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo 126

Figura 89 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 126

Figura 90 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 127

Figura 91 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 127

Figura 92 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 127

Figura 93 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo 128

Figura 94 - Criaccedilatildeo do serviccedilo ldquomyServicerdquo 128

Figura 95 - Lista de pedidos do utilizador 129

Figura 96 - Eventual cancelamento de um pedido 129

Figura 97 - Serviccedilo ldquomyServicerdquo criado 130

Figura 98 - Listagem dos acessos remotos 130

Figura 99 - Acesso remoto na tab ldquoServerrdquo 131

Figura 100 - Acesso remoto por RDP 131

Figura 101 - Acesso remoto por Telnet 131

Figura 102 - Acesso remoto por VMRC 131

Figura 103 - Menu lateral esquerdo ldquoMOE Helprdquo 132

Figura 104 - Menu lateral esquerdo ldquoMOE Helprdquo 132

Figura 105 - ldquoImport xmlrdquo help 133

Figura 106 - Template info Tab 134

Figura 107 - Service info Tab 134

Figura 108 - ServerGroup info Tab 135

Figura 109 - Server info Tab 135

Figura 110 - Disk info Tab 136

XVIII

Figura 111 - Software info Tab 136

Figura 112 - Interface info Tab 137

Figura 113 - Request info Tab 137

Figura 114 - About info Tab 138

Figura 115 - Team info Tab 138

Figura 116 - Javadoc info Tab 139

Figura 117 - ldquoMapsrdquo da relaccedilatildeo Host VM 140

Figura 118 - ldquoMapsrdquo da relaccedilatildeo Host Network 141

Figura 119 - ldquoMapsrdquo da relaccedilatildeo Host Datastore 142

Figura 120 - ldquoMapsrdquo da relaccedilatildeo VM Network 143

Figura 121 - ldquoMapsrdquo da relaccedilatildeo Host Datastore 144

Figura 122 - Detalhes gerais do Template ldquoTemplate_3srvrdquo 146

Figura 123 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo 146

Figura 124 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 147

Figura 125 - Detalhes dos Custos do Servidor ldquoSvrGrp1-1rdquo 147

Figura 126 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 147

Figura 127 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 147

Figura 128 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo 148

Figura 129 - Ficheiro ldquoTemplateListxmlrdquo 148

Figura 130 - Ficheiro ldquoTemplate_3srvxmlrdquo 149

Figura 131 - Importaccedilatildeo de um Template em formato XML 149

Figura 132 - InfoWindow ldquoDelete Templaterdquo 149

Figura 133 - InfoWindow com a visualizaccedilatildeo do Template em XML 150

Figura 134 - Ficheiro ldquoTemplate_3srv_ServiceListxmlrdquo 150

Figura 135 - Criaccedilatildeo de um Serviccedilo com base no Template ldquoTemplate_3srvlrdquo 151

Figura 136 - Lista de todos os pedidos do utilizador 151

Figura 137 - Eventual cancelamento de um pedido 152

Figura 138 - Lista dos pedidos resultantes da relaccedilatildeo Templateutilizador 152

Figura 139 - Detalhes do Serviccedilo ldquomyServicerdquo do Template ldquoTemplate_3srvrdquo 153

Figura 140 - Ficheiro ldquoallServicesListxmlrdquo 153

Figura 141 - Ficheiro ldquomyServicexmlrdquo 154

Figura 142 - InfoWindow com a visualizaccedilatildeo do Serviccedilo em XML 154

Figura 143 - Remoccedilatildeo de um Serviccedilo 154

Figura 144 - Power ON de um Serviccedilo 155

Figura 145 - Power OFF de um Serviccedilo 155

Figura 146 - Power Cycle de um Serviccedilo 155

Figura 147 - Activaccedilatildeo de um Serviccedilo 155

XIX

Figura 148 - Desactivaccedilatildeo de um Serviccedilo 155

Figura 149 - Lista dos Service Actions 156

Figura 150 - Lista dos Acessos Remotos do um Serviccedilo 156

Figura 151 - Acesso remoto por RDP 156

Figura 152 - Acesso remoto por Telnet 156

Figura 153 - Acesso remoto por VMRC 157

Figura 154 - Listagem dos pedidos por Serviccedilo 157

Figura 155 - Detalhes do Grupo de Servidores ldquoSvrGrp1rdquo do Serviccedilo ldquomyServicerdquo 158

Figura 156 - Ficheiro ldquoSvrGrp1xmlrdquo 158

Figura 157 - InfoWindow com a visualizaccedilatildeo do Grupo de Servidores em XML 159

Figura 158 - Adiccedilatildeo de Servidores ao Grupo de Servidores 159

Figura 159 - Remoccedilatildeo de Servidores ao Grupo de Servidores 159

Figura 160 - Ediccedilatildeo de Servidores ao Grupo de Servidores 160

Figura 161 - Power ON de um ServerGroup 160

Figura 162 - Power OFF de um ServerGroup 160

Figura 163 - Power Cycle de um ServerGroup 160

Figura 164 - Activaccedilatildeo de um ServerGroup 161

Figura 165 - Desactivaccedilatildeo de um ServerGroup 161

Figura 166 - Listagem de todos os Snapshots existentes no Grupo de Servidores 161

Figura 167 - Acccedilotildees SnapshotServidor 161

Figura 168 - Revert Snapshot 161

Figura 169 - Delete Snapshot 162

Figura 170 - Create Snapshot 162

Figura 171 - Lista de ldquoStereotype Disksrdquo 162

Figura 172 - Adicionar um disco virtual ldquoDisk62rdquo ao Grupo de Servidores 162

Figura 173 - Adicionar um disco fiacutesico ldquoDisk788rdquo ao Grupo de Servidores 163

Figura 174 - Detalhes do Servidor ldquoSvrGrp1-1rdquo do Serviccedilo ldquomyServicerdquo 163

Figura 175 - Ficheiro ldquohostmygostr01_lsxmlrdquo 164

Figura 176 - InfoWindow com a visualizaccedilatildeo do Servidor em XML 164

Figura 177 - Remoccedilatildeo de um Servidor 165

Figura 178 - Ediccedilatildeo de um Servidor 165

Figura 179 - Power ON de um Servidor 165

Figura 180 - Power OFF de um Servidor 165

Figura 181 - Power Cycle de um Servidor 166

Figura 182 - Activaccedilatildeo de um Servidor 166

Figura 183 - Desactivaccedilatildeo de um Servidor 166

Figura 184 - Create Snapshot 166

XX

Figura 185 - Pools de Servidores 167

Figura 186 - Criar uma Pools de Servidores 167

Figura 187 - Remoccedilatildeo de uma Pools de Servidores 167

Figura 188 - InfoWindo de aviso ao administrador 167

Figura 189 - Informaccedilatildeo dos hosts fiacutesicos 168

Figura 190 - Sessotildees Remotas num Servidor 168

Figura 191 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 169

Figura 192 - Criaccedilatildeo de um ldquoStereotype Disksrdquo 169

Figura 193 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 170

Figura 194 - Lista de Software 170

Figura 195 - Detalhes do Software 171

Figura 196 - Detalhes do Interface NIC0rdquo do Servidor ldquoSvrGrp1-1rdquo 171

Figura 197 - Listagem de todas as redes 172

Figura 198 - Detalhe da rede 172

Figura 199 - Adiccedilatildeo de um IP flutuante agrave Interface ldquoNIC0rdquo 172

Figura 200 - Remoccedilatildeo de um IP flutuante pertencente agrave Interface ldquoNIC0rdquo 173

Figura 201 - Mover um IP flutuante para a Interface ldquoNIC0rdquo 173

XXI

Iacutendice de Tabelas

Tabela 1 - Funccedilotildees associadas agrave inicializaccedilatildeo do Webservice 43

Tabela 2 - Funccedilotildees associadas ao Template 47

Tabela 3 - Funccedilotildees associadas ao Serviccedilo 50

Tabela 4 - Funccedilotildees associadas ao Grupo de Servidores 54

Tabela 5 - Funccedilotildees associadas aos Servidores 58

Tabela 6 - Funccedilotildees associadas aos Discos 60

Tabela 7 - Funccedilotildees associadas ao Software 62

Tabela 8 - Funccedilotildees associadas agraves Interfaces 63

Tabela 9 - Funccedilotildees associadas agraves Redes 65

Tabela 10 - Funccedilotildees associadas aos Snapshots 65

Tabela 11 - Funccedilotildees associadas aos Requests 67

Tabela 12 - Funccedilotildees associadas agraves Pools de Servidores 68

Tabela 13 - Dados gerais VMWARE 93

Tabela 14 - Detalhes VMWARE 93

Tabela 15 - Dados gerais Citrix 94

Tabela 16 - Dados detalhados Citrix 94

Tabela 17 - Dados gerais HP 95

Tabela 18 - Dados detalhados HP 95

Tabela 19 - Dados gerais Microsoft 96

Tabela 20 - Dados detalhados Microsoft 96

XXII

Iacutendice de Anexos

Anexo A (Virtualizaccedilatildeo Vantagens e inconvenientes) 84

Anexo B (Virtualizaccedilatildeo Arquitectura) 87

Anexo C (Virtualizaccedilatildeo Tipos de Implementaccedilatildeo) 89

Anexo D (Detalhes da plataforma e restriccedilotildees da VMware) 93

Anexo E (Detalhes da plataforma e restriccedilotildees da Citrix) 94

Anexo F (Detalhes da plataforma e restriccedilotildees da HP) 95

Anexo G (Detalhes da plataforma e restriccedilotildees da Microsoft) 96

Anexo H (Ambiente de armazenamento VMware ESXi e Citrix Xen) 97

Anexo I (Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo) 102

Anexo J (Ferramentas de desenvolvimento WebService) 107

Anexo K (Criar e executar um ldquoDynamic Web Projectrdquo no Eclipse) 114

Anexo L (Importar configurar e executar o RESTWEBSERVICE - MOE) 119

Anexo M (Criaccedilatildeo de um Serviccedilo e ligaccedilatildeo agraves VMs) 125

Anexo N (MOE Help) 132

Anexo O (VMware - Virtual Machine Resources) 140

Anexo P (Scenario view) 146

1

1 Introduccedilatildeo

11 Descriccedilatildeo e contexto

A evoluccedilatildeo do poder de processamento dos computadores actuais eacute notoacuteria nestes

uacuteltimos anos Infelizmente uma grande parte desse poder natildeo eacute efectivamente usada

no quotidiano havendo por isso uma crescente preocupaccedilatildeo com os desperdiacutecios que

resultam dessa subutilizaccedilatildeo Tecnologias como a virtualizaccedilatildeo em primeiro lugar e

a Cloud Computing como estaacutegio mais avanccedilado desta satildeo formas de reduccedilatildeo de tais

desperdiacutecios

Virtualizaccedilatildeo

Observando as duas primeiras figuras rapidamente ficamos com a ideia do

que eacute real figura 1 e do que eacute virtual figura 2 Assim entenda-se o real como algo

com caracteriacutesticas fiacutesicas concretas palpaacuteveis e o virtual associado a algo simulado

abstracto uma imitaccedilatildeo do real Eacute aqui que se enquadra a virtualizaccedilatildeo o simular de

um ambiente real que suporta todo um ambiente que vai do sistema de operaccedilatildeo agraves

aplicaccedilotildees sem necessidade de acesso agrave maacutequina real que neste caso funciona como

hospedeira desta tecnologia

A virtualizaccedilatildeo encaixa-se num mundo ilusoacuterio de vaacuterias maacutequinas virtuais

(Virtual Machines - VMs) independentes e isoladas entre si cada uma com um

Sistema Operativo (SO) proacuteprio e potencialmente diferente do SO das demais

Figura 1 - Ambiente natildeo Virtualizado

Figura 2 - Ambiente Virtualizado

2

Cloud Computing

As estrateacutegias de consolidaccedilatildeo de servidores propiciadas pelo uso de

virtualizaccedilatildeo conduzem de facto agrave reduccedilatildeo de custos de hardware software e

energia mas natildeo evitam (e podem ateacute aumentar) o nuacutemero de servidores agora

virtuais a gerir acrescentando o custo humano agrave equaccedilatildeo A adopccedilatildeo do paradigma

cloud (a ver na secccedilatildeo 2) eacute o passo a dar para manter o custo total sob controlo

O HP CloudSystem Matrix (CSM) [1] faz parte de uma pilha de software HP

para computaccedilatildeo na cloud que cobre todos os niacuteveis de serviccedilo considerados

relevantes IaaS (Infra-estrutura como Serviccedilo) PaaS (Plataforma como Serviccedilo) e

SaaS (Software como Serviccedilo) Apesar de ser a base desta pilha ie oferecer o niacutevel

IaaS eacute um produto extremamente complexo pois interage com todas as infra-

estruturas as computacionais (ie servidores fiacutesicos ou virtuais) as de

armazenamento (do disco interno aos discos em servidores de armazenamento) e as

de interligaccedilatildeo (redes Ethernet e FC)

Apesar de toda a complexidade da infra-estrutura real e virtual que gere o

CSM torna conceptualmente simples a entrega aos consumidores de infra-estruturas

para suporte a aplicaccedilotildees 1) o administrador define que recursos da infra-estrutura

estatildeo disponiacuteveis para integrar a ldquooferta cloudrdquo 2) o arquitecto define templates para

as arquitecturas que considera adequadas para necessidades dos utilizadores

consumidores (eg arquitectura 3-tier para uma soluccedilatildeo ERP1) e 3) o consumidor

escolhe o template que melhor se ajusta agraves suas necessidades e efectua um pedido de

aprovisionamento de uma infra-estrutura

Figura 3 - Infra-estrutura CSM

A interacccedilatildeo entre os diferentes interlocutores (1) (2) (3) e o CSM eacute

fundamentalmente realizada sobre portais contudo especialmente no caso do

utilizador-consumidor o portal disponibilizado pelo produto tem sido considerado

1 ERP (Enterprise Resource Planning) cobre uma larga fatia das necessidades de uma empresa Permite uma

visatildeo integrada em tempo real dos seus principais processos de negoacutecios

3

como ldquocomplexordquo por apresentar informaccedilatildeo demasiado teacutecnica ldquoriacutegidordquo por natildeo

poder ser customizado (por exemplo para suprimir a ldquoinformaccedilatildeo demasiado

teacutecnicardquo) e ldquogrosseirordquo por natildeo permitir a especificaccedilatildeo mais fina das caracteriacutesticas

da infra-estrutura que se quer aprovisionar (por exemplo permite variar o nuacutemero de

CPUs e a quantidade de memoacuteria de um servidor mas natildeo permite escolher a

tecnologia dos discos que se pretendem aprovisionar eg SSD (Solid-State Drive)

em vez de FC 15K em vez de 10K RPM)

12 Objectivos

O objectivo desta tese eacute desenvolver um framework que permita com base num

conjunto (extensiacutevelconfiguraacutevel) de opccedilotildees preacute-definidas e em layouts

customizaacuteveis definir portais que se integram com o HP CloudSystem Matrix e que

permitam aos utilizadores (consumidores IaaS) uma interacccedilatildeo mais simples praacutetica e

organizada natildeo soacute na visualizaccedilatildeo de toda a informaccedilatildeo mas tambeacutem das acccedilotildees

possiacuteveis de serem executadas nos recursos disponibilizados que satildeo ampliadas face agrave

oferta disponiacutevel no portal standard do CSM

Neste trabalho foram estudados modelos de serviccedilo e de implantaccedilatildeo

(deployment) de clouds a virtualizaccedilatildeo (natildeo somente de servidores mas tambeacutem de

armazenamento e de redes) pedra base de toda a tecnologia cloud e os moacutedulos e

APIs disponiacuteveis para interoperar com o CSM nomeadamente a API-MOE e a API-

VMware para desenvolver um framework com uma arquitectura multicamada (N-tier)

sobre TCPIP e usando o protocolo REST (Representational State Transfer) para troca

de informaccedilatildeo

13 Organizaccedilatildeo

O presente trabalho encontra-se organizado em 6 secccedilotildees que vatildeo desde o estudo

preacutevio das diferentes tecnologias ateacute agraves Consideraccedilotildees finais tidas como conclusatildeo

Assim a secccedilatildeo 1 eacute a presente introduccedilatildeo onde se apresenta a virtualizaccedilatildeo

como tecnologia nuclear ao trabalho enunciam-se os objectivos a organizaccedilatildeo de

todo o relatoacuterio e as suas contribuiccedilotildees

Na secccedilatildeo 2 eacute feita uma abordagem agrave virtualizaccedilatildeo desde a sua evoluccedilatildeo

histoacuterica culminando com a visatildeo actual das quatro tecnologias mais representativas

no mercado VMware Citrix HP e Microsoft Aborda-se natildeo soacute a virtualizaccedilatildeo de

servidores mas tambeacutem a de armazenamento e de rede

Na secccedilatildeo 3 apresenta-se uma nova tecnologia computaccedilatildeo na Cloud

resultado da uniatildeo da virtualizaccedilatildeo e moacutedulos de orquestraccedilatildeo Satildeo abordados os seus

modelos de implementaccedilatildeo e os diferentes niacuteveis de serviccedilo que podem ser oferecidos

neste paradigma

Na secccedilatildeo 4 descreve-se uma nova tecnologia HP Cloud Stack como pilha de

software e hardware Satildeo abordadas tecnologias como HP CloudSystem Matrix os

4

seus modelos de interacccedilatildeo papeis e portais conceitos fundamentais para perceber o

restante relatoacuterio e as limitaccedilotildees desta uacuteltima tecnologia razatildeo de ser deste trabalho

Na secccedilatildeo 5 eacute apresentada a framework (protoacutetipo) desde a arquitectura

implementaccedilatildeo dos diferentes moacutedulos execuccedilatildeo nos cenaacuterios possiacuteveis e coacutedigo

principal e finalmente feedback dos orientadores e redefiniccedilatildeo de objectivos ou

estrateacutegias de realizaccedilatildeo e por uacuteltimo a discussatildeo da relaccedilatildeo entre os serviccedilos e

funcionalidades do HP MOE e a framework implementada

Na secccedilatildeo 6 satildeo apresentadas as conclusotildees sobre o trabalho realizado

perspectivas para desenvolvimentos futuros fazendo-se uma discussatildeo final sobre as

dificuldades encontradas na implementaccedilatildeo

14 Contribuiccedilotildees

Todo o estudo de conceitos relaccedilotildees e teorias tem sempre como objectivo uacuteltimo a

aquisiccedilatildeo de mais conhecimento e acima de tudo aplicabilidade Nesse intuito a

principal contribuiccedilatildeo deste trabalho estaacute directamente relacionada com o principal

objectivo um framework modelo de acesso raacutepido intuitivo organizado

personalizaacutevel e acima de tudo praacutetico no acesso a recursos de uma infra-estrutura

Apresentam-se de seguida todas as contribuiccedilotildees identificadas

Um modelo simples com uma curta curva de aprendizagem e uma

flexibilidade com acessos proacuteprios individuais e personalizados a cada utilizador O

acesso a toda a informaccedilatildeorecursos eacute feita numa visualizaccedilatildeo das componentes

principais em aacutervore permitindo assim uma raacutepida visualizaccedilatildeo das configuraccedilotildees de

todo o Serviccedilo criado e um acesso raacutepido e intuitivo aos detalhes de cada componente

Visualizaccedilatildeo imediata do Cataacutelogo de Serviccedilos com todos os Templates e a

correspondente associaccedilatildeo dos serviccedilos por Template A descriccedilatildeo eacute a mesma

relativamente aos recursos associados a cada Serviccedilo A informaccedilatildeo visualizada eacute

apenas a necessaacuteria em cada visualizaccedilatildeo e instanciaccedilatildeo

Modelo personalizaacutevel com acccedilotildees como ocultar ou visualizar paineacuteis de

informaccedilatildeo lista de todos os pedidos listagem por Template por Serviccedilo layout de

toda a interface do menu em aacutervore um simples clique e toda o portal fica

personalizaacutevel a um determinado utilizador

Disponibilizaccedilatildeo de todas as acccedilotildees possiacuteveis a cada recurso na tab respectiva

da visualizaccedilatildeo da informaccedilatildeo associada a esse recurso Acccedilotildees acessiacuteveis e raacutepidas

de executar sem menus e submenus com sucessivos cliques que soacute atrasam todo o

processo A acessibilidade aos recursos eacute completa com acccedilotildees de grupo e acccedilatildeo

individuais a cada recurso permitindo assim o verdadeiro aproveitamento de todo o

Serviccedilo criado

Uma informaccedilatildeo hierarquizada e organizada em agrupamentos loacutegicos por

recursos eacute um processo muito faacutecil de seguir e perceber associada a esta

5

disponibilizaccedilatildeo de informaccedilatildeo acccedilotildees que possam ser executadas nesses recursos eacute

o objectivo da simplicidade e performance deste modelo

15 Resumo

Neste capiacutetulo fez-se uma descriccedilatildeo e contexto introdutoacuterio de conceitos como

Virtualizaccedilatildeo Cloud Computing e HP CloudSystem Matrix onde se descreveram as

mais-valias do uso destas tecnologias vantagens e inconvenientes e os papeacuteisfunccedilotildees

dos principais interlocutores Descreveram-se os objectivos desta dissertaccedilatildeo um

framework que solucione e melhore os problemas existentes em modelos

implementados actualmente Foi igualmente descrita toda a organizaccedilatildeo das diferentes

secccedilotildees e por ultimo as contribuiccedilotildees tidas no presente trabalho

6

2 Virtualizaccedilatildeo

21 Evoluccedilatildeo histoacuterica

Os primeiros passos da virtualizaccedilatildeo foram dados aproximadamente haacute meio seacuteculo e

tiveram origem em preocupaccedilotildees como heterogeneidade portabilidade estabilidade e

utilizaccedilatildeo mais eficiente de recursos Tudo comeccedilou na IBM com a sua longa lista de

variantes de uma dada arquitectura-base com as novas geraccedilotildees incompatiacuteveis com as

anteriores com muacuteltiplos SOs (mono-utilizador interactivo batch timesharing etc)

criando insatisfaccedilatildeo nos clientes Como resposta IBM lanccedilou nos anos 60 a

arquitectura 360 com suporte para virtualizaccedilatildeo (ao niacutevel do hardware) e com o

sistema de operaccedilatildeo CPCMS O CP (Control Program) era usado para gerir as VMs

e que executavam o CMS (Console Monitor System) um SO interactivo com uma

interface ldquolinha de comandordquo

Por outro lado um outro tipo de virtualizaccedilatildeo dito virtualizaccedilatildeo de aplicaccedilotildees

procura que uma aplicaccedilatildeo possa ser executada numa variedade de plataformas

distintas que apenas tecircm em comum o sistema de run-time que implementa a VM (natildeo

requer que uma VM seja ldquototalmenterdquo equivalente a uma maacutequina fiacutesica e portanto

capaz de executar um SO) Tal eacute o caso da JVM (Java Virtual Machine) capaz de

executar aplicaccedilotildees desenvolvidas na linguagem Java (nascida em 1990 de um

projecto denominado ldquoStealthrdquo da Sun Microsystems)

A implementaccedilatildeo desta tecnologia tatildeo bem aceite e cada vez mais usada nas

organizaccedilotildees demonstra a mais-valia das propriedades que caracterizam o seu

funcionamento

Isolamento Os processos das diferentes maacutequinas virtuais natildeo podem

interferir entre si ou seja um processo de uma VM natildeo pode interferir

noutra VM nem sequer no proacuteprio sistema hospedeiro (host) que suporta

toda a virtualizaccedilatildeo

Inspecccedilatildeo O gestor de maacutequinas virtuais (Virtual Machine Manager -

VMM) ou hipervisor deve ter acesso e controlo sobre todas as VMs e ateacute

sobre todos os seus processos

Interposiccedilatildeo O VMM deve poder interagir com as VMs controlar as suas

operaccedilotildees ter acesso ao fluxo de instruccedilotildees maacutequina que estas executam e

remover adicionar ou alterar essas instruccedilotildees se for necessaacuterio

Eficiecircncia As instruccedilotildees natildeo privilegiadas devem poder ser executadas

directamente no hardware sem interposiccedilatildeo do VMM

Gestatildeo O VMM deve natildeo soacute permitir manipular uma VM isoladamente

mas tambeacutem executar uma operaccedilatildeo de uma soacute vez sobre muacuteltiplas VMs

Compatibilidade de software A virtualizaccedilatildeo simula uma determinada

plataforma (real) e desse modo todo o software disponiacutevel para essa

plataforma deve poder ser executado ldquotal como estaacute (original)rdquo numa VM

7

Desempenho A sobrecarga (overhead) da camada extra de software pode

sacrificar o desempenho do sistema hospedado (guest) mas a relaccedilatildeo

custobenefiacutecios do uso da virtualizaccedilatildeo deve ser francamente positiva

O Anexo A descreve mais detalhadamente as vantagens e inconvenientes da

virtualizaccedilatildeo

22 Virtualizaccedilatildeo de Servidores

O dinamismo do triacircngulo existente entre fornecedores de software hardware e seus

clientes eacute uma constante Fornecedores como a VMware e a Microsoft publicitam as

suas soluccedilotildees de virtualizaccedilatildeo destacando as mais-valias como a utilizaccedilatildeo eficiente

de recursos partilhados gestatildeo centralizada e migraccedilatildeo dinacircmica os fornecedores de

hardware publicitam menores consumos de energia e maior interoperabilidade e

suporte as organizaccedilotildees olham para este mundo com o objectivo uacuteltimo da eficiecircncia

produtividade e custos A virtualizaccedilatildeo aparece como uma forma eficaz de fazer mais

com menos investimento

A primeira razatildeo pela qual se torna muito interessante executar muacuteltiplas VMs

num uacutenico servidor eacute a mesma pela qual executamos muacuteltiplas aplicaccedilotildees num uacutenico

servidor os recursos estariam se natildeo o fizeacutessemos muito subaproveitados Sendo

assim porque natildeo executar simplesmente muacuteltiplas aplicaccedilotildees no servidor usando um

soacute SO Podemos avanccedilar desde jaacute com uma razatildeo simples os fornecedores certificam

os seus produtos aplicaccedilotildees e serviccedilos apenas para determinados ambientes e pilhas

de software vejamos alguns exemplos 1) a Microsoft natildeo certifica configuraccedilotildees

MSCS (Microsoft Cluster Server) que incluam o serviccedilo Active Domain num dos noacutes

dos cluster 2) a VMware disponibiliza o seu produto de gestatildeo vCenter Server sobre

Unix (SUSE Linux) na forma de uma appliance fornecida pela proacutepria VMware

Assim se dispusermos de um servidor que tem os recursos apropriados para suportar

um noacute MSCS e uma instacircncia vCenter teremos de os instalar sob a forma duas VMs a

correrem sob um hipervisor instalado nesse servidor Uma outra situaccedilatildeo que ldquoobrigardquo

(do ponto de vista financeiro) agrave utilizaccedilatildeo de VMs eacute a de aplicaccedilotildees legacy uma

aplicaccedilatildeo antiga (e eacute demasiado oneroso actualizaacute-la) estaacute certificada apenas para uma

dada versatildeo de SO tambeacutem antigo que natildeo possui drivers adequados para os

servidores mais actuais sendo que o servidor antigo jaacute natildeo tem capacidade para

executar a aplicaccedilatildeo (e eacute muito oneroso mantecirc-lo) Uma soluccedilatildeo simples eacute instalar um

hipervisor num servidor recente criar uma VM e nela instalar a versatildeo antiga do SO

e a aplicaccedilatildeo

A arquitectura da virtualizaccedilatildeo estaacute descrita no Anexo B e os Tipos de

Implementaccedilatildeo no Anexo C uma leitura ajuda a perceber todos estes conceitos e

tecnologias que se seguem

Actualmente o nuacutemero de tecnologias disponiacuteveis para implementaccedilatildeo e

gestatildeo de maacutequinas virtuais tem vindo a crescer destacando-se algumas pela

8

disponibilizaccedilatildeo de um conjunto de ferramentas que as tornam vencedoras nos

mercados Seguem-se quatro exemplos das empresas (e suas tecnologias) que mais se

destacam hoje em dia

VmWare Inc VmWare Player Workstation Fusion ESXi

Citrix Systems Inc XenServer

Hewlett-Packard HP Integrity Virtual Machines

Microsoft Virtual PC Hyper-V

221 VMware (VMware Inc)

O VMware apresenta-se como uma plataforma liacuteder (80) no mercado da

virtualizaccedilatildeo com uma tecnologia de virtualizaccedilatildeo do tipo 1 (virtualizaccedilatildeo completa

tambeacutem designada nativa ou bare metal) Oferece um vasto leque de produtos desde

os hipervisores para desktops e laptops (VMware PlayerWorkstationFusion) aos

para servidores de grande porte (VMware vSphere ESXi) e ainda um vasto conjunto

de software de gestatildeo de VMs orquestraccedilatildeo de operaccedilotildees Cloud IaaS etc

De todos os produtos da VMware interessa-nos destacar aqui apenas a

tecnologia de virtualizaccedilatildeo ESXi oferecida para servidores que descrevemos em

seguida muito sucintamente

VMware vSphere ESXi Eacute uma VMM ou hipervisor tipo 1 garantindo um

elevado niacutevel de isolamento entre os recursos oferecidos agraves VMs sejam

estes o processador memoacuteria discos ou adaptadores de rede Eacute instalado

directamente sobre o hardware do servidor eliminando assim a

sobrecarga de ter um SO standard sobre o qual corre um hipervisor os

hipervisores de tipo 1 exibem portanto melhor desempenho e aumentam

a seguranccedila O facto de permitir que tudo seja virtualizado torna a VM

ainda mais completa O pacote inclui apenas o hipervisor ESXi e

ferramentas baacutesicas de gestatildeo

A forma como as instruccedilotildees do sistema hospedado (guest) satildeo executadas num

ambiente ESXi pode ser descrita com ajuda da figura 4 [8] 1) as instruccedilotildees oriundas

de aplicaccedilotildees que se executam sobre o SO hospedado satildeo executadas directamente no

processador real 2) as instruccedilotildees oriundas do proacuteprio SO hospedado satildeo verificadas

antes de serem executadas sendo que as privilegiadas satildeo traduzidas ou modificadas

para comandos ou instruccedilotildees do proacuteprio hipervisor uma teacutecnica que eacute denominada

como ldquoTraduccedilatildeo Binaacuteriardquo

Esta teacutecnica complementada com outras teacutecnicas de ldquoaceleraccedilatildeordquo de

operaccedilotildees sobre IO memoacuteria e de gestatildeo de recursos entre VMs fazem com que a

VMware consiga atingir desempenhos muito proacuteximos de um ambiente nativo ie

natildeo virtualizado

9

Figura 4 - Arquitectura VMware ESXi (Tipo-1)

Na versatildeo vSphere para servidores de grande porte estatildeo disponiacuteveis muitas

funcionalidades [9] como a migraccedilatildeo automaacutetica de VMs (balanceamento de carga)

a alta disponibilidade para vCenter (suportada pelo vCenter Server Heartbeat) a

recuperaccedilatildeo de destastres (Site Recovery Manager)

Para maiores detalhes e restriccedilotildees da VMware consultar o Anexo D [1011]

222 Xen (Citrix Systems Inc)

O XenServer eacute a plataforma de virtualizaccedilatildeo da Citrix baseada no hipervisor Xen a

versatildeo base designada Standard eacute gratuita e oferece para aleacutem do hipervisor

ferramentas como o XenCenter uma consola de gestatildeo para muacuteltiplos servidores e o

XenMotion para migraccedilatildeo ldquoin vivordquo de VMs

O hipervisor Xen na sua mais recente versatildeo eacute uma tecnologia de

virtualizaccedilatildeo do tipo 1 instalada num nuacutecleo Linux (x86 x86-64 ou IA-64 SUSE

Linux) que permite a criaccedilatildeo de vaacuterias VMs com recursos e aplicaccedilotildees partilhadas

Contrariamente ao VMware natildeo usa a traduccedilatildeo binaacuteria mas uma combinaccedilatildeo de

paravirtualizaccedilatildeo [12] (eliminando a latecircncia no desempenho introduzida pela

traduccedilatildeo binaacuteria) e virtualizaccedilatildeo assistida por hardware [13] Na paravirtualizaccedilatildeo a

maacutequina abstracta eacute quase mas natildeo completamente igual ao hardware hospedeiro

por isso o SO hospedado (guest) tem de ser modificado Como tal soacute eacute possiacutevel para

SOs disponiacuteveis em coacutedigo aberto o Xen executa os outros (eg Windows)

recorrendo a uma combinaccedilatildeo da paravirtualizaccedilatildeo com a virtualizaccedilatildeo assistida por

hardware oferecida nos processadores Intel (Intel-VT) e AMD (AMD-V)

Na arquitectura XenServer figura 5 existe uma VM privilegiada para controlo

do hipervisor denominada ldquoDom0rdquo esta VM eacute parte integrante do ambiente

10

XenServer executa uma versatildeo paravirtualizada do Linux e conteacutem os drivers dos

dispositivos disponiacuteveis no sistema As outras VMs satildeo os ldquoDomUsrdquo (domiacutenios do

utilizador) Nesta arquitectura os DomUs comunicam directamente com o hipervisor

que controla a memoacuteria e o processador do hospedeiro e se usam paravirtualizaccedilatildeo

comunicam com o Dom0 para operaccedilotildees de IO

Figura 5 - Arquitectura XenServer

O Anexo E descreve os detalhes da plataforma e restriccedilotildees da Citrix [1014]

223 Integrity VM (HP)

HP Integrity Virtual Machines (Integrity VM ou HPVM) eacute uma tecnologia de

virtualizaccedilatildeo do tipo 1 instalada num servidor da linha Integrity IA-64 com o sistema

de operaccedilatildeo HP-UX 11i v3

A gestatildeo do hipervisor eacute efectuada com a ferramenta HP Integrity Virtual

Machines Manager (HPVMMGR) mas tambeacutem eacute possiacutevel gerir os proacuteprios sistemas

hospedados desde que nestes sejam instalados os agentes HPVirtualMachine e

HPVSwitch Esta ferramenta apresenta benefiacutecios como flexibilidade e maximizaccedilatildeo

dos recursos do servidor consolidaccedilatildeo de servidores organizacionais rapidez na

implementaccedilatildeo e disponibilizaccedilatildeo de novos ambientes permite a migraccedilatildeo online e

offline isolamento de VMs oferece alta disponibilidade monitoriza automaticamente

todas as aplicaccedilotildees e permite a visualizaccedilatildeo e configuraccedilatildeo simplificada com

ferramentas como HP Integrity Virtual Machines Manager (HPVMMGR) System

Management Home (HPSMH) e HP Virtualization Manager (HPVMAN)

O Anexo F descreve os detalhes e restriccedilotildees Integrity Virtual Machines da HP

[10]

11

224 Hyper-V (Microsoft)

O Hyper-V eacute uma tecnologia de virtualizaccedilatildeo do tipo 1 da Microsoft para servidores

x86-64 com suporte agrave virtualizaccedilatildeo assistida por hardware O produto eacute

disponibilizado de forma isolada (standalone) ou integrado em versotildees Windows

Server (2008 R2 ou 2012)

A gestatildeo do ambiente virtual eacute efectuada com a ferramenta System Center

Virtual Machine Manager (SCVMM) que fornece 3 formas distintas de interactuar

com o hipervisor consola de administraccedilatildeo portal self-service (para utilizadores

finais) e Windows PowerShell (usando commandlets)

Na arquitectura Hyper-V [15] figura 6 existem dois tipos de particcedilatildeo 1) a

ldquoparticcedilatildeo pairdquo uma VM de administraccedilatildeo de todo o sistema com um Windows

Server 2008 2008 R2 ou 2012 drivers de acesso e controlo do hardware e

ferramentas de gestatildeo 2) as particcedilotildees filhas nas quais satildeo criadas as restantes VMs

completamente isoladas e sem acesso directo ao hardware No acesso ao hardware haacute

3 componentes importantes a mencionar a) o VSP (Virtual Service Provider)

responsaacutevel por receber as chamadas das particcedilotildees filhas e aceder aos drivers dos

perifeacutericos b) VSC (Virtual Service Client) um moacutedulo instalado no SO hospedado

que solicita via VMBus o acesso aos perifeacutericos da particcedilatildeo pai c) o VMBus canal

de comunicaccedilatildeo entre VSC e VSP onde se desenrolam as comunicaccedilotildees entre as

particcedilotildees

Figura 6 - Arquitectura Hyper-V

A Microsoft apresenta-nos na recente versatildeo Hyper-V 2012 uma panoacuteplia de

funcionalidades que a colocam na primeira linha das soluccedilotildees de virtualizaccedilatildeo a par

da VMware migraccedilatildeo online e replicaccedilatildeo de VMs migraccedilatildeo de armazenamento e

Clustering

O Anexo D descreve os detalhes as restriccedilotildees do Hyper-V da Microsoft

[101617]

12

23 Virtualizaccedilatildeo do Armazenamento

Haacute muito que o armazenamento passou a ser um toacutepico de ldquoprimeira classerdquo tal como

ldquoa rederdquo Para tal contribuiu significativamente a introduccedilatildeo de tecnologias tais como

o RAID (Redundant Array of Independent Disks) [18] que promoveram o

desempenho eou a toleracircncia a faltas a (comparativamente) baixo custo ndash note-se que

no artigo original de Patterson o I significava Inexpensive Com a introduccedilatildeo do

RAID rapidamente apareceram os armaacuterios de discos (disk arrays) externos ao

ldquosistemardquo e uma vez que o protocolo SCSI suportava a interligaccedilatildeo de discos

(Logical Units) a muacuteltiplos adaptadores e daiacute a muacuteltiplos sistemas o conceito de

rede de armazenamento aparece naturalmente

Como se mostra na figura 7 o disco loacutegico aparece como uma forma

elementar de virtualizaccedilatildeo jaacute que ldquoaglutinardquo elementos de diferentes discos fiacutesicos

mas eacute apresentado ao sistema como um uacutenico disco ndash ao ponto de ser impossiacutevel ao

proacuteprio sistema de operaccedilatildeo distingui-lo de um disco fiacutesico

Figura 7 - Redundant Array Independent Disks (RAID)

Numa rede de armazenamento que interliga vaacuterios armaacuterios de discos e

servidores (hosts) os primeiros oferecem volumes (ou discos loacutegicos) acessiacuteveis por

identificadores uacutenicos e os segundos tomam posse desses volumes (tipicamente cada

host tem uso exclusivo de um ou mais volumes) e formatam-nos neles instalando

sistemas de ficheiros (eg ext3 XFS NTFS) que depois usam da forma mais

conveniente Este conceito de rede de armazenamento eacute conhecido como SAN ndash

Storage Area Network figura 8

A forma mais comum de SAN usa uma infra-estrutura Fibre Channel (FC) o

que significa que tanto hosts como disk arrays possuem interfaces FC e na rede

existem comutadores (switches) FC aos quais hosts e arrays (e eventualmente outros

switches) se interligam Uma outra tecnologia que pode ser usada em SANs eacute a

Ethernet neste caso hosts disk arrays e switches tecircm interfaces Ethernet e o

protocolo de transporte usado eacute FCoE (Fibre Channel over Ethernet) A figura

seguinte mostra-se um ambiente que inclui simultaneamente uma outra tecnologia de

ldquotransporterdquo ISCSI e uma ldquozonardquo FC

13

Figura 8 - Storage Area Network (SAN)

Se bem que a relaccedilatildeo volumehost de um-para-um seja de longe a mais

frequente tambeacutem eacute possiacutevel estabelecer uma relaccedilatildeo de um-para-muitos na qual um

volume eacute detido de forma partilhada por muacuteltiplos hosts tal situaccedilatildeo implica

necessariamente o uso de sistemas de ficheiros (SF) especializados conhecidos como

shared-disk file systems Como exemplo indica-se o GFS [19] GPFS [20] e VMFS

[21] este uacuteltimo desenvolvido especificamente para armazenar VMs Num SF para

discos partilhados todos os hosts que partilham um dado volume tecircm uma visatildeo

coerente do estado do volume Em situaccedilotildees de toleracircncia a faltas esta arquitectura de

discos partilhados eacute muito apeteciacutevel pois em caso de falha de um host um dos

restantes inicia uma recuperaccedilatildeo (ao estilo de um sistema transaccional) das uacuteltimas

operaccedilotildees e rapidamente o SF regressa a um estado coerente

Figura 9 - Network Attached Storage (NAS)

Uma outra forma completamente distinta de armazenar informaccedilatildeo eacute usar um

SF distribuiacutedo neste caso natildeo haacute partilha de discos fiacutesicos mas sim de ficheiros

sendo que um host pode deter apenas parte da aacutervore do SF (eg AFS) ou nos SFs

distribuiacutedos com arquitectura clienteservidor um host dito cliente dispotildee de um

14

moacutedulo que lhe permite aceder ao SF remoto de um outro host dito servidor (eg

NFS e CIFS) como se o SF remoto fosse local

231 Armazenamento em ambientes virtualizados

Quando se aborda o armazenamento em ambientes virtualizados satildeo de considerar os

seguintes aspectos a) como representar a arquitectura de uma VM propriamente dita

(quanta memoacuteria e CPUs tem qual o chipset utilizado que adaptadores ndash de LAN

SAN graacuteficos ndash possui etc) b) como representar um disco acessiacutevel agrave VM e c)

como armazenar conteuacutedos (volaacuteteis ou natildeo) de componentes da VM tais como a

memoacuteria RAM e a memoacuteria natildeo volaacutetil NVRAM que conteacutem o BIOS

A soluccedilatildeo adoptada pelo hipervisor VMware ESXi2 eacute a seguinte a) a

representaccedilatildeo da arquitectura eacute efectuada em XML que possui as informaccedilotildees de

configuraccedilatildeo b) um disco acessiacutevel agrave VM eacute representado ou por um ficheiro que

virtualiza o proacuteprio disco ou por um ficheiro que ao estilo de uma ligaccedilatildeo simboacutelica

descreve o caminho para um disco real e finalmente c) tais conteuacutedos satildeo

armazenados em ficheiros Isto eacute tudo eacute representado por ou via ficheiros

A pergunta que se segue eacute oacutebvia onde armazenar esses ficheiros E a

resposta evidente num repositoacuterio (datastore na terminologia da VMware) gerido

pelo hipervisor onde uma VM aparece como um pasta e os seus componentes como

ficheiros no interior dessa pasta como se mostra na figura 10

Figura 10 - Datastore e VMs

O VMware ESXi suporta armazenamento em sistema de ficheiros VMFS

(sobre discos) ou NFS no caso do VMFS os discos podem ser internos ao servidor

ou podem estar numa SAN

Sistema de Ficheiros VMFS

O VMFS (Virtual Machine File System) eacute um sistema de ficheiros em cluster

e foi optimizado para armazenar grandes ficheiros e realizar operaccedilotildees de entrada e

2 Para uma comparaccedilatildeo entre o VMware ESXi e o Citrix Xen ver Anexo H

15

saiacuteda (IO) com que movimentam grandes volumes de dados Os dois servidores

figura 11 tecircm portanto uma visatildeo coerente do datastore e das VMs nele existentes

por isso eacute quando comparamos esta arquitectura com uma na qual cada servidor tem

a sua datastore muito mais simples e eficiente mover uma VM activa de um servidor

para o outro jaacute que apenas as paacuteginas modificadas residentes em memoacuteria tecircm de ser

copiadas (o resto estaacute no SF partilhado)

Figura 11 - Sistema de Ficheiros VMFS

Network File System

Nos casos em que os datastores residem num sistema de ficheiros NFS [22] os

servidores ESXi podem tambeacutem partilhar o mesmo datastore como se vecirc na figura

12 assim a movimentaccedilatildeo de VMs entre servidores por razotildees de equiliacutebrio de

cargas ou de manutenccedilatildeo de um ou outro servidor tambeacutem satildeo muito eficientes

Figura 12 - Network File System (NFS)

Para concluir note-se que se abrem nos ambientes virtualizados duas

oportunidades muito importantes quando um disco virtual eacute realizado sob a forma de

ficheiro a) a potencial poupanccedila de espaccedilo e b) a possibilidade de implementar com

facilidade uma teacutecnica de snapshots No primeiro caso conhecido como thin

provisioning referimo-nos agrave possibilidade de usar um ficheiro esparso para atribuir

um espaccedilo loacutegico de endereccedilamento ao disco (ficheiro) muito superior ao espaccedilo de

16

facto ldquoconsumidordquo pelo ficheiro no SF No segundo usando um mecanismo de

versotildees baseado em teacutecnicas de copy-on-write armazenar snapshots da VM em

determinados instantes e para usar como mecanismo de recuperaccedilatildeo do estado em

caso de ldquofalhardquo

24 Virtualizaccedilatildeo da Rede

A virtualizaccedilatildeo eacute algo mais que consolidaccedilatildeo de servidores - CPU memoacuteria e

armazenamento depois de analisada toda a infra-estrutura de suporte a uma

implementaccedilatildeo desta natureza torna-se evidente a ideia simplista desse triacircngulo A

infra-estrutura de rede virtual funciona como ligaccedilatildeo de componentes nessa

plataforma ligaccedilotildees virtuais atraveacutes dos controladores de rede virtual (Virtual

Network Interface Card - vNIC3) ligaccedilotildees fiacutesicas com os adaptadores fiacutesicos

(Physical Network Interface Card - pNIC) comutadores virtuais (vSwitch) para essas

ligaccedilotildees etc uma vasta lista de software e hardware responsaacuteveis pela comunicaccedilatildeo

de todos os componentes dos pares VMVM VMservidor e servidorservidor [23]

Numa infra-estrutura de rede tradicional figura 13 cada servidor tem uma ou

mais placas de rede (NIC) para comunicaccedilatildeo com os restantes

Figura 13 - Infra-estrutura de rede tradicional

Como sabemos um hipervisor eacute responsaacutevel pela abstracccedilatildeo do hardware

oferecido agraves VMs e na visatildeo de uma VM este hardware (virtual) de que dispotildee eacute

seu e eacute completo desconhecendo que esse hardware possa estar a ser partilhado com

outras VMs ou que eventualmente nem exista A interface virtual de rede (vNIC)

figura 14 natildeo possui qualquer componente fiacutesico eacute apenas software contudo ela

exibe as mesmas propriedades de uma placa fiacutesica incluindo um endereccedilo MAC

(IEEE 802-2001 Standard) Uma vNIC eacute ligada a uma outra abstracccedilatildeo o vSwitch

sendo que este pode comutar traacutefego que flui apenas no interior do servidor que

alberga as VMs ou estar associado a uma (ou mais para redundacircncia eou aumento

da largura de banda) placa de rede fiacutesica (pNIC)

3 Mais uma vez seguimos aqui a terminologia da VMware por simplicidade

17

Figura 14 - Infra-estrutura de rede virtual

Nesta infra-estrutura natildeo existe o limite associado agrave velocidade da placa de

rede mas sim associado agrave largura de banda (LB) da memoacuteria facilmente se

depreende tambeacutem que toda a rede entre VMs hospedadas num servidor natildeo

contribui para o congestionamento da rede fiacutesica (entre servidores) Contudo o

administrador pode impor quotas na utilizaccedilatildeo de recursos por exemplo na LB da

vNIC

Os vSwitch tecircm todas as funcionalidades de um switch real suportam

agregaccedilatildeo de traacutefego (IEEE 802ad) VLANs (IEEE 8021Q) etc Nesse sentido a

virtualizaccedilatildeo comeccedila a ir contra-corrente no que deveria ser o simplificar a

administraccedilatildeo de uma infra-estrutura pois o administrador de redes tem agora de

administrar os switches reais e ainda os virtuais

Figura 15 - vNetwork Distributed Switch ndash vDS

Para resolver este problema a VMware propotildee (figura 15) um switch virtual

distribuiacutedo (vNetwork Distributed Switch ndash vDS) [23] que representa a agregaccedilatildeo de

vaacuterios switchs virtuais de diferentes servidores ocultando as camadas inferiores e

oferecendo um suporte de rede uniforme que simplifica entre outras a administraccedilatildeo

da rede as migraccedilotildees de VMs e o desempenho ndash por exemplo ao associar um vDS a

18

muacuteltiplas pNICs o hipervisor pode de forma automaacutetica alterar a loacutegica de

encaminhamento de pacotes para redistribuir o traacutefego entre as pNICs aumentado o

desempenho e minimizando as falhas

Na infra-estrutura de rede virtualizada os aspectos relativos agrave seguranccedila dessa

rede satildeo tambeacutem contemplados sendo apresentadas soluccedilotildees de inspecccedilatildeo de fluxos

de pacotes como eacute o caso dos Distributed Virtual Filter (DVFilter) [23] apresentado

na figura 16

Figura 16 - Distributed Virtual Filter (DVFilter)

25 Resumo

Neste capiacutetulo fez-se uma breve descriccedilatildeo histoacuterica para enquadramento do restante

capiacutetulo A virtualizaccedilatildeo de servidores aparece como nuacutecleo central nas suas quatro

plataformas de virtualizaccedilatildeo que considerei mais importantes ESXi (VMware Inc)

XenServer (Citrix Systems Inc) HP Integrity Virtual Machines (Hewlett-Packard) e

o Hyper-V (Microsoft) Foram tambeacutem abordadas tecnologias na aacuterea da virtualizaccedilatildeo

de armazenamento em conceitos como RAID SAN NAS e nos ambientes

virtualizados VMFS e NFS Tambeacutem a virtualizaccedilatildeo de rede natildeo foi descurada e

nesse intuito foram abordados conceitos como vNIC pNIC VLANs vNetwork

Distributed Switch e Distributed Virtual Filter

19

3 Computaccedilatildeo na Cloud

Como anteriormente referimos o uso crescente de Tecnologias de Informaccedilatildeo (TI) nas

organizaccedilotildees leva geralmente a uma proliferaccedilatildeo de servidores fiacutesicos o que as obriga

mais cedo ou mais tarde a adoptar estrateacutegias de consolidaccedilatildeo de servidores com a

consequente reduccedilatildeo de custos de hardware e energia Resolvidas estas questotildees restam

contudo outras - o uso de virtualizaccedilatildeo natildeo reduz por si soacute o esforccedilo de administraccedilatildeo

das infra-estruturas nem resolve problemas de disponibilidade desempenho seguranccedila

etc que satildeo questotildees que nem todas as organizaccedilotildees querem ou estatildeo aptas a resolver

preferindo por vezes que ldquoalgueacutemrdquo assuma esta responsabilidade

A Computaccedilatildeo na Cloud (CC) apresenta-se assim como uma sequecircncia de passos

nesse sentido cada um correspondendo a um modelo de serviccedilo (ver em 32) e resolvendo

mais uma ldquofatiardquo dos problemas enunciados A CC eacute actualmente associada a palavras

chave como padronizaccedilatildeo automatizaccedilatildeo velocidade disponibilidade elasticidade

acesso global e agrave ideia de usar um conjunto de recursos partilhados As organizaccedilotildees

podem entatildeo preocupar-se essencialmente com as melhorias operacionais e para isso

procuram soluccedilotildees que possibilitem uma afectaccedilatildeo (e posteriormente libertaccedilatildeo) de

recursos de forma raacutepida e automaacutetica

ldquoCloud computing is a model for enabling ubiquitous convenient on-demand network access

to a shared pool of configurable computing resources (eg networks servers storage

applications and services) that can be rapidly provisioned and released with minimal

management effort or service provider interactionrdquo

The NIST Definition of Cloud Computing [Online] Available

httpwwwnistgovitlcsdcloud-102511cfm

31 Periacutemetro de uma cloud

Designamos por periacutemetro (ou modelo de implantaccedilatildeo) de uma cloud a forma como

caracterizamos o conjunto dos utilizadores com acesso aos serviccedilos dessa cloud

Nesta secccedilatildeo apresentamos apenas os trecircs tipos mais comuns deixando de fora outros

como as clouds partilhadas e federadas

Clouds Privadas

Ambientes construiacutedos exclusivamente para os utilizadores de uma uacutenica

organizaccedilatildeo Nesta tipologia os recursos (infra-estrutura e aplicaccedilotildees) satildeo totalmente

detidos pela organizaccedilatildeo podendo ser administrados pela proacutepria organizaccedilatildeo por

terceiros ou ainda pela combinaccedilatildeo das duas entidades A infra-estrutura estaacute

normalmente instalada num data center privado e as maiores preocupaccedilotildees satildeo

geralmente a garantia de disponibilidade e o desempenho dos serviccedilos e aplicaccedilotildees

20

Clouds Puacuteblicas

Ambientes construiacutedos para oferecer serviccedilos quer a utilizadores individuais

quer a organizaccedilotildees Nesta tipologia a infra-estrutura eacute geralmente detida pela

organizaccedilatildeo que comercializa os referidos serviccedilos que satildeo tipicamente cobrados na

forma ldquopay-per-userdquo As maiores preocupaccedilotildees da entidade gestora satildeo garantir a

privacidade e a seguranccedila (note-se que os ldquoutilizadoresrdquo podem de facto ser

administradores dos servidores que detecircm e podem instalar software) o isolamento

entre recursos detidos por utilizadores distintos e ainda assim garantir bom

desempenho dos serviccedilos e aplicaccedilotildees

Clouds Hiacutebridas

As clouds hiacutebridas representam a junccedilatildeo de dois modelos de cloud privada e

puacuteblica Este modelo eacute normalmente implantado em organizaccedilotildees que tecircm picos de

trabalho que por uma ou outra razatildeo natildeo podem suportar na sua cloud privada e

nessas alturas a ldquoelasticidaderdquo eacute usada para aprovisionar recursos de uma cloud

puacuteblica

32 Modelos de serviccedilo

Existem trecircs modelos base de serviccedilos de Cloud Computing que podem ser oferecidos

agraves organizaccedilotildees e que se diferenciam pelas configuraccedilotildees e responsabilidades do

provedor de serviccedilos figura 17

IaaS (Infrastructure as a Service)

No modelo ldquoinfra-estrutura como serviccedilordquo o provedor oferece ao consumidor

uma infra-estrutura de processamento e armazenamento com a configuraccedilatildeo que se

adequa agraves suas necessidades o cliente natildeo tem assim necessidade de adquirir

servidores racks software e ateacute mesmo espaccedilo fiacutesico Satildeo exemplos de provedores

puacuteblicos IaaS a Amazon EC2 [2] e o GoGrid [3] jaacute o Eucalyptus [4] o vCloud (da

VMware) e o HP CloudSystem Matrix satildeo exemplo de produtos software para a

criaccedilatildeo de clouds privadas

PaaS (Platform as a Service)

No modelo ldquoplataforma como serviccedilordquo o provedor disponibiliza plataformas

computacionais completas (incluindo naturalmente a infra-estrutura computacional)

para os utilizadoresconsumidores dessas plataformas integrarem as suas aplicaccedilotildees

(existentes ou a desenvolver) sendo que estas seratildeo posteriormente disponibilizadas

na cloud Como exemplo indicam-se as plataformas LAMP (Linux Apache MySQL

PHP) Google AppEngine [5] e Microsoft Azure [6]

21

SaaS (Software as a Service)

Neste modelo o provedor disponibiliza ao cliente final uma aplicaccedilatildeo pronta-

a-usar como exemplos mencionam-se as Google Apps [7] Google Docs e Microsoft

SharePoint Online Este eacute o paradigma cloud por excelecircncia utilidade facilidade

(interacccedilatildeo via browser) disponibilidade e por vezes ateacute alguma capacidade de

personalizaccedilatildeo

Figura 17 - Relaccedilatildeo entre serviccedilos e responsabilidades

Associados agrave CC vaacuterios modelos ldquoAs a Servicerdquo tecircm surgido para responder

agraves necessidades das organizaccedilotildees contudo todos acabam por ser enquadrados nos

trecircs tipos base (Infra-estrutura Plataforma e Software) de acordo com os serviccedilos que

disponibilizam

ldquoDatabase As A Service (DBaaS or DaaS) Network As A Service (NaaS) DataCenter As A

Service (DCaaS) Storage As A Service (StoraaS) Everything As A Service (EaaS) Data As

A Service (DaaS) Security As A Service (SecaaS) Computing As A Service (CaaS) Desktop

As A Service (VDI) Voice As A Service (VaaS) Communication As A Service (ComaaS)

Testing As A Service (TaaS) Backup As A Service (BaaS) Monitoring As A Service

(MaaS) Recovery As A Service (RaaS) Content Delivery Network As a Service (CDNaaS)

Application As A Service (AaaS) Business Intelligence As A Service (BIaaS) etcrdquo

Cloud9IDE [Online] Available httpsc9io

As relaccedilotildees entre os modelos IaaS PaaS e SaaS satildeo hieraacuterquicas como se

pode observar na figura 18 que ainda ilustra os papeacuteis do provedor de serviccedilos

equipas de desenvolvimento e utilizadores finais Como se observa o IaaS fornece

recursos de hardware e software ao PaaS e SaaS o PaaS oferece ferramentas para

desenvolvimento ao SaaS e por fim o SaaS executa e disponibiliza aplicaccedilotildees aos

utilizadores finais

22

Figura 18 - Relaccedilotildees e papeacuteis dos envolventes nos modelos de Cloud Computing

33 Resumo

O presente capiacutetulo descreve a tecnologia de Computaccedilatildeo na Cloud (Cloud

Computing) vantagens do seu uso e conceitos tais como periacutemetro (onde se

enquadram designaccedilotildees como Clouds Privadas e Puacuteblicas passando pelas Hiacutebridas) e

modelos de Serviccedilo IaaS PaaS e SaaS sendo o IaaS o foco desta dissertaccedilatildeo

A virtualizaccedilatildeo apresenta-se como a tecnologia chave de todo este processo

ela desempenha e continuaraacute a desempenhar um papel indispensaacutevel para que os

prestadores de serviccedilo continuem a oferecer ambientes de CC que permitem um

dimensionamento correcto e economicamente ajustado das infra-estruturas de TI

oferecendo ainda funcionalidades como gestatildeo centralizada disponibilidade e

seguranccedila

23

4 HP Cloud Stack

O OpenStack eacute presentemente um consoacutercio que inclui entidades como a ATampT HP

IBM Rackspace Red Hat Suse etc fortemente empenhadas na computaccedilatildeo na cloud e

que tecircm por objectivo colocar no mercado uma implementaccedilatildeo ubiacutequa para clouds tanto

puacuteblicas como privadas e uma pilha de software em coacutedigo aberto que suporta

heterogeneidade (por exemplo nos hipervisores) e uma enorme riqueza em recursos (de

computaccedilatildeo armazenamento e interligaccedilatildeo)

O OpenStack promove uma arquitectura comum ou seja um framework que eacute

extensiacutevel e permite que terceiros (incluindo os parceiros do consoacutercio) ampliem as suas

funcionalidades quer por via de desenvolvimentos adicionais quer por integraccedilatildeo de

produtos jaacute existentes embora a pilha-base jaacute permita por meio de portais quer a

administraccedilatildeo das pools de computaccedilatildeo armazenamento e rede quer o provisionamento

de recursos

As plataformas Cloud em Open Source tornam-se atraentes pelo seu baixo custo

inicial de implementaccedilatildeo e pela perspectiva da portabilidade

41 HP CloudSystem Matrix

A HP CloudSystem Matrix eacute uma soluccedilatildeo proprietaacuteria que assenta na plataforma

OpenStack para lhe acrescentar moacutedulos de seguranccedila gestatildeo e automaccedilatildeo

abrangente a toda a infra-estrutura como mostra a figura 19 Eacute uma soluccedilatildeo IaaS

tanto para clouds privadas como para hiacutebridas

Figura 19 - Contributos CloudStack

Norteado por uma visatildeo de ldquosimplificaccedilatildeo como chaverdquo o HP Cloud System

Matrix permite entregar soluccedilotildees preacute-definidas num cataacutelogo de serviccedilos de TI a

consumidores da infra-estrutura (utilizadores) que as requisitaram a partir de um

portal self-service

24

Figura 20 - Desenho publicaccedilatildeo e implementaccedilatildeo do cataacutelogo de serviccedilos

A soluccedilatildeo HP CloudSystem Matrix oferece

Um ambiente de trabalho (Matrix Operating Environment - MOE)

altamente automatizado que automaticamente se ajusta a todo o

dinamismo de negoacutecio permitindo um raacutepido desenho provisionamento e

modificaccedilatildeo de toda a infra-estrutura e uma optimizaccedilatildeo dos ambientes

fiacutesicos e virtuais a fornecer como serviccedilo

Uma pilha de tecnologias de gestatildeo figura 21 HP Console Management

System (CMS) que inclui ferramentas como HP Universal Discovery

(UD) para detectar automaticamente todos os objectos do ambiente HP

SiteScope [25] (opcional) que monitoriza a disponibilidade e desempenho

de toda a infra-estrutura - aplicaccedilotildees servidores SO serviccedilos de rede

armazenamento [24] e software de virtualizaccedilatildeo - evitando e resolvendo

alguns problemas de desempenho (estrangulamentos por escassez de

recursos)

Uma infra-estrutura convergente (HP Converged Infrastructure) apoiada

em soluccedilotildees como o HP Insight Control (IC) para gestatildeo da infra-

estrutura e o HP Insight Dynamics (ID) uma consola de Data Center para

uma gestatildeo centralizada de agregados (pools) de recursos e de pacotes

preacute-configurados de hardware e software Eacute aqui que se criam as pools de

recursos para posterior fornecimento ao MOE

O MOE assenta nesta pilha como o uacuteltimo niacutevel de software um ambiente de

trabalho altamente automatizado permitindo que seja possiacutevel a reduccedilatildeo draacutestica de

custos tempo e esforccedilo na implementaccedilatildeo de toda a estrutura necessaacuteria assim como

das aplicaccedilotildees mercecirc do seu moacutedulo de orquestraccedilatildeo da infra-estrutura (Infrastructure

Orchestration - IO) e opcionalmente do moacutedulo de automaccedilatildeo de servidores (Server

Automation - SA) Em suma trata-se de um ambiente optimizado para gestatildeo e

aprovisionamento de infra-estruturas hiacutebridas incluindo servidores fiacutesicos (Integrity e

x86) e virtuais rede e armazenamento [23] O CloudSystem Matrix estaacute igualmente

integrado com tecnologias de virtualizaccedilatildeo como o ESXi da VMware e o Hiper-V da

Microsoft

25

Figura 21 - Infra-estrutura HP CloudSystem Matrix

42 Modelos de interacccedilatildeo com o HP CSM

Definidos os modelos de implementaccedilatildeo e serviccedilo resta definir as formas de

comunicaccedilatildeo os modos de interacccedilatildeo entre as infra-estruturas aplicaccedilotildees e processos

O modelo eacute transparente para o utilizador final sendo disponibilizadas trecircs opccedilotildees

Web Service API

Este eacute o meacutetodo preferido para controlar os processos dentro da TI Um Web

Service (WS) eacute de acordo com o W3C4 ldquoa software system designed to support

interoperable machine-to-machine interaction over a network It has an interface

described in a machine-processable format (specifically WSDL) Other systems

interact with the Web service in a manner prescribed by its description using SOAP

messages typically conveyed using HTTP with an XML serialization in conjunction

with other Web-related standardsrdquo A HP CloudSystem Matrix oferece uma API

baseada no protocolo SOAP (Simple Object Access Protocol) para troca de

informaccedilatildeo estruturada numa plataforma descentralizada e distribuiacuteda Eacute um

protocolo baseado numa linguagem de marcaccedilatildeo extensiacutevel (Extensible Markup

Language ndash XML) para o formato das mensagens enviadas e recebidas e no protocolo

de transferecircncia de hipertexto (HyperText Transfer Protocol ndash HTTP) para negociaccedilatildeo

e transmissatildeo de mensagens Como protocolo de transporte usa igualmente HTTP

garantindo assim uma certa ldquofacilidaderdquo para funcionar em ambientes protegidos por

firewalls

4 httpwwww3orgTRws-archwhatis

26

Command line interface (CLI)

Uma interface de linha de comando que inclui natildeo soacute todas as opccedilotildees

disponiacuteveis na API WebService como outras natildeo disponiacuteveis nas outras APIs

Northbound API (nbAPI)

Uma interface de controlo remoto atraveacutes de um URL (Uniform Resource

Locator) endereccedilo de um determinado recurso disponiacutevel numa rede o acesso pode

ser efectuado por HTTP FTP etc (ex protocolomaacutequinacaminhorecurso)

43 Papeacuteis e Portais de interacccedilatildeo

Os provedores de serviccedilo cloud satildeo responsaacuteveis por fornecer toda a infra-estrutura do

serviccedilo contratado Nestas arquitecturas existem normalmente trecircs tipos de (papeacuteis de)

utilizadores da cloud que se associam aos respectivos portais figura 22

Administrador Arquitecto e Utilizador final (ou consumidor de serviccedilos cloud)

Figura 22 - Utilizadores de TI em cloud e respectivos papeacuteis (roles)

Administrador Cloud

O administrador usando as ferramentas de ao seu dispor cria monitoriza e

manteacutem a pool de recursos (de computaccedilatildeo memoacuteria armazenamento e rede) a

disponibilizar na cloud Normalmente este papel tambeacutem envolve a implementaccedilatildeo

de acordos de niacutevel de serviccedilo (Service Level Agreement - SLA) onde satildeo definidas

as poliacuteticas entre o fornecedor de serviccedilos cloud e os seus ldquoclientesrdquo O portal

associado a este utilizador eacute o portal do Administrador figura 23

27

Figura 23 - Portal do Administrador

Arquitecto Cloud

O arquitecto eacute um utilizador teacutecnico responsaacutevel por projectardesenhar

montar e tornar disponiacuteveis (publicar) serviccedilos que a proacutepria infra-estrutura pode

disponibilizar para os utilizadores mediante poliacuteticas e necessidades dos objectivos

estrateacutegicos de uma organizaccedilatildeo Esses serviccedilos podem ser personalizaacuteveis e

especiacuteficos para um determinado utilizador grupo de utilizadores ou para uso geral O

arquitecto pode ainda criar fluxos de trabalho (workflows) que passo a passo ajudam

na interacccedilatildeo utilizador-ambiente oferecendo serviccedilos como personalizaccedilatildeo gestatildeo

simplificaccedilatildeo de processos e a proacutepria integraccedilatildeo de TIs O portal associado a este

tipo de utilizador eacute o Designer Portal onde o arquitecto desenha a infra-estrutura e os

modelos de serviccedilo (templates de que adiante falaremos) a incluir no cataacutelogo

Figura 24 - Portal do Arquitecto

28

Consumidor IaaS

O portal associado a este tipo de utilizador eacute o Self-service Portal (ou user

portal) onde o utilizador poderaacute seleccionar visualizar e instanciar os modelos de

serviccedilo preacute-definidos pelo Arquitecto O utilizador depois de escolher de entre os que

existem no cataacutelogo de serviccedilos o ldquomodelo de infra-estruturardquo que mais se adequa agraves

suas necessidades solicita a sua instanciaccedilatildeo para obter os recursos de computaccedilatildeo

memoacuteria armazenamento e rede Este portal permite ainda ao utilizador efectuar a

gestatildeo dos serviccedilos solicitados

Figura 25 - Portal do Utilizador final

44 Conceitos fundamentais da plataforma HP CSM

Apresentamos agora um leque de conceitos fundamentais para compreender o HP

CSM e o trabalho que realizaacutemos Nalguns casos poderemos apresentar exemplos

concretos para melhor ilustrar esses conceitos

Template

Num template o Arquitecto da infra-estrutura captura uma configuraccedilatildeo tiacutepica

em TI especificando os seus componentes-base (hardware e software) e desenha as

suas inter-relaccedilotildees que servidores existem quais as suas caracteriacutesticas (CPUs

memoacuteria discos interfaces) como se interligam os servidores entre si (as conexotildees

de rede) e se for o caso como um ou mais desses servidores se ligam ao ldquoexteriorrdquo do

Centro de Dados Do template tambeacutem faz parte o software haveraacute servidores com

Linux outros com Windows Server uns podem ter Apache e outros SQL Server para

dar alguns exemplos Os templates apoacutes publicaccedilatildeo passam a fazer parte de um

cataacutelogo de serviccedilos para uso dos consumidores de serviccedilos dessa infra-estrutura de

cloud

29

Como exemplo vejamos a seguinte situaccedilatildeo em TI a pilha LAMP (Linux

Apache MySQL PHP) eacute um padratildeo comum e bastante usado assim o arquitecto

poderaacute criar dois templates LAMP-base com um uacutenico servidor e toda a pilha nele

instalada e LAMP-elaacutestico em que haacute uma farm de servidores Apache-PHP que se

ligam a um ldquofailover clusterrdquo de dois servidores MySQL

Server Group

Um ldquoGrupo de Servidoresrdquo eacute constituiacutedo por um ou mais servidores com as

mesmas caracteriacutesticas e configuraccedilotildees software discos interfaces etc O arquitecto

usa os Grupos de Servidores para organizar os servidores em torno da funccedilatildeo que

estes desempenham eou das suas caracteriacutesticas

Por exemplo o arquitecto definiria no template LAMP-base um uacutenico grupo

de servidor(es) mas jaacute no caso do template LAMP-elaacutestico definiria o grupo APfarm

(que incluiria um proto-servidor com determinadas caracteriacutesticas ndash 2 interfaces LAN

Linux Apache e PHP) e o grupo MySQLfo (com um proto-servidor tambeacutem com 2

interfaces LAN mas com Linux Linux-HA e MySQL) Soacute que o grupo APfarm

permitiria um miacutenimo de 1 e um maacuteximo de digamos 4 servidores enquanto o grupo

MySQLfo seria instanciado sempre com 2 servidores

Server

Eacute obviamente um servidor (virtual quase sempre embora o HP CSM permita

ldquoinstanciarrdquo ndash leia-se instalar o software e configurar ndash servidores fiacutesicos) com

atributos (muitos deles especificaacuteveis por um intervalo de valores entre um miacutenimo o

default e um maacuteximo) como memoacuteria (RAM) nuacutemero de processadores e

correspondente velocidade de reloacutegio discos lista de software associado interfaces

de rede (LAN eou SAN) etc

Software

O termo ldquoSoftwarerdquo refere-se a um produto software instalaacutevel no servidor

(pode ser o SO um SGBD um qualquer middleware ou ateacute uma aplicaccedilatildeo) Haacute duas

formas de efectuar essa instalaccedilatildeo automaticamente no acto de instanciaccedilatildeo do

servidor usando um pacote opcional o HP Server Automation (SA) ou manualmente

(a usada neste trabalho por natildeo dispormos do HP SA) ndash e neste caso temos de criar

uma VM instalar o software e depois transformar a VM numa VM-template (o que

se faz directamente no software de virtualizaccedilatildeo eg VMware vCenter Server)

Disk

Eacute um disco virtual ou fiacutesico que pode ser acedido pelo(s) servidor(es) pode

ser bootable shareable (partilhaacutevel entre servidores) suportado numa tecnologia

magneacutetica ou SSD acessiacutevel por ligaccedilatildeo FC ou iSCSI etc

Interface

Uma ldquointerfacerdquo eacute um ponto de contacto entre o servidor e as redes (que lhe

satildeo) externas de um ponto de vista pragmaacutetico deixando de lado infra-estruturas

30

pouco comuns em centros de dados de TI (por contraposiccedilatildeo aos CDs HPC) as infra-

estruturas relevantes satildeo Fibre Channel (FC) e Ethernet Assim as interfaces em

questatildeo satildeo HBAs (FC) e NICs (Ethernet)

Service

Um Service corresponde a uma instanciaccedilatildeo de um template e herda deste

todas as configuraccedilotildees base que poderatildeo ser posteriormente editadas com mais ou

menos servidores processamento memoacuteria discos etc ateacute ao limite maacuteximo

definido no Template

A criaccedilatildeo do serviccedilo eacute efectuada pelo consumidor5 IaaS que faz a definiccedilatildeo

fina das caracteriacutesticas da infra-estrutura que quer aprovisionar Continuando com os

exemplos baseados na pilha LAMP um consumidor do departamento de TI poderia

num dado momento criar um serviccedilo LAMP-testes baseado no template LAMP-base e

que usaria para fazer testes ao ldquoprodutordquo que estaacute a desenvolver e solicitar ao

administrador da cloud o respectivo aprovisionamento e mais tarde criar um serviccedilo

LAMP-produccedilatildeo baseado no template LAMP-elaacutestico e que usaria para colocar on-

line o produto

45 Limitaccedilotildees do HP CloudSystem Matrix

Em resumo o HP CloudSystem Matrix eacute um software stack para a implementaccedilatildeo de

clouds privadas que oferecem infra-estruturas como serviccedilo (IaaS) isto eacute permite aos

utilizadores (consumidores) dos seus serviccedilos aprovisionar de uma forma faacutecil e

raacutepida (minutos) uma infra-estrutura computacional completa de servidores6 (CPU

memoacuteria e discos) com o SO jaacute instalado interligados por uma topologia de rede mais

ou menos complexa

Contudo o supracitado ldquoaprovisionar de uma forma faacutecil e raacutepida (minutos)

uma infra-estrutura computacional completa de servidoresrdquo soacute eacute de facto faacutecil se

baseada na instanciaccedilatildeo de um template que serve exactamente as necessidades do

utilizador jaacute que na instanciaccedilatildeo apenas se pode modificar para cada servidor o

nuacutemero de CPUs e a quantidade de memoacuteria deixando de fora por exemplo opccedilotildees

de rede eou de armazenamento discos fiacutesicos vs virtuais aprovisionamento thin vs

thick (ver 23) escolha da tecnologia da interface (SATA vs SAS vs FC) ou do disco

(magneacutetico vs SSD)

Por outro lado a interacccedilatildeo atraveacutes do portal self-service do utilizador tambeacutem

apresenta algumas desvantagens a informaccedilatildeo apresentada pode ser em muitos casos

considerada demasiadamente teacutecnica eou desnecessaacuteria sendo que o portal natildeo pode

ser configurado para a omitir

5 Muitas vezes designado utilizador-consumidor ou simplesmente utilizador ndash e nesse caso eacute importante natildeo o

confundir com um mero utilizador final 6 Uma das vantagens do HPCSM eacute permitir aprovisionar natildeo soacute servidores virtuais mas tambeacutem reais (estes

uacuteltimos tecircm obrigatoriamente de ser fabricados pela HP)

31

46 Resumo

Este capiacutetulo descreve a HP CloudSystem Matrix uma pilha de software que

implementa o modelo IaaS para clouds privadas e faz parte de um leque mais vasto

da oferta HP que passa pela CloudSystem Enterprise (clouds privadas e hiacutebridas) e

culmina com a CloudSystem System Provider (que acrescenta as clouds puacuteblicas)

A HP CloudSystem Matrix eacute o nuacutecleo de trabalho deste framework razatildeo de

ser deste estudo e deste capiacutetulo Todo o hardware e pilha de software em que assenta

toda a infra-estrutura HP CloudSystem Matrix foi descrita nomeadamente os seus trecircs

Modelos de interacccedilatildeo (API CLI e nbAPI) os papeacuteis e portais de interacccedilatildeo

(Administrador Arquitecto e Utilizador) Concluiacutemos com uma abordagem modular

da infra-estrutura com a explicaccedilatildeo dos moacutedulos principais e finalmente as limitaccedilotildees

desta infra-estrutura em particular do portal actualmente em uso

32

5 O framework e a sua Realizaccedilatildeo

51 Arquitectura

A arquitectura proposta assenta em 3 camadas (3-tier) apresentaccedilatildeo loacutegica e dados

este tipo de arquitectura eacute bem conhecida apresentando como resultado da

modularidade uma seacuterie de benefiacutecios que incluem a escalabilidade que resulta da

possibilidade de executar uma ou outra camada num servidor distinto ou ateacute em

certos casos numa farm de servidores A comunicaccedilatildeo entre as camadas apresentaccedilatildeo

e loacutegicaserviccedilos assenta num protocolo REST (ou seja a arquitectura eacute orientada agrave

Web (WOA) com Axiom0a [28] - Universality2 com um URI por cada recurso

importante) e dados em formato XML (visualizaccedilatildeo) ou JSON (programaccedilatildeo)

transportados em HTTP sobre TCPIP Relativamente agrave comunicaccedilatildeo com o HP

CSM ela processa-se sobre HTTPS numa arquitectura SOA com o protocolo SOAP

Figura 26 - Arquitectura n-tier

Camada de Apresentaccedilatildeo

Define e realiza a interface do utilizador o formato de interacccedilatildeo e

visualizaccedilatildeo foi optimizada para o navegador Google Chrome mas funciona

igualmente noutros browsers Eacute a camada de mais alto niacutevel e eacute responsaacutevel natildeo soacute

pelo contacto utilizadoraplicaccedilatildeo atraveacutes de um conjunto de interfaces que podem ser

apresentadas num browser mas tambeacutem por lhe fazer chegar a informaccedilatildeo das

camadas inferiores

33

Camada Loacutegicanegoacutecio

Tambeacutem conhecida como a camada de negoacutecio eacute o nuacutecleo da aplicaccedilatildeo e eacute

responsaacutevel por controlar as suas funcionalidades tem igualmente a responsabilidade

de realizar a transiccedilatildeo de dados entre as camadas de apresentaccedilatildeo e dados e ainda

todas as transiccedilotildees necessaacuterias entre a proacutepria aplicaccedilatildeo e a camada de serviccedilos

Camada de Serviccedilos

Camada que realiza toda a comunicaccedilatildeo com os webservices do CSM

nomeadamente via API do MOE e outras APIs como eacute o caso da API da VMware

Camada de Dados

Camada responsaacutevel por guardar e gerir os dados em texto (ou numa base de

dados opccedilatildeo que activamos quando queremos trabalhar offline ndash o que neste

momento apenas fazemos para testes) e cache de leituras (cookies) com a informaccedilatildeo

sobre o utilizador e outras informaccedilotildees proveniente da camada de loacutegicaserviccedilos

como eacute o caso da implementaccedilatildeo Realm JAAS no moacutedulo de login JAAS

52 Integraccedilatildeo da framework no HP CSM (MOE e VMware)

Nesta secccedilatildeo propositadamente muito simples mostramos (figura 27) as relaccedilotildees

entre a framework agrave esquerda a plataforma HP CSM (MOE) com o qual esta

interage ao centro e a plataforma VMware vCenter que gere o hipervisor ESXi que

em ultima instacircncia eacute quem suporta as VMs que se disponibilizam na cloud

Figura 27 - Relaccedilatildeo dos VMIDs (WebService-MOE-vCenter)

34

53 Um desenho guiado pela Interface Utilizador

A portal is a window into a much broader set of capabilities in the IT world Its critical that portals be user-friendly and fairly intuitive to use

Ken Stephens vice president of Xerox Corp

O desenvolvimento deste framework teve sempre como objectivo uacuteltimo o

utilizador com acessos consulta de informaccedilatildeo e interacccedilotildees raacutepidas intuitivas faacuteceis

e acima de tudo praacuteticas Pretendeu-se simplicidade com uma curta curva de

aprendizagem e uma flexibilidade com acessos proacuteprios e individuais a cada

utilizador associados a um username e role (admin ou user) dispensando a

necessidade da se ter de usar dua interfaces distintas uma para o administrador outra

para um utilizador-consumidor de serviccedilos

These users want to see performance graphs and have the capability to build complex configurations and templates for their end users

Lauren Nelson Forrester Research Inc

A visualizaccedilatildeo em tempo real de todas as acccedilotildees do utilizador com a

disponibilizaccedilatildeo de uma ldquobarra de progressordquo a visualizaccedilatildeo do estado geral do

webservice e das suas configuraccedilotildeesrecursos tambeacutem natildeo foram descuradas A

descriccedilatildeo dos componentes principais em aacutervore permite a raacutepida visualizaccedilatildeo das

configuraccedilotildees de todo o Serviccedilo criado das suas hierarquias e relaccedilotildees e um acesso

raacutepido e intuitivo aos detalhes de cada componente

35

Figura 28 - Estrutura em aacutervore do menu lateral esquerdo

Developers want a clean easy-to-use [product] to select prebuilt templates -- but they dont need to see any of the complex performance or payment configurations

Lauren Nelson

O Cataacutelogo de Templates publicados pelo Arquitecto eacute imediatamente

visualizado no menu em aacutervore quando o webservice eacute inicializado que eacute

imediatamente povoada com os Serviccedilos (e seus recursos) anteriormente criados por

esse utilizador

Para criar um novo Serviccedilo o utilizador seleciona o template que mais se

adequa agraves suas necessidades e cria o Serviccedilo Todos os Serviccedilos associados a um

determinado Template ficam como ramos na aacutervore desse Template o mesmo

acontecendo relativamente aos recursos associados a cada Serviccedilo A informaccedilatildeo

visualizada eacute apenas a necessaacuteria a cada visualizaccedilatildeo e instanciaccedilatildeo

A interface eacute assim raacutepida acessiacutevel intuitiva organizada e personalizaacutevel as

acccedilotildees satildeo acessiacuteveis e raacutepidas de executar sem menus e submenus com sucessivos

cliques que soacute atrasam todo o processo

36

Figura 29 - Portal

37

Figura 30 - Diagrama de Sequecircncia (Criaccedilatildeo de um Serviccedilo)

38

What you want and what you get in most cases depends on the users persona -- either an IT manager or a developerhellip By making portals task-

based youre not just seeing a bunch of random menus or links If youre

searching for something youll find it quicklyrdquo

Bill Forsyth vice president of portal development at Savvis

Um portal personalizaacutevel em funccedilatildeo do utilizador ocultar ou exibir paineacuteis de

informaccedilatildeo a lista de pedidos limitar a exibiccedilatildeo por Template ou por Serviccedilo - um

simples clique e todo o portal eacute personalizaacutevel

Paying attention to details and being able to organize information for larger enterprises is important

Bill Forsyth

A organizaccedilatildeo de toda a informaccedilatildeo a disponibilizar eacute a chave de todo este

processo e diferencia um portal agradaacutevel e intuitivo de um portal confuso no seu

amontoado de informaccedilatildeo e complexidade quanto maior eacute a informaccedilatildeo a

disponibilizar maior eacute evidente esta diferenccedila Uma informaccedilatildeo hierarquizada e

organizada em agrupamentos loacutegicos por recursos eacute um processo muito faacutecil de seguir

e perceber e associada a esta disponibilizaccedilatildeo de informaccedilatildeo apenas exibir acccedilotildees

que possam ser executadas sobre esse(s) recurso(s) eacute o objectivo da simplicidade e

desempenho de uma interface Por uacuteltimo uma paacutegina web de ajuda a toda a interface

(Anexo N) para consulta de qualquer duacutevida faz com que tudo seja uacutetil e praacutetico [33]

54 Camada de apresentaccedilatildeo

A realizaccedilatildeo da camada de apresentaccedilatildeo pode ser apresentada subdividindo-a em duas

partes sendo a primeira correspondente agrave realizaccedilatildeo do lado do cliente (client-side) e

a segunda agrave realizaccedilatildeo do lado do servidor (server-side)

541 Do lado do cliente

A visualizaccedilatildeo de uma paacutegina web num navegador como Google Chrome Firefox ou

Internet Explorer soacute eacute possiacutevel se estes ldquoentenderemrdquo a linguagem na qual estaacute

construiacuteda ldquoa paacuteginardquo e forem capazes de a processar sem necessidade de qualquer

espeacutecie de preacute-tratamento Surgiram muitas linguagens conhecidas como linguagens

de marcaccedilatildeo um sistema moderno para anotaccedilatildeo de um documento de uma forma que

ldquoo programardquo eacute sintaticamente distinguiacutevel do texto normal

Do lado do cliente a principal linguagem de marcaccedilatildeo eacute a HTML agrave qual se

adiciona a JavaScript na qual os programas acompanham um documento html

incluiacutedos em ficheiros com a extensatildeo js ou satildeo incorporados directamente no

39

coacutedigo html entre tags ltscriptgtltscriptgt o documento html eacute entatildeo carregado pelo

navegador do utilizador e com ele todo o coacutedigo JavaScript

A linguagem JavaScript eacute usada para incutir dinamismo no coacutedigo html

facilitando por exemplo a interacccedilatildeo com o utilizador no preenchimento de

formulaacuterios (aquando da criaccedilatildeo de um serviccedilo) ou promovendo o upload de um

modelo de template em formato XML ou executando acccedilotildees ou eventos consoante

determinado comportamento do utilizador etc As funccedilotildees JavaScript e das suas

bibliotecas como JQuery satildeo executadas aquando do carregamento da proacutepria paacutegina

html ou quando invocadas por eventos como sejam a inicializaccedilatildeo da framework

leitura inicial dos dadosrecursos relativos ao utilizador criaccedilatildeo de cookies ou acccedilotildees

do utilizador como o login ou o preenchimento de formulaacuterios

Tambeacutem eacute usado AJAX (Asynchronous JavaScript and XML) [36] um padratildeo

para o uso de comandos JavaScript para de uma forma siacutencrona ou assiacutencrona trocar

dadosinformaccedilatildeo com o servidor e actualizar conteuacutedos de paacuteginas web jaacute exibidas

em que natildeo eacute necessaacuterio carregar toda a paacutegina para a actualizar Um padratildeo ideal

para usar com o protocolo REST (Representational State Transfer) para troca de

informaccedilatildeo permite o uso de dados em texto HTML XML e JSON (JavaScript

Object Notation) como formato da informaccedilatildeo para enviar e receber dados usando

HTTP e URI exactamente como as interacccedilotildees HTTP foram concebidas GET

POST PUT e DELETE Com AJAX as operaccedilotildees CRUD (Create Read Update e

Delete) satildeo muito intuitivas e faacuteceis de usar

Finalmente CSS (Cascading Style Sheets) eacute a linguagem responsaacutevel pela

formataccedilatildeo dos dados em termos de visualizaccedilatildeo para o utilizador que eacute usada para

descrever a apresentaccedilatildeo das paacuteginas Web incluindo cores layout e fontes

542 Do lado do servidor

As linguagens caracterizadas como ldquodo lado do servidorrdquo satildeo necessaacuterias para

especificar os programas que tecircm de ser executados no servidor como ldquorespostardquo agraves

acccedilotildees desencadeadas do lado do browser quando o resultado tem de ser enviado

para o browser eacute-o na forma de ficheiro HTML

Linguagens de conteuacutedo e comportamento como JSP (JavaServer Pages) uma

mistura de HTML com scriptlet contecircm um elemento script (blocos de coacutedigo em

Java) o que as caracteriza como linguagens que correm no servidor Os scriptlet

como todo o coacutedigo Java eacute executado no servidor e o output direcionado para o resto

da paacutegina JSP e finalmente apresentado ao utilizador A facilidade de comunicaccedilatildeo

em variaacuteveis de sessatildeo torna esta linguagem muito apelativa ao uso dessas variaacuteveis

como eacute o cado da paacutegina loginjsp onde se desenrola grande parte da comunicaccedilatildeo

browserservidor atraveacutes da API MOE logoutjsp e vmrcjsp para ligaccedilatildeo agraves VMs e

comunicaccedilatildeo com a API VMware

40

543 Lista de primitivas na oacuteptica dos recursos

Segue-se a lista de primitivas apresentada numa oacuteptica de recursos que cada

uma manipula

actionsjs - Lista as ldquoactionsGridrdquo atribuiacutedas aos Serviccedilos Grupo de

Servidores ou Servidores e permite todas as acccedilotildees associadas nestas

listagens

cookiesjs - Leitura e criaccedilatildeo de cookies associados ao utilizador e todo o

webservice Cookies de login com dados como username e role e outros

dado associados agraves acccedilotildees do utilizador e webservice como layout de

visualizaccedilatildeo da paacutegina (globaltheme) menu lateral esquerdo (treetheme)

paineacuteis de visualizaccedilatildeo de informaccedilatildeo (northregion westregion

eastregion southregion) etc

disksjs - Leitura das informaccedilotildees associadas aos discos nas suas trecircs

versotildees ldquostereotype disksrdquo discos virtuais e fiacutesicos Todas as acccedilotildees

possiacuteveis em discos estatildeo igualmente configuradas neste ficheiro

geraljs - Leitura das informaccedilotildees gerais associadas ao webservice Dados

iniciais de informaccedilatildeo de todos os Templates do Cataacutelogo de Serviccedilos e

dados de Serviccedilos jaacute existentes nos diferentes formatos (JSON e XML)

configuraccedilotildees gerais do webservice como tabelas de listagens conversotildees

de datas (ldquodate2epochrdquordquoepoch2daterdquo) construccedilatildeo do menu lateral

esquerdo em aacutervore listeners para acccedilotildees do utilizador e mensagens de

erros e informaccedilatildeo do webservice

helpjs - Configuraccedilotildees de todo o layout das ajudas ao utilizador

interfacesjs - Leitura das informaccedilotildees associadas agraves interfaces redes e

endereccedilos IP Todas as acccedilotildees passiacuteveis de serem executadas nas

interfaces estatildeo igualmente configuradas neste ficheiro

remoteSessionsjs - Listagem de todas as Sessotildees Remotas do Serviccedilo e

acccedilotildees associadas a essas Sessotildees Remotas por Servidor e suas Interfaces

requestsjs - Listagem de todos os pedidos por Template ou Serviccedilo

Todas as acccedilotildees passiacuteveis de serem executadas relativas aos pedidos do

utilizador estatildeo igualmente configuradas neste ficheiro

serverGroupsjs - Leitura das informaccedilotildees associadas ao Grupo de

Servidores quer nos Templaste quer nos Serviccedilos Todas as acccedilotildees

relativas ao Grupo de Servidores estatildeo igualmente configuradas neste

ficheiro

serverPoolsjs - Listagem de todos as Pools de Servidores com a

informaccedilatildeo respectiva a cada Pool Todas as acccedilotildees passiacuteveis de serem

executadas nas Pools de Servidores estatildeo configuradas neste ficheiro

41

serversjs - Leitura das informaccedilotildees associadas a cada Servidor quer nos

Templaste quer nos Serviccedilos Todas as acccedilotildees relativas aos Servidores

estatildeo configuradas neste ficheiro

servicesjs - Leitura das informaccedilotildees associadas a cada Serviccedilo Todas as

acccedilotildees passiacuteveis de serem executadas nos Serviccedilos estatildeo configuradas

neste ficheiro

snapshotsjs - Listagem de todos os Snapshots com a informaccedilatildeo

respectiva ao par ServerSnapshot Todas as acccedilotildees passiacuteveis de serem

executadas nos Snapshots estatildeo configuradas neste ficheiro

softwarejs - Listagem de todo Software existente no sistema e informaccedilatildeo

relativa a cada Software em particular

templatesjs - Listagem de todos os recursos do Template e informaccedilatildeo

relativa a cada recurso base Toda a disponibilizaccedilatildeo de informaccedilatildeo e as

acccedilotildees associadas aos Templates estatildeo configuradas neste ficheiro

55 Camada ServiccedilosLoacutegica

Como referido (ver 51) a comunicaccedilatildeo entre a camada de apresentaccedilatildeo e a

loacutegicaserviccedilos assenta num protocolo REST e usa XML e JSON como formato para

enviar e receber informaccedilatildeo usando HTTP e URI (operaccedilotildees CRUD - Create Read

Update e Delete) [29]

Figura 31 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull

Por seu lado o REST assenta em quatro princiacutepios fundamentais 1) Recurso

cada recurso tem uma identificaccedilatildeo uacutenica e global associada ao URI

httpexemplocomencomenda20121088563 2) Acesso usando URIs acede-se a

um recurso por um ID uacutenico e global independente da sua localizaccedilatildeo 3) Formatos

um recurso pode ser representado em diferentes formatos por exemplo HTML XML

ou JSON sendo a escolha ditada pela finalidade especiacutefica de utilizaccedilatildeo do recurso

4) Comunicaccedilatildeo stateless - o cliente pode receber toda a informaccedilatildeo necessaacuteria num

primeiro contacto com o servidor executar o processamento e finalmente ligar-se

uma segunda vez ao servidor para reportar os resultados

As APIs usadas e directamente relacionadas com serviccedilos REST foram as

seguintes 1) JAX-RS (JSR 311 - Java Specification Requests) Atualmente parte

42

integrante do Java EE eacute uma API Java para serviccedilos Web RESTfull sobre HTTP

JAVAX-RS como especificaccedilatildeo desta API [30] fornece anotaccedilotildees que simplificam as

configuraccedilotildees 2) Jersey eacute uma implementaccedilatildeo open-source de referecircncia do

JAVAX-RS [31] 3) RestEasy eacute uma outra implementaccedilatildeo do JAVAX-RS com

opccedilotildees de suporte para outros protocolos aleacutem do HTML e que permite conexotildees

assiacutencronas e tem suporte de cache [32]

551 Camada de Serviccedilos

Como sabemos o HP CloudSystem Matrix gere recursos de computaccedilatildeo

armazenamento rede e software de uma forma unificada para oferecer um ambiente

virtualizado e altamente automatizado Contudo natildeo eacute um produto fechado

disponibilizando natildeo soacute um CLI mas tambeacutem uma API com uma WSDL (Web

Service Description Language) que inclui todas as operaccedilotildees possiacuteveis (https ltcms-

ip-addressgt 51443hpiocontrollersoapv5 wsdl)

A camada de serviccedilos eacute um cliente do CSM que funciona segundo o padratildeo

autenticaccedilatildeoperfil-pedido(s)-fecho na fase de autenticaccedilatildeo o utilizador (registado na

infra-estrutura MOE) faz o seu login a partir desse momento estaacute criada uma sessatildeo

que por HTTPS permite o acesso a todos os recursos disponiacuteveis para a combinaccedilatildeo

utilizadorperfil (role)

552 Camada Loacutegica

A camada loacutegica segue o mesmo princiacutepio estaacute centrada nos recursos em termos de

tecnologias usa o protocolo REST para a comunicaccedilatildeo clienteservidor e a

linguagem Java para o desenvolvimento

A realizaccedilatildeo foi idealizada numa prespectiva hieraacuterquica o que facilita a

compreensatildeo de toda a estrutura O menu lateral esquerdo eacute exemplo disso mesmo a

estrutura em aacutervore espelha esta ideia simples mas eficaz os recursos comeccedilam por

ser apresentados como listas sobre as quais podemos realizar acccedilotildeesfunccedilotildees ldquode

grupordquo pois satildeo apenas aquelas que satildeo comuns a todos os membros da lista mas agrave

medida que nos vamos aproximando das folhas da estrutura em aacutervore as

acccedilotildeesfunccedilotildees ficam mais especiacuteficas relativamente aos recursos-alvo

Por exemplo quando se realiza a acccedilatildeo ldquoPower ONrdquo a um grupo de

servidores todos os servidores do grupo satildeo ligados quando se efectua essa mesma

acccedilatildeo sobre um servidor apenas o servidor seleccionado eacute ligado

A disponibilizaccedilatildeo de informaccedilatildeo relativa a grandes ldquoconjuntos de dadosrdquo

como eacute o caso de listagens de pedidos de acccedilotildees de sessotildees remotas de snapshots

de stereotype disks de software e de subnets foi realizada com datagrids (tabelas)

para melhor visualizaccedilatildeo

43

As acccedilotildeesfunccedilotildees disponibilizadas estatildeo distribuiacutedas pelas tabs respectivas e

executam serviccedilos no niacutevel em que se encontram disponibilizadas A tiacutetulo de

exemplo as acccedilotildees que se encontram disponiacuteveis para execuccedilatildeo no grupo de

servidores apenas podem ser encontradas no tab ldquoGrouprdquo e reflectem-se sobre todos

os membros do grupo Uma acccedilatildeo especiacutefica de servidor encontra-se somente

disponiacutevel na tab ldquoServerrdquo e afecta apenas e soacute esse servidor

Segue-se uma descriccedilatildeo natildeo exaustiva da camada loacutegica nuacutecleo desta

framework desde a sua inicializaccedilatildeo ateacute aos recursos e moacutedulos principais

5521 Init

Aquando da inicializaccedilatildeo da aplicaccedilatildeo e no seguimento do login do utilizador eacute

desencadeada uma sequencia de pedidos ao servidor por informaccedilotildees relativas aos

Templates do Cataacutelogo de Serviccedilos e de todos os Serviccedilos do utilizador Se as

permissotildees associadas ao utilizador for de simples utilizador do webservice visualiza

apenas as instacircncias que criou jaacute um utilizador com permissotildees de administraccedilatildeo

visualiza os seus serviccedilos e todos os serviccedilos dos restantes utilizadores

Tabela 1 - Funccedilotildees associadas agrave inicializaccedilatildeo do Webservice

Funccedilatildeo Descriccedilatildeo

getVersion Funccedilatildeo de teste Obteacutem a informaccedilatildeo da versatildeo da API

principal Funccedilatildeo usada aquando do login do utilizador Obteacutem os

detalhes do utilizador como USERNAME e ROLE

listAllDataDetailsJson Funccedilatildeo usada apoacutes login do utilizador e iniciaccedilatildeo da

aplicaccedilatildeo Obteacutem os detalhes dos Serviccedilos associados ao

Utilizador Lista a informaccedilatildeo de todos os Templates e

Serviccedilos do Utilizador no formato JSON Funccedilatildeo para uso

excluivo do webservice

downloadTabJsonView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa aos recursos do Utilizador em formato

JSON Eacute criado um ficheiro com extenccedilatildeo JSON

downloadTabXmlView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa aos recursos do Utilizador em formato

XML Eacute criado um ficheiro com extenccedilatildeo XML

44

listEnumsJson Funccedilatildeo usada apoacutes login do utilizador e iniciaccedilatildeo da

aplicaccedilatildeo Obteacutem os detalhes de todos os ENUMS possiacuteveis

no webservice Lista a informaccedilatildeo de todos os ENUMS no

formato JSON Funccedilatildeo para uso excluivo do webservice

listEnumsXml Menu lateral direito do webservice Opccedilatildeo de visualizaccedilatildeo da

informaccedilatildeo relativa agraves opccedilotildees ENUMS possiveis no

webservice

downloadTabEnumsView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa agraves opccedilotildees ENUMS possiveis no

webservice Eacute criado um ficheiro com extenccedilatildeo XML com a

informaccedilatildeo visualizada

listAllDataDetailsXml Menu lateral direito do webservice Opccedilatildeo de visualizaccedilatildeo da

informaccedilatildeo relativa ao Utilizador em formato XML

5522 Template

Como jaacute referido o desenhoconstruccedilatildeo dos Templates fica a cargo do Arquitecto do

MOE que desenha esses mesmos Templates mediante pedido especifico de um

determinado utilizador tendo em vista um grupo de utilizadores infra-estrutura

disponibilizada ideias preacute-definidas resposta a uma ou mais situaccedilotildees especiacuteficas

etc

Nos detalhes gerais do Template obtemos informaccedilotildees como o nome do

Template a data de criaccedilatildeo e modificaccedilatildeo versatildeo custo geral se eacute ou natildeo

customizaacutevel e o numero de ServerGroups associados assim como discos e serviccedilos

que jaacute foram criados tendo por base este template

Todos os detalhes do Template ficam disponiacuteveis ao utilizador 1) Grupo de

servidores com informaccedilotildees como nome quantidade miacutenima de servidores e que seraacute

a base do serviccedilo criado e quantidade maacutexima de servidores sinal que o serviccedilo

poderaacute crescer em termos de quantidade de servidores Tipo de cluster e o nuacutemero de

servidores loacutegicos existentes no grupo 2) Servidores onde o utilizador obteacutem

informaccedilotildees como nome hostname tipo de virtualizaccedilatildeo memoacuteria usada e

quantidade maacutexima de memoacuteria processadores usados e quantidade maacutexima de

processadores se eacute ou natildeo virtual e se estaacute ou natildeo em cloud 3) Custos em detalhes

ficam disponiacuteveis ao utilizador Informaccedilotildees sobre custo total custo de base por cada

servidor custo por processador e memoacuteria 3) Os discos tambeacutem apresentam

informaccedilatildeo como nome tipo de storage tamanho raid level se eacute ou natildeo bootable

shareable e custo do disco 4) Software preacute-instalado ou instalado posteriormente pelo

utilizador Informaccedilotildees como nome tipo OS e virtualizaccedilatildeo estatildeo disponiacuteveis 5)

Interfaces com informaccedilotildees como nome da interface se eacute ou natildeo primaacuteria

45

redundacircncia subnet publica shareable tipo de IP endereccedilo DHCP activo ou natildeo e

custo final

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa a Templates

Figura 32 - Execuccedilatildeo tab ldquoTemplaterdquo

Export All Templates

Acccedilatildeo disponiacutevel apenas ao administrador permite o download em

ficheiro XML dos detalhes de todos os Templates para que o administrador possa

consultar essa informaccedilatildeo em modo offline se assim o entender Detalhes que

ficam disponiacuteveis para visualizaccedilatildeo no clique do iacutecon Template no menu lateral

esquerdo

O ficheiro XML pode depois ser visualizado mesmo no browser ou

qualquer programa que suporte essa visualizaccedilatildeo como eacute o caso do Notepad++

Export Template

Acccedilatildeo disponiacutevel apenas ao administrador permite o download em

ficheiro XML dos detalhes do Template em visualizaccedilatildeo igualmente como a

acccedilatildeo ldquoExport All Templatesrdquo o administrador poderaacute consultar mais tarde em

modo offline se assim o entender Detalhes que ficam disponiacuteveis para

visualizaccedilatildeo no clique do icon do nome do Template respectivo no menu lateral

esquerdo

Import Template

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel

adicionar mais Templates ao Cataacutelogo de Serviccedilos ficando assim disponiacutevel ao

utilizador mais opccedilotildees com novas configuraccedilotildees A leitura eacute feita directamente de

um ficheiro XML natildeo eacute admissiacutevel outro tipo de formato

Delete Template

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel

remover um Templates do Cataacutelogo de Serviccedilos Como todos os Serviccedilos tem por

base um Template a remoccedilatildeo de um Template implica a remoccedilatildeo de todos os

46

Serviccedilos que tem como base esse Template Tal situaccedilatildeo eacute salvaguardada

obrigando o administrador a clicar em OK numa InfoWindow de aviso

XML View

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel a

visualizaccedilatildeo de todos os detalhes do Templates directamente numa InfoWindow

dentro do webservice A informaccedilatildeo em XML torna-se vantajosa ao administrador

para a visualizaccedilatildeo de detalhes mais pormenorizados e organizaccedilatildeo de toda a

infra-estrutura

Export All Services

Acccedilatildeo que agrave semelhanccedila do ldquoExport All Templatesrdquo permite o download

em ficheiro XML dos detalhes de todos os Serviccedilos associados ao Template em

visualizaccedilatildeo e a um determinado utilizador para que possa consultar em modo

offline se assim o entender Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no

clique do iacutecon Service no menu lateral esquerdo

O ficheiro XML pode depois ser visualizado no browser ou qualquer

programa que suporte essa visualizaccedilatildeo como eacute o caso do Notepad++

Create Service

Finalmente a acccedilatildeoobjectivo de todo o webservice a criaccedilatildeo e

disponibilizaccedilatildeo de Serviccedilos Como jaacute foi referido um Serviccedilo tem como base um

Template por isso na visualizaccedilatildeo dos detalhes do Template esta opccedilatildeo estaacute

disponiacutevel Aquando da criaccedilatildeo de um Serviccedilo este teraacute como base o Template

em visualizaccedilatildeo

Existem campos de preenchimento obrigatoacuterios como nome do serviccedilo

hostname tempo atribuiacutedo ao serviccedilo (1 mecircs por defeito) e email do utilizador

As opccedilotildees ldquoNotesrdquo e ldquoBilling coderdquo satildeo opcionais

All Requests

Todas os pedidos realizados no webservice por um determinado utilizador

ficam disponiacuteveis para visualizaccedilatildeo do seu estado e inclusive desencadear acccedilotildees

nesses mesmos pedidos como cancelamento (percentagem inferior a 100) mediante

decisatildeo do utilizador

A salientar que existem pedidos que carecem da aprovaccedilatildeo do administrador

por isso o pedido poderaacute ficar parado numa determinada percentagem () a espera

dessa aprovaccedilatildeo Se o pedido natildeo necessitar de aprovaccedilatildeo continuaraacute a sua execuccedilatildeo

ateacute estar completo (100) e automaticamente seraacute adicionado ao menu lateral

esquerdo do utilizador

Template Requests

Todas os pedidos associados a um determinado Template por um determinado

utilizador ficam igualmente disponiacuteveis para visualizaccedilatildeo do seu estado

47

Tabela 2 - Funccedilotildees associadas ao Template

Funccedilatildeo Descriccedilatildeo

listTemplates Funccedilatildeo que obtem uma listagem da informaccedilatildeo relativa

aos Templates do Cataacutelogo de Serviccedilos

importTemplate Funccedilatildeo que permite o Upload da informaccedilatildeo relativa a

um Template em formato XML Operaccedilatildeo executada

apenas pelo Administrador ou Arquitecto de toda a

infra-estrutura de orquestraccedilatildeo

exportTemplate Funccedilatildeo que obteacutem toda a informaccedilatildeo relativa a um

Template e permite o download dessa informaccedilatildeo em

formato XML Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura de

orquestraccedilatildeo

exportTemplateList Funccedilatildeo de complemento a toda a informaccedilatildeo dos

Templates do Cataacutelogo de Serviccedilo Uso exclusivo do

webservice

deleteTemplate Funccedilatildeo que permite a remoccedilatildeo de um Template do

Cataacutelogo de Serviccedilos Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura de

orquestraccedilatildeo

listServicesByTemplateName Funccedilatildeo que obteacutem todos os Serviccedilos associados a um

determinado Template Para visualizaccedilatildeo de informaccedilatildeo

e opccedilatildeo de download

5523 Serviccedilo

O Serviccedilo tem sempre como base as definiccedilotildees de um Template e nesse sentido tudo

que o utilizador poderaacute fazer nesse Serviccedilo satildeo acccedilotildees que estatildeo disponiacuteveis nesses

Template como limites miacutenimos e maacuteximos de servidores processadores memoacuteria

etc Outras opccedilotildees como discos e interfaces ficam disponiacuteveis ao utilizador que

poderaacute adicionar se assim o entender com os custos inerentes a este upgrade de

Serviccedilo

Um Serviccedilo eacute composto por dados base relativos a informaccedilotildees gerais desse

Serviccedilo listas de acccedilotildees associadas e uma lista de grupos de servidores sendo que

cada grupo poderaacute ser diferente entre si com recursos funcionalidades e softwares

completamente diacutespares

Assim em termos de informaccedilatildeo disponiacutevel associada ao serviccedilo o utilizador

poderaacute obter o nome do serviccedilo id (apenas acessiacutevel ao administrador) notas status

48

o Template base que lhe deu origem data de criaccedilatildeo e ultima data de modificaccedilatildeo o

custo geral do serviccedilo custo fixo o periacuteodo de uso do serviccedilo (por defeito 1 mecircs)

nome do utilizador que criou o serviccedilo organizaccedilatildeo e tamanho das listas associadas

nomeadamente acccedilotildees e grupo de servidores

Os Serviccedilos assim como os Templates ficam disponiacuteveis em listagem no menu

lateral esquerdo num formato em aacutervore intuitivo e raacutepido de selecionar Cada

Serviccedilo fica na cadeia hieraacuterquica do Template que lhe deu origem Associado a cada

Serviccedilo tambeacutem poderemos visualizar nesses mesmo menu todos os recursos

associados a esse Serviccedilo como listagem dos grupos de servidores em cada grupo os

seu servidores e em cada servidor os recursos como discos software e interfaces

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Serviccedilo

Figura 33 - Execuccedilatildeo tab ldquoServicerdquo

Export All Services

Acccedilatildeo que permite o download em ficheiro XML dos detalhes de todos os

Serviccedilos do utilizador permitindo a posterior consulta em modo offline Detalhes

que ficam disponiacuteveis para visualizaccedilatildeo no clique do iacutecons Service no menu

lateral esquerdo

Export Service

Permite o download em ficheiro XML dos detalhes do Serviccedilo em

visualizaccedilatildeo igualmente como a acccedilatildeo ldquoExport All Servicesrdquo o utilizador poderaacute

consultar mais tarde em modo offline os detalhes do serviccedilo Detalhes que ficam

49

disponiacuteveis para visualizaccedilatildeo no clique do icon do nome do Serviccedilo respectivo no

menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Serviccedilo

directamente numa InfoWindow dentro do webservice A informaccedilatildeo em XML

torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Create Service

Mesma acccedilatildeo existente nos Templates Directamente da visualizaccedilatildeo de

um Serviccedilo eacute possiacutevel criar um outro Serviccedilo tendo igualmente por base o

mesmo Template O Serviccedilo criado seraacute igual ao Serviccedilo base em visualizaccedilatildeo

Delete Service

Permite a remoccedilatildeo do Serviccedilo em visualizaccedilatildeo Apoacutes esta acccedilatildeo deixam

de ser cobrado qualquer custo associado ao Serviccedilo que foi removido

Power ON Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo sejam ligados e fiquem disponiacuteveis para utilizaccedilatildeo Esta

acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==OFFrdquo

Power OFF Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo sejam desligados deixando de estar disponiacuteveis para

utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==UPrdquo

Power Cycle Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo faccedilam um reboot e continuem disponiacuteveis para utilizaccedilatildeo

Esta acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==UPrdquo

Activate Service

Permite que todos os Servidores de todos os ServerGroups existentes no

Serviccedilo sejam activados No final desta operaccedilatildeo o Serviccedilo fica em modo

ldquoserviceStatus==UPrdquo e todos os servidores ficam automaticamente disponiacuteveis

para utilizaccedilatildeo

50

Deactivate Service

Permite que todos os Servidores de todos os ServerGroups existentes no

Serviccedilo sejam desactivados No final desta operaccedilatildeo o Serviccedilo fica em modo

ldquoserviceStatus==DEACTIVATEDrdquo

Service Actions

Os ldquotriggered actionsrdquo associadas a cada Template satildeo parte integrante do

Serviccedilo criado Tambeacutem esta informaccedilatildeo estaacute disponiacutevel em forma de listagem

Estas acccedilotildees automaticamente desencadeadas pelo webservice poderatildeo pertencer

ao Serviccedilo propriamente dito ou entatildeo existirem apenas num serverGroup ou ateacute

mesmo apenas num Server

List Remote Session

No final da criaccedilatildeo de um Serviccedilo o objectivo eacute a ligaccedilatildeo as VMs

associadas a esse mesmo Serviccedilo Nesse intuito directamente da tab Serviccedilo

atraveacutes desta acccedilatildeo ficam disponiacuteveis numa lista todas as VMs com os acessos

remotos permissiacuteveis

RDP (Remote Desktop Protocol)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet

VMRC (VMware Remote Console)

Todos os pedidos associados a um determinado Serviccedilo por um

determinado utilizador ficam igualmente disponiacuteveis para visualizaccedilatildeo do seu

estado Quando a listagem de pedidos tem grandes dimensotildees ou se a visualizaccedilatildeo

do pedido diz respeito a este Serviccedilo fazer apenas a listagem dos pedidos pelo

Serviccedilo em causa torna-se mais simples uacutetil e directa

Tabela 3 - Funccedilotildees associadas ao Serviccedilo

Funccedilatildeo Descriccedilatildeo

listServices Detalhes dos Serviccedilos associados a um determinado Utilizador

Para visualizaccedilatildeo de informaccedilatildeo e opccedilatildeo de download O

Administrador obtem todos os Serviccedilos existentes no

webservice

getService Informaccedilatildeo associada a um determinado Serviccedilo Para

visualizaccedilatildeo de informaccedilatildeo e opccedilatildeo de download

createService Criaccedilatildeo de um Serviccedilo

deleteService Remoccedilatildeo de um Serviccedilo associado a um Template

deactivateService Desactivaccedilatildeo de um Serviccedilo

51

activateService Activaccedilatildeo de um Serviccedilo

changeServiceLease Ediccedilatildeo do Lease period asociado a um Serviccedilo

powerOnService Ligar um Serviccedilo

powerOffService Desligar um Serviccedilo

powerCycleService Ligar um Serviccedilo apoacutes reboot

getRemoteSessionsList Listagem de todos os servidores e seus IPs associados para

posterior listagem das sessotildees remotas

5524 Grupo de Servidores

Cada Serviccedilo tem os seus recursos associados nomeadamente uma lista de Grupo de

Servidores onde o utilizador poderaacute obter informaccedilotildees como o nome do Serviccedilo

nome do Grupo de Servidores o Status nuacutemero miacutenimo e maacuteximo de Servidores

uma progressbar com indicaccedilatildeo do nuacutemero de servidores disponiacuteveis no momento se

tem uma sequencia Boot datas de criaccedilatildeo e ultima modificaccedilatildeo e finalmente uma

lista de Servidores

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Grupo de Servidores

Figura 34 - Execuccedilatildeo tab ldquoServerGroupsrdquo

52

Export Server Group

Permite o download em ficheiro XML dos detalhes do Grupo de

Servidores em visualizaccedilatildeo o utilizador poderaacute consultar esses detalhes mais

tarde em modo offline Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no clique

do icon do nome do Grupo de Servidores respectivo no menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Grupo de

Servidores directamente numa InfoWindow dentro do webservice A informaccedilatildeo

em XML torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Add Servers (UP)

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores aumentando o

nuacutemero de Servidores dentro desse Grupo de Servidores Esta opccedilatildeo soacute fica

visiacutevel e acessiacutevel ao utilizador se o limite maacuteximo do nuacutemero de Servidores for

superior ao actualmente existente em utilizaccedilatildeo Limite definido nas

configuraccedilotildees do Serviccedilo que vieram por arrasto das configuraccedilotildees do Template

aquando da criaccedilatildeo desse Serviccedilo Estas alteraccedilotildees implicam o aumento do custo

total do Serviccedilo

Remove Servers (DOWN)

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores diminuindo o

nuacutemero de Servidores dentro desse Grupo de Servidores eacute disponibilizada a lista

de Servidores existentes e o utilizador seleciona um ou mais para remoccedilatildeo Esta

opccedilatildeo soacute fica visiacutevel e acessiacutevel ao utilizador se o limite miacutenimo do nuacutemero de

Servidores for inferior ao actualmente existente em utilizaccedilatildeo Limite definido nas

configuraccedilotildees do Serviccedilo que vieram por arrasto das configuraccedilotildees do Template

aquando da criaccedilatildeo desse Serviccedilo Estas alteraccedilotildees implicam a diminuiccedilatildeo do

custo total do Serviccedilo

Edit ServerGroup

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores relativamente a

memoacuteria e processadores A ediccedilatildeo vai ser efectuada em todos os Servidores do

Grupo de Servidores Como nos limites maacuteximos e miacutenimos de Servidores

tambeacutem os limites de memoacuteria e processadores vieram por arrasto das

configuraccedilotildees do Template aquando da criaccedilatildeo do Serviccedilo Estas alteraccedilotildees

implicam a diminuiccedilatildeo ou aumento do custo total do Serviccedilo

Power ON ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo sejam ligados e fiquem disponiacuteveis para utilizaccedilatildeo Esta acccedilatildeo eacute

dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==OFFrdquo

53

Power OFF ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo sejam desligados deixando de estar disponiacuteveis para utilizaccedilatildeo Esta

acccedilatildeo eacute dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==UPrdquo

Power Cycle ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo faccedilam um reboot e continuem disponiacuteveis para utilizaccedilatildeo Esta acccedilatildeo

eacute dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==UPrdquo

Activate ServerGroup

Permite que todos os Servidores do ServerGroups em visualizaccedilatildeo sejam

activados No final desta operaccedilatildeo o Grupo de Servidores fica em modo

ldquoserverGroupStatus==UPrdquo e todos os servidores ficam automaticamente

disponiacuteveis para utilizaccedilatildeo

Deactivate ServerGroup

Permite que todos os Servidores do ServerGroups em visualizaccedilatildeo sejam

desactivados No final desta operaccedilatildeo o Grupo de Servidores fica em modo

ldquoserverGroupStatus==DEACTIVATEDrdquo

Actions ServerGroup

Como no Serviccedilo os ldquotriggered actionsrdquo associadas a cada Template satildeo

parte integrante do Serviccedilo criado inclusive no Grupo de Servidores Se o Grupo

de Servidores em visualizaccedilatildeo tiver ldquotriggered actionsrdquo esta acccedilotildees estaraacute visiacutevel

ao utilizador para listagem

List Snapshots

Acccedilatildeo que permite listar todos os Snapshots existentes no Grupo de

Servidores

Nessa listagem eacute possiacutevel executar acccedilotildees como ldquoRevert Snapshotrdquo que

reverte um determinado Snapshot para o servidor especiacutefico ou ldquoDelete Snapshotrdquo

que permite a remoccedilatildeo de um Snapshot do sistema

Create Snapshot

Acccedilatildeo que permite a criaccedilatildeo de Snapshots no Grupo de Servidores

Existem campos obrigatoacuterios como o nome do Snapshot e a selecccedilatildeo de

um ou mais servidores de uma lista de servidores pertencentes ao Grupo de

Servidores Opccedilotildees como ldquoInclude Memory Staterdquo ou ldquoQuiesce filesystemrdquo estatildeo

tambeacutem disponiacuteveis para selecccedilatildeo aquando da criaccedilatildeo do Snapshot

54

Add Stereotype Disks

Acccedilatildeo que permite adicionar discos a um Grupo de Servidores O disco

adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores Satildeo

considerados ldquoStereotype Disksrdquo todos os discos existentes no grupo excepto

discos de boot

Qualquer acccedilatildeo de adiccedilatildeo de discos a um Grupo de Servidores soacute eacute

possiacutevel se natildeo existirem Snapshots relativos a qualquer Servidor desse Grupo de

Servidores

Esta acccedilatildeo lista todos os ldquoStereotype Disksrdquo jaacute existentes O utilizador

seleciona o que deseja clonar (disco base) e eacute adicionado um novo disco ao Grupo

de Servidores Esta acccedilatildeo carece da aprovaccedilatildeo do administrador

Add Virtual Disks

Acccedilatildeo que permite adicionar discos virtuais a um Grupo de Servidores O

disco adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores

Existem campos de preenchimento obrigatoacuterio como o nome do disco e

tamanho O webservice fornece um nome uacutenico e 10Gb de tamanho por defeito o

utilizador pode alterar estes campos Esta acccedilatildeo carece da aprovaccedilatildeo do

administrador Aleacutem de aprovar ou desaprovar este pedido pode inclusive definir

um novo custo

Add Physical Disks

Acccedilatildeo que permite adicionar discos fiacutesicos a um Grupo de Servidores O

disco adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores

Igualmente como a adiccedilatildeo de discos virtuais existem campos de

preenchimento obrigatoacuterio como o nome do disco tamanho e nesta opccedilatildeo o tipo

de RAID Acccedilatildeo que carece igualmente da aprovaccedilatildeo do administrador

Tabela 4 - Funccedilotildees associadas ao Grupo de Servidores

Funccedilatildeo Descriccedilatildeo

getLogicalServerGroup Obteacutem os detalhes associados a um Grupo de

Servidores Loacutegico em XML para visualizaccedilatildeo na

infowindow e opccedilatildeo de download

addServersToLogicalServerGroup Adiciona um Servidor a um Grupo de Servidores

Opccedilatildeo permissvel apenas se o nuacutemero de servidores

activos (ldquoactiveServerCountrdquo) for menor que o

nuacutemero maacuteximo de servidores

(ldquomaxServerCountrdquo)

55

removeServersFromLogicalServerGr

oup

Remove um Servidor de um Grupo de Servidores

Loacutegicos Opccedilatildeo permissvel apenas se o nuacutemero

miacutenimo de servidores (variaacutevel ldquominServerCountrdquo)

for menor que o nuacutemero de servidores activos

(variaacutevel ldquoactiveServerCountrdquo)

editLogicalServersServersGroup Permite a ediccedilatildeo de todos os Servidores

pertencentes a um Grupo de Servidores Loacutegicos

powerOnLogicalServersGroup Liga todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

powerOffLogicalServersGroup Desliga todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

powerCycleLogicalServersGroup Faz o reboot de todos os Servidores que pertencem

a um mesmo Grupo de Servidores Loacutegicos

activateLogicalServerGroup Activa todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

deactivateLogicalServerGroup Desactiva todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

5525 Servidores

Um Grupo de Servidores eacute constituiacutedo por uma lista de Servidores Cada grupo como

jaacute foi referido pode ser completamente diacutespar dos demais dentro de um mesmo

Serviccedilo O mesmo jaacute natildeo acontece nos Servidores dentro de um mesmo Grupo de

Servidores As configuraccedilotildees dos Servidores dentro de um mesmo Grupo de

Servidores tem todos as mesmas caracteriacutesticas podendo variar apenas no numero de

discos memoacuteria e processamento

O utilizador poderaacute obter informaccedilotildees como nome do Servidor status se eacute ou

natildeo virtual se estaacute em cloud se eacute o servidor base memoacuteria e processamento para

futuros upgrades com progressbars para facilmente visualizar o estado actual custo

datas de criaccedilatildeo e modificaccedilatildeo localizaccedilatildeo do ficheiro da VM (acessiacutevel apenas ao

administrador) e as listas associadas de discos software e interfaces

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa aos Servidores

56

Figura 35 - Execuccedilatildeo tab ldquoServerrdquo

Export Server

Permite o download em ficheiro XML dos detalhes do Servidor em

visualizaccedilatildeo o utilizador poderaacute consultar mais tarde em modo offline os detalhes

desse Servidor Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no clique do

icon do nome do Servidor respectivo no menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Servidor

directamente numa InfoWindow dentro do webservice A informaccedilatildeo em XML

torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Remove Server

A diferenccedila desta acccedilatildeo no Servidor para a mesma acccedilatildeo no Grupo de

Servidores eacute o facto da remoccedilatildeo ser do Servidor em visualizaccedilatildeo Para remover

mais do que um Servidor essa operaccedilatildeo teraacute obrigatoriamente que ser no Grupo

de Servidores

57

Edit Server

Como na remoccedilatildeo de servidores a diferenccedila desta acccedilatildeo para a mesma

acccedilatildeo no Grupo de Servidores eacute que a ediccedilatildeo de Servidores na tab Servidor apenas

afectaraacute o Servidor em visualizaccedilatildeo e natildeo os restantes Servidores do Grupo de

Servidores

Power ON Server

Acccedilatildeo que permite a ligaccedilatildeo do Servidor em visualizaccedilatildeo e que este fique

disponiacutevel para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica

activa quando ldquoserverStatus==OFFrdquo

Power OFF Server

Acccedilatildeo que permite que um Servidor seja desligado e que este fique

indisponiacutevel para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica

activa quando ldquoserverStatus==UPrdquo

Power Cycle Server

Acccedilatildeo que permite fazer o reboot a um Servidor e este continue disponiacutevel

para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica activa quando

ldquoserverStatus==UPrdquo

Activate Server

Permite a activaccedilatildeo do Servidor em visualizaccedilatildeo No final desta operaccedilatildeo

o Servidor fica em modo ldquoserverStatus==UPrdquo e ficam automaticamente disponiacutevel

para utilizaccedilatildeo

Deactivate Server

Permite a desactivaccedilatildeo do Servidor em visualizaccedilatildeo No final desta

operaccedilatildeo o Servidor fica em modo ldquoserverStatus==DEACTIVATEDrdquo

Actions Server

Como no Grupo de Servidores os ldquotriggered actionsrdquo associadas a cada

Servidor satildeo parte integrante do Serviccedilo criado Se o Servidor em visualizaccedilatildeo

tiver ldquotriggered actionsrdquo esta acccedilatildeo estaraacute visiacutevel ao utilizador para listagem

List Snapshots

Acccedilatildeo que permite listar todos os Snapshots associados ao Servidor em

visualizaccedilatildeo Todas as acccedilotildees nos Snapshots satildeo relativas ao Servidor em questatildeo

Create Snapshot

Acccedilatildeo que permite a criaccedilatildeo de Snapshots no Servidor

Existem campos obrigatoacuterios como o nome do Snapshot O nome do

Servidor eacute preenchido automaticamente com o nome do Servidor que estaacute a ser

visualizado Opccedilotildees como ldquoInclude Memory Staterdquo ou ldquoQuiesce filesystemrdquo

estatildeo tambeacutem disponiacuteveis para selecccedilatildeo aquando da criaccedilatildeo do Snapshot

58

List ServerPool

Acccedilatildeo que permite a listagem de todas as pools de Servidores existentes no

webservice Na imagem seguinte podemos visualizar quatro pools de Servidores

que foram criadas pelo administrador

ldquoCreate Server Poolrdquo eacute uma acccedilatildeo atribuiacutedas apenas ao administrador com

campos obrigatoacuterios como nome da Pool

ldquoDelete Server Poolrdquo eacute outra acccedilatildeo atribuiacutedas apenas ao administrador

permitindo a remoccedilatildeo de uma Pool de Servidores do sistema

Esta operaccedilatildeo natildeo remove Servidores nem Serviccedilos mas remover todas as

associaccedilotildees jaacute existentes entre Servidores e utilizadores Como acccedilatildeo importante

o webservice evidencia isso mesmo com uma InfoWindow de aviso ao

administrador

VM Host

Acccedilatildeo que permite a listagem de todos os hosts fiacutesicos associados a uma

determinada Pool de Servidores

Nesta operaccedilatildeo obtecircm-se detalhes relativos ao host como eacute o caso do

nome id endereccedilo IP domiacutenio DNS tipo de virtualizaccedilatildeo modelo cluster

memoacuteria total e consumida dados dos processadores e ainda dados relativos ao

armazenamento (DataStores) e rede (VirtualSwitch)

Remote Session

Acccedilatildeo que permite a listagem de todas as Sessotildees Remotas atribuiacutedas ao

Servidor em visualizaccedilatildeo

Esta acccedilatildeo eacute dependente do status do Servidor fica activa quando

ldquoserverStatus==UPrdquo

A imagem seguinte evidencia as duas ligaccedilotildees existentes para a VM do

Servidor especiacutefico Duas ligaccedilotildees relativas agraves duas Interfaces disponiacuteveis no

Servidor uma na rede ldquoHP Networkrdquo com o endereccedilamento IP 16231875 e

outra na rede local da infra-estrutura rede ldquoCloudSystemrdquo com o endereccedilamento

IP 19216810203

As opccedilotildees de Sessotildees Remotas possiacuteveis satildeo as que jaacute foram descritas na

listagem das ldquoRemote Sessionsrdquo do Serviccedilo Neste caso direccionadas apenas ao

um uacutenico Servidor

Tabela 5 - Funccedilotildees associadas aos Servidores

Funccedilatildeo Descriccedilatildeo

getLogicalServer Obteacutem os detalhes de um Servidor Logico em formato XML

para visualizaccedilatildeo na infowindow e opccedilatildeo de download

59

findLogicalServer Obteacutem os Detalhes de um Servidor Loacutegico especiacutefico

addServer Addiciona um Servidor a um Grupo de Servidores Loacutegicos

se o nuacutemero de servidores activos (variaacutevel

ldquoactiveServerCountrdquo) for menor que o nuacutemero maacuteximo de

servidores (variaacutevel ldquomaxServerCountrdquo)

removeServer Remove um Servidor de um Grupo de Servidores Loacutegicos se

o nuacutemero miacutenimo de servidores (variaacutevel

ldquominServerCountrdquo) for menor que o nuacutemero de servidores

activos (variaacutevel ldquoactiveServerCountrdquo)

editLogicalServer Permite a ediccedilatildeo de memoacuteria e processamento de um

determinado Servidor Loacutegico

powerOnLogicalServer Liga um Servidor Loacutegico especiacutefico

powerOffLogicalServer Desliga um Servidor Loacutegico especiacutefico

powerCycleLogicalServer Reboot de um Servidor Loacutegico especiacutefico

activateLogicalServer Activaccedilatildeo de um Servidor Loacutegico especiacutefico

deactivateLogicalServer Desactivaccedilatildeo de um Servidor Loacutegico especiacutefico

getRdpFile Obteacutem o ficheiro RDP para download e posterior acesso

remoto

getLogicalServersAndIPs Obteacutem uma lista de todos os IPs das Interfaces de um

determinado Servidor Loacutegico

getVmHost Obteacutem os detalhes do Host associado a um Servidor Loacutegico

5526 Disco

Cada servidor tem necessariamente um ou mais discos associados estes podem ser

rotulados de ldquoStereotyperdquo ldquoVirtualrdquo ou ldquoPhysicalrdquo Um disco ldquoStereotyperdquo

corresponde a um disco-base ie um disco que existe no template (do servidor)

excepto disco de boot os restantes como o proacuteprio nome indica satildeo discos virtuais

ou fiacutesicos

Nesta tab o utilizador pode obter informaccedilatildeo do nome do disco tamanho tipo

de RAID tipo de Storage se eacute ou natildeo Bootable Shareable tipo de Raw Mapping

(VIRTUAL PHYSICAL NONE e OTHER) custo associado ficheiro do disco

(virtual - acessiacutevel apenas ao administrador) e data de criaccedilatildeo e modificaccedilatildeo

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa aos discos

60

Figura 36 - Execuccedilatildeo tab ldquoDisksrdquo

Add Stereotype Disks

Acccedilatildeo jaacute enunciada no Grupo de Servidores Como estamos a visualizar

um disco e as suas configuraccedilotildees esta acccedilatildeo estaraacute apenas disponiacutevel se o disco

em visualizaccedilatildeo natildeo for bootable Como jaacute referido apenas os discos que natildeo

sejam bootable satildeo considerados ldquoStereotype Disksrdquo e poderatildeo ser criados novos

discos com base no disco em questatildeo

Como no Grupo de Servidores tambeacutem nos discos esta opccedilatildeo soacute seraacute

possiacutevel se natildeo existirem Snapshots relativos a qualquer Servidor desse Grupo de

Servidores Esta acccedilatildeo carece da aprovaccedilatildeo do administrador

Tabela 6 - Funccedilotildees associadas aos Discos

Funccedilatildeo Descriccedilatildeo

addDiskToLogicalServerGroup Adiciona um Stereotype Disk a um Grupo de

Servidores Loacutegicos Operaccedilatildeo que carece da aprovaccedilatildeo

do Administrador

addNewDiskToLogicalServerGro

up

Adiciona um disco virtual ou fiacutesico a um Grupo de

Servidores Loacutegicos Operaccedilatildeo que carece da aprovaccedilatildeo

do Administrador O tamanho do disco eacute

automaticamente determinado pelo tipo do Grupo de

Servidor Loacutegico

61

5527 Software

Recursos como Software tambeacutem fazem parte dos recursos do Servidor Mediante a

instalaccedilatildeo preacutevia do ldquoServer Automationrdquo no MOE aquando da criaccedilatildeo do Template

poderatildeo ser associados nos recursos de cada Servidor uma lista de software como lista

de packages com SO software antiviacuterus base de dados etc previamente instalados

em VM e posteriormente transformados em Tamplate

Cada Servidor pertencente a um mesmo Grupo de Servidores teraacute uma mesma

lista de software base associado

Informaccedilotildees relativas ao software tambeacutem estatildeo disponiacutevel ao utilizador como

nome tipo tipo de OS tipo de Deployment Service ficheiro de configuraccedilatildeo do OS

(acessiacutevel apenas ao administrador) tipo de virtualizaccedilatildeo localizaccedilatildeo do ficheiro

relativo ao software (acessiacutevel apenas ao administrador) e data de criaccedilatildeo e

modificaccedilatildeo

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Software

Figura 37 - Execuccedilatildeo tab ldquoSoftwarerdquo

List Softwares

Acccedilatildeo disponiacutevel apenas ao administrador permite a listagem de todo o

Software disponiacutevel no sistema O software pertencente ao Grupo de

ServidoresServidor estaacute disponiacutevel directamente no menu lateral esquerdo

Mediante a instalaccedilatildeo preacutevia do ldquoServer Automationrdquo no MOE aquando

da criaccedilatildeo do Template poderaacute ser associado nos recursos de cada Grupo de

ServidoresServidor uma lista de software como lista de packages com SO

software antiviacuterus base de dados etc

Software Detals

Acccedilatildeo disponiacutevel apenas ao administrador permite a visualizaccedilatildeo de todos

os detalhes do Software

62

Tabela 7 - Funccedilotildees associadas ao Software

Funccedilatildeo Descriccedilatildeo

listSoftware Obteacutem a lista de todo o Software disponiacutevel no

webservice Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura

de orquestraccedilatildeo

getSoftware Obteacutem os detalhes de um Software especiacutefico

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

5528 Interface

As Interfaces (NICs) fazem igualmente parte das configuraccedilotildees base de cada Servidor

podendo no entanto existir redundacircncia ou natildeo

Informaccedilotildees das Interfaces disponiacutevel na tab respectiva como nome se eacute a

interface primaacuteria data de criaccedilatildeo modificaccedilatildeo e informaccedilotildees sobre a rede como

nome se eacute puacuteblica partilhada tipo e endereccedilo IP com informaccedilotildees como o endereccedilo

IP propriamente dito tipo de atribuiccedilatildeo custo e uma lista de NatEntrys (Network

Address Translation)

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa as Interfaces

Figura 38 - Execuccedilatildeo tab ldquoInterfacerdquo

List Subnets

Acccedilatildeo disponiacutevel apenas ao administrador permite a listagem de todas as

redes existentes no sistema com informaccedilotildees como nome da rede endereccedilo

mascara source tipo de IP se eacute uma rede puacuteblica e os endereccedilamentos DHCP e

estaacutecticos nuacutemero de IPs usados e em uso etc

63

Add IPAddress

Acccedilatildeo que permite atribuir automaticamente (pelo sistema) um IP

flutuante a uma Interface Uma Interface associada a um Servidor dentro de um

determinado Serviccedilo

Com esta acccedilatildeo o utilizador solicita um IP flutuante de uma pool de IPs

que o administrador tenha criado Nesse sentido o utilizador apenas solicita um IP

flutuante para uma Interface (NIC0) de um determinado Servidor pertencente a

um Serviccedilo Como o utilizador estaacute a visualizar a Interface os campos satildeo

automaticamente preenchidos Operaccedilatildeo apenas permitida em servidores loacutegicos

em cloud

Remove IPAddress

Acccedilatildeo que permite remover um IP flutuante Neste caso o utilizador tem

que fornecer o endereccedilo IP flutuante previamente adquirido

Move IPAddress

Acccedilatildeo que permite mover um determinado IP flutuante entre instacircncias

Na eventualidade do utilizador jaacute for detentor de um IP flutuante pode move-lo

atribuindo-o agrave Interface em visualizaccedilatildeo Operaccedilatildeo apenas permitida em

servidores loacutegicos em cloud

VM Access

Acccedilotildees de acesso remoto directamente na Interface

Esta acccedilotildees satildeo dependente do status do Servidor ficam activas quando

ldquoserverStatus==UPrdquo

Como estamos directamente a visualizar uma Interface o acesso remoto eacute

feito atraveacutes dessa Interface desse IP conhecido

As opccedilotildees de Sessotildees Remotas possiacuteveis satildeo as que jaacute foram descritas na

listagem das ldquoRemote Sessionsrdquo do Serviccedilo

RDP (Remote Desktop Protocol)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet

VMRC (VMware Remote Console)

Tabela 8 - Funccedilotildees associadas agraves Interfaces

Funccedilatildeo Descriccedilatildeo

getVMID Obteacutem o ID de uma VM atarveacutes do endereccedilo IP da

Interface

64

executeRDP Execuccedilatildeo directa do comando RDP mstscexe

vIPAddress console

addFloatingIPAddress Adiciona automaticamente um endereccedilo IP flutuante a

uma determinada Interface Operaccedilotildees de IP flutuante natildeo

satildeo suportadas para Servidores Loacutegicos que natildeo estejam

em cloud

removeFloatingIPAddress Remove um determinado endereccedilo IP flutuante de um

Servidor Loacutegico Operaccedilotildees de IP flutuante natildeo satildeo

suportadas para Servidores Loacutegicos que natildeo estejam em

cloud

moveFloatingIPAddress Associa um determinado endereccedilo IP flutuante jaacute

existente a uma Interface Operaccedilotildees de IP flutuante natildeo

satildeo suportadas para Servidores Loacutegicos que natildeo estejam

em cloud

5529 Redes

As Redes como o Software teratildeo que estar previamente configuradas e

implementadas para posterior uso em Templates e Serviccedilos A listagem de redes

existentes na infra-estrutura estaacute apenas disponiacutevel ao Administrador ou Arquitecto de

toda a infra-estrutura de orquestraccedilatildeo e permite a visalizaccedilatildeo de todas as redes

existentes com informaccedilotildees como o nome da rede gama de endereccedilos IP mascara

tipo de IPV e se eacute um endereccedilamento estaacutectico ou obtido por DHCP

Figura 39 - Listagem das redes existentes

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa agraves Redes

65

Tabela 9 - Funccedilotildees associadas agraves Redes

Funccedilatildeo Descriccedilatildeo

listSubnets Obteacutem uma lista com todas as redes existentes no

webservice

listSubnet Obteacutem os detalhes de uma rede especiacutefica

55210 Snapshots

Os Snapshots satildeo um recurso valioso quando nos deparamos com problemas de

inconsistecircncias desastres seguranccedila etc que natildeo sendo backup permite a

recuperaccedilatildeo do servidor em segundos contrariamente a restauraccedilatildeo a partir de um

backup tradicional recuperaccedilatildeo ou reinstalaccedilatildeo de um SO ou qualquer outra teacutecnica

com o seu exagerado tempo de consolidaccedilatildeo

A listagem de todos os Snapshots estaacute disponiacutevel aquando da visualizaccedilatildeo da

informaccedilatildeo relativa ao Grupo de Servidores onde satildeo visualizados todos os Snapshots

pertencentes ao grupo e no Servidor onde apenas satildeo visualizados os Snapshots desse

Servidor em visualizaccedilatildeo

Uma lista relacionada de Snapshots sucessivos com informaccedilotildees como nomes

do Serviccedilo do Grupo de Servidores e do Servidor assim como nome do Snapshot a

sua relaccedilatildeo parental e se estaacute ou natildeo activo ficam disponiacuteveis ao utilizador

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa aos Snapshots

Figura 40 - Execuccedilatildeo tab ldquoSnapshotrdquo

Tabela 10 - Funccedilotildees associadas aos Snapshots

Funccedilatildeo Descriccedilatildeo

listServerSnapshots Obteacutem a listagem de todos os Snapshots de um Servidor

Loacutegico especiacutefico

listServerGroupSnapshots Obteacutem a listagem de todos os Snapshots de um Grupo de

Servidor Loacutegico

66

snapshotCreate Cria um Snapshot de um Servidor especiacutefico

revertServerSnapshot Reverte um determinado Snapshot para o Servidor

correspondente

deleteServerSnapshot Remove um Snapshot do sistema

55211 Request

A visualizaccedilatildeo do estado actual das acccedilotildees do utilizador eacute considerado um dos pontos

chave desta framework O simples update da ldquoprogressbarrdquo carece de uma perfeita

sincronizaccedilatildeo entre o Webservice e o MOE

O utilizador poderaacute visualizar sempre uma listagem de todos os seus pedidos ou

pormenoriza-los por relaccedilotildees 1) UtilizadorServiccedilos 2) TemplateServiccedilos 3)

Serviccedilo

A listagem de todos os pedidos estaacute disponiacutevel aquando da visualizaccedilatildeo da

informaccedilatildeo relativa a qualquer recurso sendo que a opccedilatildeo 1) eacute geral e sempre

disponiacutevel e as opccedilotildees 2) e 3) satildeo especiacuteficas a recursos em visualizaccedilatildeo Ficam assim

disponiacuteveis informaccedilotildees como tipo data submissatildeo do pedido comeccedilo e fim status

progresso () nome do Serviccedilo ao qual o pedido estaacute associado etc

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo da listagem

dos pedidos do utilizador

Figura 41 - Execuccedilatildeo tab ldquoRequestsrdquo

Opccedilotildees como ldquoAproval Staterdquo e ldquoContinuerdquo de pedidos que carecem da

aprovaccedilatildeo do Administrador ficam apenas acessiacuteveis aos utilizadores com permissotildees

de administraccedilatildeo e a opccedilatildeo de cancelamento acessiacutevel aos utilizadores que solicitaram

esses pedidos

67

Tabela 11 - Funccedilotildees associadas aos Requests

Funccedilatildeo Descriccedilatildeo

listRequests Listagem de todos os pedidos do utilizador

listRequestsTemplateDetails Listagem de todos os pedidos do par utilizadorTemplate

listRequestsServiceDetails Listagem de todos os pedidos do par utilizadorServiccedilo

getRequestInfo Obteacutem detalhes de toda a informaccedilatildeo associada a um

determinado pedido

getPercentComplete Obteacutem a percentagem de um pedido

getRequest Obteacutem os detalhes particulares de um pedido

setRequestApprovalState Aprovaccedilatildeo de um pedido feito por um utilizador e que

esteja no estado PAUSED_FOR_APPROVAL

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

continueRequest Permite a continuaccedilatildeo de um pedido feito por um

utilizador e que esteja no estado IN_PROGRESS

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

cancelRequest Cancelamento de um pedido

55212 Pools de Servidores

Uma pool de servidores eacute um grupo de um ou mais hosts de virtualizaccedilatildeo com a uma

mesma arquitetura com acesso agraves mesmas redes virtuais e fiacutesicas e recursos de

armazenamento As Pools de servidores permitem balanceamento de carga recursos

de alta disponibilidade e partilha de alguns recursos para todos os membros dessa

pool

Informaccedilotildees das Pools disponiacutevel na tab respectiva como nome ID da

organizaccedilatildeo Ids dos Hosts e o grupo de utilizadores associados a cada Pool de

Servidores

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa a uma determinada Pool de Servidores

68

Figura 42 - Execuccedilatildeo tab ldquoServerPoolsrdquo

Tabela 12 - Funccedilotildees associadas agraves Pools de Servidores

Funccedilatildeo Descriccedilatildeo

listServerPools Obteacutem uma listagem de todas as Pools de Servidores para

a criaccedilatildeo de um Serviccedilo

listServerPoolsTab Obteacutem todas as Pools de Servidores existentes no

webservice Informaccedilatildeo disponibilizada na tab

serverPools

listVmHostIds Obteacutem uma lista com todos os Hosts associados a uma

Pool de Servidores

getServerPool Obteacutem os detalhes de uma Pool de Servidores

createServerPool Permite a criaccedilatildeo de uma nova Pool de Servidores

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

deleteServerPool Remove uma Pool de Servidores do systema Operaccedilatildeo

executada apenas pelo Administrador ou Arquitecto de

toda a infra-estrutura de orquestraccedilatildeo

56 Camada de Dados

Numa orientaccedilatildeo a objectos os objectos considerados ldquopersistentesrdquo satildeo todos os

objectos que continuam a existir apoacutes o teacutermino de execuccedilatildeo do programa por norma

guardados numa base de dados relacional ou mesmo em ficheiros em disco Jaacute os

objectos considerados ldquonatildeo persistentesrdquo deixam de existir quando o programa

termina satildeo objectos armazenados em tempo de execuccedilatildeo e satildeo usados apenas

durante esse periacuteodo

561 Dados natildeo persistentes

Os dados natildeo persistentes nesta framework destinam-se exclusivamente ao

utilizador permissotildees de acesso e seguranccedila Internamente o servidor guarda em

tempo de execuccedilatildeo dados relativos ao utilizador como eacute o caso do username

69

(userPrincipal) password (IOClientPasswordHandler) privileacutegios de acesso

(rolePrincipal) grupo de utilizadores (userGroups) e credenciaccedilotildees necessaacuteria

(TrustAllX509TrustManager) para comunicaccedilatildeo com a API do MOE A comunicaccedilatildeo

eacute estabelecida (IOSoapServicePort_Client) e quando existir a solicitaccedilatildeo de

determinados conteuacutedos estes satildeo disponibilizados ou natildeo mediante o ldquotipordquo (role)

de utilizador e suas permissotildees

Neste contexto a autenticaccedilatildeo eacute todo um processo de determinar se uma

entidade eacute quem quem diz ser e a autorizaccedilatildeo o processo de conceder permissotildees de

acesso a recursos Logicamente a autenticaccedilatildeo precede a autorizaccedilatildeo

O moacutedulo login implementa isso mesmo todos os passos de autenticaccedilatildeo

credenciaccedilatildeo e permissotildees uma teacutecnica conhecida como Realm JAAS (Java

Authentication and Authorization Service) como conjunto de interfaces de

programaccedilatildeo de aplicaccedilotildees (APIs) com opccedilotildees de autenticaccedilotildees em modo Basic e

Form usando para isso os denominados realms File e JDBC (Java Database

Connectivity) em runtime

Figura 43 - Realm JAAS (Java Authentication and Authorization Service)

562 Dados persistentes

5621 Cookies HTTP

Os dados persistentes destinam-se especialmente ao utilizador e foram idealizados

nesse sentido tornar a relaccedilatildeo utilizadorwebservice mais amigaacutevel e acima de tudo

praacutetica e independente do ldquostatusrdquo da infra-estrutura

Os tatildeo conhecidos COOKIEs HTTP satildeo dados armazenado no

navegadorbrowser do utilizador quando este acede a um determinado site Eacute um

mecanismo usado para guardar as informaccedilotildees relativas a um utilizador como

username formataccedilatildeo de conteuacutedos actividades escolhas cliques etc para quando

aceder novamente a esse site essas configuraccedilotildees anteriores estarem preacute-definidas e

configuradas

70

Os cookies de autenticaccedilotildees em sites web satildeo o meacutetodo mais comum e nesta

framework este meacutetodo foi usado para guardar dados relativos ao utilizador O

servidor natildeo precisa de suportar o peso das ligaccedilotildees siacutencronas para saber se um

determinado utilizador estaacute logado ou natildeo e neste sentido este meacutetodo torna-se eficaz

Os dados guardados e relativos ao utilizador que satildeo dados como username

role layout do webservice (gtheme) layout do menu lateral esquerdo (ttheme)

informaccedilatildeo relativa agraves regiotildees do webservice visualizada ou omitida (nregion

wregion eregion sregion) e um boolean (islogin) para uma mensagem de boas

vindas aquando do login Cada vez que um determinado utilizador alterar o layout do

webservice ou fechar o painel de visualizaccedilatildeo de determinada informaccedilatildeo satildeo passos

que satildeo guardados e durante toda a navegaccedilatildeo estas acccedilotildees permaneceratildeo guardadas

mesmo em futuros logins desse utilizador

5622 Modelo ER

Uma infra-estrutura como o MOE eacute desenhada e implementada para funcionamento

online e todas as alteraccedilotildees como criaccedilatildeo de um Serviccedilo ediccedilatildeo desse Serviccedilo

criaccedilatildeo de Discos etc satildeo alteraccedilotildees com acccedilatildeo imediata na infra-estrutura

Infelizmente nem tudo corre sempre como queremos e quando mais precisamos de

uma ou outra implementaccedilatildeo ou configuraccedilatildeo eacute quando o serviccedilo estaacute em baixo e por

uma ou outra razatildeo ficamos impossibilitados de o fazer

A implementaccedilatildeo de uma Base de Dados com toda a informaccedilatildeo relativa ao

utilizador colmata sempre estas falhas imprevistas Um implementaccedilatildeo independente

da infra-estrutura que permite ao utilizador ter acesso total aos seus dados crie edite

apague recursos em modo offline com sincronizaccedilatildeo com o MOE automaacuteticamente ou

por acccedilatildeo do utilizador

Um moacutedulo uacutetil e praacutetico que facilita o acesso e configuraccedilotildees dos serviccedilos do

utilizador Acccedilotildees que carecem de algum tempo de implementaccedilatildeo apoacutes a sua

solicitaccedilatildeo Acccedilotildees agarradas ao utilizador ao seu tempo e disposiccedilatildeo e natildeo agrave infra-

estrutura Acccedilotildees tidas pelo utilizador que sem preocupaccedilatildeo com tempos de execuccedilatildeo

e implementaccedilatildeo cria edita ou apaga o seu Serviccedilo e numa futura ligaccedilatildeo tudo eacute

sincronizado automaticamente

Segue-se o modelo ER implementado que descreve conceptualmente os dados

e seus relacionamentos em UML Em realce os principais recursos

71

Figura 44 - Modelo ER

Pela anaacutelise do modelo ER facilmente se percebe como os recursos se

relacionam entre siacute Segue-se uma explicaccedilatildeo do modelo e dos seus recursos

principais

Cada Template tem uma lista de Serviccedilos associados que aquando da sua

implementaccedilatildeo tiveram esse Template como base e apresenta um e um soacute custo total

que corresponde a soma de todos os recursos implementados e permitidos nesse

Template

72

Um Serviccedilo como jaacute referido tem sempre por base um e um soacute Template um

e um soacute ldquoLeasePeriodrdquo que corresponde ao tempo de utilizaccedilatildeo e um e um soacute custo

total associado Este custo eacute igualmente a soma de todos os recursos instanciados e

em uso nesse Serviccedilo No Serviccedilo eacute possiacutevel implementar uma nova Entidade

denominada ldquoServiceActionrdquo que corresponde a um e um soacute conjunto de acccedilotildees a

executar automaticamente antes durante ou depois da criaccedilatildeo desse Serviccedilo O

Serviccedilo encontra-se sempre em um e um soacute estado (ServiceEntityStatusEnum) de cada

vez que eacute acedido Logicamente como referido ao longo do presente relatoacuterio um

Serviccedilo eacute constituiacutedo por uma lista de Grupos de Servidores numa relaccedilatildeo de um para

muitos

Um Grupo de Servidores como o Serviccedilo apresenta tambeacutem um e um soacute

conjunto de acccedilotildees a executar automaticamente antes durante ou depois da criaccedilatildeo

desse Serviccedilo nesse Grupo de Servidores em especiacutefico Novas Entidades satildeo aqui

retratadas como seguranccedila (LogicalFirwallRuleGoup) e balanceamento de carga

(LogicalLoadBalancer) com a relaccedilatildeo de muitos para um Um Grupo de Servidores

estaacute sempre associado a um e um soacute Serviccedilo e eacute constituiacutedo por uma lista de

Servidores numa relaccedilatildeo de um para muitos Uma nova Entidade aparece no Grupo de

Servidores (LogicalIPAddress) com a atribuiccedilatildeo de um IP uacutenico ao Grupo

Um Servidor relaciona-se com o Grupo de Servidores numa relaccedilatildeo de muitos

para um contrariamente agrave relaccedilatildeo com as Entidades LogicalSoftware e LogicalDisk

cuja relaccedilatildeo eacute de muitos para muitos Jaacute a relaccedilatildeo com LogicalNetworkInterface eacute

apenas uma relaccedilatildeo de um para muitos um Servidor pode ter muitas Interfaces mas

uma Interfaces estaacute sempre associada a um e um soacute Servidor

Por uacuteltimo como componentes do Servidor Software Discos e Interfaces

Um mesmo Software pode estar instanciado em muitos Servidores assim como

muitos Servidores podem ter uma lista de Software Os Discos com a opccedilatildeo ldquosharedrdquo

podem pertencer a vaacuterios Servidores e vice-versa As Interfaces aleacutem de pertencer a

um e um soacute Servidor tem igualmente um e um soacute IP associado

57 Feedback

O presente trabalho como jaacute referido teve sempre como objectivo uacuteltimo a facilidade

de acccedilotildees do utilizador visualizaccedilatildeo e organizaccedilatildeo da disponibilizaccedilatildeo de toda a

informaccedilatildeo e nesse intuito ao longo de toda a elaboraccedilatildeo foram desencadeadas vaacuterias

apresentaccedilotildees ao Orientador da Tese professor Paulo Lopes e Orientador da

elaboraccedilatildeo na HP Rui Ramos Os Feedbacks serviram para redireccionamentos e

orientaccedilotildees de programaccedilatildeo

A disponibilizaccedilatildeo da informaccedilatildeo por Tabs transmite toda a informaccedilatildeo ao

utilizador de uma forma organizada facilmente acessiacutevel e raacutepida na percepccedilatildeo dessa

informaccedilatildeo e suas acccedilotildees possiacuteveis associadas

73

A alteraccedilatildeo aconselhada pelo Rui Ramos na ediccedilatildeo de Servidores do Grupo de

Servidores como a passagem de listagens para um simples ldquobuttonrdquo com um sinal ldquo+rdquo

para adicionar Servidores ou um sinal ldquo-rdquo para remover tornou-se mais praacutetica e

intuitiva

Disponibilizaccedilatildeo de mais meios de acesso agraves VMs como a opccedilatildeo VMRC

(VMware Remote Console) ou RDP (Remote Desktop Protocol) satildeo sempre opccedilotildees

vaacutelidas e uacuteteis para o utilizador final

A disponibilizaccedilatildeo da informaccedilatildeo e das acccedilotildees associadas agrave medida que o

utilizador vai descendo no menu em aacutervore (menu lateral esquerdo) torna-se uacutetil pela

visualizaccedilatildeo hieraacuterquica de todos os recursos e acima de tudo praacutetico ao que o

utilizador realmente pretende com um simples clique

Personalizaccedilatildeo do layout aconselhada pelo professor Paulo Lopes com os

diversos ldquoThemesrdquo opccedilotildees de visualizaccedilatildeoocultaccedilatildeo de informaccedilatildeo etc com as

valecircncias jaacute descritas no iniacutecio deste capiacutetulo

Opccedilatildeo ldquoDatagridrdquo onde a disponibilizaccedilatildeo da informaccedilatildeo passa de simples

Tabs para listagem em tabelas Visualizaccedilatildeo uacutetil quando a informaccedilatildeo eacute demasiada

evitando assim o scroll do utilizador na busca da restante informaccedilatildeo bastando para

isso selecionar a ldquoquantidaderdquo de informaccedilatildeo que pretende visualizar naquele

momento

Feedbacks sempre positivos e atempados para as alteraccedilotildees necessaacuterias a

efectuar no framework

58 Questotildees principais

No decorrer da elaboraccedilatildeo deste webservice foram seguidos caminhos e

implementaccedilotildees que de um modo geral se tornaram praacuteticas e uacuteteis existindo no

entanto algumas desaconselhadas pela especificidade deste tipo de implementaccedilotildees

Foi implementada a opccedilatildeo de visualizaccedilatildeo e acccedilotildees em modo offline Foi

criada uma base de dados que suportava todos os dados do MOE a sincronizar

aquando do refresh do webservice ou por acccedilatildeo do utilizador Tal opccedilatildeo foi

desaconselhada pelo facto do sistema estar sempre online disponiacutevel e ter custos

associados

A transformaccedilatildeo de datas ldquoepoch2daterdquo e ldquodate2epochrdquo foi uma das opccedilotildees

que mais trabalho deu pelo facto da API natildeo indicar que o referido nuacutemero eacute a data

em eacutepoca e as casas decimais que entram na conversatildeo Uma eacutepoca em Unix (o

conhecido Unix timestamp) eacute o nuacutemero em segundos que distam de 01 de Janeiro de

1970 ou seja eacute o tempo Unix 0 que corresponde agrave meia-noite de 01011970 Por

norma uma data em eacutepoca eacute um nuacutemero inteiro de 32 bits As duas funccedilotildees

ldquoepoch2daterdquo e ldquodate2epochrdquo tratam dessas converotildees para o utilizador poder

observar as datas numa formataccedilatildeo legiacutevel Esta formataccedilatildeo ainda carece de uma

74

transformaccedilatildeo do dia com o mecircs para ser apresentada no formato europeu

diamecircsano

Existe coacutedigo HTML que eacute criado dinamicamente esta opccedilatildeo tornou-se

bastante uacutetil pela disponibilizaccedilatildeo de grandes quantidades de informaccedilatildeo nos mesmos

ldquoinput boxesrdquo como eacute o caso de toda a informaccedilatildeo do Servidor dentro de um mesmo

Grupo de Servidores A informaccedilatildeo eacute diferente mas o layout eacute o mesmo por isso uma

organizaccedilatildeo adequada de IDs criados dinamicamente faz toda a diferenccedila

O tratamento de erros eacute algo que por vezes eacute decurado no dueto utilizador-

webservice Um webservice quer-se amigaacutevel e nesse intuito paacuteginas em branco

completamente diferentes do layout do webservice com erros como 404 ou 500 satildeo

desaconcelhadas Assim foi inicialmente implementado esse tratamento directamente

no ficheiro ldquoWebContentWEB-INF webxmlrdquo que redirecionava o utilizador para

paacuteginas HTML com layout igual ao webservice com o respectivo nuacutemero do erro e a

mensagem correspendente para informaccedilatildeo Uma mudanccedila e redireccionamento

draacutestico obrigando o utilizador a voltar atras e tentar de novo Optou-se pelo

tratamento directo em javascript com a visualizaccedilatildeo da mensagem de erro numa

ldquoInfoWindowrdquo sem redireccionamentos nem novas paacuteginas

A API do MOE apresenta igualmente alguns pontos que precisam de ser

melhorados em futuras versotildees Foram implementados alguns caminhos secundaacuterios

quando tudo poderia ser mais faacutecil se a API fornecesse essa implementaccedilatildeo

directamente

Informaccedilatildeo detalhada dos Templates

O objectivo deste webservice eacute criar serviccedilos e apoacutes criaccedilatildeo fazer uso dos

recursos A implementaccedilatildeo de um Serviccedilo tem por base um Template que lhe estaraacute

sempre associado Templates existentes num Cataacutelogo de Serviccedilos e com informaccedilatildeo

sobre os recursos que ficaram disponiacuteveis apoacutes a criaccedilatildeo do Serviccedilo

Naturalmente o utlizador percorre todos os Templates na busca da informaccedilatildeo

que melhor se adapte agraves suas necessidades Se esse informaccedilatildeo se apresenta escassa o

utilizador natildeo vai ficar a saber dos detalhes dos recursos que poderaacute usar aquando da

criaccedilatildeo do serviccedilo

A API natildeo fornece informaccedilatildeo detalhada dos Templates apenas uma

informaccedilatildeo muito resumida natildeo disponibilizando ao utilizador a informaccedilatildeo

associada por exemplo ao custo de cada servidor memoacuteria processador nuacutemero de

interfaces software etc

O presente webservice jaacute disponibiliza toda essa informaccedilatildeo ao utilizador

sendo que este pode navegar no Cataacutelogo de Serviccedilos do menu lateral esquedo e

visualizar toda a informaccedilatildeo detalhada dos Templates escolher o que melhor se

enquadre dentro das suas necessidades e finalmente criar o Serviccedilo

75

VMID

O utilizador pode assim usar os recursos depois do Serviccedilo criado Para a

criaccedilatildeo de uma sessatildeo remota o ID da VM era essencial Tal informaccedilatildeo natildeo existe

na API do MOE Uma listagem de VMIDs por utilizador associadas a cada serviccedilo

por servidor por interface qualquer uma destas quatro opccedilotildees era vaacutelida

ldquocustomTemplateAttributesrdquo na criaccedilatildeo do Serviccedilo

Na criaccedilatildeo de um Serviccedilo existem campos de preenchimento automaacutetico

campos obrigatoacuterios e outros opcionais Assim eacute necessaacuterio fornecer o

ldquoserviceNamerdquo (obrigatoacuterio) templateName (automatico) leasePeriod (automatico

mas o utilizador pode mudar) hostname (obrigatoacuterio) serverPoolNames (automaacutetico

mas o utilizador pode mudar) ownerEmailAddress (obrigatoacuterio) note (opcional)

billingCode (opcional) e customTemplateAttributes (opcional) A falta da API reside

neste uacuteltimo campo ldquocustomTemplateAttributesrdquo onde o utilizador poderia escolher

previamente o nuacutemero de servidores memoacuteria processadores tipo de endereccedilamento

das interfaces etc

computeServerIds do ServerPools

Uma informaccedilatildeo valiosa para a criaccedilatildeo de Pools de Servidores natildeo sabendo

os IDs dos computeServerIds natildeo eacute possiacutevel chegar aos Compute Resources para

poder adicionar recursos agraves Pools Outra falha detectada

59 Visatildeo global

Uma interface baseada no protocolo REST (Representational State Transfer) para

troca de informaccedilatildeo e direcionada aos recursos disponibilizados na Web apresenta-se

como vantagem quando estamos a lidar com isso mesmo recursos

Um conjunto de princiacutepios como HTTP e URIs que usando REST exploram

a arquitectura Web para o seu benefiacutecio usando a simplicidade natildeo soacute de transporte

como tambeacutem de protocolos

Espelhadas as vantagens do protocolo REST o presente webservice torna-se

assim mais simples em comunicaccedilatildeo e no acesso aos recursos sem o atraso da

sobrecarga apreciaacutevel na construccedilatildeo de mensagens do protocolo SOAP (Simple

Object Access Protocol) do MOE

Figura 45 - Mensagens SOAP na invocaccedilatildeo de processos do MOE

76

Figura 46 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull do WEBSERVICE

Comparativamente agrave implementaccedilatildeo em siacute no MOE existe um uacutenico menu de

acesso a todas as acccedilotildees possiacuteveis as operaccedilotildees de Grupo tornam-se assim cansativas

e desmotivadoras arrantando o utilizador para uma sequecircncia de cliques ateacute a acccedilatildeo

final Opccedilotildees como ediccedilatildeo do Grupo de Servidores natildeo existem tal eacute possiacutevel apenas

na ediccedilatildeo directa em cada Servidor No webservice basta um clique e eacute executada

uma acccedilatildeo de grupo como por exemplo desligar todo o Grupo de Servidores A ediccedilatildeo

do Grupo de Servidores eacute arrastada a todos os Servidores do Grupo apenas com uma

simples ediccedilatildeo de memoacuteria e processamento no Grupo

Como nas acccedilotildees de Grupo se o utilizador pretender uma acccedilatildeo numa

interface especiacutefica teraacute que percorrer a sequecircncia e cliques contrariamente ao

presente webservice com acccedilatildeo directa quer no menu lateral esquerdo quer na

visualizaccedilatildeo directa da informaccedilatildeo da interface

Toda a informaccedilatildeo a apresentar relativamente aos recursos eacute vasta requerendo

uma organizaccedilatildeo inteligente nessa apresentaccedilatildeo com opccedilotildees de

visualizaccedilatildeoocultaccedilatildeo dessa informaccedilatildeo se o utilizador assim o entender Acccedilotildees

possiacuteveis aquando da visualizaccedilatildeo de determinada informaccedilatildeo devem estar visiacuteveis e

acessiacuteveis No MOE isso eacute difiacutecil ou quase impossiacutevel porque a interface natildeo foi

desenhada desse modo a informaccedilatildeo apresentada torna-se desorganizada e

desmotivada a leitura

510 Resumo

Este capiacutetulo comeccedila por descreve a arquitectura usada e as suas camadas seguindo-

se um exemplo simplificado das relaccedilotildees da framework e plataformas (MOE e

VMware) Satildeo apresentados conceitos como rapidez organizaccedilatildeo e personalizaccedilatildeo

nm desenho guiado pela Interface do Utilizador Como nuacutecleo deste capiacutetulo eacute feita

toda a descriccedilatildeo da framework por camadas da Arquitectura apresentada

apresentaccedilatildeo loacutegicaserviccedilos e dados onde satildeo descritas todas as acccedilotildees passiveis de

serem executadas por recurso Por uacuteltimo os feedback tidos ao longo da

implementaccedilatildeo algumas questotildees consideradas importantes e finalmente uma visatildeo

global como foco

77

6 Consideraccedilotildees Finais

Esta tese resultou de uma proposta de tema de tese que a HP Portugal submeteu ao

Departamento de Informaacutetica da FCTUNL e que apoacutes algumas interacccedilotildees resultou no

tema intitulado Framework para a construccedilatildeo de ldquoportais de negoacuteciordquo para gestatildeo de

solicitaccedilotildees IaaS na HP Cloud

A primeira fase de Preparaccedilatildeo de Dissertaccedilatildeo ocorreu no 1ordm semestre do ano

lectivo de 20122013 e realizou-se essencialmente neste departamento pontuada por

esporaacutedicas reuniotildees na HP Portugal (Quinta da Fonte Paccedilo De Arcos) A segunda de

Elaboraccedilatildeo da Dissertaccedilatildeo decorreu imediatamente apoacutes a primeira e cumpriu-se

totalmente nas instalaccedilotildees da HP Portugal

Durante a primeira fase estudou-se o paradigma de computaccedilatildeo na cloud os seus

periacutemetros (modelos de implantaccedilatildeo) e modelos de serviccedilo Estudou-se tambeacutem a

virtualizaccedilatildeo tecnologia base da computaccedilatildeo na cloud desde a sua origem ao seu estado

actual Estudaram-se ainda as plataformas de virtualizaccedilatildeo de servidores com maior

presenccedila nos centros de dados o ESXi da VMware o XenServer da Citrix Systems e o

Hyper-V da Microsoft e ainda a tecnologia proprietaacuteria da HP designada HP Integrity

Virtual Machines Estudaram-se ainda as tecnologias de armazenamento abordando-se os

aspectos de integridade fiabilidade e desempenho oferecidos pelos Redundant Array of

Independent Disks as redes de armazenamento orientadas ao bloco Storage Area

Networks e aos ficheiros Network Attached Storage A virtualizaccedilatildeo do armazenamento

ndash tanto ao niacutevel da sua utilizaccedilatildeo para armazenar VMs como para constituir ldquodiscosrdquo de

VMs foi estudada em seguida Os aspectos da virtualizaccedilatildeo das redes foram tambeacutem

estudados

Abordados todos os conceitos e tecnologias base seguiu-se o estudo da HP Cloud

em particular a HP CloudSystem Matrix no seu ambiente Matrix Operating Environment

como infra-estrutura de trabalho da segunda parte da dissertaccedilatildeo um vasto conjunto de

componentes software e hardware que vatildeo desde os servidores ProLiant sistemas de

armazenamento EVA infra-estruturas de rede (switches e NICs) etc ateacute ao ambiente de

operaccedilatildeo Matrix com o vCenter Numa perspectiva mais conceptual estudamos os papeacuteis

dos ldquoutilizadores da cloudrdquo administrador arquitecto e consumidor de serviccedilos bem

como a funccedilatildeo do Cataacutelogo de Serviccedilos do Template e a possibilidade de definir

operaccedilotildees de orquestraccedilatildeo da infra-estrutura

Com a noccedilatildeo exacta do trabalho a implementar foram estudadas diversas

linguagens e paradigmas e suas vantagens e inconvenientes Finalmente foi apresentada

uma arquitectura da soluccedilatildeo e um cronograma para a segunda fase dos trabalhos O

esforccedilo dispendido na primeira fase foi por natildeo ter outra tarefa que natildeo fosse a realizaccedilatildeo

da preparaccedilatildeo de uma quase total dedicaccedilatildeo a esta

Durante a segunda parte desta dissertaccedilatildeo a full-time na HP foi desenvolvido um

protoacutetipo do framework totalmente funcional A realizaccedilatildeo conseguida cumpre na iacutentegra

78

a calendarizaccedilatildeo proposta na primeira fase conseguindo-se agrave custa de um razoaacutevel

esforccedilo adicional evitar atrasos e falhas

As linguagens usadas foram as jaacute descritas no capiacutetulo 5 e incluem na camada de

apresentaccedilatildeo do lado do cliente HTML CSS JavaScript JQUERY AJAX e do lado do

servidor JSP Na camada loacutegicaserviccedilos usou-se fundamentalmente Java e REST

O desenvolvimento do framework foi guiado por duas consideraccedilotildees uma do

lado do programador e com o pensamento em futuras actualizaccedilotildees e outra do lado do

utilizador com uma interface organizada intuitiva e de raacutepido acesso e acima de tudo que

possibilitasse a interacccedilatildeo com todos os recursos do Serviccedilo instanciado quer a niacutevel de

grupos quer a niacutevel dos recursos individuais Assim na oacuteptica do programador

organizou-se toda a programaccedilatildeo em torno do ldquorecursordquo como entidade fundamental em

todas as camadas em que ldquoelerdquo existe Deste modo actualizaccedilotildees ao framework podem

ser feitas olhando somente para o recurso a actualizar quer a alteraccedilatildeo seja ao niacutevel da

informaccedilatildeo ou das acccedilotildees que este suporta

Em cada uma das duas vertentes programador e utilizador foram implementadas

diversas ajudas para que estes melhor entendam toda a estrutura e implementaccedilatildeo o

referido apoio estaacute disponiacutevel no proacuteprio protoacutetipo e em manuais de ajuda em anexo a

este relatoacuterio

61 Conclusotildees

A primeira conclusatildeo que apresentamos sem falsas modeacutestias eacute a de que o portal eacute

sob o ponto de vista dos resultados conseguidos e face ao objectivo um sucesso Natildeo

soacute eacute operacionalmente funcional cumprindo o objectivo essencial mas tambeacutem o eacute na

usabilidade Destacamos sumariamente alguns aspectos desta uacuteltima

A visualizaccedilatildeo da informaccedilatildeo assim como as acccedilotildees possiacuteveis satildeo guiadas

pelos recursos o utilizador apenas selecciona o recurso e tem tudo disponiacutevel

informaccedilatildeo e acccedilotildees que pode executar tudo associado a esse e apenas esse

recurso

No menu lateral esquerdo do protoacutetipo o utilizador estaacute sempre a visualizar a

ldquoposiccedilatildeordquo de um recurso na hierarquia tornando-se assim muito faacutecil executar

acccedilotildees de grupo ou acccedilotildees individualizadas bastando para isso um simples

clique

Na versatildeo 5 da API do MOE detectamos algumas insuficiecircncias que devem

ser corrigidas em futuras versotildees Nomeadamente

Haacute atributos dos templates cuja consulta apenas eacute possiacutevel ao administrador

quando satildeo fundamentais para uma melhor experiecircncia do utilizador

referimo-nos por exemplo aos valores maacuteximos de um dado recurso (eg

nuacutemero de maacuteximo de CPUs custo de um dado disco) natildeo serem

disponibilizados aquando da criaccedilatildeo de um Serviccedilo Note-se que o protoacutetipo

79

ultrapassa esta limitaccedilatildeo executando o ldquoinitrdquo da sessatildeo como administrador e

carregando nessa altura todos esses atributos

Para aceder agrave consola de um servidor eacute necessaacuterio conhecer o ID da VM o

que natildeo eacute fornecido pela API MOE o protoacutetipo ultrapassou esta limitaccedilatildeo

usando a API disponibilizada pelo VMware vCenter

Em conclusatildeo oferecemos um protoacutetipo amigaacutevel intuitivo com uma curva

de aprendizagem muito curta organizado na vasta informaccedilatildeo a disponibilizar e

usando na sua realizaccedilatildeo tecnologias estado-da-arte no formato de informaccedilatildeo XML

e JSON Um protoacutetipo praacutetico no que ao acesso e utilizaccedilatildeo dos recursos diz respeito

objectivos uacuteltimos de todo este trabalho

Fica assim aberta uma porta para a equipa de desenvolvimento de software da

HP nas proacuteximas decisotildees sobre o caminho a seguir no desenvolvimento de novas

implementaccedilotildees e futuras versotildees da API O protoacutetipo foi submetido a testes de

usabilidade que podem ser considerados em futuras integraccedilotildees

62 Trabalho futuro

Um framework que se queira actualizado nunca pode ser considerado acabado novas

actualizaccedilotildees em resposta a solicitaccedilotildees do mercado ou a alteraccedilotildees na(s) API(s) nos

hipervisores ou decorrentes da necessidade de ldquohibridizaccedilatildeordquo com outras clouds

fazem desse framework um trabalho actualizado mas nunca terminado

No desenvolvimento deste framework tivemos acesso a uma infra-estrutura

que como eacute natural (pela complexidade do software necessaacuterio) apenas incluiacutea

alguma das opccedilotildees do vasto leque HP CSM em particular a) apenas dispunha da

pilha de virtualizaccedilatildeo VMware (ESXi e vCenter) e b) natildeo dispunha do moacutedulo

Storage Provisioning Manager (SPM)

Do exposto surgem imediatamente duas propostas para trabalho futuro a

primeira passa por dotar o portal de uma capacidade de ldquoidentificaccedilatildeo automaacuteticardquo

da(s) plataformas de virtualizaccedilatildeo que estatildeo acessiacuteveis ao utilizador disponibilizando

as ferramentas adequadas ndash por exemplo se o utilizador apenas tivesse acesso agrave infra-

estrutura Hyper-V teria apenas o iacutecone da consola Hyper-V (em vez da consola

VMware) a segunda seria ampliar as funcionalidades do framework para suportar a

interacccedilatildeo com a API do SPM cumprindo assim um dos objectivos que era permitir

ao consumidor IaaS escolher as tecnologias de armazenamento ndash SSD em vez de FC

FCoE em vez de iSCSI etc

Uma outra avenida para trabalho futuro seria a avaliaccedilatildeo e eventual realizaccedilatildeo

do framework sobre a API OpenStack

80

63 Resumo

Neste capiacutetulo foi descrito todo o trabalho efectuado nesta dissertaccedilatildeo bem como os

resultados obtidos e ainda os ldquoalertasrdquo relativos a aspectos que consideramos

merecedores de atenccedilatildeo por parte da HP Tal soacute foi possiacutevel pelo detalhe com que

toda a infra-estrutura e API foram estudadas e testadas Foram referidas as principais

contribuiccedilotildees e destacaram-se as melhorias relativamente ao portal actualmente

disponibilizado pela HP

Finalmente deixam-se algumas propostas para trabalhos futuros

81

Referecircncias bibliograacuteficas

[1] Understanding the HP CloudSystem Reference Architecture [Online]

Available httph20195www2hpcomV2GetPDFaspx4AA0-5550ENWpdf

[2] Amazon Elastic Compute Cloud (Amazon EC2) [Online] Available

httpawsamazoncomptec2

[3] GoGrid Cloud Hosting [Online] Available httpwwwgogridcom

[4] Eucalyptus [Online] Available httpwwweucalyptuscom

[5] Google AppEngine [Online] Available httpsdevelopersgooglecom

appengine

[6] Microsoft Azure [Online] Available httpwwwwindowsazurecompt-br

[7] Google Apps [Online] Available httpwwwgooglecomenterpriseapps

business

[8] Agensen O et al The Evolution of an x86 Virtual Machine Monitor ACM

Operating Systems Review Vol 44 Number 4 December 2010 pp 3-18

[9] VMware Virtualization Products for Virtual Servers Virtual Desktops and Data

Center [Online] Available httpwwwvmwarecomproducts

[10] Comparison of Platform Virtual Machines Wikipedia the Free Encyclopedia

Dezembro 12 2012 [Online] Available httpenwikipediaorgwindexphp

title=Comparison_of_platform_virtual_machinesampoldid=527691634

[11] Vsphere-51-configuration-maximums VMware Inc 2012

[12] Barham P et al Xen and the art of virtualization In Proceedings of the

nineteenth ACM symposium on Operating systems principles (SOSP03) 2003

pp 164-177

[13] Zhang X and Dong Y Optimizing Xen VMM Based on Intelreg Virtualization

Technology In Proceedings of the 2008 International Conference on Internet

Computing in Science and Engineering (ICICSE 08) IEEE Computer Society

pp 367-374

[14] CTX134582 - XenServer 610 Release Notes - Citrix Knowledge Center

[Online] Available httpsupportcitrixcomarticleCTX134582

[15] Haga Y et al Windows Server 2008 R2 Hyper-V Server Virtualization

Fujitsu Sci Tech J Vol 47 No 3 2011 pp 340-355

[16] Feature Comparison Windows Server 2008 R2 Hyper-V and Windows Server

2012 Hyper-V Windows Server Microsoft Corporation 2012

[17] Hyper-V Scalability in Windows Server 2012 [Online] Available

httptechnetmicrosoftcomen-uslibraryjj680093aspx

82

[18] Patterson D et al A Case for Redundant Arrays of Inexpensive Disks (RAID)

Proceedings of the 1989 ACM-SIGMOD International Conference on the

Management of Data ACM 1989 pp 109-116

[19] Whitehouse S The GFS2 Filesystem Proceedings of the Linux Symposium

June 27th-30th 2007 Ottawa Canada

[20] Schmuk F and Haskin R GPFS A Shared-Disk File System for Large

Computing Clusters Proceedings of the Conference on File and Storage

Technologies (FASTrsquo02) 28ndash30 January 2002 Monterey CA pp 231ndash244

[21] Vaghani S Virtual Machine File System ACM Operating Systems Review

Vol 44 Number 4 December 2010 pp 57-70

[22] Pawlowski B et al NFS version 3 design and implementation Proceedings of

the Summer USENIX Conference June 1994 pp 137-152

[23] Zhou S Virtual Networking ACM Operating Systems Review Vol 44

Number 4 December 2010 pp 80-85

[24] HP Sitescope 112 Data Sheet [Online] Available

httpwwwhpcomhpinfonewsroompress_kits2012HPDiscover2012HP_Sit

escope_112_Data_Sheetpdf

[25] Veritas Storage Foundationtrade and High Availability Solutions Application

Note Support for HP-UX Integrity Virtual Machines Symantec Corporation

2011

[26] Kennedy S et al StoRHm a protocol adapter for mapping SOAP based Web

Services to RESTful HTTP format Electronic Commerce Research September

2011 Volume 11 Issue 3 pp 245-269

[27] Silvia Schreier Modeling RESTful applications In Proceedings of the Second

International Workshop on RESTful Design (WS-REST 11) Cesare Pautasso

and Erik Wilde (Eds) ACM New York NY USA 2011 pp 15-21

[28] Axioms [Online] Available httpwwww3orgDesignIssuesAxiomshtml

[29] Sandoval Jose Restful Java Web Services Master core REST concepts and

create RESTful web services in Java Packt Publishing November 2009 pp 43-

179

[30] Burke Bill Restful Java with Jax-RS OrsquoReilly Media Inc November 2009 1st

ed

[31] Jersey 117 User Guide [Online] Available

httpsjerseyjavanetdocumentation117indexhtml

[32] Jerome Louvel Thierry Templier and Thierry Boileau Restlet in Action

Developing Restful Web Apis in Java Manning Publications Co 2012

Greenwich CT USA pp 1-165

83

[33] Johnson Sally Cloud providers can enable self-service IT with a cloud portal

[Online] Available httpsearchcloudprovidertechtargetcomfeatureCloud-

providers-can-enable-self-service-IT-with-a-cloud-

portalasrc=EM_ERU_22442845amputm_medium=EMamputm_source=ERUamputm

_campaign=20130709_ERU20Transmission20for200709201320(User

Universe20607658)_myka-reportstechtargetcomampsrc=5144272

[34] jQuery EasyUI framework [Online] Available httpwwwjeasyuicom

[35] jQuery UI Library [Online] Available httpjqueryuicomdemos

[36] jQuery API [Online] Available httpapijquerycom

84

Anexo A (Virtualizaccedilatildeo Vantagens e inconvenientes)

Virtualizaccedilatildeo Vantagens e inconvenientes

A virtualizaccedilatildeo tem vindo a crescer e a ganhar terreno principalmente nas meacutedias e

grandes empresas Tem vindo a demonstrar a sua mais-valia na gestatildeo das TIs uma

mudanccedila completa e um aliviar de trabalho para administradores e gestores

A1 Vantagens da tecnologia

Um mundo onde passa a ser possiacutevel executar software incompatiacutevel com o SO host

executar SOrsquos distintos num mesmo conjunto de hardware isoladamente sem

interferecircncias etc uma mudanccedila draacutestica na tradicional visatildeo de um SO para um

conjunto de hardware apenas

Seguranccedila Dentro de um servidor podemos ter vaacuterios VMs isoladas e

independentes do SO host Tal garante que qualquer interferecircncia no SO host

(errosataques acidentais ou intencionais) natildeo afecte as VMs nele instaladas

Isolamento Qualquer processo de uma VMs natildeo pode interferir nos

processos de outra VMs este isolamento intimamente ligado agrave seguranccedila

vem de encontro a um dos princiacutepios baacutesicos aquando da implementaccedilatildeo

desta tecnologia Esta vantagem garante-nos confidencialidade entre VMs

assim como integridade e contenccedilatildeo de erros entre VMs (seguranccedila)

Custos A quantidade de diferentes servidores existentes para diferentes SOrsquos

e aplicaccedilotildees eacute agora compactada num mesmo hardware onde existe a

possibilidade de termos vaacuterias VMs com diferentes SOrsquos com as mais

variadas aplicaccedilotildees Temos um tudo-em-um que vai reduzir os custos de uma

organizaccedilatildeo na altura do upgrade bastando para isso o upgrade de um uacutenico

servidor que suporta todos os serviccedilos da organizaccedilatildeo

Energia Propriedade intimamente ligada aos custos Com a compactaccedilatildeo do

hardware satildeo dispensando todos os demais equipamentos quer de

sustentaccedilatildeo de toda uma infra-estrutura quer os proacuteprios equipamentos de

apoio Eacute assim conseguida uma economia de energia bastante significativa

para a organizaccedilatildeo

Espaccedilo Fiacutesico A compactaccedilatildeo eacute inerente aacute diminuiccedilatildeo do espaccedilo ocupado

Um Data Center tem sempre o problema de ldquofalta de espaccedilordquo e por isso a

compactaccedilatildeo de hardware associada agrave virtualizaccedilatildeo vem resolver natildeo soacute este

problema de espaccedilo como tambeacutem a proacutepria refrigeraccedilatildeo e circulaccedilatildeo de ar

dentro do Data Center

85

Hardware Estaacute provado que cada servidor em meacutedia gasta cerca de 30 do

seu poder de processamento para executar a funccedilatildeo para a qual foi

implementado Assim sendo estamos na presenccedila de um subaproveitamento

deste poder computacional A ideia anterior aacute virtualizaccedilatildeo de adquirir um

novo servidor para uma nova aplicaccedilatildeo cai agora por terra com o objetivo de

aproveitar ao maacuteximo o poder computacional de cada servidor aproveitando

melhor todo esse hardware disponiacutevel

Implementaccedilatildeo de SOrsquos A associaccedilatildeo de um SO por cada maacutequina fica

agora tambeacutem em desuso uma vez que a virtualizaccedilatildeo possibilita-nos a

instalaccedilatildeo de vaacuterios SOrsquos em cada maacutequina melhor aleacutem de vaacuterios SOrsquos

estes tambeacutem podem ser diferentes entre si (Windows linuz etc) Esta

vantagem permite assim instalar SOrsquos cujo hardware original (host) nem

sequer os suportam como o caso do SO MAC (Macintosh Apple) em

hardware x86 ou SO Windows em notebooks (Apple)

Migraccedilatildeo A camada que suporta a virtualizaccedilatildeo permite-nos esta mais-valia

A migraccedilatildeo natildeo soacute do ambiente em si como do proacuteprio hardware bastando

para isso uma simples coacutepia entre discos virtuais

Testes de software e hardware A virtualizaccedilatildeo simula tanto um software

como um hardware logo testes em software firmware e hardware podem ser

realizados nestas VMs construiacutedas especificamente para esse fim Estes

primeiros testes podem ser efectuados sem a necessidade de um SO instalado

de raiz ou mesmo a presenccedila fiacutesica do hardware especiacutefico

Reduccedilatildeo de administradores e gestores Esta compactaccedilatildeo associada agrave

virtualizaccedilatildeo como jaacute referido reduz espaccedilo ocupado reduz hardware reduz

configuraccedilotildees e gestatildeo individual abrindo caminho agrave centralizaccedilatildeo Assim a

reduccedilatildeo da equipa responsaacutevel pela administraccedilatildeo e gestatildeo eacute evidente

A2 Desvantagens da tecnologia

Satildeo notoacuterias as vantagens da virtualizaccedilatildeo mas problemas como incompatibilidades entre

aplicaccedilotildees e perda de desempenho pelo simples adicionar de mais uma camada agrave

arquitectura teratildeo que ser consideradas aquando da escolha

Seguranccedila A seguranccedila neste caso prende-se agrave proacutepria camada adicionada

agrave arquitectura (VMM ou hypervisor) Se o proacuteprio SO host tiver algum

problema de raiz implementado ou adquirido tambeacutem o proacuteprio VMM

contemplaraacute este erro assim como todas as VMs instaladas nesse SO host

Gestatildeo O principal problema da implementaccedilatildeo desta tecnologia eacute a gestatildeo

da proacutepria virtualizaccedilatildeo os ambientes virtualizados precisam de ser

instanciados geridos configurados etc Eacute neste ponto que se prende a

preocupaccedilatildeo das organizaccedilotildees pelos seus investimentos nesta tecnologia

trata-se de uma opccedilatildeo que por norma eacute licenciada

86

Desempenho Mais uma camada de software (VMM ou hypervisor) implica

mais processamento Incerteza da quantidade de VMsprocessador sem que

seja afectado a QOS (Quality Of Service) e a garantia dessa emulaccedilatildeo em

termos da disponibilizaccedilatildeo maacutexima que o host pode dispensar como eacute o caso

do processamento e memoacuteria graacutefica

87

Anexo B (Virtualizaccedilatildeo Arquitectura)

Virtualizaccedilatildeo Arquitectura

A base de uma arquitectura de virtualizaccedilatildeo eacute o VMM ou hypervisor o Virtual Machine

Manager responsaacutevel pela criaccedilatildeo gestatildeo isolamento e preservaccedilatildeo do estado da VM

assim como toda a orquestraccedilatildeo do acesso aos recursos do sistema host

O VMM permite que seja possiacutevel a execuccedilatildeo de vaacuterios SOrsquos em VMs contudo

estaacute limitado a SOrsquos que possam ser executados nativamente no processador fiacutesico do

sistema Essa valecircncia torna-se hoje uma das maiores procuras de todos os sistemas de

virtualizaccedilatildeo

Em termos de implementaccedilotildees arquitecturais temos VMMrsquos Tipo-2 modelo

ldquohybridordquo e Tipo-1 O VMM ou hypervisor do Tipo-2 figura 47 eacute implementado dentro

do proacuteprio SO real (Linux ou Windows - hostsystem) e executando paralelamente eacute mais

um processo Neste caso trata-se de uma camada hypervisor proacutepria como um segundo e

distinto niacutevel de software Os sistemas operativos convidados correm num terceiro niacutevel

acima do hardware Nesta arquitectura o SO guest acede directamente o SO host (nativo)

por intermeacutedio de uma API cedida pelo hipervisor ao SO guest O SO guest acede assim

ao hardware atraveacutes de um device driver especiacutefico pelo hypervisor e pelo SO host sendo

por isso uma implementaccedilatildeo que apresenta menor desempenho e maior sobrecarga ao

sistema O Java VM VMware Workstation VMware Player Sun Microsystems

VirtualBox e KVM satildeo alguns exemplos que usam esta arquitectura

Figura 47 - VMM ou hypervisor do Tipo-2

No modelo rdquohiacutebridordquo figura 48 o VMM natildeo eacute executado uma camada acima do

SO host (ou abaixo) mas sim concorrentemente (peer) com o SO host e natildeo depende de

instruccedilotildees especiacuteficas no processador Microsoft Virtual Server 2005 R2 e Virtual PC satildeo

alguns exemplos que usam esta arquitectura

88

Figura 48 - VMM ou hypervisor do ldquohiacutebridordquo

No VMM ou hypervisor do Tipo-1 figura 49 eacute executado directamente no

hadware a camada mais baixa de todas as particcedilotildees da VM sem necessidade da

existecircncia de qualquer SO host O SO guest acede directamente ao hardware atraveacutes do

hipervisor tal eacute possiacutevel pelas modificaccedilotildees feitas no SO guest e no hipervisor Esta eacute a

implementaccedilatildeo que atinge niacuteveis mais elevados de eficiecircncia por isso permite uma maior

densidade de VMs eacute a implementaccedilatildeo claacutessica de arquitecturas VM VMware

ESXESXi Citrix XEN Server e Microsoft Hyper-V satildeo alguns exemplos que usam esta

arquitectura

Figura 49 - VMM ou hypervisor do Tipo-1

89

Anexo C (Virtualizaccedilatildeo Tipos de Implementaccedilatildeo)

Virtualizaccedilatildeo Tipos de Implementaccedilatildeo

C1 Emulaccedilatildeo de Hardware

Neste tipo de virtualizaccedilatildeo figura 50 pretende-se a virtualizaccedilatildeo completa do hardware

o seu comportamentoestados de execuccedilatildeo (ciclos de clock conjunto de instruccedilotildees

pipeline memoacuteria cache) por isso eacute a forma de virtualizaccedilatildeo mais complexa Todo o

hardware da VM eacute criado via software no sistema hospedeiro para emulaccedilatildeo do hardware

proposto criando assim grandes overheads7 com fracos desempenhos comparativamente

ao hadware real Este tipo de virtualizaccedilatildeo apresenta mais-valias como o facto de poder

ser usado um SO guest sem qualquer modificaccedilatildeo ou adaptaccedilatildeo os programadores podem

fazer testes de firmware e hardware em hardware que natildeo o real nem necessitam da

existecircncia deste e ainda a valecircncia de ser possiacutevel emular hardware que na maior parte

das vezes eacute bastante diferente do hardware real

Figura 50 - Emulaccedilatildeo de Hardware

C2 Virtualizaccedilatildeo completa

A virtualizaccedilatildeo completa figura 51 tambeacutem conhecida como ldquonativardquo eacute em todo igual a

emulaccedilatildeo de hardware excepto agrave natildeo representatividade dos estados de execuccedilatildeo do

hardware emulado por esse facto esta teacutecnica de virtualizaccedilatildeo apresenta resultados mais

satisfatoacuterios no seu desempenho mas ainda aqueacutem dos SOrsquos em execuccedilatildeo nativa Esta

teacutecnica permite assim a execuccedilatildeo de todos os SOrsquos originais sem alteraccedilatildeo fornecendo

uma reacuteplica de todo o hardware dessa maacutequina levando-os a ter a ilusatildeo de estar a

executar directamente no hardware

Os grandes obstaacuteculos desta teacutecnica foram desde logo as diferenccedilas arquitecturais

e os comportamentos particulares das instruccedilotildees muitas impossiacuteveis de serem emuladas

ou capturadas pois muitas dependem do niacutevel de privileacutegio Assim para lidar com a

7 Overhead Diferenccedila de performance (latecircncialentidatildeo) no SO guest

90

heterogeneidade de processadores e comportamento de instruccedilotildees usa-se uma abordagem

chamada de Traduccedilatildeo Binaacuteria Nesta abordagem a VMM analisa todas as instruccedilotildees da

VM quer instruccedilotildees natildeo privilegiadas que depois acedem ao hardware com drivers

geneacutericos quer instruccedilotildees privilegiadas e quando na presenccedila destas faz a emulaccedilatildeo e

reescreve dinamicamente o coacutedigo Este teste a todas as instruccedilotildees acarreta uma latecircncia

significativa no desempenho

Figura 51 - Virtualizaccedilatildeo Completa

C3 Para-Virtualizaccedilatildeo (PV)

A para-virtualizaccedilatildeo ou virtualizaccedilatildeo assistida por SO figura 52 eacute uma alternativa aacute

virtualizaccedilatildeo completa O SO guest eacute modificado (perdendo a portabilidade) para

melhorar a eficiecircncia usando todos os ldquolimitesrdquo do sistema A ideia eacute acelerar a execuccedilatildeo

das instruccedilotildees e para isso a VMM testa apenas instruccedilatildeo que podem alterar o estado do

sistema (instruccedilotildees sensiacuteveis) aumentando significativamente o desempenho Esta

substituiccedilatildeo de uma instruccedilatildeo sensiacutevel pelo tratador de interrupccedilatildeo de software eacute chamada

de hypercall satildeo instruccedilotildees executadas atraveacutes de traduccedilatildeo binaacuteria O SO guest eacute assim

modificado para chamar a VMM sempre que estamos na presenccedila dessas instruccedilotildees

sensiacuteveis

Esta alternativa de virtualizaccedilatildeo com a modificaccedilatildeo do kernel tambeacutem permite

que o SO guest aceda directamente aos recursos de hardware com os drivers da proacutepria

maacutequina virtual e deste modo natildeo usando os drivers geneacutericos (virtualizaccedilatildeo completa)

usam a capacidade total dos dispositivos Assim a para-virtualizaccedilatildeo apresenta um ganho

significativo em relaccedilatildeo agrave virtualizaccedilatildeo completa compensando as modificaccedilotildees

implementadas no SO guest

91

Figura 52 - Para-Virtualizaccedilatildeo

C5 Virtualizaccedilatildeo assistida por Hardware (HVM)

As teacutecnicas descritas apresentam alguns inconvenientes que enfraquecem o desempenho

como o teste a todas as instruccedilotildees e traduccedilatildeo das instruccedilotildees privilegiadas na Virtualizaccedilatildeo

Total e a alteraccedilatildeo do SO guest na Para-Virtualizaccedilatildeo agarrando o SO aacute arquitectura

limitando a compatibilidade e suporte

A Virtualizaccedilatildeo assistida por Hardware figura 53 eacute aplicada directamente nos

processadores e restante hardware satildeo usadas extensotildees de virtualizaccedilatildeo do processador e

hardware para virtualizaccedilatildeo dos guestrsquos fornecendo assim um recurso que permita ao

hypervisor executar ainda mais proacuteximo do hardware As instruccedilotildees sensiacuteveis satildeo agora

entregues sem a necessidade da traduccedilatildeo binaacuteria aumentando significativamente o

desempenho mas ainda um pouco mais lento que a PV A opccedilatildeo do uso de drivers como a

PV torna-se um avanccedilo notoacuterio neste tipo de implementaccedilatildeo Natildeo emular IO e

armazenamento e ainda oferecer uma plataforma de VMs com SOrsquos natildeo modificados eacute

uma junccedilatildeo das mais-valias dos dois mundos (PVHVM ou PV-on-HVM drivers) Torna-

se assim possiacutevel por exemplo obter um oacuteptimo desempenho no conjunto SO guest

Windows + XenServer

Figura 53 - Virtualizaccedilatildeo assistida por Hardware

C4 Recompilaccedilatildeo dinacircmica

Esta teacutecnica de virtualizaccedilatildeo recompilaccedilatildeo dinacircmica (dynamic recompilation -

DynaRecs) tambeacutem denominada como traduccedilatildeo dinacircmica (dynamic translation) eacute

bastante utilizada Traduz as instruccedilotildees de um determinado formato para outro formato

durante a proacutepria execuccedilatildeo do programa permitindo assim a criaccedilatildeo do ambiente nativo

92

do programa Essa traduccedilatildeo eacute relativa a instruccedilotildees do SO guest e das suas aplicaccedilotildees

mais proacuteximas do SO host Assim o VMM ou hipervisor analisa reorganiza e traduz as

sequecircncias de instruccedilotildees emitidas pelo SO guest em novas sequecircncias de instruccedilotildees

(coacutedigo de mais alto niacutevel) compiladas na linguagem nativa do sistema host para que esse

coacutedigo gerado seja mais eficiente

Essa eficiecircncia de coacutedigo prende-se com adaptaccedilatildeo de instruccedilotildees agrave interface ISA

do sistema real detectar e tratar instruccedilotildees sensiacuteveis e ainda analisar reorganizar e

optimizar sequecircncias de instruccedilotildees do SO guest com o fim uacuteltimo da eficiecircncia e

desempenho da sua execuccedilatildeo Nesta ultima anaacutelise eacute usual guardar em cache a traduccedilatildeo

dos blocos de instruccedilotildees frequentes melhorando assim ainda mais o desempenho Eacute

notoacuteria a vantagem desta teacutecnica como o acesso a coacutedigo em tempo de execuccedilatildeo natildeo

alcanccedilaacutevel a um compilador estaacutetico mas em contrapartida tambeacutem exige muito mais

processamento

93

Anexo D (Detalhes da plataforma e restriccedilotildees da VMware)

Detalhes da plataforma e restriccedilotildees da VMWARE

Tabela 13 - Dados gerais VMWARE

Criador VMM Tipo Finalidade Uso Host VMs

host

Servidor

dedicado

Gestatildeo

Central

Gestatildeo

Remota Guest OSrsquos Host OSrsquos Guest Licenccedila

VMware

Player Tipo 2

Descktop

Utilizadores finais

Criar

Testar

Seguranccedila

Intel e AMD

(32-64 bits)

1-2 Natildeo Natildeo Natildeo

Intel e AMD

(32-64 bits)

Windows Windows

Windows Server 2012 8 Server 2008 R2 7

Server 2008 Vista Server 2003 XP 2000 NT

40 ME 98 95 MS-DOS 622 e Windows

31x

Linux

Asianux Server CentOS Debian Fedora

Mandrake Mandriva Novell openSUSE

Oracle Enterprise Red Hat Enterprise Red

Hat Sun Java Desktop System SUSE

Enterprise SUSE Turbolinux Ubuntu

UNIX e outros OSrsquos

Mac OS X Server eComStation FreeBSD

IBM OS2 Warp Netware Solaris SCO

Livre

Server GSX Tipo 2

Consolidar

Testar

Desenvolver

Windows Linux Proprietaacuterio

(desc)

Workstation Tipo 2 Criar

Testar

Desenvolver

lt 10 Natildeo Natildeo Natildeo Windows Linux

Proprietaacuterio

Fusion Tipo 2 Mac OS X

Proprietaacuterio

vSphere

ESXi Tipo 1

Datacenter

Infra-estrutura Cloud

Consolidar

Disponibilidade

Cloud

Criar

Testar

Desenvolver

512 Sim Natildeo Sim Sem OS Livre

Proprietaacuterio

ESX Tipo 1 512 Sim Sim Sim Sem OS Proprietaacuterio

(desc)

Tabela 14 - Detalhes VMWARE

VMM

(Configuraccedilotildees maacuteximas) Cluster Hosts VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

VMware Player 50 - - - 4 8 Sem lim 8GB (32bits)

64GB (64bits) NA (2TB) - -

VMware Server 20 - - 64 16 2 Sem lim 8GB NA 4 IDE + 60 SCSI (950GB) - descontinuado

VMware Workstation 90 - - - igual 8 Sem lim 8GB (32bits)

64GB (64bits) NA 4 IDE + 60 SCSI (2TB)

10 NICs SO Windows

255 NICs SO Linux Snapshots

VMware

vSphere 51

VM - - - - 64 - 1TB - 4 IDE + 60 SCSI (2TB) 10 NICs 128MB graacutefica

ESX ESXi 32 - 512host

4000cluster

32 fisicos

160 logicos 32 2TB 1TB

2048 vdisc

(64TB) 4 IDE + 60 SCSI (2TB)

32portas Ethernet a 1Gb

4 NICs fiacutesicos a 10Gb

Portas Infiniband etc

-

vCloud Director - 2000 30000 - - - - 10000 DC - 10000 -

vCenter Server - 1000 15000 - - - - 500 - 10 vCenter Servers ligados -

94

Anexo E (Detalhes da plataforma e restriccedilotildees da Citrix)

Detalhes da plataforma e restriccedilotildees da Citrix

Tabela 15 - Dados gerais Citrix

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Xensource Xen Tipo 1

Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

x86

x86-64

IA-64

x86

x86-64

IA-64

NetBSD Linux Solaris

FreeBSD NetBSD Linux Solaris Windows XP Windows Server 2003 Plan 9 Versatildeo 61

Ubuntu CentOS

Red Hat Enterprise Linux

Oracle Enterprise Linux

Windows 8 (32-bit64-bit)

Windows Server 2012

GPL ndash livre

Advanced Edition - Proprietaacuterio

Enterprise Edition - Proprietaacuterio

Platinum Edition - Proprietaacuterio

Tabela 16 - Dados detalhados Citrix

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Redehost Outros

Host VM Host VM Host VM

XenServer 61 16 150host

1600cluster

160 loacutegicos

900 virtuais 32 1 TB 128 GB 512 virtuais

16 virtuais

NFS e LVM (2TB)

7 NICrsquos virtuaisVM

16 NICrsquos fiacutesicos

512 NICrsquos virtuais

800 VLANrsquos

4 GPUshost

95

Anexo F (Detalhes da plataforma e restriccedilotildees da HP)

Detalhes da plataforma e restriccedilotildees da HP

Tabela 17 - Dados gerais HP

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Hewlett-Packard Integrity Virtual Machines Tipo 1

Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

IA-64 IA-64 HP-UX 11i v3

HP-UX 11i v2 e v3 Windows Server 2003 (SP1 e SP2 RHEL AP 44 45 SLES 10 SP

Proprietaacuterio

Tabela 18 - Dados detalhados HP

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

HP Integrity Virtual Machines 61 512 HP-UX limit 16 HP-UX limit 128GB HP-UX limit 4 IDE + 256 SCSI (2TB) 62 NICrsquos

96

Anexo G (Detalhes da plataforma e restriccedilotildees da Microsoft)

Detalhes da plataforma e restriccedilotildees da Microsoft

Tabela 19 - Dados gerais Microsoft

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Microsoft

Virtual PC 2007 Tipo 2

Criar

Testar

Hobby

Estaccedilatildeo de trabalho

Negoacutecios

x86 x86-64 x86

Windows Vista (Business

Enterprise Ultimate) XP Pro XP

Tablet PC Edition

DOS Windows OS2

Linux (SUSE Xubuntu) OpenSolaris (Belenix) Proprietaacuterio

Virtual PC 7 for Mac Tipo 2 PowerPC x86 Mac OS X Windows OS2

Linux Proprietaacuterio

Virtual Server 2005 R2 Tipo 2 Server

Server farm x86 x86-64 x86 Windows 2003 XP

Windows NT 2000 2003

Linux (Red Hat SUSE) Proprietaacuterio

Hyper-V Server 2008 R2 Tipo 1 Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

x86-64

(Intel VT-x ou AMD-V)

x86-64

x86 (ateacute 8 CPUs fiacutesicos)

Windows 2008 com Hyper-V

Windows Hyper-V Server

Windows 2000 2003 e 2008 Windows XP e Vista

Linux (SUSE 10) Proprietaacuterio

Hyper-V Server 2012 Tipo 1

x86-64

(Intel VT-x ou AMD-V apenas

para RemoteFX)

x86-64

(ateacute 64 CPUs fiacutesicos) Windows 2012 com Hyper-V

Windows NT

Linux (SUSE10 RHEL 6 CentOS 6) Proprietaacuterio

Tabela 20 - Dados detalhados Microsoft

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

Hyper-V Server 2008 R2 16 384host

1000cluster

8 fiacutesicos

64 loacutegicos

512 virtuais

4

1 TB 64GB No limit 4 IDE + 256 SCSI (2TB) - -

Hyper-V Server 2012 64 1024host

8000cluster

64 fiacutesicos

320 loacutegicos

2048 virtuais

64

4 TB 1 TB No limit

4 IDE + 256 SCSI

(VHD 2 TB)

(VHDX 64 TB)

32 NICrsquos

10GB migraccedilatildeocluster

REST

powershell

snapshots

suporte VMConnect

para RemoteFX

97

Anexo H (Ambiente de armazenamento VMware ESXi e Citrix Xen)

Ambiente de armazenamento VMware ESXi e Citrix Xen

H1 VMware (VmWare In)

VMFS (Virtual Machine File System) eacute um sistema de ficheiros num Cluster eacute

proprietaacuterio da VMware e foi optimizado para operaccedilotildees de entrada e saiacuteda (IO) com

ficheiros grandes realidade das imagens das maacutequinas virtuais Representa uma soluccedilatildeo

escalaacutevel e de alto desempenho para hospedagem de VMs no bloco de armazenamento

oferecendo partilha e isolamento O serviccedilo VMFS constitui a base de aplicaccedilotildees num

cluster VMware como vMotion (onde existe partilha de dados) Storage VMotion

agendamento de recursos distribuiacutedos alta disponibilidade e toleracircncia a falhas Os

metadados da maacutequina virtual satildeo serializados para ficheiros e o software VMFS fornece

uma interface POSIX (Portable Operating System Interface) - API com a opccedilatildeo de

consola Command Line (CL) e utilidades de interfaces) - para cluster com operaccedilotildees

seguras de gestatildeo de maacutequinas virtuais

Este tipo de armazenamento de dados pode ser feito em qualquer dispositivo de

armazenamento com base em ligaccedilotildees de armazenamento como

Armazenamento de ligaccedilatildeo direta (SCSI local) ligaccedilatildeo local direta aos discos

de armazenamento interno ou externo geralmente SATA IDE (Integrated

Drive Electronics) EIDE etc

Fibre Channel protocolo de transporte usado em SANrsquos onde o Fibre Channel

encapsula comandos SCSI sobre o protocolo FC

FCoE O uso do FC sobre Ethernet onde o traacutefego FC eacute encapsulado em

quadros Ethernet

iSCSI iSCSI transporta comandos SCSI sobre redes IP

IP ligaccedilatildeo IP aos datastores em NAS suportados pelo vSphere ESX

Vista do armazenamento pelo SO Guest

Uma VM na arquitectura ESX usa espaccedilo em disco para armazenar os seus

metadados de configuraccedilatildeo e os proacuteprios dados um pequeno nuacutemero de imagens

aproximadamente 30 a 100 por VM O espaccedilo de armazenamento em disco contem estes

ficheiros de texto muito pequenos (bytes ou KB) mas tambeacutem conteacutem ficheiros do

proacuteprio disco virtual que normalmente satildeo ficheiros muito grandes (centenas de MB ou

GB) e ainda ficheiros de swap (ficheiros guardados pelo SO para aumento virtual da

memoacuteria de trabalho (RAM))

98

Um dos princiacutepios da virtualizaccedilatildeo diz-nos que um SO guest natildeo deve suportar a

carga da gestatildeo de dispositivos fiacutesicos deve concentrar-se em fornecer um ambiente de

execuccedilatildeo de aplicaccedilotildees Assim um dos objetivos da arquitetura VMFS e em particular do

vSphere ESX eacute simplificar todo este acesso de armazenamento ao SO guest O hardware

virtual apresentado a um SO guest vSphere inclui um conjunto de controladores SCSI e

IDE que possuem drivers comuns disponiacuteveis em quase todos os sistemas operacionais O

SO guest vecirc um disco fiacutesico simples ligado atraveacutes de um controlador padratildeo gravado no

formato VMDK (Virtual Machine Disk) formato da VMWare Esta visatildeo virtualizada de

armazenamento apresentada ao SO guest tem uma seacuterie de vantagens como a gestatildeo

facilitada pelo facto de serem usados controladores padratildeo com drivers incluiacutedas nos

SOrsquos o facto de suportar diferentes ligaccedilatildeo e acessos ao armazenamento como iSCSI e

FCoE disponiacuteveis nos SOrsquos sem que estes suportem os protocolos nativos e a melhoria de

eficiecircncia e disponibilizaccedilatildeo na recuperaccedilatildeo de desastres com a disponibilizaccedilatildeo de

muacuteltiplos caminhos no acesso aos dados contrariamente ao peso da redundacircncia de

muacuteltiplos servidores fiacutesicos

H2 Xen Server (Citrix)

O VMM ou hypervisor Xen eacute apenas responsaacutevel pela gestatildeo de CPU memoacuteria e

interrupccedilotildees ou seja natildeo tem conhecimento do IO de Rede e Armazenamento Para lidar

com entradas e saiacutedas de Rede e Armazenamento o XenServer dispotildee de um domiacutenio de

controlo uma VM especializada denominada ldquoDom0rdquo (Domiacutenio 0) com SO Linux e

privileacutegios especiais eacute considerado parte integrante do XenServer aquando da instalaccedilatildeo

Alem de aceder diretamente o hardware controla todos os acessos de IO e interage com

as outras VMs Esta VM especial contem os drivers padratildeo do coacutedigo aberto Linux de

uma vasta diversidade de hardware e uma interface de controlo (consola ou interface

graacutefica) para controlo do sistema Conteacutem ainda uma pilha de controlo (toolstack) para

fazer toda a gestatildeo das VMs as conhecidas ldquoDomUrsquosrdquo (Domiacutenios dos utilizadores)

relativamente a sua criaccedilatildeo destruiccedilatildeo e configuraccedilatildeo

O XenServer da Citrix armazena as suas VMs diretamente no formato Microsoft

VHD (Virtual Hard Disk) num disco local natildeo partilhado (EXT) ou contrariamente ao

VMware natildeo dispondo do seu proacuteprio sistema de armazenamento aproveita as

capacidades nativas de armazenamento como por exemplo um sistema de armazenamento

partilhado como o NFS Com armazenamentos baseados em iSCSI ou FC o XenServer

estende o VHD do sistema de ficheiros para o padratildeo open source LVM (Logical Volume

Manager) para gestatildeo de volumes numa LUN abstraindo os volumes fiacutesicos em volumes

loacutegicos Permite ainda que seja possiacutevel a criaccedilatildeo de uma LUN por cada VDI

O XenServer oferece assim suporte de armazenamento de VMs em discos locais

iSCSI ou SAN baseado em FC ou NAS estes dois uacuteltimos para migraccedilotildees e alta

disponibilidade Ferramentas como XenCenter Storage Repository para implementaccedilatildeo e

99

StorageLink para integraccedilatildeo de armazenamentos com snapshots clones8 e ldquothin

provisioningrdquo9 satildeo uma mais-valia no XenServer

Cada host XenServer pode aceder a um ou vaacuterios dispositivos de armazenamento

diferentes simultaneamente Estes dispositivos de armazenamento podem ser dedicados

apenas a um host ou partilhados entre hosts permitindo que uma imagem de disco virtual

(VDI) num determinado sistema de armazenamento possa ser iniciada em qualquer host

Armazenamento local

Este tipo de armazenamento eacute local ao host XenServer (IDEPATA Serial ATA

(SATA) SCSI e Serial Attached SCSI (SAS)) e neste contexto satildeo suportados dois tipos

de armazenamento um sistema de ficheiros EXT e LVM (Logical Volume Manager)

numa LUN

Uma LUN num SAN iSCSI ou SAN Fibre Channel

Nestes dois tipos de armazenamento (tratados diferentemente pelo XenServer)

figura 54 os ficheiros satildeo apresentados ao XenServer como ficheiros normais ou mesmo

num sistema de ficheiros LVM numa LUN

Eacute criada uma LUN onde todos os servidores se ligam Essa LUN eacute dividida em

volumes loacutegicos onde apenas uma e uma soacute VM ligada a um desses volumes loacutegicos de

cada vez

Figura 54 - LUN num SAN iSCSI ou SAN FC

Network File System (NFS)

Neste tipo de armazenamento figura 55 eacute criado um NFS onde todos os

servidores se ligam e partilham ficheiros VDI que eacute o disco fiacutesico na visatildeo de uma VM O

XenServer lida com este tipo de armazenamento como um conjunto e discos virtuais

(VDIrsquos) armazenados no formato Microsoft VHD especialmente adequado para

ambientes NSF As imagens das VMs satildeo armazenadas como ficheiros neste formato

8 Clone Um programa ou hardware que imita o produto original e pode ser executado de igual modo como se

fosse original 9 Thin provisioning Meacutetodo de otimizaccedilatildeo da eficiecircncia com que o espaccedilo disponiacutevel eacute utilizado numa SAN

100

(VHD) um disco riacutegido virtual Estes ficheiros permitem que VMs sejam instanciadas em

qualquer host de uma pool de recursos e possam ser feitas migraccedilotildees entre servidores com

o XenMotion

XenServer suporta NFS sobre TCPIP O volume NFS localizado num servidor

NFS eacute acedido montado e usado para as necessidades convenientes de armazenamento

seraacute criada uma diretoria de partilha com um nome que eacute o Identificador Uacutenico Universal

(UUID) atribuiacutedo a esse armazenamento

Figura 55 - Network File System (NFS)

Opccedilotildees de armazenamento de terceiros como NetApp ou Dell EqualLogics

O armazenamento eacute feito por dispositivo especiacuteficos de armazenamento como

NetApp (Network Appliance) ou Dell EqualLogics como fornecedores liacutederes de

armazenamento de ficheiros em rede e sistemas de distribuiccedilatildeo de conteuacutedo A gestatildeo do

armazenamento eacute suportada pelo XenCenter

Vista do armazenamento pelo SO Guest

Existem 2 tipos de VMs no XenServer ldquoDom0rdquo e ldquoDomUrdquo ambas VM guestrsquos

diferindo no seu propoacutesito O Dom0 de controlo e parte integrante de todo o sistema

XenServer dispotildee de acesso privilegiados ao hardware tem drivers dos dispositivos e eacute

instanciada aquando do boot do sistema Os DomUrsquos satildeo totalmente isolados do hardware

e comunicam diretamente com o VMM ou hypervisor que controla a memoacuteria e o

processador do host A comunicaccedilatildeo com os restantes perifeacutericos eacute feita sob o controlo da

VM Dom0 (domiacutenio 0 domiacutenio de controlo) com os drivers especiacuteficos de dispositivos

como Rede e Armazenamento Os DomUrsquos satildeo conhecidos como domiacutenios sem

privileacutegios

Em termos de virtualizaccedilatildeo o Xen suporta em simultacircneo VM guests com para-

virtualizaccedilatildeo (PV) (virtualizaccedilatildeo assistida por SO) ou virtualizaccedilatildeo assistida por hardware

(HVM) Na PV apesar da modificaccedilatildeo do SO natildeo requer virtualizaccedilatildeo do processador

nem do hardware uma vez que dispotildee de drivers para aceder diretamente usando a

capacidade total dos dispositivos Na HVM satildeo usadas extensotildees de virtualizaccedilatildeo do

101

processador e hardware host para virtualizar os guets mas natildeo haacute modificaccedilatildeo do SO

guest eacute mais lento que PV mas apresenta a valecircncia da portabilidade A ultima aposta da

Citrix visando oacutetimos desempenhos foi a junccedilatildeo destes dois mundos para-virtualizaccedilatildeo e

virtualizaccedilatildeo assistida por hardware (PVHVM ou PV-on-HVM drivers)

Uma VM (DomU) no mundo virtual de um XenServer vecirc o seu armazenamento

como um disco local (imagens VDI guardadas na sua representaccedilatildeo Microsoft VHD) Na

realidade o XenServer alocou uma percentagem do armazenamento real e atraveacutes do

hypervisor e Dom0 fez toda a abstraccedilatildeo tornando-o disponiacutevel como um recurso de um

disco para essas VMs O SO guest do Dom0 eacute Linux e neste SO os discos fiacutesicos satildeo

representados como ficheiros desses dispositivos (devsda) Os ficheiros dos dispositivos

de armazenamento podem representar discos conectados localmente (armazenamento

local) ou um nuacutemero de unidade loacutegica (LUN) numa SAN sendo a gestatildeo feita por LVM

e ainda a opccedilatildeo NFS

102

Anexo I (Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo)

Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo

I1 Criaccedilatildeo de um projecto Web Service

Um projecto Web Service figura 56 pode ser criado com o IDE Eclipse IDE for Java EE

Developers Configurado todo o ambiente podemos criar um projecto Web Service

mediante vaacuterias abordagens variando nas suas configuraccedilotildees e especificaccedilotildees

naturalmente

Web Dynamic Web Project

JBoss Central HTML5 Project

JBoss Tools Create a Sample RESTfull Web Service

Maven Maven Project

Web Service Create a Sample RESTfull Web Service

Figura 56 - Projecto ldquoDynamic Web Projectrdquo no eclipse

Webxml

103

Ficheiro responsaacutevel pelo registo do servlet10

fornecido pelo Jersey Um servlet

responsaacutevel por analisar os pedidos http e selecionar a classe e meacutetodo para responder ao

pedido mediante as anotaccedilotildees JAX-RS previamente colocadas aquando da criaccedilatildeo do

coacutedigo Webxml define ainda o path sob o qual o Web Service seraacute disponibilizado

URL httpdominioportanome-da-aplicacaourl-patternpath-das-classes-rest

ltxml version=10 encoding=UTF-8gt ltweb-app xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlns=httpjavasuncomxmlnsjavaee xmlnsweb=httpjavasuncomxmlnsjavaeeweb-app_2_5xsd xsischemaLocation=httpjavasuncomxmlnsjavaee httpjavasuncomxmlnsjavaeeweb-app_2_5xsd id=WebApp_ID version=25gt lt-- nome da aplicaccedilatildeo --gt ltdisplay-namegtdevogellajerseytodoltdisplay-namegt ltservletgt lt-- suporte para aplicaccedilotildees Web baseado em servlet e filtro --gt ltservlet-namegtJersey REST Serviceltservlet-namegt ltservlet-classgtcomsunjerseyspicontainerservletServletContainerltservlet-classgt ltinit-paramgt lt-- define o pacote das classes de recurso java do Web Service --gt ltparam-namegtcomsunjerseyconfigpropertypackagesltparam-namegt ltparam-valuegtdevogellajerseytodoresourcesltparam-valuegt ltinit-paramgt ltload-on-startupgt1ltload-on-startupgt ltservletgt ltservlet-mappinggt lt-- URL pattern define parte da URL base onde o Web Service seraacute disponibilizado --gt ltservlet-namegtJersey REST Serviceltservlet-namegt lturl-patterngtrestlturl-patterngt ltservlet-mappinggt ltweb-appgt

ex httplocalhost8080devogellajerseytodoresttodos1

domiacutenio localhost

porta 8080

nome da aplicaccedilatildeo (webxml display-name) devogellajerseytodo

URL base (webxml url-pattern do servlet-mapping) rest

anotaccedilatildeo Path na classe Java todos

anotaccedilatildeo PathParam 1

10 Servlet Uma classe na linguagem de programaccedilatildeo Java que processa dinamicamente pedidos e

respostas gerando dados HTML e XML para a camada de apresentaccedilatildeo de uma aplicaccedilatildeo Web

104

Principais anotaccedilotildees JAX-RS

PATH(your_path) adiciona mais um paracircmetro ao URL (URL+your_path)

POST O meacutetodo responde a um pedido HTTP POST

GET O meacutetodo responde a um pedido HTTP GET

PUT O meacutetodo responde a um pedido HTTP PUT

DELETE O meacutetodo responde a um pedido HTTP DELETE

Produces(MediaType

TEXT_PLAIN[more-types])

Define o tipo MIME a ser entregue por um meacutetodo GET

Consumes(type[more-ypes ] ) Define o tipo MIME a ser consumido pelo meacutetodo

PathParam Usado para especificar valores da URL num paracircmetro do

meacutetodo

Uma outra anotaccedilatildeo fundamental eacute XmlRootElement para que o Jersey saiba

que os atributos iratildeo passar a noacutes no momento em que o XML como resposta ao cliente

De igual modo se receber um XML no corpo de um pedido o Jersei vai saber fazer a

conversatildeo desse XML para um objeto do tipo da classe em causa

I2 Exemplos de solicitaccedilotildees agrave API do MOE

Adicionar mais um processador a um Servidor

Operaccedilotildees sobre Servidores

Verb URI Description

GET servers Lista servidores

GET serversdetail Lista detalhes dos servidores

POST servers Cria servidor

GET serversid Lista detalhes dos servidores

PUT serversid Atualiza dados dos servidores

DELETE serversid Remove servidor

hellip hellip hellip

Um flavor representa uma configuraccedilatildeo de hardware disponiacutevel para um dado tipo

de servidores e eacute uma combinaccedilatildeo uacutenica de espaccedilo em disco capacidade de memoacuteria

nuacutemero de CPUs etc Um servidor eacute uma instacircncia de uma maacutequina virtual e portanto

eacute definido por um flavor

flavors [ disk 10 id 12 name 256_server ram 256 ldquocpurdquo 2 hellip hellip]

Operaccedilotildees sobre Flavors

Verb URI Description

GET flavors Lista flavors

GET flavorsdetail Lista detalhes dos flavors

105

GET flavorsid Lista detalhe do flavor

hellip hellip hellip

O objectivo eacute alterar o nuacutemero de CPUs de um servidor especiacutefico e para tal

temos de saber o valor desse campo no flavor desse servidor

Algoritmo passo-a-passo

1) Listar todos os servidores existentes

Esta operaccedilatildeo obteacutem uma lista de servidores associados agrave conta de um

determinado utilizador Em cada servidor (da lista) um atributo indica o estado actual do

servidor servidores com o estado ACTIVE estatildeo disponiacuteveis para utilizaccedilatildeo

Verb URI Description

GET servers Lista todos os servidores (apenas os IDs e nomes)

GET serversdetail Lista todos os servidores (todos os detalhes)

Coacutedigo para respostas normais 200 203

Coacutedigo para respostas de ERRO serversFault (400 500) serviceUnavailable

(503) unauthorized (401) badRequest (400) overLimit (413)

Resposta da listagem dos servidores XML (detalhes)

ltxml version=10 encoding=UTF-8gt ltservers xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgtgt ltserver id=1234 name=sample-server imageId=1 flavorId=12 status=BUILD progress=60 hostId=e4d909c290d0fb1ca068ffaddf22cbd0gt ltmetadatagt ltmeta key=Server LabelgtWeb Head 1ltmetagt ltmeta key=Image Versiongt21ltmetagt ltmetadatagt ltaddressesgt

ltpublicgt ltip addr=672310132gt ltip addr=672310131gt ltpublicgt ltprivategt ltip addr=101764216gt ltprivategt ltaddressesgt ltservergt hellip ltserversgt

De entre todos os servidores da lista o utilizador pretende ALTERAR o nuacutemero

de CPUs do servidor (server id=1234) ou seja precisa aceder ao flavor

(flavorId=12)

106

2) Listar o flavor (flavorId=12)

Esta operaccedilatildeo obteacutem os detalhes de um flavor especiacutefico (id)

Verb URI Description

GET flavorsid Lista detalhe do flavor especiacutefico

Coacutedigo para respostas normais 200 203

Error ResponseCode(s) serversFault (400 500) serviceUnavailable (503)

unauthorized (401) badRequest (400) itemNotFound (404) overLimit (413)

Resposta com detalhes de um Flavor XML

ltxml version=10 encoding=UTF-8gt ltflavor xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgt id=1 name=256 MB Server ram=256 disk=10 cpu=rdquo2rdquo gt

3) Alterar o nuacutemero de CPUs de 2 para 3 do servidor (server id=1234) flavor

(flavorId=12)

Esta operaccedilatildeo permite que se atualize o numero de CPUs do flavor associado ao

servidor Facilmente se depreende que esta operaccedilatildeo soacute seraacute possiacutevel se o utilizador puder

efectuar esta operaccedilatildeo (Status Transition ACTIVE)

Verb URI Description

PUT servers1234flavor12cpu3 Atualiza dados dos servidores

Coacutedigo para respostas normais 204

Coacutedigo para respostas de ERRO serversFault (400 500) serviceUnavailable

(503) unauthorized (401) badRequest (400) badMediaType(415) itemNotFound (404)

buildInProgress (409) overLimit (413)

Status Transition ACTIVE CONFIGURESERVER (if configureServer is

true)

Pedido de Update do flavor do servidor XML

ltxml version=10 encoding=UTF-8gt ltserver xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgt server id=1234 flavorId=12 cpu=rdquo3rdquo gt

107

Anexo J (Ferramentas de desenvolvimento WebService)

Principais ferramentas e suas configuraccedilotildees usadas na criaccedilatildeo e desenvolvimento deste

webservice

Plataforma Java

Servidor Apache Tomcat

Ambiente de desenvolvimento Eclipse

JARacutes e Plugins

Macromedia Dreamweaver

Notepad++

J1 Plataforma Java

Java eacute uma linguagem de programaccedilatildeo orientada a objeto e considera-se diferente das

outras linguagens convencionais pelo facto de ser compilada para bytecode e executado

por uma maacutequina virtual contrariamente agrave compilaccedilatildeo para coacutedigo nativo A linguagem

de programaccedilatildeo Java eacute a linguagem convencional da Plataforma Java que pode ser

adquirida no site httpjavacomendownloadindexjsp

Figura 57 - Plataforma Java

Como o RESTWEBSERVICE foi criado e executado em ambiente Windows a

explicaccedilatildeo seraacute feita tendo em vista este ambiente

108

Assim vamos verificar se temos a plataforma java instalada e se eacute a ultima versatildeo

lsquoIniciarrsquo e executar lsquocmdrsquo abre-se uma consola de linha de comando do MS Windows

executamos o comando

ldquojava -versionrdquo

Este comando corresponde agrave chamada da maacutequina virtual para executar

ldquobytecoderdquo

Figura 58 - Comando ldquojava -versionrdquo

Java version ldquo170_25 JDK ou JRE

JRE(Java Runtime Environment) Ambiente de execuccedilatildeo Java (Java Virtual

Machine) Como ambiente seraacute apenas possiacutevel a execuccedilatildeo de coacutedigo Java jaacute

compilado

JDK (Java Development Kit) Kit de desenvolvimento Java onde se inclui o

compilador (javac) e o ambiente de execuccedilatildeo Java (JVM) Neste caso podemos

compilar classes java directamente de coacutedigo fonte e executa-las posteriormente

no JRE maacutequina virtual Java

J11 Instalaccedilatildeo

Caso seja necessaacuteria a instalaccedilatildeo da plataforma java termos que fazer o download (versatildeo

7 update 25) e efectuar a sua instalaccedilatildeo Por defeito apoacutes a instalaccedilatildeo teremos os dois

ambientes JDK e JRE na directoria ldquoCProgram FilesJavardquo

Para testar a instalaccedilatildeo do compilador (JDK) lsquoIniciarrsquo e executar lsquocmdrsquo abre-se

uma consola de linha de comando do MS Windows executamos o comando

109

ldquojavacrdquo

Figura 59 - Instalaccedilatildeo da Plataforma Java

Concluiacuteda a instalaccedilatildeo da plataforma java teremos que definir as variaacuteveis de

ambiente para a posterior execuccedilatildeo do ambiente de desenvolvimento IDE (Integrated

Development Environment ) Eclipse e todas as dependecircncias do Java

J12 Variaacuteveis de ambiente

ldquoIniciarrdquo ldquoPainel de controlerdquo ldquoDefiniccedilotildees avanccediladas do sistemardquo ldquoVariaacuteveis de

ambienterdquo ldquoVariaacuteveis de sistemardquo

PATH ndash adicionar ldquodirectoria de instalaccedilatildeo do JDKrdquobin

ex CProgram FilesJavajdk170_25bin

Figura 60 - Variaacutevel de sistema ldquoPathrdquo

CLASSPATH ndash criar esta variaacutevel

Nome da variaacutevel ldquoCLASSPATHrdquo

Valor da variaacutevel ldquordquo

110

Figura 61 - Variaacutevel de sistema ldquoCLASSPATHrdquo

JAVA_HOME ndash criar esta variaacutevel com a ldquodirectoria de instalaccedilatildeo do

JDKrdquobin

ex CProgram FilesJavajdk170_25bin

Figura 62 - Variaacutevel de sistema ldquoJAVA_HOMErdquo

J13 Teste da instalaccedilatildeo da plataforma java e configuraccedilatildeo das variaacuteveis de

ambiente

Vamos verificar se as variaacuteveis foram definidas correctamente Para isso com o

Notpad++ vamos criar um ficheiro com o nome ldquoTestjavardquo e incluir o seguinte coacutedigo

public class Test public static void main(String[] args) throws Exception Systemoutprintln(Hello RESTWEBSERVICE)

Finalmente vamos compilar a classe na directoria onde foi criada e executaacute-la

utilizando a maacutequina virtual Java Na consola de linha de comando vamos executar os

seguintes comandos

javac Testjava ndash Comando para compilar a classe java criada

java Test - Comando para executar a classe Test

Se as variaacuteveis de ambiente foram definidas correctamente deveremos ter

como resposta

ldquoHello RESTWEBSERVICErdquo

111

J2 Servidor Apache Tomcat

Apache Tomcat eacute uma implementaccedilatildeo de software de fonte aberta das tecnologias Java

Servlet e JavaServer Pages (JSP) Egrave um servidor web HTTP em linguagem java um

servidor de aplicaccedilotildees JEE (Java Enterprise Edition) Tem a vantagem de incluir

ferramentas para gestatildeo e configuraccedilatildeo que podem ser editadas directamente num ficheiro

de configuraccedilatildeo em XML

O download deste servidor pode ser feito directamente no site da Tomcat

httptomcatapacheorgdownload-70cgi

J21 Instalaccedilatildeo

Feito o download basta descompactar o ZIP numa directoria ex C onde seraacute criado

uma pasta com o nome do ZIP Capache-tomcat-7034 Como versatildeo preacute-configurada

disponibiliza de imediato as seguintes configuraccedilotildees

A porta de acesso aacutes aplicaccedilotildees eacute a 8080 Basta para isso digitar o URL

seguido de ldquordquo e a porta 8080

ex httplocalhost8080MOE

Se natildeo existirem redireccionamentos eacute possiacutevel a listagem de directorias

Esta opccedilatildeo eacute sempre desactivada depois nas implementaccedilotildees

Monitorizaccedilatildeo sempre constante qualquer alteraccedilatildeo dos ficheiros natildeo existe a

necessidade de fazer um restart ao servidor

Figura 63 - Directoria de instalaccedilatildeo do Servidor Apache Tomcat

112

J22 Execuccedilatildeo

Para testarmos o servidor Apache Tomcat basta corresmos o executaacutevel ldquoTomcat7exerdquo

da directoria ldquoCTomcat 70binrdquo e aceder ao link httplocalhost8080

Figura 64 - Link localhost Apache Tomcat

J3 Ambiente de desenvolvimento Eclipse

Eclipse eacute um IDE (Integrated Development Environment) ou ambiente integrado de

desenvolvimento eacute um programa com caracteriacutesticas e ferramentas de apoio ao

desenvolvimento de software com a vantagem de ter a maior parte das ferramentas de

desenvolvimento jaacute integradas e prontas a usar Uma orientaccedilatildeo baseada em plugins que

mediante incorporaccedilatildeo satisfazem as necessidades dos diferentes programadores

O download deste IDE pode ser feito directamente no site

httpwwweclipseorgdownloads O package em questatildeo para o desenvolvimento

direcionado agrave web eacute o ldquoEclipse IDE for Java EE Developersrdquo que jaacute vem com a maior

parte dos plugins destinados a este tipo de desenvolvimento

J4 JARs e Plugins

O ambiente de desenvolvimento Eclipse principalmente o ldquoEclipse IDE for Java EE

Developersrdquo jaacute vem com a maior parte dos plugins por defeito para desenvolvimentos

orientados agrave web mas haacute um indispensaacutevel muito uacutetil natildeo soacute no acesso aos menus de

configuraccedilatildeo do projecto como tambeacutem ferramentas de configuraccedilatildeo do servidor Apache

Tomcat plugin ldquoWeb Tools Platform (WTP)rdquo

Podemos fazer o download directo do plugin ou solicitar ao Eclipse que o faccedila por

noacutes e instale directamente Para isso vamos ao menu ldquoHelprdquo ldquoInstall new Softwarerdquo

ldquoaddrdquo

Name Web Tools Platform (WTP)

Location httpdownloadeclipseorgwebtoolsrepositoryindigo

113

Figura 65 - Add repository

Relativamente aos JARs estes satildeo dependents do projecto em siacute e do que se

pretende usar JAR (Java Archive) eacute um formato de ficheiro que normalmente eacute usado

para agregar muitos ficheiros de classes Java e metadados associados recursos como

textos e imagens tudo num uacutenico ficheiro que depois funcionaraacute como bibliotecas na

plataforma Java

Basta para isso colocar os JARs necessaacuterios na directoria

ldquoprojectNameWebContentWEB-INFlibrdquo

J4 Macromedia Dreamweaver

O Adobe Dreamweaver mais conhecido por Macromedia Dreamweaver eacute um software de

desenvolvimento na Web criada pela Macromedia

Um software que fornece suporte para vaacuterias tecnologias web tais como XHTML

CSS JavaScript Ajax PHP ASP ASPNET JSP ColdFusion e outras linguagens

Server-side

Toda a apresentaccedilatildeo web da camada de apresentaccedilatildeo do webservice foi

desenvolvida e testada inicialmente neste software Desenvolvimento de coacutedigo HTML

JSP incorporaccedilatildeo de imagens construccedilatildeo de tabelas etc

A5 Notepad++

Notepad++ eacute um editor de texto e de coacutedigo fonte aberto sob licenccedila GPL Tem a

vantagem de suportar vaacuterias linguagens de programaccedilatildeo como HTML JSP CSS JQuery

Javascript e eacute optimo para alteraccedilotildees raacutepidas de coacutedigo e sua visualizaccedilatildeo

114

Anexo K (Criar e executar um ldquoDynamic Web Projectrdquo no Eclipse)

K1 Criar um ldquoDynamic Web Projectrdquo

Para criar um ldquoDynamic Web Projectrdquo temos que iniciar o Eclipse e nesta primeira

iniciaccedilatildeo vatildeo ser testadas todas as variaacuteveis de ambiente anteriormente criadas e criado

um workspace onde seratildeo guardados todos os nossos projectos

Depois de iniciado o Eclipe para criarmos um ldquoDynamic Web Projectrdquo seguimos

os passos

1 ldquoFilerdquo ldquoNewrdquo ldquoProjectrdquo

2 Na proacutexima janela escolher ldquoWebrdquo ldquoDynamic Web Projectrdquo

Figura 66 - Dynamic Web Project

3 Clique em Next

4 Nas propriedades do projecto

Project name Test

Target runtime Apache Tomcat v70

Dynamic web module version 30

Configuration Default Configuration for Apache Tomcat v70

115

Figura 68 - Propriedades do Dynamic Web Project

5 Clique em Next e depois outra vez em Next

6 Seleccione ldquoGenerate webxml deployment descriptorrdquo para a criaccedilatildeo do

webxml onde seratildeo incluiacutedas todas as definiccedilotildees e configuraccedilotildees do projecto

Figura 69 - Webxml do Dynamic Web Project

7 Clique em Next e todo o projecto eacute criado

116

Figura 70 - Directoria base do Dynamic Web Project

JavaSource (src)

Coacutedigo fonte Java do projeto Recursoso que satildeo automaticamente compilado e os

ficheiros gerados satildeo adicionados ao diretoacuterio WEB-INFclasses

WebContent

Localizaccedilatildeo de todos os recursos da Web incluindo HTML JSP ficheiros

graacuteficos imagens etc Os ficheiros ficam disponiacuteveis apenas nesta directoria ou

subdirectorias quando o servidor eacute executado

META-INF

Esta directoria conteacutem o arquivo MANIFESTMF que eacute usado para mapear o

caminho das classes para os ficheiros JAR dependentes que existem no projecto Quando

um JAR eacute adicionado agrave biblioteca esta entrada eacute adicionada automaticamente neste

ficheiro

WEB-INF

Directoria que conteacutem os recursos da Web de suporte para agrave aplicaccedilatildeo incluindo o

ficheiro webxml e as classes e lib

Classes

Directoria das classes compiladas eacute a directoria de saiacuteda do compilador Java As

classes ldquoclassrdquo satildeo colocados neste directoria automaticamente quando o compilador

Java compila os ficheiros de origem Java que estatildeo no directoria de recursos Java (src)

Lib

Os ficheiros JAR de apoio a toda a aplicaccedilatildeo As classes existentes nos ficheiros

jar ficam disponiacuteveis para uso na aplicaccedilatildeo

Web Deployment Descriptor

O descritor de implementaccedilatildeo de toda a aplicaccedilatildeo o ficheiro webxml

117

K2 Executar um ldquoDynamic Web Projectrdquo

Para testarmos o nosso ldquoDynamic Web Projectrdquo comeccedilamos por criar uma classe na

directoria ldquosrcrdquo ldquoFilerdquo ldquoNewrdquo ldquoOtherrdquo ldquoClassrdquo

Figura 71 - Criar uma classe

Criamos uma classe com o package test e o nome Test e incluiacutemos o seguinte

coacutedigo

package test public class Test public static void main(String[] args) throws Exception Systemoutprintln(Hello RESTWEBSERVICE)

Criamos igualmente um ficheiro HTML na directoria WebContent ldquoFilerdquo ldquoNewrdquo

ldquofilerdquo com o nome ldquotesthtmlrdquo e com o seguinte coacutedigo

lthtmlgt ltheadgt lttitlegtDynamic Web Project HTML pagelttitlegt ltheadgt ltbodygt lth2gt Hello RESTWEBSERVICE lth2gt ltbodygt lthtmlgt

118

Executamos o projecto no menu clicamos em ldquoRunrdquo ldquoRunrdquo escolhemos ldquoRun

on Serverrdquo e a primeira vez que executarmos o projecto temos que fazer a ligaccedilatildeo ao

servidor Apache Tomcat ldquoApacherdquo ldquoTomcat v70 Serverrdquo e ldquoFinishrdquo

Figura 72 - Servidor Apache Tomcat dentro do Eclipse

O projecto estaacute pronto a testar no link httplocalhost8080Testtesthtml

Figura 73 - Execuccedilatildeo no Browser

119

Anexo L (Importar configurar e executar o RESTWEBSERVICE - MOE)

A implementaccedilatildeo RESTWEBSERVICE - MOE eacute um webservice desenvolvido numa

arquitectura orientada a Web (Web-Oriented Architecture - WOA) disponibilizando os seus

recursos na Web atraveacutes do protocolo REST (Representational State Transfer) para troca de

informaccedilatildeo Vantagens como a simplicidade de interaccedilatildeo entre sistemas heterogeacuteneos a

facilidade de comunicaccedilatildeo entre aplicaccedilotildees existentes em muacuteltiplas plataformas e a

independecircncia de plataformas e linguagens de programaccedilatildeo satildeo evidentes

L1 Importaccedilatildeo do ldquoDynamic Web Projectrdquo MOE

A importaccedilatildeo o projecto ldquoMOErdquo (Matrix Operating Environment) para o ambiente de

desenvolvimento Eclipse carece da criaccedilatildeo de um ldquoDynamic Web Projectrdquo base no Eclipse

Assim para a criaccedilatildeo de um ldquoDynamic Web Projectrdquo seguir os passos descritos na

aliacutenea K1 Criar um ldquoDynamic Web Projectrdquo do Anexo K alterando apenas o nome para

ldquoMOErdquo Natildeo eacute necessaacuterio criar nenhuma classe java nem ficheiro HTML

Figura 74 - Projecto base MOE

Depois do projecto MOE criado basta importar o projecto real para o Eclipse ldquoFilerdquo

ldquoImportrdquo ldquoArchive Filerdquo

Figura 75 - Importaccedilatildeo do projecto real MOE

Seleccionar o projecto a importar O projecto deveraacute ficar com uma organizaccedilatildeo de

directorias como na imagem seguinte

120

Figura 76 - Projecto real MOE

L2 Configuraccedilatildeo inicial do MOE

Para que a execuccedilatildeo do MOE seja feita sem erros e todas as ligaccedilotildees e credenciaccedilotildees sejam

efectuadas temos que criar pastas e ficheiros de leitura inicial do MOE Assim vamos criar

uma directoria em C com o nome ldquorestconfigrdquo (Crestconfig) com 4 ficheiros

adminUsersListtxt

Ficheiro com todos os administradores do MOE Esta lista deveraacute ser igual agrave lista dos

administradores do HPMOE Um administrador por linha ldquodomiacutenioadminrdquo (ex

ldquohpptlabpaulopiresrdquo)

121

Figura 77 - Ficheiro ldquoadminUsersListtxtrdquo

hp-io-v5wsdl

Ficheiro WSDL (Web Service Description Language) a definiccedilatildeo das operaccedilotildees de IO

disponiacuteveis

https ltcms-ip-addressgt 51443hpiocontrollersoapv4 wsdl

Neste ficheiro basta alterar o IP do servidor HPMOE linha 5987

ltsoapaddress location=https1623187651443hpiocontrollersoapv5gt

Figura 78 - Ficheiro ldquohp-io-v5wsdlrdquo

Figura 79 - WSDL do HPMOE

loginconfig

Ficheiro de apoio agrave credenciaccedilatildeo (login) no MOE

No acircmbito da seguranccedila em aplicaccedilotildees JavaEE o servidor Apache Tomcat fornece

uma implementaccedilatildeo Realm JAAS (Java Authentication and Authorization Service) para que

os programadores possam implementar moacutedulos de login JAAS e integraacute-los facilmente com

as suas aplicaccedilotildees JAAS permite assim autenticaccedilotildees em modo Basic e Form usando para

isso os denominados realms File e JDBC (Java Database Connectivity) que neste caso eacute em

runtime

122

Figura 80 - Ficheiro ldquologinconfigrdquo

A ligaccedilatildeo ao ficheiro ldquologinconfigrdquo eacute feita no menu do Eclipse ldquoRunrdquo ldquoRun

Configurationsrdquo ldquoTomcat 70rdquo ldquoArgumentsrdquo ldquoVM argumentsrdquo adicionar a linha -

Djavasecurityauthloginconfig=Crestconfigloginconfig

Figura 81 - Ficheiro ldquologinconfigrdquo

vmwareAccesstxt

Ficheiro com dados de acesso agrave VMware para acesso agrave consola das VMs dos serviccedilos

criados

Primeira linha IP da VM onde estaacute o VCenter da VMware

Segunda linha Username do Administrador

Terceira linha Password do Administrador

123

Figura 82 - Ficheiro ldquovmwareAcesstxtrdquo

L3 Execuccedilatildeo do MOE

O MOE pode finalmente ser executado Para isso no menu clicamos em ldquoRunrdquo ldquoRunrdquo

escolhemos ldquoRun on Serverrdquo e a primeira vez que executarmos o projecto temos que fazer a

ligaccedilatildeo ao servidor Apache Tomcat ldquoApacherdquo ldquoTomcat v70 Serverrdquo e ldquoFinishrdquo

Figura 83 - Servidor Apache Tomcat dentro do Eclipse

Aguardar que o projecto seja construiacutedo e compilado Podemos acompanhar a

evoluccedilatildeo do estado directamente na consola do Eclipse

124

Figura 84 - Compilaccedilatildeo do projecto MOE

Finalmente o projecto estaacute disponiacutevel em httplocalhost8080MOE

Figura 85 - Login page MOE

Figura 86 - Data page MOE

125

Anexo M (Criaccedilatildeo de um Serviccedilo e ligaccedilatildeo agraves VMs)

A criaccedilatildeo de um serviccedilo de um determinado utilizador tem por base as

definiccedilotildeesconfiguraccedilotildees existentes num Template previamente definido e listado num

Cataacutelogo de Serviccedilos Configuraccedilotildees como detalhes dos servidores memoacuteria processadores

discos custos interfaces limites maacuteximos e miacutenimos de futuros updates ao serviccedilo etc estatildeo

previamente descritos e implementados sob a forma de Templates nos quais o utilizador pode

navegar verificar as caracteriacutesticas de cada um e escolher um que melhor se adapte as suas

necessidades

Assim o utilizador navega nos Templates existentes no Cataacutelogo de Serviccedilos do

menu lateral esquerdo e seleciona o Template No painel central do webservice painel

ldquoDetalhesrdquo satildeo abertas as tabs dos detalhes do Template selecionado

M1 Detalhes do Template

Nas imagens seguintes podemos verificar os detalhes do Template selecionado Nos detalhes

gerais do Template obtemos informaccedilotildees como o nome do Template a data de criaccedilatildeo e

modificaccedilatildeo versatildeo custo geral se eacute ou natildeo costumizaacutevel e o numero de ServerGroups

associados assim como discos e serviccedilos que jaacute foram criados tendo por base este template

Figura 87 - Detalhes gerais do Template ldquoTemplate_3srvrdquo

126

Todos os detalhes do Template ficam disponiacuteveis ao utilizador Ao niacutevel do grupo de

servidores informaccedilotildees como nome quantidade miacutenima de servidores e que seraacute a base do

serviccedilo criado e quantidade maacutexima de servidores sinal que o serviccedilo poderaacute crescer em

termos de quantidade de servidores Tipo de cluster e o numero de servidores loacutegicos

existentes no grupo

Figura 88 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo

Relativamente aos servidores o utilizador obteacutem informaccedilotildees como nome hostname

tipo de virtualizaccedilatildeo memoacuteria usada e quantidade maacutexima de memoacuteria processadores

usados e quantidade maacutexima de processadores se eacute ou natildeo virtual e se estaacute ou natildeo em cloud

Figura 89 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Informaccedilotildees detalhadas sobre os custos em detalhes ficam disponiacuteveis ao utilizador

Informaccedilotildees sobre custo total custo de base por cada servidor custo por processador e

memoacuteria

127

Figura 90 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Os discos tambeacutem apresentam informaccedilatildeo como nome tipo de storage tamanho raid

level se eacute ou natildeo bootable shareable e custo do disco

Figura 91 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

Cada servidor tem um software preacute-instalado ou instalado posteriormente pelo

utilizador Informaccedilotildees como nome tipo OS e virtualizaccedilatildeo estatildeo disponiacuteveis

Figura 92 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

Finalmente detalhes sobre as interfaces Neste caso duas interfaces uma na rede HP

(HP Network) e outra rede local (CloudSystem) Estatildeo disponiacuteveis informaccedilotildees como nome

da interface se eacute ou natildeo primaacuteria redundacircncia subnet publica shareable tipo de IP

endereccedilo DHCP activo ou natildeo e custo final

128

Figura 93 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo

M2 Criaccedilatildeo de um Serviccedilo

Selecionado o Template que melhor se enquadra nas necessidades do utilizador clicar

na opccedilatildeo preencher todos os dados obrigatoacuterios como nome do

serviccedilo hostname tempo atribuiacutedo ao serviccedilo (acarreta custos) e email do utilizador

As opccedilotildees ldquoNotesrdquo e ldquoBilling coderdquo satildeo opcionais

Figura 94 - Criaccedilatildeo do serviccedilo ldquomyServicerdquo

129

Apoacutes a solicitaccedilatildeo para a criaccedilatildeo do serviccedilo o utilizador eacute encaminhado para uma

lista de pedidos existentes para aquele utilizador e serviccedilo em especiacutefico Pedidos que

poderatildeo ser cancelados (figura 95) mediante decisatildeo do utilizador

Figura 95 - Lista de pedidos do utilizador

A salientar que existem pedidos que carecem da aprovaccedilatildeo do administrador por isso

o pedido poderaacute ficar parado numa determinada percentagem () a espera dessa aprovaccedilatildeo

Se o pedido natildeo necessitar de aprovaccedilatildeo continuaraacute a sua execuccedilatildeo ateacute estar completo

(100) e automaticamente seraacute adicionado ao menu lateral esquerdo do utilizador

Figura 96 - Eventual cancelamento de um pedido

Finalmente o serviccedilo eacute criado e todas as opccedilotildees ficaratildeo agora disponiacuteveis ao

utilizador como ediccedilatildeo de memoacuteria e processadores upgrade de servidores exportaccedilatildeo de

dados em xml visualizaccedilatildeo nesse formato etc

M3 Acesso Remoto

Acesso remoto agrave maquina virtual (VM) como objectivo de toda a implementaccedilatildeo estaacute

igualmente disponiacutevel para os servidores cujo status = ldquoUPrdquo Essa listagem poderaacute ser

efectuada na tab ldquoServiccedilosrdquo em com quatro tipo de ligaccedilotildees

130

RDP (Remote Desktop Protocol) (figura 100)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet (figura 101)

VMRC (VMware Remote Console) (figura 102)

Figura 97 - Serviccedilo ldquomyServicerdquo criado

Figura 98 - Listagem dos acessos remotos

Os acessos remotes poderatildeo ser feitos atraveacutes desta lista ou directamente nos

servidores ou interfaces

131

Figura 99 - Acesso remoto na tab ldquoServerrdquo

Figura 100 - Acesso remoto por RDP

Figura 101 - Acesso remoto por Telnet

Figura 102 - Acesso remoto por VMRC

132

Anexo N (MOE Help)

A informaccedilatildeo disponibilizada eacute vasta e detalhada sobre os recursos disponibilizados e a sua

manipulaccedilatildeo pode criar alguma duacutevida existencial Uma paacutegina ldquoMOE Helprdquo de ajuda eacute

sempre bem vinda e uacutetil bastando para isso clicar no iacutecone que o ajudaraacute a compreender

melhor tido o wevservice e sua distribuiccedilatildeo e organizaccedilatildeo

Figura 103 - Menu lateral esquerdo ldquoMOE Helprdquo

O menu lateral esquerdo agrave semelhanccedila da paacutegina principal do webservice expelha a

hierarquia da organizaccedilatildeo de toda a informaccedilatildeo O utilizador apenas tem que clicar na opccedilatildeo

que deseja maior esclarecimento

Figura 104 - Menu lateral esquerdo ldquoMOE Helprdquo

133

Toda a informaccedilatildeo de ajuda estaacute imediatamente disponiacutevel com as Tabs respectivas jaacute

abertas e prontas a consultar O menu lateral esquerdo serve apenas para selecionar a Tab e

dentro dessa Tab selecionar imediatamente a informaccedilatildeo pretendida Se o utilizador tiver

duacutevidas sobre a a importaccedilatildeo de um Template basta abrir a Tab Template e scroll ateacute agrave

informaccedilatildeo pretendida ou sentatildeo mais faacutecil clicar apenas em ldquoImport xmlrdquo dentro da pasta

Template no menu lateral esquerdo e com um simples clique visualiza imediatamente a

informaccedilatildeo nem necessidade de scroll

Figura 105 - ldquoImport xmlrdquo help

N1 Template

Um Template compreende a uma configuraccedilatildeo especifica de hardware e software desenhado

pelo Arquitecto a infra-estrutura para fazer face a determinadas situaccedilotildees como solicitaccedilotildees

de um utilizador ou grupo de utilizadores que solicitaram essas configuraccedilotildees especificadas

Configuraccedilotildees como nuacutemero de servidores memoacuteria processadores discos software

interface etc Opccedilotildees configuraacuteveis com limites minimos e maacuteximos com o seu

correspondente custo associado

Esses templates apoacutes publicaccedilatildeo fazem parte de uma lista num cataacutelogo de serviccedilos

para uso e instanciaccedilatildeo de serviccedilos de utilizadores dessa infra-estrutura

134

Figura 106 - Template info Tab

N2 Service

Um serviccedilo corresponde a uma instanciaccedilatildeo de um determinado template Todas as

configuraccedilotildees base do template seleccionado pertencem agora a este novo serviccedilo que poderaacute

ser posteriormente editado com mais ou menos servidores processamento memoacuteria discos

etc ateacute um limite maacuteximo definido no template de base de criaccedilatildeo deste serviccedilo A opccedilatildeo de

remoccedilatildeo de servidores definir menos memoacuteria ou processadores tambeacutem satildeo opccedilotildees

disponiacuteveis de ediccedilatildeo

Figura 107 - Service info Tab

135

N3 ServerGroup

Um Grupo de Servidores corresponde a um ou mais servidores com configuraccedilotildees diacutespares

em cada grupo como software discos interfaces etc O grupo de servidores permite a

organizaccedilatildeo dos servidores existentes num serviccedilo por tipo de configuraccedilotildees de hardware e

software

Figura 108 - ServerGroup info Tab

N4 Server

Um servidor eacute o nuacutecleo de um serviccedilo igualmente com configuraccedilotildees especiacuteficas como

memoacuteria processadores velocidade discos software interfaces etc

Figura 109 - Server info Tab

136

N5 Disk

Figura 110 - Disk info Tab

N6 Software

Software a ser disponibilizado na VM do utilizador Software baseado igualmente num

template com configuraccedilotildees especiacuteficas

Figura 111 - Software info Tab

137

N7 Interface

Toda a infra-estrutura tem por base uma lista de redes definidas para comunicaccedilatildeo desde

redes internas a redes externas agrave infra-estrutura

Figura 112 - Interface info Tab

N8 Request

Os pedidossolicitaccedilotildees ficam em histoacuterico durante a sua execuccedilatildeo e apoacutes teacutermino da mesma

Permite que o utilizador acompanhe a progressatildeo do seu pedido e quando terminar (100) o

utilizador eacute informado do status de teacutermino sendo automaticamente feito o refresh da paacutegina

Figura 113 - Request info Tab

138

N9 About

Um pequeno resumo desta Tese

Figura 114 - About info Tab

N10 Team

Intervenientes de todo o projecto

Figura 115 - Team info Tab

139

N11 Javadoc

Informaccedilatildeo sobre todo o webservice meacutetodos moacutedulos de acesso login configuraccedilotildees etc

Informaccedilatildeo disponiacutevel apenas ao Administrador

Figura 116 - Javadoc info Tab

140

Anexo O (VMware - Virtual Machine Resources)

O1 ldquoMapsrdquo ndash Host Options ndash Host to VM

Detalhes da relaccedilatildeo HostVM no final dos 3 serviccedilos criados

Host cifm02hpptlablocal VM Service1HP_hostonehost5

Host cifm05hpptlablocal VM myService_hostmyhostr01

Service2HP_hostrhostr01 02 e 03

Figura 117 - ldquoMapsrdquo da relaccedilatildeo Host VM

141

O2 ldquoMapsrdquo ndash Host Options ndash Host to Network

Detalhes da relaccedilatildeo HostNetwork no final dos 3 serviccedilos criados Os 2 hosts

(cifm02hpptlablocal e cifm05hpptlablocal) estatildeo ligados agraves 3 redes existentes

CloudSystem rede interna MOE (19216810hellip)

HP Network rede externa MOE e interna HP (1623186hellip e 1623187hellip)

HP DataCenter outra rede interna MOE

Figura 118 - ldquoMapsrdquo da relaccedilatildeo Host Network

142

O3 ldquoMapsrdquo ndash Host Options ndash Host to Datastore

Detalhes da relaccedilatildeo HostDatastore no final dos 3 serviccedilos criados

Host cifm02hpptlablocal Datastore CIF02-LOCALDATASTORE-001

Host cifm05hpptlablocal Datastore CIF05-LOCALDATASTORE-001 002 003 e

004

Datastore EVA-VMware-DISK-001 002 003 004 3 005

Figura 119 - ldquoMapsrdquo da relaccedilatildeo Host Datastore

143

O4 ldquoMapsrdquo ndash VM Options ndash VM to Network

Detalhes da relaccedilatildeo VMNetwork no final dos 3 serviccedilos criados

Network CloudSystem VM todas as VMs na rede local MOE

Network HP Network VM todas as VMs na rede externa MOE

Figura 120 - ldquoMapsrdquo da relaccedilatildeo VM Network

144

O5 ldquoMapsrdquo ndash VM Options ndash VM to Datastore

Detalhes da relaccedilatildeo HostDatastore no final dos 3 serviccedilos criados

VM Service1HP_hostonehost5 Datastore EVA-VMware-DISK-004

VM myService_hostmyhostr01 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr01 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr02 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr03 Datastore CIF05-LOCALDATASTORE-004

Figura 121 - ldquoMapsrdquo da relaccedilatildeo Host Datastore

145

O6 ldquoMapsrdquo ndash Host and VM Options ndash all relationships

146

Anexo P (Scenario view)

P1 Template

P11 Informaccedilatildeo

Figura 122 - Detalhes gerais do Template ldquoTemplate_3srvrdquo

Figura 123 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo

147

Figura 124 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Figura 125 - Detalhes dos Custos do Servidor ldquoSvrGrp1-1rdquo

Figura 126 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

Figura 127 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

148

Figura 128 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo

P12 Execuccedilatildeo

Figura 129 - Ficheiro ldquoTemplateListxmlrdquo

149

Export Template

Figura 130 - Ficheiro ldquoTemplate_3srvxmlrdquo

Import Template

Figura 131 - Importaccedilatildeo de um Template em formato XML

Delete Template

Figura 132 - InfoWindow ldquoDelete Templaterdquo

150

XML View

Figura 133 - InfoWindow com a visualizaccedilatildeo do Template em XML

Export All Services

Figura 134 - Ficheiro ldquoTemplate_3srv_ServiceListxmlrdquo

151

Create Service

Figura 135 - Criaccedilatildeo de um Serviccedilo com base no Template ldquoTemplate_3srvlrdquo

All Requests

Figura 136 - Lista de todos os pedidos do utilizador

152

Figura 137 - Eventual cancelamento de um pedido

Template Requests

Figura 138 - Lista dos pedidos resultantes da relaccedilatildeo Templateutilizador

153

P2 Serviccedilo

P21 Informaccedilatildeo

Figura 139 - Detalhes do Serviccedilo ldquomyServicerdquo do Template ldquoTemplate_3srvrdquo

P22 Execuccedilatildeo

Export All Services

Figura 140 - Ficheiro ldquoallServicesListxmlrdquo

154

Export Service

Figura 141 - Ficheiro ldquomyServicexmlrdquo

XML View

Figura 142 - InfoWindow com a visualizaccedilatildeo do Serviccedilo em XML

Delete Service

Figura 143 - Remoccedilatildeo de um Serviccedilo

155

Power ON Service

Figura 144 - Power ON de um Serviccedilo

Power OFF Service

Figura 145 - Power OFF de um Serviccedilo

Power Cycle Service

Figura 146 - Power Cycle de um Serviccedilo

Activate Service

Figura 147 - Activaccedilatildeo de um Serviccedilo

Deactivate Service

Figura 148 - Desactivaccedilatildeo de um Serviccedilo

156

Service Actions

Figura 149 - Lista dos Service Actions

List Remote Session

Figura 150 - Lista dos Acessos Remotos do um Serviccedilo

Figura 151 - Acesso remoto por RDP

Figura 152 - Acesso remoto por Telnet

157

Figura 153 - Acesso remoto por VMRC

Service Requests

Figura 154 - Listagem dos pedidos por Serviccedilo

158

P3 Grupo de Servidores

P31 Informaccedilatildeo

Figura 155 - Detalhes do Grupo de Servidores ldquoSvrGrp1rdquo do Serviccedilo ldquomyServicerdquo

P32 Execuccedilatildeo

Export Server Group

Figura 156 - Ficheiro ldquoSvrGrp1xmlrdquo

159

XML View

Figura 157 - InfoWindow com a visualizaccedilatildeo do Grupo de Servidores em XML

Add Servers (UP)

Figura 158 - Adiccedilatildeo de Servidores ao Grupo de Servidores

Remove Servers (DOWN)

Figura 159 - Remoccedilatildeo de Servidores ao Grupo de Servidores

160

Edit ServerGroup

Figura 160 - Ediccedilatildeo de Servidores ao Grupo de Servidores

Power ON ServerGroup

Figura 161 - Power ON de um ServerGroup

Power OFF ServerGroup

Figura 162 - Power OFF de um ServerGroup

Power Cycle ServerGroup

Figura 163 - Power Cycle de um ServerGroup

161

Activate ServerGroup

Figura 164 - Activaccedilatildeo de um ServerGroup

Deactivate ServerGroup

Figura 165 - Desactivaccedilatildeo de um ServerGroup

List Snapshots

Figura 166 - Listagem de todos os Snapshots existentes no Grupo de Servidores

Figura 167 - Acccedilotildees SnapshotServidor

Figura 168 - Revert Snapshot

162

Figura 169 - Delete Snapshot

Create Snapshot

Figura 170 - Create Snapshot

Add Stereotype Disks

Figura 171 - Lista de ldquoStereotype Disksrdquo

Add Virtual Disks

Figura 172 - Adicionar um disco virtual ldquoDisk62rdquo ao Grupo de Servidores

163

Add Physical Disks

Figura 173 - Adicionar um disco fiacutesico ldquoDisk788rdquo ao Grupo de Servidores

P4 Servidores

P41 Informaccedilatildeo

Figura 174 - Detalhes do Servidor ldquoSvrGrp1-1rdquo do Serviccedilo ldquomyServicerdquo

164

P42 Execuccedilatildeo

Export Server

Figura 175 - Ficheiro ldquohostmygostr01_lsxmlrdquo

XML View

Figura 176 - InfoWindow com a visualizaccedilatildeo do Servidor em XML

165

Remove Server

Figura 177 - Remoccedilatildeo de um Servidor

Edit Server

Figura 178 - Ediccedilatildeo de um Servidor

Power ON Server

Figura 179 - Power ON de um Servidor

Power OFF Server

Figura 180 - Power OFF de um Servidor

166

Power Cycle Server

Figura 181 - Power Cycle de um Servidor

Activate Server

Figura 182 - Activaccedilatildeo de um Servidor

Deactivate Server

Figura 183 - Desactivaccedilatildeo de um Servidor

Create Snapshot

Figura 184 - Create Snapshot

167

List ServerPool

Figura 185 - Pools de Servidores

Figura 186 - Criar uma Pools de Servidores

Figura 187 - Remoccedilatildeo de uma Pools de Servidores

Figura 188 - InfoWindo de aviso ao administrador

168

VM Host

Figura 189 - Informaccedilatildeo dos hosts fiacutesicos

Remote Session

Figura 190 - Sessotildees Remotas num Servidor

169

P5 Discos

P51 Informaccedilatildeo

Figura 191 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

P52 Execuccedilatildeo

Add Stereotype Disks

Figura 192 - Criaccedilatildeo de um ldquoStereotype Disksrdquo

170

P6 Software

P61 Informaccedilatildeo

Figura 193 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

P62 Execuccedilatildeo

List Softwares

Figura 194 - Lista de Software

171

Software Detals

Figura 195 - Detalhes do Software

P7 Interface

P71 Informaccedilatildeo

Figura 196 - Detalhes do Interface NIC0rdquo do Servidor ldquoSvrGrp1-1rdquo

172

P72 Execuccedilatildeo

List Subnets

Figura 197 - Listagem de todas as redes

Figura 198 - Detalhe da rede

Add IPAddress

Figura 199 - Adiccedilatildeo de um IP flutuante agrave Interface ldquoNIC0rdquo

173

Remove IPAddress

Figura 200 - Remoccedilatildeo de um IP flutuante pertencente agrave Interface ldquoNIC0rdquo

Move IPAddress

Figura 201 - Mover um IP flutuante para a Interface ldquoNIC0rdquo

Page 7: Framework para a construção de “portais de negócio” para

VII

Agradecimentos

Um profundo agradecimento a todos aqueles que de diferentes formas me apoiaram durante

estes 5 anos enquadrando este trabalho como objectivo uacuteltimo de uma licenciatura e

mestrado integrado em Engenharia Informaacutetica

Comeccedilo assim por agradecer a todos os meus professores da FCT que ao longo

destes 5 anos contribuiacuteram para a minha formaccedilatildeo acadeacutemica

Aos meus amigos que no estudo nas diversotildees nos incentivos conseguiram sempre criar um

ambiente ideal e propiacutecio agrave concretizaccedilatildeo das diferentes etapas deste curso com eacutexito Para

mim foi um privileacutegio ter partilhado com eles esta etapa da minha vida

Agrave HP pela disponibilizaccedilatildeo de todas as infra-estruturas permissotildees e acessos para a

elaboraccedilatildeo deste framework Um abiente acolhedor em pessoas trabalho equipamento e

apoio

Ao meu orientador e responsaacutevel na HP Rui Miguel Ramalho Ramos (TS Consulting

Resource Manager) que sempre ponto a ajudar soube resolver atempadamente todas as

minhas solicitaccedilotildees Um muito obrigado pela camaradagem eficiecircncia e profissionalismo

com que encarou toda a implementaccedilatildeo

Um agradecimento especial ao meu orientador da tese Professor Paulo Orlando Reis

Afonso Lopes (Arquitectura de Sistemas Computacionais) pela sua orientaccedilatildeo

disponibilidade e sugestotildees que me ajudaram na conclusatildeo deste trabalho Um muito

obrigado pela sua constante presenccedila e acima de tudo pela confianccedila que me concedeu

durante toda a tese quer na preparaccedilatildeo quer na elaboraccedilatildeo Uma acessibilidade e presenccedila

que fizeram toda a diferenccedila obrigado professor

Por uacuteltimo agrave minha famiacutelia pelo encorajamento pais irmatilde e sogros Um obrigado

especial ao meu sogro Aires Pereira pelas brincadeiras que proporcionou agrave minha filha

entretendo-a para que eu pudesse estudar e desenvolver esta tese

Agrave minha esposa Nadia Pires e a minha filha Lara merecem uma menccedilatildeo especial

Agradeccedilo agrave minha esposa pelo apoio prestado nesta etapa da minha vida obrigada pelo amor

pela paciecircncia pelo otimismo pela motivaccedilatildeo e por me ter acompanhado nas horas mais

difiacuteceis desta etapa estarei eternamente grato Na minha ausecircncia soube sempre ser o Pai e a

Matildee que uma famiacutelia precisa

Agrave minha querida filha um agradecimento muito especial e um pedido de desculpas

em simultacircneo Obrigada pelos sorrisos pelos abracinhos pelos beijinhos enfimhellip por todos

os carinhos que soacute uma menina doce como ela sabe dar e que me ajudaram a ultrapassar os

momentos mais difiacuteceis desta jornada Desculpa pela falta de paciecircncia e por todos os

momentos que natildeo podemos estar juntos

VIII

Resumo

O HP CloudSystem Matrix (CSM) faz parte de uma pilha de software HP para computaccedilatildeo

na cloud que cobre todos os niacuteveis de serviccedilo considerados relevantes IaaS (Infra-estrutura

como Serviccedilo) PaaS (Plataforma como Serviccedilo) e SaaS (Software como Serviccedilo) Apesar de

ser a base desta pilha ie oferecer o niacutevel IaaS eacute um produto extremamente complexo pois

interage com todas as infra-estruturas as computacionais (ie servidores fiacutesicos ou virtuais)

as de armazenamento (do disco interno aos discos em servidores de armazenamento) e as de

interligaccedilatildeo (redes Ethernet e FC)

Apesar de toda a complexidade da infra-estrutura real e virtual que gere o CSM

torna conceptualmente simples a entrega aos consumidores de infra-estruturas para suporte a

aplicaccedilotildees 1) o administrador define que recursos da infra-estrutura estatildeo disponiacuteveis para

integrar a ldquooferta cloudrdquo 2) o arquitecto define templates para as arquitecturas que considera

adequadas para necessidades dos consumidores (eg arquitectura 3-tier para uma soluccedilatildeo

ERP - Enterprise Resource Planning) e 3) o consumidor escolhe o template que melhor se

ajusta agraves suas necessidades e efectua um pedido de aprovisionamento da infra-estrutura

A interacccedilatildeo entre os diferentes interlocutores (1) (2) (3) e o CSM eacute

fundamentalmente realizada sobre portais contudo especialmente no caso do consumidor o

portal disponibilizado pelo produto tem sido considerado como ldquocomplexordquo por apresentar

informaccedilatildeo demasiado teacutecnica ldquoriacutegidordquo por natildeo poder ser customizado (por exemplo para

suprimir a ldquoinformaccedilatildeo demasiado teacutecnicardquo) e ldquogrosseirordquo por natildeo permitir a especificaccedilatildeo

mais fina das caracteriacutesticas da infra-estrutura que se quer aprovisionar (por exemplo permite

variar o nuacutemero de CPUs e a quantidade de memoacuteria de um servidor mas natildeo permite

escolher a tecnologia dos discos que se pretendem aprovisionar eg SSD em vez de FC 15K

em vez de 10K rpm) Assim o objectivo final da dissertaccedilatildeo eacute desenvolver um framework

que permita com base num conjunto (extensiacutevel e configuraacutevel) de opccedilotildees preacute-definidas e

em layouts customizaacuteveis definir portais que se integram com o HP CloudSystem Matrix e

que permitam aos utilizadores (consumidores) uma interacccedilatildeo natildeo soacute mais simples mas

tambeacutem mais versaacutetil

Neste trabalho satildeo abordados os modelos de serviccedilo e de implantaccedilatildeo (deployment)

de clouds a virtualizaccedilatildeo (natildeo somente de servidores mas tambeacutem de armazenamento e de

redes) pedra base de toda a tecnologia cloud e os moacutedulos e APIs disponiacuteveis para

interoperar com o CSM nomeadamente API-MOE e API-VMware Por fim eacute apresentada

uma framework com uma arquitectura multicamada (N-tier) implementada com tecnologias

padratildeo TCPIP para a pilha de comunicaccedilotildees REST (Representational State Transfer) para

regular a interacccedilatildeo e troca de informaccedilatildeo clienteservidor e XML (Extensible Markup

Language) e JSON (JavaScript Object Notation) como formatos de dados

Palavras-chave Computaccedilatildeo na nuvem Portal de interacccedilatildeo Traduccedilatildeo Binaacuteria

Virtualizaccedilatildeo de Servidores Virtualizaccedilatildeo de Armazenamento e Virtualizaccedilatildeo da Rede

IX

Abstract

The HP CloudSystem Matrix (CSM) is a part of the HP software stack for cloud computing

that covers all relevant service levels IaaS (Infrastructure as a Service) PaaS (Platform as a

Service) and SaaS (Software as a Service) Although it rests at the base of the stack ie only

offers the IaaS level it is an extremely complex product since it interacts with all

infrastructures computing (ie physical and virtualized servers) storage (from individual

drives to disk arrays) and networking (Ethernet and FC networks)

Despite all the (real) infrastructureacutes complexity that CSM deals with the delivery (to

end users ndash aka infrastructure consumers) of infrastructures for application support

becomes a conceptually simple task (1) the administrator defines which infrastructure

resources are available to integrate the cloud offer (2) the architect defines templates for

those architectures he deems appropriate for the end users (eg 3-tier architecture for an ERP

- Enterprise Resource Planning - solution) (3) the end user chooses the template that better

suits its needs and then submits a request for the delivery of the infrastructure

The interaction between the different counterparts (1) (2) and (3) and the CSM is

fundamentally realised over portals however especially in the case of the end user the portal

has been considered complex since it presents too much technical information rigid

since it is not customizable (eg to suppress the too much technical information) and

coarse since it does not allow a finer-graned specification of the infrastructureacutes attributes

that are required (eg it allows to change the number of CPUs and the amount of memory in

the server but it does not allow one to choose the disk technologies eg SSD instead of FC

or 15K instead 10K rpm) Therefore the final goal of this dissertation is to develop a

framework that allows with a set of pre-defined settings and customizable layouts to define

portals that are integrated with HP CloudSystem Matrix and enables a simpler user

interaction

In this work we studied service and cloud implementation models virtualization (not

only server virtualization but also storage and network virtualization) the foundation of all

cloud technologies modules and APIs that interoperate with CSM namely API-MOE and

API-VMware Finally we present a framework (prototype) implemented in a multi-layer

architecture (N-tier) with standard technologies TCPIP for the communication stack REST

(Representational State Transfer) to control the interaction and the clientserver information

flows and XML (eXtensible Markup Language) and JSON (JavaScript Object Notation) for

the data formats

Keywords Cloud Computing Interaction Portal Binary Translation Server Virtualization

Storage Virtualization and Network Virtualization

X

Glossaacuterio e Lista de siglas

API Application Programming Interface

BIOS Basic InputOutput System

CC Computaccedilatildeo em Cloud

CIFS Common Internet File System

CL Command Line

CMS Console Monitor System

CP Control Program

CPU Central Processing Unit

CSS Cascading Style Sheets

DAS Direct-Attached Storage

Dom0 Domiacutenio 0 do XenServer

DomU Domiacutenio U do XenServer

DVFilter Distributed Virtual Filter

DynaRecs Dynamic Recompilation

EIDE Enhanced Integrated Drive Electronics

FC Fibre Channel

FCoE Fibre Channel over Ethernet

FTP File Transfer Protocol

GUEST Sistema Virtualizado

HD Hard Drive

HOST Servidor Hospedeiro

HP Hewlett-Packard

HPCMS HP Console Management System

CSM HP CloudSystem Matrix (Hewlett-Packard)

IC Insight Control (Hewlett-Packard)

ID Insight Dynamics (Hewlett-Packard)

IO Infrastructure Orchestration (Hewlett-Packard)

SA Server Automation (Hewlett-Packard)

SS SiteScope (Hewlett-Packard)

UD Universal Discovery (Hewlett-Packard)

HPVM HP Integrity Virtual Machine

VMAN Virtualization Manager (Hewlett-Packard)

VMMGR HP Integrity Virtual Machines Manager (Hewlett-Packard)

XI

HTTP HyperText Transfer Protocol

HVM Virtualizaccedilatildeo assistida por hardware

IO InputOutput

IaaS Infrastructure as a Service

IBM International Business Machines Corporation

IDE Integrated Development Environment

iSCSI Internet Small Computer System Interface

J2EE Java2 Platform Enterprise Edition

JS JavaScript

JSON JavaScript Object Notation

JVM Java Virtual Machine

LAN Local Area Network

LUN Logical Unit Number

LVM Logical Volume Manager

MAC Apple Macintosh

MOE Matrix Operating Environment

MSCS Microsoft Cluster Server

NAS Network Attached Storage

nbAPI Northbound API

NetApp Network Appliance

NFS Network File System

NIC Adaptador de rede (Network Interface Controller)

NVRAM Non-Volatile Random Access Memory

PaaS Plataform as a Service

PATA Parallel Advanced Technology Attachment

pNIC Physical Network Interface Controller

POSIX Portable Operating System Interface

PV Para-Virtualizaccedilatildeo

PVHVM Para-Virtualizaccedilatildeo + Virtualizaccedilatildeo assistida por hardware

QOS Quality Of Service

RAID Redundant Array of Independent Disks

RAM Random Access Memory

REST REpresentational State Transfer

RPC Remote Procedure Call

SaaS Software as a Service

XII

SAN Storage Area Network

SAP Sistemas Aplicaccedilotildees e Produtos

SAS Serial Attached SCSI

SATA Serial ATA

SCSI Small Computer System Interface

SCVMM System Center Virtual Machine Manager

SF Sistema de Ficheiros

SLA Service Level Agreement

SMTP Simple Mail Transfer Protocol

SO Sistema Operativo

SOA Service-Oriented Architecture

SOAP Simple Object Access Protocol

SSD Solid-State Drive

TCPIP Transmission Control ProtocolInternet Protocol

TI Tecnologias de Informaccedilatildeo

URI Uniform Resource Identifier

URL Uniform Resource Locator

UUID Identificador Uacutenico Universal

VDI Virtual Disk Image

vDS vNetwork Distributed Switch

VHD Virtual Hard Disk (Microsoft)

VLAN Virtual LAN

VM Virtual Machine

VMBus Virtual Machine Buss

VMDK Virtual Machine Disk (VMware)

VMFS Virtual Machine File System

VMM hipervisor (tambeacutem designado Virtual Machine Manager)

vNIC Virtual Network Interface Controller

VSC Virtual Service Client

VSP Virtual Service Provider

vSwitch Virtual Switch

WOA Web-Oriented Architecture

WS Web Service

WWW World Wide Web

XML Extensible Markup Language

XIII

Iacutendice

1 Introduccedilatildeo 1

11 Descriccedilatildeo e contexto 1

12 Objectivos 3

13 Organizaccedilatildeo 3

14 Contribuiccedilotildees 4

15 Resumo 5

2 Virtualizaccedilatildeo 6

21 Evoluccedilatildeo histoacuterica 6

22 Virtualizaccedilatildeo de Servidores 7

221 VMware (VMware Inc) 8

222 Xen (Citrix Systems Inc) 9

223 Integrity VM (HP) 10

224 Hyper-V (Microsoft) 11

23 Virtualizaccedilatildeo do Armazenamento 12

231 Armazenamento em ambientes virtualizados 14

24 Virtualizaccedilatildeo da Rede 16

25 Resumo 18

3 Computaccedilatildeo na Cloud 19

31 Periacutemetro de uma cloud 19

32 Modelos de serviccedilo 20

33 Resumo 22

4 HP Cloud Stack 23

41 HP CloudSystem Matrix 23

42 Modelos de interacccedilatildeo com o HP CSM 25

43 Papeacuteis e Portais de interacccedilatildeo 26

44 Conceitos fundamentais da plataforma HP CSM 28

45 Limitaccedilotildees do HP CloudSystem Matrix 30

46 Resumo 31

5 O framework e a sua Realizaccedilatildeo 32

51 Arquitectura 32

52 Integraccedilatildeo da framework no HP CSM (MOE e VMware) 33

53 Um desenho guiado pela Interface Utilizador 34

54 Camada de apresentaccedilatildeo 38

XIV

541 Do lado do cliente 38

542 Do lado do servidor 39

543 Lista de primitivas na oacuteptica dos recursos 40

55 Camada ServiccedilosLoacutegica 41

551 Camada de Serviccedilos 42

552 Camada Loacutegica 42

56 Camada de Dados 68

561 Dados natildeo persistentes 68

562 Dados persistentes 69

57 Feedback 72

58 Questotildees principais 73

59 Visatildeo global 75

510 Resumo 76

6 Consideraccedilotildees Finais 77

61 Conclusotildees 78

62 Trabalho futuro 79

63 Resumo 80

Referecircncias bibliograacuteficas 81

XV

Iacutendice de Figuras

Figura 1 - Ambiente natildeo Virtualizado 1

Figura 2 - Ambiente Virtualizado 1

Figura 3 - Infra-estrutura CSM 2

Figura 4 - Arquitectura VMware ESXi (Tipo-1) 9

Figura 5 - Arquitectura XenServer 10

Figura 6 - Arquitectura Hyper-V 11

Figura 7 - Redundant Array Independent Disks (RAID) 12

Figura 8 - Storage Area Network (SAN) 13

Figura 9 - Network Attached Storage (NAS) 13

Figura 10 - Datastore e VMs 14

Figura 11 - Sistema de Ficheiros VMFS 15

Figura 12 - Network File System (NFS) 15

Figura 13 - Infra-estrutura de rede tradicional 16

Figura 14 - Infra-estrutura de rede virtual 17

Figura 15 - vNetwork Distributed Switch ndash vDS 17

Figura 16 - Distributed Virtual Filter (DVFilter) 18

Figura 17 - Relaccedilatildeo entre serviccedilos e responsabilidades 21

Figura 18 - Relaccedilotildees e papeacuteis dos envolventes nos modelos de Cloud Computing 22

Figura 19 - Contributos CloudStack 23

Figura 20 - Desenho publicaccedilatildeo e implementaccedilatildeo do cataacutelogo de serviccedilos 24

Figura 21 - Infra-estrutura HP CloudSystem Matrix 25

Figura 22 - Utilizadores de TI em cloud e respectivos papeacuteis (roles) 26

Figura 23 - Portal do Administrador 27

Figura 24 - Portal do Arquitecto 27

Figura 25 - Portal do Utilizador final 28

Figura 26 - Arquitectura n-tier 32

Figura 27 - Relaccedilatildeo dos VMIDs (WebService-MOE-vCenter) 33

Figura 28 - Estrutura em aacutervore do menu lateral esquerdo 35

Figura 29 - Portal 36

Figura 30 - Diagrama de Sequecircncia (Criaccedilatildeo de um Serviccedilo) 37

Figura 31 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull 41

Figura 32 - Execuccedilatildeo tab ldquoTemplaterdquo 45

Figura 33 - Execuccedilatildeo tab ldquoServicerdquo 48

Figura 34 - Execuccedilatildeo tab ldquoServerGroupsrdquo 51

Figura 35 - Execuccedilatildeo tab ldquoServerrdquo 56

XVI

Figura 36 - Execuccedilatildeo tab ldquoDisksrdquo 60

Figura 37 - Execuccedilatildeo tab ldquoSoftwarerdquo 61

Figura 38 - Execuccedilatildeo tab ldquoInterfacerdquo 62

Figura 39 - Listagem das redes existentes 64

Figura 40 - Execuccedilatildeo tab ldquoSnapshotrdquo 65

Figura 41 - Execuccedilatildeo tab ldquoRequestsrdquo 66

Figura 42 - Execuccedilatildeo tab ldquoServerPoolsrdquo 68

Figura 43 - Realm JAAS (Java Authentication and Authorization Service) 69

Figura 44 - Modelo ER 71

Figura 45 - Mensagens SOAP na invocaccedilatildeo de processos do MOE 75

Figura 46 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull do WEBSERVICE 76

Figura 47 - VMM ou hypervisor do Tipo-2 87

Figura 48 - VMM ou hypervisor do ldquohiacutebridordquo 88

Figura 49 - VMM ou hypervisor do Tipo-1 88

Figura 50 - Emulaccedilatildeo de Hardware 89

Figura 51 - Virtualizaccedilatildeo Completa 90

Figura 52 - Para-Virtualizaccedilatildeo 91

Figura 53 - Virtualizaccedilatildeo assistida por Hardware 91

Figura 54 - LUN num SAN iSCSI ou SAN FC 99

Figura 55 - Network File System (NFS) 100

Figura 56 - Projecto ldquoDynamic Web Projectrdquo no eclipse 102

Figura 57 - Plataforma Java 107

Figura 58 - Comando ldquojava -versionrdquo 108

Figura 59 - Instalaccedilatildeo da Plataforma Java 109

Figura 60 - Variaacutevel de sistema ldquoPathrdquo 109

Figura 61 - Variaacutevel de sistema ldquoCLASSPATHrdquo 110

Figura 62 - Variaacutevel de sistema ldquoJAVA_HOMErdquo 110

Figura 63 - Directoria de instalaccedilatildeo do Servidor Apache Tomcat 111

Figura 64 - Link localhost Apache Tomcat 112

Figura 65 - Add repository 113

Figura 66 - Dynamic Web Project 114

Figura 68 - Propriedades do Dynamic Web Project 115

Figura 69 - Webxml do Dynamic Web Project 115

Figura 70 - Directoria base do Dynamic Web Project 116

Figura 71 - Criar uma classe 117

Figura 72 - Servidor Apache Tomcat dentro do Eclipse 118

Figura 73 - Execuccedilatildeo no Browser 118

XVII

Figura 74 - Projecto base MOE 119

Figura 75 - Importaccedilatildeo do projecto real MOE 119

Figura 76 - Projecto real MOE 120

Figura 77 - Ficheiro ldquoadminUsersListtxtrdquo 121

Figura 78 - Ficheiro ldquohp-io-v5wsdlrdquo 121

Figura 79 - WSDL do HPMOE 121

Figura 80 - Ficheiro ldquologinconfigrdquo 122

Figura 81 - Ficheiro ldquologinconfigrdquo 122

Figura 82 - Ficheiro ldquovmwareAcesstxtrdquo 123

Figura 83 - Servidor Apache Tomcat dentro do Eclipse 123

Figura 84 - Compilaccedilatildeo do projecto MOE 124

Figura 85 - Login page MOE 124

Figura 86 - Data page MOE 124

Figura 87 - Detalhes gerais do Template ldquoTemplate_3srvrdquo 125

Figura 88 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo 126

Figura 89 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 126

Figura 90 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 127

Figura 91 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 127

Figura 92 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 127

Figura 93 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo 128

Figura 94 - Criaccedilatildeo do serviccedilo ldquomyServicerdquo 128

Figura 95 - Lista de pedidos do utilizador 129

Figura 96 - Eventual cancelamento de um pedido 129

Figura 97 - Serviccedilo ldquomyServicerdquo criado 130

Figura 98 - Listagem dos acessos remotos 130

Figura 99 - Acesso remoto na tab ldquoServerrdquo 131

Figura 100 - Acesso remoto por RDP 131

Figura 101 - Acesso remoto por Telnet 131

Figura 102 - Acesso remoto por VMRC 131

Figura 103 - Menu lateral esquerdo ldquoMOE Helprdquo 132

Figura 104 - Menu lateral esquerdo ldquoMOE Helprdquo 132

Figura 105 - ldquoImport xmlrdquo help 133

Figura 106 - Template info Tab 134

Figura 107 - Service info Tab 134

Figura 108 - ServerGroup info Tab 135

Figura 109 - Server info Tab 135

Figura 110 - Disk info Tab 136

XVIII

Figura 111 - Software info Tab 136

Figura 112 - Interface info Tab 137

Figura 113 - Request info Tab 137

Figura 114 - About info Tab 138

Figura 115 - Team info Tab 138

Figura 116 - Javadoc info Tab 139

Figura 117 - ldquoMapsrdquo da relaccedilatildeo Host VM 140

Figura 118 - ldquoMapsrdquo da relaccedilatildeo Host Network 141

Figura 119 - ldquoMapsrdquo da relaccedilatildeo Host Datastore 142

Figura 120 - ldquoMapsrdquo da relaccedilatildeo VM Network 143

Figura 121 - ldquoMapsrdquo da relaccedilatildeo Host Datastore 144

Figura 122 - Detalhes gerais do Template ldquoTemplate_3srvrdquo 146

Figura 123 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo 146

Figura 124 - Detalhes do Servidor ldquoSvrGrp1-1rdquo 147

Figura 125 - Detalhes dos Custos do Servidor ldquoSvrGrp1-1rdquo 147

Figura 126 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 147

Figura 127 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 147

Figura 128 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo 148

Figura 129 - Ficheiro ldquoTemplateListxmlrdquo 148

Figura 130 - Ficheiro ldquoTemplate_3srvxmlrdquo 149

Figura 131 - Importaccedilatildeo de um Template em formato XML 149

Figura 132 - InfoWindow ldquoDelete Templaterdquo 149

Figura 133 - InfoWindow com a visualizaccedilatildeo do Template em XML 150

Figura 134 - Ficheiro ldquoTemplate_3srv_ServiceListxmlrdquo 150

Figura 135 - Criaccedilatildeo de um Serviccedilo com base no Template ldquoTemplate_3srvlrdquo 151

Figura 136 - Lista de todos os pedidos do utilizador 151

Figura 137 - Eventual cancelamento de um pedido 152

Figura 138 - Lista dos pedidos resultantes da relaccedilatildeo Templateutilizador 152

Figura 139 - Detalhes do Serviccedilo ldquomyServicerdquo do Template ldquoTemplate_3srvrdquo 153

Figura 140 - Ficheiro ldquoallServicesListxmlrdquo 153

Figura 141 - Ficheiro ldquomyServicexmlrdquo 154

Figura 142 - InfoWindow com a visualizaccedilatildeo do Serviccedilo em XML 154

Figura 143 - Remoccedilatildeo de um Serviccedilo 154

Figura 144 - Power ON de um Serviccedilo 155

Figura 145 - Power OFF de um Serviccedilo 155

Figura 146 - Power Cycle de um Serviccedilo 155

Figura 147 - Activaccedilatildeo de um Serviccedilo 155

XIX

Figura 148 - Desactivaccedilatildeo de um Serviccedilo 155

Figura 149 - Lista dos Service Actions 156

Figura 150 - Lista dos Acessos Remotos do um Serviccedilo 156

Figura 151 - Acesso remoto por RDP 156

Figura 152 - Acesso remoto por Telnet 156

Figura 153 - Acesso remoto por VMRC 157

Figura 154 - Listagem dos pedidos por Serviccedilo 157

Figura 155 - Detalhes do Grupo de Servidores ldquoSvrGrp1rdquo do Serviccedilo ldquomyServicerdquo 158

Figura 156 - Ficheiro ldquoSvrGrp1xmlrdquo 158

Figura 157 - InfoWindow com a visualizaccedilatildeo do Grupo de Servidores em XML 159

Figura 158 - Adiccedilatildeo de Servidores ao Grupo de Servidores 159

Figura 159 - Remoccedilatildeo de Servidores ao Grupo de Servidores 159

Figura 160 - Ediccedilatildeo de Servidores ao Grupo de Servidores 160

Figura 161 - Power ON de um ServerGroup 160

Figura 162 - Power OFF de um ServerGroup 160

Figura 163 - Power Cycle de um ServerGroup 160

Figura 164 - Activaccedilatildeo de um ServerGroup 161

Figura 165 - Desactivaccedilatildeo de um ServerGroup 161

Figura 166 - Listagem de todos os Snapshots existentes no Grupo de Servidores 161

Figura 167 - Acccedilotildees SnapshotServidor 161

Figura 168 - Revert Snapshot 161

Figura 169 - Delete Snapshot 162

Figura 170 - Create Snapshot 162

Figura 171 - Lista de ldquoStereotype Disksrdquo 162

Figura 172 - Adicionar um disco virtual ldquoDisk62rdquo ao Grupo de Servidores 162

Figura 173 - Adicionar um disco fiacutesico ldquoDisk788rdquo ao Grupo de Servidores 163

Figura 174 - Detalhes do Servidor ldquoSvrGrp1-1rdquo do Serviccedilo ldquomyServicerdquo 163

Figura 175 - Ficheiro ldquohostmygostr01_lsxmlrdquo 164

Figura 176 - InfoWindow com a visualizaccedilatildeo do Servidor em XML 164

Figura 177 - Remoccedilatildeo de um Servidor 165

Figura 178 - Ediccedilatildeo de um Servidor 165

Figura 179 - Power ON de um Servidor 165

Figura 180 - Power OFF de um Servidor 165

Figura 181 - Power Cycle de um Servidor 166

Figura 182 - Activaccedilatildeo de um Servidor 166

Figura 183 - Desactivaccedilatildeo de um Servidor 166

Figura 184 - Create Snapshot 166

XX

Figura 185 - Pools de Servidores 167

Figura 186 - Criar uma Pools de Servidores 167

Figura 187 - Remoccedilatildeo de uma Pools de Servidores 167

Figura 188 - InfoWindo de aviso ao administrador 167

Figura 189 - Informaccedilatildeo dos hosts fiacutesicos 168

Figura 190 - Sessotildees Remotas num Servidor 168

Figura 191 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo 169

Figura 192 - Criaccedilatildeo de um ldquoStereotype Disksrdquo 169

Figura 193 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo 170

Figura 194 - Lista de Software 170

Figura 195 - Detalhes do Software 171

Figura 196 - Detalhes do Interface NIC0rdquo do Servidor ldquoSvrGrp1-1rdquo 171

Figura 197 - Listagem de todas as redes 172

Figura 198 - Detalhe da rede 172

Figura 199 - Adiccedilatildeo de um IP flutuante agrave Interface ldquoNIC0rdquo 172

Figura 200 - Remoccedilatildeo de um IP flutuante pertencente agrave Interface ldquoNIC0rdquo 173

Figura 201 - Mover um IP flutuante para a Interface ldquoNIC0rdquo 173

XXI

Iacutendice de Tabelas

Tabela 1 - Funccedilotildees associadas agrave inicializaccedilatildeo do Webservice 43

Tabela 2 - Funccedilotildees associadas ao Template 47

Tabela 3 - Funccedilotildees associadas ao Serviccedilo 50

Tabela 4 - Funccedilotildees associadas ao Grupo de Servidores 54

Tabela 5 - Funccedilotildees associadas aos Servidores 58

Tabela 6 - Funccedilotildees associadas aos Discos 60

Tabela 7 - Funccedilotildees associadas ao Software 62

Tabela 8 - Funccedilotildees associadas agraves Interfaces 63

Tabela 9 - Funccedilotildees associadas agraves Redes 65

Tabela 10 - Funccedilotildees associadas aos Snapshots 65

Tabela 11 - Funccedilotildees associadas aos Requests 67

Tabela 12 - Funccedilotildees associadas agraves Pools de Servidores 68

Tabela 13 - Dados gerais VMWARE 93

Tabela 14 - Detalhes VMWARE 93

Tabela 15 - Dados gerais Citrix 94

Tabela 16 - Dados detalhados Citrix 94

Tabela 17 - Dados gerais HP 95

Tabela 18 - Dados detalhados HP 95

Tabela 19 - Dados gerais Microsoft 96

Tabela 20 - Dados detalhados Microsoft 96

XXII

Iacutendice de Anexos

Anexo A (Virtualizaccedilatildeo Vantagens e inconvenientes) 84

Anexo B (Virtualizaccedilatildeo Arquitectura) 87

Anexo C (Virtualizaccedilatildeo Tipos de Implementaccedilatildeo) 89

Anexo D (Detalhes da plataforma e restriccedilotildees da VMware) 93

Anexo E (Detalhes da plataforma e restriccedilotildees da Citrix) 94

Anexo F (Detalhes da plataforma e restriccedilotildees da HP) 95

Anexo G (Detalhes da plataforma e restriccedilotildees da Microsoft) 96

Anexo H (Ambiente de armazenamento VMware ESXi e Citrix Xen) 97

Anexo I (Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo) 102

Anexo J (Ferramentas de desenvolvimento WebService) 107

Anexo K (Criar e executar um ldquoDynamic Web Projectrdquo no Eclipse) 114

Anexo L (Importar configurar e executar o RESTWEBSERVICE - MOE) 119

Anexo M (Criaccedilatildeo de um Serviccedilo e ligaccedilatildeo agraves VMs) 125

Anexo N (MOE Help) 132

Anexo O (VMware - Virtual Machine Resources) 140

Anexo P (Scenario view) 146

1

1 Introduccedilatildeo

11 Descriccedilatildeo e contexto

A evoluccedilatildeo do poder de processamento dos computadores actuais eacute notoacuteria nestes

uacuteltimos anos Infelizmente uma grande parte desse poder natildeo eacute efectivamente usada

no quotidiano havendo por isso uma crescente preocupaccedilatildeo com os desperdiacutecios que

resultam dessa subutilizaccedilatildeo Tecnologias como a virtualizaccedilatildeo em primeiro lugar e

a Cloud Computing como estaacutegio mais avanccedilado desta satildeo formas de reduccedilatildeo de tais

desperdiacutecios

Virtualizaccedilatildeo

Observando as duas primeiras figuras rapidamente ficamos com a ideia do

que eacute real figura 1 e do que eacute virtual figura 2 Assim entenda-se o real como algo

com caracteriacutesticas fiacutesicas concretas palpaacuteveis e o virtual associado a algo simulado

abstracto uma imitaccedilatildeo do real Eacute aqui que se enquadra a virtualizaccedilatildeo o simular de

um ambiente real que suporta todo um ambiente que vai do sistema de operaccedilatildeo agraves

aplicaccedilotildees sem necessidade de acesso agrave maacutequina real que neste caso funciona como

hospedeira desta tecnologia

A virtualizaccedilatildeo encaixa-se num mundo ilusoacuterio de vaacuterias maacutequinas virtuais

(Virtual Machines - VMs) independentes e isoladas entre si cada uma com um

Sistema Operativo (SO) proacuteprio e potencialmente diferente do SO das demais

Figura 1 - Ambiente natildeo Virtualizado

Figura 2 - Ambiente Virtualizado

2

Cloud Computing

As estrateacutegias de consolidaccedilatildeo de servidores propiciadas pelo uso de

virtualizaccedilatildeo conduzem de facto agrave reduccedilatildeo de custos de hardware software e

energia mas natildeo evitam (e podem ateacute aumentar) o nuacutemero de servidores agora

virtuais a gerir acrescentando o custo humano agrave equaccedilatildeo A adopccedilatildeo do paradigma

cloud (a ver na secccedilatildeo 2) eacute o passo a dar para manter o custo total sob controlo

O HP CloudSystem Matrix (CSM) [1] faz parte de uma pilha de software HP

para computaccedilatildeo na cloud que cobre todos os niacuteveis de serviccedilo considerados

relevantes IaaS (Infra-estrutura como Serviccedilo) PaaS (Plataforma como Serviccedilo) e

SaaS (Software como Serviccedilo) Apesar de ser a base desta pilha ie oferecer o niacutevel

IaaS eacute um produto extremamente complexo pois interage com todas as infra-

estruturas as computacionais (ie servidores fiacutesicos ou virtuais) as de

armazenamento (do disco interno aos discos em servidores de armazenamento) e as

de interligaccedilatildeo (redes Ethernet e FC)

Apesar de toda a complexidade da infra-estrutura real e virtual que gere o

CSM torna conceptualmente simples a entrega aos consumidores de infra-estruturas

para suporte a aplicaccedilotildees 1) o administrador define que recursos da infra-estrutura

estatildeo disponiacuteveis para integrar a ldquooferta cloudrdquo 2) o arquitecto define templates para

as arquitecturas que considera adequadas para necessidades dos utilizadores

consumidores (eg arquitectura 3-tier para uma soluccedilatildeo ERP1) e 3) o consumidor

escolhe o template que melhor se ajusta agraves suas necessidades e efectua um pedido de

aprovisionamento de uma infra-estrutura

Figura 3 - Infra-estrutura CSM

A interacccedilatildeo entre os diferentes interlocutores (1) (2) (3) e o CSM eacute

fundamentalmente realizada sobre portais contudo especialmente no caso do

utilizador-consumidor o portal disponibilizado pelo produto tem sido considerado

1 ERP (Enterprise Resource Planning) cobre uma larga fatia das necessidades de uma empresa Permite uma

visatildeo integrada em tempo real dos seus principais processos de negoacutecios

3

como ldquocomplexordquo por apresentar informaccedilatildeo demasiado teacutecnica ldquoriacutegidordquo por natildeo

poder ser customizado (por exemplo para suprimir a ldquoinformaccedilatildeo demasiado

teacutecnicardquo) e ldquogrosseirordquo por natildeo permitir a especificaccedilatildeo mais fina das caracteriacutesticas

da infra-estrutura que se quer aprovisionar (por exemplo permite variar o nuacutemero de

CPUs e a quantidade de memoacuteria de um servidor mas natildeo permite escolher a

tecnologia dos discos que se pretendem aprovisionar eg SSD (Solid-State Drive)

em vez de FC 15K em vez de 10K RPM)

12 Objectivos

O objectivo desta tese eacute desenvolver um framework que permita com base num

conjunto (extensiacutevelconfiguraacutevel) de opccedilotildees preacute-definidas e em layouts

customizaacuteveis definir portais que se integram com o HP CloudSystem Matrix e que

permitam aos utilizadores (consumidores IaaS) uma interacccedilatildeo mais simples praacutetica e

organizada natildeo soacute na visualizaccedilatildeo de toda a informaccedilatildeo mas tambeacutem das acccedilotildees

possiacuteveis de serem executadas nos recursos disponibilizados que satildeo ampliadas face agrave

oferta disponiacutevel no portal standard do CSM

Neste trabalho foram estudados modelos de serviccedilo e de implantaccedilatildeo

(deployment) de clouds a virtualizaccedilatildeo (natildeo somente de servidores mas tambeacutem de

armazenamento e de redes) pedra base de toda a tecnologia cloud e os moacutedulos e

APIs disponiacuteveis para interoperar com o CSM nomeadamente a API-MOE e a API-

VMware para desenvolver um framework com uma arquitectura multicamada (N-tier)

sobre TCPIP e usando o protocolo REST (Representational State Transfer) para troca

de informaccedilatildeo

13 Organizaccedilatildeo

O presente trabalho encontra-se organizado em 6 secccedilotildees que vatildeo desde o estudo

preacutevio das diferentes tecnologias ateacute agraves Consideraccedilotildees finais tidas como conclusatildeo

Assim a secccedilatildeo 1 eacute a presente introduccedilatildeo onde se apresenta a virtualizaccedilatildeo

como tecnologia nuclear ao trabalho enunciam-se os objectivos a organizaccedilatildeo de

todo o relatoacuterio e as suas contribuiccedilotildees

Na secccedilatildeo 2 eacute feita uma abordagem agrave virtualizaccedilatildeo desde a sua evoluccedilatildeo

histoacuterica culminando com a visatildeo actual das quatro tecnologias mais representativas

no mercado VMware Citrix HP e Microsoft Aborda-se natildeo soacute a virtualizaccedilatildeo de

servidores mas tambeacutem a de armazenamento e de rede

Na secccedilatildeo 3 apresenta-se uma nova tecnologia computaccedilatildeo na Cloud

resultado da uniatildeo da virtualizaccedilatildeo e moacutedulos de orquestraccedilatildeo Satildeo abordados os seus

modelos de implementaccedilatildeo e os diferentes niacuteveis de serviccedilo que podem ser oferecidos

neste paradigma

Na secccedilatildeo 4 descreve-se uma nova tecnologia HP Cloud Stack como pilha de

software e hardware Satildeo abordadas tecnologias como HP CloudSystem Matrix os

4

seus modelos de interacccedilatildeo papeis e portais conceitos fundamentais para perceber o

restante relatoacuterio e as limitaccedilotildees desta uacuteltima tecnologia razatildeo de ser deste trabalho

Na secccedilatildeo 5 eacute apresentada a framework (protoacutetipo) desde a arquitectura

implementaccedilatildeo dos diferentes moacutedulos execuccedilatildeo nos cenaacuterios possiacuteveis e coacutedigo

principal e finalmente feedback dos orientadores e redefiniccedilatildeo de objectivos ou

estrateacutegias de realizaccedilatildeo e por uacuteltimo a discussatildeo da relaccedilatildeo entre os serviccedilos e

funcionalidades do HP MOE e a framework implementada

Na secccedilatildeo 6 satildeo apresentadas as conclusotildees sobre o trabalho realizado

perspectivas para desenvolvimentos futuros fazendo-se uma discussatildeo final sobre as

dificuldades encontradas na implementaccedilatildeo

14 Contribuiccedilotildees

Todo o estudo de conceitos relaccedilotildees e teorias tem sempre como objectivo uacuteltimo a

aquisiccedilatildeo de mais conhecimento e acima de tudo aplicabilidade Nesse intuito a

principal contribuiccedilatildeo deste trabalho estaacute directamente relacionada com o principal

objectivo um framework modelo de acesso raacutepido intuitivo organizado

personalizaacutevel e acima de tudo praacutetico no acesso a recursos de uma infra-estrutura

Apresentam-se de seguida todas as contribuiccedilotildees identificadas

Um modelo simples com uma curta curva de aprendizagem e uma

flexibilidade com acessos proacuteprios individuais e personalizados a cada utilizador O

acesso a toda a informaccedilatildeorecursos eacute feita numa visualizaccedilatildeo das componentes

principais em aacutervore permitindo assim uma raacutepida visualizaccedilatildeo das configuraccedilotildees de

todo o Serviccedilo criado e um acesso raacutepido e intuitivo aos detalhes de cada componente

Visualizaccedilatildeo imediata do Cataacutelogo de Serviccedilos com todos os Templates e a

correspondente associaccedilatildeo dos serviccedilos por Template A descriccedilatildeo eacute a mesma

relativamente aos recursos associados a cada Serviccedilo A informaccedilatildeo visualizada eacute

apenas a necessaacuteria em cada visualizaccedilatildeo e instanciaccedilatildeo

Modelo personalizaacutevel com acccedilotildees como ocultar ou visualizar paineacuteis de

informaccedilatildeo lista de todos os pedidos listagem por Template por Serviccedilo layout de

toda a interface do menu em aacutervore um simples clique e toda o portal fica

personalizaacutevel a um determinado utilizador

Disponibilizaccedilatildeo de todas as acccedilotildees possiacuteveis a cada recurso na tab respectiva

da visualizaccedilatildeo da informaccedilatildeo associada a esse recurso Acccedilotildees acessiacuteveis e raacutepidas

de executar sem menus e submenus com sucessivos cliques que soacute atrasam todo o

processo A acessibilidade aos recursos eacute completa com acccedilotildees de grupo e acccedilatildeo

individuais a cada recurso permitindo assim o verdadeiro aproveitamento de todo o

Serviccedilo criado

Uma informaccedilatildeo hierarquizada e organizada em agrupamentos loacutegicos por

recursos eacute um processo muito faacutecil de seguir e perceber associada a esta

5

disponibilizaccedilatildeo de informaccedilatildeo acccedilotildees que possam ser executadas nesses recursos eacute

o objectivo da simplicidade e performance deste modelo

15 Resumo

Neste capiacutetulo fez-se uma descriccedilatildeo e contexto introdutoacuterio de conceitos como

Virtualizaccedilatildeo Cloud Computing e HP CloudSystem Matrix onde se descreveram as

mais-valias do uso destas tecnologias vantagens e inconvenientes e os papeacuteisfunccedilotildees

dos principais interlocutores Descreveram-se os objectivos desta dissertaccedilatildeo um

framework que solucione e melhore os problemas existentes em modelos

implementados actualmente Foi igualmente descrita toda a organizaccedilatildeo das diferentes

secccedilotildees e por ultimo as contribuiccedilotildees tidas no presente trabalho

6

2 Virtualizaccedilatildeo

21 Evoluccedilatildeo histoacuterica

Os primeiros passos da virtualizaccedilatildeo foram dados aproximadamente haacute meio seacuteculo e

tiveram origem em preocupaccedilotildees como heterogeneidade portabilidade estabilidade e

utilizaccedilatildeo mais eficiente de recursos Tudo comeccedilou na IBM com a sua longa lista de

variantes de uma dada arquitectura-base com as novas geraccedilotildees incompatiacuteveis com as

anteriores com muacuteltiplos SOs (mono-utilizador interactivo batch timesharing etc)

criando insatisfaccedilatildeo nos clientes Como resposta IBM lanccedilou nos anos 60 a

arquitectura 360 com suporte para virtualizaccedilatildeo (ao niacutevel do hardware) e com o

sistema de operaccedilatildeo CPCMS O CP (Control Program) era usado para gerir as VMs

e que executavam o CMS (Console Monitor System) um SO interactivo com uma

interface ldquolinha de comandordquo

Por outro lado um outro tipo de virtualizaccedilatildeo dito virtualizaccedilatildeo de aplicaccedilotildees

procura que uma aplicaccedilatildeo possa ser executada numa variedade de plataformas

distintas que apenas tecircm em comum o sistema de run-time que implementa a VM (natildeo

requer que uma VM seja ldquototalmenterdquo equivalente a uma maacutequina fiacutesica e portanto

capaz de executar um SO) Tal eacute o caso da JVM (Java Virtual Machine) capaz de

executar aplicaccedilotildees desenvolvidas na linguagem Java (nascida em 1990 de um

projecto denominado ldquoStealthrdquo da Sun Microsystems)

A implementaccedilatildeo desta tecnologia tatildeo bem aceite e cada vez mais usada nas

organizaccedilotildees demonstra a mais-valia das propriedades que caracterizam o seu

funcionamento

Isolamento Os processos das diferentes maacutequinas virtuais natildeo podem

interferir entre si ou seja um processo de uma VM natildeo pode interferir

noutra VM nem sequer no proacuteprio sistema hospedeiro (host) que suporta

toda a virtualizaccedilatildeo

Inspecccedilatildeo O gestor de maacutequinas virtuais (Virtual Machine Manager -

VMM) ou hipervisor deve ter acesso e controlo sobre todas as VMs e ateacute

sobre todos os seus processos

Interposiccedilatildeo O VMM deve poder interagir com as VMs controlar as suas

operaccedilotildees ter acesso ao fluxo de instruccedilotildees maacutequina que estas executam e

remover adicionar ou alterar essas instruccedilotildees se for necessaacuterio

Eficiecircncia As instruccedilotildees natildeo privilegiadas devem poder ser executadas

directamente no hardware sem interposiccedilatildeo do VMM

Gestatildeo O VMM deve natildeo soacute permitir manipular uma VM isoladamente

mas tambeacutem executar uma operaccedilatildeo de uma soacute vez sobre muacuteltiplas VMs

Compatibilidade de software A virtualizaccedilatildeo simula uma determinada

plataforma (real) e desse modo todo o software disponiacutevel para essa

plataforma deve poder ser executado ldquotal como estaacute (original)rdquo numa VM

7

Desempenho A sobrecarga (overhead) da camada extra de software pode

sacrificar o desempenho do sistema hospedado (guest) mas a relaccedilatildeo

custobenefiacutecios do uso da virtualizaccedilatildeo deve ser francamente positiva

O Anexo A descreve mais detalhadamente as vantagens e inconvenientes da

virtualizaccedilatildeo

22 Virtualizaccedilatildeo de Servidores

O dinamismo do triacircngulo existente entre fornecedores de software hardware e seus

clientes eacute uma constante Fornecedores como a VMware e a Microsoft publicitam as

suas soluccedilotildees de virtualizaccedilatildeo destacando as mais-valias como a utilizaccedilatildeo eficiente

de recursos partilhados gestatildeo centralizada e migraccedilatildeo dinacircmica os fornecedores de

hardware publicitam menores consumos de energia e maior interoperabilidade e

suporte as organizaccedilotildees olham para este mundo com o objectivo uacuteltimo da eficiecircncia

produtividade e custos A virtualizaccedilatildeo aparece como uma forma eficaz de fazer mais

com menos investimento

A primeira razatildeo pela qual se torna muito interessante executar muacuteltiplas VMs

num uacutenico servidor eacute a mesma pela qual executamos muacuteltiplas aplicaccedilotildees num uacutenico

servidor os recursos estariam se natildeo o fizeacutessemos muito subaproveitados Sendo

assim porque natildeo executar simplesmente muacuteltiplas aplicaccedilotildees no servidor usando um

soacute SO Podemos avanccedilar desde jaacute com uma razatildeo simples os fornecedores certificam

os seus produtos aplicaccedilotildees e serviccedilos apenas para determinados ambientes e pilhas

de software vejamos alguns exemplos 1) a Microsoft natildeo certifica configuraccedilotildees

MSCS (Microsoft Cluster Server) que incluam o serviccedilo Active Domain num dos noacutes

dos cluster 2) a VMware disponibiliza o seu produto de gestatildeo vCenter Server sobre

Unix (SUSE Linux) na forma de uma appliance fornecida pela proacutepria VMware

Assim se dispusermos de um servidor que tem os recursos apropriados para suportar

um noacute MSCS e uma instacircncia vCenter teremos de os instalar sob a forma duas VMs a

correrem sob um hipervisor instalado nesse servidor Uma outra situaccedilatildeo que ldquoobrigardquo

(do ponto de vista financeiro) agrave utilizaccedilatildeo de VMs eacute a de aplicaccedilotildees legacy uma

aplicaccedilatildeo antiga (e eacute demasiado oneroso actualizaacute-la) estaacute certificada apenas para uma

dada versatildeo de SO tambeacutem antigo que natildeo possui drivers adequados para os

servidores mais actuais sendo que o servidor antigo jaacute natildeo tem capacidade para

executar a aplicaccedilatildeo (e eacute muito oneroso mantecirc-lo) Uma soluccedilatildeo simples eacute instalar um

hipervisor num servidor recente criar uma VM e nela instalar a versatildeo antiga do SO

e a aplicaccedilatildeo

A arquitectura da virtualizaccedilatildeo estaacute descrita no Anexo B e os Tipos de

Implementaccedilatildeo no Anexo C uma leitura ajuda a perceber todos estes conceitos e

tecnologias que se seguem

Actualmente o nuacutemero de tecnologias disponiacuteveis para implementaccedilatildeo e

gestatildeo de maacutequinas virtuais tem vindo a crescer destacando-se algumas pela

8

disponibilizaccedilatildeo de um conjunto de ferramentas que as tornam vencedoras nos

mercados Seguem-se quatro exemplos das empresas (e suas tecnologias) que mais se

destacam hoje em dia

VmWare Inc VmWare Player Workstation Fusion ESXi

Citrix Systems Inc XenServer

Hewlett-Packard HP Integrity Virtual Machines

Microsoft Virtual PC Hyper-V

221 VMware (VMware Inc)

O VMware apresenta-se como uma plataforma liacuteder (80) no mercado da

virtualizaccedilatildeo com uma tecnologia de virtualizaccedilatildeo do tipo 1 (virtualizaccedilatildeo completa

tambeacutem designada nativa ou bare metal) Oferece um vasto leque de produtos desde

os hipervisores para desktops e laptops (VMware PlayerWorkstationFusion) aos

para servidores de grande porte (VMware vSphere ESXi) e ainda um vasto conjunto

de software de gestatildeo de VMs orquestraccedilatildeo de operaccedilotildees Cloud IaaS etc

De todos os produtos da VMware interessa-nos destacar aqui apenas a

tecnologia de virtualizaccedilatildeo ESXi oferecida para servidores que descrevemos em

seguida muito sucintamente

VMware vSphere ESXi Eacute uma VMM ou hipervisor tipo 1 garantindo um

elevado niacutevel de isolamento entre os recursos oferecidos agraves VMs sejam

estes o processador memoacuteria discos ou adaptadores de rede Eacute instalado

directamente sobre o hardware do servidor eliminando assim a

sobrecarga de ter um SO standard sobre o qual corre um hipervisor os

hipervisores de tipo 1 exibem portanto melhor desempenho e aumentam

a seguranccedila O facto de permitir que tudo seja virtualizado torna a VM

ainda mais completa O pacote inclui apenas o hipervisor ESXi e

ferramentas baacutesicas de gestatildeo

A forma como as instruccedilotildees do sistema hospedado (guest) satildeo executadas num

ambiente ESXi pode ser descrita com ajuda da figura 4 [8] 1) as instruccedilotildees oriundas

de aplicaccedilotildees que se executam sobre o SO hospedado satildeo executadas directamente no

processador real 2) as instruccedilotildees oriundas do proacuteprio SO hospedado satildeo verificadas

antes de serem executadas sendo que as privilegiadas satildeo traduzidas ou modificadas

para comandos ou instruccedilotildees do proacuteprio hipervisor uma teacutecnica que eacute denominada

como ldquoTraduccedilatildeo Binaacuteriardquo

Esta teacutecnica complementada com outras teacutecnicas de ldquoaceleraccedilatildeordquo de

operaccedilotildees sobre IO memoacuteria e de gestatildeo de recursos entre VMs fazem com que a

VMware consiga atingir desempenhos muito proacuteximos de um ambiente nativo ie

natildeo virtualizado

9

Figura 4 - Arquitectura VMware ESXi (Tipo-1)

Na versatildeo vSphere para servidores de grande porte estatildeo disponiacuteveis muitas

funcionalidades [9] como a migraccedilatildeo automaacutetica de VMs (balanceamento de carga)

a alta disponibilidade para vCenter (suportada pelo vCenter Server Heartbeat) a

recuperaccedilatildeo de destastres (Site Recovery Manager)

Para maiores detalhes e restriccedilotildees da VMware consultar o Anexo D [1011]

222 Xen (Citrix Systems Inc)

O XenServer eacute a plataforma de virtualizaccedilatildeo da Citrix baseada no hipervisor Xen a

versatildeo base designada Standard eacute gratuita e oferece para aleacutem do hipervisor

ferramentas como o XenCenter uma consola de gestatildeo para muacuteltiplos servidores e o

XenMotion para migraccedilatildeo ldquoin vivordquo de VMs

O hipervisor Xen na sua mais recente versatildeo eacute uma tecnologia de

virtualizaccedilatildeo do tipo 1 instalada num nuacutecleo Linux (x86 x86-64 ou IA-64 SUSE

Linux) que permite a criaccedilatildeo de vaacuterias VMs com recursos e aplicaccedilotildees partilhadas

Contrariamente ao VMware natildeo usa a traduccedilatildeo binaacuteria mas uma combinaccedilatildeo de

paravirtualizaccedilatildeo [12] (eliminando a latecircncia no desempenho introduzida pela

traduccedilatildeo binaacuteria) e virtualizaccedilatildeo assistida por hardware [13] Na paravirtualizaccedilatildeo a

maacutequina abstracta eacute quase mas natildeo completamente igual ao hardware hospedeiro

por isso o SO hospedado (guest) tem de ser modificado Como tal soacute eacute possiacutevel para

SOs disponiacuteveis em coacutedigo aberto o Xen executa os outros (eg Windows)

recorrendo a uma combinaccedilatildeo da paravirtualizaccedilatildeo com a virtualizaccedilatildeo assistida por

hardware oferecida nos processadores Intel (Intel-VT) e AMD (AMD-V)

Na arquitectura XenServer figura 5 existe uma VM privilegiada para controlo

do hipervisor denominada ldquoDom0rdquo esta VM eacute parte integrante do ambiente

10

XenServer executa uma versatildeo paravirtualizada do Linux e conteacutem os drivers dos

dispositivos disponiacuteveis no sistema As outras VMs satildeo os ldquoDomUsrdquo (domiacutenios do

utilizador) Nesta arquitectura os DomUs comunicam directamente com o hipervisor

que controla a memoacuteria e o processador do hospedeiro e se usam paravirtualizaccedilatildeo

comunicam com o Dom0 para operaccedilotildees de IO

Figura 5 - Arquitectura XenServer

O Anexo E descreve os detalhes da plataforma e restriccedilotildees da Citrix [1014]

223 Integrity VM (HP)

HP Integrity Virtual Machines (Integrity VM ou HPVM) eacute uma tecnologia de

virtualizaccedilatildeo do tipo 1 instalada num servidor da linha Integrity IA-64 com o sistema

de operaccedilatildeo HP-UX 11i v3

A gestatildeo do hipervisor eacute efectuada com a ferramenta HP Integrity Virtual

Machines Manager (HPVMMGR) mas tambeacutem eacute possiacutevel gerir os proacuteprios sistemas

hospedados desde que nestes sejam instalados os agentes HPVirtualMachine e

HPVSwitch Esta ferramenta apresenta benefiacutecios como flexibilidade e maximizaccedilatildeo

dos recursos do servidor consolidaccedilatildeo de servidores organizacionais rapidez na

implementaccedilatildeo e disponibilizaccedilatildeo de novos ambientes permite a migraccedilatildeo online e

offline isolamento de VMs oferece alta disponibilidade monitoriza automaticamente

todas as aplicaccedilotildees e permite a visualizaccedilatildeo e configuraccedilatildeo simplificada com

ferramentas como HP Integrity Virtual Machines Manager (HPVMMGR) System

Management Home (HPSMH) e HP Virtualization Manager (HPVMAN)

O Anexo F descreve os detalhes e restriccedilotildees Integrity Virtual Machines da HP

[10]

11

224 Hyper-V (Microsoft)

O Hyper-V eacute uma tecnologia de virtualizaccedilatildeo do tipo 1 da Microsoft para servidores

x86-64 com suporte agrave virtualizaccedilatildeo assistida por hardware O produto eacute

disponibilizado de forma isolada (standalone) ou integrado em versotildees Windows

Server (2008 R2 ou 2012)

A gestatildeo do ambiente virtual eacute efectuada com a ferramenta System Center

Virtual Machine Manager (SCVMM) que fornece 3 formas distintas de interactuar

com o hipervisor consola de administraccedilatildeo portal self-service (para utilizadores

finais) e Windows PowerShell (usando commandlets)

Na arquitectura Hyper-V [15] figura 6 existem dois tipos de particcedilatildeo 1) a

ldquoparticcedilatildeo pairdquo uma VM de administraccedilatildeo de todo o sistema com um Windows

Server 2008 2008 R2 ou 2012 drivers de acesso e controlo do hardware e

ferramentas de gestatildeo 2) as particcedilotildees filhas nas quais satildeo criadas as restantes VMs

completamente isoladas e sem acesso directo ao hardware No acesso ao hardware haacute

3 componentes importantes a mencionar a) o VSP (Virtual Service Provider)

responsaacutevel por receber as chamadas das particcedilotildees filhas e aceder aos drivers dos

perifeacutericos b) VSC (Virtual Service Client) um moacutedulo instalado no SO hospedado

que solicita via VMBus o acesso aos perifeacutericos da particcedilatildeo pai c) o VMBus canal

de comunicaccedilatildeo entre VSC e VSP onde se desenrolam as comunicaccedilotildees entre as

particcedilotildees

Figura 6 - Arquitectura Hyper-V

A Microsoft apresenta-nos na recente versatildeo Hyper-V 2012 uma panoacuteplia de

funcionalidades que a colocam na primeira linha das soluccedilotildees de virtualizaccedilatildeo a par

da VMware migraccedilatildeo online e replicaccedilatildeo de VMs migraccedilatildeo de armazenamento e

Clustering

O Anexo D descreve os detalhes as restriccedilotildees do Hyper-V da Microsoft

[101617]

12

23 Virtualizaccedilatildeo do Armazenamento

Haacute muito que o armazenamento passou a ser um toacutepico de ldquoprimeira classerdquo tal como

ldquoa rederdquo Para tal contribuiu significativamente a introduccedilatildeo de tecnologias tais como

o RAID (Redundant Array of Independent Disks) [18] que promoveram o

desempenho eou a toleracircncia a faltas a (comparativamente) baixo custo ndash note-se que

no artigo original de Patterson o I significava Inexpensive Com a introduccedilatildeo do

RAID rapidamente apareceram os armaacuterios de discos (disk arrays) externos ao

ldquosistemardquo e uma vez que o protocolo SCSI suportava a interligaccedilatildeo de discos

(Logical Units) a muacuteltiplos adaptadores e daiacute a muacuteltiplos sistemas o conceito de

rede de armazenamento aparece naturalmente

Como se mostra na figura 7 o disco loacutegico aparece como uma forma

elementar de virtualizaccedilatildeo jaacute que ldquoaglutinardquo elementos de diferentes discos fiacutesicos

mas eacute apresentado ao sistema como um uacutenico disco ndash ao ponto de ser impossiacutevel ao

proacuteprio sistema de operaccedilatildeo distingui-lo de um disco fiacutesico

Figura 7 - Redundant Array Independent Disks (RAID)

Numa rede de armazenamento que interliga vaacuterios armaacuterios de discos e

servidores (hosts) os primeiros oferecem volumes (ou discos loacutegicos) acessiacuteveis por

identificadores uacutenicos e os segundos tomam posse desses volumes (tipicamente cada

host tem uso exclusivo de um ou mais volumes) e formatam-nos neles instalando

sistemas de ficheiros (eg ext3 XFS NTFS) que depois usam da forma mais

conveniente Este conceito de rede de armazenamento eacute conhecido como SAN ndash

Storage Area Network figura 8

A forma mais comum de SAN usa uma infra-estrutura Fibre Channel (FC) o

que significa que tanto hosts como disk arrays possuem interfaces FC e na rede

existem comutadores (switches) FC aos quais hosts e arrays (e eventualmente outros

switches) se interligam Uma outra tecnologia que pode ser usada em SANs eacute a

Ethernet neste caso hosts disk arrays e switches tecircm interfaces Ethernet e o

protocolo de transporte usado eacute FCoE (Fibre Channel over Ethernet) A figura

seguinte mostra-se um ambiente que inclui simultaneamente uma outra tecnologia de

ldquotransporterdquo ISCSI e uma ldquozonardquo FC

13

Figura 8 - Storage Area Network (SAN)

Se bem que a relaccedilatildeo volumehost de um-para-um seja de longe a mais

frequente tambeacutem eacute possiacutevel estabelecer uma relaccedilatildeo de um-para-muitos na qual um

volume eacute detido de forma partilhada por muacuteltiplos hosts tal situaccedilatildeo implica

necessariamente o uso de sistemas de ficheiros (SF) especializados conhecidos como

shared-disk file systems Como exemplo indica-se o GFS [19] GPFS [20] e VMFS

[21] este uacuteltimo desenvolvido especificamente para armazenar VMs Num SF para

discos partilhados todos os hosts que partilham um dado volume tecircm uma visatildeo

coerente do estado do volume Em situaccedilotildees de toleracircncia a faltas esta arquitectura de

discos partilhados eacute muito apeteciacutevel pois em caso de falha de um host um dos

restantes inicia uma recuperaccedilatildeo (ao estilo de um sistema transaccional) das uacuteltimas

operaccedilotildees e rapidamente o SF regressa a um estado coerente

Figura 9 - Network Attached Storage (NAS)

Uma outra forma completamente distinta de armazenar informaccedilatildeo eacute usar um

SF distribuiacutedo neste caso natildeo haacute partilha de discos fiacutesicos mas sim de ficheiros

sendo que um host pode deter apenas parte da aacutervore do SF (eg AFS) ou nos SFs

distribuiacutedos com arquitectura clienteservidor um host dito cliente dispotildee de um

14

moacutedulo que lhe permite aceder ao SF remoto de um outro host dito servidor (eg

NFS e CIFS) como se o SF remoto fosse local

231 Armazenamento em ambientes virtualizados

Quando se aborda o armazenamento em ambientes virtualizados satildeo de considerar os

seguintes aspectos a) como representar a arquitectura de uma VM propriamente dita

(quanta memoacuteria e CPUs tem qual o chipset utilizado que adaptadores ndash de LAN

SAN graacuteficos ndash possui etc) b) como representar um disco acessiacutevel agrave VM e c)

como armazenar conteuacutedos (volaacuteteis ou natildeo) de componentes da VM tais como a

memoacuteria RAM e a memoacuteria natildeo volaacutetil NVRAM que conteacutem o BIOS

A soluccedilatildeo adoptada pelo hipervisor VMware ESXi2 eacute a seguinte a) a

representaccedilatildeo da arquitectura eacute efectuada em XML que possui as informaccedilotildees de

configuraccedilatildeo b) um disco acessiacutevel agrave VM eacute representado ou por um ficheiro que

virtualiza o proacuteprio disco ou por um ficheiro que ao estilo de uma ligaccedilatildeo simboacutelica

descreve o caminho para um disco real e finalmente c) tais conteuacutedos satildeo

armazenados em ficheiros Isto eacute tudo eacute representado por ou via ficheiros

A pergunta que se segue eacute oacutebvia onde armazenar esses ficheiros E a

resposta evidente num repositoacuterio (datastore na terminologia da VMware) gerido

pelo hipervisor onde uma VM aparece como um pasta e os seus componentes como

ficheiros no interior dessa pasta como se mostra na figura 10

Figura 10 - Datastore e VMs

O VMware ESXi suporta armazenamento em sistema de ficheiros VMFS

(sobre discos) ou NFS no caso do VMFS os discos podem ser internos ao servidor

ou podem estar numa SAN

Sistema de Ficheiros VMFS

O VMFS (Virtual Machine File System) eacute um sistema de ficheiros em cluster

e foi optimizado para armazenar grandes ficheiros e realizar operaccedilotildees de entrada e

2 Para uma comparaccedilatildeo entre o VMware ESXi e o Citrix Xen ver Anexo H

15

saiacuteda (IO) com que movimentam grandes volumes de dados Os dois servidores

figura 11 tecircm portanto uma visatildeo coerente do datastore e das VMs nele existentes

por isso eacute quando comparamos esta arquitectura com uma na qual cada servidor tem

a sua datastore muito mais simples e eficiente mover uma VM activa de um servidor

para o outro jaacute que apenas as paacuteginas modificadas residentes em memoacuteria tecircm de ser

copiadas (o resto estaacute no SF partilhado)

Figura 11 - Sistema de Ficheiros VMFS

Network File System

Nos casos em que os datastores residem num sistema de ficheiros NFS [22] os

servidores ESXi podem tambeacutem partilhar o mesmo datastore como se vecirc na figura

12 assim a movimentaccedilatildeo de VMs entre servidores por razotildees de equiliacutebrio de

cargas ou de manutenccedilatildeo de um ou outro servidor tambeacutem satildeo muito eficientes

Figura 12 - Network File System (NFS)

Para concluir note-se que se abrem nos ambientes virtualizados duas

oportunidades muito importantes quando um disco virtual eacute realizado sob a forma de

ficheiro a) a potencial poupanccedila de espaccedilo e b) a possibilidade de implementar com

facilidade uma teacutecnica de snapshots No primeiro caso conhecido como thin

provisioning referimo-nos agrave possibilidade de usar um ficheiro esparso para atribuir

um espaccedilo loacutegico de endereccedilamento ao disco (ficheiro) muito superior ao espaccedilo de

16

facto ldquoconsumidordquo pelo ficheiro no SF No segundo usando um mecanismo de

versotildees baseado em teacutecnicas de copy-on-write armazenar snapshots da VM em

determinados instantes e para usar como mecanismo de recuperaccedilatildeo do estado em

caso de ldquofalhardquo

24 Virtualizaccedilatildeo da Rede

A virtualizaccedilatildeo eacute algo mais que consolidaccedilatildeo de servidores - CPU memoacuteria e

armazenamento depois de analisada toda a infra-estrutura de suporte a uma

implementaccedilatildeo desta natureza torna-se evidente a ideia simplista desse triacircngulo A

infra-estrutura de rede virtual funciona como ligaccedilatildeo de componentes nessa

plataforma ligaccedilotildees virtuais atraveacutes dos controladores de rede virtual (Virtual

Network Interface Card - vNIC3) ligaccedilotildees fiacutesicas com os adaptadores fiacutesicos

(Physical Network Interface Card - pNIC) comutadores virtuais (vSwitch) para essas

ligaccedilotildees etc uma vasta lista de software e hardware responsaacuteveis pela comunicaccedilatildeo

de todos os componentes dos pares VMVM VMservidor e servidorservidor [23]

Numa infra-estrutura de rede tradicional figura 13 cada servidor tem uma ou

mais placas de rede (NIC) para comunicaccedilatildeo com os restantes

Figura 13 - Infra-estrutura de rede tradicional

Como sabemos um hipervisor eacute responsaacutevel pela abstracccedilatildeo do hardware

oferecido agraves VMs e na visatildeo de uma VM este hardware (virtual) de que dispotildee eacute

seu e eacute completo desconhecendo que esse hardware possa estar a ser partilhado com

outras VMs ou que eventualmente nem exista A interface virtual de rede (vNIC)

figura 14 natildeo possui qualquer componente fiacutesico eacute apenas software contudo ela

exibe as mesmas propriedades de uma placa fiacutesica incluindo um endereccedilo MAC

(IEEE 802-2001 Standard) Uma vNIC eacute ligada a uma outra abstracccedilatildeo o vSwitch

sendo que este pode comutar traacutefego que flui apenas no interior do servidor que

alberga as VMs ou estar associado a uma (ou mais para redundacircncia eou aumento

da largura de banda) placa de rede fiacutesica (pNIC)

3 Mais uma vez seguimos aqui a terminologia da VMware por simplicidade

17

Figura 14 - Infra-estrutura de rede virtual

Nesta infra-estrutura natildeo existe o limite associado agrave velocidade da placa de

rede mas sim associado agrave largura de banda (LB) da memoacuteria facilmente se

depreende tambeacutem que toda a rede entre VMs hospedadas num servidor natildeo

contribui para o congestionamento da rede fiacutesica (entre servidores) Contudo o

administrador pode impor quotas na utilizaccedilatildeo de recursos por exemplo na LB da

vNIC

Os vSwitch tecircm todas as funcionalidades de um switch real suportam

agregaccedilatildeo de traacutefego (IEEE 802ad) VLANs (IEEE 8021Q) etc Nesse sentido a

virtualizaccedilatildeo comeccedila a ir contra-corrente no que deveria ser o simplificar a

administraccedilatildeo de uma infra-estrutura pois o administrador de redes tem agora de

administrar os switches reais e ainda os virtuais

Figura 15 - vNetwork Distributed Switch ndash vDS

Para resolver este problema a VMware propotildee (figura 15) um switch virtual

distribuiacutedo (vNetwork Distributed Switch ndash vDS) [23] que representa a agregaccedilatildeo de

vaacuterios switchs virtuais de diferentes servidores ocultando as camadas inferiores e

oferecendo um suporte de rede uniforme que simplifica entre outras a administraccedilatildeo

da rede as migraccedilotildees de VMs e o desempenho ndash por exemplo ao associar um vDS a

18

muacuteltiplas pNICs o hipervisor pode de forma automaacutetica alterar a loacutegica de

encaminhamento de pacotes para redistribuir o traacutefego entre as pNICs aumentado o

desempenho e minimizando as falhas

Na infra-estrutura de rede virtualizada os aspectos relativos agrave seguranccedila dessa

rede satildeo tambeacutem contemplados sendo apresentadas soluccedilotildees de inspecccedilatildeo de fluxos

de pacotes como eacute o caso dos Distributed Virtual Filter (DVFilter) [23] apresentado

na figura 16

Figura 16 - Distributed Virtual Filter (DVFilter)

25 Resumo

Neste capiacutetulo fez-se uma breve descriccedilatildeo histoacuterica para enquadramento do restante

capiacutetulo A virtualizaccedilatildeo de servidores aparece como nuacutecleo central nas suas quatro

plataformas de virtualizaccedilatildeo que considerei mais importantes ESXi (VMware Inc)

XenServer (Citrix Systems Inc) HP Integrity Virtual Machines (Hewlett-Packard) e

o Hyper-V (Microsoft) Foram tambeacutem abordadas tecnologias na aacuterea da virtualizaccedilatildeo

de armazenamento em conceitos como RAID SAN NAS e nos ambientes

virtualizados VMFS e NFS Tambeacutem a virtualizaccedilatildeo de rede natildeo foi descurada e

nesse intuito foram abordados conceitos como vNIC pNIC VLANs vNetwork

Distributed Switch e Distributed Virtual Filter

19

3 Computaccedilatildeo na Cloud

Como anteriormente referimos o uso crescente de Tecnologias de Informaccedilatildeo (TI) nas

organizaccedilotildees leva geralmente a uma proliferaccedilatildeo de servidores fiacutesicos o que as obriga

mais cedo ou mais tarde a adoptar estrateacutegias de consolidaccedilatildeo de servidores com a

consequente reduccedilatildeo de custos de hardware e energia Resolvidas estas questotildees restam

contudo outras - o uso de virtualizaccedilatildeo natildeo reduz por si soacute o esforccedilo de administraccedilatildeo

das infra-estruturas nem resolve problemas de disponibilidade desempenho seguranccedila

etc que satildeo questotildees que nem todas as organizaccedilotildees querem ou estatildeo aptas a resolver

preferindo por vezes que ldquoalgueacutemrdquo assuma esta responsabilidade

A Computaccedilatildeo na Cloud (CC) apresenta-se assim como uma sequecircncia de passos

nesse sentido cada um correspondendo a um modelo de serviccedilo (ver em 32) e resolvendo

mais uma ldquofatiardquo dos problemas enunciados A CC eacute actualmente associada a palavras

chave como padronizaccedilatildeo automatizaccedilatildeo velocidade disponibilidade elasticidade

acesso global e agrave ideia de usar um conjunto de recursos partilhados As organizaccedilotildees

podem entatildeo preocupar-se essencialmente com as melhorias operacionais e para isso

procuram soluccedilotildees que possibilitem uma afectaccedilatildeo (e posteriormente libertaccedilatildeo) de

recursos de forma raacutepida e automaacutetica

ldquoCloud computing is a model for enabling ubiquitous convenient on-demand network access

to a shared pool of configurable computing resources (eg networks servers storage

applications and services) that can be rapidly provisioned and released with minimal

management effort or service provider interactionrdquo

The NIST Definition of Cloud Computing [Online] Available

httpwwwnistgovitlcsdcloud-102511cfm

31 Periacutemetro de uma cloud

Designamos por periacutemetro (ou modelo de implantaccedilatildeo) de uma cloud a forma como

caracterizamos o conjunto dos utilizadores com acesso aos serviccedilos dessa cloud

Nesta secccedilatildeo apresentamos apenas os trecircs tipos mais comuns deixando de fora outros

como as clouds partilhadas e federadas

Clouds Privadas

Ambientes construiacutedos exclusivamente para os utilizadores de uma uacutenica

organizaccedilatildeo Nesta tipologia os recursos (infra-estrutura e aplicaccedilotildees) satildeo totalmente

detidos pela organizaccedilatildeo podendo ser administrados pela proacutepria organizaccedilatildeo por

terceiros ou ainda pela combinaccedilatildeo das duas entidades A infra-estrutura estaacute

normalmente instalada num data center privado e as maiores preocupaccedilotildees satildeo

geralmente a garantia de disponibilidade e o desempenho dos serviccedilos e aplicaccedilotildees

20

Clouds Puacuteblicas

Ambientes construiacutedos para oferecer serviccedilos quer a utilizadores individuais

quer a organizaccedilotildees Nesta tipologia a infra-estrutura eacute geralmente detida pela

organizaccedilatildeo que comercializa os referidos serviccedilos que satildeo tipicamente cobrados na

forma ldquopay-per-userdquo As maiores preocupaccedilotildees da entidade gestora satildeo garantir a

privacidade e a seguranccedila (note-se que os ldquoutilizadoresrdquo podem de facto ser

administradores dos servidores que detecircm e podem instalar software) o isolamento

entre recursos detidos por utilizadores distintos e ainda assim garantir bom

desempenho dos serviccedilos e aplicaccedilotildees

Clouds Hiacutebridas

As clouds hiacutebridas representam a junccedilatildeo de dois modelos de cloud privada e

puacuteblica Este modelo eacute normalmente implantado em organizaccedilotildees que tecircm picos de

trabalho que por uma ou outra razatildeo natildeo podem suportar na sua cloud privada e

nessas alturas a ldquoelasticidaderdquo eacute usada para aprovisionar recursos de uma cloud

puacuteblica

32 Modelos de serviccedilo

Existem trecircs modelos base de serviccedilos de Cloud Computing que podem ser oferecidos

agraves organizaccedilotildees e que se diferenciam pelas configuraccedilotildees e responsabilidades do

provedor de serviccedilos figura 17

IaaS (Infrastructure as a Service)

No modelo ldquoinfra-estrutura como serviccedilordquo o provedor oferece ao consumidor

uma infra-estrutura de processamento e armazenamento com a configuraccedilatildeo que se

adequa agraves suas necessidades o cliente natildeo tem assim necessidade de adquirir

servidores racks software e ateacute mesmo espaccedilo fiacutesico Satildeo exemplos de provedores

puacuteblicos IaaS a Amazon EC2 [2] e o GoGrid [3] jaacute o Eucalyptus [4] o vCloud (da

VMware) e o HP CloudSystem Matrix satildeo exemplo de produtos software para a

criaccedilatildeo de clouds privadas

PaaS (Platform as a Service)

No modelo ldquoplataforma como serviccedilordquo o provedor disponibiliza plataformas

computacionais completas (incluindo naturalmente a infra-estrutura computacional)

para os utilizadoresconsumidores dessas plataformas integrarem as suas aplicaccedilotildees

(existentes ou a desenvolver) sendo que estas seratildeo posteriormente disponibilizadas

na cloud Como exemplo indicam-se as plataformas LAMP (Linux Apache MySQL

PHP) Google AppEngine [5] e Microsoft Azure [6]

21

SaaS (Software as a Service)

Neste modelo o provedor disponibiliza ao cliente final uma aplicaccedilatildeo pronta-

a-usar como exemplos mencionam-se as Google Apps [7] Google Docs e Microsoft

SharePoint Online Este eacute o paradigma cloud por excelecircncia utilidade facilidade

(interacccedilatildeo via browser) disponibilidade e por vezes ateacute alguma capacidade de

personalizaccedilatildeo

Figura 17 - Relaccedilatildeo entre serviccedilos e responsabilidades

Associados agrave CC vaacuterios modelos ldquoAs a Servicerdquo tecircm surgido para responder

agraves necessidades das organizaccedilotildees contudo todos acabam por ser enquadrados nos

trecircs tipos base (Infra-estrutura Plataforma e Software) de acordo com os serviccedilos que

disponibilizam

ldquoDatabase As A Service (DBaaS or DaaS) Network As A Service (NaaS) DataCenter As A

Service (DCaaS) Storage As A Service (StoraaS) Everything As A Service (EaaS) Data As

A Service (DaaS) Security As A Service (SecaaS) Computing As A Service (CaaS) Desktop

As A Service (VDI) Voice As A Service (VaaS) Communication As A Service (ComaaS)

Testing As A Service (TaaS) Backup As A Service (BaaS) Monitoring As A Service

(MaaS) Recovery As A Service (RaaS) Content Delivery Network As a Service (CDNaaS)

Application As A Service (AaaS) Business Intelligence As A Service (BIaaS) etcrdquo

Cloud9IDE [Online] Available httpsc9io

As relaccedilotildees entre os modelos IaaS PaaS e SaaS satildeo hieraacuterquicas como se

pode observar na figura 18 que ainda ilustra os papeacuteis do provedor de serviccedilos

equipas de desenvolvimento e utilizadores finais Como se observa o IaaS fornece

recursos de hardware e software ao PaaS e SaaS o PaaS oferece ferramentas para

desenvolvimento ao SaaS e por fim o SaaS executa e disponibiliza aplicaccedilotildees aos

utilizadores finais

22

Figura 18 - Relaccedilotildees e papeacuteis dos envolventes nos modelos de Cloud Computing

33 Resumo

O presente capiacutetulo descreve a tecnologia de Computaccedilatildeo na Cloud (Cloud

Computing) vantagens do seu uso e conceitos tais como periacutemetro (onde se

enquadram designaccedilotildees como Clouds Privadas e Puacuteblicas passando pelas Hiacutebridas) e

modelos de Serviccedilo IaaS PaaS e SaaS sendo o IaaS o foco desta dissertaccedilatildeo

A virtualizaccedilatildeo apresenta-se como a tecnologia chave de todo este processo

ela desempenha e continuaraacute a desempenhar um papel indispensaacutevel para que os

prestadores de serviccedilo continuem a oferecer ambientes de CC que permitem um

dimensionamento correcto e economicamente ajustado das infra-estruturas de TI

oferecendo ainda funcionalidades como gestatildeo centralizada disponibilidade e

seguranccedila

23

4 HP Cloud Stack

O OpenStack eacute presentemente um consoacutercio que inclui entidades como a ATampT HP

IBM Rackspace Red Hat Suse etc fortemente empenhadas na computaccedilatildeo na cloud e

que tecircm por objectivo colocar no mercado uma implementaccedilatildeo ubiacutequa para clouds tanto

puacuteblicas como privadas e uma pilha de software em coacutedigo aberto que suporta

heterogeneidade (por exemplo nos hipervisores) e uma enorme riqueza em recursos (de

computaccedilatildeo armazenamento e interligaccedilatildeo)

O OpenStack promove uma arquitectura comum ou seja um framework que eacute

extensiacutevel e permite que terceiros (incluindo os parceiros do consoacutercio) ampliem as suas

funcionalidades quer por via de desenvolvimentos adicionais quer por integraccedilatildeo de

produtos jaacute existentes embora a pilha-base jaacute permita por meio de portais quer a

administraccedilatildeo das pools de computaccedilatildeo armazenamento e rede quer o provisionamento

de recursos

As plataformas Cloud em Open Source tornam-se atraentes pelo seu baixo custo

inicial de implementaccedilatildeo e pela perspectiva da portabilidade

41 HP CloudSystem Matrix

A HP CloudSystem Matrix eacute uma soluccedilatildeo proprietaacuteria que assenta na plataforma

OpenStack para lhe acrescentar moacutedulos de seguranccedila gestatildeo e automaccedilatildeo

abrangente a toda a infra-estrutura como mostra a figura 19 Eacute uma soluccedilatildeo IaaS

tanto para clouds privadas como para hiacutebridas

Figura 19 - Contributos CloudStack

Norteado por uma visatildeo de ldquosimplificaccedilatildeo como chaverdquo o HP Cloud System

Matrix permite entregar soluccedilotildees preacute-definidas num cataacutelogo de serviccedilos de TI a

consumidores da infra-estrutura (utilizadores) que as requisitaram a partir de um

portal self-service

24

Figura 20 - Desenho publicaccedilatildeo e implementaccedilatildeo do cataacutelogo de serviccedilos

A soluccedilatildeo HP CloudSystem Matrix oferece

Um ambiente de trabalho (Matrix Operating Environment - MOE)

altamente automatizado que automaticamente se ajusta a todo o

dinamismo de negoacutecio permitindo um raacutepido desenho provisionamento e

modificaccedilatildeo de toda a infra-estrutura e uma optimizaccedilatildeo dos ambientes

fiacutesicos e virtuais a fornecer como serviccedilo

Uma pilha de tecnologias de gestatildeo figura 21 HP Console Management

System (CMS) que inclui ferramentas como HP Universal Discovery

(UD) para detectar automaticamente todos os objectos do ambiente HP

SiteScope [25] (opcional) que monitoriza a disponibilidade e desempenho

de toda a infra-estrutura - aplicaccedilotildees servidores SO serviccedilos de rede

armazenamento [24] e software de virtualizaccedilatildeo - evitando e resolvendo

alguns problemas de desempenho (estrangulamentos por escassez de

recursos)

Uma infra-estrutura convergente (HP Converged Infrastructure) apoiada

em soluccedilotildees como o HP Insight Control (IC) para gestatildeo da infra-

estrutura e o HP Insight Dynamics (ID) uma consola de Data Center para

uma gestatildeo centralizada de agregados (pools) de recursos e de pacotes

preacute-configurados de hardware e software Eacute aqui que se criam as pools de

recursos para posterior fornecimento ao MOE

O MOE assenta nesta pilha como o uacuteltimo niacutevel de software um ambiente de

trabalho altamente automatizado permitindo que seja possiacutevel a reduccedilatildeo draacutestica de

custos tempo e esforccedilo na implementaccedilatildeo de toda a estrutura necessaacuteria assim como

das aplicaccedilotildees mercecirc do seu moacutedulo de orquestraccedilatildeo da infra-estrutura (Infrastructure

Orchestration - IO) e opcionalmente do moacutedulo de automaccedilatildeo de servidores (Server

Automation - SA) Em suma trata-se de um ambiente optimizado para gestatildeo e

aprovisionamento de infra-estruturas hiacutebridas incluindo servidores fiacutesicos (Integrity e

x86) e virtuais rede e armazenamento [23] O CloudSystem Matrix estaacute igualmente

integrado com tecnologias de virtualizaccedilatildeo como o ESXi da VMware e o Hiper-V da

Microsoft

25

Figura 21 - Infra-estrutura HP CloudSystem Matrix

42 Modelos de interacccedilatildeo com o HP CSM

Definidos os modelos de implementaccedilatildeo e serviccedilo resta definir as formas de

comunicaccedilatildeo os modos de interacccedilatildeo entre as infra-estruturas aplicaccedilotildees e processos

O modelo eacute transparente para o utilizador final sendo disponibilizadas trecircs opccedilotildees

Web Service API

Este eacute o meacutetodo preferido para controlar os processos dentro da TI Um Web

Service (WS) eacute de acordo com o W3C4 ldquoa software system designed to support

interoperable machine-to-machine interaction over a network It has an interface

described in a machine-processable format (specifically WSDL) Other systems

interact with the Web service in a manner prescribed by its description using SOAP

messages typically conveyed using HTTP with an XML serialization in conjunction

with other Web-related standardsrdquo A HP CloudSystem Matrix oferece uma API

baseada no protocolo SOAP (Simple Object Access Protocol) para troca de

informaccedilatildeo estruturada numa plataforma descentralizada e distribuiacuteda Eacute um

protocolo baseado numa linguagem de marcaccedilatildeo extensiacutevel (Extensible Markup

Language ndash XML) para o formato das mensagens enviadas e recebidas e no protocolo

de transferecircncia de hipertexto (HyperText Transfer Protocol ndash HTTP) para negociaccedilatildeo

e transmissatildeo de mensagens Como protocolo de transporte usa igualmente HTTP

garantindo assim uma certa ldquofacilidaderdquo para funcionar em ambientes protegidos por

firewalls

4 httpwwww3orgTRws-archwhatis

26

Command line interface (CLI)

Uma interface de linha de comando que inclui natildeo soacute todas as opccedilotildees

disponiacuteveis na API WebService como outras natildeo disponiacuteveis nas outras APIs

Northbound API (nbAPI)

Uma interface de controlo remoto atraveacutes de um URL (Uniform Resource

Locator) endereccedilo de um determinado recurso disponiacutevel numa rede o acesso pode

ser efectuado por HTTP FTP etc (ex protocolomaacutequinacaminhorecurso)

43 Papeacuteis e Portais de interacccedilatildeo

Os provedores de serviccedilo cloud satildeo responsaacuteveis por fornecer toda a infra-estrutura do

serviccedilo contratado Nestas arquitecturas existem normalmente trecircs tipos de (papeacuteis de)

utilizadores da cloud que se associam aos respectivos portais figura 22

Administrador Arquitecto e Utilizador final (ou consumidor de serviccedilos cloud)

Figura 22 - Utilizadores de TI em cloud e respectivos papeacuteis (roles)

Administrador Cloud

O administrador usando as ferramentas de ao seu dispor cria monitoriza e

manteacutem a pool de recursos (de computaccedilatildeo memoacuteria armazenamento e rede) a

disponibilizar na cloud Normalmente este papel tambeacutem envolve a implementaccedilatildeo

de acordos de niacutevel de serviccedilo (Service Level Agreement - SLA) onde satildeo definidas

as poliacuteticas entre o fornecedor de serviccedilos cloud e os seus ldquoclientesrdquo O portal

associado a este utilizador eacute o portal do Administrador figura 23

27

Figura 23 - Portal do Administrador

Arquitecto Cloud

O arquitecto eacute um utilizador teacutecnico responsaacutevel por projectardesenhar

montar e tornar disponiacuteveis (publicar) serviccedilos que a proacutepria infra-estrutura pode

disponibilizar para os utilizadores mediante poliacuteticas e necessidades dos objectivos

estrateacutegicos de uma organizaccedilatildeo Esses serviccedilos podem ser personalizaacuteveis e

especiacuteficos para um determinado utilizador grupo de utilizadores ou para uso geral O

arquitecto pode ainda criar fluxos de trabalho (workflows) que passo a passo ajudam

na interacccedilatildeo utilizador-ambiente oferecendo serviccedilos como personalizaccedilatildeo gestatildeo

simplificaccedilatildeo de processos e a proacutepria integraccedilatildeo de TIs O portal associado a este

tipo de utilizador eacute o Designer Portal onde o arquitecto desenha a infra-estrutura e os

modelos de serviccedilo (templates de que adiante falaremos) a incluir no cataacutelogo

Figura 24 - Portal do Arquitecto

28

Consumidor IaaS

O portal associado a este tipo de utilizador eacute o Self-service Portal (ou user

portal) onde o utilizador poderaacute seleccionar visualizar e instanciar os modelos de

serviccedilo preacute-definidos pelo Arquitecto O utilizador depois de escolher de entre os que

existem no cataacutelogo de serviccedilos o ldquomodelo de infra-estruturardquo que mais se adequa agraves

suas necessidades solicita a sua instanciaccedilatildeo para obter os recursos de computaccedilatildeo

memoacuteria armazenamento e rede Este portal permite ainda ao utilizador efectuar a

gestatildeo dos serviccedilos solicitados

Figura 25 - Portal do Utilizador final

44 Conceitos fundamentais da plataforma HP CSM

Apresentamos agora um leque de conceitos fundamentais para compreender o HP

CSM e o trabalho que realizaacutemos Nalguns casos poderemos apresentar exemplos

concretos para melhor ilustrar esses conceitos

Template

Num template o Arquitecto da infra-estrutura captura uma configuraccedilatildeo tiacutepica

em TI especificando os seus componentes-base (hardware e software) e desenha as

suas inter-relaccedilotildees que servidores existem quais as suas caracteriacutesticas (CPUs

memoacuteria discos interfaces) como se interligam os servidores entre si (as conexotildees

de rede) e se for o caso como um ou mais desses servidores se ligam ao ldquoexteriorrdquo do

Centro de Dados Do template tambeacutem faz parte o software haveraacute servidores com

Linux outros com Windows Server uns podem ter Apache e outros SQL Server para

dar alguns exemplos Os templates apoacutes publicaccedilatildeo passam a fazer parte de um

cataacutelogo de serviccedilos para uso dos consumidores de serviccedilos dessa infra-estrutura de

cloud

29

Como exemplo vejamos a seguinte situaccedilatildeo em TI a pilha LAMP (Linux

Apache MySQL PHP) eacute um padratildeo comum e bastante usado assim o arquitecto

poderaacute criar dois templates LAMP-base com um uacutenico servidor e toda a pilha nele

instalada e LAMP-elaacutestico em que haacute uma farm de servidores Apache-PHP que se

ligam a um ldquofailover clusterrdquo de dois servidores MySQL

Server Group

Um ldquoGrupo de Servidoresrdquo eacute constituiacutedo por um ou mais servidores com as

mesmas caracteriacutesticas e configuraccedilotildees software discos interfaces etc O arquitecto

usa os Grupos de Servidores para organizar os servidores em torno da funccedilatildeo que

estes desempenham eou das suas caracteriacutesticas

Por exemplo o arquitecto definiria no template LAMP-base um uacutenico grupo

de servidor(es) mas jaacute no caso do template LAMP-elaacutestico definiria o grupo APfarm

(que incluiria um proto-servidor com determinadas caracteriacutesticas ndash 2 interfaces LAN

Linux Apache e PHP) e o grupo MySQLfo (com um proto-servidor tambeacutem com 2

interfaces LAN mas com Linux Linux-HA e MySQL) Soacute que o grupo APfarm

permitiria um miacutenimo de 1 e um maacuteximo de digamos 4 servidores enquanto o grupo

MySQLfo seria instanciado sempre com 2 servidores

Server

Eacute obviamente um servidor (virtual quase sempre embora o HP CSM permita

ldquoinstanciarrdquo ndash leia-se instalar o software e configurar ndash servidores fiacutesicos) com

atributos (muitos deles especificaacuteveis por um intervalo de valores entre um miacutenimo o

default e um maacuteximo) como memoacuteria (RAM) nuacutemero de processadores e

correspondente velocidade de reloacutegio discos lista de software associado interfaces

de rede (LAN eou SAN) etc

Software

O termo ldquoSoftwarerdquo refere-se a um produto software instalaacutevel no servidor

(pode ser o SO um SGBD um qualquer middleware ou ateacute uma aplicaccedilatildeo) Haacute duas

formas de efectuar essa instalaccedilatildeo automaticamente no acto de instanciaccedilatildeo do

servidor usando um pacote opcional o HP Server Automation (SA) ou manualmente

(a usada neste trabalho por natildeo dispormos do HP SA) ndash e neste caso temos de criar

uma VM instalar o software e depois transformar a VM numa VM-template (o que

se faz directamente no software de virtualizaccedilatildeo eg VMware vCenter Server)

Disk

Eacute um disco virtual ou fiacutesico que pode ser acedido pelo(s) servidor(es) pode

ser bootable shareable (partilhaacutevel entre servidores) suportado numa tecnologia

magneacutetica ou SSD acessiacutevel por ligaccedilatildeo FC ou iSCSI etc

Interface

Uma ldquointerfacerdquo eacute um ponto de contacto entre o servidor e as redes (que lhe

satildeo) externas de um ponto de vista pragmaacutetico deixando de lado infra-estruturas

30

pouco comuns em centros de dados de TI (por contraposiccedilatildeo aos CDs HPC) as infra-

estruturas relevantes satildeo Fibre Channel (FC) e Ethernet Assim as interfaces em

questatildeo satildeo HBAs (FC) e NICs (Ethernet)

Service

Um Service corresponde a uma instanciaccedilatildeo de um template e herda deste

todas as configuraccedilotildees base que poderatildeo ser posteriormente editadas com mais ou

menos servidores processamento memoacuteria discos etc ateacute ao limite maacuteximo

definido no Template

A criaccedilatildeo do serviccedilo eacute efectuada pelo consumidor5 IaaS que faz a definiccedilatildeo

fina das caracteriacutesticas da infra-estrutura que quer aprovisionar Continuando com os

exemplos baseados na pilha LAMP um consumidor do departamento de TI poderia

num dado momento criar um serviccedilo LAMP-testes baseado no template LAMP-base e

que usaria para fazer testes ao ldquoprodutordquo que estaacute a desenvolver e solicitar ao

administrador da cloud o respectivo aprovisionamento e mais tarde criar um serviccedilo

LAMP-produccedilatildeo baseado no template LAMP-elaacutestico e que usaria para colocar on-

line o produto

45 Limitaccedilotildees do HP CloudSystem Matrix

Em resumo o HP CloudSystem Matrix eacute um software stack para a implementaccedilatildeo de

clouds privadas que oferecem infra-estruturas como serviccedilo (IaaS) isto eacute permite aos

utilizadores (consumidores) dos seus serviccedilos aprovisionar de uma forma faacutecil e

raacutepida (minutos) uma infra-estrutura computacional completa de servidores6 (CPU

memoacuteria e discos) com o SO jaacute instalado interligados por uma topologia de rede mais

ou menos complexa

Contudo o supracitado ldquoaprovisionar de uma forma faacutecil e raacutepida (minutos)

uma infra-estrutura computacional completa de servidoresrdquo soacute eacute de facto faacutecil se

baseada na instanciaccedilatildeo de um template que serve exactamente as necessidades do

utilizador jaacute que na instanciaccedilatildeo apenas se pode modificar para cada servidor o

nuacutemero de CPUs e a quantidade de memoacuteria deixando de fora por exemplo opccedilotildees

de rede eou de armazenamento discos fiacutesicos vs virtuais aprovisionamento thin vs

thick (ver 23) escolha da tecnologia da interface (SATA vs SAS vs FC) ou do disco

(magneacutetico vs SSD)

Por outro lado a interacccedilatildeo atraveacutes do portal self-service do utilizador tambeacutem

apresenta algumas desvantagens a informaccedilatildeo apresentada pode ser em muitos casos

considerada demasiadamente teacutecnica eou desnecessaacuteria sendo que o portal natildeo pode

ser configurado para a omitir

5 Muitas vezes designado utilizador-consumidor ou simplesmente utilizador ndash e nesse caso eacute importante natildeo o

confundir com um mero utilizador final 6 Uma das vantagens do HPCSM eacute permitir aprovisionar natildeo soacute servidores virtuais mas tambeacutem reais (estes

uacuteltimos tecircm obrigatoriamente de ser fabricados pela HP)

31

46 Resumo

Este capiacutetulo descreve a HP CloudSystem Matrix uma pilha de software que

implementa o modelo IaaS para clouds privadas e faz parte de um leque mais vasto

da oferta HP que passa pela CloudSystem Enterprise (clouds privadas e hiacutebridas) e

culmina com a CloudSystem System Provider (que acrescenta as clouds puacuteblicas)

A HP CloudSystem Matrix eacute o nuacutecleo de trabalho deste framework razatildeo de

ser deste estudo e deste capiacutetulo Todo o hardware e pilha de software em que assenta

toda a infra-estrutura HP CloudSystem Matrix foi descrita nomeadamente os seus trecircs

Modelos de interacccedilatildeo (API CLI e nbAPI) os papeacuteis e portais de interacccedilatildeo

(Administrador Arquitecto e Utilizador) Concluiacutemos com uma abordagem modular

da infra-estrutura com a explicaccedilatildeo dos moacutedulos principais e finalmente as limitaccedilotildees

desta infra-estrutura em particular do portal actualmente em uso

32

5 O framework e a sua Realizaccedilatildeo

51 Arquitectura

A arquitectura proposta assenta em 3 camadas (3-tier) apresentaccedilatildeo loacutegica e dados

este tipo de arquitectura eacute bem conhecida apresentando como resultado da

modularidade uma seacuterie de benefiacutecios que incluem a escalabilidade que resulta da

possibilidade de executar uma ou outra camada num servidor distinto ou ateacute em

certos casos numa farm de servidores A comunicaccedilatildeo entre as camadas apresentaccedilatildeo

e loacutegicaserviccedilos assenta num protocolo REST (ou seja a arquitectura eacute orientada agrave

Web (WOA) com Axiom0a [28] - Universality2 com um URI por cada recurso

importante) e dados em formato XML (visualizaccedilatildeo) ou JSON (programaccedilatildeo)

transportados em HTTP sobre TCPIP Relativamente agrave comunicaccedilatildeo com o HP

CSM ela processa-se sobre HTTPS numa arquitectura SOA com o protocolo SOAP

Figura 26 - Arquitectura n-tier

Camada de Apresentaccedilatildeo

Define e realiza a interface do utilizador o formato de interacccedilatildeo e

visualizaccedilatildeo foi optimizada para o navegador Google Chrome mas funciona

igualmente noutros browsers Eacute a camada de mais alto niacutevel e eacute responsaacutevel natildeo soacute

pelo contacto utilizadoraplicaccedilatildeo atraveacutes de um conjunto de interfaces que podem ser

apresentadas num browser mas tambeacutem por lhe fazer chegar a informaccedilatildeo das

camadas inferiores

33

Camada Loacutegicanegoacutecio

Tambeacutem conhecida como a camada de negoacutecio eacute o nuacutecleo da aplicaccedilatildeo e eacute

responsaacutevel por controlar as suas funcionalidades tem igualmente a responsabilidade

de realizar a transiccedilatildeo de dados entre as camadas de apresentaccedilatildeo e dados e ainda

todas as transiccedilotildees necessaacuterias entre a proacutepria aplicaccedilatildeo e a camada de serviccedilos

Camada de Serviccedilos

Camada que realiza toda a comunicaccedilatildeo com os webservices do CSM

nomeadamente via API do MOE e outras APIs como eacute o caso da API da VMware

Camada de Dados

Camada responsaacutevel por guardar e gerir os dados em texto (ou numa base de

dados opccedilatildeo que activamos quando queremos trabalhar offline ndash o que neste

momento apenas fazemos para testes) e cache de leituras (cookies) com a informaccedilatildeo

sobre o utilizador e outras informaccedilotildees proveniente da camada de loacutegicaserviccedilos

como eacute o caso da implementaccedilatildeo Realm JAAS no moacutedulo de login JAAS

52 Integraccedilatildeo da framework no HP CSM (MOE e VMware)

Nesta secccedilatildeo propositadamente muito simples mostramos (figura 27) as relaccedilotildees

entre a framework agrave esquerda a plataforma HP CSM (MOE) com o qual esta

interage ao centro e a plataforma VMware vCenter que gere o hipervisor ESXi que

em ultima instacircncia eacute quem suporta as VMs que se disponibilizam na cloud

Figura 27 - Relaccedilatildeo dos VMIDs (WebService-MOE-vCenter)

34

53 Um desenho guiado pela Interface Utilizador

A portal is a window into a much broader set of capabilities in the IT world Its critical that portals be user-friendly and fairly intuitive to use

Ken Stephens vice president of Xerox Corp

O desenvolvimento deste framework teve sempre como objectivo uacuteltimo o

utilizador com acessos consulta de informaccedilatildeo e interacccedilotildees raacutepidas intuitivas faacuteceis

e acima de tudo praacuteticas Pretendeu-se simplicidade com uma curta curva de

aprendizagem e uma flexibilidade com acessos proacuteprios e individuais a cada

utilizador associados a um username e role (admin ou user) dispensando a

necessidade da se ter de usar dua interfaces distintas uma para o administrador outra

para um utilizador-consumidor de serviccedilos

These users want to see performance graphs and have the capability to build complex configurations and templates for their end users

Lauren Nelson Forrester Research Inc

A visualizaccedilatildeo em tempo real de todas as acccedilotildees do utilizador com a

disponibilizaccedilatildeo de uma ldquobarra de progressordquo a visualizaccedilatildeo do estado geral do

webservice e das suas configuraccedilotildeesrecursos tambeacutem natildeo foram descuradas A

descriccedilatildeo dos componentes principais em aacutervore permite a raacutepida visualizaccedilatildeo das

configuraccedilotildees de todo o Serviccedilo criado das suas hierarquias e relaccedilotildees e um acesso

raacutepido e intuitivo aos detalhes de cada componente

35

Figura 28 - Estrutura em aacutervore do menu lateral esquerdo

Developers want a clean easy-to-use [product] to select prebuilt templates -- but they dont need to see any of the complex performance or payment configurations

Lauren Nelson

O Cataacutelogo de Templates publicados pelo Arquitecto eacute imediatamente

visualizado no menu em aacutervore quando o webservice eacute inicializado que eacute

imediatamente povoada com os Serviccedilos (e seus recursos) anteriormente criados por

esse utilizador

Para criar um novo Serviccedilo o utilizador seleciona o template que mais se

adequa agraves suas necessidades e cria o Serviccedilo Todos os Serviccedilos associados a um

determinado Template ficam como ramos na aacutervore desse Template o mesmo

acontecendo relativamente aos recursos associados a cada Serviccedilo A informaccedilatildeo

visualizada eacute apenas a necessaacuteria a cada visualizaccedilatildeo e instanciaccedilatildeo

A interface eacute assim raacutepida acessiacutevel intuitiva organizada e personalizaacutevel as

acccedilotildees satildeo acessiacuteveis e raacutepidas de executar sem menus e submenus com sucessivos

cliques que soacute atrasam todo o processo

36

Figura 29 - Portal

37

Figura 30 - Diagrama de Sequecircncia (Criaccedilatildeo de um Serviccedilo)

38

What you want and what you get in most cases depends on the users persona -- either an IT manager or a developerhellip By making portals task-

based youre not just seeing a bunch of random menus or links If youre

searching for something youll find it quicklyrdquo

Bill Forsyth vice president of portal development at Savvis

Um portal personalizaacutevel em funccedilatildeo do utilizador ocultar ou exibir paineacuteis de

informaccedilatildeo a lista de pedidos limitar a exibiccedilatildeo por Template ou por Serviccedilo - um

simples clique e todo o portal eacute personalizaacutevel

Paying attention to details and being able to organize information for larger enterprises is important

Bill Forsyth

A organizaccedilatildeo de toda a informaccedilatildeo a disponibilizar eacute a chave de todo este

processo e diferencia um portal agradaacutevel e intuitivo de um portal confuso no seu

amontoado de informaccedilatildeo e complexidade quanto maior eacute a informaccedilatildeo a

disponibilizar maior eacute evidente esta diferenccedila Uma informaccedilatildeo hierarquizada e

organizada em agrupamentos loacutegicos por recursos eacute um processo muito faacutecil de seguir

e perceber e associada a esta disponibilizaccedilatildeo de informaccedilatildeo apenas exibir acccedilotildees

que possam ser executadas sobre esse(s) recurso(s) eacute o objectivo da simplicidade e

desempenho de uma interface Por uacuteltimo uma paacutegina web de ajuda a toda a interface

(Anexo N) para consulta de qualquer duacutevida faz com que tudo seja uacutetil e praacutetico [33]

54 Camada de apresentaccedilatildeo

A realizaccedilatildeo da camada de apresentaccedilatildeo pode ser apresentada subdividindo-a em duas

partes sendo a primeira correspondente agrave realizaccedilatildeo do lado do cliente (client-side) e

a segunda agrave realizaccedilatildeo do lado do servidor (server-side)

541 Do lado do cliente

A visualizaccedilatildeo de uma paacutegina web num navegador como Google Chrome Firefox ou

Internet Explorer soacute eacute possiacutevel se estes ldquoentenderemrdquo a linguagem na qual estaacute

construiacuteda ldquoa paacuteginardquo e forem capazes de a processar sem necessidade de qualquer

espeacutecie de preacute-tratamento Surgiram muitas linguagens conhecidas como linguagens

de marcaccedilatildeo um sistema moderno para anotaccedilatildeo de um documento de uma forma que

ldquoo programardquo eacute sintaticamente distinguiacutevel do texto normal

Do lado do cliente a principal linguagem de marcaccedilatildeo eacute a HTML agrave qual se

adiciona a JavaScript na qual os programas acompanham um documento html

incluiacutedos em ficheiros com a extensatildeo js ou satildeo incorporados directamente no

39

coacutedigo html entre tags ltscriptgtltscriptgt o documento html eacute entatildeo carregado pelo

navegador do utilizador e com ele todo o coacutedigo JavaScript

A linguagem JavaScript eacute usada para incutir dinamismo no coacutedigo html

facilitando por exemplo a interacccedilatildeo com o utilizador no preenchimento de

formulaacuterios (aquando da criaccedilatildeo de um serviccedilo) ou promovendo o upload de um

modelo de template em formato XML ou executando acccedilotildees ou eventos consoante

determinado comportamento do utilizador etc As funccedilotildees JavaScript e das suas

bibliotecas como JQuery satildeo executadas aquando do carregamento da proacutepria paacutegina

html ou quando invocadas por eventos como sejam a inicializaccedilatildeo da framework

leitura inicial dos dadosrecursos relativos ao utilizador criaccedilatildeo de cookies ou acccedilotildees

do utilizador como o login ou o preenchimento de formulaacuterios

Tambeacutem eacute usado AJAX (Asynchronous JavaScript and XML) [36] um padratildeo

para o uso de comandos JavaScript para de uma forma siacutencrona ou assiacutencrona trocar

dadosinformaccedilatildeo com o servidor e actualizar conteuacutedos de paacuteginas web jaacute exibidas

em que natildeo eacute necessaacuterio carregar toda a paacutegina para a actualizar Um padratildeo ideal

para usar com o protocolo REST (Representational State Transfer) para troca de

informaccedilatildeo permite o uso de dados em texto HTML XML e JSON (JavaScript

Object Notation) como formato da informaccedilatildeo para enviar e receber dados usando

HTTP e URI exactamente como as interacccedilotildees HTTP foram concebidas GET

POST PUT e DELETE Com AJAX as operaccedilotildees CRUD (Create Read Update e

Delete) satildeo muito intuitivas e faacuteceis de usar

Finalmente CSS (Cascading Style Sheets) eacute a linguagem responsaacutevel pela

formataccedilatildeo dos dados em termos de visualizaccedilatildeo para o utilizador que eacute usada para

descrever a apresentaccedilatildeo das paacuteginas Web incluindo cores layout e fontes

542 Do lado do servidor

As linguagens caracterizadas como ldquodo lado do servidorrdquo satildeo necessaacuterias para

especificar os programas que tecircm de ser executados no servidor como ldquorespostardquo agraves

acccedilotildees desencadeadas do lado do browser quando o resultado tem de ser enviado

para o browser eacute-o na forma de ficheiro HTML

Linguagens de conteuacutedo e comportamento como JSP (JavaServer Pages) uma

mistura de HTML com scriptlet contecircm um elemento script (blocos de coacutedigo em

Java) o que as caracteriza como linguagens que correm no servidor Os scriptlet

como todo o coacutedigo Java eacute executado no servidor e o output direcionado para o resto

da paacutegina JSP e finalmente apresentado ao utilizador A facilidade de comunicaccedilatildeo

em variaacuteveis de sessatildeo torna esta linguagem muito apelativa ao uso dessas variaacuteveis

como eacute o cado da paacutegina loginjsp onde se desenrola grande parte da comunicaccedilatildeo

browserservidor atraveacutes da API MOE logoutjsp e vmrcjsp para ligaccedilatildeo agraves VMs e

comunicaccedilatildeo com a API VMware

40

543 Lista de primitivas na oacuteptica dos recursos

Segue-se a lista de primitivas apresentada numa oacuteptica de recursos que cada

uma manipula

actionsjs - Lista as ldquoactionsGridrdquo atribuiacutedas aos Serviccedilos Grupo de

Servidores ou Servidores e permite todas as acccedilotildees associadas nestas

listagens

cookiesjs - Leitura e criaccedilatildeo de cookies associados ao utilizador e todo o

webservice Cookies de login com dados como username e role e outros

dado associados agraves acccedilotildees do utilizador e webservice como layout de

visualizaccedilatildeo da paacutegina (globaltheme) menu lateral esquerdo (treetheme)

paineacuteis de visualizaccedilatildeo de informaccedilatildeo (northregion westregion

eastregion southregion) etc

disksjs - Leitura das informaccedilotildees associadas aos discos nas suas trecircs

versotildees ldquostereotype disksrdquo discos virtuais e fiacutesicos Todas as acccedilotildees

possiacuteveis em discos estatildeo igualmente configuradas neste ficheiro

geraljs - Leitura das informaccedilotildees gerais associadas ao webservice Dados

iniciais de informaccedilatildeo de todos os Templates do Cataacutelogo de Serviccedilos e

dados de Serviccedilos jaacute existentes nos diferentes formatos (JSON e XML)

configuraccedilotildees gerais do webservice como tabelas de listagens conversotildees

de datas (ldquodate2epochrdquordquoepoch2daterdquo) construccedilatildeo do menu lateral

esquerdo em aacutervore listeners para acccedilotildees do utilizador e mensagens de

erros e informaccedilatildeo do webservice

helpjs - Configuraccedilotildees de todo o layout das ajudas ao utilizador

interfacesjs - Leitura das informaccedilotildees associadas agraves interfaces redes e

endereccedilos IP Todas as acccedilotildees passiacuteveis de serem executadas nas

interfaces estatildeo igualmente configuradas neste ficheiro

remoteSessionsjs - Listagem de todas as Sessotildees Remotas do Serviccedilo e

acccedilotildees associadas a essas Sessotildees Remotas por Servidor e suas Interfaces

requestsjs - Listagem de todos os pedidos por Template ou Serviccedilo

Todas as acccedilotildees passiacuteveis de serem executadas relativas aos pedidos do

utilizador estatildeo igualmente configuradas neste ficheiro

serverGroupsjs - Leitura das informaccedilotildees associadas ao Grupo de

Servidores quer nos Templaste quer nos Serviccedilos Todas as acccedilotildees

relativas ao Grupo de Servidores estatildeo igualmente configuradas neste

ficheiro

serverPoolsjs - Listagem de todos as Pools de Servidores com a

informaccedilatildeo respectiva a cada Pool Todas as acccedilotildees passiacuteveis de serem

executadas nas Pools de Servidores estatildeo configuradas neste ficheiro

41

serversjs - Leitura das informaccedilotildees associadas a cada Servidor quer nos

Templaste quer nos Serviccedilos Todas as acccedilotildees relativas aos Servidores

estatildeo configuradas neste ficheiro

servicesjs - Leitura das informaccedilotildees associadas a cada Serviccedilo Todas as

acccedilotildees passiacuteveis de serem executadas nos Serviccedilos estatildeo configuradas

neste ficheiro

snapshotsjs - Listagem de todos os Snapshots com a informaccedilatildeo

respectiva ao par ServerSnapshot Todas as acccedilotildees passiacuteveis de serem

executadas nos Snapshots estatildeo configuradas neste ficheiro

softwarejs - Listagem de todo Software existente no sistema e informaccedilatildeo

relativa a cada Software em particular

templatesjs - Listagem de todos os recursos do Template e informaccedilatildeo

relativa a cada recurso base Toda a disponibilizaccedilatildeo de informaccedilatildeo e as

acccedilotildees associadas aos Templates estatildeo configuradas neste ficheiro

55 Camada ServiccedilosLoacutegica

Como referido (ver 51) a comunicaccedilatildeo entre a camada de apresentaccedilatildeo e a

loacutegicaserviccedilos assenta num protocolo REST e usa XML e JSON como formato para

enviar e receber informaccedilatildeo usando HTTP e URI (operaccedilotildees CRUD - Create Read

Update e Delete) [29]

Figura 31 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull

Por seu lado o REST assenta em quatro princiacutepios fundamentais 1) Recurso

cada recurso tem uma identificaccedilatildeo uacutenica e global associada ao URI

httpexemplocomencomenda20121088563 2) Acesso usando URIs acede-se a

um recurso por um ID uacutenico e global independente da sua localizaccedilatildeo 3) Formatos

um recurso pode ser representado em diferentes formatos por exemplo HTML XML

ou JSON sendo a escolha ditada pela finalidade especiacutefica de utilizaccedilatildeo do recurso

4) Comunicaccedilatildeo stateless - o cliente pode receber toda a informaccedilatildeo necessaacuteria num

primeiro contacto com o servidor executar o processamento e finalmente ligar-se

uma segunda vez ao servidor para reportar os resultados

As APIs usadas e directamente relacionadas com serviccedilos REST foram as

seguintes 1) JAX-RS (JSR 311 - Java Specification Requests) Atualmente parte

42

integrante do Java EE eacute uma API Java para serviccedilos Web RESTfull sobre HTTP

JAVAX-RS como especificaccedilatildeo desta API [30] fornece anotaccedilotildees que simplificam as

configuraccedilotildees 2) Jersey eacute uma implementaccedilatildeo open-source de referecircncia do

JAVAX-RS [31] 3) RestEasy eacute uma outra implementaccedilatildeo do JAVAX-RS com

opccedilotildees de suporte para outros protocolos aleacutem do HTML e que permite conexotildees

assiacutencronas e tem suporte de cache [32]

551 Camada de Serviccedilos

Como sabemos o HP CloudSystem Matrix gere recursos de computaccedilatildeo

armazenamento rede e software de uma forma unificada para oferecer um ambiente

virtualizado e altamente automatizado Contudo natildeo eacute um produto fechado

disponibilizando natildeo soacute um CLI mas tambeacutem uma API com uma WSDL (Web

Service Description Language) que inclui todas as operaccedilotildees possiacuteveis (https ltcms-

ip-addressgt 51443hpiocontrollersoapv5 wsdl)

A camada de serviccedilos eacute um cliente do CSM que funciona segundo o padratildeo

autenticaccedilatildeoperfil-pedido(s)-fecho na fase de autenticaccedilatildeo o utilizador (registado na

infra-estrutura MOE) faz o seu login a partir desse momento estaacute criada uma sessatildeo

que por HTTPS permite o acesso a todos os recursos disponiacuteveis para a combinaccedilatildeo

utilizadorperfil (role)

552 Camada Loacutegica

A camada loacutegica segue o mesmo princiacutepio estaacute centrada nos recursos em termos de

tecnologias usa o protocolo REST para a comunicaccedilatildeo clienteservidor e a

linguagem Java para o desenvolvimento

A realizaccedilatildeo foi idealizada numa prespectiva hieraacuterquica o que facilita a

compreensatildeo de toda a estrutura O menu lateral esquerdo eacute exemplo disso mesmo a

estrutura em aacutervore espelha esta ideia simples mas eficaz os recursos comeccedilam por

ser apresentados como listas sobre as quais podemos realizar acccedilotildeesfunccedilotildees ldquode

grupordquo pois satildeo apenas aquelas que satildeo comuns a todos os membros da lista mas agrave

medida que nos vamos aproximando das folhas da estrutura em aacutervore as

acccedilotildeesfunccedilotildees ficam mais especiacuteficas relativamente aos recursos-alvo

Por exemplo quando se realiza a acccedilatildeo ldquoPower ONrdquo a um grupo de

servidores todos os servidores do grupo satildeo ligados quando se efectua essa mesma

acccedilatildeo sobre um servidor apenas o servidor seleccionado eacute ligado

A disponibilizaccedilatildeo de informaccedilatildeo relativa a grandes ldquoconjuntos de dadosrdquo

como eacute o caso de listagens de pedidos de acccedilotildees de sessotildees remotas de snapshots

de stereotype disks de software e de subnets foi realizada com datagrids (tabelas)

para melhor visualizaccedilatildeo

43

As acccedilotildeesfunccedilotildees disponibilizadas estatildeo distribuiacutedas pelas tabs respectivas e

executam serviccedilos no niacutevel em que se encontram disponibilizadas A tiacutetulo de

exemplo as acccedilotildees que se encontram disponiacuteveis para execuccedilatildeo no grupo de

servidores apenas podem ser encontradas no tab ldquoGrouprdquo e reflectem-se sobre todos

os membros do grupo Uma acccedilatildeo especiacutefica de servidor encontra-se somente

disponiacutevel na tab ldquoServerrdquo e afecta apenas e soacute esse servidor

Segue-se uma descriccedilatildeo natildeo exaustiva da camada loacutegica nuacutecleo desta

framework desde a sua inicializaccedilatildeo ateacute aos recursos e moacutedulos principais

5521 Init

Aquando da inicializaccedilatildeo da aplicaccedilatildeo e no seguimento do login do utilizador eacute

desencadeada uma sequencia de pedidos ao servidor por informaccedilotildees relativas aos

Templates do Cataacutelogo de Serviccedilos e de todos os Serviccedilos do utilizador Se as

permissotildees associadas ao utilizador for de simples utilizador do webservice visualiza

apenas as instacircncias que criou jaacute um utilizador com permissotildees de administraccedilatildeo

visualiza os seus serviccedilos e todos os serviccedilos dos restantes utilizadores

Tabela 1 - Funccedilotildees associadas agrave inicializaccedilatildeo do Webservice

Funccedilatildeo Descriccedilatildeo

getVersion Funccedilatildeo de teste Obteacutem a informaccedilatildeo da versatildeo da API

principal Funccedilatildeo usada aquando do login do utilizador Obteacutem os

detalhes do utilizador como USERNAME e ROLE

listAllDataDetailsJson Funccedilatildeo usada apoacutes login do utilizador e iniciaccedilatildeo da

aplicaccedilatildeo Obteacutem os detalhes dos Serviccedilos associados ao

Utilizador Lista a informaccedilatildeo de todos os Templates e

Serviccedilos do Utilizador no formato JSON Funccedilatildeo para uso

excluivo do webservice

downloadTabJsonView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa aos recursos do Utilizador em formato

JSON Eacute criado um ficheiro com extenccedilatildeo JSON

downloadTabXmlView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa aos recursos do Utilizador em formato

XML Eacute criado um ficheiro com extenccedilatildeo XML

44

listEnumsJson Funccedilatildeo usada apoacutes login do utilizador e iniciaccedilatildeo da

aplicaccedilatildeo Obteacutem os detalhes de todos os ENUMS possiacuteveis

no webservice Lista a informaccedilatildeo de todos os ENUMS no

formato JSON Funccedilatildeo para uso excluivo do webservice

listEnumsXml Menu lateral direito do webservice Opccedilatildeo de visualizaccedilatildeo da

informaccedilatildeo relativa agraves opccedilotildees ENUMS possiveis no

webservice

downloadTabEnumsView Menu lateral direito do webservice Opccedilatildeo de download da

informaccedilatildeo relativa agraves opccedilotildees ENUMS possiveis no

webservice Eacute criado um ficheiro com extenccedilatildeo XML com a

informaccedilatildeo visualizada

listAllDataDetailsXml Menu lateral direito do webservice Opccedilatildeo de visualizaccedilatildeo da

informaccedilatildeo relativa ao Utilizador em formato XML

5522 Template

Como jaacute referido o desenhoconstruccedilatildeo dos Templates fica a cargo do Arquitecto do

MOE que desenha esses mesmos Templates mediante pedido especifico de um

determinado utilizador tendo em vista um grupo de utilizadores infra-estrutura

disponibilizada ideias preacute-definidas resposta a uma ou mais situaccedilotildees especiacuteficas

etc

Nos detalhes gerais do Template obtemos informaccedilotildees como o nome do

Template a data de criaccedilatildeo e modificaccedilatildeo versatildeo custo geral se eacute ou natildeo

customizaacutevel e o numero de ServerGroups associados assim como discos e serviccedilos

que jaacute foram criados tendo por base este template

Todos os detalhes do Template ficam disponiacuteveis ao utilizador 1) Grupo de

servidores com informaccedilotildees como nome quantidade miacutenima de servidores e que seraacute

a base do serviccedilo criado e quantidade maacutexima de servidores sinal que o serviccedilo

poderaacute crescer em termos de quantidade de servidores Tipo de cluster e o nuacutemero de

servidores loacutegicos existentes no grupo 2) Servidores onde o utilizador obteacutem

informaccedilotildees como nome hostname tipo de virtualizaccedilatildeo memoacuteria usada e

quantidade maacutexima de memoacuteria processadores usados e quantidade maacutexima de

processadores se eacute ou natildeo virtual e se estaacute ou natildeo em cloud 3) Custos em detalhes

ficam disponiacuteveis ao utilizador Informaccedilotildees sobre custo total custo de base por cada

servidor custo por processador e memoacuteria 3) Os discos tambeacutem apresentam

informaccedilatildeo como nome tipo de storage tamanho raid level se eacute ou natildeo bootable

shareable e custo do disco 4) Software preacute-instalado ou instalado posteriormente pelo

utilizador Informaccedilotildees como nome tipo OS e virtualizaccedilatildeo estatildeo disponiacuteveis 5)

Interfaces com informaccedilotildees como nome da interface se eacute ou natildeo primaacuteria

45

redundacircncia subnet publica shareable tipo de IP endereccedilo DHCP activo ou natildeo e

custo final

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa a Templates

Figura 32 - Execuccedilatildeo tab ldquoTemplaterdquo

Export All Templates

Acccedilatildeo disponiacutevel apenas ao administrador permite o download em

ficheiro XML dos detalhes de todos os Templates para que o administrador possa

consultar essa informaccedilatildeo em modo offline se assim o entender Detalhes que

ficam disponiacuteveis para visualizaccedilatildeo no clique do iacutecon Template no menu lateral

esquerdo

O ficheiro XML pode depois ser visualizado mesmo no browser ou

qualquer programa que suporte essa visualizaccedilatildeo como eacute o caso do Notepad++

Export Template

Acccedilatildeo disponiacutevel apenas ao administrador permite o download em

ficheiro XML dos detalhes do Template em visualizaccedilatildeo igualmente como a

acccedilatildeo ldquoExport All Templatesrdquo o administrador poderaacute consultar mais tarde em

modo offline se assim o entender Detalhes que ficam disponiacuteveis para

visualizaccedilatildeo no clique do icon do nome do Template respectivo no menu lateral

esquerdo

Import Template

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel

adicionar mais Templates ao Cataacutelogo de Serviccedilos ficando assim disponiacutevel ao

utilizador mais opccedilotildees com novas configuraccedilotildees A leitura eacute feita directamente de

um ficheiro XML natildeo eacute admissiacutevel outro tipo de formato

Delete Template

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel

remover um Templates do Cataacutelogo de Serviccedilos Como todos os Serviccedilos tem por

base um Template a remoccedilatildeo de um Template implica a remoccedilatildeo de todos os

46

Serviccedilos que tem como base esse Template Tal situaccedilatildeo eacute salvaguardada

obrigando o administrador a clicar em OK numa InfoWindow de aviso

XML View

Acccedilatildeo disponiacutevel apenas ao administrador permite que seja possiacutevel a

visualizaccedilatildeo de todos os detalhes do Templates directamente numa InfoWindow

dentro do webservice A informaccedilatildeo em XML torna-se vantajosa ao administrador

para a visualizaccedilatildeo de detalhes mais pormenorizados e organizaccedilatildeo de toda a

infra-estrutura

Export All Services

Acccedilatildeo que agrave semelhanccedila do ldquoExport All Templatesrdquo permite o download

em ficheiro XML dos detalhes de todos os Serviccedilos associados ao Template em

visualizaccedilatildeo e a um determinado utilizador para que possa consultar em modo

offline se assim o entender Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no

clique do iacutecon Service no menu lateral esquerdo

O ficheiro XML pode depois ser visualizado no browser ou qualquer

programa que suporte essa visualizaccedilatildeo como eacute o caso do Notepad++

Create Service

Finalmente a acccedilatildeoobjectivo de todo o webservice a criaccedilatildeo e

disponibilizaccedilatildeo de Serviccedilos Como jaacute foi referido um Serviccedilo tem como base um

Template por isso na visualizaccedilatildeo dos detalhes do Template esta opccedilatildeo estaacute

disponiacutevel Aquando da criaccedilatildeo de um Serviccedilo este teraacute como base o Template

em visualizaccedilatildeo

Existem campos de preenchimento obrigatoacuterios como nome do serviccedilo

hostname tempo atribuiacutedo ao serviccedilo (1 mecircs por defeito) e email do utilizador

As opccedilotildees ldquoNotesrdquo e ldquoBilling coderdquo satildeo opcionais

All Requests

Todas os pedidos realizados no webservice por um determinado utilizador

ficam disponiacuteveis para visualizaccedilatildeo do seu estado e inclusive desencadear acccedilotildees

nesses mesmos pedidos como cancelamento (percentagem inferior a 100) mediante

decisatildeo do utilizador

A salientar que existem pedidos que carecem da aprovaccedilatildeo do administrador

por isso o pedido poderaacute ficar parado numa determinada percentagem () a espera

dessa aprovaccedilatildeo Se o pedido natildeo necessitar de aprovaccedilatildeo continuaraacute a sua execuccedilatildeo

ateacute estar completo (100) e automaticamente seraacute adicionado ao menu lateral

esquerdo do utilizador

Template Requests

Todas os pedidos associados a um determinado Template por um determinado

utilizador ficam igualmente disponiacuteveis para visualizaccedilatildeo do seu estado

47

Tabela 2 - Funccedilotildees associadas ao Template

Funccedilatildeo Descriccedilatildeo

listTemplates Funccedilatildeo que obtem uma listagem da informaccedilatildeo relativa

aos Templates do Cataacutelogo de Serviccedilos

importTemplate Funccedilatildeo que permite o Upload da informaccedilatildeo relativa a

um Template em formato XML Operaccedilatildeo executada

apenas pelo Administrador ou Arquitecto de toda a

infra-estrutura de orquestraccedilatildeo

exportTemplate Funccedilatildeo que obteacutem toda a informaccedilatildeo relativa a um

Template e permite o download dessa informaccedilatildeo em

formato XML Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura de

orquestraccedilatildeo

exportTemplateList Funccedilatildeo de complemento a toda a informaccedilatildeo dos

Templates do Cataacutelogo de Serviccedilo Uso exclusivo do

webservice

deleteTemplate Funccedilatildeo que permite a remoccedilatildeo de um Template do

Cataacutelogo de Serviccedilos Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura de

orquestraccedilatildeo

listServicesByTemplateName Funccedilatildeo que obteacutem todos os Serviccedilos associados a um

determinado Template Para visualizaccedilatildeo de informaccedilatildeo

e opccedilatildeo de download

5523 Serviccedilo

O Serviccedilo tem sempre como base as definiccedilotildees de um Template e nesse sentido tudo

que o utilizador poderaacute fazer nesse Serviccedilo satildeo acccedilotildees que estatildeo disponiacuteveis nesses

Template como limites miacutenimos e maacuteximos de servidores processadores memoacuteria

etc Outras opccedilotildees como discos e interfaces ficam disponiacuteveis ao utilizador que

poderaacute adicionar se assim o entender com os custos inerentes a este upgrade de

Serviccedilo

Um Serviccedilo eacute composto por dados base relativos a informaccedilotildees gerais desse

Serviccedilo listas de acccedilotildees associadas e uma lista de grupos de servidores sendo que

cada grupo poderaacute ser diferente entre si com recursos funcionalidades e softwares

completamente diacutespares

Assim em termos de informaccedilatildeo disponiacutevel associada ao serviccedilo o utilizador

poderaacute obter o nome do serviccedilo id (apenas acessiacutevel ao administrador) notas status

48

o Template base que lhe deu origem data de criaccedilatildeo e ultima data de modificaccedilatildeo o

custo geral do serviccedilo custo fixo o periacuteodo de uso do serviccedilo (por defeito 1 mecircs)

nome do utilizador que criou o serviccedilo organizaccedilatildeo e tamanho das listas associadas

nomeadamente acccedilotildees e grupo de servidores

Os Serviccedilos assim como os Templates ficam disponiacuteveis em listagem no menu

lateral esquerdo num formato em aacutervore intuitivo e raacutepido de selecionar Cada

Serviccedilo fica na cadeia hieraacuterquica do Template que lhe deu origem Associado a cada

Serviccedilo tambeacutem poderemos visualizar nesses mesmo menu todos os recursos

associados a esse Serviccedilo como listagem dos grupos de servidores em cada grupo os

seu servidores e em cada servidor os recursos como discos software e interfaces

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Serviccedilo

Figura 33 - Execuccedilatildeo tab ldquoServicerdquo

Export All Services

Acccedilatildeo que permite o download em ficheiro XML dos detalhes de todos os

Serviccedilos do utilizador permitindo a posterior consulta em modo offline Detalhes

que ficam disponiacuteveis para visualizaccedilatildeo no clique do iacutecons Service no menu

lateral esquerdo

Export Service

Permite o download em ficheiro XML dos detalhes do Serviccedilo em

visualizaccedilatildeo igualmente como a acccedilatildeo ldquoExport All Servicesrdquo o utilizador poderaacute

consultar mais tarde em modo offline os detalhes do serviccedilo Detalhes que ficam

49

disponiacuteveis para visualizaccedilatildeo no clique do icon do nome do Serviccedilo respectivo no

menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Serviccedilo

directamente numa InfoWindow dentro do webservice A informaccedilatildeo em XML

torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Create Service

Mesma acccedilatildeo existente nos Templates Directamente da visualizaccedilatildeo de

um Serviccedilo eacute possiacutevel criar um outro Serviccedilo tendo igualmente por base o

mesmo Template O Serviccedilo criado seraacute igual ao Serviccedilo base em visualizaccedilatildeo

Delete Service

Permite a remoccedilatildeo do Serviccedilo em visualizaccedilatildeo Apoacutes esta acccedilatildeo deixam

de ser cobrado qualquer custo associado ao Serviccedilo que foi removido

Power ON Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo sejam ligados e fiquem disponiacuteveis para utilizaccedilatildeo Esta

acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==OFFrdquo

Power OFF Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo sejam desligados deixando de estar disponiacuteveis para

utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==UPrdquo

Power Cycle Service

Acccedilatildeo que permite que todos os Servidores de todos os ServerGroups

existentes no Serviccedilo faccedilam um reboot e continuem disponiacuteveis para utilizaccedilatildeo

Esta acccedilatildeo eacute dependente do status do Serviccedilo fica activa quando

ldquoserviceStatus==UPrdquo

Activate Service

Permite que todos os Servidores de todos os ServerGroups existentes no

Serviccedilo sejam activados No final desta operaccedilatildeo o Serviccedilo fica em modo

ldquoserviceStatus==UPrdquo e todos os servidores ficam automaticamente disponiacuteveis

para utilizaccedilatildeo

50

Deactivate Service

Permite que todos os Servidores de todos os ServerGroups existentes no

Serviccedilo sejam desactivados No final desta operaccedilatildeo o Serviccedilo fica em modo

ldquoserviceStatus==DEACTIVATEDrdquo

Service Actions

Os ldquotriggered actionsrdquo associadas a cada Template satildeo parte integrante do

Serviccedilo criado Tambeacutem esta informaccedilatildeo estaacute disponiacutevel em forma de listagem

Estas acccedilotildees automaticamente desencadeadas pelo webservice poderatildeo pertencer

ao Serviccedilo propriamente dito ou entatildeo existirem apenas num serverGroup ou ateacute

mesmo apenas num Server

List Remote Session

No final da criaccedilatildeo de um Serviccedilo o objectivo eacute a ligaccedilatildeo as VMs

associadas a esse mesmo Serviccedilo Nesse intuito directamente da tab Serviccedilo

atraveacutes desta acccedilatildeo ficam disponiacuteveis numa lista todas as VMs com os acessos

remotos permissiacuteveis

RDP (Remote Desktop Protocol)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet

VMRC (VMware Remote Console)

Todos os pedidos associados a um determinado Serviccedilo por um

determinado utilizador ficam igualmente disponiacuteveis para visualizaccedilatildeo do seu

estado Quando a listagem de pedidos tem grandes dimensotildees ou se a visualizaccedilatildeo

do pedido diz respeito a este Serviccedilo fazer apenas a listagem dos pedidos pelo

Serviccedilo em causa torna-se mais simples uacutetil e directa

Tabela 3 - Funccedilotildees associadas ao Serviccedilo

Funccedilatildeo Descriccedilatildeo

listServices Detalhes dos Serviccedilos associados a um determinado Utilizador

Para visualizaccedilatildeo de informaccedilatildeo e opccedilatildeo de download O

Administrador obtem todos os Serviccedilos existentes no

webservice

getService Informaccedilatildeo associada a um determinado Serviccedilo Para

visualizaccedilatildeo de informaccedilatildeo e opccedilatildeo de download

createService Criaccedilatildeo de um Serviccedilo

deleteService Remoccedilatildeo de um Serviccedilo associado a um Template

deactivateService Desactivaccedilatildeo de um Serviccedilo

51

activateService Activaccedilatildeo de um Serviccedilo

changeServiceLease Ediccedilatildeo do Lease period asociado a um Serviccedilo

powerOnService Ligar um Serviccedilo

powerOffService Desligar um Serviccedilo

powerCycleService Ligar um Serviccedilo apoacutes reboot

getRemoteSessionsList Listagem de todos os servidores e seus IPs associados para

posterior listagem das sessotildees remotas

5524 Grupo de Servidores

Cada Serviccedilo tem os seus recursos associados nomeadamente uma lista de Grupo de

Servidores onde o utilizador poderaacute obter informaccedilotildees como o nome do Serviccedilo

nome do Grupo de Servidores o Status nuacutemero miacutenimo e maacuteximo de Servidores

uma progressbar com indicaccedilatildeo do nuacutemero de servidores disponiacuteveis no momento se

tem uma sequencia Boot datas de criaccedilatildeo e ultima modificaccedilatildeo e finalmente uma

lista de Servidores

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Grupo de Servidores

Figura 34 - Execuccedilatildeo tab ldquoServerGroupsrdquo

52

Export Server Group

Permite o download em ficheiro XML dos detalhes do Grupo de

Servidores em visualizaccedilatildeo o utilizador poderaacute consultar esses detalhes mais

tarde em modo offline Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no clique

do icon do nome do Grupo de Servidores respectivo no menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Grupo de

Servidores directamente numa InfoWindow dentro do webservice A informaccedilatildeo

em XML torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Add Servers (UP)

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores aumentando o

nuacutemero de Servidores dentro desse Grupo de Servidores Esta opccedilatildeo soacute fica

visiacutevel e acessiacutevel ao utilizador se o limite maacuteximo do nuacutemero de Servidores for

superior ao actualmente existente em utilizaccedilatildeo Limite definido nas

configuraccedilotildees do Serviccedilo que vieram por arrasto das configuraccedilotildees do Template

aquando da criaccedilatildeo desse Serviccedilo Estas alteraccedilotildees implicam o aumento do custo

total do Serviccedilo

Remove Servers (DOWN)

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores diminuindo o

nuacutemero de Servidores dentro desse Grupo de Servidores eacute disponibilizada a lista

de Servidores existentes e o utilizador seleciona um ou mais para remoccedilatildeo Esta

opccedilatildeo soacute fica visiacutevel e acessiacutevel ao utilizador se o limite miacutenimo do nuacutemero de

Servidores for inferior ao actualmente existente em utilizaccedilatildeo Limite definido nas

configuraccedilotildees do Serviccedilo que vieram por arrasto das configuraccedilotildees do Template

aquando da criaccedilatildeo desse Serviccedilo Estas alteraccedilotildees implicam a diminuiccedilatildeo do

custo total do Serviccedilo

Edit ServerGroup

Acccedilotildees que permite a ediccedilatildeo do Grupo de Servidores relativamente a

memoacuteria e processadores A ediccedilatildeo vai ser efectuada em todos os Servidores do

Grupo de Servidores Como nos limites maacuteximos e miacutenimos de Servidores

tambeacutem os limites de memoacuteria e processadores vieram por arrasto das

configuraccedilotildees do Template aquando da criaccedilatildeo do Serviccedilo Estas alteraccedilotildees

implicam a diminuiccedilatildeo ou aumento do custo total do Serviccedilo

Power ON ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo sejam ligados e fiquem disponiacuteveis para utilizaccedilatildeo Esta acccedilatildeo eacute

dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==OFFrdquo

53

Power OFF ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo sejam desligados deixando de estar disponiacuteveis para utilizaccedilatildeo Esta

acccedilatildeo eacute dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==UPrdquo

Power Cycle ServerGroup

Acccedilatildeo que permite que todos os Servidores do ServerGroups em

visualizaccedilatildeo faccedilam um reboot e continuem disponiacuteveis para utilizaccedilatildeo Esta acccedilatildeo

eacute dependente do status do Grupo de Servidores fica activa quando

ldquoserverGroupStatus==UPrdquo

Activate ServerGroup

Permite que todos os Servidores do ServerGroups em visualizaccedilatildeo sejam

activados No final desta operaccedilatildeo o Grupo de Servidores fica em modo

ldquoserverGroupStatus==UPrdquo e todos os servidores ficam automaticamente

disponiacuteveis para utilizaccedilatildeo

Deactivate ServerGroup

Permite que todos os Servidores do ServerGroups em visualizaccedilatildeo sejam

desactivados No final desta operaccedilatildeo o Grupo de Servidores fica em modo

ldquoserverGroupStatus==DEACTIVATEDrdquo

Actions ServerGroup

Como no Serviccedilo os ldquotriggered actionsrdquo associadas a cada Template satildeo

parte integrante do Serviccedilo criado inclusive no Grupo de Servidores Se o Grupo

de Servidores em visualizaccedilatildeo tiver ldquotriggered actionsrdquo esta acccedilotildees estaraacute visiacutevel

ao utilizador para listagem

List Snapshots

Acccedilatildeo que permite listar todos os Snapshots existentes no Grupo de

Servidores

Nessa listagem eacute possiacutevel executar acccedilotildees como ldquoRevert Snapshotrdquo que

reverte um determinado Snapshot para o servidor especiacutefico ou ldquoDelete Snapshotrdquo

que permite a remoccedilatildeo de um Snapshot do sistema

Create Snapshot

Acccedilatildeo que permite a criaccedilatildeo de Snapshots no Grupo de Servidores

Existem campos obrigatoacuterios como o nome do Snapshot e a selecccedilatildeo de

um ou mais servidores de uma lista de servidores pertencentes ao Grupo de

Servidores Opccedilotildees como ldquoInclude Memory Staterdquo ou ldquoQuiesce filesystemrdquo estatildeo

tambeacutem disponiacuteveis para selecccedilatildeo aquando da criaccedilatildeo do Snapshot

54

Add Stereotype Disks

Acccedilatildeo que permite adicionar discos a um Grupo de Servidores O disco

adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores Satildeo

considerados ldquoStereotype Disksrdquo todos os discos existentes no grupo excepto

discos de boot

Qualquer acccedilatildeo de adiccedilatildeo de discos a um Grupo de Servidores soacute eacute

possiacutevel se natildeo existirem Snapshots relativos a qualquer Servidor desse Grupo de

Servidores

Esta acccedilatildeo lista todos os ldquoStereotype Disksrdquo jaacute existentes O utilizador

seleciona o que deseja clonar (disco base) e eacute adicionado um novo disco ao Grupo

de Servidores Esta acccedilatildeo carece da aprovaccedilatildeo do administrador

Add Virtual Disks

Acccedilatildeo que permite adicionar discos virtuais a um Grupo de Servidores O

disco adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores

Existem campos de preenchimento obrigatoacuterio como o nome do disco e

tamanho O webservice fornece um nome uacutenico e 10Gb de tamanho por defeito o

utilizador pode alterar estes campos Esta acccedilatildeo carece da aprovaccedilatildeo do

administrador Aleacutem de aprovar ou desaprovar este pedido pode inclusive definir

um novo custo

Add Physical Disks

Acccedilatildeo que permite adicionar discos fiacutesicos a um Grupo de Servidores O

disco adicionado fica acessiacutevel a todos os Servidores do Grupo de Servidores

Igualmente como a adiccedilatildeo de discos virtuais existem campos de

preenchimento obrigatoacuterio como o nome do disco tamanho e nesta opccedilatildeo o tipo

de RAID Acccedilatildeo que carece igualmente da aprovaccedilatildeo do administrador

Tabela 4 - Funccedilotildees associadas ao Grupo de Servidores

Funccedilatildeo Descriccedilatildeo

getLogicalServerGroup Obteacutem os detalhes associados a um Grupo de

Servidores Loacutegico em XML para visualizaccedilatildeo na

infowindow e opccedilatildeo de download

addServersToLogicalServerGroup Adiciona um Servidor a um Grupo de Servidores

Opccedilatildeo permissvel apenas se o nuacutemero de servidores

activos (ldquoactiveServerCountrdquo) for menor que o

nuacutemero maacuteximo de servidores

(ldquomaxServerCountrdquo)

55

removeServersFromLogicalServerGr

oup

Remove um Servidor de um Grupo de Servidores

Loacutegicos Opccedilatildeo permissvel apenas se o nuacutemero

miacutenimo de servidores (variaacutevel ldquominServerCountrdquo)

for menor que o nuacutemero de servidores activos

(variaacutevel ldquoactiveServerCountrdquo)

editLogicalServersServersGroup Permite a ediccedilatildeo de todos os Servidores

pertencentes a um Grupo de Servidores Loacutegicos

powerOnLogicalServersGroup Liga todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

powerOffLogicalServersGroup Desliga todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

powerCycleLogicalServersGroup Faz o reboot de todos os Servidores que pertencem

a um mesmo Grupo de Servidores Loacutegicos

activateLogicalServerGroup Activa todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

deactivateLogicalServerGroup Desactiva todos os Servidores que pertencem a um

mesmo Grupo de Servidores Loacutegicos

5525 Servidores

Um Grupo de Servidores eacute constituiacutedo por uma lista de Servidores Cada grupo como

jaacute foi referido pode ser completamente diacutespar dos demais dentro de um mesmo

Serviccedilo O mesmo jaacute natildeo acontece nos Servidores dentro de um mesmo Grupo de

Servidores As configuraccedilotildees dos Servidores dentro de um mesmo Grupo de

Servidores tem todos as mesmas caracteriacutesticas podendo variar apenas no numero de

discos memoacuteria e processamento

O utilizador poderaacute obter informaccedilotildees como nome do Servidor status se eacute ou

natildeo virtual se estaacute em cloud se eacute o servidor base memoacuteria e processamento para

futuros upgrades com progressbars para facilmente visualizar o estado actual custo

datas de criaccedilatildeo e modificaccedilatildeo localizaccedilatildeo do ficheiro da VM (acessiacutevel apenas ao

administrador) e as listas associadas de discos software e interfaces

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa aos Servidores

56

Figura 35 - Execuccedilatildeo tab ldquoServerrdquo

Export Server

Permite o download em ficheiro XML dos detalhes do Servidor em

visualizaccedilatildeo o utilizador poderaacute consultar mais tarde em modo offline os detalhes

desse Servidor Detalhes que ficam disponiacuteveis para visualizaccedilatildeo no clique do

icon do nome do Servidor respectivo no menu lateral esquerdo

XML View

Permite que seja possiacutevel a visualizaccedilatildeo de todos os detalhes do Servidor

directamente numa InfoWindow dentro do webservice A informaccedilatildeo em XML

torna-se vantajosa ao utilizador para a visualizaccedilatildeo de detalhes mais

pormenorizados e organizaccedilatildeo da infra-estrutura

Remove Server

A diferenccedila desta acccedilatildeo no Servidor para a mesma acccedilatildeo no Grupo de

Servidores eacute o facto da remoccedilatildeo ser do Servidor em visualizaccedilatildeo Para remover

mais do que um Servidor essa operaccedilatildeo teraacute obrigatoriamente que ser no Grupo

de Servidores

57

Edit Server

Como na remoccedilatildeo de servidores a diferenccedila desta acccedilatildeo para a mesma

acccedilatildeo no Grupo de Servidores eacute que a ediccedilatildeo de Servidores na tab Servidor apenas

afectaraacute o Servidor em visualizaccedilatildeo e natildeo os restantes Servidores do Grupo de

Servidores

Power ON Server

Acccedilatildeo que permite a ligaccedilatildeo do Servidor em visualizaccedilatildeo e que este fique

disponiacutevel para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica

activa quando ldquoserverStatus==OFFrdquo

Power OFF Server

Acccedilatildeo que permite que um Servidor seja desligado e que este fique

indisponiacutevel para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica

activa quando ldquoserverStatus==UPrdquo

Power Cycle Server

Acccedilatildeo que permite fazer o reboot a um Servidor e este continue disponiacutevel

para utilizaccedilatildeo Esta acccedilatildeo eacute dependente do status do Servidor fica activa quando

ldquoserverStatus==UPrdquo

Activate Server

Permite a activaccedilatildeo do Servidor em visualizaccedilatildeo No final desta operaccedilatildeo

o Servidor fica em modo ldquoserverStatus==UPrdquo e ficam automaticamente disponiacutevel

para utilizaccedilatildeo

Deactivate Server

Permite a desactivaccedilatildeo do Servidor em visualizaccedilatildeo No final desta

operaccedilatildeo o Servidor fica em modo ldquoserverStatus==DEACTIVATEDrdquo

Actions Server

Como no Grupo de Servidores os ldquotriggered actionsrdquo associadas a cada

Servidor satildeo parte integrante do Serviccedilo criado Se o Servidor em visualizaccedilatildeo

tiver ldquotriggered actionsrdquo esta acccedilatildeo estaraacute visiacutevel ao utilizador para listagem

List Snapshots

Acccedilatildeo que permite listar todos os Snapshots associados ao Servidor em

visualizaccedilatildeo Todas as acccedilotildees nos Snapshots satildeo relativas ao Servidor em questatildeo

Create Snapshot

Acccedilatildeo que permite a criaccedilatildeo de Snapshots no Servidor

Existem campos obrigatoacuterios como o nome do Snapshot O nome do

Servidor eacute preenchido automaticamente com o nome do Servidor que estaacute a ser

visualizado Opccedilotildees como ldquoInclude Memory Staterdquo ou ldquoQuiesce filesystemrdquo

estatildeo tambeacutem disponiacuteveis para selecccedilatildeo aquando da criaccedilatildeo do Snapshot

58

List ServerPool

Acccedilatildeo que permite a listagem de todas as pools de Servidores existentes no

webservice Na imagem seguinte podemos visualizar quatro pools de Servidores

que foram criadas pelo administrador

ldquoCreate Server Poolrdquo eacute uma acccedilatildeo atribuiacutedas apenas ao administrador com

campos obrigatoacuterios como nome da Pool

ldquoDelete Server Poolrdquo eacute outra acccedilatildeo atribuiacutedas apenas ao administrador

permitindo a remoccedilatildeo de uma Pool de Servidores do sistema

Esta operaccedilatildeo natildeo remove Servidores nem Serviccedilos mas remover todas as

associaccedilotildees jaacute existentes entre Servidores e utilizadores Como acccedilatildeo importante

o webservice evidencia isso mesmo com uma InfoWindow de aviso ao

administrador

VM Host

Acccedilatildeo que permite a listagem de todos os hosts fiacutesicos associados a uma

determinada Pool de Servidores

Nesta operaccedilatildeo obtecircm-se detalhes relativos ao host como eacute o caso do

nome id endereccedilo IP domiacutenio DNS tipo de virtualizaccedilatildeo modelo cluster

memoacuteria total e consumida dados dos processadores e ainda dados relativos ao

armazenamento (DataStores) e rede (VirtualSwitch)

Remote Session

Acccedilatildeo que permite a listagem de todas as Sessotildees Remotas atribuiacutedas ao

Servidor em visualizaccedilatildeo

Esta acccedilatildeo eacute dependente do status do Servidor fica activa quando

ldquoserverStatus==UPrdquo

A imagem seguinte evidencia as duas ligaccedilotildees existentes para a VM do

Servidor especiacutefico Duas ligaccedilotildees relativas agraves duas Interfaces disponiacuteveis no

Servidor uma na rede ldquoHP Networkrdquo com o endereccedilamento IP 16231875 e

outra na rede local da infra-estrutura rede ldquoCloudSystemrdquo com o endereccedilamento

IP 19216810203

As opccedilotildees de Sessotildees Remotas possiacuteveis satildeo as que jaacute foram descritas na

listagem das ldquoRemote Sessionsrdquo do Serviccedilo Neste caso direccionadas apenas ao

um uacutenico Servidor

Tabela 5 - Funccedilotildees associadas aos Servidores

Funccedilatildeo Descriccedilatildeo

getLogicalServer Obteacutem os detalhes de um Servidor Logico em formato XML

para visualizaccedilatildeo na infowindow e opccedilatildeo de download

59

findLogicalServer Obteacutem os Detalhes de um Servidor Loacutegico especiacutefico

addServer Addiciona um Servidor a um Grupo de Servidores Loacutegicos

se o nuacutemero de servidores activos (variaacutevel

ldquoactiveServerCountrdquo) for menor que o nuacutemero maacuteximo de

servidores (variaacutevel ldquomaxServerCountrdquo)

removeServer Remove um Servidor de um Grupo de Servidores Loacutegicos se

o nuacutemero miacutenimo de servidores (variaacutevel

ldquominServerCountrdquo) for menor que o nuacutemero de servidores

activos (variaacutevel ldquoactiveServerCountrdquo)

editLogicalServer Permite a ediccedilatildeo de memoacuteria e processamento de um

determinado Servidor Loacutegico

powerOnLogicalServer Liga um Servidor Loacutegico especiacutefico

powerOffLogicalServer Desliga um Servidor Loacutegico especiacutefico

powerCycleLogicalServer Reboot de um Servidor Loacutegico especiacutefico

activateLogicalServer Activaccedilatildeo de um Servidor Loacutegico especiacutefico

deactivateLogicalServer Desactivaccedilatildeo de um Servidor Loacutegico especiacutefico

getRdpFile Obteacutem o ficheiro RDP para download e posterior acesso

remoto

getLogicalServersAndIPs Obteacutem uma lista de todos os IPs das Interfaces de um

determinado Servidor Loacutegico

getVmHost Obteacutem os detalhes do Host associado a um Servidor Loacutegico

5526 Disco

Cada servidor tem necessariamente um ou mais discos associados estes podem ser

rotulados de ldquoStereotyperdquo ldquoVirtualrdquo ou ldquoPhysicalrdquo Um disco ldquoStereotyperdquo

corresponde a um disco-base ie um disco que existe no template (do servidor)

excepto disco de boot os restantes como o proacuteprio nome indica satildeo discos virtuais

ou fiacutesicos

Nesta tab o utilizador pode obter informaccedilatildeo do nome do disco tamanho tipo

de RAID tipo de Storage se eacute ou natildeo Bootable Shareable tipo de Raw Mapping

(VIRTUAL PHYSICAL NONE e OTHER) custo associado ficheiro do disco

(virtual - acessiacutevel apenas ao administrador) e data de criaccedilatildeo e modificaccedilatildeo

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa aos discos

60

Figura 36 - Execuccedilatildeo tab ldquoDisksrdquo

Add Stereotype Disks

Acccedilatildeo jaacute enunciada no Grupo de Servidores Como estamos a visualizar

um disco e as suas configuraccedilotildees esta acccedilatildeo estaraacute apenas disponiacutevel se o disco

em visualizaccedilatildeo natildeo for bootable Como jaacute referido apenas os discos que natildeo

sejam bootable satildeo considerados ldquoStereotype Disksrdquo e poderatildeo ser criados novos

discos com base no disco em questatildeo

Como no Grupo de Servidores tambeacutem nos discos esta opccedilatildeo soacute seraacute

possiacutevel se natildeo existirem Snapshots relativos a qualquer Servidor desse Grupo de

Servidores Esta acccedilatildeo carece da aprovaccedilatildeo do administrador

Tabela 6 - Funccedilotildees associadas aos Discos

Funccedilatildeo Descriccedilatildeo

addDiskToLogicalServerGroup Adiciona um Stereotype Disk a um Grupo de

Servidores Loacutegicos Operaccedilatildeo que carece da aprovaccedilatildeo

do Administrador

addNewDiskToLogicalServerGro

up

Adiciona um disco virtual ou fiacutesico a um Grupo de

Servidores Loacutegicos Operaccedilatildeo que carece da aprovaccedilatildeo

do Administrador O tamanho do disco eacute

automaticamente determinado pelo tipo do Grupo de

Servidor Loacutegico

61

5527 Software

Recursos como Software tambeacutem fazem parte dos recursos do Servidor Mediante a

instalaccedilatildeo preacutevia do ldquoServer Automationrdquo no MOE aquando da criaccedilatildeo do Template

poderatildeo ser associados nos recursos de cada Servidor uma lista de software como lista

de packages com SO software antiviacuterus base de dados etc previamente instalados

em VM e posteriormente transformados em Tamplate

Cada Servidor pertencente a um mesmo Grupo de Servidores teraacute uma mesma

lista de software base associado

Informaccedilotildees relativas ao software tambeacutem estatildeo disponiacutevel ao utilizador como

nome tipo tipo de OS tipo de Deployment Service ficheiro de configuraccedilatildeo do OS

(acessiacutevel apenas ao administrador) tipo de virtualizaccedilatildeo localizaccedilatildeo do ficheiro

relativo ao software (acessiacutevel apenas ao administrador) e data de criaccedilatildeo e

modificaccedilatildeo

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa ao Software

Figura 37 - Execuccedilatildeo tab ldquoSoftwarerdquo

List Softwares

Acccedilatildeo disponiacutevel apenas ao administrador permite a listagem de todo o

Software disponiacutevel no sistema O software pertencente ao Grupo de

ServidoresServidor estaacute disponiacutevel directamente no menu lateral esquerdo

Mediante a instalaccedilatildeo preacutevia do ldquoServer Automationrdquo no MOE aquando

da criaccedilatildeo do Template poderaacute ser associado nos recursos de cada Grupo de

ServidoresServidor uma lista de software como lista de packages com SO

software antiviacuterus base de dados etc

Software Detals

Acccedilatildeo disponiacutevel apenas ao administrador permite a visualizaccedilatildeo de todos

os detalhes do Software

62

Tabela 7 - Funccedilotildees associadas ao Software

Funccedilatildeo Descriccedilatildeo

listSoftware Obteacutem a lista de todo o Software disponiacutevel no

webservice Operaccedilatildeo executada apenas pelo

Administrador ou Arquitecto de toda a infra-estrutura

de orquestraccedilatildeo

getSoftware Obteacutem os detalhes de um Software especiacutefico

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

5528 Interface

As Interfaces (NICs) fazem igualmente parte das configuraccedilotildees base de cada Servidor

podendo no entanto existir redundacircncia ou natildeo

Informaccedilotildees das Interfaces disponiacutevel na tab respectiva como nome se eacute a

interface primaacuteria data de criaccedilatildeo modificaccedilatildeo e informaccedilotildees sobre a rede como

nome se eacute puacuteblica partilhada tipo e endereccedilo IP com informaccedilotildees como o endereccedilo

IP propriamente dito tipo de atribuiccedilatildeo custo e uma lista de NatEntrys (Network

Address Translation)

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo pelo utilizador aquando da

visualizaccedilatildeo de toda a informaccedilatildeo relativa as Interfaces

Figura 38 - Execuccedilatildeo tab ldquoInterfacerdquo

List Subnets

Acccedilatildeo disponiacutevel apenas ao administrador permite a listagem de todas as

redes existentes no sistema com informaccedilotildees como nome da rede endereccedilo

mascara source tipo de IP se eacute uma rede puacuteblica e os endereccedilamentos DHCP e

estaacutecticos nuacutemero de IPs usados e em uso etc

63

Add IPAddress

Acccedilatildeo que permite atribuir automaticamente (pelo sistema) um IP

flutuante a uma Interface Uma Interface associada a um Servidor dentro de um

determinado Serviccedilo

Com esta acccedilatildeo o utilizador solicita um IP flutuante de uma pool de IPs

que o administrador tenha criado Nesse sentido o utilizador apenas solicita um IP

flutuante para uma Interface (NIC0) de um determinado Servidor pertencente a

um Serviccedilo Como o utilizador estaacute a visualizar a Interface os campos satildeo

automaticamente preenchidos Operaccedilatildeo apenas permitida em servidores loacutegicos

em cloud

Remove IPAddress

Acccedilatildeo que permite remover um IP flutuante Neste caso o utilizador tem

que fornecer o endereccedilo IP flutuante previamente adquirido

Move IPAddress

Acccedilatildeo que permite mover um determinado IP flutuante entre instacircncias

Na eventualidade do utilizador jaacute for detentor de um IP flutuante pode move-lo

atribuindo-o agrave Interface em visualizaccedilatildeo Operaccedilatildeo apenas permitida em

servidores loacutegicos em cloud

VM Access

Acccedilotildees de acesso remoto directamente na Interface

Esta acccedilotildees satildeo dependente do status do Servidor ficam activas quando

ldquoserverStatus==UPrdquo

Como estamos directamente a visualizar uma Interface o acesso remoto eacute

feito atraveacutes dessa Interface desse IP conhecido

As opccedilotildees de Sessotildees Remotas possiacuteveis satildeo as que jaacute foram descritas na

listagem das ldquoRemote Sessionsrdquo do Serviccedilo

RDP (Remote Desktop Protocol)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet

VMRC (VMware Remote Console)

Tabela 8 - Funccedilotildees associadas agraves Interfaces

Funccedilatildeo Descriccedilatildeo

getVMID Obteacutem o ID de uma VM atarveacutes do endereccedilo IP da

Interface

64

executeRDP Execuccedilatildeo directa do comando RDP mstscexe

vIPAddress console

addFloatingIPAddress Adiciona automaticamente um endereccedilo IP flutuante a

uma determinada Interface Operaccedilotildees de IP flutuante natildeo

satildeo suportadas para Servidores Loacutegicos que natildeo estejam

em cloud

removeFloatingIPAddress Remove um determinado endereccedilo IP flutuante de um

Servidor Loacutegico Operaccedilotildees de IP flutuante natildeo satildeo

suportadas para Servidores Loacutegicos que natildeo estejam em

cloud

moveFloatingIPAddress Associa um determinado endereccedilo IP flutuante jaacute

existente a uma Interface Operaccedilotildees de IP flutuante natildeo

satildeo suportadas para Servidores Loacutegicos que natildeo estejam

em cloud

5529 Redes

As Redes como o Software teratildeo que estar previamente configuradas e

implementadas para posterior uso em Templates e Serviccedilos A listagem de redes

existentes na infra-estrutura estaacute apenas disponiacutevel ao Administrador ou Arquitecto de

toda a infra-estrutura de orquestraccedilatildeo e permite a visalizaccedilatildeo de todas as redes

existentes com informaccedilotildees como o nome da rede gama de endereccedilos IP mascara

tipo de IPV e se eacute um endereccedilamento estaacutectico ou obtido por DHCP

Figura 39 - Listagem das redes existentes

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa agraves Redes

65

Tabela 9 - Funccedilotildees associadas agraves Redes

Funccedilatildeo Descriccedilatildeo

listSubnets Obteacutem uma lista com todas as redes existentes no

webservice

listSubnet Obteacutem os detalhes de uma rede especiacutefica

55210 Snapshots

Os Snapshots satildeo um recurso valioso quando nos deparamos com problemas de

inconsistecircncias desastres seguranccedila etc que natildeo sendo backup permite a

recuperaccedilatildeo do servidor em segundos contrariamente a restauraccedilatildeo a partir de um

backup tradicional recuperaccedilatildeo ou reinstalaccedilatildeo de um SO ou qualquer outra teacutecnica

com o seu exagerado tempo de consolidaccedilatildeo

A listagem de todos os Snapshots estaacute disponiacutevel aquando da visualizaccedilatildeo da

informaccedilatildeo relativa ao Grupo de Servidores onde satildeo visualizados todos os Snapshots

pertencentes ao grupo e no Servidor onde apenas satildeo visualizados os Snapshots desse

Servidor em visualizaccedilatildeo

Uma lista relacionada de Snapshots sucessivos com informaccedilotildees como nomes

do Serviccedilo do Grupo de Servidores e do Servidor assim como nome do Snapshot a

sua relaccedilatildeo parental e se estaacute ou natildeo activo ficam disponiacuteveis ao utilizador

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa aos Snapshots

Figura 40 - Execuccedilatildeo tab ldquoSnapshotrdquo

Tabela 10 - Funccedilotildees associadas aos Snapshots

Funccedilatildeo Descriccedilatildeo

listServerSnapshots Obteacutem a listagem de todos os Snapshots de um Servidor

Loacutegico especiacutefico

listServerGroupSnapshots Obteacutem a listagem de todos os Snapshots de um Grupo de

Servidor Loacutegico

66

snapshotCreate Cria um Snapshot de um Servidor especiacutefico

revertServerSnapshot Reverte um determinado Snapshot para o Servidor

correspondente

deleteServerSnapshot Remove um Snapshot do sistema

55211 Request

A visualizaccedilatildeo do estado actual das acccedilotildees do utilizador eacute considerado um dos pontos

chave desta framework O simples update da ldquoprogressbarrdquo carece de uma perfeita

sincronizaccedilatildeo entre o Webservice e o MOE

O utilizador poderaacute visualizar sempre uma listagem de todos os seus pedidos ou

pormenoriza-los por relaccedilotildees 1) UtilizadorServiccedilos 2) TemplateServiccedilos 3)

Serviccedilo

A listagem de todos os pedidos estaacute disponiacutevel aquando da visualizaccedilatildeo da

informaccedilatildeo relativa a qualquer recurso sendo que a opccedilatildeo 1) eacute geral e sempre

disponiacutevel e as opccedilotildees 2) e 3) satildeo especiacuteficas a recursos em visualizaccedilatildeo Ficam assim

disponiacuteveis informaccedilotildees como tipo data submissatildeo do pedido comeccedilo e fim status

progresso () nome do Serviccedilo ao qual o pedido estaacute associado etc

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo da listagem

dos pedidos do utilizador

Figura 41 - Execuccedilatildeo tab ldquoRequestsrdquo

Opccedilotildees como ldquoAproval Staterdquo e ldquoContinuerdquo de pedidos que carecem da

aprovaccedilatildeo do Administrador ficam apenas acessiacuteveis aos utilizadores com permissotildees

de administraccedilatildeo e a opccedilatildeo de cancelamento acessiacutevel aos utilizadores que solicitaram

esses pedidos

67

Tabela 11 - Funccedilotildees associadas aos Requests

Funccedilatildeo Descriccedilatildeo

listRequests Listagem de todos os pedidos do utilizador

listRequestsTemplateDetails Listagem de todos os pedidos do par utilizadorTemplate

listRequestsServiceDetails Listagem de todos os pedidos do par utilizadorServiccedilo

getRequestInfo Obteacutem detalhes de toda a informaccedilatildeo associada a um

determinado pedido

getPercentComplete Obteacutem a percentagem de um pedido

getRequest Obteacutem os detalhes particulares de um pedido

setRequestApprovalState Aprovaccedilatildeo de um pedido feito por um utilizador e que

esteja no estado PAUSED_FOR_APPROVAL

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

continueRequest Permite a continuaccedilatildeo de um pedido feito por um

utilizador e que esteja no estado IN_PROGRESS

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

cancelRequest Cancelamento de um pedido

55212 Pools de Servidores

Uma pool de servidores eacute um grupo de um ou mais hosts de virtualizaccedilatildeo com a uma

mesma arquitetura com acesso agraves mesmas redes virtuais e fiacutesicas e recursos de

armazenamento As Pools de servidores permitem balanceamento de carga recursos

de alta disponibilidade e partilha de alguns recursos para todos os membros dessa

pool

Informaccedilotildees das Pools disponiacutevel na tab respectiva como nome ID da

organizaccedilatildeo Ids dos Hosts e o grupo de utilizadores associados a cada Pool de

Servidores

Segue-se as acccedilotildees possiacuteveis de execuccedilatildeo aquando da visualizaccedilatildeo de toda a

informaccedilatildeo relativa a uma determinada Pool de Servidores

68

Figura 42 - Execuccedilatildeo tab ldquoServerPoolsrdquo

Tabela 12 - Funccedilotildees associadas agraves Pools de Servidores

Funccedilatildeo Descriccedilatildeo

listServerPools Obteacutem uma listagem de todas as Pools de Servidores para

a criaccedilatildeo de um Serviccedilo

listServerPoolsTab Obteacutem todas as Pools de Servidores existentes no

webservice Informaccedilatildeo disponibilizada na tab

serverPools

listVmHostIds Obteacutem uma lista com todos os Hosts associados a uma

Pool de Servidores

getServerPool Obteacutem os detalhes de uma Pool de Servidores

createServerPool Permite a criaccedilatildeo de uma nova Pool de Servidores

Operaccedilatildeo executada apenas pelo Administrador ou

Arquitecto de toda a infra-estrutura de orquestraccedilatildeo

deleteServerPool Remove uma Pool de Servidores do systema Operaccedilatildeo

executada apenas pelo Administrador ou Arquitecto de

toda a infra-estrutura de orquestraccedilatildeo

56 Camada de Dados

Numa orientaccedilatildeo a objectos os objectos considerados ldquopersistentesrdquo satildeo todos os

objectos que continuam a existir apoacutes o teacutermino de execuccedilatildeo do programa por norma

guardados numa base de dados relacional ou mesmo em ficheiros em disco Jaacute os

objectos considerados ldquonatildeo persistentesrdquo deixam de existir quando o programa

termina satildeo objectos armazenados em tempo de execuccedilatildeo e satildeo usados apenas

durante esse periacuteodo

561 Dados natildeo persistentes

Os dados natildeo persistentes nesta framework destinam-se exclusivamente ao

utilizador permissotildees de acesso e seguranccedila Internamente o servidor guarda em

tempo de execuccedilatildeo dados relativos ao utilizador como eacute o caso do username

69

(userPrincipal) password (IOClientPasswordHandler) privileacutegios de acesso

(rolePrincipal) grupo de utilizadores (userGroups) e credenciaccedilotildees necessaacuteria

(TrustAllX509TrustManager) para comunicaccedilatildeo com a API do MOE A comunicaccedilatildeo

eacute estabelecida (IOSoapServicePort_Client) e quando existir a solicitaccedilatildeo de

determinados conteuacutedos estes satildeo disponibilizados ou natildeo mediante o ldquotipordquo (role)

de utilizador e suas permissotildees

Neste contexto a autenticaccedilatildeo eacute todo um processo de determinar se uma

entidade eacute quem quem diz ser e a autorizaccedilatildeo o processo de conceder permissotildees de

acesso a recursos Logicamente a autenticaccedilatildeo precede a autorizaccedilatildeo

O moacutedulo login implementa isso mesmo todos os passos de autenticaccedilatildeo

credenciaccedilatildeo e permissotildees uma teacutecnica conhecida como Realm JAAS (Java

Authentication and Authorization Service) como conjunto de interfaces de

programaccedilatildeo de aplicaccedilotildees (APIs) com opccedilotildees de autenticaccedilotildees em modo Basic e

Form usando para isso os denominados realms File e JDBC (Java Database

Connectivity) em runtime

Figura 43 - Realm JAAS (Java Authentication and Authorization Service)

562 Dados persistentes

5621 Cookies HTTP

Os dados persistentes destinam-se especialmente ao utilizador e foram idealizados

nesse sentido tornar a relaccedilatildeo utilizadorwebservice mais amigaacutevel e acima de tudo

praacutetica e independente do ldquostatusrdquo da infra-estrutura

Os tatildeo conhecidos COOKIEs HTTP satildeo dados armazenado no

navegadorbrowser do utilizador quando este acede a um determinado site Eacute um

mecanismo usado para guardar as informaccedilotildees relativas a um utilizador como

username formataccedilatildeo de conteuacutedos actividades escolhas cliques etc para quando

aceder novamente a esse site essas configuraccedilotildees anteriores estarem preacute-definidas e

configuradas

70

Os cookies de autenticaccedilotildees em sites web satildeo o meacutetodo mais comum e nesta

framework este meacutetodo foi usado para guardar dados relativos ao utilizador O

servidor natildeo precisa de suportar o peso das ligaccedilotildees siacutencronas para saber se um

determinado utilizador estaacute logado ou natildeo e neste sentido este meacutetodo torna-se eficaz

Os dados guardados e relativos ao utilizador que satildeo dados como username

role layout do webservice (gtheme) layout do menu lateral esquerdo (ttheme)

informaccedilatildeo relativa agraves regiotildees do webservice visualizada ou omitida (nregion

wregion eregion sregion) e um boolean (islogin) para uma mensagem de boas

vindas aquando do login Cada vez que um determinado utilizador alterar o layout do

webservice ou fechar o painel de visualizaccedilatildeo de determinada informaccedilatildeo satildeo passos

que satildeo guardados e durante toda a navegaccedilatildeo estas acccedilotildees permaneceratildeo guardadas

mesmo em futuros logins desse utilizador

5622 Modelo ER

Uma infra-estrutura como o MOE eacute desenhada e implementada para funcionamento

online e todas as alteraccedilotildees como criaccedilatildeo de um Serviccedilo ediccedilatildeo desse Serviccedilo

criaccedilatildeo de Discos etc satildeo alteraccedilotildees com acccedilatildeo imediata na infra-estrutura

Infelizmente nem tudo corre sempre como queremos e quando mais precisamos de

uma ou outra implementaccedilatildeo ou configuraccedilatildeo eacute quando o serviccedilo estaacute em baixo e por

uma ou outra razatildeo ficamos impossibilitados de o fazer

A implementaccedilatildeo de uma Base de Dados com toda a informaccedilatildeo relativa ao

utilizador colmata sempre estas falhas imprevistas Um implementaccedilatildeo independente

da infra-estrutura que permite ao utilizador ter acesso total aos seus dados crie edite

apague recursos em modo offline com sincronizaccedilatildeo com o MOE automaacuteticamente ou

por acccedilatildeo do utilizador

Um moacutedulo uacutetil e praacutetico que facilita o acesso e configuraccedilotildees dos serviccedilos do

utilizador Acccedilotildees que carecem de algum tempo de implementaccedilatildeo apoacutes a sua

solicitaccedilatildeo Acccedilotildees agarradas ao utilizador ao seu tempo e disposiccedilatildeo e natildeo agrave infra-

estrutura Acccedilotildees tidas pelo utilizador que sem preocupaccedilatildeo com tempos de execuccedilatildeo

e implementaccedilatildeo cria edita ou apaga o seu Serviccedilo e numa futura ligaccedilatildeo tudo eacute

sincronizado automaticamente

Segue-se o modelo ER implementado que descreve conceptualmente os dados

e seus relacionamentos em UML Em realce os principais recursos

71

Figura 44 - Modelo ER

Pela anaacutelise do modelo ER facilmente se percebe como os recursos se

relacionam entre siacute Segue-se uma explicaccedilatildeo do modelo e dos seus recursos

principais

Cada Template tem uma lista de Serviccedilos associados que aquando da sua

implementaccedilatildeo tiveram esse Template como base e apresenta um e um soacute custo total

que corresponde a soma de todos os recursos implementados e permitidos nesse

Template

72

Um Serviccedilo como jaacute referido tem sempre por base um e um soacute Template um

e um soacute ldquoLeasePeriodrdquo que corresponde ao tempo de utilizaccedilatildeo e um e um soacute custo

total associado Este custo eacute igualmente a soma de todos os recursos instanciados e

em uso nesse Serviccedilo No Serviccedilo eacute possiacutevel implementar uma nova Entidade

denominada ldquoServiceActionrdquo que corresponde a um e um soacute conjunto de acccedilotildees a

executar automaticamente antes durante ou depois da criaccedilatildeo desse Serviccedilo O

Serviccedilo encontra-se sempre em um e um soacute estado (ServiceEntityStatusEnum) de cada

vez que eacute acedido Logicamente como referido ao longo do presente relatoacuterio um

Serviccedilo eacute constituiacutedo por uma lista de Grupos de Servidores numa relaccedilatildeo de um para

muitos

Um Grupo de Servidores como o Serviccedilo apresenta tambeacutem um e um soacute

conjunto de acccedilotildees a executar automaticamente antes durante ou depois da criaccedilatildeo

desse Serviccedilo nesse Grupo de Servidores em especiacutefico Novas Entidades satildeo aqui

retratadas como seguranccedila (LogicalFirwallRuleGoup) e balanceamento de carga

(LogicalLoadBalancer) com a relaccedilatildeo de muitos para um Um Grupo de Servidores

estaacute sempre associado a um e um soacute Serviccedilo e eacute constituiacutedo por uma lista de

Servidores numa relaccedilatildeo de um para muitos Uma nova Entidade aparece no Grupo de

Servidores (LogicalIPAddress) com a atribuiccedilatildeo de um IP uacutenico ao Grupo

Um Servidor relaciona-se com o Grupo de Servidores numa relaccedilatildeo de muitos

para um contrariamente agrave relaccedilatildeo com as Entidades LogicalSoftware e LogicalDisk

cuja relaccedilatildeo eacute de muitos para muitos Jaacute a relaccedilatildeo com LogicalNetworkInterface eacute

apenas uma relaccedilatildeo de um para muitos um Servidor pode ter muitas Interfaces mas

uma Interfaces estaacute sempre associada a um e um soacute Servidor

Por uacuteltimo como componentes do Servidor Software Discos e Interfaces

Um mesmo Software pode estar instanciado em muitos Servidores assim como

muitos Servidores podem ter uma lista de Software Os Discos com a opccedilatildeo ldquosharedrdquo

podem pertencer a vaacuterios Servidores e vice-versa As Interfaces aleacutem de pertencer a

um e um soacute Servidor tem igualmente um e um soacute IP associado

57 Feedback

O presente trabalho como jaacute referido teve sempre como objectivo uacuteltimo a facilidade

de acccedilotildees do utilizador visualizaccedilatildeo e organizaccedilatildeo da disponibilizaccedilatildeo de toda a

informaccedilatildeo e nesse intuito ao longo de toda a elaboraccedilatildeo foram desencadeadas vaacuterias

apresentaccedilotildees ao Orientador da Tese professor Paulo Lopes e Orientador da

elaboraccedilatildeo na HP Rui Ramos Os Feedbacks serviram para redireccionamentos e

orientaccedilotildees de programaccedilatildeo

A disponibilizaccedilatildeo da informaccedilatildeo por Tabs transmite toda a informaccedilatildeo ao

utilizador de uma forma organizada facilmente acessiacutevel e raacutepida na percepccedilatildeo dessa

informaccedilatildeo e suas acccedilotildees possiacuteveis associadas

73

A alteraccedilatildeo aconselhada pelo Rui Ramos na ediccedilatildeo de Servidores do Grupo de

Servidores como a passagem de listagens para um simples ldquobuttonrdquo com um sinal ldquo+rdquo

para adicionar Servidores ou um sinal ldquo-rdquo para remover tornou-se mais praacutetica e

intuitiva

Disponibilizaccedilatildeo de mais meios de acesso agraves VMs como a opccedilatildeo VMRC

(VMware Remote Console) ou RDP (Remote Desktop Protocol) satildeo sempre opccedilotildees

vaacutelidas e uacuteteis para o utilizador final

A disponibilizaccedilatildeo da informaccedilatildeo e das acccedilotildees associadas agrave medida que o

utilizador vai descendo no menu em aacutervore (menu lateral esquerdo) torna-se uacutetil pela

visualizaccedilatildeo hieraacuterquica de todos os recursos e acima de tudo praacutetico ao que o

utilizador realmente pretende com um simples clique

Personalizaccedilatildeo do layout aconselhada pelo professor Paulo Lopes com os

diversos ldquoThemesrdquo opccedilotildees de visualizaccedilatildeoocultaccedilatildeo de informaccedilatildeo etc com as

valecircncias jaacute descritas no iniacutecio deste capiacutetulo

Opccedilatildeo ldquoDatagridrdquo onde a disponibilizaccedilatildeo da informaccedilatildeo passa de simples

Tabs para listagem em tabelas Visualizaccedilatildeo uacutetil quando a informaccedilatildeo eacute demasiada

evitando assim o scroll do utilizador na busca da restante informaccedilatildeo bastando para

isso selecionar a ldquoquantidaderdquo de informaccedilatildeo que pretende visualizar naquele

momento

Feedbacks sempre positivos e atempados para as alteraccedilotildees necessaacuterias a

efectuar no framework

58 Questotildees principais

No decorrer da elaboraccedilatildeo deste webservice foram seguidos caminhos e

implementaccedilotildees que de um modo geral se tornaram praacuteticas e uacuteteis existindo no

entanto algumas desaconselhadas pela especificidade deste tipo de implementaccedilotildees

Foi implementada a opccedilatildeo de visualizaccedilatildeo e acccedilotildees em modo offline Foi

criada uma base de dados que suportava todos os dados do MOE a sincronizar

aquando do refresh do webservice ou por acccedilatildeo do utilizador Tal opccedilatildeo foi

desaconselhada pelo facto do sistema estar sempre online disponiacutevel e ter custos

associados

A transformaccedilatildeo de datas ldquoepoch2daterdquo e ldquodate2epochrdquo foi uma das opccedilotildees

que mais trabalho deu pelo facto da API natildeo indicar que o referido nuacutemero eacute a data

em eacutepoca e as casas decimais que entram na conversatildeo Uma eacutepoca em Unix (o

conhecido Unix timestamp) eacute o nuacutemero em segundos que distam de 01 de Janeiro de

1970 ou seja eacute o tempo Unix 0 que corresponde agrave meia-noite de 01011970 Por

norma uma data em eacutepoca eacute um nuacutemero inteiro de 32 bits As duas funccedilotildees

ldquoepoch2daterdquo e ldquodate2epochrdquo tratam dessas converotildees para o utilizador poder

observar as datas numa formataccedilatildeo legiacutevel Esta formataccedilatildeo ainda carece de uma

74

transformaccedilatildeo do dia com o mecircs para ser apresentada no formato europeu

diamecircsano

Existe coacutedigo HTML que eacute criado dinamicamente esta opccedilatildeo tornou-se

bastante uacutetil pela disponibilizaccedilatildeo de grandes quantidades de informaccedilatildeo nos mesmos

ldquoinput boxesrdquo como eacute o caso de toda a informaccedilatildeo do Servidor dentro de um mesmo

Grupo de Servidores A informaccedilatildeo eacute diferente mas o layout eacute o mesmo por isso uma

organizaccedilatildeo adequada de IDs criados dinamicamente faz toda a diferenccedila

O tratamento de erros eacute algo que por vezes eacute decurado no dueto utilizador-

webservice Um webservice quer-se amigaacutevel e nesse intuito paacuteginas em branco

completamente diferentes do layout do webservice com erros como 404 ou 500 satildeo

desaconcelhadas Assim foi inicialmente implementado esse tratamento directamente

no ficheiro ldquoWebContentWEB-INF webxmlrdquo que redirecionava o utilizador para

paacuteginas HTML com layout igual ao webservice com o respectivo nuacutemero do erro e a

mensagem correspendente para informaccedilatildeo Uma mudanccedila e redireccionamento

draacutestico obrigando o utilizador a voltar atras e tentar de novo Optou-se pelo

tratamento directo em javascript com a visualizaccedilatildeo da mensagem de erro numa

ldquoInfoWindowrdquo sem redireccionamentos nem novas paacuteginas

A API do MOE apresenta igualmente alguns pontos que precisam de ser

melhorados em futuras versotildees Foram implementados alguns caminhos secundaacuterios

quando tudo poderia ser mais faacutecil se a API fornecesse essa implementaccedilatildeo

directamente

Informaccedilatildeo detalhada dos Templates

O objectivo deste webservice eacute criar serviccedilos e apoacutes criaccedilatildeo fazer uso dos

recursos A implementaccedilatildeo de um Serviccedilo tem por base um Template que lhe estaraacute

sempre associado Templates existentes num Cataacutelogo de Serviccedilos e com informaccedilatildeo

sobre os recursos que ficaram disponiacuteveis apoacutes a criaccedilatildeo do Serviccedilo

Naturalmente o utlizador percorre todos os Templates na busca da informaccedilatildeo

que melhor se adapte agraves suas necessidades Se esse informaccedilatildeo se apresenta escassa o

utilizador natildeo vai ficar a saber dos detalhes dos recursos que poderaacute usar aquando da

criaccedilatildeo do serviccedilo

A API natildeo fornece informaccedilatildeo detalhada dos Templates apenas uma

informaccedilatildeo muito resumida natildeo disponibilizando ao utilizador a informaccedilatildeo

associada por exemplo ao custo de cada servidor memoacuteria processador nuacutemero de

interfaces software etc

O presente webservice jaacute disponibiliza toda essa informaccedilatildeo ao utilizador

sendo que este pode navegar no Cataacutelogo de Serviccedilos do menu lateral esquedo e

visualizar toda a informaccedilatildeo detalhada dos Templates escolher o que melhor se

enquadre dentro das suas necessidades e finalmente criar o Serviccedilo

75

VMID

O utilizador pode assim usar os recursos depois do Serviccedilo criado Para a

criaccedilatildeo de uma sessatildeo remota o ID da VM era essencial Tal informaccedilatildeo natildeo existe

na API do MOE Uma listagem de VMIDs por utilizador associadas a cada serviccedilo

por servidor por interface qualquer uma destas quatro opccedilotildees era vaacutelida

ldquocustomTemplateAttributesrdquo na criaccedilatildeo do Serviccedilo

Na criaccedilatildeo de um Serviccedilo existem campos de preenchimento automaacutetico

campos obrigatoacuterios e outros opcionais Assim eacute necessaacuterio fornecer o

ldquoserviceNamerdquo (obrigatoacuterio) templateName (automatico) leasePeriod (automatico

mas o utilizador pode mudar) hostname (obrigatoacuterio) serverPoolNames (automaacutetico

mas o utilizador pode mudar) ownerEmailAddress (obrigatoacuterio) note (opcional)

billingCode (opcional) e customTemplateAttributes (opcional) A falta da API reside

neste uacuteltimo campo ldquocustomTemplateAttributesrdquo onde o utilizador poderia escolher

previamente o nuacutemero de servidores memoacuteria processadores tipo de endereccedilamento

das interfaces etc

computeServerIds do ServerPools

Uma informaccedilatildeo valiosa para a criaccedilatildeo de Pools de Servidores natildeo sabendo

os IDs dos computeServerIds natildeo eacute possiacutevel chegar aos Compute Resources para

poder adicionar recursos agraves Pools Outra falha detectada

59 Visatildeo global

Uma interface baseada no protocolo REST (Representational State Transfer) para

troca de informaccedilatildeo e direcionada aos recursos disponibilizados na Web apresenta-se

como vantagem quando estamos a lidar com isso mesmo recursos

Um conjunto de princiacutepios como HTTP e URIs que usando REST exploram

a arquitectura Web para o seu benefiacutecio usando a simplicidade natildeo soacute de transporte

como tambeacutem de protocolos

Espelhadas as vantagens do protocolo REST o presente webservice torna-se

assim mais simples em comunicaccedilatildeo e no acesso aos recursos sem o atraso da

sobrecarga apreciaacutevel na construccedilatildeo de mensagens do protocolo SOAP (Simple

Object Access Protocol) do MOE

Figura 45 - Mensagens SOAP na invocaccedilatildeo de processos do MOE

76

Figura 46 - Obtenccedilatildeo de recursos atraveacutes da API RESTfull do WEBSERVICE

Comparativamente agrave implementaccedilatildeo em siacute no MOE existe um uacutenico menu de

acesso a todas as acccedilotildees possiacuteveis as operaccedilotildees de Grupo tornam-se assim cansativas

e desmotivadoras arrantando o utilizador para uma sequecircncia de cliques ateacute a acccedilatildeo

final Opccedilotildees como ediccedilatildeo do Grupo de Servidores natildeo existem tal eacute possiacutevel apenas

na ediccedilatildeo directa em cada Servidor No webservice basta um clique e eacute executada

uma acccedilatildeo de grupo como por exemplo desligar todo o Grupo de Servidores A ediccedilatildeo

do Grupo de Servidores eacute arrastada a todos os Servidores do Grupo apenas com uma

simples ediccedilatildeo de memoacuteria e processamento no Grupo

Como nas acccedilotildees de Grupo se o utilizador pretender uma acccedilatildeo numa

interface especiacutefica teraacute que percorrer a sequecircncia e cliques contrariamente ao

presente webservice com acccedilatildeo directa quer no menu lateral esquerdo quer na

visualizaccedilatildeo directa da informaccedilatildeo da interface

Toda a informaccedilatildeo a apresentar relativamente aos recursos eacute vasta requerendo

uma organizaccedilatildeo inteligente nessa apresentaccedilatildeo com opccedilotildees de

visualizaccedilatildeoocultaccedilatildeo dessa informaccedilatildeo se o utilizador assim o entender Acccedilotildees

possiacuteveis aquando da visualizaccedilatildeo de determinada informaccedilatildeo devem estar visiacuteveis e

acessiacuteveis No MOE isso eacute difiacutecil ou quase impossiacutevel porque a interface natildeo foi

desenhada desse modo a informaccedilatildeo apresentada torna-se desorganizada e

desmotivada a leitura

510 Resumo

Este capiacutetulo comeccedila por descreve a arquitectura usada e as suas camadas seguindo-

se um exemplo simplificado das relaccedilotildees da framework e plataformas (MOE e

VMware) Satildeo apresentados conceitos como rapidez organizaccedilatildeo e personalizaccedilatildeo

nm desenho guiado pela Interface do Utilizador Como nuacutecleo deste capiacutetulo eacute feita

toda a descriccedilatildeo da framework por camadas da Arquitectura apresentada

apresentaccedilatildeo loacutegicaserviccedilos e dados onde satildeo descritas todas as acccedilotildees passiveis de

serem executadas por recurso Por uacuteltimo os feedback tidos ao longo da

implementaccedilatildeo algumas questotildees consideradas importantes e finalmente uma visatildeo

global como foco

77

6 Consideraccedilotildees Finais

Esta tese resultou de uma proposta de tema de tese que a HP Portugal submeteu ao

Departamento de Informaacutetica da FCTUNL e que apoacutes algumas interacccedilotildees resultou no

tema intitulado Framework para a construccedilatildeo de ldquoportais de negoacuteciordquo para gestatildeo de

solicitaccedilotildees IaaS na HP Cloud

A primeira fase de Preparaccedilatildeo de Dissertaccedilatildeo ocorreu no 1ordm semestre do ano

lectivo de 20122013 e realizou-se essencialmente neste departamento pontuada por

esporaacutedicas reuniotildees na HP Portugal (Quinta da Fonte Paccedilo De Arcos) A segunda de

Elaboraccedilatildeo da Dissertaccedilatildeo decorreu imediatamente apoacutes a primeira e cumpriu-se

totalmente nas instalaccedilotildees da HP Portugal

Durante a primeira fase estudou-se o paradigma de computaccedilatildeo na cloud os seus

periacutemetros (modelos de implantaccedilatildeo) e modelos de serviccedilo Estudou-se tambeacutem a

virtualizaccedilatildeo tecnologia base da computaccedilatildeo na cloud desde a sua origem ao seu estado

actual Estudaram-se ainda as plataformas de virtualizaccedilatildeo de servidores com maior

presenccedila nos centros de dados o ESXi da VMware o XenServer da Citrix Systems e o

Hyper-V da Microsoft e ainda a tecnologia proprietaacuteria da HP designada HP Integrity

Virtual Machines Estudaram-se ainda as tecnologias de armazenamento abordando-se os

aspectos de integridade fiabilidade e desempenho oferecidos pelos Redundant Array of

Independent Disks as redes de armazenamento orientadas ao bloco Storage Area

Networks e aos ficheiros Network Attached Storage A virtualizaccedilatildeo do armazenamento

ndash tanto ao niacutevel da sua utilizaccedilatildeo para armazenar VMs como para constituir ldquodiscosrdquo de

VMs foi estudada em seguida Os aspectos da virtualizaccedilatildeo das redes foram tambeacutem

estudados

Abordados todos os conceitos e tecnologias base seguiu-se o estudo da HP Cloud

em particular a HP CloudSystem Matrix no seu ambiente Matrix Operating Environment

como infra-estrutura de trabalho da segunda parte da dissertaccedilatildeo um vasto conjunto de

componentes software e hardware que vatildeo desde os servidores ProLiant sistemas de

armazenamento EVA infra-estruturas de rede (switches e NICs) etc ateacute ao ambiente de

operaccedilatildeo Matrix com o vCenter Numa perspectiva mais conceptual estudamos os papeacuteis

dos ldquoutilizadores da cloudrdquo administrador arquitecto e consumidor de serviccedilos bem

como a funccedilatildeo do Cataacutelogo de Serviccedilos do Template e a possibilidade de definir

operaccedilotildees de orquestraccedilatildeo da infra-estrutura

Com a noccedilatildeo exacta do trabalho a implementar foram estudadas diversas

linguagens e paradigmas e suas vantagens e inconvenientes Finalmente foi apresentada

uma arquitectura da soluccedilatildeo e um cronograma para a segunda fase dos trabalhos O

esforccedilo dispendido na primeira fase foi por natildeo ter outra tarefa que natildeo fosse a realizaccedilatildeo

da preparaccedilatildeo de uma quase total dedicaccedilatildeo a esta

Durante a segunda parte desta dissertaccedilatildeo a full-time na HP foi desenvolvido um

protoacutetipo do framework totalmente funcional A realizaccedilatildeo conseguida cumpre na iacutentegra

78

a calendarizaccedilatildeo proposta na primeira fase conseguindo-se agrave custa de um razoaacutevel

esforccedilo adicional evitar atrasos e falhas

As linguagens usadas foram as jaacute descritas no capiacutetulo 5 e incluem na camada de

apresentaccedilatildeo do lado do cliente HTML CSS JavaScript JQUERY AJAX e do lado do

servidor JSP Na camada loacutegicaserviccedilos usou-se fundamentalmente Java e REST

O desenvolvimento do framework foi guiado por duas consideraccedilotildees uma do

lado do programador e com o pensamento em futuras actualizaccedilotildees e outra do lado do

utilizador com uma interface organizada intuitiva e de raacutepido acesso e acima de tudo que

possibilitasse a interacccedilatildeo com todos os recursos do Serviccedilo instanciado quer a niacutevel de

grupos quer a niacutevel dos recursos individuais Assim na oacuteptica do programador

organizou-se toda a programaccedilatildeo em torno do ldquorecursordquo como entidade fundamental em

todas as camadas em que ldquoelerdquo existe Deste modo actualizaccedilotildees ao framework podem

ser feitas olhando somente para o recurso a actualizar quer a alteraccedilatildeo seja ao niacutevel da

informaccedilatildeo ou das acccedilotildees que este suporta

Em cada uma das duas vertentes programador e utilizador foram implementadas

diversas ajudas para que estes melhor entendam toda a estrutura e implementaccedilatildeo o

referido apoio estaacute disponiacutevel no proacuteprio protoacutetipo e em manuais de ajuda em anexo a

este relatoacuterio

61 Conclusotildees

A primeira conclusatildeo que apresentamos sem falsas modeacutestias eacute a de que o portal eacute

sob o ponto de vista dos resultados conseguidos e face ao objectivo um sucesso Natildeo

soacute eacute operacionalmente funcional cumprindo o objectivo essencial mas tambeacutem o eacute na

usabilidade Destacamos sumariamente alguns aspectos desta uacuteltima

A visualizaccedilatildeo da informaccedilatildeo assim como as acccedilotildees possiacuteveis satildeo guiadas

pelos recursos o utilizador apenas selecciona o recurso e tem tudo disponiacutevel

informaccedilatildeo e acccedilotildees que pode executar tudo associado a esse e apenas esse

recurso

No menu lateral esquerdo do protoacutetipo o utilizador estaacute sempre a visualizar a

ldquoposiccedilatildeordquo de um recurso na hierarquia tornando-se assim muito faacutecil executar

acccedilotildees de grupo ou acccedilotildees individualizadas bastando para isso um simples

clique

Na versatildeo 5 da API do MOE detectamos algumas insuficiecircncias que devem

ser corrigidas em futuras versotildees Nomeadamente

Haacute atributos dos templates cuja consulta apenas eacute possiacutevel ao administrador

quando satildeo fundamentais para uma melhor experiecircncia do utilizador

referimo-nos por exemplo aos valores maacuteximos de um dado recurso (eg

nuacutemero de maacuteximo de CPUs custo de um dado disco) natildeo serem

disponibilizados aquando da criaccedilatildeo de um Serviccedilo Note-se que o protoacutetipo

79

ultrapassa esta limitaccedilatildeo executando o ldquoinitrdquo da sessatildeo como administrador e

carregando nessa altura todos esses atributos

Para aceder agrave consola de um servidor eacute necessaacuterio conhecer o ID da VM o

que natildeo eacute fornecido pela API MOE o protoacutetipo ultrapassou esta limitaccedilatildeo

usando a API disponibilizada pelo VMware vCenter

Em conclusatildeo oferecemos um protoacutetipo amigaacutevel intuitivo com uma curva

de aprendizagem muito curta organizado na vasta informaccedilatildeo a disponibilizar e

usando na sua realizaccedilatildeo tecnologias estado-da-arte no formato de informaccedilatildeo XML

e JSON Um protoacutetipo praacutetico no que ao acesso e utilizaccedilatildeo dos recursos diz respeito

objectivos uacuteltimos de todo este trabalho

Fica assim aberta uma porta para a equipa de desenvolvimento de software da

HP nas proacuteximas decisotildees sobre o caminho a seguir no desenvolvimento de novas

implementaccedilotildees e futuras versotildees da API O protoacutetipo foi submetido a testes de

usabilidade que podem ser considerados em futuras integraccedilotildees

62 Trabalho futuro

Um framework que se queira actualizado nunca pode ser considerado acabado novas

actualizaccedilotildees em resposta a solicitaccedilotildees do mercado ou a alteraccedilotildees na(s) API(s) nos

hipervisores ou decorrentes da necessidade de ldquohibridizaccedilatildeordquo com outras clouds

fazem desse framework um trabalho actualizado mas nunca terminado

No desenvolvimento deste framework tivemos acesso a uma infra-estrutura

que como eacute natural (pela complexidade do software necessaacuterio) apenas incluiacutea

alguma das opccedilotildees do vasto leque HP CSM em particular a) apenas dispunha da

pilha de virtualizaccedilatildeo VMware (ESXi e vCenter) e b) natildeo dispunha do moacutedulo

Storage Provisioning Manager (SPM)

Do exposto surgem imediatamente duas propostas para trabalho futuro a

primeira passa por dotar o portal de uma capacidade de ldquoidentificaccedilatildeo automaacuteticardquo

da(s) plataformas de virtualizaccedilatildeo que estatildeo acessiacuteveis ao utilizador disponibilizando

as ferramentas adequadas ndash por exemplo se o utilizador apenas tivesse acesso agrave infra-

estrutura Hyper-V teria apenas o iacutecone da consola Hyper-V (em vez da consola

VMware) a segunda seria ampliar as funcionalidades do framework para suportar a

interacccedilatildeo com a API do SPM cumprindo assim um dos objectivos que era permitir

ao consumidor IaaS escolher as tecnologias de armazenamento ndash SSD em vez de FC

FCoE em vez de iSCSI etc

Uma outra avenida para trabalho futuro seria a avaliaccedilatildeo e eventual realizaccedilatildeo

do framework sobre a API OpenStack

80

63 Resumo

Neste capiacutetulo foi descrito todo o trabalho efectuado nesta dissertaccedilatildeo bem como os

resultados obtidos e ainda os ldquoalertasrdquo relativos a aspectos que consideramos

merecedores de atenccedilatildeo por parte da HP Tal soacute foi possiacutevel pelo detalhe com que

toda a infra-estrutura e API foram estudadas e testadas Foram referidas as principais

contribuiccedilotildees e destacaram-se as melhorias relativamente ao portal actualmente

disponibilizado pela HP

Finalmente deixam-se algumas propostas para trabalhos futuros

81

Referecircncias bibliograacuteficas

[1] Understanding the HP CloudSystem Reference Architecture [Online]

Available httph20195www2hpcomV2GetPDFaspx4AA0-5550ENWpdf

[2] Amazon Elastic Compute Cloud (Amazon EC2) [Online] Available

httpawsamazoncomptec2

[3] GoGrid Cloud Hosting [Online] Available httpwwwgogridcom

[4] Eucalyptus [Online] Available httpwwweucalyptuscom

[5] Google AppEngine [Online] Available httpsdevelopersgooglecom

appengine

[6] Microsoft Azure [Online] Available httpwwwwindowsazurecompt-br

[7] Google Apps [Online] Available httpwwwgooglecomenterpriseapps

business

[8] Agensen O et al The Evolution of an x86 Virtual Machine Monitor ACM

Operating Systems Review Vol 44 Number 4 December 2010 pp 3-18

[9] VMware Virtualization Products for Virtual Servers Virtual Desktops and Data

Center [Online] Available httpwwwvmwarecomproducts

[10] Comparison of Platform Virtual Machines Wikipedia the Free Encyclopedia

Dezembro 12 2012 [Online] Available httpenwikipediaorgwindexphp

title=Comparison_of_platform_virtual_machinesampoldid=527691634

[11] Vsphere-51-configuration-maximums VMware Inc 2012

[12] Barham P et al Xen and the art of virtualization In Proceedings of the

nineteenth ACM symposium on Operating systems principles (SOSP03) 2003

pp 164-177

[13] Zhang X and Dong Y Optimizing Xen VMM Based on Intelreg Virtualization

Technology In Proceedings of the 2008 International Conference on Internet

Computing in Science and Engineering (ICICSE 08) IEEE Computer Society

pp 367-374

[14] CTX134582 - XenServer 610 Release Notes - Citrix Knowledge Center

[Online] Available httpsupportcitrixcomarticleCTX134582

[15] Haga Y et al Windows Server 2008 R2 Hyper-V Server Virtualization

Fujitsu Sci Tech J Vol 47 No 3 2011 pp 340-355

[16] Feature Comparison Windows Server 2008 R2 Hyper-V and Windows Server

2012 Hyper-V Windows Server Microsoft Corporation 2012

[17] Hyper-V Scalability in Windows Server 2012 [Online] Available

httptechnetmicrosoftcomen-uslibraryjj680093aspx

82

[18] Patterson D et al A Case for Redundant Arrays of Inexpensive Disks (RAID)

Proceedings of the 1989 ACM-SIGMOD International Conference on the

Management of Data ACM 1989 pp 109-116

[19] Whitehouse S The GFS2 Filesystem Proceedings of the Linux Symposium

June 27th-30th 2007 Ottawa Canada

[20] Schmuk F and Haskin R GPFS A Shared-Disk File System for Large

Computing Clusters Proceedings of the Conference on File and Storage

Technologies (FASTrsquo02) 28ndash30 January 2002 Monterey CA pp 231ndash244

[21] Vaghani S Virtual Machine File System ACM Operating Systems Review

Vol 44 Number 4 December 2010 pp 57-70

[22] Pawlowski B et al NFS version 3 design and implementation Proceedings of

the Summer USENIX Conference June 1994 pp 137-152

[23] Zhou S Virtual Networking ACM Operating Systems Review Vol 44

Number 4 December 2010 pp 80-85

[24] HP Sitescope 112 Data Sheet [Online] Available

httpwwwhpcomhpinfonewsroompress_kits2012HPDiscover2012HP_Sit

escope_112_Data_Sheetpdf

[25] Veritas Storage Foundationtrade and High Availability Solutions Application

Note Support for HP-UX Integrity Virtual Machines Symantec Corporation

2011

[26] Kennedy S et al StoRHm a protocol adapter for mapping SOAP based Web

Services to RESTful HTTP format Electronic Commerce Research September

2011 Volume 11 Issue 3 pp 245-269

[27] Silvia Schreier Modeling RESTful applications In Proceedings of the Second

International Workshop on RESTful Design (WS-REST 11) Cesare Pautasso

and Erik Wilde (Eds) ACM New York NY USA 2011 pp 15-21

[28] Axioms [Online] Available httpwwww3orgDesignIssuesAxiomshtml

[29] Sandoval Jose Restful Java Web Services Master core REST concepts and

create RESTful web services in Java Packt Publishing November 2009 pp 43-

179

[30] Burke Bill Restful Java with Jax-RS OrsquoReilly Media Inc November 2009 1st

ed

[31] Jersey 117 User Guide [Online] Available

httpsjerseyjavanetdocumentation117indexhtml

[32] Jerome Louvel Thierry Templier and Thierry Boileau Restlet in Action

Developing Restful Web Apis in Java Manning Publications Co 2012

Greenwich CT USA pp 1-165

83

[33] Johnson Sally Cloud providers can enable self-service IT with a cloud portal

[Online] Available httpsearchcloudprovidertechtargetcomfeatureCloud-

providers-can-enable-self-service-IT-with-a-cloud-

portalasrc=EM_ERU_22442845amputm_medium=EMamputm_source=ERUamputm

_campaign=20130709_ERU20Transmission20for200709201320(User

Universe20607658)_myka-reportstechtargetcomampsrc=5144272

[34] jQuery EasyUI framework [Online] Available httpwwwjeasyuicom

[35] jQuery UI Library [Online] Available httpjqueryuicomdemos

[36] jQuery API [Online] Available httpapijquerycom

84

Anexo A (Virtualizaccedilatildeo Vantagens e inconvenientes)

Virtualizaccedilatildeo Vantagens e inconvenientes

A virtualizaccedilatildeo tem vindo a crescer e a ganhar terreno principalmente nas meacutedias e

grandes empresas Tem vindo a demonstrar a sua mais-valia na gestatildeo das TIs uma

mudanccedila completa e um aliviar de trabalho para administradores e gestores

A1 Vantagens da tecnologia

Um mundo onde passa a ser possiacutevel executar software incompatiacutevel com o SO host

executar SOrsquos distintos num mesmo conjunto de hardware isoladamente sem

interferecircncias etc uma mudanccedila draacutestica na tradicional visatildeo de um SO para um

conjunto de hardware apenas

Seguranccedila Dentro de um servidor podemos ter vaacuterios VMs isoladas e

independentes do SO host Tal garante que qualquer interferecircncia no SO host

(errosataques acidentais ou intencionais) natildeo afecte as VMs nele instaladas

Isolamento Qualquer processo de uma VMs natildeo pode interferir nos

processos de outra VMs este isolamento intimamente ligado agrave seguranccedila

vem de encontro a um dos princiacutepios baacutesicos aquando da implementaccedilatildeo

desta tecnologia Esta vantagem garante-nos confidencialidade entre VMs

assim como integridade e contenccedilatildeo de erros entre VMs (seguranccedila)

Custos A quantidade de diferentes servidores existentes para diferentes SOrsquos

e aplicaccedilotildees eacute agora compactada num mesmo hardware onde existe a

possibilidade de termos vaacuterias VMs com diferentes SOrsquos com as mais

variadas aplicaccedilotildees Temos um tudo-em-um que vai reduzir os custos de uma

organizaccedilatildeo na altura do upgrade bastando para isso o upgrade de um uacutenico

servidor que suporta todos os serviccedilos da organizaccedilatildeo

Energia Propriedade intimamente ligada aos custos Com a compactaccedilatildeo do

hardware satildeo dispensando todos os demais equipamentos quer de

sustentaccedilatildeo de toda uma infra-estrutura quer os proacuteprios equipamentos de

apoio Eacute assim conseguida uma economia de energia bastante significativa

para a organizaccedilatildeo

Espaccedilo Fiacutesico A compactaccedilatildeo eacute inerente aacute diminuiccedilatildeo do espaccedilo ocupado

Um Data Center tem sempre o problema de ldquofalta de espaccedilordquo e por isso a

compactaccedilatildeo de hardware associada agrave virtualizaccedilatildeo vem resolver natildeo soacute este

problema de espaccedilo como tambeacutem a proacutepria refrigeraccedilatildeo e circulaccedilatildeo de ar

dentro do Data Center

85

Hardware Estaacute provado que cada servidor em meacutedia gasta cerca de 30 do

seu poder de processamento para executar a funccedilatildeo para a qual foi

implementado Assim sendo estamos na presenccedila de um subaproveitamento

deste poder computacional A ideia anterior aacute virtualizaccedilatildeo de adquirir um

novo servidor para uma nova aplicaccedilatildeo cai agora por terra com o objetivo de

aproveitar ao maacuteximo o poder computacional de cada servidor aproveitando

melhor todo esse hardware disponiacutevel

Implementaccedilatildeo de SOrsquos A associaccedilatildeo de um SO por cada maacutequina fica

agora tambeacutem em desuso uma vez que a virtualizaccedilatildeo possibilita-nos a

instalaccedilatildeo de vaacuterios SOrsquos em cada maacutequina melhor aleacutem de vaacuterios SOrsquos

estes tambeacutem podem ser diferentes entre si (Windows linuz etc) Esta

vantagem permite assim instalar SOrsquos cujo hardware original (host) nem

sequer os suportam como o caso do SO MAC (Macintosh Apple) em

hardware x86 ou SO Windows em notebooks (Apple)

Migraccedilatildeo A camada que suporta a virtualizaccedilatildeo permite-nos esta mais-valia

A migraccedilatildeo natildeo soacute do ambiente em si como do proacuteprio hardware bastando

para isso uma simples coacutepia entre discos virtuais

Testes de software e hardware A virtualizaccedilatildeo simula tanto um software

como um hardware logo testes em software firmware e hardware podem ser

realizados nestas VMs construiacutedas especificamente para esse fim Estes

primeiros testes podem ser efectuados sem a necessidade de um SO instalado

de raiz ou mesmo a presenccedila fiacutesica do hardware especiacutefico

Reduccedilatildeo de administradores e gestores Esta compactaccedilatildeo associada agrave

virtualizaccedilatildeo como jaacute referido reduz espaccedilo ocupado reduz hardware reduz

configuraccedilotildees e gestatildeo individual abrindo caminho agrave centralizaccedilatildeo Assim a

reduccedilatildeo da equipa responsaacutevel pela administraccedilatildeo e gestatildeo eacute evidente

A2 Desvantagens da tecnologia

Satildeo notoacuterias as vantagens da virtualizaccedilatildeo mas problemas como incompatibilidades entre

aplicaccedilotildees e perda de desempenho pelo simples adicionar de mais uma camada agrave

arquitectura teratildeo que ser consideradas aquando da escolha

Seguranccedila A seguranccedila neste caso prende-se agrave proacutepria camada adicionada

agrave arquitectura (VMM ou hypervisor) Se o proacuteprio SO host tiver algum

problema de raiz implementado ou adquirido tambeacutem o proacuteprio VMM

contemplaraacute este erro assim como todas as VMs instaladas nesse SO host

Gestatildeo O principal problema da implementaccedilatildeo desta tecnologia eacute a gestatildeo

da proacutepria virtualizaccedilatildeo os ambientes virtualizados precisam de ser

instanciados geridos configurados etc Eacute neste ponto que se prende a

preocupaccedilatildeo das organizaccedilotildees pelos seus investimentos nesta tecnologia

trata-se de uma opccedilatildeo que por norma eacute licenciada

86

Desempenho Mais uma camada de software (VMM ou hypervisor) implica

mais processamento Incerteza da quantidade de VMsprocessador sem que

seja afectado a QOS (Quality Of Service) e a garantia dessa emulaccedilatildeo em

termos da disponibilizaccedilatildeo maacutexima que o host pode dispensar como eacute o caso

do processamento e memoacuteria graacutefica

87

Anexo B (Virtualizaccedilatildeo Arquitectura)

Virtualizaccedilatildeo Arquitectura

A base de uma arquitectura de virtualizaccedilatildeo eacute o VMM ou hypervisor o Virtual Machine

Manager responsaacutevel pela criaccedilatildeo gestatildeo isolamento e preservaccedilatildeo do estado da VM

assim como toda a orquestraccedilatildeo do acesso aos recursos do sistema host

O VMM permite que seja possiacutevel a execuccedilatildeo de vaacuterios SOrsquos em VMs contudo

estaacute limitado a SOrsquos que possam ser executados nativamente no processador fiacutesico do

sistema Essa valecircncia torna-se hoje uma das maiores procuras de todos os sistemas de

virtualizaccedilatildeo

Em termos de implementaccedilotildees arquitecturais temos VMMrsquos Tipo-2 modelo

ldquohybridordquo e Tipo-1 O VMM ou hypervisor do Tipo-2 figura 47 eacute implementado dentro

do proacuteprio SO real (Linux ou Windows - hostsystem) e executando paralelamente eacute mais

um processo Neste caso trata-se de uma camada hypervisor proacutepria como um segundo e

distinto niacutevel de software Os sistemas operativos convidados correm num terceiro niacutevel

acima do hardware Nesta arquitectura o SO guest acede directamente o SO host (nativo)

por intermeacutedio de uma API cedida pelo hipervisor ao SO guest O SO guest acede assim

ao hardware atraveacutes de um device driver especiacutefico pelo hypervisor e pelo SO host sendo

por isso uma implementaccedilatildeo que apresenta menor desempenho e maior sobrecarga ao

sistema O Java VM VMware Workstation VMware Player Sun Microsystems

VirtualBox e KVM satildeo alguns exemplos que usam esta arquitectura

Figura 47 - VMM ou hypervisor do Tipo-2

No modelo rdquohiacutebridordquo figura 48 o VMM natildeo eacute executado uma camada acima do

SO host (ou abaixo) mas sim concorrentemente (peer) com o SO host e natildeo depende de

instruccedilotildees especiacuteficas no processador Microsoft Virtual Server 2005 R2 e Virtual PC satildeo

alguns exemplos que usam esta arquitectura

88

Figura 48 - VMM ou hypervisor do ldquohiacutebridordquo

No VMM ou hypervisor do Tipo-1 figura 49 eacute executado directamente no

hadware a camada mais baixa de todas as particcedilotildees da VM sem necessidade da

existecircncia de qualquer SO host O SO guest acede directamente ao hardware atraveacutes do

hipervisor tal eacute possiacutevel pelas modificaccedilotildees feitas no SO guest e no hipervisor Esta eacute a

implementaccedilatildeo que atinge niacuteveis mais elevados de eficiecircncia por isso permite uma maior

densidade de VMs eacute a implementaccedilatildeo claacutessica de arquitecturas VM VMware

ESXESXi Citrix XEN Server e Microsoft Hyper-V satildeo alguns exemplos que usam esta

arquitectura

Figura 49 - VMM ou hypervisor do Tipo-1

89

Anexo C (Virtualizaccedilatildeo Tipos de Implementaccedilatildeo)

Virtualizaccedilatildeo Tipos de Implementaccedilatildeo

C1 Emulaccedilatildeo de Hardware

Neste tipo de virtualizaccedilatildeo figura 50 pretende-se a virtualizaccedilatildeo completa do hardware

o seu comportamentoestados de execuccedilatildeo (ciclos de clock conjunto de instruccedilotildees

pipeline memoacuteria cache) por isso eacute a forma de virtualizaccedilatildeo mais complexa Todo o

hardware da VM eacute criado via software no sistema hospedeiro para emulaccedilatildeo do hardware

proposto criando assim grandes overheads7 com fracos desempenhos comparativamente

ao hadware real Este tipo de virtualizaccedilatildeo apresenta mais-valias como o facto de poder

ser usado um SO guest sem qualquer modificaccedilatildeo ou adaptaccedilatildeo os programadores podem

fazer testes de firmware e hardware em hardware que natildeo o real nem necessitam da

existecircncia deste e ainda a valecircncia de ser possiacutevel emular hardware que na maior parte

das vezes eacute bastante diferente do hardware real

Figura 50 - Emulaccedilatildeo de Hardware

C2 Virtualizaccedilatildeo completa

A virtualizaccedilatildeo completa figura 51 tambeacutem conhecida como ldquonativardquo eacute em todo igual a

emulaccedilatildeo de hardware excepto agrave natildeo representatividade dos estados de execuccedilatildeo do

hardware emulado por esse facto esta teacutecnica de virtualizaccedilatildeo apresenta resultados mais

satisfatoacuterios no seu desempenho mas ainda aqueacutem dos SOrsquos em execuccedilatildeo nativa Esta

teacutecnica permite assim a execuccedilatildeo de todos os SOrsquos originais sem alteraccedilatildeo fornecendo

uma reacuteplica de todo o hardware dessa maacutequina levando-os a ter a ilusatildeo de estar a

executar directamente no hardware

Os grandes obstaacuteculos desta teacutecnica foram desde logo as diferenccedilas arquitecturais

e os comportamentos particulares das instruccedilotildees muitas impossiacuteveis de serem emuladas

ou capturadas pois muitas dependem do niacutevel de privileacutegio Assim para lidar com a

7 Overhead Diferenccedila de performance (latecircncialentidatildeo) no SO guest

90

heterogeneidade de processadores e comportamento de instruccedilotildees usa-se uma abordagem

chamada de Traduccedilatildeo Binaacuteria Nesta abordagem a VMM analisa todas as instruccedilotildees da

VM quer instruccedilotildees natildeo privilegiadas que depois acedem ao hardware com drivers

geneacutericos quer instruccedilotildees privilegiadas e quando na presenccedila destas faz a emulaccedilatildeo e

reescreve dinamicamente o coacutedigo Este teste a todas as instruccedilotildees acarreta uma latecircncia

significativa no desempenho

Figura 51 - Virtualizaccedilatildeo Completa

C3 Para-Virtualizaccedilatildeo (PV)

A para-virtualizaccedilatildeo ou virtualizaccedilatildeo assistida por SO figura 52 eacute uma alternativa aacute

virtualizaccedilatildeo completa O SO guest eacute modificado (perdendo a portabilidade) para

melhorar a eficiecircncia usando todos os ldquolimitesrdquo do sistema A ideia eacute acelerar a execuccedilatildeo

das instruccedilotildees e para isso a VMM testa apenas instruccedilatildeo que podem alterar o estado do

sistema (instruccedilotildees sensiacuteveis) aumentando significativamente o desempenho Esta

substituiccedilatildeo de uma instruccedilatildeo sensiacutevel pelo tratador de interrupccedilatildeo de software eacute chamada

de hypercall satildeo instruccedilotildees executadas atraveacutes de traduccedilatildeo binaacuteria O SO guest eacute assim

modificado para chamar a VMM sempre que estamos na presenccedila dessas instruccedilotildees

sensiacuteveis

Esta alternativa de virtualizaccedilatildeo com a modificaccedilatildeo do kernel tambeacutem permite

que o SO guest aceda directamente aos recursos de hardware com os drivers da proacutepria

maacutequina virtual e deste modo natildeo usando os drivers geneacutericos (virtualizaccedilatildeo completa)

usam a capacidade total dos dispositivos Assim a para-virtualizaccedilatildeo apresenta um ganho

significativo em relaccedilatildeo agrave virtualizaccedilatildeo completa compensando as modificaccedilotildees

implementadas no SO guest

91

Figura 52 - Para-Virtualizaccedilatildeo

C5 Virtualizaccedilatildeo assistida por Hardware (HVM)

As teacutecnicas descritas apresentam alguns inconvenientes que enfraquecem o desempenho

como o teste a todas as instruccedilotildees e traduccedilatildeo das instruccedilotildees privilegiadas na Virtualizaccedilatildeo

Total e a alteraccedilatildeo do SO guest na Para-Virtualizaccedilatildeo agarrando o SO aacute arquitectura

limitando a compatibilidade e suporte

A Virtualizaccedilatildeo assistida por Hardware figura 53 eacute aplicada directamente nos

processadores e restante hardware satildeo usadas extensotildees de virtualizaccedilatildeo do processador e

hardware para virtualizaccedilatildeo dos guestrsquos fornecendo assim um recurso que permita ao

hypervisor executar ainda mais proacuteximo do hardware As instruccedilotildees sensiacuteveis satildeo agora

entregues sem a necessidade da traduccedilatildeo binaacuteria aumentando significativamente o

desempenho mas ainda um pouco mais lento que a PV A opccedilatildeo do uso de drivers como a

PV torna-se um avanccedilo notoacuterio neste tipo de implementaccedilatildeo Natildeo emular IO e

armazenamento e ainda oferecer uma plataforma de VMs com SOrsquos natildeo modificados eacute

uma junccedilatildeo das mais-valias dos dois mundos (PVHVM ou PV-on-HVM drivers) Torna-

se assim possiacutevel por exemplo obter um oacuteptimo desempenho no conjunto SO guest

Windows + XenServer

Figura 53 - Virtualizaccedilatildeo assistida por Hardware

C4 Recompilaccedilatildeo dinacircmica

Esta teacutecnica de virtualizaccedilatildeo recompilaccedilatildeo dinacircmica (dynamic recompilation -

DynaRecs) tambeacutem denominada como traduccedilatildeo dinacircmica (dynamic translation) eacute

bastante utilizada Traduz as instruccedilotildees de um determinado formato para outro formato

durante a proacutepria execuccedilatildeo do programa permitindo assim a criaccedilatildeo do ambiente nativo

92

do programa Essa traduccedilatildeo eacute relativa a instruccedilotildees do SO guest e das suas aplicaccedilotildees

mais proacuteximas do SO host Assim o VMM ou hipervisor analisa reorganiza e traduz as

sequecircncias de instruccedilotildees emitidas pelo SO guest em novas sequecircncias de instruccedilotildees

(coacutedigo de mais alto niacutevel) compiladas na linguagem nativa do sistema host para que esse

coacutedigo gerado seja mais eficiente

Essa eficiecircncia de coacutedigo prende-se com adaptaccedilatildeo de instruccedilotildees agrave interface ISA

do sistema real detectar e tratar instruccedilotildees sensiacuteveis e ainda analisar reorganizar e

optimizar sequecircncias de instruccedilotildees do SO guest com o fim uacuteltimo da eficiecircncia e

desempenho da sua execuccedilatildeo Nesta ultima anaacutelise eacute usual guardar em cache a traduccedilatildeo

dos blocos de instruccedilotildees frequentes melhorando assim ainda mais o desempenho Eacute

notoacuteria a vantagem desta teacutecnica como o acesso a coacutedigo em tempo de execuccedilatildeo natildeo

alcanccedilaacutevel a um compilador estaacutetico mas em contrapartida tambeacutem exige muito mais

processamento

93

Anexo D (Detalhes da plataforma e restriccedilotildees da VMware)

Detalhes da plataforma e restriccedilotildees da VMWARE

Tabela 13 - Dados gerais VMWARE

Criador VMM Tipo Finalidade Uso Host VMs

host

Servidor

dedicado

Gestatildeo

Central

Gestatildeo

Remota Guest OSrsquos Host OSrsquos Guest Licenccedila

VMware

Player Tipo 2

Descktop

Utilizadores finais

Criar

Testar

Seguranccedila

Intel e AMD

(32-64 bits)

1-2 Natildeo Natildeo Natildeo

Intel e AMD

(32-64 bits)

Windows Windows

Windows Server 2012 8 Server 2008 R2 7

Server 2008 Vista Server 2003 XP 2000 NT

40 ME 98 95 MS-DOS 622 e Windows

31x

Linux

Asianux Server CentOS Debian Fedora

Mandrake Mandriva Novell openSUSE

Oracle Enterprise Red Hat Enterprise Red

Hat Sun Java Desktop System SUSE

Enterprise SUSE Turbolinux Ubuntu

UNIX e outros OSrsquos

Mac OS X Server eComStation FreeBSD

IBM OS2 Warp Netware Solaris SCO

Livre

Server GSX Tipo 2

Consolidar

Testar

Desenvolver

Windows Linux Proprietaacuterio

(desc)

Workstation Tipo 2 Criar

Testar

Desenvolver

lt 10 Natildeo Natildeo Natildeo Windows Linux

Proprietaacuterio

Fusion Tipo 2 Mac OS X

Proprietaacuterio

vSphere

ESXi Tipo 1

Datacenter

Infra-estrutura Cloud

Consolidar

Disponibilidade

Cloud

Criar

Testar

Desenvolver

512 Sim Natildeo Sim Sem OS Livre

Proprietaacuterio

ESX Tipo 1 512 Sim Sim Sim Sem OS Proprietaacuterio

(desc)

Tabela 14 - Detalhes VMWARE

VMM

(Configuraccedilotildees maacuteximas) Cluster Hosts VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

VMware Player 50 - - - 4 8 Sem lim 8GB (32bits)

64GB (64bits) NA (2TB) - -

VMware Server 20 - - 64 16 2 Sem lim 8GB NA 4 IDE + 60 SCSI (950GB) - descontinuado

VMware Workstation 90 - - - igual 8 Sem lim 8GB (32bits)

64GB (64bits) NA 4 IDE + 60 SCSI (2TB)

10 NICs SO Windows

255 NICs SO Linux Snapshots

VMware

vSphere 51

VM - - - - 64 - 1TB - 4 IDE + 60 SCSI (2TB) 10 NICs 128MB graacutefica

ESX ESXi 32 - 512host

4000cluster

32 fisicos

160 logicos 32 2TB 1TB

2048 vdisc

(64TB) 4 IDE + 60 SCSI (2TB)

32portas Ethernet a 1Gb

4 NICs fiacutesicos a 10Gb

Portas Infiniband etc

-

vCloud Director - 2000 30000 - - - - 10000 DC - 10000 -

vCenter Server - 1000 15000 - - - - 500 - 10 vCenter Servers ligados -

94

Anexo E (Detalhes da plataforma e restriccedilotildees da Citrix)

Detalhes da plataforma e restriccedilotildees da Citrix

Tabela 15 - Dados gerais Citrix

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Xensource Xen Tipo 1

Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

x86

x86-64

IA-64

x86

x86-64

IA-64

NetBSD Linux Solaris

FreeBSD NetBSD Linux Solaris Windows XP Windows Server 2003 Plan 9 Versatildeo 61

Ubuntu CentOS

Red Hat Enterprise Linux

Oracle Enterprise Linux

Windows 8 (32-bit64-bit)

Windows Server 2012

GPL ndash livre

Advanced Edition - Proprietaacuterio

Enterprise Edition - Proprietaacuterio

Platinum Edition - Proprietaacuterio

Tabela 16 - Dados detalhados Citrix

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Redehost Outros

Host VM Host VM Host VM

XenServer 61 16 150host

1600cluster

160 loacutegicos

900 virtuais 32 1 TB 128 GB 512 virtuais

16 virtuais

NFS e LVM (2TB)

7 NICrsquos virtuaisVM

16 NICrsquos fiacutesicos

512 NICrsquos virtuais

800 VLANrsquos

4 GPUshost

95

Anexo F (Detalhes da plataforma e restriccedilotildees da HP)

Detalhes da plataforma e restriccedilotildees da HP

Tabela 17 - Dados gerais HP

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Hewlett-Packard Integrity Virtual Machines Tipo 1

Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

IA-64 IA-64 HP-UX 11i v3

HP-UX 11i v2 e v3 Windows Server 2003 (SP1 e SP2 RHEL AP 44 45 SLES 10 SP

Proprietaacuterio

Tabela 18 - Dados detalhados HP

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

HP Integrity Virtual Machines 61 512 HP-UX limit 16 HP-UX limit 128GB HP-UX limit 4 IDE + 256 SCSI (2TB) 62 NICrsquos

96

Anexo G (Detalhes da plataforma e restriccedilotildees da Microsoft)

Detalhes da plataforma e restriccedilotildees da Microsoft

Tabela 19 - Dados gerais Microsoft

Criador VMM ou hypervisor Tipo Finalidade Host Guest OSrsquos Host OSrsquos Guest Licenccedila

Microsoft

Virtual PC 2007 Tipo 2

Criar

Testar

Hobby

Estaccedilatildeo de trabalho

Negoacutecios

x86 x86-64 x86

Windows Vista (Business

Enterprise Ultimate) XP Pro XP

Tablet PC Edition

DOS Windows OS2

Linux (SUSE Xubuntu) OpenSolaris (Belenix) Proprietaacuterio

Virtual PC 7 for Mac Tipo 2 PowerPC x86 Mac OS X Windows OS2

Linux Proprietaacuterio

Virtual Server 2005 R2 Tipo 2 Server

Server farm x86 x86-64 x86 Windows 2003 XP

Windows NT 2000 2003

Linux (Red Hat SUSE) Proprietaacuterio

Hyper-V Server 2008 R2 Tipo 1 Criar

Testar

Desktop

Desenvolver

Consolidar

Disponibilidade

Cluster e Cloud

x86-64

(Intel VT-x ou AMD-V)

x86-64

x86 (ateacute 8 CPUs fiacutesicos)

Windows 2008 com Hyper-V

Windows Hyper-V Server

Windows 2000 2003 e 2008 Windows XP e Vista

Linux (SUSE 10) Proprietaacuterio

Hyper-V Server 2012 Tipo 1

x86-64

(Intel VT-x ou AMD-V apenas

para RemoteFX)

x86-64

(ateacute 64 CPUs fiacutesicos) Windows 2012 com Hyper-V

Windows NT

Linux (SUSE10 RHEL 6 CentOS 6) Proprietaacuterio

Tabela 20 - Dados detalhados Microsoft

VMM

(Configuraccedilotildees maacuteximas) cluster VMacutes

CPU RAM StorageDisco Rede Outros

Host VM Host VM Host VM

Hyper-V Server 2008 R2 16 384host

1000cluster

8 fiacutesicos

64 loacutegicos

512 virtuais

4

1 TB 64GB No limit 4 IDE + 256 SCSI (2TB) - -

Hyper-V Server 2012 64 1024host

8000cluster

64 fiacutesicos

320 loacutegicos

2048 virtuais

64

4 TB 1 TB No limit

4 IDE + 256 SCSI

(VHD 2 TB)

(VHDX 64 TB)

32 NICrsquos

10GB migraccedilatildeocluster

REST

powershell

snapshots

suporte VMConnect

para RemoteFX

97

Anexo H (Ambiente de armazenamento VMware ESXi e Citrix Xen)

Ambiente de armazenamento VMware ESXi e Citrix Xen

H1 VMware (VmWare In)

VMFS (Virtual Machine File System) eacute um sistema de ficheiros num Cluster eacute

proprietaacuterio da VMware e foi optimizado para operaccedilotildees de entrada e saiacuteda (IO) com

ficheiros grandes realidade das imagens das maacutequinas virtuais Representa uma soluccedilatildeo

escalaacutevel e de alto desempenho para hospedagem de VMs no bloco de armazenamento

oferecendo partilha e isolamento O serviccedilo VMFS constitui a base de aplicaccedilotildees num

cluster VMware como vMotion (onde existe partilha de dados) Storage VMotion

agendamento de recursos distribuiacutedos alta disponibilidade e toleracircncia a falhas Os

metadados da maacutequina virtual satildeo serializados para ficheiros e o software VMFS fornece

uma interface POSIX (Portable Operating System Interface) - API com a opccedilatildeo de

consola Command Line (CL) e utilidades de interfaces) - para cluster com operaccedilotildees

seguras de gestatildeo de maacutequinas virtuais

Este tipo de armazenamento de dados pode ser feito em qualquer dispositivo de

armazenamento com base em ligaccedilotildees de armazenamento como

Armazenamento de ligaccedilatildeo direta (SCSI local) ligaccedilatildeo local direta aos discos

de armazenamento interno ou externo geralmente SATA IDE (Integrated

Drive Electronics) EIDE etc

Fibre Channel protocolo de transporte usado em SANrsquos onde o Fibre Channel

encapsula comandos SCSI sobre o protocolo FC

FCoE O uso do FC sobre Ethernet onde o traacutefego FC eacute encapsulado em

quadros Ethernet

iSCSI iSCSI transporta comandos SCSI sobre redes IP

IP ligaccedilatildeo IP aos datastores em NAS suportados pelo vSphere ESX

Vista do armazenamento pelo SO Guest

Uma VM na arquitectura ESX usa espaccedilo em disco para armazenar os seus

metadados de configuraccedilatildeo e os proacuteprios dados um pequeno nuacutemero de imagens

aproximadamente 30 a 100 por VM O espaccedilo de armazenamento em disco contem estes

ficheiros de texto muito pequenos (bytes ou KB) mas tambeacutem conteacutem ficheiros do

proacuteprio disco virtual que normalmente satildeo ficheiros muito grandes (centenas de MB ou

GB) e ainda ficheiros de swap (ficheiros guardados pelo SO para aumento virtual da

memoacuteria de trabalho (RAM))

98

Um dos princiacutepios da virtualizaccedilatildeo diz-nos que um SO guest natildeo deve suportar a

carga da gestatildeo de dispositivos fiacutesicos deve concentrar-se em fornecer um ambiente de

execuccedilatildeo de aplicaccedilotildees Assim um dos objetivos da arquitetura VMFS e em particular do

vSphere ESX eacute simplificar todo este acesso de armazenamento ao SO guest O hardware

virtual apresentado a um SO guest vSphere inclui um conjunto de controladores SCSI e

IDE que possuem drivers comuns disponiacuteveis em quase todos os sistemas operacionais O

SO guest vecirc um disco fiacutesico simples ligado atraveacutes de um controlador padratildeo gravado no

formato VMDK (Virtual Machine Disk) formato da VMWare Esta visatildeo virtualizada de

armazenamento apresentada ao SO guest tem uma seacuterie de vantagens como a gestatildeo

facilitada pelo facto de serem usados controladores padratildeo com drivers incluiacutedas nos

SOrsquos o facto de suportar diferentes ligaccedilatildeo e acessos ao armazenamento como iSCSI e

FCoE disponiacuteveis nos SOrsquos sem que estes suportem os protocolos nativos e a melhoria de

eficiecircncia e disponibilizaccedilatildeo na recuperaccedilatildeo de desastres com a disponibilizaccedilatildeo de

muacuteltiplos caminhos no acesso aos dados contrariamente ao peso da redundacircncia de

muacuteltiplos servidores fiacutesicos

H2 Xen Server (Citrix)

O VMM ou hypervisor Xen eacute apenas responsaacutevel pela gestatildeo de CPU memoacuteria e

interrupccedilotildees ou seja natildeo tem conhecimento do IO de Rede e Armazenamento Para lidar

com entradas e saiacutedas de Rede e Armazenamento o XenServer dispotildee de um domiacutenio de

controlo uma VM especializada denominada ldquoDom0rdquo (Domiacutenio 0) com SO Linux e

privileacutegios especiais eacute considerado parte integrante do XenServer aquando da instalaccedilatildeo

Alem de aceder diretamente o hardware controla todos os acessos de IO e interage com

as outras VMs Esta VM especial contem os drivers padratildeo do coacutedigo aberto Linux de

uma vasta diversidade de hardware e uma interface de controlo (consola ou interface

graacutefica) para controlo do sistema Conteacutem ainda uma pilha de controlo (toolstack) para

fazer toda a gestatildeo das VMs as conhecidas ldquoDomUrsquosrdquo (Domiacutenios dos utilizadores)

relativamente a sua criaccedilatildeo destruiccedilatildeo e configuraccedilatildeo

O XenServer da Citrix armazena as suas VMs diretamente no formato Microsoft

VHD (Virtual Hard Disk) num disco local natildeo partilhado (EXT) ou contrariamente ao

VMware natildeo dispondo do seu proacuteprio sistema de armazenamento aproveita as

capacidades nativas de armazenamento como por exemplo um sistema de armazenamento

partilhado como o NFS Com armazenamentos baseados em iSCSI ou FC o XenServer

estende o VHD do sistema de ficheiros para o padratildeo open source LVM (Logical Volume

Manager) para gestatildeo de volumes numa LUN abstraindo os volumes fiacutesicos em volumes

loacutegicos Permite ainda que seja possiacutevel a criaccedilatildeo de uma LUN por cada VDI

O XenServer oferece assim suporte de armazenamento de VMs em discos locais

iSCSI ou SAN baseado em FC ou NAS estes dois uacuteltimos para migraccedilotildees e alta

disponibilidade Ferramentas como XenCenter Storage Repository para implementaccedilatildeo e

99

StorageLink para integraccedilatildeo de armazenamentos com snapshots clones8 e ldquothin

provisioningrdquo9 satildeo uma mais-valia no XenServer

Cada host XenServer pode aceder a um ou vaacuterios dispositivos de armazenamento

diferentes simultaneamente Estes dispositivos de armazenamento podem ser dedicados

apenas a um host ou partilhados entre hosts permitindo que uma imagem de disco virtual

(VDI) num determinado sistema de armazenamento possa ser iniciada em qualquer host

Armazenamento local

Este tipo de armazenamento eacute local ao host XenServer (IDEPATA Serial ATA

(SATA) SCSI e Serial Attached SCSI (SAS)) e neste contexto satildeo suportados dois tipos

de armazenamento um sistema de ficheiros EXT e LVM (Logical Volume Manager)

numa LUN

Uma LUN num SAN iSCSI ou SAN Fibre Channel

Nestes dois tipos de armazenamento (tratados diferentemente pelo XenServer)

figura 54 os ficheiros satildeo apresentados ao XenServer como ficheiros normais ou mesmo

num sistema de ficheiros LVM numa LUN

Eacute criada uma LUN onde todos os servidores se ligam Essa LUN eacute dividida em

volumes loacutegicos onde apenas uma e uma soacute VM ligada a um desses volumes loacutegicos de

cada vez

Figura 54 - LUN num SAN iSCSI ou SAN FC

Network File System (NFS)

Neste tipo de armazenamento figura 55 eacute criado um NFS onde todos os

servidores se ligam e partilham ficheiros VDI que eacute o disco fiacutesico na visatildeo de uma VM O

XenServer lida com este tipo de armazenamento como um conjunto e discos virtuais

(VDIrsquos) armazenados no formato Microsoft VHD especialmente adequado para

ambientes NSF As imagens das VMs satildeo armazenadas como ficheiros neste formato

8 Clone Um programa ou hardware que imita o produto original e pode ser executado de igual modo como se

fosse original 9 Thin provisioning Meacutetodo de otimizaccedilatildeo da eficiecircncia com que o espaccedilo disponiacutevel eacute utilizado numa SAN

100

(VHD) um disco riacutegido virtual Estes ficheiros permitem que VMs sejam instanciadas em

qualquer host de uma pool de recursos e possam ser feitas migraccedilotildees entre servidores com

o XenMotion

XenServer suporta NFS sobre TCPIP O volume NFS localizado num servidor

NFS eacute acedido montado e usado para as necessidades convenientes de armazenamento

seraacute criada uma diretoria de partilha com um nome que eacute o Identificador Uacutenico Universal

(UUID) atribuiacutedo a esse armazenamento

Figura 55 - Network File System (NFS)

Opccedilotildees de armazenamento de terceiros como NetApp ou Dell EqualLogics

O armazenamento eacute feito por dispositivo especiacuteficos de armazenamento como

NetApp (Network Appliance) ou Dell EqualLogics como fornecedores liacutederes de

armazenamento de ficheiros em rede e sistemas de distribuiccedilatildeo de conteuacutedo A gestatildeo do

armazenamento eacute suportada pelo XenCenter

Vista do armazenamento pelo SO Guest

Existem 2 tipos de VMs no XenServer ldquoDom0rdquo e ldquoDomUrdquo ambas VM guestrsquos

diferindo no seu propoacutesito O Dom0 de controlo e parte integrante de todo o sistema

XenServer dispotildee de acesso privilegiados ao hardware tem drivers dos dispositivos e eacute

instanciada aquando do boot do sistema Os DomUrsquos satildeo totalmente isolados do hardware

e comunicam diretamente com o VMM ou hypervisor que controla a memoacuteria e o

processador do host A comunicaccedilatildeo com os restantes perifeacutericos eacute feita sob o controlo da

VM Dom0 (domiacutenio 0 domiacutenio de controlo) com os drivers especiacuteficos de dispositivos

como Rede e Armazenamento Os DomUrsquos satildeo conhecidos como domiacutenios sem

privileacutegios

Em termos de virtualizaccedilatildeo o Xen suporta em simultacircneo VM guests com para-

virtualizaccedilatildeo (PV) (virtualizaccedilatildeo assistida por SO) ou virtualizaccedilatildeo assistida por hardware

(HVM) Na PV apesar da modificaccedilatildeo do SO natildeo requer virtualizaccedilatildeo do processador

nem do hardware uma vez que dispotildee de drivers para aceder diretamente usando a

capacidade total dos dispositivos Na HVM satildeo usadas extensotildees de virtualizaccedilatildeo do

101

processador e hardware host para virtualizar os guets mas natildeo haacute modificaccedilatildeo do SO

guest eacute mais lento que PV mas apresenta a valecircncia da portabilidade A ultima aposta da

Citrix visando oacutetimos desempenhos foi a junccedilatildeo destes dois mundos para-virtualizaccedilatildeo e

virtualizaccedilatildeo assistida por hardware (PVHVM ou PV-on-HVM drivers)

Uma VM (DomU) no mundo virtual de um XenServer vecirc o seu armazenamento

como um disco local (imagens VDI guardadas na sua representaccedilatildeo Microsoft VHD) Na

realidade o XenServer alocou uma percentagem do armazenamento real e atraveacutes do

hypervisor e Dom0 fez toda a abstraccedilatildeo tornando-o disponiacutevel como um recurso de um

disco para essas VMs O SO guest do Dom0 eacute Linux e neste SO os discos fiacutesicos satildeo

representados como ficheiros desses dispositivos (devsda) Os ficheiros dos dispositivos

de armazenamento podem representar discos conectados localmente (armazenamento

local) ou um nuacutemero de unidade loacutegica (LUN) numa SAN sendo a gestatildeo feita por LVM

e ainda a opccedilatildeo NFS

102

Anexo I (Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo)

Uma exemplificaccedilatildeo ldquoDynamic Web Projectrdquo

I1 Criaccedilatildeo de um projecto Web Service

Um projecto Web Service figura 56 pode ser criado com o IDE Eclipse IDE for Java EE

Developers Configurado todo o ambiente podemos criar um projecto Web Service

mediante vaacuterias abordagens variando nas suas configuraccedilotildees e especificaccedilotildees

naturalmente

Web Dynamic Web Project

JBoss Central HTML5 Project

JBoss Tools Create a Sample RESTfull Web Service

Maven Maven Project

Web Service Create a Sample RESTfull Web Service

Figura 56 - Projecto ldquoDynamic Web Projectrdquo no eclipse

Webxml

103

Ficheiro responsaacutevel pelo registo do servlet10

fornecido pelo Jersey Um servlet

responsaacutevel por analisar os pedidos http e selecionar a classe e meacutetodo para responder ao

pedido mediante as anotaccedilotildees JAX-RS previamente colocadas aquando da criaccedilatildeo do

coacutedigo Webxml define ainda o path sob o qual o Web Service seraacute disponibilizado

URL httpdominioportanome-da-aplicacaourl-patternpath-das-classes-rest

ltxml version=10 encoding=UTF-8gt ltweb-app xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlns=httpjavasuncomxmlnsjavaee xmlnsweb=httpjavasuncomxmlnsjavaeeweb-app_2_5xsd xsischemaLocation=httpjavasuncomxmlnsjavaee httpjavasuncomxmlnsjavaeeweb-app_2_5xsd id=WebApp_ID version=25gt lt-- nome da aplicaccedilatildeo --gt ltdisplay-namegtdevogellajerseytodoltdisplay-namegt ltservletgt lt-- suporte para aplicaccedilotildees Web baseado em servlet e filtro --gt ltservlet-namegtJersey REST Serviceltservlet-namegt ltservlet-classgtcomsunjerseyspicontainerservletServletContainerltservlet-classgt ltinit-paramgt lt-- define o pacote das classes de recurso java do Web Service --gt ltparam-namegtcomsunjerseyconfigpropertypackagesltparam-namegt ltparam-valuegtdevogellajerseytodoresourcesltparam-valuegt ltinit-paramgt ltload-on-startupgt1ltload-on-startupgt ltservletgt ltservlet-mappinggt lt-- URL pattern define parte da URL base onde o Web Service seraacute disponibilizado --gt ltservlet-namegtJersey REST Serviceltservlet-namegt lturl-patterngtrestlturl-patterngt ltservlet-mappinggt ltweb-appgt

ex httplocalhost8080devogellajerseytodoresttodos1

domiacutenio localhost

porta 8080

nome da aplicaccedilatildeo (webxml display-name) devogellajerseytodo

URL base (webxml url-pattern do servlet-mapping) rest

anotaccedilatildeo Path na classe Java todos

anotaccedilatildeo PathParam 1

10 Servlet Uma classe na linguagem de programaccedilatildeo Java que processa dinamicamente pedidos e

respostas gerando dados HTML e XML para a camada de apresentaccedilatildeo de uma aplicaccedilatildeo Web

104

Principais anotaccedilotildees JAX-RS

PATH(your_path) adiciona mais um paracircmetro ao URL (URL+your_path)

POST O meacutetodo responde a um pedido HTTP POST

GET O meacutetodo responde a um pedido HTTP GET

PUT O meacutetodo responde a um pedido HTTP PUT

DELETE O meacutetodo responde a um pedido HTTP DELETE

Produces(MediaType

TEXT_PLAIN[more-types])

Define o tipo MIME a ser entregue por um meacutetodo GET

Consumes(type[more-ypes ] ) Define o tipo MIME a ser consumido pelo meacutetodo

PathParam Usado para especificar valores da URL num paracircmetro do

meacutetodo

Uma outra anotaccedilatildeo fundamental eacute XmlRootElement para que o Jersey saiba

que os atributos iratildeo passar a noacutes no momento em que o XML como resposta ao cliente

De igual modo se receber um XML no corpo de um pedido o Jersei vai saber fazer a

conversatildeo desse XML para um objeto do tipo da classe em causa

I2 Exemplos de solicitaccedilotildees agrave API do MOE

Adicionar mais um processador a um Servidor

Operaccedilotildees sobre Servidores

Verb URI Description

GET servers Lista servidores

GET serversdetail Lista detalhes dos servidores

POST servers Cria servidor

GET serversid Lista detalhes dos servidores

PUT serversid Atualiza dados dos servidores

DELETE serversid Remove servidor

hellip hellip hellip

Um flavor representa uma configuraccedilatildeo de hardware disponiacutevel para um dado tipo

de servidores e eacute uma combinaccedilatildeo uacutenica de espaccedilo em disco capacidade de memoacuteria

nuacutemero de CPUs etc Um servidor eacute uma instacircncia de uma maacutequina virtual e portanto

eacute definido por um flavor

flavors [ disk 10 id 12 name 256_server ram 256 ldquocpurdquo 2 hellip hellip]

Operaccedilotildees sobre Flavors

Verb URI Description

GET flavors Lista flavors

GET flavorsdetail Lista detalhes dos flavors

105

GET flavorsid Lista detalhe do flavor

hellip hellip hellip

O objectivo eacute alterar o nuacutemero de CPUs de um servidor especiacutefico e para tal

temos de saber o valor desse campo no flavor desse servidor

Algoritmo passo-a-passo

1) Listar todos os servidores existentes

Esta operaccedilatildeo obteacutem uma lista de servidores associados agrave conta de um

determinado utilizador Em cada servidor (da lista) um atributo indica o estado actual do

servidor servidores com o estado ACTIVE estatildeo disponiacuteveis para utilizaccedilatildeo

Verb URI Description

GET servers Lista todos os servidores (apenas os IDs e nomes)

GET serversdetail Lista todos os servidores (todos os detalhes)

Coacutedigo para respostas normais 200 203

Coacutedigo para respostas de ERRO serversFault (400 500) serviceUnavailable

(503) unauthorized (401) badRequest (400) overLimit (413)

Resposta da listagem dos servidores XML (detalhes)

ltxml version=10 encoding=UTF-8gt ltservers xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgtgt ltserver id=1234 name=sample-server imageId=1 flavorId=12 status=BUILD progress=60 hostId=e4d909c290d0fb1ca068ffaddf22cbd0gt ltmetadatagt ltmeta key=Server LabelgtWeb Head 1ltmetagt ltmeta key=Image Versiongt21ltmetagt ltmetadatagt ltaddressesgt

ltpublicgt ltip addr=672310132gt ltip addr=672310131gt ltpublicgt ltprivategt ltip addr=101764216gt ltprivategt ltaddressesgt ltservergt hellip ltserversgt

De entre todos os servidores da lista o utilizador pretende ALTERAR o nuacutemero

de CPUs do servidor (server id=1234) ou seja precisa aceder ao flavor

(flavorId=12)

106

2) Listar o flavor (flavorId=12)

Esta operaccedilatildeo obteacutem os detalhes de um flavor especiacutefico (id)

Verb URI Description

GET flavorsid Lista detalhe do flavor especiacutefico

Coacutedigo para respostas normais 200 203

Error ResponseCode(s) serversFault (400 500) serviceUnavailable (503)

unauthorized (401) badRequest (400) itemNotFound (404) overLimit (413)

Resposta com detalhes de um Flavor XML

ltxml version=10 encoding=UTF-8gt ltflavor xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgt id=1 name=256 MB Server ram=256 disk=10 cpu=rdquo2rdquo gt

3) Alterar o nuacutemero de CPUs de 2 para 3 do servidor (server id=1234) flavor

(flavorId=12)

Esta operaccedilatildeo permite que se atualize o numero de CPUs do flavor associado ao

servidor Facilmente se depreende que esta operaccedilatildeo soacute seraacute possiacutevel se o utilizador puder

efectuar esta operaccedilatildeo (Status Transition ACTIVE)

Verb URI Description

PUT servers1234flavor12cpu3 Atualiza dados dos servidores

Coacutedigo para respostas normais 204

Coacutedigo para respostas de ERRO serversFault (400 500) serviceUnavailable

(503) unauthorized (401) badRequest (400) badMediaType(415) itemNotFound (404)

buildInProgress (409) overLimit (413)

Status Transition ACTIVE CONFIGURESERVER (if configureServer is

true)

Pedido de Update do flavor do servidor XML

ltxml version=10 encoding=UTF-8gt ltserver xmlns=httpaz-1region-ageo-1computehpcloudsvccomv11amp lttenant idgt server id=1234 flavorId=12 cpu=rdquo3rdquo gt

107

Anexo J (Ferramentas de desenvolvimento WebService)

Principais ferramentas e suas configuraccedilotildees usadas na criaccedilatildeo e desenvolvimento deste

webservice

Plataforma Java

Servidor Apache Tomcat

Ambiente de desenvolvimento Eclipse

JARacutes e Plugins

Macromedia Dreamweaver

Notepad++

J1 Plataforma Java

Java eacute uma linguagem de programaccedilatildeo orientada a objeto e considera-se diferente das

outras linguagens convencionais pelo facto de ser compilada para bytecode e executado

por uma maacutequina virtual contrariamente agrave compilaccedilatildeo para coacutedigo nativo A linguagem

de programaccedilatildeo Java eacute a linguagem convencional da Plataforma Java que pode ser

adquirida no site httpjavacomendownloadindexjsp

Figura 57 - Plataforma Java

Como o RESTWEBSERVICE foi criado e executado em ambiente Windows a

explicaccedilatildeo seraacute feita tendo em vista este ambiente

108

Assim vamos verificar se temos a plataforma java instalada e se eacute a ultima versatildeo

lsquoIniciarrsquo e executar lsquocmdrsquo abre-se uma consola de linha de comando do MS Windows

executamos o comando

ldquojava -versionrdquo

Este comando corresponde agrave chamada da maacutequina virtual para executar

ldquobytecoderdquo

Figura 58 - Comando ldquojava -versionrdquo

Java version ldquo170_25 JDK ou JRE

JRE(Java Runtime Environment) Ambiente de execuccedilatildeo Java (Java Virtual

Machine) Como ambiente seraacute apenas possiacutevel a execuccedilatildeo de coacutedigo Java jaacute

compilado

JDK (Java Development Kit) Kit de desenvolvimento Java onde se inclui o

compilador (javac) e o ambiente de execuccedilatildeo Java (JVM) Neste caso podemos

compilar classes java directamente de coacutedigo fonte e executa-las posteriormente

no JRE maacutequina virtual Java

J11 Instalaccedilatildeo

Caso seja necessaacuteria a instalaccedilatildeo da plataforma java termos que fazer o download (versatildeo

7 update 25) e efectuar a sua instalaccedilatildeo Por defeito apoacutes a instalaccedilatildeo teremos os dois

ambientes JDK e JRE na directoria ldquoCProgram FilesJavardquo

Para testar a instalaccedilatildeo do compilador (JDK) lsquoIniciarrsquo e executar lsquocmdrsquo abre-se

uma consola de linha de comando do MS Windows executamos o comando

109

ldquojavacrdquo

Figura 59 - Instalaccedilatildeo da Plataforma Java

Concluiacuteda a instalaccedilatildeo da plataforma java teremos que definir as variaacuteveis de

ambiente para a posterior execuccedilatildeo do ambiente de desenvolvimento IDE (Integrated

Development Environment ) Eclipse e todas as dependecircncias do Java

J12 Variaacuteveis de ambiente

ldquoIniciarrdquo ldquoPainel de controlerdquo ldquoDefiniccedilotildees avanccediladas do sistemardquo ldquoVariaacuteveis de

ambienterdquo ldquoVariaacuteveis de sistemardquo

PATH ndash adicionar ldquodirectoria de instalaccedilatildeo do JDKrdquobin

ex CProgram FilesJavajdk170_25bin

Figura 60 - Variaacutevel de sistema ldquoPathrdquo

CLASSPATH ndash criar esta variaacutevel

Nome da variaacutevel ldquoCLASSPATHrdquo

Valor da variaacutevel ldquordquo

110

Figura 61 - Variaacutevel de sistema ldquoCLASSPATHrdquo

JAVA_HOME ndash criar esta variaacutevel com a ldquodirectoria de instalaccedilatildeo do

JDKrdquobin

ex CProgram FilesJavajdk170_25bin

Figura 62 - Variaacutevel de sistema ldquoJAVA_HOMErdquo

J13 Teste da instalaccedilatildeo da plataforma java e configuraccedilatildeo das variaacuteveis de

ambiente

Vamos verificar se as variaacuteveis foram definidas correctamente Para isso com o

Notpad++ vamos criar um ficheiro com o nome ldquoTestjavardquo e incluir o seguinte coacutedigo

public class Test public static void main(String[] args) throws Exception Systemoutprintln(Hello RESTWEBSERVICE)

Finalmente vamos compilar a classe na directoria onde foi criada e executaacute-la

utilizando a maacutequina virtual Java Na consola de linha de comando vamos executar os

seguintes comandos

javac Testjava ndash Comando para compilar a classe java criada

java Test - Comando para executar a classe Test

Se as variaacuteveis de ambiente foram definidas correctamente deveremos ter

como resposta

ldquoHello RESTWEBSERVICErdquo

111

J2 Servidor Apache Tomcat

Apache Tomcat eacute uma implementaccedilatildeo de software de fonte aberta das tecnologias Java

Servlet e JavaServer Pages (JSP) Egrave um servidor web HTTP em linguagem java um

servidor de aplicaccedilotildees JEE (Java Enterprise Edition) Tem a vantagem de incluir

ferramentas para gestatildeo e configuraccedilatildeo que podem ser editadas directamente num ficheiro

de configuraccedilatildeo em XML

O download deste servidor pode ser feito directamente no site da Tomcat

httptomcatapacheorgdownload-70cgi

J21 Instalaccedilatildeo

Feito o download basta descompactar o ZIP numa directoria ex C onde seraacute criado

uma pasta com o nome do ZIP Capache-tomcat-7034 Como versatildeo preacute-configurada

disponibiliza de imediato as seguintes configuraccedilotildees

A porta de acesso aacutes aplicaccedilotildees eacute a 8080 Basta para isso digitar o URL

seguido de ldquordquo e a porta 8080

ex httplocalhost8080MOE

Se natildeo existirem redireccionamentos eacute possiacutevel a listagem de directorias

Esta opccedilatildeo eacute sempre desactivada depois nas implementaccedilotildees

Monitorizaccedilatildeo sempre constante qualquer alteraccedilatildeo dos ficheiros natildeo existe a

necessidade de fazer um restart ao servidor

Figura 63 - Directoria de instalaccedilatildeo do Servidor Apache Tomcat

112

J22 Execuccedilatildeo

Para testarmos o servidor Apache Tomcat basta corresmos o executaacutevel ldquoTomcat7exerdquo

da directoria ldquoCTomcat 70binrdquo e aceder ao link httplocalhost8080

Figura 64 - Link localhost Apache Tomcat

J3 Ambiente de desenvolvimento Eclipse

Eclipse eacute um IDE (Integrated Development Environment) ou ambiente integrado de

desenvolvimento eacute um programa com caracteriacutesticas e ferramentas de apoio ao

desenvolvimento de software com a vantagem de ter a maior parte das ferramentas de

desenvolvimento jaacute integradas e prontas a usar Uma orientaccedilatildeo baseada em plugins que

mediante incorporaccedilatildeo satisfazem as necessidades dos diferentes programadores

O download deste IDE pode ser feito directamente no site

httpwwweclipseorgdownloads O package em questatildeo para o desenvolvimento

direcionado agrave web eacute o ldquoEclipse IDE for Java EE Developersrdquo que jaacute vem com a maior

parte dos plugins destinados a este tipo de desenvolvimento

J4 JARs e Plugins

O ambiente de desenvolvimento Eclipse principalmente o ldquoEclipse IDE for Java EE

Developersrdquo jaacute vem com a maior parte dos plugins por defeito para desenvolvimentos

orientados agrave web mas haacute um indispensaacutevel muito uacutetil natildeo soacute no acesso aos menus de

configuraccedilatildeo do projecto como tambeacutem ferramentas de configuraccedilatildeo do servidor Apache

Tomcat plugin ldquoWeb Tools Platform (WTP)rdquo

Podemos fazer o download directo do plugin ou solicitar ao Eclipse que o faccedila por

noacutes e instale directamente Para isso vamos ao menu ldquoHelprdquo ldquoInstall new Softwarerdquo

ldquoaddrdquo

Name Web Tools Platform (WTP)

Location httpdownloadeclipseorgwebtoolsrepositoryindigo

113

Figura 65 - Add repository

Relativamente aos JARs estes satildeo dependents do projecto em siacute e do que se

pretende usar JAR (Java Archive) eacute um formato de ficheiro que normalmente eacute usado

para agregar muitos ficheiros de classes Java e metadados associados recursos como

textos e imagens tudo num uacutenico ficheiro que depois funcionaraacute como bibliotecas na

plataforma Java

Basta para isso colocar os JARs necessaacuterios na directoria

ldquoprojectNameWebContentWEB-INFlibrdquo

J4 Macromedia Dreamweaver

O Adobe Dreamweaver mais conhecido por Macromedia Dreamweaver eacute um software de

desenvolvimento na Web criada pela Macromedia

Um software que fornece suporte para vaacuterias tecnologias web tais como XHTML

CSS JavaScript Ajax PHP ASP ASPNET JSP ColdFusion e outras linguagens

Server-side

Toda a apresentaccedilatildeo web da camada de apresentaccedilatildeo do webservice foi

desenvolvida e testada inicialmente neste software Desenvolvimento de coacutedigo HTML

JSP incorporaccedilatildeo de imagens construccedilatildeo de tabelas etc

A5 Notepad++

Notepad++ eacute um editor de texto e de coacutedigo fonte aberto sob licenccedila GPL Tem a

vantagem de suportar vaacuterias linguagens de programaccedilatildeo como HTML JSP CSS JQuery

Javascript e eacute optimo para alteraccedilotildees raacutepidas de coacutedigo e sua visualizaccedilatildeo

114

Anexo K (Criar e executar um ldquoDynamic Web Projectrdquo no Eclipse)

K1 Criar um ldquoDynamic Web Projectrdquo

Para criar um ldquoDynamic Web Projectrdquo temos que iniciar o Eclipse e nesta primeira

iniciaccedilatildeo vatildeo ser testadas todas as variaacuteveis de ambiente anteriormente criadas e criado

um workspace onde seratildeo guardados todos os nossos projectos

Depois de iniciado o Eclipe para criarmos um ldquoDynamic Web Projectrdquo seguimos

os passos

1 ldquoFilerdquo ldquoNewrdquo ldquoProjectrdquo

2 Na proacutexima janela escolher ldquoWebrdquo ldquoDynamic Web Projectrdquo

Figura 66 - Dynamic Web Project

3 Clique em Next

4 Nas propriedades do projecto

Project name Test

Target runtime Apache Tomcat v70

Dynamic web module version 30

Configuration Default Configuration for Apache Tomcat v70

115

Figura 68 - Propriedades do Dynamic Web Project

5 Clique em Next e depois outra vez em Next

6 Seleccione ldquoGenerate webxml deployment descriptorrdquo para a criaccedilatildeo do

webxml onde seratildeo incluiacutedas todas as definiccedilotildees e configuraccedilotildees do projecto

Figura 69 - Webxml do Dynamic Web Project

7 Clique em Next e todo o projecto eacute criado

116

Figura 70 - Directoria base do Dynamic Web Project

JavaSource (src)

Coacutedigo fonte Java do projeto Recursoso que satildeo automaticamente compilado e os

ficheiros gerados satildeo adicionados ao diretoacuterio WEB-INFclasses

WebContent

Localizaccedilatildeo de todos os recursos da Web incluindo HTML JSP ficheiros

graacuteficos imagens etc Os ficheiros ficam disponiacuteveis apenas nesta directoria ou

subdirectorias quando o servidor eacute executado

META-INF

Esta directoria conteacutem o arquivo MANIFESTMF que eacute usado para mapear o

caminho das classes para os ficheiros JAR dependentes que existem no projecto Quando

um JAR eacute adicionado agrave biblioteca esta entrada eacute adicionada automaticamente neste

ficheiro

WEB-INF

Directoria que conteacutem os recursos da Web de suporte para agrave aplicaccedilatildeo incluindo o

ficheiro webxml e as classes e lib

Classes

Directoria das classes compiladas eacute a directoria de saiacuteda do compilador Java As

classes ldquoclassrdquo satildeo colocados neste directoria automaticamente quando o compilador

Java compila os ficheiros de origem Java que estatildeo no directoria de recursos Java (src)

Lib

Os ficheiros JAR de apoio a toda a aplicaccedilatildeo As classes existentes nos ficheiros

jar ficam disponiacuteveis para uso na aplicaccedilatildeo

Web Deployment Descriptor

O descritor de implementaccedilatildeo de toda a aplicaccedilatildeo o ficheiro webxml

117

K2 Executar um ldquoDynamic Web Projectrdquo

Para testarmos o nosso ldquoDynamic Web Projectrdquo comeccedilamos por criar uma classe na

directoria ldquosrcrdquo ldquoFilerdquo ldquoNewrdquo ldquoOtherrdquo ldquoClassrdquo

Figura 71 - Criar uma classe

Criamos uma classe com o package test e o nome Test e incluiacutemos o seguinte

coacutedigo

package test public class Test public static void main(String[] args) throws Exception Systemoutprintln(Hello RESTWEBSERVICE)

Criamos igualmente um ficheiro HTML na directoria WebContent ldquoFilerdquo ldquoNewrdquo

ldquofilerdquo com o nome ldquotesthtmlrdquo e com o seguinte coacutedigo

lthtmlgt ltheadgt lttitlegtDynamic Web Project HTML pagelttitlegt ltheadgt ltbodygt lth2gt Hello RESTWEBSERVICE lth2gt ltbodygt lthtmlgt

118

Executamos o projecto no menu clicamos em ldquoRunrdquo ldquoRunrdquo escolhemos ldquoRun

on Serverrdquo e a primeira vez que executarmos o projecto temos que fazer a ligaccedilatildeo ao

servidor Apache Tomcat ldquoApacherdquo ldquoTomcat v70 Serverrdquo e ldquoFinishrdquo

Figura 72 - Servidor Apache Tomcat dentro do Eclipse

O projecto estaacute pronto a testar no link httplocalhost8080Testtesthtml

Figura 73 - Execuccedilatildeo no Browser

119

Anexo L (Importar configurar e executar o RESTWEBSERVICE - MOE)

A implementaccedilatildeo RESTWEBSERVICE - MOE eacute um webservice desenvolvido numa

arquitectura orientada a Web (Web-Oriented Architecture - WOA) disponibilizando os seus

recursos na Web atraveacutes do protocolo REST (Representational State Transfer) para troca de

informaccedilatildeo Vantagens como a simplicidade de interaccedilatildeo entre sistemas heterogeacuteneos a

facilidade de comunicaccedilatildeo entre aplicaccedilotildees existentes em muacuteltiplas plataformas e a

independecircncia de plataformas e linguagens de programaccedilatildeo satildeo evidentes

L1 Importaccedilatildeo do ldquoDynamic Web Projectrdquo MOE

A importaccedilatildeo o projecto ldquoMOErdquo (Matrix Operating Environment) para o ambiente de

desenvolvimento Eclipse carece da criaccedilatildeo de um ldquoDynamic Web Projectrdquo base no Eclipse

Assim para a criaccedilatildeo de um ldquoDynamic Web Projectrdquo seguir os passos descritos na

aliacutenea K1 Criar um ldquoDynamic Web Projectrdquo do Anexo K alterando apenas o nome para

ldquoMOErdquo Natildeo eacute necessaacuterio criar nenhuma classe java nem ficheiro HTML

Figura 74 - Projecto base MOE

Depois do projecto MOE criado basta importar o projecto real para o Eclipse ldquoFilerdquo

ldquoImportrdquo ldquoArchive Filerdquo

Figura 75 - Importaccedilatildeo do projecto real MOE

Seleccionar o projecto a importar O projecto deveraacute ficar com uma organizaccedilatildeo de

directorias como na imagem seguinte

120

Figura 76 - Projecto real MOE

L2 Configuraccedilatildeo inicial do MOE

Para que a execuccedilatildeo do MOE seja feita sem erros e todas as ligaccedilotildees e credenciaccedilotildees sejam

efectuadas temos que criar pastas e ficheiros de leitura inicial do MOE Assim vamos criar

uma directoria em C com o nome ldquorestconfigrdquo (Crestconfig) com 4 ficheiros

adminUsersListtxt

Ficheiro com todos os administradores do MOE Esta lista deveraacute ser igual agrave lista dos

administradores do HPMOE Um administrador por linha ldquodomiacutenioadminrdquo (ex

ldquohpptlabpaulopiresrdquo)

121

Figura 77 - Ficheiro ldquoadminUsersListtxtrdquo

hp-io-v5wsdl

Ficheiro WSDL (Web Service Description Language) a definiccedilatildeo das operaccedilotildees de IO

disponiacuteveis

https ltcms-ip-addressgt 51443hpiocontrollersoapv4 wsdl

Neste ficheiro basta alterar o IP do servidor HPMOE linha 5987

ltsoapaddress location=https1623187651443hpiocontrollersoapv5gt

Figura 78 - Ficheiro ldquohp-io-v5wsdlrdquo

Figura 79 - WSDL do HPMOE

loginconfig

Ficheiro de apoio agrave credenciaccedilatildeo (login) no MOE

No acircmbito da seguranccedila em aplicaccedilotildees JavaEE o servidor Apache Tomcat fornece

uma implementaccedilatildeo Realm JAAS (Java Authentication and Authorization Service) para que

os programadores possam implementar moacutedulos de login JAAS e integraacute-los facilmente com

as suas aplicaccedilotildees JAAS permite assim autenticaccedilotildees em modo Basic e Form usando para

isso os denominados realms File e JDBC (Java Database Connectivity) que neste caso eacute em

runtime

122

Figura 80 - Ficheiro ldquologinconfigrdquo

A ligaccedilatildeo ao ficheiro ldquologinconfigrdquo eacute feita no menu do Eclipse ldquoRunrdquo ldquoRun

Configurationsrdquo ldquoTomcat 70rdquo ldquoArgumentsrdquo ldquoVM argumentsrdquo adicionar a linha -

Djavasecurityauthloginconfig=Crestconfigloginconfig

Figura 81 - Ficheiro ldquologinconfigrdquo

vmwareAccesstxt

Ficheiro com dados de acesso agrave VMware para acesso agrave consola das VMs dos serviccedilos

criados

Primeira linha IP da VM onde estaacute o VCenter da VMware

Segunda linha Username do Administrador

Terceira linha Password do Administrador

123

Figura 82 - Ficheiro ldquovmwareAcesstxtrdquo

L3 Execuccedilatildeo do MOE

O MOE pode finalmente ser executado Para isso no menu clicamos em ldquoRunrdquo ldquoRunrdquo

escolhemos ldquoRun on Serverrdquo e a primeira vez que executarmos o projecto temos que fazer a

ligaccedilatildeo ao servidor Apache Tomcat ldquoApacherdquo ldquoTomcat v70 Serverrdquo e ldquoFinishrdquo

Figura 83 - Servidor Apache Tomcat dentro do Eclipse

Aguardar que o projecto seja construiacutedo e compilado Podemos acompanhar a

evoluccedilatildeo do estado directamente na consola do Eclipse

124

Figura 84 - Compilaccedilatildeo do projecto MOE

Finalmente o projecto estaacute disponiacutevel em httplocalhost8080MOE

Figura 85 - Login page MOE

Figura 86 - Data page MOE

125

Anexo M (Criaccedilatildeo de um Serviccedilo e ligaccedilatildeo agraves VMs)

A criaccedilatildeo de um serviccedilo de um determinado utilizador tem por base as

definiccedilotildeesconfiguraccedilotildees existentes num Template previamente definido e listado num

Cataacutelogo de Serviccedilos Configuraccedilotildees como detalhes dos servidores memoacuteria processadores

discos custos interfaces limites maacuteximos e miacutenimos de futuros updates ao serviccedilo etc estatildeo

previamente descritos e implementados sob a forma de Templates nos quais o utilizador pode

navegar verificar as caracteriacutesticas de cada um e escolher um que melhor se adapte as suas

necessidades

Assim o utilizador navega nos Templates existentes no Cataacutelogo de Serviccedilos do

menu lateral esquerdo e seleciona o Template No painel central do webservice painel

ldquoDetalhesrdquo satildeo abertas as tabs dos detalhes do Template selecionado

M1 Detalhes do Template

Nas imagens seguintes podemos verificar os detalhes do Template selecionado Nos detalhes

gerais do Template obtemos informaccedilotildees como o nome do Template a data de criaccedilatildeo e

modificaccedilatildeo versatildeo custo geral se eacute ou natildeo costumizaacutevel e o numero de ServerGroups

associados assim como discos e serviccedilos que jaacute foram criados tendo por base este template

Figura 87 - Detalhes gerais do Template ldquoTemplate_3srvrdquo

126

Todos os detalhes do Template ficam disponiacuteveis ao utilizador Ao niacutevel do grupo de

servidores informaccedilotildees como nome quantidade miacutenima de servidores e que seraacute a base do

serviccedilo criado e quantidade maacutexima de servidores sinal que o serviccedilo poderaacute crescer em

termos de quantidade de servidores Tipo de cluster e o numero de servidores loacutegicos

existentes no grupo

Figura 88 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo

Relativamente aos servidores o utilizador obteacutem informaccedilotildees como nome hostname

tipo de virtualizaccedilatildeo memoacuteria usada e quantidade maacutexima de memoacuteria processadores

usados e quantidade maacutexima de processadores se eacute ou natildeo virtual e se estaacute ou natildeo em cloud

Figura 89 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Informaccedilotildees detalhadas sobre os custos em detalhes ficam disponiacuteveis ao utilizador

Informaccedilotildees sobre custo total custo de base por cada servidor custo por processador e

memoacuteria

127

Figura 90 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Os discos tambeacutem apresentam informaccedilatildeo como nome tipo de storage tamanho raid

level se eacute ou natildeo bootable shareable e custo do disco

Figura 91 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

Cada servidor tem um software preacute-instalado ou instalado posteriormente pelo

utilizador Informaccedilotildees como nome tipo OS e virtualizaccedilatildeo estatildeo disponiacuteveis

Figura 92 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

Finalmente detalhes sobre as interfaces Neste caso duas interfaces uma na rede HP

(HP Network) e outra rede local (CloudSystem) Estatildeo disponiacuteveis informaccedilotildees como nome

da interface se eacute ou natildeo primaacuteria redundacircncia subnet publica shareable tipo de IP

endereccedilo DHCP activo ou natildeo e custo final

128

Figura 93 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo

M2 Criaccedilatildeo de um Serviccedilo

Selecionado o Template que melhor se enquadra nas necessidades do utilizador clicar

na opccedilatildeo preencher todos os dados obrigatoacuterios como nome do

serviccedilo hostname tempo atribuiacutedo ao serviccedilo (acarreta custos) e email do utilizador

As opccedilotildees ldquoNotesrdquo e ldquoBilling coderdquo satildeo opcionais

Figura 94 - Criaccedilatildeo do serviccedilo ldquomyServicerdquo

129

Apoacutes a solicitaccedilatildeo para a criaccedilatildeo do serviccedilo o utilizador eacute encaminhado para uma

lista de pedidos existentes para aquele utilizador e serviccedilo em especiacutefico Pedidos que

poderatildeo ser cancelados (figura 95) mediante decisatildeo do utilizador

Figura 95 - Lista de pedidos do utilizador

A salientar que existem pedidos que carecem da aprovaccedilatildeo do administrador por isso

o pedido poderaacute ficar parado numa determinada percentagem () a espera dessa aprovaccedilatildeo

Se o pedido natildeo necessitar de aprovaccedilatildeo continuaraacute a sua execuccedilatildeo ateacute estar completo

(100) e automaticamente seraacute adicionado ao menu lateral esquerdo do utilizador

Figura 96 - Eventual cancelamento de um pedido

Finalmente o serviccedilo eacute criado e todas as opccedilotildees ficaratildeo agora disponiacuteveis ao

utilizador como ediccedilatildeo de memoacuteria e processadores upgrade de servidores exportaccedilatildeo de

dados em xml visualizaccedilatildeo nesse formato etc

M3 Acesso Remoto

Acesso remoto agrave maquina virtual (VM) como objectivo de toda a implementaccedilatildeo estaacute

igualmente disponiacutevel para os servidores cujo status = ldquoUPrdquo Essa listagem poderaacute ser

efectuada na tab ldquoServiccedilosrdquo em com quatro tipo de ligaccedilotildees

130

RDP (Remote Desktop Protocol) (figura 100)

Dowload do ficheiro RDP para posterior ligaccedilatildeo

Telnet (figura 101)

VMRC (VMware Remote Console) (figura 102)

Figura 97 - Serviccedilo ldquomyServicerdquo criado

Figura 98 - Listagem dos acessos remotos

Os acessos remotes poderatildeo ser feitos atraveacutes desta lista ou directamente nos

servidores ou interfaces

131

Figura 99 - Acesso remoto na tab ldquoServerrdquo

Figura 100 - Acesso remoto por RDP

Figura 101 - Acesso remoto por Telnet

Figura 102 - Acesso remoto por VMRC

132

Anexo N (MOE Help)

A informaccedilatildeo disponibilizada eacute vasta e detalhada sobre os recursos disponibilizados e a sua

manipulaccedilatildeo pode criar alguma duacutevida existencial Uma paacutegina ldquoMOE Helprdquo de ajuda eacute

sempre bem vinda e uacutetil bastando para isso clicar no iacutecone que o ajudaraacute a compreender

melhor tido o wevservice e sua distribuiccedilatildeo e organizaccedilatildeo

Figura 103 - Menu lateral esquerdo ldquoMOE Helprdquo

O menu lateral esquerdo agrave semelhanccedila da paacutegina principal do webservice expelha a

hierarquia da organizaccedilatildeo de toda a informaccedilatildeo O utilizador apenas tem que clicar na opccedilatildeo

que deseja maior esclarecimento

Figura 104 - Menu lateral esquerdo ldquoMOE Helprdquo

133

Toda a informaccedilatildeo de ajuda estaacute imediatamente disponiacutevel com as Tabs respectivas jaacute

abertas e prontas a consultar O menu lateral esquerdo serve apenas para selecionar a Tab e

dentro dessa Tab selecionar imediatamente a informaccedilatildeo pretendida Se o utilizador tiver

duacutevidas sobre a a importaccedilatildeo de um Template basta abrir a Tab Template e scroll ateacute agrave

informaccedilatildeo pretendida ou sentatildeo mais faacutecil clicar apenas em ldquoImport xmlrdquo dentro da pasta

Template no menu lateral esquerdo e com um simples clique visualiza imediatamente a

informaccedilatildeo nem necessidade de scroll

Figura 105 - ldquoImport xmlrdquo help

N1 Template

Um Template compreende a uma configuraccedilatildeo especifica de hardware e software desenhado

pelo Arquitecto a infra-estrutura para fazer face a determinadas situaccedilotildees como solicitaccedilotildees

de um utilizador ou grupo de utilizadores que solicitaram essas configuraccedilotildees especificadas

Configuraccedilotildees como nuacutemero de servidores memoacuteria processadores discos software

interface etc Opccedilotildees configuraacuteveis com limites minimos e maacuteximos com o seu

correspondente custo associado

Esses templates apoacutes publicaccedilatildeo fazem parte de uma lista num cataacutelogo de serviccedilos

para uso e instanciaccedilatildeo de serviccedilos de utilizadores dessa infra-estrutura

134

Figura 106 - Template info Tab

N2 Service

Um serviccedilo corresponde a uma instanciaccedilatildeo de um determinado template Todas as

configuraccedilotildees base do template seleccionado pertencem agora a este novo serviccedilo que poderaacute

ser posteriormente editado com mais ou menos servidores processamento memoacuteria discos

etc ateacute um limite maacuteximo definido no template de base de criaccedilatildeo deste serviccedilo A opccedilatildeo de

remoccedilatildeo de servidores definir menos memoacuteria ou processadores tambeacutem satildeo opccedilotildees

disponiacuteveis de ediccedilatildeo

Figura 107 - Service info Tab

135

N3 ServerGroup

Um Grupo de Servidores corresponde a um ou mais servidores com configuraccedilotildees diacutespares

em cada grupo como software discos interfaces etc O grupo de servidores permite a

organizaccedilatildeo dos servidores existentes num serviccedilo por tipo de configuraccedilotildees de hardware e

software

Figura 108 - ServerGroup info Tab

N4 Server

Um servidor eacute o nuacutecleo de um serviccedilo igualmente com configuraccedilotildees especiacuteficas como

memoacuteria processadores velocidade discos software interfaces etc

Figura 109 - Server info Tab

136

N5 Disk

Figura 110 - Disk info Tab

N6 Software

Software a ser disponibilizado na VM do utilizador Software baseado igualmente num

template com configuraccedilotildees especiacuteficas

Figura 111 - Software info Tab

137

N7 Interface

Toda a infra-estrutura tem por base uma lista de redes definidas para comunicaccedilatildeo desde

redes internas a redes externas agrave infra-estrutura

Figura 112 - Interface info Tab

N8 Request

Os pedidossolicitaccedilotildees ficam em histoacuterico durante a sua execuccedilatildeo e apoacutes teacutermino da mesma

Permite que o utilizador acompanhe a progressatildeo do seu pedido e quando terminar (100) o

utilizador eacute informado do status de teacutermino sendo automaticamente feito o refresh da paacutegina

Figura 113 - Request info Tab

138

N9 About

Um pequeno resumo desta Tese

Figura 114 - About info Tab

N10 Team

Intervenientes de todo o projecto

Figura 115 - Team info Tab

139

N11 Javadoc

Informaccedilatildeo sobre todo o webservice meacutetodos moacutedulos de acesso login configuraccedilotildees etc

Informaccedilatildeo disponiacutevel apenas ao Administrador

Figura 116 - Javadoc info Tab

140

Anexo O (VMware - Virtual Machine Resources)

O1 ldquoMapsrdquo ndash Host Options ndash Host to VM

Detalhes da relaccedilatildeo HostVM no final dos 3 serviccedilos criados

Host cifm02hpptlablocal VM Service1HP_hostonehost5

Host cifm05hpptlablocal VM myService_hostmyhostr01

Service2HP_hostrhostr01 02 e 03

Figura 117 - ldquoMapsrdquo da relaccedilatildeo Host VM

141

O2 ldquoMapsrdquo ndash Host Options ndash Host to Network

Detalhes da relaccedilatildeo HostNetwork no final dos 3 serviccedilos criados Os 2 hosts

(cifm02hpptlablocal e cifm05hpptlablocal) estatildeo ligados agraves 3 redes existentes

CloudSystem rede interna MOE (19216810hellip)

HP Network rede externa MOE e interna HP (1623186hellip e 1623187hellip)

HP DataCenter outra rede interna MOE

Figura 118 - ldquoMapsrdquo da relaccedilatildeo Host Network

142

O3 ldquoMapsrdquo ndash Host Options ndash Host to Datastore

Detalhes da relaccedilatildeo HostDatastore no final dos 3 serviccedilos criados

Host cifm02hpptlablocal Datastore CIF02-LOCALDATASTORE-001

Host cifm05hpptlablocal Datastore CIF05-LOCALDATASTORE-001 002 003 e

004

Datastore EVA-VMware-DISK-001 002 003 004 3 005

Figura 119 - ldquoMapsrdquo da relaccedilatildeo Host Datastore

143

O4 ldquoMapsrdquo ndash VM Options ndash VM to Network

Detalhes da relaccedilatildeo VMNetwork no final dos 3 serviccedilos criados

Network CloudSystem VM todas as VMs na rede local MOE

Network HP Network VM todas as VMs na rede externa MOE

Figura 120 - ldquoMapsrdquo da relaccedilatildeo VM Network

144

O5 ldquoMapsrdquo ndash VM Options ndash VM to Datastore

Detalhes da relaccedilatildeo HostDatastore no final dos 3 serviccedilos criados

VM Service1HP_hostonehost5 Datastore EVA-VMware-DISK-004

VM myService_hostmyhostr01 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr01 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr02 Datastore CIF05-LOCALDATASTORE-004

VM Service2HP_hostrhostr03 Datastore CIF05-LOCALDATASTORE-004

Figura 121 - ldquoMapsrdquo da relaccedilatildeo Host Datastore

145

O6 ldquoMapsrdquo ndash Host and VM Options ndash all relationships

146

Anexo P (Scenario view)

P1 Template

P11 Informaccedilatildeo

Figura 122 - Detalhes gerais do Template ldquoTemplate_3srvrdquo

Figura 123 - Detalhes do ServerGroup ldquoSvrGrp1rdquo do Template ldquoTemplate_3srvrdquo

147

Figura 124 - Detalhes do Servidor ldquoSvrGrp1-1rdquo

Figura 125 - Detalhes dos Custos do Servidor ldquoSvrGrp1-1rdquo

Figura 126 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

Figura 127 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

148

Figura 128 - Detalhes das Interfaces ldquoNIC0rdquo e ldquoNIC1rdquo do Servidor ldquoSvrGrp1-1rdquo

P12 Execuccedilatildeo

Figura 129 - Ficheiro ldquoTemplateListxmlrdquo

149

Export Template

Figura 130 - Ficheiro ldquoTemplate_3srvxmlrdquo

Import Template

Figura 131 - Importaccedilatildeo de um Template em formato XML

Delete Template

Figura 132 - InfoWindow ldquoDelete Templaterdquo

150

XML View

Figura 133 - InfoWindow com a visualizaccedilatildeo do Template em XML

Export All Services

Figura 134 - Ficheiro ldquoTemplate_3srv_ServiceListxmlrdquo

151

Create Service

Figura 135 - Criaccedilatildeo de um Serviccedilo com base no Template ldquoTemplate_3srvlrdquo

All Requests

Figura 136 - Lista de todos os pedidos do utilizador

152

Figura 137 - Eventual cancelamento de um pedido

Template Requests

Figura 138 - Lista dos pedidos resultantes da relaccedilatildeo Templateutilizador

153

P2 Serviccedilo

P21 Informaccedilatildeo

Figura 139 - Detalhes do Serviccedilo ldquomyServicerdquo do Template ldquoTemplate_3srvrdquo

P22 Execuccedilatildeo

Export All Services

Figura 140 - Ficheiro ldquoallServicesListxmlrdquo

154

Export Service

Figura 141 - Ficheiro ldquomyServicexmlrdquo

XML View

Figura 142 - InfoWindow com a visualizaccedilatildeo do Serviccedilo em XML

Delete Service

Figura 143 - Remoccedilatildeo de um Serviccedilo

155

Power ON Service

Figura 144 - Power ON de um Serviccedilo

Power OFF Service

Figura 145 - Power OFF de um Serviccedilo

Power Cycle Service

Figura 146 - Power Cycle de um Serviccedilo

Activate Service

Figura 147 - Activaccedilatildeo de um Serviccedilo

Deactivate Service

Figura 148 - Desactivaccedilatildeo de um Serviccedilo

156

Service Actions

Figura 149 - Lista dos Service Actions

List Remote Session

Figura 150 - Lista dos Acessos Remotos do um Serviccedilo

Figura 151 - Acesso remoto por RDP

Figura 152 - Acesso remoto por Telnet

157

Figura 153 - Acesso remoto por VMRC

Service Requests

Figura 154 - Listagem dos pedidos por Serviccedilo

158

P3 Grupo de Servidores

P31 Informaccedilatildeo

Figura 155 - Detalhes do Grupo de Servidores ldquoSvrGrp1rdquo do Serviccedilo ldquomyServicerdquo

P32 Execuccedilatildeo

Export Server Group

Figura 156 - Ficheiro ldquoSvrGrp1xmlrdquo

159

XML View

Figura 157 - InfoWindow com a visualizaccedilatildeo do Grupo de Servidores em XML

Add Servers (UP)

Figura 158 - Adiccedilatildeo de Servidores ao Grupo de Servidores

Remove Servers (DOWN)

Figura 159 - Remoccedilatildeo de Servidores ao Grupo de Servidores

160

Edit ServerGroup

Figura 160 - Ediccedilatildeo de Servidores ao Grupo de Servidores

Power ON ServerGroup

Figura 161 - Power ON de um ServerGroup

Power OFF ServerGroup

Figura 162 - Power OFF de um ServerGroup

Power Cycle ServerGroup

Figura 163 - Power Cycle de um ServerGroup

161

Activate ServerGroup

Figura 164 - Activaccedilatildeo de um ServerGroup

Deactivate ServerGroup

Figura 165 - Desactivaccedilatildeo de um ServerGroup

List Snapshots

Figura 166 - Listagem de todos os Snapshots existentes no Grupo de Servidores

Figura 167 - Acccedilotildees SnapshotServidor

Figura 168 - Revert Snapshot

162

Figura 169 - Delete Snapshot

Create Snapshot

Figura 170 - Create Snapshot

Add Stereotype Disks

Figura 171 - Lista de ldquoStereotype Disksrdquo

Add Virtual Disks

Figura 172 - Adicionar um disco virtual ldquoDisk62rdquo ao Grupo de Servidores

163

Add Physical Disks

Figura 173 - Adicionar um disco fiacutesico ldquoDisk788rdquo ao Grupo de Servidores

P4 Servidores

P41 Informaccedilatildeo

Figura 174 - Detalhes do Servidor ldquoSvrGrp1-1rdquo do Serviccedilo ldquomyServicerdquo

164

P42 Execuccedilatildeo

Export Server

Figura 175 - Ficheiro ldquohostmygostr01_lsxmlrdquo

XML View

Figura 176 - InfoWindow com a visualizaccedilatildeo do Servidor em XML

165

Remove Server

Figura 177 - Remoccedilatildeo de um Servidor

Edit Server

Figura 178 - Ediccedilatildeo de um Servidor

Power ON Server

Figura 179 - Power ON de um Servidor

Power OFF Server

Figura 180 - Power OFF de um Servidor

166

Power Cycle Server

Figura 181 - Power Cycle de um Servidor

Activate Server

Figura 182 - Activaccedilatildeo de um Servidor

Deactivate Server

Figura 183 - Desactivaccedilatildeo de um Servidor

Create Snapshot

Figura 184 - Create Snapshot

167

List ServerPool

Figura 185 - Pools de Servidores

Figura 186 - Criar uma Pools de Servidores

Figura 187 - Remoccedilatildeo de uma Pools de Servidores

Figura 188 - InfoWindo de aviso ao administrador

168

VM Host

Figura 189 - Informaccedilatildeo dos hosts fiacutesicos

Remote Session

Figura 190 - Sessotildees Remotas num Servidor

169

P5 Discos

P51 Informaccedilatildeo

Figura 191 - Detalhes do Disco ldquoDisk1-1rdquo do Servidor ldquoSvrGrp1-1rdquo

P52 Execuccedilatildeo

Add Stereotype Disks

Figura 192 - Criaccedilatildeo de um ldquoStereotype Disksrdquo

170

P6 Software

P61 Informaccedilatildeo

Figura 193 - Detalhes do Software ldquoWindows 7rdquo do Servidor ldquoSvrGrp1-1rdquo

P62 Execuccedilatildeo

List Softwares

Figura 194 - Lista de Software

171

Software Detals

Figura 195 - Detalhes do Software

P7 Interface

P71 Informaccedilatildeo

Figura 196 - Detalhes do Interface NIC0rdquo do Servidor ldquoSvrGrp1-1rdquo

172

P72 Execuccedilatildeo

List Subnets

Figura 197 - Listagem de todas as redes

Figura 198 - Detalhe da rede

Add IPAddress

Figura 199 - Adiccedilatildeo de um IP flutuante agrave Interface ldquoNIC0rdquo

173

Remove IPAddress

Figura 200 - Remoccedilatildeo de um IP flutuante pertencente agrave Interface ldquoNIC0rdquo

Move IPAddress

Figura 201 - Mover um IP flutuante para a Interface ldquoNIC0rdquo

Page 8: Framework para a construção de “portais de negócio” para
Page 9: Framework para a construção de “portais de negócio” para
Page 10: Framework para a construção de “portais de negócio” para
Page 11: Framework para a construção de “portais de negócio” para
Page 12: Framework para a construção de “portais de negócio” para
Page 13: Framework para a construção de “portais de negócio” para
Page 14: Framework para a construção de “portais de negócio” para
Page 15: Framework para a construção de “portais de negócio” para
Page 16: Framework para a construção de “portais de negócio” para
Page 17: Framework para a construção de “portais de negócio” para
Page 18: Framework para a construção de “portais de negócio” para
Page 19: Framework para a construção de “portais de negócio” para
Page 20: Framework para a construção de “portais de negócio” para
Page 21: Framework para a construção de “portais de negócio” para
Page 22: Framework para a construção de “portais de negócio” para
Page 23: Framework para a construção de “portais de negócio” para
Page 24: Framework para a construção de “portais de negócio” para
Page 25: Framework para a construção de “portais de negócio” para
Page 26: Framework para a construção de “portais de negócio” para
Page 27: Framework para a construção de “portais de negócio” para
Page 28: Framework para a construção de “portais de negócio” para
Page 29: Framework para a construção de “portais de negócio” para
Page 30: Framework para a construção de “portais de negócio” para
Page 31: Framework para a construção de “portais de negócio” para
Page 32: Framework para a construção de “portais de negócio” para
Page 33: Framework para a construção de “portais de negócio” para
Page 34: Framework para a construção de “portais de negócio” para
Page 35: Framework para a construção de “portais de negócio” para
Page 36: Framework para a construção de “portais de negócio” para
Page 37: Framework para a construção de “portais de negócio” para
Page 38: Framework para a construção de “portais de negócio” para
Page 39: Framework para a construção de “portais de negócio” para
Page 40: Framework para a construção de “portais de negócio” para
Page 41: Framework para a construção de “portais de negócio” para
Page 42: Framework para a construção de “portais de negócio” para
Page 43: Framework para a construção de “portais de negócio” para
Page 44: Framework para a construção de “portais de negócio” para
Page 45: Framework para a construção de “portais de negócio” para
Page 46: Framework para a construção de “portais de negócio” para
Page 47: Framework para a construção de “portais de negócio” para
Page 48: Framework para a construção de “portais de negócio” para
Page 49: Framework para a construção de “portais de negócio” para
Page 50: Framework para a construção de “portais de negócio” para
Page 51: Framework para a construção de “portais de negócio” para
Page 52: Framework para a construção de “portais de negócio” para
Page 53: Framework para a construção de “portais de negócio” para
Page 54: Framework para a construção de “portais de negócio” para
Page 55: Framework para a construção de “portais de negócio” para
Page 56: Framework para a construção de “portais de negócio” para
Page 57: Framework para a construção de “portais de negócio” para
Page 58: Framework para a construção de “portais de negócio” para
Page 59: Framework para a construção de “portais de negócio” para
Page 60: Framework para a construção de “portais de negócio” para
Page 61: Framework para a construção de “portais de negócio” para
Page 62: Framework para a construção de “portais de negócio” para
Page 63: Framework para a construção de “portais de negócio” para
Page 64: Framework para a construção de “portais de negócio” para
Page 65: Framework para a construção de “portais de negócio” para
Page 66: Framework para a construção de “portais de negócio” para
Page 67: Framework para a construção de “portais de negócio” para
Page 68: Framework para a construção de “portais de negócio” para
Page 69: Framework para a construção de “portais de negócio” para
Page 70: Framework para a construção de “portais de negócio” para
Page 71: Framework para a construção de “portais de negócio” para
Page 72: Framework para a construção de “portais de negócio” para
Page 73: Framework para a construção de “portais de negócio” para
Page 74: Framework para a construção de “portais de negócio” para
Page 75: Framework para a construção de “portais de negócio” para
Page 76: Framework para a construção de “portais de negócio” para
Page 77: Framework para a construção de “portais de negócio” para
Page 78: Framework para a construção de “portais de negócio” para
Page 79: Framework para a construção de “portais de negócio” para
Page 80: Framework para a construção de “portais de negócio” para
Page 81: Framework para a construção de “portais de negócio” para
Page 82: Framework para a construção de “portais de negócio” para
Page 83: Framework para a construção de “portais de negócio” para
Page 84: Framework para a construção de “portais de negócio” para
Page 85: Framework para a construção de “portais de negócio” para
Page 86: Framework para a construção de “portais de negócio” para
Page 87: Framework para a construção de “portais de negócio” para
Page 88: Framework para a construção de “portais de negócio” para
Page 89: Framework para a construção de “portais de negócio” para
Page 90: Framework para a construção de “portais de negócio” para
Page 91: Framework para a construção de “portais de negócio” para
Page 92: Framework para a construção de “portais de negócio” para
Page 93: Framework para a construção de “portais de negócio” para
Page 94: Framework para a construção de “portais de negócio” para
Page 95: Framework para a construção de “portais de negócio” para
Page 96: Framework para a construção de “portais de negócio” para
Page 97: Framework para a construção de “portais de negócio” para
Page 98: Framework para a construção de “portais de negócio” para
Page 99: Framework para a construção de “portais de negócio” para
Page 100: Framework para a construção de “portais de negócio” para
Page 101: Framework para a construção de “portais de negócio” para
Page 102: Framework para a construção de “portais de negócio” para
Page 103: Framework para a construção de “portais de negócio” para
Page 104: Framework para a construção de “portais de negócio” para
Page 105: Framework para a construção de “portais de negócio” para
Page 106: Framework para a construção de “portais de negócio” para
Page 107: Framework para a construção de “portais de negócio” para
Page 108: Framework para a construção de “portais de negócio” para
Page 109: Framework para a construção de “portais de negócio” para
Page 110: Framework para a construção de “portais de negócio” para
Page 111: Framework para a construção de “portais de negócio” para
Page 112: Framework para a construção de “portais de negócio” para
Page 113: Framework para a construção de “portais de negócio” para
Page 114: Framework para a construção de “portais de negócio” para
Page 115: Framework para a construção de “portais de negócio” para
Page 116: Framework para a construção de “portais de negócio” para
Page 117: Framework para a construção de “portais de negócio” para
Page 118: Framework para a construção de “portais de negócio” para
Page 119: Framework para a construção de “portais de negócio” para
Page 120: Framework para a construção de “portais de negócio” para
Page 121: Framework para a construção de “portais de negócio” para
Page 122: Framework para a construção de “portais de negócio” para
Page 123: Framework para a construção de “portais de negócio” para
Page 124: Framework para a construção de “portais de negócio” para
Page 125: Framework para a construção de “portais de negócio” para
Page 126: Framework para a construção de “portais de negócio” para
Page 127: Framework para a construção de “portais de negócio” para
Page 128: Framework para a construção de “portais de negócio” para
Page 129: Framework para a construção de “portais de negócio” para
Page 130: Framework para a construção de “portais de negócio” para
Page 131: Framework para a construção de “portais de negócio” para
Page 132: Framework para a construção de “portais de negócio” para
Page 133: Framework para a construção de “portais de negócio” para
Page 134: Framework para a construção de “portais de negócio” para
Page 135: Framework para a construção de “portais de negócio” para
Page 136: Framework para a construção de “portais de negócio” para
Page 137: Framework para a construção de “portais de negócio” para
Page 138: Framework para a construção de “portais de negócio” para
Page 139: Framework para a construção de “portais de negócio” para
Page 140: Framework para a construção de “portais de negócio” para
Page 141: Framework para a construção de “portais de negócio” para
Page 142: Framework para a construção de “portais de negócio” para
Page 143: Framework para a construção de “portais de negócio” para
Page 144: Framework para a construção de “portais de negócio” para
Page 145: Framework para a construção de “portais de negócio” para
Page 146: Framework para a construção de “portais de negócio” para
Page 147: Framework para a construção de “portais de negócio” para
Page 148: Framework para a construção de “portais de negócio” para
Page 149: Framework para a construção de “portais de negócio” para
Page 150: Framework para a construção de “portais de negócio” para
Page 151: Framework para a construção de “portais de negócio” para
Page 152: Framework para a construção de “portais de negócio” para
Page 153: Framework para a construção de “portais de negócio” para
Page 154: Framework para a construção de “portais de negócio” para
Page 155: Framework para a construção de “portais de negócio” para
Page 156: Framework para a construção de “portais de negócio” para
Page 157: Framework para a construção de “portais de negócio” para
Page 158: Framework para a construção de “portais de negócio” para
Page 159: Framework para a construção de “portais de negócio” para
Page 160: Framework para a construção de “portais de negócio” para
Page 161: Framework para a construção de “portais de negócio” para
Page 162: Framework para a construção de “portais de negócio” para
Page 163: Framework para a construção de “portais de negócio” para
Page 164: Framework para a construção de “portais de negócio” para
Page 165: Framework para a construção de “portais de negócio” para
Page 166: Framework para a construção de “portais de negócio” para
Page 167: Framework para a construção de “portais de negócio” para
Page 168: Framework para a construção de “portais de negócio” para
Page 169: Framework para a construção de “portais de negócio” para
Page 170: Framework para a construção de “portais de negócio” para
Page 171: Framework para a construção de “portais de negócio” para
Page 172: Framework para a construção de “portais de negócio” para
Page 173: Framework para a construção de “portais de negócio” para
Page 174: Framework para a construção de “portais de negócio” para
Page 175: Framework para a construção de “portais de negócio” para
Page 176: Framework para a construção de “portais de negócio” para
Page 177: Framework para a construção de “portais de negócio” para
Page 178: Framework para a construção de “portais de negócio” para
Page 179: Framework para a construção de “portais de negócio” para
Page 180: Framework para a construção de “portais de negócio” para
Page 181: Framework para a construção de “portais de negócio” para
Page 182: Framework para a construção de “portais de negócio” para
Page 183: Framework para a construção de “portais de negócio” para
Page 184: Framework para a construção de “portais de negócio” para
Page 185: Framework para a construção de “portais de negócio” para
Page 186: Framework para a construção de “portais de negócio” para
Page 187: Framework para a construção de “portais de negócio” para
Page 188: Framework para a construção de “portais de negócio” para
Page 189: Framework para a construção de “portais de negócio” para
Page 190: Framework para a construção de “portais de negócio” para
Page 191: Framework para a construção de “portais de negócio” para
Page 192: Framework para a construção de “portais de negócio” para
Page 193: Framework para a construção de “portais de negócio” para
Page 194: Framework para a construção de “portais de negócio” para
Page 195: Framework para a construção de “portais de negócio” para