Você está na página 1de 8

Arquitetura e Desenvolvimento

Nesta seção você encontra artigos voltados para diferentes


abordagens de apoio ao desenvolvimento de projetos de software

Desenvolvimento de sistemas para a nuvem


Como identificar as principais tecnologias de apoio ao ciclo de vida de software

O desenvolvimento de sistemas para a


nuvem:
Neste artigo será apresentado um breve resumo so-

C
omputação em nuvem permite
o uso computacional (processa- bre computação em nuvem e serão catalogadas al-
mento, armazenamento, servi- gumas das principais tecnologias relacionadas. Ao
ços, etc.) com recursos compartilhados final do estudo analisaremos um pequeno exemplo
de forma remota, por meio da internet ou fictício da utilização de algumas das tecnologias
redes locais. Esses recursos são definidos citadas.
a partir de um painel de controle onde
Edson A. Oliveira Junior
edson@din.uem.br
o usuário pode configurar serviços de Em que situação o tema é útil:
Professor de Engenharia de Software na acordo com a necessidade de uso e sem Este artigo apresenta algumas das principais tec-
Universidade Estadual de Maringá (UEM). nenhuma intervenção de um especialista nologias para auxiliar no desenvolvimento de siste-
Doutor em Ciência da Computação pelo com o servidor. Em geral, o usuário só mas e o gerenciamento de infraestruturas baseados
Instituto de Ciências Matemáticas e de pagará pelos recursos e serviços utiliza- em nuvem.
Computação (ICMC) da Universidade de
dos, possibilitando um melhor controle Este tema é útil para gerentes/arquitetos de
São Paulo (USP). Principais temas de pes-
quisa: linha de processo de software, linha sobre os gastos. software e a indústria de software em geral que
de produto de software, arquitetura de sof- A computação em nuvem é a evolução desejam migrar para soluções em nuvem ou obter
tware e avaliação, métricas, engenharia de de uma variedade de tecnologias. Tecno- conhecimentos sobre um dos temas mais atuais no
software experimental, modelos e meta- logias como grid computing (modelo de setor de TI em todo o mundo.
modelos UML. Possui as certificações Java:
rede de computadores onde os recursos
SCJA, SCJP, SCJD, SCWCD e SCBCD.
de cada computador são compartilhados
com todos os outros computadores no
Rodrigo P. Bonini sistema), virtualização (o processo de necessários para um cliente e o cobra ba-
rodrigobonini@gmail.com executar vários sistemas operacionais seado no uso) podem facilmente ser con-
Especialista em Desenvolvimento de Siste- em um único equipamento) e utility fundidas com computação em nuvem.
mas para Web pela Universidade Estadual computing (modelo de disponibilização É possível diferenciar computação em
de Maringá. Experiência de 5 anos em
de serviços computacionais no qual um nuvem de outras tecnologias observando
desenvolvimento de sistemas. Atualmente
trabalha como desenvolvedor de sistemas provedor de serviços disponibiliza re- o modelo proposto pelo Instituto Nacio-
para Web utilizando a tecnologia Java. cursos computacionais e infraestrutura nal de Padrões e Tecnologia (NIST), que é

Edição 57 - Engenharia de Software Magazine 55


composto por cinco características essenciais, quatro modelos laptops, tablets, smartphones, computadores pessoais, entre
de implantação e três modelos de serviços. Tais modelos per- outros dispositivos;
mitem que organizações de grande porte ofereçam serviços e • Compartilhamento de recursos (Resource pooling): os pro-
ferramentas para auxiliar no desenvolvimento de aplicações vedores de serviços em nuvem utilizam um modelo de com-
em nuvem como, por exemplo, o Google App Engine, que é partilhamento de recursos conhecido como multi-inquilino
uma plataforma de desenvolvimento em nuvem da empresa (Multitenancy). Tal modelo permite que os provedores com-
Google integrada com uma base de dados própria, o BigTable partilhem os mesmos recursos físicos com vários usuários
(sistema de armazenamento de dados comprimido, de alto virtualmente, de modo que cada recurso fique isolado em
desempenho e proprietário desenvolvido a partir de um con- sua máquina. Os recursos são expansíveis de acordo com a
junto de tecnologias do Google). demanda de cada usuário e não há uma localização exata de
Outro exemplo de serviço é o Windows Azure Platform da onde os dados desses usuários são armazenados. Entretanto,
Microsoft, que possibilita um desenvolvimento de forma ágil, alguns provedores de serviços em nuvem já permitem a escolha
também integrada com uma base de dados própria, o SQL da localização do Data Center como, por exemplo, a escolha do
Azure. Ambos contam com bibliotecas próprias para diver- país, estado, etc.;
sas linguagens. Por fim, cabe ressaltar que todos os serviços • Elasticidade imediata (Rapid elasticity): possibilita configurar
citados podem ser executados via Web nos data centers das o aumento ou a redução de recursos físicos, o que na maioria
empresas fornecedoras. das vezes é realizado de modo automático ou pré-configurado
A computação em nuvem oferece muitos benefícios para as pelo cliente. A elasticidade pode ajudar o cliente a evitar que o
organizações, como: a redução de custos, já que as empresas sistema saia do ar nos momentos de picos de acesso. A elastici-
não precisam mais gastar com infraestrutura e também manu- dade também evita serviços ociosos, possibilitando um preço
tenção; e a melhora na automação dos serviços, flexibilidade e mais barato para os clientes, pois o provedor procura utilizar,
sustentabilidade. Além dos benefícios citados, a computação de forma otimizada, todos os recursos físicos do Data Center;
em nuvem conta com um contrato oferecido pelos provedores • Controle de serviços (Measured service): implica no controle de
de serviço, o Service Level Agreement (SLA). Tal contrato é im- todos os recursos contratados pelo usuário com a possibilidade
portante para determinar os benefícios e as responsabilidades de monitoramento, controle e relatórios dos recursos utiliza-
de cada parte. O SLA é crucial para construir a confiança entre dos, o que permite maior transparência para quem contrata
o prestador do serviço e o cliente. os serviços e para o fornecedor.
Com o aumento de investimentos decorrentes de empresas
que vêem a computação em nuvem como um grande avanço Os modelos de implantação propostos são definidos como:
da TI, é cada vez maior o número de serviços e aplicações dis- • Nuvem privada (Private cloud): as infraestruturas são criadas
ponibilizadas, sejam elas open source ou comerciais. Assim, para o uso exclusivo de uma organização e são gerenciadas
este artigo cataloga as principais tecnologias encontradas na pelo departamento de TI, terceirizadas ou de forma combinada.
indústria de TI, voltadas à computação em nuvem. Espera-se Esses recursos são geralmente utilizados para fornecer serviços
com isso apoiar os estudos e a adoção de tais tecnologias para internos ou utilizados como mecanismo de regras de negócio
o desenvolvimento de sistemas baseados em nuvem. da organização. A infraestrutura pode estar localizada dentro
ou fora da organização (exemplo Data Centers). Uma nuvem
Computação em Nuvem privada pode proporcionar maior controle sobre os dados;
De acordo com o Instituto Nacional de Padrões e Tecnologia • Nuvem comunitária (Community cloud): as infraestruturas
(NIST), como já citado, o modelo de computação em nuvem é são compartilhadas por várias organizações que possuem
formado por cinco características essenciais, quatro modelos de propósitos e interesses comuns (política, missão, requisitos
implantação e três modelos de serviços. Tal modelo em nuvem de segurança). Essas infraestruturas podem ser gerenciadas
vem sendo aceito por profissionais da área de TI e instituições pelo departamento de TI das organizações da comunidade,
de ensino e pesquisa. terceirizadas ou de forma combinada. A infraestrutura pode
As características essenciais da computação em nuvem são estar localizada dentro ou fora das organizações (exemplo
descritas como segue: Data Centers);
• Sob demanda (On-demand self-service): fornecedores de ser- • Nuvem pública (Public cloud): as infraestruturas estão dis-
viços em nuvem oferecem diversos recursos como armazena- poníveis para o uso do público em geral e são gerenciadas
mento e processamento, que podem ser facilmente habilitados pelas empresas fornecedoras que disponibilizam serviços
e configurados segundo as suas necessidades e sem nenhuma em nuvem de forma que o usuário paga pelo que usar. As
intervenção de um especialista com o servidor. Assim, o con- infraestruturas são instaladas nas empresas fornecedoras
sumidor paga apenas pelos serviços utilizados/contratados; e, muitas vezes, os usuários não possuem conhecimento da
• Acesso à rede (Broad network access): para fornecer ou utilizar localização dos dados;
um serviço em nuvem é preciso haver acesso a uma rede pa- • Nuvem Híbrida (Hybrid cloud): as infraestruturas são com-
drão, por meio de dispositivos que possuam uma plataforma postas por dois ou mais modelos de implantação (nuvem
capaz de acessar tal serviço. Esse acesso pode ser feito via privada, nuvem comunitária, nuvem pública). Em uma nuvem

56 Engenharia de Software Magazine - Desenvolvimento de sistemas para a nuvem


ARquiTETuR A E dESENvoLviMENTo

híbrida, os modelos de implantação trabalham como se fossem • Dropbox: é um serviço de armazenamento de arquivos on-
uma única nuvem. Organizações utilizam esse modelo para ter line que possibilita o compartilhamento com outros usuários
maior controle sobre os dados podendo, por exemplo, utilizar tornando os arquivos sincronizados. Atualmente esse serviço
um modelo de implantação privado para controlar os dados dispõe de uma versão paga e outra gratuita com limitações
internos da organização e um modelo de implantação público de recursos;
para as regras de negócios. • SalesForce.com: é um aplicativo de Gestão de Relacionamento
com o Cliente (CRM) online baseado em multitenancy (princí-
Os modelos de serviços propostos são definidos como: pio da arquitetura de software onde uma única instância de
Software como Serviço, Plataforma como Serviço e Infraes- software em um servidor é utilizada por várias organizações
trutura como Serviço. A Figura 1 ilustra o modelo geral de clientes). É executado diretamente do navegador Web sem ins-
computação em nuvem baseado nas características essenciais talação de qualquer aplicativo. Atualmente, conta com vários
e modelos de implantação e de serviços. planos comerciais;
• Basecamp: é uma ferramenta para o gerenciamento e a
colaboração de projetos online baseado em multitenancy,
sendo executado diretamente do navegador Web sem ins-
talação de qualquer aplicativo. Atualmente, conta somente
com plano comercial.

Plataforma como Serviço (Platform as a Service – PaaS)


Esse modelo é o mais utilizado por desenvolvedores de
aplicações em nuvem, pois oferece um ambiente com sistema
operacional, frameworks para desenvolvimento de aplicativos
em nuvem, controle de transações, serviços e também hos-
pedagem para os aplicativos desenvolvidos. Cada provedor
fornece suas próprias bibliotecas de desenvolvimento, banco
de dados e infraestrutura para o desenvolvedor. O usuário não
pode administrar ou controlar os recursos da infraestrutura
como processamento, armazenamento, memória, entre outros
recursos, mas tem controle sobre os aplicativos desenvolvidos
Figura 1. Modelo geral de computação em nuvem e as configurações no ambiente de hospedagem do servidor.
Como benefícios oferecidos pelo modelo PaaS, podemos citar:
Software como Serviço (Software as a Service – SaaS) (i) custo de aquisição reduzido, pois o usuário paga apenas
Nesse modelo o fornecedor disponibiliza aplicativos que pelo recurso utilizado; e (ii) redução do impacto ambiental
são acessados por meio de navegadores Web ou via desktop. dos recursos usados com infraestrutura local.
Esse modelo está mudando o modo como os aplicativos são
comercializados, uma vez que o usuário não compra a licença Infraestrutura como Serviço (Infrastructure as a
do aplicativo como normalmente acontece, mas paga apenas Service – IaaS)
pelo que usa. Porém, existem vários serviços disponíveis como Esse modelo oferece controle sobre o processamento, arma-
Google Docs, Google Tradutor, Photoshop Express Editor, entre zenamento, redes e outros recursos básicos da computação. O
outros serviços, que podem ser utilizados gratuitamente. usuário poderá instalar sistemas para o funcionamento da má-
Entretanto, no modelo SaaS o usuário final não pode ad- quina virtual como sistema operacional e aplicações. O usuário
ministrar ou controlar os recursos de infraestrutura como não pode administrar ou controlar a infraestrutura do servidor,
processamento, armazenamento, memória, entre outros. mas tem controle sobre o sistema operacional, armazenamento
Como benefícios oferecidos pelo modelo SaaS, pode-se citar: das informações, controle de memória, aplicativos implantados
(i) empresas gastarão menos com recursos de TI, pois utiliza- e, em alguns casos, o controle do firewall do host e recursos da
rão recursos do próprio Data Center; (ii) entregas rápidas de rede pelo painel de administração do fornecedor.
novas atualizações para todos os usuários conectados à rede; Como benefícios oferecidos pelo modelo IaaS, pode-se citar:
e (iii) padronização de serviços para todos os usuários. Alguns (i) menores custos com TI, pois nem todos os recursos inves-
exemplos de aplicações SaaS são: tidos com infraestrutura local na empresa serão utilizados; (ii)
• Google Docs: é um conjunto de ferramentas desenvolvido não existência de custos com manutenção de infraestrutura,
para criação e leitura de textos, planilhas, apresentações e pois toda a manutenção é de responsabilidade do fornecedor
formulários eletrônicos. Essas aplicações são executadas do serviço em nuvem; e (iii) sistema escalável e flexível, já
diretamente no navegador Web sem instalação de qualquer que o dimensionamento de todos os recursos é feito de forma
aplicativo. O Google Docs atualmente dispõe de uma versão dinâmica conforme necessário.
gratuita e também uma versão empresarial; A Figura 2 ilustra os modelos de serviços em nuvem.

Edição 57 - Engenharia de Software Magazine 57


• Google App Engine: Permite a criação e execução de aplica-
tivos Web na infraestrutura do Google. O Google App Engine
possui um gerenciador de aplicações de fácil utilização que
permite o desenvolvimento sem que seja necessário gerenciar
uma infraestrutura em nuvem. O Google oferece plugins para
desenvolvimento na IDE Eclipse. Também é possível utilizar
um endereço de domínio gratuito (appspot.com) para a aplica-
ção. Atualmente, o GAE, como também é conhecido, possui
uma versão gratuita com algumas limitações de serviços e uma
versão comercial, onde o usuário paga pelo que utilizar;
• Windows Azure Platform: É uma plataforma que ajuda os
Figura 2. Modelos de serviços de computação em nuvem desenvolvedores na criação, hospedagem e dimensionamento
de aplicativos em nuvem na infraestrutura da Microsoft. Atual-
mente, possui uma versão de avaliação de noventa dias e uma
Catálogo de tecnologias para computação em nuvem versão comercial, na qual o usuário paga pelo que utilizar;
Com a rápida expansão do modelo de computação em • Force.com Platform: Voltado para o desenvolvimento de
nuvem, empresas ligadas a TI vêm investindo na criação de aplicações empresariais, possui suporte para a construção
infraestruturas, serviços e ferramentas que podem auxiliar no de aplicações Web e aplicações móveis com APIs abertas.
desenvolvimento, implementação e manutenção de sistemas A plataforma Force.com promete um modelo diferente das
baseados em nuvem. No entanto, existem diferentes espe- plataformas tradicionais, fornecendo soluções mais flexíveis e
cificações de serviços e preços cobrados pelos provedores. completas para desenvolvimento, incluindo uma interface de
Por esse motivo foram catalogadas apenas as principais tec- gerenciamento completa para o usuário, menos restrições com
nologias disponíveis atualmente. APIs de desenvolvimento e relatórios detalhados;
• AWS Elastic Beanstalk: É um serviço da Amazon.com, Inc.
Catálogo de Plataforma como Serviço (PaaS) para hospedagem e gerenciamento de aplicativos em nuvem.
Nesta seção são apresentados provedores de desenvolvi- A plataforma lida automaticamente com os detalhes da capa-
mento de sistemas em nuvem com base no modelo PaaS. cidade dos recursos, do balanceamento de carga e do monito-
Esse modelo de serviço fornece recursos de desenvolvimento ramento das aplicações. O Elastic Beanstalk atualmente suporta
dentro de um ambiente que permite a execução e hospedagem aplicativos desenvolvidos em .Net, Java e PHP. Não há custo para
de aplicativos. Muitos provedores também disponibilizam utilização da plataforma, sendo cobrado apenas pelos recursos
ambientes para testes, serviços de armazenamento de dados da Amazon Web Services (AWS) necessários para armazenar e
e gerenciamento de transações. No modelo de serviço PaaS, executar os aplicativos. Além disso, é possível oferecer o aplica-
o contratante não se preocupa com a administração da infra- tivo usando um nome livre com o domínio elasticbeanstalk.com,
estrutura (servidores, rede, sistema operacional, etc.), o que por exemplo: esmagazine.elasticbeanstalk.com;
permite que a equipe empenhe mais tempo e qualidade nos • OpenShift: É uma plataforma para hospedagem e geren-
processos de desenvolvimento. ciamento de aplicativos em nuvem com suporte a várias
Na Tabela 1, ao final desta subseção, será apresentado um linguagens e frameworks (Apache Maven, Spring, Seam, Rails,
resumo do catálogo PaaS com algumas das principais carac- Sinatra, Django, Zend, entre outros). Atualmente conta com
terísticas como o banco de dados suportado, linguagem de dois planos, o Express e o Flex;
programação, formas de pagamento, entre outras informações. • CloudBees Platform: Fornece um ambiente de desenvolvi-
Vejamos quais foram as plataformas selecionadas: mento completo, desde o desenvolvimento até a produção.

Empresa Banco de dados Linguagens suportadas Pagamento Plano gratuito / teste


Google App Engine Google BigTable -Não Relacional Java e Python Pelo que utilizar Plano gratuito
Windows
Azure Microsoft SQL Azure - Relacional Java, PHP, Ruby, .Net e Python Pelo que utilizar Teste (90 dias)
Platform
Java, .Net, PHP, Perl, Python, Ruby, ColdFusion
Force.com Platform Salesforce.com ForceDatabase.com - Não Relacional Mensal Teste (30 dias)
Markup Language, SDK iOS e SDK Android
Amazon RDS, SimpleDB Amazon, Microsoft SQL
AWS Elastic Beanstalk Amazon .Net, Java e PHP Pelo que utilizar Plano gratuito (1 ano)
Server, Oracle, IBM DB2 ou Informix
OpenShift Red Hat MySQL, SQLite, MongoDB e Membase PHP, Python, Perl, Ruby e Java Pelo que utilizar Plano gratuito
CloudBees Platform CloudBees MySQL Java Pelo que utilizar Plano gratuito

Tabela 1. Resumo das tecnologias e ferramentas para computação em nuvem catalogadas – Plataforma como Serviço (PaaS)

58 Engenharia de Software Magazine - Desenvolvimento de sistemas para a nuvem


ARquiTETuR A E dESENvoLviMENTo

Plano gratuito ou
Empresa Storage Suporte de Banco de dados Pagamento Disponibilidade
teste
Amazon Elastic Amazon Simple Storage Service Amazon SimpleDB (não-relacional) e
Plano gratuito
Compute Cloud Amazon (Amazon S3) e Amazon Elastic Amazon Relational Database Service Pelo que utilizar 99,95%
(1 ano)
(Amazon EC2) Block Store (EBS) (relacional)
GoGrid Cloud Servers GoGrid GoGrid Cloud Storage Não informado Mensal ou Pelo que utilizar Não possui 100%
Rackspace Cloud
Rackspace File Sharing Microsoft SQL Server 2008 Pelo que utilizar Não possui 100%
Servers

Tabela 2. Resumo das tecnologias para computação em nuvem catalogadas – Infraestrutura como Serviço (IaaS)

O desenvolvedor Java pode criar e implantar software de qua- de gerenciamento onde o usuário poderá escolher a melhor
lidade dentro da plataforma utilizando o serviço DEV@cloud, e configuração para o servidor, como o tamanho do disco de
fazer a hospedagem do código para a nuvem usando o serviço armazenamento, memória RAM e velocidade da banda (Mbps).
RUN@cloud. Também são disponibilizadas ferramentas de O serviço possui suporte para os sistemas operacionais
terceiros as quais permitem testar as aplicações com o Sauce Windows e Linux, que são gerenciados por tecnologias de vir-
SauceLab, compartilhar projetos com outros desenvolvedores tualização como Xen e XenServer. Atualmente, oferece planos
utilizando Git ou SVN, monitorar a qualidade do código com de pagamento em que o usuário paga por horas utilizadas.
Sonar, além de um plug-in chamado Toolkit CloudBees para a IDE
Eclipse. Esse toolkit auxilia no desenvolvimento e implantação Catálogo de ferramentas para implementação de IaaS
dos aplicativos nessa plataforma. Uma solução para empresas que desejam implementar a
sua própria nuvem IaaS é utilizar ferramentas de gerencia-
Catálogo de Infraestrutura como serviço (IaaS) mento, permitindo controlar as máquinas virtuais, gerenciar
Nesta seção são apresentados provedores de desenvolvimen- a rede, controlar o armazenamento, segurança, entre outros
to de sistemas em nuvem sob o modelo IaaS. Esse modelo de recursos disponíveis.
serviço permite maior controle e flexibilidade para o desen- Na Tabela 3, será apresentado um resumo do catálogo das
volvedor, comparado com o modelo PaaS, pois o programa- ferramentas para implementação de IaaS com algumas das
dor poderá criar seu próprio ambiente de desenvolvimento. principais características como licença de uso, sistema opera-
Entretanto, precisará gerenciar vários recursos, tais como, cional suportado, entre outras informações. Tais ferramentas
sistema operacional, banco de dados, serviços, gerenciamento são descritas a seguir:
de permissões, entre outros recursos gerenciáveis. • Eucalyptus: O Eucalyptus (Elastic Utility Computing Architec-
A Tabela 2, apresenta um resumo do catálogo IaaS com ture for Linking Your Programs to Useful Systems) é um framework
algumas das principais características como o local de arma- para construção e gerenciamento de nuvens privadas e híbri-
zenamento, banco de dados suportado, formas de pagamento, das sem necessidade de hardware especial para computação
disponibilidade, entre outras informações. Vejamos quais em nuvem. Foi desenvolvido para implementar uma nuvem
foram os provedores selecionados: por meio dos serviços da Amazon EC2 e S3, mas atualmente é
• Amazon Elastic Compute Cloud (Amazon EC2): É um serviço compatível com outros serviços. O Eucalyptus possui um mó-
Web que oferece capacidade computacional redimensionável dulo chamado euca2tool para a criação de painéis de usuários
em nuvem e possui uma interface de gerenciamento simples para gerenciamento dos serviços e plataforma. Esse framework
que fornece o controle completo de seus recursos computa- conta com uma versão comercial e um projeto open source;
cionais. O Amazon EC2 permite a criação de instâncias de • OpenNebula: Permite implementar e gerenciar uma infraes-
servidores em poucos minutos. Atualmente possui uma versão trutura de nuvem pública, privada ou híbrida. O OpenNebula
gratuita por um ano, com algumas limitações de recursos e, possui grande flexibilidade e recursos avançados, possibi-
diversos planos comerciais, nos quais o usuário paga apenas litando atender a empresas de diversos setores, sendo um
pelos recursos utilizados; projeto open source mantido pela comunidade e por diversas
• GoGrid: É um serviço que permite a criação de servidores em empresas colaboradoras;
nuvem. Dentre suas principais funcionalidades, possibilita o • Nimbus: Concentra-se na construção de nuvens públicas e nu-
balanceamento de carga de hardware e de armazenamento por vens comunitárias, mas também possibilita a criação de nuvens
meio do painel de controle. Também permite o escalonamento privadas. O Nimbus é um conjunto de ferramentas open source
de memória RAM de forma simples. Atualmente, oferece uma mantido pela comunidade e outros colaboradores que foi desen-
versão em que o usuário paga pelo que usar ou outros quatro volvido com o propósito de atender a comunidade científica.
planos pré-pagos;
• Rackspace Cloud Servers: É um serviço Web semelhante Exemplo de aplicação do catálogo proposto
ao Amazon EC2 que oferece capacidades computacionais Esta seção apresenta um exemplo de utilização de alguns dos
em nuvem. O Rackspace Cloud Servers fornece um painel serviços apresentados neste artigo. Nesse exemplo é descrito

Edição 57 - Engenharia de Software Magazine 59


o caso de uma empresa fictícia de vendas on-line, a Compre é maximizado. Por esses motivos, há um maior interesse em
Sempre LTDA, que utiliza atualmente dois servidores locais contratar serviços nos quais o contratante pague apenas pelo
estilo blade (ver Nota do DevMan 1) para a hospedagem do que utilizar, podendo a qualquer instante customizar os re-
seu site de vendas online (e-commerce), email e processos de cursos contratados.
negócio da própria empresa. A empresa não possui lojas físicas Com base no catálogo proposto, existem várias opções
para a venda de seus produtos. disponíveis de PaaS no mercado que buscam satisfazer as
necessidades da Compre Sempre, dentre elas: o Google App
Engine, o Windows Azure Platform, o CloudBees Platform,
Nota do DevMan 1 entre outras. O PaaS como solução se encaixa perfeitamente,
pois oferece uma plataforma pré-configurada e com um banco
Blade: Um servidor blade é um computador robusto com um projeto modular de dados integrado. Porém, esse modelo atende somente ao
otimizado para minimizar o uso do espaço físico e energia. site e não ao serviço de email da empresa. Dessa forma, outra
opção de modelo de serviço é o IaaS, que, por sua vez, possi-
bilita o controle da infraestrutura em nuvem, deixando para
a equipe de TI somente a parte de instalação e configuração
Panorama atual da empresa dos serviços que serão utilizados como, por exemplo, sistema
A Compre Sempre LTDA é uma empresa nacional de ven- operacional, servidor de email e servidor web.
das online especializada em varejo de produtos em geral (loja
de departamentos) que vem enfrentando alguns problemas Implementação de um ambiente em nuvem
quanto à sua infraestrutura de TI. Tal infraestrutura é com- Após a análise de vários serviços de computação em nuvem,
posta, atualmente, por servidores locais que hospedam o site foi contratado o serviço Amazon Elastic Compute Cloud (Ama-
de e-commerce, e-mails e processos de negócio. Por causa do zon EC2), que é uma estrutura IaaS da empresa Amazon.com,
constante crescimento da empresa, os servidores não estão su- Inc. Esse serviço possibilita a criação de máquinas virtuais sob
portando a grande quantidade de processamento de informa- demanda de acordo com as necessidades da empresa, dimi-
ções e dados gerados diariamente e, consequentemente, há uma nuindo muito os gastos com infraestrutura de TI, pois o usuário
grande urgência nas mudanças da infraestrutura da empresa. contratante paga por hora para a utilização dos recursos. Para
Porém, tal mudança não é tão simples, pois o ambiente atual a escolha do EC2 foi consultada a Tabela 2, com base na forma
onde se encontram os servidores é pequeno para a instalação de pagamento e um ambiente que possibilitasse a realização
de novos equipamentos. Assim, se faz necessário um novo de testes dos serviços antes da contratação.
local com maior espaço e um melhor sistema de climatização. Ao contratar o serviço da Amazon, a equipe da Compre
Além disso, os novos servidores precisam de uma equipe Sempre desenvolveu um projeto para iniciar a migração do
mais qualificada para manutenção, o que demanda alto custo site de e-commerce e também do servidor de email da em-
e planejamento. Para tanto, a equipe analisa alternativas para presa. A migração foi dividida em três etapas. Na primeira
solucionar a situação relacionada à sua infraestrutura. etapa foi instalado e configurado o sistema operacional Red
Hat, que é baseado em Linux e configurado os serviços web
Possíveis tecnologias como solução com Java e Apache Tomcat 6. Na segunda etapa foi insta-
A equipe de TI da Compre Sempre optou por uma solução lado e configurado o banco de dados Oracle Database 10g
terceirizada baseada em computação em nuvem, que não re- Release 2 (o mesmo utilizado anteriormente pela empresa).
quer mais contratações de funcionários e nem um novo local Na última etapa foi criada uma nova máquina virtual com
com sistema de climatização melhorado. Para atender todos sistema operacional CentOS e então, instalado e configurado
os requisitos foram analisadas diversas soluções e empresas o servidor de email Postfix para a migração dos emails da
de serviços de computação em nuvem, considerando sempre empresa, separando esse serviço do site, prezando assim
os custos de migração. Tal migração está diretamente relacio- pela segurança das informações.
nada aos custos e à necessidade de mão de obra qualificada O sistema de gerenciamento interno continua sendo local, uti-
para manutenção. lizando os servidores antigos. Com essa mudança, os analistas
Além disso, a empresa se preocupa com a sua expansão, de TI da empresa pretendem reduzir os gastos no setor de TI
principalmente quando as vendas alcançam o ponto máximo e o tempo de manutenção da infraestrutura, dedicando-se à
como, por exemplo, o mês de dezembro, em que o faturamento criação de novos planejamentos e estratégias de TI.

Empresa Desenvolvido na linguagem Sistema operacional Licença Open Source


Eucalyptus Eucalyptus Systems, Inc. Java, C Linux GPL v3 Sim (Existe versão comercial)
OpenNebula OpenNebula Community C++, C, Ruby, Java, Shell script, lex, yacc Linux Apache License version 2 Sim (Existe versão com suporte comercial)
Nimbus Nimbus Community Java, Python Linux Apache License version 2 Sim

Tabela 3. Resumo dos Frameworks catalogados

60 Engenharia de Software Magazine - Desenvolvimento de sistemas para a nuvem


ARquiTETuR A E dESENvoLviMENTo

A Amazon.com permite que qualquer pessoa que possua console de configuração. A próxima etapa é a configuração do
um cartão de crédito (internacional) possa contratar os Firewall, para decidir quais portas deverão ser liberadas
serviços Amazon Web Services (AWS) de forma simples e para os serviços. Feito isso, é apresentado um Review de
sem nenhuma fidelidade de contrato, podendo a qualquer toda a configuração e a máquina virtual estará pronta para
momento cancelar o serviço. A Amazon também possui ser utilizada.
um nível de uso gratuito do EC2, que permite a utilização
durante um ano para uma instância, o que é indicado para
efetuar testes ou mesmo para estudos.
A AWS possui uma ferramenta para configuração do EC2 de
modo visual chamada AWS Management Console (Figura 3).
Por meio dessa ferramenta é possível criar novas máquinas
virtuais. A configuração é feita de forma simples e intuiti-
va e, também, é possível utilizar ferramentas de linha de
comando. Ao iniciar uma nova máquina virtual, o usuário
deve efetuar a escolha do sistema operacional por meio
de arquivos Amazon Machine Image (AMI). A Amazon
disponibiliza vários AMIs para instalação. Ao selecionar o
sistema operacional desejado, será apresentada outra tela
para a configuração dos recursos do processador e memória
da máquina virtual. Figura 3. Tela de configuração da máquina virtual no Amazon EC2
Após a escolha do sistema operacional e da configura-
ção de recursos de processamento, é necessário gerar a As configurações dos serviços são feitas por meio de um clien-
chave de acesso (Key Pairs). Esta chave possibilita o acesso te SSH e para ter acesso ao servidor a Amazon disponibiliza um
à máquina virtual por meio do protocolo Secure Shell Domain Name Service (DNS) público (Public DNS), algo como
(SSH). A chave também é gerada por meio do próprio ec2-xx-xx-xx-xx.compute-1.amazonaws.com, que possibilita

Edição 57 - Engenharia de Software Magazine 61


o acesso direto ao sistema operacional. Um exemplo de con- somente do contrato necessário para a utilização desses.
figuração usando o cliente SSH é apresentado na Figura 4, Em um modelo ideal, o catálogo deveria apresentar para cada
especificamente a instalação do Apache Tomcat. Além do solução mais detalhes de implementação e implantação.
Tomcat, vários outros sistemas foram configurados, permi-
tindo o correto funcionamento do ambiente para a empresa Referências
Compre Sempre.
[1] REESE, G. “Cloud Computing Architectures”, Primeira Edição. Ed. O’Reilly, 2009.
ISBN: 978-0-596-15636-7. p. 1.

[2] IBM REDBOOKS PUBLICATION. “Introduction to Grid Computing”.


http://www.redbooks.ibm.com/abstracts/sg246778.html.

[3] GOOGLE INC. “Google App Engine”.


http://code.google.com/intl/pt-BR/appengine/.

[4] MICROSOFT INC. “Windows Azure Platform”.


http://www.microsoft.com/windowsazure/pt/br/.

[5] BAKSHI, K. “Considerations for Cloud Data Centers: Framework, Architecture and
Adoption”. Cisco Systems Inc. 2011.

[6] DAWOUD, W; TAKOUNA, I; MEINEL, C. “Infrastructure as a Service Security:


Challenges and Solutions”. Hasso-Plattner-Institute. 2010.
Figura 4. Instalação do Apache Tomcat 6 no Amazon EC2
[7] MUTAVDŽIC, R. “Cloud Computing Architectures for National, Regional and Local
Conclusão Government”. Microsoft Croatia. 2010.
Este artigo apresentou a proposta de um catálogo para com- [8] AMAZON INC. “AWS Elastic Beanstalk”.
putação em nuvem que abrange os três modelos existentes: http://aws.amazon.com/elasticbeanstalk/
SaaS, PaaS e IaaS. Tal catálogo engloba tecnologias para com-
putação em nuvem e foi produzido a partir dos resultados de [9] CLOUDBEES, INC. “CloudBees Platform”.
http://www.cloudbees.com/platform-overview.cb.
uma revisão sistemática de literatura. Tal revisão forneceu o
estado da arte sobre o tema em questão, permitindo a busca, [10] AMAZON INC. “Amazon Elastic Compute Cloud”.
por meio de suas referências e relatos, do estado da prática em http://aws.amazon.com/ec2/.
empresas como Amazon e Microsoft. [11] OPENNEBULA PROJECT LEADS. “OpenNebula: The Open Source Toolkit for Data
Center Virtualization”.
Um exemplo hipotético foi apresentado com o objetivo de http://www.opennebula.org/.
ilustrar como algumas soluções propostas no catálogo podem
ser usadas em conjunto com a infraestrutura atual de uma [12] NIMBUS COMMUNITY. “Nimbus”.
empresa. Para tanto, foi demonstrado por meio do modelo IaaS http://www.nimbusproject.org.
como uma empresa pode analisar e adotar uma solução em [13] GOOGLE INC. “Banco de dados não-relacional - BigTable”.
nuvem, reduzindo a necessidade de mão de obra qualificada http://research.google.com/archive/bigtable.html.
para a manutenção de servidores e serviços e redução de custos
com infraestrutura. Todo o suporte necessário, dessa forma, é [14] AMAZON INC. “AWS Free Tier”.
http://aws.amazon.com/pt/free/.
fornecido pela empresa terceirizada, além de outros benefícios
como a preservação dos dados e segurança.
Dê seu feedback sobre esta edição! Feedback
O catálogo proposto está limitado com relação à apresentação eu
s

detalhada de como cada solução categorizada em modelos é A Engenharia de Software Magazine tem que ser feita ao seu gosto.
sobre e

composta e como os seus serviços e infraestruturas interagem Para isso, precisamos saber o que você, leitor, acha da revista!
s

ta
para permitir um melhor entendimento da nuvem formada. Dê seu voto sobre este artigo, através do link:
edição

Essa limitação, em parte, ocorre por grande parte dos serviços


www.devmedia.com.br/esmag/feedback
estarem disponíveis na forma de uma API, com documentação

62 Engenharia de Software Magazine - Desenvolvimento de sistemas para a nuvem

Você também pode gostar