Por onde começar usar PaaS: conheça as vantagens e benefícios e as principais barreiras para começar a usar o PaaS.

 

Este artigo refere-se ao Capítulo 10 do livro “Computação em Nuvem para Gestores de Negócios”

PaaS, Plataform as a Service, é o segundo modelo de serviços clássico de computação em nuvem.

O que a empresa cliente gerencia, unicamente? Suas aplicações e seus dados, que rodam nos servidores remotos dos provedores, que cuidam de todo resto: infraestrutura, serviços de rede, sistemas operacionais, etc.

Há hoje em dia dezenas de provedores.

Alguns permitem a personalização de programas de software existentes para ambientes de desenvolvimento e “deployment” (instalação). Muito provedores, como a Microsoft, comercializam ambientes com “add-ons” para desenvolvimento em conjunto com seus programas de software.

 

Por onde começar usar IaaS

 

Se quiser ter uma ideia rápida, basta consultar um site de comparação de provedores e será possível encontrar rapidamente aqueles que mais se adequam às suas necessidades.[1]

Os sistemas dos clientes, que rodam na nuvem, nesse caso, vão de programas de contabilidade padrão até softwares desenvolvidos pela própria empresa.

Alguns dos benefícios e vantagens no uso de PaaS são iguais aos dos demais modelos de serviços, IaaS e SaaS, mas vale a pena reforçar.

 

Vantagens básicas e Benefícios do PaaS

 

A principal vantagem do PaaS é facilitar o desenvolvimento de aplicações elásticas e escaláveis. São dois os maiores benefícios do PaaS: redução de custos e aumento da velocidade de desenvolvimento de aplicações e “deployment” (disponibilização dessas aplicações). Ganha-se agilidade com flexibilidade. Do ponto de vista do negócio, os benefícios do PaaS são claros:

  • Aumento do foco no negócio e alavancagem do empreendedorismo interno: muitas empresas não querem gastar seu tempo e dinheiro com manutenção e seleção de sistemas, elas querem é realmente focar (ainda mais de perto) o seu negócio principal (“core”). PaaS viabiliza este objetivo e liberta os desenvolvedores de TI para fazer experiências com os recursos de computação em nuvem, buscando soluções novas e criativas que podem ajudar a empresa a fazer ainda mais diferença no seu mercado de atuação. Ou seja, TI passa a ter um papel de agente de mudança (versus manutenção do status quo).
  • Aceleração do tempo de ida a mercado (“time to market”): as equipes de desenvolvimento ficam focadas na aplicação final e não em software de base e de testes, muito menos em questões de hardware, rede, segurança, etc.
  • A empresa torna-se mais flexível e rápida para reagir e acompanhar as mudanças e as oportunidade de mercado: é mais rápido testar e implantar aplicações. É possível testar diferentes configurações, usar múltiplas máquinas em diferentes localidades, rodar testes de “stress” e medir desempenhos, compatibilidades e tempo de resposta – duma forma que seria praticamente impossível num data center próprio. Resultado prático: maior rapidez no teste e na instalação das aplicações.
  • Menos custos e menos investimentos: a empresa deixa de ter custos e investimentos que tipicamente são necessários quando se faz desenvolvimento e deployment usando o próprio data center. A diminuição de investimentos em hardware, softwares de base, redes etc., libera capital da empresa, tornando-a potencialmente mais competitiva.
  • Redução de pessoal de infraestrutura e de operação: É possível ter um número menor de pessoal de TI dedicado a funções de suporte e infraestrutura.

 

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 o desenvolvimento 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, porque 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 a um conceito de software que está sempre em evolução. Os desenvolvedores podem estar dispersos ou mudarem à 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 nas equipes de desenvolvimento, que também gostariam de terminar tudo rapidamente, acaba implicando em alguns descuidos com relação aos softwares e à infraestrutura que juntos suportam as aplicações finais. Usando PaaS, esses descuidos diminuem ou desaparecem. Desenvolvedores não ficam perdendo tempo com middleware e outras tarefas entediantes que potencializam erros.

 

Redução no TCO (“Total Cost of Ownership”)

Como não há necessidade de comprar todos os sistemas, plataformas, ferramentas e kits necessários para construir, testar e rodar as aplicações finais (pois tudo é alugado com base no tempo de uso), isso também muda o modelo de investimentos (CAPEX) para despesas operacionais (OPEX), liberando capital para investimentos mais nobres. Exemplos:

  • Overhead de servidores e armazenamento”: escrever e testar novas aplicações é uma atividade que naturalmente consome muitos recursos computacionais e espaço extra de armazenamento de dados. As condições de teste chegam a ser muito mais severas que as condições de uso efetivo. Quando os testes terminam, os equipamentos do data center próprio entram em hibernação e, mesmo que não estejam sendo usados, requerem ainda gastos com energia, refrigeração e mesmo manutenção. Resultado: a empresa gasta um dinheiro significativo em recursos que não estão sendo utilizados. Com o uso de PaaS, esses recursos extras desaparecem. Ferramentas de teste também podem ser alugadas – só gerando custos nos períodos de teste.
  • Recursos de Banda de Comunicação/Rede: se feitos num data center próprio, os processos de deployment e testes podem consumir todos os recursos de banda da rede, afetando os sistemas em produção. Os desenvolvedores precisam forçar e sobrecarregar as novas aplicações em diferentes circunstâncias para saber como elas vão se comportar no futuro, em diferentes cenários de produção. Com PaaS tudo isso pode ser feito na nuvem e não no data center interno.
  • Manutenção do Software e Hardware: os custos de gerenciar alterações e atualizações de software, bem como a manutenção do hardware, são geralmente significativos, consumindo muito tempo e dinheiro. No PaaS o provedor arca com todos esses compromissos para o hardware e todos os softwares de base, além de cuidar de vários aspectos de segurança para garantir o funcionamento contínuo de tudo, sem interrupções de seus serviços.
  • Pessoal de Suporte: não há como manter os softwares e sistemas atualizados e rodando o tempo todo sem que a empresa tenha uma parte da equipe de TI disponível para essa tarefa, que envolve não só a atualização dos softwares básicos como redes, segurança e assistência aos usuários com problemas em suas máquinas. Com o PaaS, grande parte deste esforço é reduzido, simplificando e reduzindo esse tipo de suporte. A empresa pode reduzir a equipe ou redirecioná-la para atividades mais nobres.
  • Qualificação de pessoal simplificada: ferramentas de desenvolvimento e middleware são complexos e não são padronizados, e fazer sucessivos deploys de uma aplicação requer diversas habilidades diferentes e experiência acumulada. Usar PaaS diminui os requisitos de habilidades para o deploy das aplicações e remove gargalos causados pela espera da disponibilidade de especialistas para assistência com ferramentas específicas que, em geral, demandam uma longa curva de aprendizagem.

Apesar das vantagens e benefícios que PaaS traz para todo tipo e porte de empresa, curiosamente, PaaS tem sido muito utilizado por empresas pequenas que desenvolvem e vendem seu próprio software através da internet. Uma possível explicação é o fato das empresas menores não terem condições financeiras de bancar os investimentos em infraestrutura e licenças de software necessárias para lançar ou ampliar a oferta de seus aplicativos próprios. Nesse sentido, os provedores de PaaS são uma excelente alternativa.

 

Barreiras para Adoção de PaaS

 

Um dos principais benefícios de Computação em Nuvemé a agilidade. Para a empresa, o valor agregado de levar novos serviços e produtos para o mercado, em tempo recorde, pode ser muito maior que o benefício de redução de custos.

PaaS por sua vez gera uma agilidade no desenvolvimento e na implantação de softwares como nunca foi possível, para qualquer número de clientes, sem qualquer preocupação com infraestrutura.

Então fica uma pergunta no ar: se a agilidade é a rainha das vantagens em Computação em Nuvem e o modelo PaaS é o rei dos modelos de serviço, em agilidade, porque médias e grandes empresas são tão lentas para abraçar esse conceito, abrindo espaço para empresas menores se anteciparem no mercado? Alguns motivos a seguir:

 

Mensagens de Marketing Confusas (dos provedores)

Se você perguntar a 10 pessoas diferentes o que é PaaS terá 10 respostas diferentes. Porque há ofertas de mercado que vão do fornecimento de soluções para o desenvolvimento de aplicativos, até ofertas muito mais fechadas, voltadas para áreas específicas, como BigData, Mobile, DevOps e outras.

Provedores grandes como a Amazon (AWS) estão tornando difusa a linha que separa IaaS de PaaS, com a oferta de APIs robustas que permitem muitas personalizações e não funcionam de fato como uma plataforma de desenvolvimento “completa” e “pronta”. Para tornar as coisas ainda mais confusas, cada provedor tem sua própria definição do que seja PaaS, não havendo um padrão de definição – o que torna quase impossível comparar com exatidão as soluções que são oferecidas.

 

Maturidade do Padrão PaaS

Se analisarmos 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.

PaaS 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. Entretanto, sua taxa de penetração é menor 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 apenas 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.

Empresas maiores não abraçaram esse conceito porque muitas vezes ele não dá garantias firmes de SLAs (“Service Level Agreements”). Muitas empresas também não estão preparadas para mover para a nuvem pública toda a carga de seus sistemas – e acabaram adotando soluções privadas ou mesmo híbridas.

E, convenhamos, quanto maior a empresa, mais recursos ela tem para investir, assim não será o baixo investimento o fator que vai motivá-las de fato a migrar para a nuvem. As empresas maiores também são reconhecidamente menos ágeis – e agilidade neste caso não é um fator muito motivador. Segurança, certeza de entrega, disponibilidade dos serviços são mais importantes porque colocam mais em risco o seu negócio.

O problema dessas soluções híbridas ou privadas é que, essencialmente, elas atendem muito bem a área de desenvolvimento, mas são ainda muito pobres para a área de produção, negligenciado as necessidades das equipes de operações.

 

Java versus .Net

A maioria dos provedores PaaS afirma dar suporte a muitas linguagens de desenvolvimento tais como Java, Ruby, PHP, Python, Perl, node, .Net, etc. No mundo real, de grandes empresas, essencialmente Java e .Net são hoje as plataformas de desenvolvimento mais empregadas e que, por isso, realmente precisam de suporte. O fato é que nenhum provedor é excepcionalmente bom para dar verdadeiro suporte às duas linguagens.

No mundo .Net, a Microsoft e a Apprenda são duas empresas que se destacam com o suporte .Net. As duas dão suporte a outras plataformas, mas seu ponto forte é mesmo .Net. O restante dos provedores PaaS providers dão suporte para a maioria dos ambientes open source – mas oferecem um limitado (ou nenhum) suporte para .Net.

 

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, numa outra empresa. Algumas empresas privadas e mesmo públicas precisam assegurar níveis de governança de TI muito fortes com relação a privacidade, segurança, 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 têm 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 completinho 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, em empresas médias e grandes, principalmente, não estão necessariamente 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.

Essa dicotomia acaba fazendo com que a empresa se mova mais devagar. É cultural, é natural. A consequência, enquanto estas questões não são resolvidas internamente, é que isso causa uma espécie de paralisia na empresa que, se analisarmos bem, afeta seus resultados. Se evita adotar novas tecnologias, como o PaaS, deixa de abraçar novos métodos e ferramentas que acelerariam processos e procedimentos e alavancariam produtos e serviços. Ou ainda “empurram para a frente” (o futuro) a introdução de projetos importantes.

Uma solução para isso seria “DevOps” (de “Desenvolvedor e Operações”), que é um conjunto de processos, métodos e sistemas para comunicação e colaboração entre diversas áreas da empresa para o desenvolvimento de aplicações e operações de TI. Seu propósito é facilitar a realização de reuniões para alinhamento de objetivos de negócios que permitam conceituar produtos de software de elevada qualidade e, usando metodologias ágeis de desenvolvimento, colocá-los em produção no menor tempo possível[2].

 

Por onde começar?

 

As opções de PaaS no mercado incluem pacotes de desenvolvimento “standalone” que permitem a geração de ambientes de programação personalizados. As plataformas de entrega das aplicações têm foco no suporte à instalação de programas para clientes – e podem ou não incluir recursos e funcionalidades de desenvolvimento como “debugging” (depuração) e testes.

Pacotes mais abrangentes oferecem suporte “end-to-end”, que vão do ambiente de programação até servir as aplicações para os usuários.

Como há muita oferta, com muitas opções, a escolha do provedor é importante, pois precisa haver um casamento da oferta com o perfil de necessidades da sua empresa.

Um bom jeito de começar é mapeando as necessidades específicas para sua empresa e determinando um limite para gastos (budget) em PaaS.

Ao considerar alternativas:

  • Leia artigos on-line e procure referências sobre o provedor na internet.
  • Examine cuidadosamente fatores técnicos da oferta dos serviços como disponibilidade dos servidores (“server uptime”).
  • Assegure-se de que o modelo técnico de suporte do provedor vai ao encontro de suas necessidades de desenvolvimento, testes, instalação e disponibilização da aplicação para seu parque de usuários.
  • Comece por sistemas que têm o menor grau de acoplamento ou interfaceamento com outros sistemas da empresa. Isso simplificará tudo, testes e instalação.

Se sua empresa desenvolve software ou tem uma equipe que personaliza programas de softwares já existentes, o modelo PaaS pode ajudá-lo a atingir seus objetivos dentro do orçamento e em tempo recorde. PaaS normalmente começa pequeno.

 

Mercado PaaS

 

Dos 3 tipos de ofertas na nuvem, PaaS representa o menor segmento de mercado hoje (15%) e deverá ter sua participação relativa diminuída para cerca de 13% em 2018 (ainda que sua taxa média anual de crescimento seja de 21%). Ou seja, seu crescimento é vertiginoso, mas inferior ao das demais plataformas como IaaS e SaaS.

Como os serviços de PaaS facilitam a implantação de aplicações sem o custo e a complexidade de comprar e gerenciar uma ampla gama de software e hardware, as empresas utilizadoras ganham uma tremenda agilidade, o que vai garantir a sua oferta no mercado nos próximos anos.

As empresas provavelmente evitarão riscos de imobilização com novos projetos – e esse modelo de oferta é o mais econômico para novas iniciativas.

 

Referências

 

[1] Find Your Platform as a Service: http://www.paasify.it/vendors

[2] Organizing a Digital Technology Department of Medium Size in a Media Company – http://www.rajiv.com/blog/2009/03/17/technology-department/

Por onde começar usar PaaS

Por onde começar usar IaaS
Por onde começar usar SaaS

Compartilhe

Compartilhe este post com seus amigos