Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

A primeira vez que acessar o developerWorks, um perfil será criado para você. Informações do seu perfil (tais como: nome, país / região, e empresa) estarão disponíveis ao público, que poderá acompanhar qualquer conteúdo que você publicar. Seu perfil no developerWorks pode ser atualizado a qualquer momento.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Modelos de Serviços de Computação em Nuvem, Parte 2: Plataforma como Serviço

Dan Orlando, Enterprise RIA Consultant, Vision Media Group
Photo of Dan Orlando
Dan Orlando é um líder reconhecido na comunidade de desenvolvimento corporativo. Como consultor de longa data, o conhecimento de Dan sobre plataformas de tecnologia Adobe é frequentemente requisitado por líderes do segmento de mercado e por publicações como IBM developerWorks, Adobe Developer Connection e Amazon Web Services. Dan também pode ser visto blogando regularmente em DanOrlando.com.

Resumo:  Descubra como Plataforma como Serviço (PaaS) oferece oportunidades a desenvolvedores para se beneficiarem da computação em nuvem e como proprietários de negócios e tomadores de decisões podem pré-qualificar fornecedores de PaaS, minimizando o potencial de erros catastróficos.

Nesta série em três partes, exemplos diretos do mundo real de computação em nuvem ajudam a eliminar a confusão em torno dos conceitos. Cada artigo desta série cobre um dos três modelos de serviço: Infraestrutura como Serviço (IaaS), Plataforma como Serviço, Software como Serviço (SaaS).

Visualizar mais conteúdo nesta série

Data:  16/Set/2011
Nível:  Intermediário Também disponível em :   Inglês
Atividade:  2374 visualizações
Comentários:  


Plataforma como Serviço é frequentemente a classificação mais confusa da computação em nuvem, pois pode ser difícil de identificar, frequentemente sendo confundida com Infraestrutura como Serviço ou Software como Serviço. Neste segundo de uma série de artigos em três partes, saiba o que torna PaaS exclusiva e como pode ser aproveitada em seus negócios.

Acrônimos usados frequentemente

  • API: Interface de Programação de Aplicativos
  • HTTPS: Protocolo de Transporte de Hipertexto Seguro
  • IDE: ambiente de desenvolvimento integrado
  • ROI: Retorno sobre investimento
  • SQL: linguagem de consulta estruturada
  • SSL: Secure Sockets Layer
  • UI: interface com o usuário

O fator de definição que torna PaaS exclusiva é que permite que desenvolvedores desenvolvam e implementem aplicativos da Web em uma infraestrutura hospedada. Ou seja, PaaS permite aproveitar os recursos de computação aparentemente infinitos de uma infraestrutura de nuvem.

É claro que o que parece ser uma quantia infinita de recursos de computação é uma ilusão, já que a limitação é baseada no tamanho da infraestrutura. No entanto, como você aprendeu mais no primeiro artigo desta série, estima-se que a infraestrutura da Google é composta por mais de milhão de computadores baseados em x86. Além disso, como a infraestrutura para PaaS é elástica — um conceito também discutido na Parte 1 — a nuvem pode ser expandida para fornecer até mais recursos de computação, conforme necessário; portanto, a ilusão de recursos infinitos não é totalmente imaginária.

PaaS para desenvolvedores

Um equívoco comum dos desenvolvedores é que a computação em nuvem se aplica somente a administradores de rede. Esse erro de concepção deixa de observar as muitas possibilidades que a computação em nuvem traz para as equipes de desenvolvimento e de controle de qualidade.

Considere algumas das coisas que são frequentemente problemáticas durante o ciclo de vida do desenvolvimento de software. Em minha experiência, o processo de configurar o ambiente do servidor que irá hospedar o aplicativo da Web que a equipe de desenvolvimento foi designada a desenvolver pode ser uma grande dificuldade. Mesmo nas empresas maiores, geralmente há um único recurso de administrador da rede designado para diversas equipes de desenvolvimento. Quando PaaS não está sendo usada, configurar um ambiente de desenvolvimento ou de teste geralmente requer as seguintes tarefas:

  • Adquirir e implementar o servidor.
  • Instalar o sistema operacional, ambientes de tempo de execução, repositório de controle de origem e qualquer outro middleware necessário.
  • Configurar o sistema operacional, os ambientes de tempo de execução, o repositório e middleware adicional.
  • Mover ou copiar código existente.
  • Testar e executar o código para assegurar que tudo funcione.

Mais vezes do que não, o recurso de administrador já está esticado ao máximo; portanto, conseguir implementar um novo ambiente pode ser um processo doloroso. Outro grande problema para desenvolvedores de aplicativos da Web para tanto o lado do cliente quando do servidor é duplicar o ambiente de tempo de execução localmente para seus próprios propósitos de teste.

Agora, imagine que você faça parte de uma equipe de desenvolvimento que esteja usando PaaS. Nessa situação, haveria uma máquina virtual (VM) contendo todo o ambiente do servidor que poderia literalmente ser passada em uma unidade flash USB.

Gostaria de chamar sua atenção para a matriz de conceito cruzado mostrada na Parte 1 para ser usada como referência à medida que a série continua a analisar PaaS. Essa matriz também é fornecida na tabela 1.


Tabela 1. Matriz de conceitos cruzados das três classificações da computação em nuvem
Mudança de paradigmaCaracterísticasPalavras-chaveVantagensDesvantagens e riscosQuando não usar
IaaSInfraestrutura como um ativoGeralmente independente de plataforma; custos de infraestrutura são compartilhados e assim reduzidos; acordos de nível de serviço (SLAs); pagamento por uso; autoajuste de escala Computação em grade, computação de utilitário, instância de computação, hypervisor, cloudbursting, computação de diversos arrendatários, agrupamento de recursos Evita despesa de capital com hardware e recursos humanos; risco de ROI reduzido; barreiras pequenas à entrada; escala simples e automatizada Eficiência e produtividade de negócios dependem amplamente das capacidades do fornecedor; custo de longo prazo potencialmente maior; centralização requer medidas de segurança novas/diferentes Quando orçamento capital é maior que o orçamento operacional
PaaSCompra de licençaConsome infraestrutura da nuvem; voltado a métodos de gerenciamento de projeto ágeisPilha de soluçãoImplementação de versão simplificadaCentralização requer medidas de segurança novas/diferentesNão disponível
SaaSSoftware como um ativo (empresa e consumidor)SLAs; UI desenvolvida com aplicativos "thin client"; componentes da nuvem; comunicação via APIs; stateless; fracamente acoplado; modular; interoperabilidade semântica Thin client; aplicativo cliente/servidorEvitar gasto de capital com software e recursos de desenvolvimento; risco de ROI reduzido; atualizações simplificadas e iterativas Centralização de dados requer medidas de segurança novas/diferentesNão disponível

Os principais ingredientes de PaaS

Possivelmente, a melhor maneira de entender PaaS é dividi-la em seus principais componentes: plataforma e serviço. Agora, considere o serviço que está sendo fornecido, que é referido como uma pilha de soluções. Dito isso, é lógico supor que os dois principais ingredientes de PaaS são a plataforma de computação e a pilha de soluções.

Para ilustrar esses dois "ingredientes", vamos dar mais uma olhada em suas definições. Uma plataforma de computação, em sua forma mais simples, refere-se a um local no qual software pode ser ativado de forma consistente desde que o código atenda os padrões dessa plataforma. Exemplos comuns de plataformas incluem Windows™, Apple Mac OS X e Linux® para sistemas operacionais; Google Android, Windows Mobile® e Apple iOS para computação remota; e Adobe® AIR™ ou Microsoft® .NET Framework para estruturas de software. É importante lembrar que você não está falando sobre o software em si, mas sobre a plataforma na qual é desenvolvido para executar. Figura 1 fornece uma ilustração para ajudá-lo a entender esse relacionamento.


Figura 1. Uma interpretação gráfica do relacionamento entre classificações de computação em nuvem e os elementos de PaaS

Agora que você entende o conceito de computação de plataforma, vamos descobrir o que é uma pilha de solução . Uma pilha de soluções consiste nos aplicativos que auxiliarão no processo de desenvolvimento, assim como na implementação do aplicativo. Esses aplicativos referem-se ao sistema operacional, os ambientes de tempo de execução, o repositório de controle de origem e qualquer outro middleware necessário.


Escolhendo um provedor

A pilha de soluções também configura as diferentes empresas de PaaS separadamente, algo que será necessário explorar mais detalhadamente antes de tomar a decisão de embarcar no trem de PaaS.

Seguem algumas das questões básicas que você pode querer perguntar antes de se comprometer com um provedor de PaaS específico:

  • Quais estruturas e linguagens suportam? O ideal é que uma PaaS suporte quaisquer estruturas baseadas na linguagem de sua opção para a plataforma.
  • Quantos aplicativos posso criar? A maioria dos provedores de PaaS limita o número de aplicativos que podem ser desenvolvidos com base no plano ou pacote para o qual você se inscreveu. Certifique-se de que o provedor ofereça um plano ou pacote que atenda suas necessidades.
  • Que tipo de conteúdo é permitido? As infraestruturas que suportam ofertas de PaaS geralmente envolvem um conceito conhecido como computação com diversos arrendatários, em que muitos "arrendatários" compartilham "residências" em um único servidor, separados por instâncias de VM gerenciadas por um hypervisor. Um provedor de PaaS pode ter determinadas restrições com relação ao tipo de aplicativo e conteúdo que você planeja hospedar.
  • Que tipos de bancos de dados são suportados? Essa resposta é muito importante se você tiver dados que irá mover como parte de seu aplicativo. Você deve assegurar que o banco de dados que o provedor oferece seja compatível com o formato que deseja usar para importar seus dados.
  • Suporta SSL (HTTPS)? Esse é outro fator importante por razões de segurança. Você terá muitos problemas se planejar em realizar transações por meio de seus aplicativos e descobrir que SSL não é suportado.

Anatomia de PaaS

Agora que chegou ate aqui no aprendizado sobre PaaS, vamos explorar quais recursos devem ser considerados ao comparar provedores de PaaS:

  • Estrutura de desenvolvimento de aplicativo. Uma estrutura de desenvolvimento de aplicativo robusta desenvolvida em tecnologia amplamente usada. O ideal é você estar ciente aqui do potencial de dependência do fornecedor. As plataformas de software livre, como a tecnologia Java™ , são geralmente uma aposta segura com relação a isso.
  • Facilidade de uso. Uma PaaS deve vir com ferramentas WYSIWYG de fácil utilização que têm widgets pré-desenvolvidos, componentes de UI enlatados, ferramentas de arrastar e soltar e suporte para alguns IDEs padrão. Ela deve facilitar o desenvolvimento rápido e iterativo de aplicativos.
  • Ferramentas de modelagem de processo de negócios (BPM). É necessário ter uma estrutura de BPM forte que permita modelar seu processo de negócios e desenvolver o aplicativo em torno dele.
  • Disponibilidade. A plataforma de opção deve estar acessível e disponível em qualquer lugar, a qualquer hora.
  • Escalabilidade. A plataforma deve ser inteligente o suficiente para aproveitar a capacidade elástica de uma infraestrutura subjacente para tratar das cargas às quais o aplicativo será submetido.
  • Segurança. Para combater ameaças de forma efetiva, a plataforma deve abordar coisas como cross-site scripting, injeção de SQL, Negação de Serviço e criptografia de tráfego e tornar isso arraigado no desenvolvimento do aplicativo. Além disso, a plataforma deve suportar recursos de conexão única para que seja possível integrá-la a seus demais aplicativos nas instalações ou quaisquer outros aplicativos na nuvem.
  • Inclusão. A plataforma deve fornecer a capacidade de incluir, embarcar e integrar outros aplicativos desenvolvidos nas mesmas plataformas ou em outras.
  • Portabilidade. A plataforma deve ser agnóstica com relação à infraestrutura subjacente e permitir que as empresas movam o aplicativo de uma IaaS para outra.
  • Ferramentas de portabilidade. Para facilitar uma migração de dados fácil e rápida do aplicativo de legado nas instalações para o aplicativo baseado na nova plataforma, ferramentas de transformação de importação em massa são uma parte necessária do kit de ferramentas da plataforma.
  • API. Para executar tarefas, como autenticação do usuário e armazenamento e recuperação de arquivos (por exemplo, arquivos de aplicativos da Web e ativos) e, às vezes, até mesmo fazer chamadas diretamente a um banco de dados, a plataforma deve ter uma API bem documentada. Isso permitirá que seus negócios tenham a flexibilidade de criar e customizar um aplicativo de software para fazer a interface com a plataforma que atenda as necessidades específicas da empresa.

Gerenciando dependência de fornecedor

Dependência de fornecedor significa que um cliente é dependente de um fornecedor e não pode usar outro sem estar sujeito a custos substanciais devido à troca. A oportunidade de criar um ambiente que suporte dependência de fornecedor surge com tecnologias que são relativamente novas e crescentes em popularidade, exatamente como a computação em nuvem. Os primeiros a adotarem devem estar cientes daquilo em que estão se metendo antes de assinar quaisquer contratos de IaaS e de PaaS de longo prazo agora.

Uma maneira de evitar dependência é por meio de normatização de APIs e tecnologias de plataforma. Organizações, como a Simple Cloud (consulte Recursos), começaram a trabalhar com fornecedores de todos os tamanhos para participarem de um projeto de software livre para trazerem consistência para PHP na nuvem. Para criar a Simple Cloud, a Zend Technologies, a Microsoft, a IBM e a Rackspace se uniram com o objetivo de fornecer uma camada de abstração para diferentes plataformas.

O objetivo da API da Simple Cloud é criar interfaces comuns para armazenamento de arquivos, armazenamento de documentos e serviços de fila simples. Isso permitiria escrever aplicativos com portabilidade entre os principais fornecedores de nuvem. Fornecedores que estão realizando iniciativas como esta para padronizar a computação em nuvem devem ser recomendados por fazerem isso e incentivados a continuarem com esses esforços. Ao escolher um fornecedor para fornecer à sua empresa serviços de PaaS, recomendo muito dar uma boa olhada persistente nos provedores que suportam normatização. Padrões tornam a vida mais fácil para todos nós no setor de TI e, o mais importante, eles economizam dinheiro para os negócios.

Para livrar o mercado de PaaS de oportunidades de dependência de fornecedor, os provedores de serviços que suportam a mesma API subjacente são necessários. A resposta é simples: Provedores de serviços que estão presos em tecnologias proprietárias devem concordar em suportar iniciativas de normatização, como Simple Cloud.


Conclusão

Neste segundo de uma série de artigos em três partes sobre a anatomia da computação em nuvem, você aprendeu como caracterizar e identificar PaaS. Você também aprendeu as questões que devem ser perguntadas ao escolher um provedor de PaaS, assim como as preocupações que deve ter ao escolher um provedor, como dependência de fornecedor. O último artigo desta série mergulhará na anatomia de SaaS e mostrará como caracterizar e identificar o mesmo. Também aprenderá sobre as coisas com as quais precisa tomar cuidado ao escolher um provedor de SaaS para proteger seus negócios. Enquanto isso, consulte a seção Recursos para obter links para informações adicionais sobre PaaS.


Recursos

Aprender

Discutir

  • Participe da comunidade do My developerWorks. Entre em contato com outros usuários do developerWorks, enquanto explora os blogs, fóruns, grupos e wikis orientados ao desenvolvedor.

Sobre o autor

Photo of Dan Orlando

Dan Orlando é um líder reconhecido na comunidade de desenvolvimento corporativo. Como consultor de longa data, o conhecimento de Dan sobre plataformas de tecnologia Adobe é frequentemente requisitado por líderes do segmento de mercado e por publicações como IBM developerWorks, Adobe Developer Connection e Amazon Web Services. Dan também pode ser visto blogando regularmente em DanOrlando.com.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Cloud computing
ArticleID=757005
ArticleTitle=Modelos de Serviços de Computação em Nuvem, Parte 2: Plataforma como Serviço
publish-date=09162011
author1-email=dan@vizmarketing.com
author1-email-cc=