# Plataforma como serviço

PaaS — Platform as a Service — em computação, consiste no serviço propriamente dito de hospedagem e implementação de hardware e software, que é usado para prover aplicações (software como serviço) por meio da Internet. Oferece a possibilidade de substituir o paradigma de aplicações tradicional, no qual programas de computador são instalados na máquina do usuário e ficam assim muito mais restritos às configurações de hardware e software disponíveis nela, principalmente ao sistema operacional.
Plataforma como serviço é uma das principais formas de contratar a Computação em Nuvem. Considerada um meio termo entre a IaaS - infraestrutura como serviço e SaaS - software como serviço, a plataforma como serviço oferece as licenças de software, infraestrutura, manutenção, sistemas de comunicação e tudo o mais que for necessário para a publicação de um aplicativo/site. A liberdade de configuração e utilização vai depender do fornecedor de PaaS - se for mais ou menos flexível no quanto o usuário pode configurar da plataforma.

## Vantagens

O modelo de PaaS é considerado benéfico para desenvolvedores, já que “é uma boa maneira de o profissional dedicar-se, de fato, ao trabalho de construção de aplicativos, deixando o restante com o fornecedor, como gerenciamento, licenças de uso, atualização e manutenção da infraestrutura, entre outras agruras, com a vantagem da redução de custos da operação”. Para projetos em que a equipe é reduzida, o uso de PaaS é apontado como uma boa solução, pois permite o foco em desenvolvimento, sem a necessidade de gerenciar, fazer a manutenção e garantir a segurança do servidor, optando por uma plataforma pronta. Como é característica de soluções Cloud Computing, nas soluções de PaaS é possível ajustar o consumo de recursos de acordo com a demanda, assim como a cobrança também é feita por demanda.

## Desvantagens

As possíveis desvantagens percebidas de vários provedores de PaaS, conforme citadas por seus usuários, incluem aumento de preços em escalas maiores, falta de recursos operacionais, controle reduzido e os caprichos dos sistemas de roteamento de tráfego.</ref>

## Implementação

PaaS facilita a implementação, pois reduz o custo, a complexidade de instalação e de gerenciamento de requisitos de hardware e software (do desenvolvedor da aplicação e também de cada usuário final).
O fornecedor da plataforma de computação em nuvem, com o objetivo de diminuir custo e complexidade para os desenvolvedores de aplicações, normalmente incluem em seu produto que é vendido como serviço:
* sistema operacional
* ambiente de execução de ferramentas de programação
* sistemas gerenciadores de base de dados
* software servidor web
* processo de implantação de aplicações facilitado e documentado
Algumas dessas plataformas permitem o escalonamento automático dos recursos computacionais, ou da capacidade de armazenamento, de forma a atender aos requisitos técnicos da aplicação que é implantada pelo cliente desenvolvedor de software.

## Tipos
### Público, privado e híbrido (PAAS)

Existem vários tipos de PaaS, incluindo público, privado e híbrido. A PaaS foi originalmente planejada para aplicativos em serviços de nuvem pública, antes de ser expandida para incluir opções privadas e híbridas.
A PaaS pública é derivada do software como serviço (SaaS), e está situada na computação em nuvem entre SaaS e infraestrutura como serviço (IaaS). SaaS é um software que está hospedado na nuvem, para que não ocupe disco rígido do computador do usuário ou dos servidores de uma empresa. O IaaS fornece hardware virtual de um provedor com escalabilidade ajustável. Com IaaS, o usuário ainda tem que gerenciar o servidor, enquanto que com PaaS o gerenciamento do servidor é feito pelo provedor.
Normalmente, uma PaaS privada pode ser baixada e instalada no data centerlocal de uma empresa ou em uma nuvem pública. Quando o software é instalado em uma ou mais máquinas, a PaaS privada organiza os componentes do aplicativo e do banco de dados em uma única plataforma de hospedagem. Os fornecedores de PaaS privados incluem o Apprenda , que começou na plataforma Microsoft .NET antes de lançar um Java PaaS; Red Hat 's OpenShift e Pivotal Cloud Foundry .
A PaaS híbrida é tipicamente uma implantação que consiste em uma combinação de implantações públicas e privadas.

#### Plataforma de comunicação como serviço

Uma plataforma de comunicações como serviço (CPaaS) é uma plataforma baseada em nuvem que permite aos desenvolvedores adicionar recursos de comunicação em tempo real (voz, vídeo e mensagens) em seus próprios aplicativos sem construir infraestrutura de back-end e interfaces. Além disso, o CPaaS e as especificações de hardware e software são projetados especificamente para oferecer suporte a aplicativos de comunicações (tele). Esses aplicativos e seu uso são muito mais sensíveis a jitter, latência e perdas de pacotes. PABX hospedado, redes celulares, aplicativos (quase em tempo real) normalmente são implantados em plataformas CPaaS.

### Plataforma móvel como serviço

Iniciado em 2012, o PaaS móvel (mPaaS) fornece recursos de desenvolvimento para designers e desenvolvedores de aplicativos móveis. O Yankee Group identificou o mPaaS como um de seus temas para 2014.

### Abrir PaaS

Open PaaS não inclui hospedagem, mas fornece software de código aberto que permite que um provedor de PaaS execute aplicativos em um ambiente de código aberto, como o Google App Engine. Algumas plataformas abertas permitem que o desenvolvedor use qualquer linguagem de programação, banco de dados, sistema operacional ou servidor para implantar seus aplicativos.

## Exemplos de Soluções PaaS

* Heroku
* Windows Azure Cloud
* RedHat OpenShift
* AWS
* AppFog
* IBM Bluemix
* Tsuru