Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

INFRAESTRUTURA 
DE TI
Hygo Sousa de Oliveira
PaaS (plataforma 
como serviço)
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
 � Definir PaaS.
 � Especificar o funcionamento, as abstrações e os modos de cobrança.
 � Analisar a usabilidade, as vantagens, as desvantagens, os casos de uso 
e a relação com a infraestrutura como serviço (IaaS).
Introdução
Cada vez mais comumente, as empresas de diferentes ramos investem em 
infraestrutura de redes, o que se justifica, por exemplo, pelos processos 
de negócio entre as organizações, em que se apropriam continuamente 
de aplicações que processam e fornecem informações fundamentais 
para seu pleno funcionamento. Nesse contexto, o maior responsável 
pela fluidez do fluxo de informações entre empresas é a tecnologia da 
informação (TI), que permite que organizações trabalhem em conjunto 
por um objetivo a fim de entregarem aos seus clientes um valor agregado 
muito maior em comparação ao que seria possível com abordagens 
isoladas sem a utilização da TI.
Assim, é natural expor formas de aplicações na chamada computação 
em nuvem (cloud computing), que nos fornece três modelos de serviço, 
entre os quais enfatizaremos o PaaS (modelo de plataforma como serviço). 
Neste capítulo, você aprenderá sobre o conceito de PaaS, entenderá 
como especificar o funcionamento de uma plataforma, bem como as 
abstrações e os modelos de cobrança, além de identificar as diferenças 
para o modelo de serviço de infraestrutura como serviço (IaaS).
1 Principais conceitos de PaaS
De modo geral, o serviço em nuvem fornece recursos computacionais, desenvol-
vimento de plataformas e aplicações em forma de serviço para usuários finais. 
Segundo Chandrasekaran (2014), o modelo computacional em nuvem possibilita 
que os usuários acessem e compartilhem recursos de rede, armazenamento, 
banco de dados e aplicações sob demanda, sem que haja a necessidade de 
pagar por eles de modo permanente, caso não exista esse desejo. O serviço 
de plataforma como serviço (do inglês, platform as a service — PaaS) foi 
definido pelo Instituto Nacional de Padrões e Tecnologias (National Institute 
of Standards and Technology — NIST) como um modelo de serviço básico, 
assim como as tecnologias de IaaS (infraestrutura como serviço) e SaaS 
(software como serviço).
Segundo Mahmood (2013), o PaaS provém plataformas para desenvolver 
aplicações sem que seja preciso instalar qualquer ferramenta de desenvolvi-
mento e bibliotecas. Assim, conseguem dispor de desenvolvedores relacionados 
a plataformas, incluindo ambientação, compreendendo o ciclo de desenvolvi-
mento, teste e implementação, e até mesmo hospedagem de aplicações web 
como um serviço entregue por uma base em nuvem (ANTONOPOULOS; 
GILLAM, 2010). A Figura 1 apresenta as características que compõem a 
PaaS, em que se pode notar três entidades, de cima para baixo, IaaS, PaaS 
e a interface de acesso ao PaaS, além de outros elementos, como escalabili-
dade, gerenciamento de recursos, gerenciamento de aplicação e qualidade de 
serviço (QoS). A plataforma na nuvem oferece um modelo de computação, 
armazenamento e comunicação para as aplicações acessado pelos clientes via 
navegador, por exemplo, AppEngine do Google, AZURE da Microsoft, Force.
com, Red Hat OpenShift, Heroku e Engine Yard.
PaaS (plataforma como serviço)2
Figura 1. Modelo de referência da plataforma como serviço (PaaS).
Fonte: Adaptada de Buyya, Vecchiola e Selvi (2013).
Interface web
Núcleo de Paas
API de programação/bibliotecas
Gerenciamento
de usuário
Gerenciamento
de aplicação
Tempo de
execução
Escalabilidade
Gerenciamento
de recursos
Serviços web, portais, API de REST
QoS/Gerenciamento sobre
nível de serviço e taxas
Provedor de PaasInterface web
Características do PaaS
Conforme Chandrasekaran (2014), como a forma de desenvolvimento em 
PaaS se diferencia significativamente do método tradicional, existem algumas 
características que tornam único o uso do PaaS, como os listados a seguir.
Tudo em um
O modelo PaaS fornece todas as ferramentas necessárias para desenvolvimento, 
teste, implementação, hospedagem e contínua aplicação no mesmo ambiente 
integrado de desenvolvimento (IDE), que pode variar conforme a linguagem 
de programação selecionada para a operação.
3PaaS (plataforma como serviço)
Acesso web para desenvolvimento de plataformas
O acesso web pode ser realizado via navegador, o que se torna benéfico pela 
utilização da interface web, a qual contribui na tarefa dos desenvolvedores 
de criar, modificar, testar e implementar diferentes aplicações sobre a mesma 
plataforma.
Acesso off-line
Quando não há acesso à internet para sincronização do projeto, os desenvolve-
dores devem ter permissão para trabalhar off-line. Para habilitá-lo, alguns dos 
provedores de PaaS permitem que o desenvolvedor sincronize seu IDE local 
com os serviços de PaaS, como na utilização de SDK (kit de desenvolvimento 
de software) ou outras ferramentas.
Escalabilidade
Diz respeito à flexibilidade ou disponibilidade de recursos, capaz de trazer um 
recurso computacional mais amplo conforme a demanda. Serviços de PaaS 
fornecem escalabilidade interna para uma aplicação desenvolvida usando 
qualquer PaaS específico, o que garante que a aplicação consiga lidar com 
cargas variadas com eficiência.
Colaboração
Em sua maioria, os serviços PaaS fornecem suporte para o desenvolvimento 
colaborativo. Para permitir a colaboração entre desenvolvedores, a maioria 
dos provedores de PaaS oferece ferramentas para o planejamento e a comu-
nicação do projeto.
Ferramentas clientes
Com o objetivo de acelerar o desenvolvimento, os provedores de PaaS fornecem 
várias ferramentas de cliente, como as de CLI, CLI da web, UI da web, API 
REST e IDE, cujo critério de escolha é de responsabilidade do desenvolvedor. 
Ademais, essas ferramentas clientes conseguem lidar com o gerenciamento 
de cobrança e assinatura.
PaaS (plataforma como serviço)4
Quando mencionamos sobre participação off-line na produção de uma aplicação, 
é importante ressaltar que, embora o PaaS permita o controle de versionamento, 
essa tarefa está atribuída ao tipo de módulo de SaaS, como o exemplo do sistema de 
colaboração de desenvolvimento Git, com a finalidade de controlar o versionamento de 
código. A ideia do PaaS consiste em oferecer a implementação do software/ferramenta 
como um todo. 
2 Funcionamento, abstrações e 
modos de cobrança 
Um dos principais diferenciais do desenvolvimento de aplicações em PaaS 
para o modo clássico em stand-alone, define-se pelo desenvolvimento a ser 
realizado de modo on-line em data centers, sem a necessidade de entregar 
o desenvolvimento em arquivo executável, além de programas com base em 
licença de uso. Como visto na Figura 2, os desenvolvedores podem consumir 
os serviços diretamente pela internet. Perceba que podemos explorar o PaaS de 
duas maneiras, como provedor (do inglês, provider) e consumidor (do inglês, 
consumer). O provedor tem a responsabilidade de disponibilizar os recursos, 
tanto de hardware quanto de ferramentas/bibliotecas para manipular uma 
linguagem de programação para o desenvolvimento.
Uma das formas de compartilhar hardware de modo compartilhado é 
por meio de máquinas virtuais (VM), em que o hardware normalmente é 
emulado. Logo, resta ao cliente apenas consumir esses recursos, por meio de 
uma interface web, geralmente via navegador web.
5PaaS (plataforma como serviço)
Figura 2. Visão geral sobre o modelo PaaS.
Fonte: Adaptada de Chandrasekaran (2014).
Camada de balanceamento
Camada de virtualização
Plataforma virtual de
desenvolvimento/teste
Plataforma de desenvolvimento/teste
(tempo de execução, frameworks,
banco de dados, ferramenta de testes, etc.)
(tempo de execução, frameworks,
banco de dados, ferramenta de testes, etc.)
Provedores de PaaS
Provedores de PaaS
Consumidor de PaaS
(desenvolvedor de aplicação)
Consumidores
Provedores
Provedores
De acordo com Chandrasekaran (2014),um provedor de PaaS hospeda 
hardware e software em sua própria infraestrutura, dispensando os desen-
volvedores de realizarem a instalação de hardware e software internos para 
o desenvolvimento ou a execução de aplicações. Assim, o PaaS possibilita 
que os desenvolvedores criem e implementem seus aplicativos de maneira on-
-line, e tanto os desenvolvedores quanto os consumidores de PaaS podem usar 
linguagem em tempo de execução, aplicativos frameworks, bancos de dados, 
filas de mensagens, ferramentas de teste e ferramentas de implantação como 
um serviço pela internet. Geralmente, os provedores típicos de PaaS fornecem 
linguagens de programação como Java e C#, aplicações de frameworks e 
bancos de dados como PostgreSQL (Figura 3).
PaaS (plataforma como serviço)6
Figura 3. Serviços fornecidos por provedores de PaaS.
Fonte: Adaptada de Chandrasekaran (2014).
Linguagens
de programação
Aplicações de
frameworks
Outras
ferramentasBanco de dados
PaaS
Esses serviços fornecidos por provedores PaaS também incluem colabora-
ção da equipe de desenvolvimento, design e desenvolvimento de aplicativos, 
teste e implantação de aplicativos, integração de serviços da web, segurança 
da informação e integração de banco de dados.
Abstrações
De acordo com Buyya, Vecchiola e Selvi (2013), as soluções PaaS são dife-
renciadas pelo alto nível de abstração que fornecem, o que significa dizer que 
toda a parte de infraestrutura de software e hardware não é apresentada em 
detalhes para os usuários, pois o foco do PaaS está nos aplicativos que a nuvem 
suporta, ou seja, as soluções PaaS disponibilizam uma maneira de implantar e 
gerenciar aplicativos na nuvem, em vez de várias VM que seriam necessárias 
para criar e configurar toda a infraestrutura de desenvolvimento. O objetivo 
dos provedores PaaS consiste em introduzir uma camada de abstração entre 
a infraestrutura e as várias instruções sobrepostas durante a execução de 
entrega de aplicativos, fornecendo uma plataforma na qual os desenvolvedores 
consigam implantar o aplicativo de maneira contínua e eficiente nos ambientes 
de desenvolvimento.
7PaaS (plataforma como serviço)
Os provedores PaaS permitem que os desenvolvedores não se preocupem 
com infraestrutura de software nem hardware, pois as VM, o data center 
e a rede são abstraídos dos usuários para que os desenvolvedores possam 
se concentrem nos objetivos de desenvolver, testar e fornecer aplicativos e 
serviços. Conforme Sharma (2017), as plataformas PaaS fornecem ambientes 
bem definidos, arquitetados, contínuos, sempre disponíveis, resilientes e 
escalonáveis, ajustados para as necessidades específicas de seus aplicativos 
e serviços.
Modos de cobrança
Geralmente, os usuários pagam pelo PaaS conforme o uso, no entanto alguns 
provedores cobram uma taxa mensal fixa pelo acesso à plataforma e aos 
seus aplicativos, em um modelo de pagamento baseado com frequência nas 
especificações do servidor, do número de projetos e do tempo de utilização.
O faturamento e a medição de PaaS são realizados de acordo com o uso 
dos usuários, pois os componentes da plataforma se diferenciam quanto à 
medida de uso de nível agregado e das instâncias (RAJ; RAMAN, 2018). 
Assim, parâmetros como a utilização de CPU, o uso do disco por transação 
e a largura de banda da rede podem determinar o custo do PaaS, sendo os 
principais parâmetros que definem o seu faturamento (RAJ; RAMAN, 2018):
 � uso da CPU por hora;
 � disponibilidade de serviço;
 � cobrança por serviço utilizado;
 � largura de banda da rede de entrada e saída.
Segundo Raj e Raman (2018), uma das métricas mais usadas para definir 
a cobrança do PaaS é a largura de banda consumida, no entanto existe um 
problema em relação a esse parâmetro: é difícil calcular exatamente qual 
usuário da transação está consumindo uma quantidade específica de recursos 
de utilização da CPU por solicitação. Uma alternativa mais eficaz de cobrança 
e medição consiste em calcular a quantidade de dados armazenados que um 
usuário específico está consumindo e realizar a cobrança adequada do ser-
viço. De acordo com Raj e Raman (2018), essa técnica é eficiente, pois pode 
ser empregada no armazenamento como serviço para acompanhar os dados 
armazenados nos servidores.
PaaS (plataforma como serviço)8
Ainda, existem plataformas mais simples, cujo único critério reside no fato 
de ter requisitos de códigos seguros e sem transações demoradas na CPU (RAJ; 
RAMAN, 2018). Levando esses fatores em consideração, geralmente há dois 
modos de cobrança do PaaS: conforme o uso de cada usuário e os serviços 
utilizados; e a partir de uma taxa mensal fixa pelo acesso a plataforma e seus 
aplicativos, independentemente da quantidade de serviço utilizada.
3 Usabilidade e casos de uso, 
vantagens, desvantagens e a relação com IaaS
Normalmente, plataformas em nuvem oferecem modelos de computação, 
armazenamento e comunicação para as aplicações contidas nelas. São exemplos 
de aplicações em PaaS a App Engine do Google, a Azure da Microsoft e o 
AWS Elastic Beanstalk da Amazon.
Usabilidade e exemplos de uso
Para aprofundarmos um pouco mais quanto à usabilidade, apresentando exem-
plos de utilização, abordaremos as plataformas App Engine, do Google, e o 
sistema Azure, da Microsoft. 
A App Engine permite que o usuário escreva e faça deployment de suas 
aplicações na mesma infraestrutura dos aplicativos da companhia. Como o 
Google dispõe de uma estrutura localizada em diversos pontos do planeta, 
é natural pensar que uma aplicação sob seus servidores não esteja armazenada 
ou sendo executada em apenas um de seus servidores de hospedagem (sim, 
isso acontece). As aplicações armazenadas executam em sistemas de ambiente 
distribuídos. Em resumo, o processo de execução da aplicação pode estar 
dividido e distribuído em vários servidores, o que enfatiza o poder do Google 
em oferecer escalabilidade.
Já o sistema Azure é desenvolvido como um PaaS primário, no qual os 
usuários gerenciam suas hospedagens e a escala das aplicações web em data 
centers da corporação, o que inclui algumas características do módulo de 
IaaS. Assim como o Google, a Azure fornece escalabilidade, além de balance-
amento de carga e vários serviços de suporte, como identidade e autenticação, 
criptografia de mensagens, monitoramento e gerenciamento. O sistema da 
Azure utiliza uma combinação de tecnologia web, como REST, HTTP e XML, 
integrada à ferramenta Visual Studio, o que possibilita que os desenvolvedores 
criem serviços que contenham a framework .NET.
9PaaS (plataforma como serviço)
Plataformas com código fonte aberto também têm espaço em meio a gigantes da 
tecnologia, como as que permitem a construção de sua própria versão de um PaaS:
 � o projeto denominado Kell usa a ferramenta de Kubernetes como base para um 
PaaS auto-hospedado e personalizado;
 � o projeto de Dokku se baseia no Docker e dispõe de ganchos para plug-ins para 
estender o pequeno núcleo do projeto e personalizar as implantações para seus 
aplicativos;
 � o projeto de Convox Rack é um PaaS de código aberto projetado para ser execu-
tado com base nos serviços da AWS, da Amazon.
Vantagens e desvantagens
Segundo Chandrasekaran (2014), a principal vantagem em utilizar PaaS reside 
em sua discrição em relação às complexidades encontradas para sua manu-
tenção, assim como sua infraestrutura, o que possibilita ao desenvolvedor 
se concentrar na tarefa proposta de desenvolvimento. Outras vantagens e 
desvantagens da utilização do PaaS estão descritas no Quadro 1.
Vantagem Desvantagem
Fácil desenvolvimento e implan-
tação (deployment): o PaaS fornece 
as ferramentas de desenvolvimento 
e teste necessárias para desenvolver, 
testar e implantar software em um 
único local. Após o desenvolvimento, 
a maioria dos serviços de PaaS execu-
tará automaticamente o processo de 
teste e implantação.
Bloqueio de fornecedor: a principal 
razão para o bloqueio de fornecedor 
consiste na falta de padrões, já que 
não existe um padrão comum entrediferentes provedores de PaaS. Outro 
motivo são as tecnologias proprietá-
rias usadas pelos provedores de PaaS, 
que impedem a migração dos aplica-
tivos de um provedor PaaS a outro.
Quadro 1. Vantagens e desvantagens no uso de PaaS
(Continua)
PaaS (plataforma como serviço)10
Vantagem Desvantagem
Custo reduzido: não é necessária a 
compra de ferramentas de desenvol-
vimento e teste se os serviços de PaaS 
forem selecionados. O modelo permite 
que os desenvolvedores aluguem o 
software, plataformas de desenvol-
vimento e ferramentas de teste para 
desenvolver, criar e implantar o aplica-
tivo. Além disso, não exige uma infra-
estrutura de ponta para desenvolver 
o aplicativo, reduzindo, assim, o custo 
total de propriedade da empresa de 
desenvolvimento.
Segurança: um dos principais 
problemas encontrados nos 
provedores de PaaS. Nesse sistema, 
normalmente os dados são 
armazenados em servidores de 
terceiros. Ao selecionar o provedor de 
PaaS, o desenvolvedor deve revisar 
as políticas de uso, de conformidade 
e de segurança do provedor de 
PaaS em relação aos seus próprios 
requisitos de segurança
Suporte a desenvolvimento ágil: 
a maioria dos aplicativos 
desenvolvidos na nova geração usa 
metodologias ágeis, cenário em que 
os provedores de PaaS se destacam.
Pouca flexibilidade: infelizmente, 
os provedores de PaaS não fornecem 
aos desenvolvedores sua própria pilha 
de ferramentas. Em sua maioria, é 
oferecido suporte a várias linguagens 
de programação, além de serviços 
a banco de dados e ferramentas de 
suporte à programação
Trabalho em conjunto: os serviços 
PaaS oferecem suporte a desenvolve-
dores de diferentes locais para traba-
lharem juntos no mesmo projeto.
Fácil uso: alguns desenvolvedores 
podem não estar familiarizados com as 
interfaces fornecidas pela plataforma 
de desenvolvimento de aplicativos, o 
que dificulta o trabalho. Contudo, o 
PaaS fornece uma ampla variedade de 
ferramentas clientes, como CLI, CLI da 
web, UI da web, API e IDE.
Quadro 1. Vantagens e desvantagens no uso de PaaS
(Continuação)
(Continua)
11PaaS (plataforma como serviço)
Vantagem Desvantagem
Despesas de manutenção: 
em aplicativos locais, empresas de 
desenvolvimento ou fornecedores de 
software são responsáveis por manter 
o hardware subjacente, criando a 
necessidade de ter administradores 
qualificados para manter os servido-
res. Essa sobrecarga é eliminada pelos 
serviços PaaS, pois a infraestrutura 
subjacente é mantida pelos provedo-
res de infraestrutura. Isso dá liberdade 
aos desenvolvedores para trabalhar 
no desenvolvimento de aplicativos.
Aplicativos escaláveis: a maioria 
dos aplicativos desenvolvidos usando 
serviços de PaaS é de web ou SaaS, 
com boa flexibilidade de acesso a re-
cursos extras (conforme solicitado). Os 
serviços PaaS fornecem escalabilidade 
integrada ao aplicativo desenvolvido 
usando a própria plataforma de PaaS.
Quadro 1. Vantagens e desvantagens no uso de PaaS
(Continuação)
Diferenças entre IaaS e PaaS
Embora o PaaS integre o modelo IaaS, os desenvolvedores não precisam se 
preocupar quanto aos componentes de infraestrutura (p. ex., hardware, inter-
net). Conforme Buyya, Vecchiola e Selvi (2013), em diversos provedores de 
PaaS, normalmente são inclusos pacotes de infraestrutura, e uma das maiores 
preocupações sobre soluções PaaS se dá pelo bloqueio desse serviço pelos 
fornecedores, o que não acontece normalmente em IaaS. Em sua maioria, 
fornecedores de IaaS provêm servidores que podem ser altamente customi-
zados em relação à pilha de software instalados. Já em ambientes de PaaS, 
os provedores entregam uma plataforma para desenvolvimento de aplicações 
com um conjunto de bibliotecas e API bem definidas, embora possam ter um 
número muito específico sobre a quantidade de execuções, o que pode se tornar 
PaaS (plataforma como serviço)12
um desconforto caso o desenvolvedor não disponha de muitos recursos para 
manter ou ampliar o seu pacote.
Ainda, do ponto de vista financeiro, Buyya, Vecchiola e Selvi (2013) 
ressaltam que, embora as soluções IaaS permitam mudar o custo do capital 
para os custos operacionais por meio da terceirização, as soluções PaaS pos-
sibilitam conhecer o custo de desenvolvimento, implantação e gerenciamento 
de aplicativos, o que contribui no gerenciamento de redução dos riscos, visto 
a constante atualização das tecnologias, transferindo o custo de atualização 
da tecnologia para o fornecedor de PaaS.
ANTONOPOULOS, N.; GILLAM, L. (ed.). Cloud computing: principles, systems and ap-
plications. London: Springer, 2010. 382 p. (Computer communications and networks).
BUYYA, R.; VECCHIOLA, C.; SELVI, S. T. Mastering cloud computing: foundations and 
applications programming. Waltham: Morgan Kaufmann, 2013. 468 p.
CHANDRASEKARAN, K. Essentials of cloud computing. Boca Raton: CRC Press, 2014. 407 p.
MAHMOOD, Z. (ed.). Cloud computing: methods and practical approaches. London: 
Springer, 2013. 347 p.
RAJ, P.; RAMAN, A. Software-defined cloud centers: operational and management tech-
nologies and tools. London: Springer, 2018. 242 p.
SHARMA, S. The DevOps adoption playbook: a guide to adopting devops in a multi-
-speed IT enterprise. New York: Wiley, 2017. 416 p.
13PaaS (plataforma como serviço)

Mais conteúdos dessa disciplina