Plataforma como serviço

Como a plataforma como serviço (PaaS) capacita equipes ágeis e de DevOps modernas

Kev Zettler Kev Zettler

Resumo: A plataforma como serviço (PaaS) é uma camada de infraestrutura de nuvem que oferece recursos para criar ferramentas e aplicativos de nível de usuário. Ela inclui a infraestrutura subjacente, incluindo recursos de computação, rede e armazenamento, bem como ferramentas de desenvolvimento, sistemas de gerenciamento de banco de dados e middleware.

As equipes de desenvolvimento de software atuais agora têm acesso imediato a todos os recursos necessários para suportar todo o ciclo de vida do aplicativo, inclusive para projetar, desenvolver, testar, implementar e hospedar aplicativos. Todas essas etapas podem ser feitas direto da nuvem com plataforma como serviço (PaaS). As equipes têm acesso aos recursos de que precisam, sob demanda, sem a necessidade de comprar e manter uma infraestrutura local complexa.

O PaaS é um nível principal de infraestruturas de nuvem modernas. A pilha base é infraestrutura como um serviço (IaaS), que oferece recursos de computação, rede e armazenamento. O PaaS está no meio da pilha entre o IaaS e o software como serviço (SaaS). O PaaS depende do IaaS, mas também habilita SaaS.

O que é plataforma como serviço?

Diagrama da plataforma como serviço

PaaS é uma camada de infraestrutura de nuvem que oferece recursos para criar ferramentas e aplicativos de nível de usuário. Como o IaaS, esses recursos incluem servidores, armazenamento e rede. O PaaS também inclui ferramentas de desenvolvimento, sistemas de gerenciamento de banco de dados, middleware, sistemas de e-mail ou de notificação e muito mais.

Como o PaaS é uma infraestrutura baseada na nuvem, ele permite que as organizações evitem o custo e a complexidade de comprar e gerenciar recursos de infraestrutura, incluindo licenças de software, infraestrutura de aplicativos e ferramentas de desenvolvimento.

A “plataforma” no PaaS é um ecossistema de linguagem de programação, ou “pilha de tecnologia”. Pilhas de tecnologia de aplicativos baseadas em linguagem populares incluem Ruby on Rails, Django Python, Node.js MEAN stack, Java SpringMVC, entre outros. Esses exemplos de pilha de linguagens dependem de um sistema de banco de dados anexado.

Benefícios da plataforma como serviço

Assim como outros serviços de nuvem, a PaaS oferece recursos sob demanda que podem ser dimensionados conforme necessário. Antes disso, as equipes precisavam comprar seu próprio hardware e, em seguida, configurar os servidores, bancos de dados, firewalls e todos os outros componentes. As equipes tinham então que manter, escalar e monitorar a infraestrutura personalizada. Há também uma série de outros benefícios para a PaaS.

Capacita práticas ágeis e DevOps

A PaaS permite codificação, testes e implementação mais rápidos — algumas das principais práticas das equipes ágeis e de DevOps. Além disso, a PaaS é diretamente complementar a um fluxo de trabalho de lançamento de CI/CD e ajuda a habilitar um ciclo de lançamento completo do DevOps. Dado o ciclo de vida do software de criação, teste, implementação, gerenciamento e atualização, a PaaS lida com a fase de implementação.

Tempo de colocação no mercado mais rápido

Usando a plataforma como serviço, o foco dos desenvolvedores pode ser exclusivo no código, em vez de em criar, configurar e provisionar infraestrutura e plataformas, ou criar funcionalidade de escalonamento automático. Assim, o tempo de desenvolvimento em novos projetos apresenta redução significativa. Além disso, a PaaS oferece acesso a ferramentas, modelos e bibliotecas de código que podem reduzir o tempo de desenvolvimento e simplificar os processos.

Dimensionar conforme necessário

Os hosts PaaS em geral oferecem recursos de dimensionamento elástico, o que dá rapidez para que as equipes adicionem capacidade em horários de pico e reduzam conforme necessário. O tratamento da dimensionamento é automático, feito pelo provedor de PaaS.

Desenvolvimento econômico

A PaaS permite que as equipes adicionem recursos de desenvolvimento sem adicionar pessoal, o que pode reduzir os custos de engenharia. As organizações não precisam mais instalar e gerenciar infraestruturas de desenvolvimento subjacentes.

Os provedores de plataforma como serviço oferecem painéis úteis para analisar e gerenciar custos de infraestrutura. Essas ferramentas de análise de custos ajudam as equipes a auditar quaisquer áreas de despesas inesperadas ou desperdício. Além disso, essas ferramentas ajudam as equipes a otimizar o custo de suas implementações. Sem esses insights de custos, as equipes podem encontrar suas despesas de infraestrutura crescendo inesperadamente.

Suporta equipes de desenvolvimento distribuídas

Como a plataforma como serviço é um serviço de nuvem, ela suporta a colaboração entre equipes distribuídas. A distribuição de hardware dos provedores de plataforma como serviço é global, o que significa que os aplicativos implementados na PaaS podem ser acessados a custos mais baixos e de qualquer local.

Segurança e controle de acesso

A maioria dos provedores de PaaS tem ferramentas granulares de segurança e controle de acesso que permitem às equipes configurar com rapidez o acesso aos recursos da PaaS. Elas são importantes para os níveis de acesso da equipe de segurança da empresa e do cliente e dão às equipes a garantia de que a infraestrutura está bloqueada para evitar violações de dados ou outros cenários indesejáveis de falha de segurança.

Casos de uso da plataforma como serviço

A PaaS é usada para implementar executáveis de código de aplicativo prontos para o usuário, incluindo aplicativos web SaaS completos, como CRMs, painéis, salas de bate-papo e muito mais. Os executáveis da PaaS também incluem APIs de back-end ou microsserviços. Além do código do aplicativo, ferramentas suplementares como balanceadores de carga, pipelines de notificação e sistemas de trabalho atrasados podem ser implementadas junto com o código do aplicativo.

Desenvolvimento e gerenciamento de APIs

As APIs são um componente essencial de qualquer aplicativo distribuído moderno, e as estruturas integradas disponibilizadas por uma PaaS simplificam muito o desenvolvimento e o gerenciamento de APIs. As APIs costumam ser usadas para permitir que sistemas externos se conectem com recursos internos de aplicativos ou para conectar os diferentes componentes em uma arquitetura de aplicativos de microsserviços.

Microsserviços

A PaaS é complementar aos microsserviços e uma grande ajuda na implementação. A PaaS facilita a implementação de vários aplicativos de microsserviços e os configura para se comunicar entre si. A maioria dos provedores de PaaS tem painéis de interface de usuário que apresentam uma descrição visual da implementação atual. Assim as equipes podem ver e compreender melhor o layout da implementação de microsserviços em tempo real.

Ambientes multifásicos

A PaaS pode implementar ambientes multifásicos, como desenvolvimento, staging e produção, com rapidez. Assim as equipes têm uma garantia de qualidade adicional, uma vez que podem verificar o comportamento correto do aplicativo por meio de várias fases. Se o aplicativo apresenta o comportamento esperado no staging, a implementação no ambiente de produção vai ser trivial.

Hospedagem de banco de dados

A maioria dos aplicativos depende de algum tipo de armazenamento de dados persistente. Como esse caso é tão comum, os provedores de PaaS oferecem implementação e gerenciamento de banco de dados como uma funcionalidade principal. As equipes podem ignorar a hospedagem de aplicativos PaaS e, em vez disso, usar a PaaS apenas para acesso ao banco de dados. Esse padrão é tão comum que alguns provedores de PaaS oferecem planos de faturamento específicos para a funcionalidade apenas do banco de dados.

Análise/inteligências de negócios

A maioria das ofertas de PaaS torna a vida do desenvolvedor significativamente mais fácil, incluindo aplicativos e estruturas para a realização de análise de negócios e inteligência. Essas soluções facilitam que os desenvolvedores de aplicativos disponibilizem aos usuários todos os dados e métricas de que precisam para tomar decisões de negócios informadas.

Comunicações

Os recursos de comunicação são essenciais para qualquer aplicativo moderno, e uma PaaS disponibiliza ferramentas e estruturas de comunicação para suportar tecnologias como SMS, e-mail, voz etc., o que simplifica aos desenvolvedores adicionar funcionalidade de comunicação a seus aplicativos.

Ferramentas internas e painéis privados

As ferramentas internas são candidatas perfeitas para a implementação de PaaS, pois não exigem dependências especiais de infraestrutura únicas. As ferramentas internas agregam visualizações de métricas internas e não precisam de dimensionamento avançado e elástico porque são acessadas por um subconjunto de partes interessadas internas. Mesmo assim, a PaaS oferece dimensionamento elástico por padrão.

Conclusão...

A PaaS oferece recursos de infraestrutura e desenvolvimento para equipes de desenvolvimento pequenas e grandes. Ela permite que as equipes acessem os recursos de que precisam, quando precisam e dimensionem de acordo. A PaaS permite execução mais rápida e lançamentos de software mais frequentes, o que faz dela uma tecnologia favorita para equipes que praticam a metodologia ágil e DevOps.

Pronto para integrar a PaaS ao seu fluxo de trabalho DevOps? Introdução ao DevOps