Modelo de Serviço PaaS - Plataforma como Serviço

Neste post iremos discutir um pouco sobre o modelo de Plataforma como Serviço.

O que é

Esse modelo fica entre o IaaS e o SaaS, e proporciona uma plataforma mais robusta e flexível para a utilização de diversos recursos de tecnologia. Provedores de Computação em Nuvem podem oferecer para os profissionais de desenvolvimento um ambiente para que possam desenvolver aplicações, bem
como um ambiente de testes. Assim, as aplicações que serão criadas podem ser disponibilizadas em um tempo razoavelmente curto.


Exemplos

Podemos citar como exemplo o Google App Engine que 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. Oferece plugins para desenvolvimento na Integrated Development Environmen (IDE) Eclipse. Também é possível utilizar um endereço de domínio gratuito (appspot.com) para a aplicação. Outro exemplo é o Windows Azure Platform onde é possível integrar seus aplicativos, desenvolvidos em qualquer linguagem e ferramenta, em Nuvem Pública ao ambiente de TI existente. Permite escalonar o uso de recursos de forma flexível de acordo com suas necessidades. Você paga apenas pelos recursos usados pelo seu aplicativo.


Vantagens

  • Serviços completos para o Ciclo de Vida das aplicações: Os provedores oferecem serviços que contemplam o ciclo de vida completo das aplicações, desde sua construção até a produção efetiva, quando passam a ser entregues como aplicações web distribuídas na internet. Há serviços para “deploy”, testes e armazenamento no mesmo ambiente de desenvolvimento integrado (IDE). É possível ter múltiplos usuários simultaneamente utilizando a mesma IDE.
  • Custos Variáveis: Sendo uma oferta típica de computação em nuvem, também segue o modelo de “pay per use”, onde não há necessidade de comprar software de base (sistemas operacionais e outros), middleware ou mesmo pagar licenças anuais. O pagamento também é com base no uso.
  • Escalabilidade e Elasticidade – Alocação dinâmica: Estes serviços em nuvem também apresentam estas características, proporcionando aos usuários a mesma eficiência e experiência independentemente da carga das aplicações e de seu volume de uso. Os recursos alocados podem ser alterados e ampliados com a frequência necessária, inclusive geograficamente. Isso é importante para o ambiente cada vez mais competitivo das empresas. As equipes de TI precisam ter muita flexibilidade para testar e colocar no ar novos recursos numa aplicação ou simplesmente implementar um novo serviço no mercado. Ou ainda fazer testes num pequeno grupo de clientes antes de tornar os produtos e serviços disponíveis para o mundo.
  • Mobilidade dos Desenvolvedores: A mobilidade dos programadores aumenta, pois tudo é acessível via ferramentas WEB. Muitos desenvolvedores de software ágil buscam o  ambiente de trabalho do PaaS, que ajuda a implementar aplicações que rapidamente são testadas e colocadas em produção. O amplo leque de ferramentas disponíveis torna possível adaptar o ambiente de programação num conceito de software que está sempre em evolução.  Os desenvolvedores podem estar dispersos ou mudarem a vontade seu local de trabalho. Times de desenvolvimento dispersos geograficamente podem facilmente colaborar num mesmo projeto.
  • Casamento perfeito com desenvolvimento ágil de software: As metodologias de desenvolvimento ágil em geral se baseiam em desenvolvimentos interativos e incrementais. O progresso da aplicação demanda muitas interações com a plataforma, que tem que ser redimensionada para os serviços agregados. Além disso, os testes podem rodar temporariamente em plataformas que não afetam a plataforma que está sendo usada para a produção, até que se tenha certeza que a nova versão pode de fato entrar em produção. Isso acelera a construção e a implantação de novas aplicações.
  • Diminuição de Erros por Descuidos: Hoje em dia a pressão dos usuários sobre os desenvolvedores é muito forte, exigindo que mudanças sejam feitas e completadas rapidamente. Essa pressão sobre as equipes de desenvolvimento, que também gostariam de terminar tudo rapidamente, acaba provocando algumas imperfeições com relação aos softwares e à infraestrutura que juntos suportam as aplicações finais. Usando PaaS, essas imperfeições diminuem ou desaparecem uma vez que  a plataforma pode ser totalmente testada. Desenvolvedores não ficam perdendo tempo com middleware e outras tarefas entediantes que potencializam erros.

Desvantagens

  • Maturidade do Padrão PaaS: Se analisar os 3 tipos de ofertas clássicas de computação em nuvem (IaaS, PaaS e SaaS), veremos que PaaS é o menos maduro no mercado. O SaaS tem sido adotado há anos pelas empresas para rodar fora de casa funções que não são core para o negócio, como CRM, folha de pagamento, contabilidade fiscal, etc. O SaaS está ainda no estágio inicial de maturidade, mas teve uma taxa de adoção muito elevada nos últimos anos, por empresas de todos os portes. Já o PaaS teve pouca penetração nas médias e especialmente nas grandes empresas.
  • Ausência de recursos operacionais: O fato da adoção em grandes empresas ser ainda muito pequena, as vezes restrita a pequenos times de desenvolvimento, talvez explique a ausência de alguns recursos que motivariam seu emprego em proporções muito maiores na área de produção – e não de desenvolvimento. A promessa original do PaaS foi tirar da frente dos desenvolvedores tudo que não fosse puramente escrever códigos de suas aplicações, deixando de lado infraestrutura e softwares para as operações. Empresas iniciantes (startups) e pequenas empresas amaram o conceito porque poderiam rapidamente construir e instalar suas aplicações com pouca gente, baixa complexidade e sem ter que investir e gerenciar um data center próprio.
  • Segurança dos Dados: Como ocorre com as outras soluções de computação em nuvem, grande parte das empresas ainda tem baixa confiança no nível de segurança que é de fato oferecido pelos provedores de PaaS. Muitas empresas ainda são céticas e não conseguem sequer imaginar suas aplicações fora da empresa, em uma outra empresa. Algumas empresas privadas e mesmo públicas precisam assegurar níveis de governança de TI muito altos com relação a privacidade, segurança e retenção de dados – muito antes de se decidirem em favor do uso efetivo dos serviços de PaaS.
  • Flexibilidade “Limitada”: As soluções de PaaS ainda não tem toda a flexibilidade que as soluções de IaaS oferecem. Os contratantes de PaaS não podem criar e apagar múltiplas máquinas virtuais com total facilidade. Adicionalmente, se compararmos com as ofertas de SaaS (Software as a Service), PaaS não é um produto tão completo quanto é o SaaS. Porque a empresa precisa ainda colocar um pequeno esforço para projetar, criar e testar os programas antes de serem liberados para a produção e instalados para os usuários finais
  • Integração com outros sistemas rodando “in-house”: As vezes não é simples migrar uma aplicação para PaaS porque ela se relaciona ou está fortemente acoplada a outras aplicações da empresa.  Essa integração da aplicação em nuvem com sistemas ainda rodando no data-center próprio pode tornar os trabalhos bastante complexos ou exigir uma outra estratégia de migração.
  • Cultura de TI na empresa: De todas as barreiras, talvez esta seja a maior. O fato da computação em nuvem potencializar agilidade e flexibilidade nas empresas não significa que ela as torna ágeis e flexíveis. Não existe essa relação de causa e efeito. Abraçar soluções da nuvem sem mudar práticas e processos tradicionais de TI pode levar, isso sim, a retornos sobre os investimentos que são irrisórios. Esta questão pode ser melhor entendida se admitirmos que nas empresas existe um gap natural de expectativas entre pessoas de desenvolvimento e pessoas de operações. As expectativas dessas duas equipes, principalmente em empresas médias e grandes, não estão alinhadas. Os desenvolvedores querem sair da ideia para o código, do código para a produção, o mais rapidamente possível. O pessoal de operações quer implantações  que sejam estáveis e duradouras, tanto quanto possível. Desenvolvedores contam com mudanças rápidas. Operadores contam com estabilidade e um mínimo de mudanças.

Referências

O que é PaaS? Como começar a usar?
https://www.opus-software.com.br/o-que-e-paas-como-comecar-a-usar/

Computação em Nuvem - Henrique Ruschel, Mariana Susan Zanotto, Wélton Costa da Mota
http://www.ppgia.pucpr.br/~jamhour/RSS/TCCRSS08B/Welton%20Costa%20da%20Mota%20-%20Artigo.pdf

Comentários

Postagens mais visitadas