Você está na página 1de 25

Resumo: Com a introduo da virtualizao, os hosts fsicos no esto mais confinados aos limites de sistemas operacionais de instncia nica.

Ns multiplexamos nossos hosts eficientemente com mais de um sistema operacional como mquinas virtuais (VMs). Mas a densidade de sistemas operacionais em um host simplesmente aumenta os requisitos de gerenciamento. Uma soluo para esse problema de gerenciamento o Virtual Machine Manager, ou virt-manager. Este artigo explora o uso do virt-manager, demonstra seus recursos em hardwares modestos e mostra como us-lo para gerenciar e monitorar o desempenho de VMs em tempo real.

Embora o gerenciamento de servidores seja problemtico h muito tempo, o gerenciamento de virtualizao simplifica alguns problemas, mas amplifica outros. A poca de um nico sistema operacional em um servidor acabou e foi substituda por uma de vrios sistemas operacionais em seis contineres de mquina virtual (VM). Essa propriedade, chamada de densidade de mquina virtual, vantajosa, pois menos hardware de servidor necessrio conforme ela ocupa nmeros menores de servidores. Isso resulta em menos hardware e menos energia, mas em gerenciamento de maior complexidade. Felizmente, existem solues para aliviar os problemas que a virtualizao de servidores cria, e o software livre lidera nessa rea. Uma dessas solues, chamada Virtual Machine Manager, da Red Hat, simplifica muito a capacidade de gerenciar VMs (sendo executadas nos principais hypervisors de software livre) e oferece s VMs recursos introspectivos para medir seu desempenho e a utilizao de recursos.

Gerenciamento de hypervisor e VM
A virtualizao expe novos desafios no gerenciamento de VMs, seus recursos e os recursos subjacentes do host fsico. Em vez de um nico mapeamento de sistema operacional para host fsico, mais de um sistema operacional agora ocupam os recursos de um host fsico como VMs. Cada VM representada por um continer, que contm um ou mais discos virtuais e outros metadados para descrever a configurao e os limites da VM. Cada VM compartilha os recursos do host fsico, o que requer no apenas configurao, mas uma compreenso da utilizao desses recursos (para garantir uma densidade apropriada de VMs que use os recursos de forma tima, sem sobrecarreg-los ou desperdi-los). Voltar para parte superior

A abordagem virt-manager para o gerenciamento de virtualizao


Virtual Machine Manager (virt-manager) um conjunto de aplicativos leves, que apresenta uma interface de linha de comando ou interface grfica com o usurio (GUI) para gerenciar VMs. Alm dos recursos de gerenciamento para VMs, virt-manager contm um visualizador de cliente de virtual network computing (VNC) integrado, para formar um console grfico completo das VMs guest. Como conjunto de aplicativos, virt-manager abrange um conjunto comum de tarefas de gerenciamento de virtualizao. Essas ferramentas so mostradas na Tabela 1 e representam a construo, clonagem, criao de imagem e visualizao das VMs. O utilitrio virsh no faz parte do pacote virt-manager, mas de grande valor.

Tablela 1. Tabela 1. Aplicativos para gerenciamento de virtualizao (incluindo ferramentas de linha de comando)
Aplicativo Descrio Ferramenta de gerenciamento de VM de desktop Ferramenta de fornecimento de VM Ferramenta de clonagem de imagem de VM Construo de VM a partir de um descritor XML Console grfico de VM Terminal interativo para domnios de guest virsh

virt-manager virt-install virt-clone virt-image virt-viewer virsh

virt-manager usa a biblioteca de virtualizao libvirt para gerenciar os hypervisors disponveis. libvirt expe uma interface de programao de aplicativos (API), que est integrada com
um grande nmero de hypervisors de software livre, para permitir controle e

monitoramento. libvirt disponibiliza um daemon chamado libvirtd, que auxilia nesse processo (como mostra a pilha de amostra abaixo).

Figura 1. Uma representao simples da pilha do virt-manager com QEMU

Virtual Machine Manager foi desenvolvido pela Red Hat, na linguagem Python, para controlar o ciclo de vida de VMs, incluindo fornecimento, gerenciamento de rede virtual e coleta e relatrios de estatsticas, alm de oferecer acesso grfico simples s prprias VMs. Voltar para parte superior

Instalando virt-manager
Para instalar o pacote virt-manager, use o gerenciador de pacotes da sua distribuio. No Ubuntu, use apt:
$ sudo apt-get install virt-manager

O comando apt resulta no uso de cerca de 22 MB de espao em disco para o conjunto de aplicativos virt-manager. Como parte da instalao, o daemon libvirt deve estar em execuo. Para verificar, use o seguinte comando:
$ ps ax | grep libvirtd

Esse comando deve mostrar que o processo libvirtd est em execuo, com a opo d instruindo libvirtd a executar como daemon. Lembre-se que libvirtd o daemon que permite a conexo do aplicativo virt-manager para os hypervisors e, atravs deles, para VMs que eles contm. Para verificar se o pacote virt-manager foi instalado e para identificar a localizao do binrio virtmanager, use o comandowhich:
$ which virt-manager

A localizao de virt-manager tambm a localizao dos outros aplicativos do conjunto ( virtinstall, virt-image etc). Como etapa final, use QEMU como hypervisor, pois possvel execut-lo em qualquer hardware. Como emulador, ele executado um pouco mais devagar, mas no exige as extenses de virtualizao de novo hardware.
$ sudo apt-get install qemu

Agora, use virt-manager para criar e monitorar algumas VMs. Voltar para parte superior

Usando virt-manager para criar e gerenciar VMs

As etapas nesta seo criam duas VMs. 1. Instale um sistema operacional baseado em Linux chamado SliTaz, uma distribuio Linux desenvolvida pela comunidade. Tambm leve, o que vantajoso ao executar QEMU e emular o ambiente de hardware. Para fazer o download dessa VM, use:
$ wget http://mirror.slitaz.org/iso/4.0/slitaz-4.0.iso

2.

Para comear o processo de construo da VM, inicie virt-manager com privilgios de administrador, usando sudo:
$ sudo virt-manager

3. 4.

aberta a janela virt-manager, atravs da qual possvel conectar-se ao hypervisor QEMU local (para isso, clique com o boto direito em localhost (QEMU) e clique em Connect). Se houvesse mais hypervisors disponveis, eles apareceriam nessa lista e estariam disponveis para conexo atravs da API libvirt.

5. Figura 2. Janela do Gerenciador de Mquina Virtual

6. 7.

Quando conectar ao hypervisor QEMU local, clique no cone Create Virtual Machine, que inicia o Assistente VM Construction. D VM o nome de slitaz1 e solicite a instalao do sistema operacional a partir de um ISO local (transferido por download anteriormente, acima).

Figura 3. Criar uma VM

8.

Aps clicar em Forward, defina a mdia de instalao da VM e d uma sugesto sobre o sistema operacional. Nesse caso, especifique o arquivo ISO, selecione Linux na lista de tipos de sistemas operacionais e selecione Ubuntu 10.04 LTS (Lucid Linux) na lista Version.

Figura 4. Defina a mdia de instalao

9.

Defina o ambiente de execuo da VM. D a essa VM 1 GB de memria e uma nica CPU. Essas selees podem ser confusas, pois devem ser do tamanho exato para a VM (1 GB exagero nessa instncia em particular). CPUs podem ajudar e, em alguns casos, prejudicar o sistema operacional. Se o sistema operacional usar de forma eficiente mais de um ncleo, eles podem ser distribudos s VMs.

Figura 5. Defina o ambiente de execuo

10. Defina o ambiente de armazenamento da VM. Nesse exemplo, solicite que virtmanager crie o disco virtual (em vez de fornecer um voc mesmo) e configure com um tamanho dinmico at 1 GB. Observe que a opo do disco pode afetar a velocidade de instalao e execuo. Se o disco for especificado como dinmico, ele comea como um pequeno arquivo host e expande medida que consumido pela VM. Demora um pouco para gerenciar esse processo dinmico. A alternativa, chamada raw, uma imagem de disco com tamanho completo no sistema operacional host (hypervisor). O que acontece que necessrio mais espao em disco no host, mas a VM deve operar mais rpido, pois o processo de dimensionamento dinmico no necessrio.

Figura 6. Defina o ambiente de armazenamento

11. Como etapa final, virt-manager apresenta um resumo da VM at ento e permite definir opes de rede (escolha o padro: converso de endereo de rede [NAT]). Observe que ele tambm apresenta outras informaes, como a localizao fsica do disco virtual. Tambm possvel definir o tipo de processador subjacente esperado. Nesse caso, AMD i686 a arquitetura selecionada, mas x86-64 tambm est disponvel.

Figura 7. Verificao final na VM

12. Quando voc clica em Finish, o processo de boot da VM iniciado. Comea com um boot do CD-ROM (onde foi fornecida a imagem de instalao), que permite que a VM instale a distribuio Linux. Quando a instalao est completa, uma reinicializao (que desconecta automaticamente o CD-ROM) fornece a VM operacional. Observe que essa janela simplesmente apresenta uma visualizao da VM e permite interagir com ela. Mesmo que essa janela seja fechada, a VM continua operando em segundo plano (e est visvel na janela principal do virt-manager).

Figura 8. VM executando a distribuio Linux leve SliTaz

13. Para criar outra VM, basta clonar a VM instalada anteriormente. Especifique ao virtmanager que voc deseja clonar a VM e, em seguida, clone o disco inteiro (para que no sejam compartilhadas). Observe que possvel alterar alguns detalhes da VM clonada, como a configurao de rede. Figura 9. Clone uma VM no virt-manager

14. Quando voc clica em Clone, uma nova VM criada com base na primeira e poder ser executada simultaneamente em seu prprio ambiente QEMU. A clonagem de VMs uma tima maneira de obter uma captura instantnea do sistema operacional e ambiente de aplicativo, ou de criar um cluster local virtualizado de mquinas aps elas serem configuradas com um dado aplicativo (como Apache Hadoop). A Figura 10 mostra ambas as VMs em execuo e um perfil de seu uso de CPU na janela principal do virt-manager.

Figura 10. VMs clonadas em execuo simultnea atravs de virt-manager

Esse exemplo demonstrou um mtodo simples para criar, configurar e executar VMs sem precisar entender de forma detalhada o hypervisor subjacente e as diversas opes que ele expe (para gerenciamento de armazenamento e rede, por exemplo). Embora esse exemplo tenha usado a emulao do QEMU, o hypervisor Linux Kernel Virtual Machine (KVM) pode ser usado para obter desempenho "near-bare-metal" (usando suporte de hardware, como Intel Virtual Technology [VT]). O aplicativo virt-manager permite no apenas construir, mas tambm pausar, reiniciar e clonar VMs. Voltar para parte superior

Ferramentas de suporte
Embora virt-manager use de forma proeminente a API de virtualizao libvirt, h um ecossistema crescente de ferramentas que usam essa interface para gerenciamento de virtualizao. O pacote virt-manager oferece uma GUI conveniente para criar e gerenciar VMs em vrios hypervisors e hosts. Se voc preferir a linha de comando, h algumas ferramentas que trazem a eficincia e o controle que apenas a linha de comando pode oferecer. A ferramenta virt-install permite fornecer novas VMs. Enquanto virt-manager fornece um pequeno nmero de opes de configurao para construo de VM, virt-install fornece um conjunto abrangente de opes de configurao, incluindo mtodos de instalao, configurao de armazenamento, de rede e de grfico, opes de virtualizao e uma enorme lista de opes de dispositivo virtualizado. A ferramenta virt-image semelhante virt-install, mas permite definir os detalhes do processo de construo de VM em XML. O arquivo descritor XML especifica os metadados gerais da VM, seus atributos de domnio (CPUs, memria etc.) e configurao e armazenamento. A ferramenta virt-clone permite clonar imagens de VM existentes. A expresso clonar significa uma cpia de uma VM existente, com parmetros atualizados para garantir que a nova VM seja exclusiva, para evitar conflitos (como no endereamento de media access control [MAC]). A ferramenta virt-viewer um console grfico para uma dada VM usando o protocolo VNC. O virt-viewer pode conectar-se a VMs em execuo no host local ou em hosts remotos. Por fim, a ferramenta mais eficiente para gerenciar domnios guest a shell de virtualizao, ou virsh. virsh pode ser usado para listar VM guests, inici-las e interromp-las e criar VMs. Em suma, possvel usar virsh para a administrao total de virtualizao entre hypervisors, expondo recursos que no esto disponveis em outras ferramentas. Voltar para parte superior

Outras solues de gerenciamento de virtualizao


Embora virt-manager e as ferramentas associadas ofeream um ambiente til para gerenciar VMs em um ambiente de desktop, pode haver casos em que seja melhor usar uma soluo de virtualizao com mais recursos. A Red Hat tambm oferece uma soluo chamada oVirt, que, assim como virtmanager, usa libvirt para gerenciar VMs e os hypervisors do backend. A soluo oVirt oferece suporte para vrios hypervisors de backend e pode at mesmo gerenciar protocolos de armazenamento de nvel corporativo, como Fibre Channel, iSCSI e Network File System (NFS). A soluo oVirt tambm disponibiliza recursos de nvel corporativo como alta disponibilidade e migrao em tempo real em uma infraestrutura homognea. Voltar para parte superior

Indo alm
virt-manager no apenas mais uma ferramenta: um passo na direo de nuvens abertas, com APIs abertas e uma pilha de nuvem aberta (desktop, servidor, datacenter). O virt-manager e
ferramentas relacionadas oferecem um ambiente simples e eficiente para gerenciar virtualizao em um desktop. Quer voc prefira a eficincia e capacidade de criao de scripts da linha de comando ou a simplicidade da GUI, virt-manager e as ferramentas relacionadas podem ajudar.

Recursos
Aprender O website do Virtual Machine Manager a fonte de informaes sobre todo o conjunto de aplicativos virt-manager. Alm de um repositrio de origem e uma lista de e-mails, tambm inclui um wiki e um FAQ e informaes sobre os planos de desenvolvimento da UI do desktop. A Red Hat publica uma lista de desejos e um roteiro, para que seja possvel saber o que vir em seguida.

A Red Hat mantm uma tima documentao sobre o gerenciamento de virtualizao. No site de documentao da Red Hat, h informaes sobre Administrao de Virtualizao, Introduo e detalhes sobre Configurao de Host e Instalao de Guest.

virt-manager faz grande uso de libvirt como meio de comunicao com o hypervisor e VMs. Saiba mais sobrelibvirt em "Anatomia da biblioteca de virtualizao libvirt" (M. Tim
Jones, developerWorks, janeiro de 2010).

As man pages do Linux so uma tima fonte para aprender sobre as ferramentas disponveis. possvel encontrar verses em HTML das man pages das vrias ferramentas discutidas aqui, como virt-manager, virt-viewer, virt-install, virt-image, virtclone e virsh. A rea de Software Livre no developerWorks fornece diversas informaes sobre ferramentas de software livre e tecnologias de software livre utilizadas. Para gerenciamento de virtualizao em larga escala, considere o software da Red Hat oVirt. O projeto oVirt um ecossistema de projetos para gerenciamento de virtualizao abrangente. Extraido do site: http://www.ibm.com/developerworks/br/cloud/library/cl-managingvms/index.html

Sobre o autor

Tim arquiteto de firmware integrado e autor de Artificial Intelligence: A Systems Approach, GNU/Linux Application Programming (agora na segunda edio), AI Application Programming (na segunda edio) e BSD Sockets Programming from a Multilanguage Perspective. Sua experincia em engenharia inclui o desenvolvimento de kernels para espaonaves geossncronas, arquitetura de sistemas embarcados e desenvolvimento de protocolos de rede. Tim arquiteto de software e escritor em Longmont, Colorado, EUA.

Aqui est, em poucas palavras:

Uma nuvem feita de inmeras mquinas fsicas (hardware). Cada uma dessas mquinas, ento executar vrias mquinas virtuais, que o que so apresentados aos usurios finais.

As mquinas virtuais so limitadas apenas na maneira que suas especificaes no pode exceder o seu anfitrio (a mquina fsica subjacente).

Ento, no, se a mquina fsica em que sua mquina virtual executado s tem 20GB de espao de disco rgido, voc no pode pedir-lhes para criar uma VM com 100 GB de espao em disco. (O mesmo se aplica para a RAM).

Dito isto, o armazenamento de forma trabalha no EC2 (Amazon Compute Cloud) um pouco diferente. O armazenamento feito fora de linha, de modo que nesse caso, seria possvel solicitar o espao no disco que excede o hospedeiro, mas, novamente, no excedendo o tamanho fsico do prprio local onde o armazenamento feito.

Alm disso, a restrio colocada Mquinas Vitrual que no pode exceder as capacidades de acolhimento tambm se aplica se voc tem vrias mquinas virtuais em execuo no mesmo host. Neste caso, as capacidades comuns da VMs no pode exceder aquela do hospedeiro. Por exemplo, se voc tem 4GB de RAM na mquina fsica, ento voc pode ter 2 VMs cada uma com 2 GB de RAM.

Escolha a Melhor Nuvem PaaS para Voc


Orientao de nvel de entrada para selecionar uma plataforma de nuvem dentre diversas opes
John Rhoton, Cloud Computing Strategist Resumo: Platform as a Service (PaaS) geralmente considerado um dos trs principais modelos de entrega de servios na computao em nuvem. Esse Modelo facilita o desenvolvimento de aplicativos na nuvem e a alocao simples e elstica de recursos, alm de oferecer diversas ferramentas e servios. No entanto, esse termo esconde a grande diversidade que existe nas plataformas de nuvem. O autor examina algumas das principais plataformas de nuvem e fala sobre os casos de uso com que elas poderiam lidar. Data: 23/Out/2012 Nvel: Intermedirio Tambm disponvel em : Ingls

Atividade: 839 visualizaes Comentrios: 0 (Visualizar | Incluir comentrio - Conectar)

Mdia de classificao (1 votos) Classificar este artigo

Platform as a Service geralmente considerado um dos trs principais modelos de entrega de servios na computao em nuvem, junto com Infraestrutura como servio e Software como Servio. Esse modelo facilita o desenvolvimento de aplicativos em nuvem, oferecendo infraestrutura de hosting, alocao simples e elstica de recursos e diversas ferramentas e servios para ajudar a obter eficincia em volume de cdigo e desempenho no tempo de execuo. No entanto, o termo esconde a grande diversidade das plataformas de nuvem. primeira vista, h pouco em comum entre Windows Azure e Google App Engine ou Force.com. Amazon Web Services (AWS) passaram gradualmente de IaaS para PaaS, com uma abordagem totalmente diferente. E plataformas privadas, como as oferecidas pela VMware, so voltadas para ainda outras necessidades. Este artigo examina algumas das principais plataformas de nuvem e fala sobre os casos de uso com que elas poderiam lidar.

Histrico
PaaS surgiu da confluncia de duas tendncias: A natureza abaixo do ideal de IaaS para a computao em nuvem. A evoluo de aplicativos da web. O servio de infraestrutura oferece muitos benefcios aos clientes que querem estender ou passar seus aplicativos para um ambiente baseado em nuvem. No entanto, os servios de infraestrutura so executados em plataformas que foram projetadas para desktops e para os ambientes tradicionais de cliente/servidor. Podem ter sido virtualizadas, mas ainda no foram otimizadas para a nuvem. A segunda tendncia digna de nota a evoluo de sites de hosting na web. GeoCities e outros ofereciam servios de hosting de HTML j em meados dos anos 1990. No entanto, houve um grande aumento no nmero de servios de hosting da web que oferecem suporte a diversos componentes ativos no lado do servidor, incluindo Microsoft ASP.NET, tecnologia Java e scripts como PHP, Python e Ruby on Rails. Em comparao com servios de infraestrutura, essas plataformas reduzem os requisitos de armazenamento de cada aplicativo e simplificam a implementao. Voltar para parte superior

Consideraes
Quais so as escolhas bsicas que um desenvolvedor de aplicativo em nuvem, especialista em migrao de nuvem ou administrador que est implementando uma nuvem devem fazer ao selecionar uma nuvem PaaS? Aberto vs. proprietrio vs. misturado (e bem misturado)... alguns conceitos em cada um devem ser o suficiente. A estrutura e limitaes de hosting: suporte para isso, mas no para aquilo etc. Mtodos de alocao de recursos: nvel de automao, facilidade de uso, facilidade de desalocao igual alocao etc. Recursos e mtodos de armazenamento de dados: tem persistncia automtica ou apenas sob solicitao etc. Ferramentas de desenvolvimento suportadas, ferramentas de gerenciamento suportadas. Desempenho vs. tipos e volume de transaes. Segurana dos vrios componentes da nuvem: como lidam com a segurana? Voltar para parte superior

Google App Engine

Google App Engine um dos mais conhecidos servios de plataforma. Alm de um ambiente de tempo de execuo bsico, ele elimina muitos dos desafios de administrao de sistema e desenvolvimento envolvidos no desenvolvimento de aplicativos que possam aumentar a escala para milhes de usurios. Inclui recursos para implementar cdigo em um cluster e capacidade de monitoramento, failover, ajuste de escala automtico e balanceamento de carga. Google App Engine originalmente tinha suporte apenas para ambientes de tempo de execuo com base em Python. Posteriormente foi includo suporte para Java Virtual Machines (JVMs), permitindo no apenas aplicativos escritos em Java mas tambm em outras linguagens de JVM, como Groovy, JRuby, Jython, Scala ou Clojure. O kit de desenvolvimento de software inclui um ambiente de desenvolvimento local completo, que simula o Google App Engine no desktop do desenvolvedor. H algumas limitaes nas linguagens de programao. Por exemplo, mdulos Python devem ser Python puro, porque no h suporte para mdulos C e Pyrex. Da mesma forma, os aplicativos Java podem usar apenas um subconjunto (a JRE Class White; consulte Recursos) das classes do Java Runtime Environment (JRE), Standard Edition e no podem criar encadeamentos. A Listagem 1 mostra um aplicativo "Hello World" simples no Google App Engine. Listagem 1. "Hello World" no Google App Engine
from google.appengine.ext import webapp from google.appengine.ext.webapp.util import run_wsgi_app class MainPage(webapp.RequestHandler): def get(self): self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('Hello, World!') application = webapp.WSGIApplication( [('/', MainPage)]) def main(): run_wsgi_app(application) if __name__ == "__main__": main()

O cdigo efetivamente necessrio depende, obviamente, do aplicativo. Como mostra o exemplo em Python na Listagem 1, as instrues podem ser simples se houver pouca lgica de aplicativo. necessrio importar alguns mdulos includos no SDK e definir um manipulador de solicitaes chamado MainPage que processa todas as solicitaes GET de HTTP na URL raiz. O mtodo pode escrever a resposta HTTP usando o objeto self.response. A funo run_wsgi_app() toma uma instnciaWSGIApplication e executa-a no ambiente Interface Gateway Comum do Google App Engine. Isso tudo o necessrio, para quem tem necessidades modestas. O armazenamento de dados do Google App Engine tem suporte para consultas, classificao e transaes usando controle de simultaneidade otimista. um banco de dados distribudo, altamente consistente, criado em cima de um sistema de armazenamento de dados BigTable de menor nvel, com alguns recursos a mais. A linguagem de consulta do Google App Engine (chamada GQL) semelhante Linguagem de Consulta Estruturada (SQL) nas instrues SELECT, mas com algumas limitaes significativas. Por exemplo, GQL no tem, intencionalmente, suporte a instrues JOIN e, portanto, pode acomodar apenas consultas de tabela nica. Embora o ambiente tenha algumas limitaes, ele tambm oferece um amplo conjunto de interfaces de programao de aplicativos (APIs). Alm da funcionalidade de armazenamento de dados mencionada antes, h um conjunto de funes de biblioteca, como: Autenticao. Os aplicativos podem fazer interface com contas do Google para autenticao do usurio. Podem orientar o usurio a efetuar sign in com uma conta do Google e, em seguida, acessar o endereo de email e nome de exibio aps o

usurio ter autenticado. Usurios de OpenID tambm podem criar uma identidade em qualquer provedor de OpenID e us-la para autenticar em um aplicativo Google App Engine. Memcached. O servio Memcached oferece aos aplicativos um cache na memria, com valor de chave, que pode ser acessado por mais de uma instncia do aplicativo. til para dados temporrios que no precisam de recursos de persistncia e para recursos transacionais, como um cache local do armazenamento de dados para acesso de alta velocidade. Tarefas planejadas. O servio cron permite ao usurio planejar tarefas que so executadas a intervalos regulares por exemplo, diariamente ou a cada hora. O aplicativo pode at mesmo executar tarefas que ele mesmo incluiu na fila. Por exemplo, pode enviar uma tarefa em segundo plano enquanto atende uma solicitao. Voltar para parte superior

Windows Azure
O Windows Azure a oferta de PaaS da Microsoft. Com conceito semelhante ao do Google App Engine, permite que aplicativos com base em tecnologias Microsoft sejam hospedados e executados nos datacenters dessa empresa. Seu Fabric Controller automaticamente gerencia recursos, balanceia cargas, replica para obter resilincia e gerencia o ciclo de vida de aplicativo. A plataforma Windows Azure desenvolvida como um servio distribudo hospedado em datacenters Microsoft em um sistema operacional especial. implementada como trs componentes: clculo, armazenamento e uma malha para gerenciar a plataforma. As instncias de clculo so expostas ao cliente como tipos de funo que especificam configuraes customizadas para tpicos tpicos. As instncias de funo da web geralmente interagem com o usurio e podem hospedar websites e outros cdigos de frontend. Por sua vez, as instncias de funo de trabalhador so voltadas a tarefas em segundo plano, semelhante s tarefas cron do Google App Engine. Embora os tipos de funo da web e de trabalhador sejam os mais populares, Windows Azure oferece modelos adicionais para necessidades especficas. Por exemplo, a funo da web CGI tem suporte para o protocolo FastCGI e, portanto, permite o uso de outras linguagens de programao, incluindo PHP, Ruby, Python e Java. O servio Windows Communications Foundation (WCF) uma funo da web que facilita o suporte de servios WCF. Windows Azure agora tambm oferece um servio de infraestrutura (na forma de uma funo de VM) que aceita o upload de uma imagem VM Windows Server 2008 R2. O armazenamento do Windows Azure oferece servios que hospedam trs tipos de dados: Blobs. Blobs so fluxos de dados no estruturados, ou ao menos opacos. Podem ser uma imagem, um arquivo ou qualquer coisa de que o aplicativo precise. Tabelas. Tabelas so usadas para dados estruturados. Geralmente contm um conjunto de linhas homogneas (chamadas entidades) que so definidas por um conjunto de colunas (chamadas propriedades). Apesar da semelhana conceitual, h distines importantes entre as tabelas de armazenamento e as tabelas relacionais do Windows Azure. Windows Azure no fora o uso de um esquema e no tem suporte para SQL como linguagem de consulta. Filas. Filas so um mecanismo para que aplicativos comuniquem-se e trabalhem em conjunto de forma assncrona. A "malha" na terminologia do Windows Azure refere-se a um conjunto de mquinas que executam o sistema operacional do Windows Azure e que so gerenciadas coletivamente e esto localizadas na mesma regio. O Fabric Controller a camada de cdigo que fornece todas as instncias de usurio (funes da web e de trabalhador) e realiza os upgrades necessrios. Tambm monitora os aplicativos, refornecendo e realocando recursos conforme necessrio para garantir que todos os servios continuem em funcionamento. Voltar para parte superior

Force.com

Salesforce.com tambm entrega um PaaS, chamado Force.com. diferente das ofertas do Google e da Microsoft nesse espao. Tambm oferece servios de hosting com base na sua tecnologia, com os recursos usuais de redundncia, segurana e escalabilidade. Mas Force.com est muito mais orientado a manipular dados que a trabalhar com cdigo.

Acesso programtico externo


Force.com expe todas as configuraes especficas do cliente (formulrios, relatrios, fluxos de trabalho, privilgios de usurio, customizaes, lgica de negcios) como metadados com acesso programtico. Uma API de servios da web (SOAP) d acesso a todos os dados de aplicativo do Force.com em qualquer ambiente. A plataforma tambm oferece kits de ferramentas de desenvolvedor para Microsoft .NET, Java, Facebook, Google e AWS, alm de conectores pr-empacotados de ERP (SAP R/3 e Oracle Financials), software de desktop (Microsoft Office, IBM Lotus Notes) e middleware (Tibco, Pervasive, IBM Cast Iron). Alm do acesso convencional ao banco de dados, Force.com usa um mecanismo de procura externo que oferece indexao total e permite procura por dados no estruturados.

Apex
Aplicativos do Force.com so desenvolvidos usando Visualforce, uma estrutura para criao de interfaces grficas com o usurio, e Apex, uma linguagem de programao proprietria que usa uma sintaxe semelhante a Java mas age mais como procedimentos armazenados de banco de dados (consulte a Listagem 2). Listagem 2. Atualizao de conta do Apex
// This class updates the Hello field on account records that are // passed to it. public class MyHelloWorld { public static void addHelloWorld(Account[] accs){ for (Account a:accs){ if (a.Hello__c != 'World') { a.Hello__c = 'World'; } } } }

Force.com distingue entre trs tipos de lgica de programa: lgica declarativa (criao de log de auditoria, fluxo de trabalho, aprovaes) lgica baseada em frmula (validao de dados, regras de fluxo de trabalho) lgica processual (acionadores e classes Apex; Listagem 3) Listagem 3. Acionador Apex
trigger helloWorldAccountTrigger on Account (before insert) { Account[] accs = Trigger.new; MyHelloWorld.addHelloWorld(accs); }

Apex pode ser executado como um script independente sob demanda ou como um acionador em um evento de dados, como mostra a Listagem 3. A linguagem permite que desenvolvedores incluam a lgica de negcios em eventos, como cliques de boto ou atualizaes de registro e pginas do Visualforce. A lgica de fluxo de trabalho pode acionar tarefas, enviar mensagens eletrnicas, atualizar o banco de dados e fazer interface com aplicativos externos atravs de mensagens SOAP enviadas para qualquer destino na Internet. Voltar para parte superior

Amazon Web Services


O lder no mercado e padro de fato para servios de infraestrutura a Amazon. A principal distino entre AWS e um servio de plataforma tpico que a Amazon no estabelece um ambiente particular de tempo de execuo. possvel usar uma das imagens de mquina pr-construdas da Amazon, mas o usurio no est limitado a elas e pode executar quase qualquer plataforma nesse ambiente. Uma consequncia dessa observao que, embora a Amazon fornea uma maneira de gerenciar e distribuir VMs, ela no oferece diretamente recurso especfico para gerenciar aplicativos. A Figura 1 mostra um exemplo da interface do Amazon Elastic Compute Cluster (Amazon EC2). Figura 1. Amazon EC2

O componente principal de AWS o Amazon EC2 e seus servios de armazenamento complementares. Amazon EC2 oferece ao usurio uma escolha de modelos de VM que podem ser instanciados em um ambiente compartilhado e virtualizado (como mostra a Figura 1). Cada VM chamada de Amazon Machine Image (AMI). Amazon AMIs no tm armazenamento persistente, mas podem ser usados para logs, resultados e dados temporrios enquanto a instncia est ativa. Como os discos montados locais de AMIs so perdidos entre instanciaes, a Amazon tambm oferece dois recursos de armazenamento persistente: Amazon Simple Storage Service (Amazon S3) um armazenamento de valor de chave enquanto o Amazon Elastic Block Store (Amazon EBS) a base para um sistema de arquivos. Dados mais estruturados tambm podem ser armazenados no Amazon SimpleDB para consultas comuns, ou no Amazon Relational Database Service (Amazon RDS), um servio da web com funes para instalar, operar e ajustar a escala de um banco de dados relacional na nuvem. Alm de clculo e armazenamento, a Amazon oferece um conjunto de servios com valor agregado, incluindo entrega de contedo, notificao de enfileiramento, balanceamento de carga, ajuste de escala automtico, fornecimento e monitoramento. O maior passo que a Amazon tomou na direo de suporte PaaS total foi o release do AWS Elastic Beanstalk, um servio voltado para desenvolvedores Java e desenvolvido na pilha de software Apache Tomcat. O cliente pode fazer upload do archive de qualquer aplicativo da web Java padro para o AWS Elastic Beanstalk usando o AWS Management

Console, o AWS Toolkit para Eclipse, as APIs de servio da web ou as ferramentas da linha de comando. Voltar para parte superior

VMware
A escolha de hospedar os aplicativos em um datacenter privado d o maior controle e flexibilidade. Aps voc instalar o Apache ou Microsoft Internet Information Services (IIS) no hardware da sua escolha com as estruturas da web necessrias, necessrio fazer upload de aplicativos desenvolvidos no seu prprio ambiente. possvel escolher a linguagem de programao e ter liberdade completa para implementar as interfaces necessrias para conectar a sistemas legados ou parceiros. Basta instalar PHP, Python/Django, Ruby/Rails ou um conjunto completo de ferramentas Java. A maior desvantagem que o usurio no recebe automaticamente os benefcios relacionados computao em nuvem. possvel replicar muitas das vantagens internamente, mas isso exige um esforo significativo, alm de um nvel de investimento que pode ser realista apenas para grandes empresas. Para quem optar por implementar uma nuvem privada, algumas ferramentas, produtos e servios podem ser essenciais para obter benefcios de desempenho, utilizao e automao. O forte portflio de tecnologias de virtualizao da VMware pode ajudar a lidar com esses requisitos. A atividade orientada para a nuvem da VMware d-se principalmente sobre sua iniciativa VMware vCloud. vCloud representa um conjunto de tecnologias de ativao, incluindo VMware vSphere, a API vCloud e o ecossistema de provedor de servios vCloud. A plataforma vSphere, o principal produto da VMware, uma estrutura de virtualizao capaz de gerenciar grandes conjuntos de infraestrutura, incluindo software e hardware de redes interna e externa. A API vCloud uma Representational State Transfer API (RESTful) para fornecer e consumir recursos virtuais na nuvem. Permite implementao e gerenciamento de cargas de trabalho virtualizadas em nuvens privadas, pblicas e hbridas. A API permite o upload, download, instanciao, implementao e operao de dispositivos virtuais (vApps), redes e "datacenters virtuais". Os dois principais componentes da API vCloud so a API User, focada em fornecimento de vApp, e a API Admin, focada em administrao de plataforma/proprietrio. O ecossistema de provedores de servio vCloud um conjunto comum de servios de computao em nuvem para empresas e provedores de servio, com suporte a qualquer aplicativo ou sistema operacional e a capacidade de escolher onde os aplicativos residem, no local ou fora. entregue por provedores de servio como Terremark e Hosting.com e inclui um conjunto de aplicativos disponveis como dispositivos virtuais. Alm dessas ofertas orientadas infraestrutura, o VMware vFabric oferece um servio de plataforma privado vivel que combina a estrutura de desenvolvimento Spring Java com um conjunto de servios integrados, incluindo um servidor de aplicativos, gerenciamento de dados, mensagens prontas para a nuvem, balanceamento de carga e gerenciamento de desempenho. Voltar para parte superior

IBM SmartCloud Application Services


Para os clientes que querem aproveitar os benefcios de uma nuvem pblica, mas tambm tm requisitos corporativos de segurana, customizao e integrao com aplicativos no local, a IBM oferece IaaS (IBM SmartCloud Enterprise) e PaaS (IBM SmartCloud Application Services). Os dois esto intimamente conectados, pois o IBM SmartCloud Application Services implementa automaticamente recursos virtuais no IBM SmartCloud Enterprise. Juntos, eles entregam um ambiente baseado em nuvem seguro e colaborativo, que apoia todo o ciclo de vida do desenvolvimento, implementao e entrega acelerados de aplicativos. A Figura 2 mostra um exemplo da interface do IBM SmartCloud Application Services. Figura 2. IBM SmartCloud Application Services

IBM SmartCloud Application Workload Services inclui tecnologia padro avanada apresentada originalmente no IBM Workload Deployer. Essa avanada tecnologia de padro permite criar, implementar e gerenciar facilmente padres de conhecimento. Padres de conhecimento incorporam recursos de implementao, configurao, gerenciamento e monitoramento baseados em boas prticas, para solues de software especficas, com base em anos de experincia. Esses padres so fornecidos pela IBM e por fornecedores de software independentes, em um catlogo online. Padres de conhecimento so simplificados para oferecer valor rapidamente e, ao mesmo tempo, garantir resultados consistentes e previsveis. Os clientes tambm podem criar padres customizados de conhecimento usando conjunto de ferramentas integrado includo com o IBM SmartCloud Application Workload Services e compartilh-los em toda a organizao. Essa tecnologia avanada de padres tambm includa na nova famlia PureSystems da IBM: IBM PureApplication System: um sistema de plataforma projetado e ajustado especificamente para aplicativos transacionais da web e de banco de dados, com conhecimento de carga de trabalho. IBM PureFlex System: uma plataforma que inclui padres para ajudar a gerenciar armazenamento, rede, RAS, instalao e tarefas de segurana. Voltar para parte superior

Normatizao e portabilidade
Cada plataforma descrita tem suas vantagens e desvantagens. O maior desafio para os desenvolvedores que a plataformas so muito diferentes. Aplicativos desenvolvidos em uma plataforma no funcionam facilmente em outra. Para proteger o investimento dos clientes e reduzir o risco de dependncia, h uma demanda forte e crescente por convergncia, e muitos rgos de normatizao j trataram da computao em nuvem de suas perspectivas. As iniciativas mais conhecidas foram voltadas para IaaS, mas esto aos poucos incluindo funcionalidade que se qualifica como PaaS. Em um alto nvel, adotaram duas abordagens diferentes:

Eucalyptus e CloudStack oferecem compatibilidade com AWS e, portanto, facilitam nuvens hbridas na Amazon. A escolha da Amazon tem o benefcio de que as interfaces so bem conhecidas, e AWS tem grande capacidade de absorver picos temporrios nos requisitos de recursos. No entanto, o fato de que a Amazon dona das APIs e pode optar por desenvolv-las na direo que queiram significa que no completamente livres. OpenStack uma coleo de projetos de tecnologia de software livre cofinanciados por um amplo consrcio de lderes do segmento de mercado (incluindo a IBM), que fornece uma plataforma operacional para orquestrar nuvens em escala massiva. Funciona com qualquer hypervisor e inclui software para fornecer VMs em hardware padro. Alm do conjunto de clculo, fornece um armazenamento de objetos distribudo, um planejador, controlador de rede e gerenciador de autenticao. Voltar para parte superior

Concluso
medida que essas iniciativas padro amadurecem, possvel esperar a concretizao de uma noo de padro do segmento de mercado, substituindo muitas das idiossincrasias descritas neste artigo. Por enquanto, necessrio usar diversas plataformas e pilhas. Como cada uma tem suas vantagens e desvantagens, os clientes devem examinar de perto seus requisitos em termos de linguagens de programao, ferramentas de desenvolvimento e dependncias de infraestrutura relacionadas a conectividade, escalabilidade e segurana. A boa notcia que h muitas opes, o que aumenta a probabilidade de encontrar uma soluo adequada. No entanto, a m notcia que o cliente deve fazer uma escolha, e no sempre uma escolha fcil.

Recursos
Aprender Conhea o IBM SmartCloud Application Services assistindo a uma demo.

Confira os tutoriais para Google App Engine, Windows Azure, Force.com e AWS. Leia sobre VMware vCloud, OpenStack, CloudStack e Eucalyptus Cloud. Explore a computao em nuvem no developerWorks, na qual voc encontrar discusses de valor da comunidade e aprender sobre novos recursos tcnicos relacionados nuvem. Fique atualizado com os eventos tcnicos e webcasts do developerWorks com nfase em uma srie de produtos IBM e assuntos relacionados ao segmento de mercado de TI. Participe de um evento para se atualizar rapidamente sobre produtos e ferramentas IBM, bem como tendncias do segmento de mercado de TI. Siga o developerWorks no Twitter. Acompanhe as demos do developerWorks que abrangem desde demos de instalao e configurao de produtos para iniciantes at funcionalidades avanadas para desenvolvedores experientes.

Obter produtos e tecnologias Avalie produtos IBM da maneira que for melhor para voc: faa download da verso de teste de um produto, avalie um produto online, use-o em um ambiente

de nuvem ou passe algumas horas na Sandbox SOA para saber como implementar arquitetura orientada a servio de maneira eficiente. Discutir Participe da comunidade do developerWorks. Entre em contato com outros usurios do developerWorks e explore os blogs, fruns, grupos e wikis voltados para desenvolvedores.

Extrado do site: http://www.ibm.com/developerworks/br/cloud/library/clexplorepaas/

Sobre o autor

John Rhoton estrategista de tecnologia, especializado em consultoria com clientes corporativos globais, com foco em computao em nuvem pblica, privada e hbrida. Ele participa frequentemente de eventos no segmento de mercado de tecnologias emergentes (como mobilidade, redes sociais e virtualizao) e autor de seis livros, incluindo Cloud Computing Explained (2009) e Cloud Computing Architected (2011).

Novo na computao em nuvem?


Page navigation

O que computao em nuvem? Qual a diferena entre uma nuvem pblica e uma privada? E a hbrida? Computao em nuvem o mesmo que Software-as-a-Service? Infrastructure-as-aService? Platform-as-a-Service? Onde posso saber mais sobre a computao em nuvem? Que tipos de aplicativos podem ser executados na nuvem? Os aplicativos podem se mover de uma nuvem para a outra? A IBM tem uma nuvem? Quais plataformas esto disponveis para a computao em nuvem atualmente? Quais produtos, tecnologias e servios podem me ajudar com o projeto e desenvolvimento da computao em nuvem? Existem artigos bsicos sobre desenvolvimento de aplicativos para a nuvem? Esse guia fornece uma base rpida e completa em computao em nuvem com um foco nos conceitos bsicos; definies de terminologia; tipos de plataformas de nuvem, servios e produtos; como iniciar o desenvolvimento de aplicativos para a nuvem e conexes para recursos que podem expandir mais o seu conhecimento sobre a nuvem.
O que computao em nuvem?

Computao em nuvem uma categoria de solues de computao na qual uma tecnologia e/ou servio permite aos usurios acessar recursos de computao on demand, conforme necessrio, sejam os recursos fsicos ou virtuais, dedicados ou compartilhados, independentemente de como eles so acessados (por meio de uma conexo direta, LAN, WAN ou da Internet). Normalmente, a nuvem caracterizada por interfaces de autoatendimento que permitem aos clientes adquirir recursos quando e pelo tempo que for

necessrio. A nuvem tambm o conceito que est por trs de uma abordagem para a construo de servios de TI que leva vantagem do poder cada vez maior de servidores e tecnologias de virtualizao. A importncia da computao em nuvem reside no potencial da nuvem para poupar custos de investimento em infraestrutura, para poupar tempo no desenvolvimento e implementao de aplicativo e para poupar gasto adicional com alocao de recurso.
Qual a diferena entre uma nuvem pblica e uma privada? E a hbrida?

Em geral, uma nuvem pblica (externa) um ambiente que existe fora do firewall de uma empresa. Ela pode ser um servio oferecido por um fornecedor terceirizado. Ela tambm poderia ser referida como uma infraestrutura virtualizada compartilhada ou multitenant, gerenciada por meio de um portal de autoatendimento. Uma nuvem privada (interna) reproduz os modelos de entrega de uma nuvem pblica e faz isso atrs de um firewall para o benefcio exclusivo de uma organizao e seus clientes. A interface de gerenciamento de autoatendimento ainda existe enquanto os recursos de infraestrutura de TI que esto sendo coletados so internos. Em um ambiente de nuvem hbrida, os servios externos so aproveitados para estender ou complementar uma nuvem interna.
Computao em nuvem o mesmo que Software-as-a-Service? Infrastructure-as-aService? Platform-as-a-Service?

Um nmero crescente de pessoas no segmento de mercado considera o Software-as-aService (SaaS -- aplicativos de software entregues pela Web -- como um subconjunto da computao em nuvem. E provavelmente voc poderia dizer o mesmo sobre o IaaS (servidor acessvel remotamente e capacidade de armazenamento) e o PaaS (permite aos desenvolvedores construir e implementar aplicativos da Web em uma infraestrutura hospedada).
Onde posso saber mais sobre a computao em nuvem?

Comece com a nossa guia Recursos e eventos para artigos tcnicos, tutoriais, demos e outros recursos. Depois, descubra a volume de conhecimento interativo que acumulamos sobre computao em nuvem relacionando-se com seus colegas no My developerWorks:

O grupo IBM Developer Cloud (US) a comunidade projetada para otimizar e acelerar os seus processos de desenvolvimento e teste ao aproveitar as tecnologias em nuvem associadas com o Smart Business Development and Test on the IBM Cloud. Bookmarks (US) permite que voc e outros compartilhem informaes relacionadas nuvem de qualquer lugar na Web; como ter uma biblioteca de bibliotecas de recursos.
Que tipos de aplicativos podem ser executados na nuvem?

Qualquer coisa pode ser executada em uma nuvem, mas isso no significa que qualquer coisa deva ser executada em uma nuvem. Execute melhor que qualquer software que beneficie o usurio por residir em um desktop ou estao de trabalho (ferramentas de anlise de sistema, utilitrios de desfragmentao, etc.) permanea local. Alm disso, dados sensveis do cliente talvez no devam estar em uma nuvem pblica. Uma nuvem perfeita para aplicativos que lidam com gerenciamento de TI, negcios e produtividade, desenvolvimento e implementao, capacidade (servidor e/ou armazenamento) e colaborao.
Os aplicativos podem se mover de uma nuvem para a outra?

Sim, eles podem, mas com uma condio: fornecedores de nuvem precisam adotar tecnologias baseadas em padres para tornar a interoperabilidade e a liberdade de movimento uma operao facilmente alcanvel, no uma tarefa cansativa. Aqui esto trs recursos para que voc possa conhecer os padres de computao em nuvem: Discuta padres nos Grupos do Google Cloud Computing Use Cases (US) Discuta os princpios centrais no Open Cloud Manifesto (US) Revise os esforos de padres de nuvem contnuos em CloudStandards.org (US)

A IBM tem uma nuvem? Quais plataformas esto disponveis para a computao em nuvem atualmente?

A IBM oferece uma gama completa de opes de computao projetadas para suportar desenvolvimento e teste rpidos e com custo reduzido. Por exemplo:

0 IBM Smart Business Development & Test on the IBM Cloud beta oferece acesso aberto e gratuito a uma gama de instncias de imagem de servio (cinco de cada vez) que voc seleciona para um perodo de tempo limitado. possvel usar essas instncias de imagem para avaliar a funcionalidade da imagem e da plataforma de servio. Saiba mais sobre o IBM Smart Business Development and Test Cloud (US) pronto para corporao. O Amazon Elastic Compute Cloud (US) (Amazon EC2; veja a lista de tecnologias IBM que voc pode executar no EC2) um servio da Web que fornece recurso de clculo redimensionvel na nuvem, projetado para facilitar a computao em escala da Web para desenvolvedores ao permitir que voc use as interfaces de servio da Web para ativar instncias de imagem de aplicativo com uma variedade de sistemas operacionais, carreglos com o seu ambiente de aplicativo customizado, gerenciar as permisses de acesso da sua rede e executar a sua imagem usando muitos ou poucos sistemas, conforme desejar.
Quais produtos, tecnologias e servios podem me ajudar com o projeto e desenvolvimento da computao em nuvem?

A IBM oferece uma gama de produtos e tecnologias que voc pode usar no desenvolvimento de aplicativo e na administrao de sistema em nuvem. Verifique essa lista de produtos disponveis prontos para nuvem na guia Produtos e faa o download de alguns hoje.
Existem artigos bsicos sobre desenvolvimento de aplicativos para a nuvem?

Claro! Aqui est um estudo pelo qual vale a pena voc comear:

A srie "Computao em Nuvem para a Empresa" apresenta as armadilhas e pontos positivos do uso, dos produtos e das tcnicas em nuvem para ajud-lo a oferecer aplicativos da Web em uma nuvem de acesso remoto e multitenant e a descobrir produtos e recursos para ajud-lo a trazer os benefcios dos sistemas em nuvem locais para o seu ambiente de produo. Alm disso, h o artigo "Apresentando o IBM LotusLive" sobre o portflio dos servios online hospedados pela IBM que oferecem solues de colaborao, Web Conferencing e email escalveis e ricas em segurana. "Automating the construction of applications and application environments (em ingls)" demonstra ferramentas e conceitos para ajud-lo a alcanar a automao de processo. "Computao em Nuvem com Linux" e "Automating Linux cloud installations (em ingls)" mostra como o pinguim se ajusta ao mundo da computao em nuvem. A srie "Google App Engine para Java" mostra como usar Java na nuvem. A srie sobre "Computao em nuvem com o Amazon Web Services, Parte 1: Introduo" e "Computao em nuvem com PHP" abrir os seus olhos (com software livre) para o alcance completo das tecnologias em nuvem. "Connecting to the cloud: Leverage the cloud in applications (em ingls)" o ajuda a ajustar os seus aplicativos para usar o poder que a nuvem oferece. "Connecting Apple's iPhone to Google's cloud computing offerings (em ingls)" permite que voc experimente a nuvem em dispositivos.

E se voc se interessar por smarter business intelligence, "Explore analytics in the cloud (em ingls)" discute as tecnologias que permitem incluir recursos analticos em qualquer aplicativo, baseado em nuvem ou local Extrado do site: http://www.ibm.com/developerworks/br/cloud/newto.html

Mquina Virtual ( VM )
12/05/2010@_Maluli

Resumo, conceitos bsicos das Mquinas Virtuais, Virtual Machines ou VM. Mquina Virtual : Dentre os conceitos envolvidos para o estudo de mquinas virtuais, o monitor (tambm chamado de hypervisor ou VMM) um dos principais. O monitor uma camada de software inserida entre o sistema convidado (guest system, ou sistema operacional que est dentro da Maquina Virtual) e o hardware, local onde sistema convidado executado. Essa camada faz uma interface entre os sistemas virtuais e o hardware que compartilhado por eles. Ela responsvel por gerenciar todas as estruturas de hardware, como dispositivos de I/O (ou E/S entrada e sada de dados), criando um ambiente completo (mquina virtual), no qual os sistemas virtuais so executados. O nvel de abstrao e funcionalidade da VM est em uma posio intermediria entre um emulador e uma mquina real, fazendo com que os recursos de hardware e de controle sejam abstrados e usados pelas aplicaes. O software de mquina virtual cria um ambiente por meio de um Monitor de Mquina Virtual (VMM), que um computador com seu prprio sistema operacional dentro de outro sistema operacional (host). Este monitor pode criar vrias mquinas virtuais sem que nenhuma interfira na outra e tambm no interfira no sistema real onde o software de mquina virtual est instalado. Na sua essncia, o hardware da mquina virtual idntico ao hardware da mquina real, fazendo com que o sistema operacional na mquina virtual parea estar executando diretamente sobre um computador real. Cada VM possui todas as caractersticas inerentes a um PC completo, incluindo BIOS e configurao do Setup. A mquina virtual formada pelo seu prprio hardware virtual. Ela tem seu processador, memria, placa de rede, disco rgido, e at mesmo pode usufruir de dispositivos como USB, portas paralelas e seriais, de maneira independente da mquina fsica. natural que a capacidade de processamento de uma VM seja uma fatia do processador fsico, o mesmo com a memria e assim por diante. Mas podemos definir uma mquina virtual como uma nova mquina (como se tivesse sido comprada), mas que existe dentro de outra mquina fsica. Uma mquina fsica pode ser fatiada em vrias mquinas virtuais, cada uma pode conter um sistema operacional diferente com programas diferentes. No existe compartilhamento de arquivos ou partes de sistemas operacionais entre as mquinas virtuais, o isolamento entre elas total. Hoje, uma mquina virtual sobre um hypervisor pode ter mais de 64 GB de Memria RAM, 4 processadores virtuais, 4 placas de rede, cada uma com seu prprio Mac Adress e, conseqentemente, seu prprio endereo IP. O disco de uma mquina virtual pode ser um grande arquivo que ir conter tudo o que for instalado nela, ou um volume na storage, conhecido como LUN, da mesma forma que se faz com mquinas fsicas. As placas de rede da mquina virtual podem ser conectadas a switches virtuais, que podem dar acesso rede fsica ou no, e conectar mquinas virtual entre si. A partir do momento em que criamos uma mquina virtual e definimos seu tamanho, arquitetura de discos e rede, basta instalar o sistema operacional escolhido e aplicativos desejados. Ao final deste processo temos uma mquina virtual, que idntica a uma mquina fsica, isolada e s pode compartilhar arquivos com outra mquina virtual ou fsica atravs da rede.

Tipos de mquinas virtuais No se pode confundir uma mquina virtual de sistema (system virtual machine) ou mquina virtual de hardware (hardware virtual machine), assunto do qual tratado neste blog, com uma mquina virtual de processo (process virtual machine). Uma mquina virtual de processo criada quando um processo se inicia em um sistema operacional e destruda quando este processo se finaliza. Trata-se de um ambiente de programao e execuo de programas, e seu objetivo abstrair detalhes do sistema operacional e hardware para que o processo ou aplicativo rode sempre no mesmo ambiente virtual, mesmo que instalado em plataformas diferentes. Exemplos de mquinas virtuais de processo mais comuns no mercado so Java Virtual Machine e .NET framework, que usam uma mquina virtual chamada Common Language Runtime. Naturalmente, uma mquina virtual de hardware, que contm um sistema operacional de mercado e aplicativos, e que idntica a uma mquina fsica, pode conter mquinas virtuais de processos instaladas em seu sistema operacional.

Autor: Arlindo Maluli Extrado do site: http://amaluli.com/2010/05/12/maquina-virtual-vm/

Você também pode gostar