Platform as a Service | Atlassian
Microsserviços versus arquitetura monolítica
Como criar microsserviços
How platform as a service (PaaS) empowers modern agile and DevOps teams
Platform as a service (PaaS) is a cloud infrastructure layer that provides resources to build user-level tools and applications. It includes the underlying infrastructure including compute, network, and storage resources, as well as development tools, database management systems, and middleware.
Today's software development teams now have immediate access to all the resources needed to support the entire application lifecycle, including to design, develop, test, deploy, and host applications. This can all be done directly from the cloud with platform as a service (PaaS). Teams have access to the resources they need, on-demand, without the need to purchase and maintain a complex on-premise infrastructure.
PaaS is a primary tier of modern cloud infrastructures. The base stack is infrastructure as a service (IaaS), which provides compute, network, and storage resources. PaaS is at the middle of the stack between IaaS and software as a service (SaaS). PaaS is dependent on IaaS but also enables SaaS.
O que é 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.
Manage your distributed architecture with Compass
Like other cloud services, PaaS provides resources on-demand that can scale as needed. Prior to this, teams needed to purchase their own hardware, then configure the servers, databases, firewalls, and all other components themselves. Teams would then have to maintain, scale, and monitor their custom infrastructure. There are also a host of other benefits to PaaS.
Empowers agile and DevOps practices
PaaS enables faster coding, testing, and deployment -- some of the key practices of agile and DevOps teams. Plus, PaaS is directly complementary to a CI/CD release workflow and helps to enable a full DevOps release cycle. Given the software lifecycle of building, testing, deploying, managing, and updating, PaaS handles the deployment phase.
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.
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.
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.
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.
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.
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.
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.