Framework para a construção de “portais de negócio” para ...
Transcript of 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
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
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
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
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
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
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