Entenda os CNAPPs com o nosso guia
Entenda os CNAPPs com o nosso guia
O que é arquitetura sem servidor?
A arquitetura sem servidor é uma abordagem de desenvolvimento de software na qual os desenvolvedores podem executar aplicações sem gerenciar a infraestrutura subjacente. No modelo de computação sem servidor, o provedor de nuvem cuida de toda a configuração, manutenção e escalonamento da infraestrutura. Isso elimina a necessidade de instalar sistemas operacionais e tempos de execução de linguagem, bancos de dados e serviços de enfileiramento, liberando tempo do desenvolvedor. Dessa forma, os desenvolvedores apenas escrevem e implementam lógica de negócios, o que lhes permite criar aplicações de alta qualidade com mais rapidez.
A arquitetura sem servidor é baseada em eventos, o que significa que as funções são acionadas por eventos de fontes como solicitações HTTP, modificações de banco de dados ou uploads de arquivos. Essa abordagem é ideal para aplicações que exigem agilidade e flexibilidade porque é facilmente extensível. Novos serviços adicionados ao sistema podem simplesmente ouvir e responder aos eventos que já estão circulando.
Plataformas como o AWS Lambda abstraem o gerenciamento de servidores, permitindo um modelo de pagamento por execução. Os desenvolvedores são cobrados apenas pelo que usam e não por servidores potencialmente ociosos. Uma infraestrutura ociosa não gera valor algum e gera despesas operacionais, mas com a arquitetura sem servidor, isso se torna responsabilidade do provedor de nuvem. Com a computação sem servidor, iniciar e parar funções leva apenas uma fração de segundo. Isso permite que as funções correspondam a workloads imprevisíveis melhor do que VMs ou containers, que às vezes podem levar minutos para serem escalados, deixando períodos maiores com provisionamento excessivo ou insuficiente.
O Guia completo dos CNAPPs
Faça o download do Guia completo dos CNAPPs da CrowdStrike para entender melhor por que as plataformas de proteção de aplicações nativas em nuvem são componentes críticos das estratégias modernas de segurança na nuvem e como integrá-los melhor aos ciclos de vida de desenvolvimento.
Baixe agoraAo longo dos anos, as arquiteturas de nuvem evoluíram significativamente de máquinas virtuais (VMs) para tecnologia sem servidor. Inicialmente, as VMs eram a norma porque ofereciam uma maneira de executar vários sistemas operacionais (SOs) em uma única máquina física. Eles foram o primeiro passo na abstração do hardware e uma das principais razões pelas quais as empresas começaram a migrar para a nuvem.
Essa abordagem, no entanto, não era a ideal; as VMs ainda eram pesadas. Cada VM precisava trazer um conjunto completo de software com seu próprio sistema operacional, bibliotecas e ferramentas, o que tornava o escalonamento mais lento. Essas deficiências levaram ao desenvolvimento da conteinerização, que permitiu aos desenvolvedores executar várias aplicações em uma única instalação de sistema operacional. Mas, mesmo assim, era um processo trabalhoso, e os desenvolvedores de aplicações eram responsáveis por gerenciar clusters de containers e sua infraestrutura subjacente.
A tecnologia sem servidor é a solução mais recente para as desvantagens remanescentes da nuvem. Liberar os desenvolvedores de aplicações do trabalho de manutenção de infraestrutura permite que eles se concentrem na criação de novas funcionalidades. A arquitetura sem servidor também funciona em conjunto com arquiteturas modernas de microsserviços e pode economizar dinheiro das empresas em folha de pagamento e infraestrutura, se usada corretamente.
Sem servidor é o mesmo que microsserviços?
Sem servidor e microsserviços são duas abordagens para computação em nuvem e arquitetura de software.
A tabela a seguir fornece uma rápida visão geral de suas diferenças:
| Sem servidor | Microsserviços | |
|---|---|---|
| Objetivos | Minimiza o gerenciamento de infraestrutura | Torna grandes bases de código mais gerenciáveis |
| Modelo de computação | Funções efêmeras e sem estado | Serviços autocontidos baseados em VMs, containers ou funções |
A arquitetura sem servidor visa abstrair o gerenciamento e a escalabilidade do servidor. A arquitetura de microsserviços, por outro lado, concentra-se em dividir grandes bases de código em partes menores e mais gerenciáveis. No sem servidor, os desenvolvedores escrevem e implementam funções efêmeras e sem estado que são executadas em resposta a eventos. Em contraste, os microsserviços permitem a implementação e o gerenciamento de serviços completos e independentes que gerenciam seus próprios estados e armazenamento.
Serviços sem servidor e microsserviços têm seus próprios méritos e podem ser usados em paralelo. Por exemplo, ao criar um sistema com uma arquitetura de microsserviços, geralmente é mais fácil adicionar serviços sem servidor a essa arquitetura posteriormente. Adicioná-los a uma arquitetura monolítica pode ser mais desafiador.
Os desenvolvedores podem implementar tecnologia sem servidor para criar microsserviços, e os provedores de infraestrutura sem servidor incentivam essa prática. Os desenvolvedores também podem usá-lo para criar um software que segue diferentes padrões, como monólitos. Da mesma forma, microsserviços podem ser criados usando tecnologia que não são sem servidores, como containers ou VMs. Na verdade, os microsserviços já existiam muito antes do lançamento das primeiras plataformas sem servidor.
Saiba mais
Leia este artigo para entender a importância de manter uma arquitetura de microsserviços segura e como protegê-la da melhor forma.
Qual é a diferença entre FaaS e PaaS?
Plataforma como serviço (PaaS) era — e continua sendo — uma abordagem comum para computação em nuvem antes do lançamento da função como serviço (FaaS). Os provedores de PaaS forneceram aos desenvolvedores um serviço abrangente que lhes permitiu criar, implementar e gerenciar suas aplicações em VMs ou containers, eliminando grande parte do trabalho normalmente envolvido com essas tecnologias.
Então, qual a diferença entre o FaaS e o PaaS?
A tabela a seguir descreve as principais diferenças:
| PaaS | FaaS | |
|---|---|---|
| Objetivos | Apoiar desenvolvedores em todos os aspectos do desenvolvimento de aplicações na nuvem | Otimizar a infraestrutura de computação em nuvem |
| Modelos de computação | VMs, containers e funções | Funções efêmeras e sem estado |
| Nível de abstração | Alto; é uma solução completa | Baixo; é um bloco de construção básico |
A PaaS é uma solução completa de desenvolvimento e gerenciamento de aplicações que permite aos desenvolvedores gerenciar suas implementações do início ao fim. Inclui funcionalidades como bancos de dados, middleware e ferramentas para configurar e gerenciar aplicações baseadas em nuvem.
A FaaS é uma alternativa de computação para VMs e containers. Ela permite que os desenvolvedores se concentrem em escrever sua lógica de negócios como uma função enquanto a plataforma lida com a infraestrutura. Cada função é focada em resolver um problema específico e executar uma instância desse problema. Em contraste, os containers são sistemas com estado que não são iniciados e interrompidos entre as tarefas. A FaaS também elimina a sobrecarga de manutenção e configuração que acompanha outras abordagens, mas geralmente pode ser vista como um bloco de construção de baixo nível para criar aplicações nativas em nuvem.
A FaaS é um subconjunto de PaaS projetada para executar funções em um ambiente sem servidor. Na PaaS — que pode usar containers, VMs ou funções — os desenvolvedores normalmente implementam e gerenciam aplicações inteiras. Na FaaS, os desenvolvedores definem funções e especificam os eventos que acionam sua execução.
Embora a FaaS adote uma abordagem de nível inferior, ela oferece aos desenvolvedores muitos benefícios, incluindo escalabilidade, provisionamento de recursos e tolerância a falhas. Workloads antes consideradas muito pequenas para justificar um servidor dedicado são possíveis com a FaaS.
Quais são os benefícios de uma arquitetura sem servidor?
Os desenvolvedores de aplicações podem enviar soluções mais rapidamente, com menos carga operacional e economia de custos considerável.
Por meio de seus muitos benefícios, a tecnologia sem servidor abriu o espaço da nuvem para organizações que, de outra forma, não teriam recursos para criar suas próprias soluções. Alguns benefícios incluem:
- Operações simplificadas
- Escalabilidade automática
- Eficiência de custos
- Entrega rápida
- Resiliência melhorada
1. Operações simplificadas
A computação sem servidor simplifica as operações ao eliminar a necessidade de provisionamento, configuração e gerenciamento de servidores. De acordo com salaryexpert.com, um engenheiro capaz de gerenciar um cluster de containers baseado no Kubernetes custa cerca de US$ 135.000 por ano — um preço alto só para começar a desenvolver aplicações na nuvem. Embora os custos de execução de uma tarefa em uma plataforma FaaS possam ter custos mais altos por execução, o fato de que é necessário menos pessoal pode fazer com que a solução sem servidor seja a melhor opção.
A arquitetura sem servidor permite que as organizações se concentrem em atender seus clientes em vez de desperdiçar tempo precioso em tarefas relacionadas à infraestrutura. As empresas podem dedicar mais recursos às suas atividades principais e entregar maior valor em menos tempo. Operações simplificadas também reduzem a barreira de entrada para organizações que não consideraram criar soluções internas com infraestrutura de nuvem.
2. Escalabilidade automática
No passado, as soluções de escalonamento automático nem sempre eram adequadas à tarefa. A infraestrutura subjacente era baseada em VMs ou containers. Os usuários relatam tempos de inicialização para uma VM com uma nova instalação do Red Hat Enterprise Linux 8 de cerca de um minuto — e essa é a linha de base sem o software da aplicação instalada.
Além disso, se o serviço de escalonamento detectar um aumento no tráfego, as instâncias que ele iniciar podem não estar em execução com rapidez suficiente para acomodar esse tráfego. Isso exigiu que as organizações refletissem mais sobre o planejamento de capacidade e maneiras de evitar o superprovisionamento.
Com a FaaS, os tempos de inicialização podem ser inferiores a um segundo, permitindo que soluções de escalonamento reativo correspondam ao tráfego de entrada muito mais rápido e tornando o escalonamento automatizado uma abordagem mais viável.
3. Eficiência de custos
Ao contrário de VMs ou sistemas de containers, que exigem que as empresas paguem por recursos de servidor ociosos, a arquitetura sem servidor cobra apenas pelo tempo de execução. Se uma função não for executada, não custará dinheiro. Isso torna a tecnologia sem servidor altamente econômica.
De acordo com um relatório, as empresas reduziram significativamente suas contas da AWS por meio da arquitetura sem servidor. Uma organização, por exemplo, passou de uma cobrança mensal de US$ 10.000 para apenas US$ 370 ao mover todo o seu conjunto para uma arquitetura sem servidor.
Além disso, os tempos rápidos de inicialização da FaaS permitem que as organizações escalem todo o sistema para milhares de invocações em questão de segundos, para que as empresas possam economizar custos sem sacrificar a flexibilidade ou o desempenho.
4. Entrega rápida
A arquitetura sem servidor também permite acelerar o desenvolvimento e a implementação. As empresas podem iterar e implementar rapidamente novas funcionalidades ou atualizações sem se preocupar com o provisionamento e o gerenciamento da infraestrutura. Isso permite que as empresas reajam rapidamente às mudanças nas demandas do mercado e fiquem à frente da concorrência.
5. Resiliência melhorada
Por fim, a arquitetura sem servidor oferece maior resiliência do que os containers, que exigem que o operador do cluster se encarregue disso. Isso se deve à tolerância a falhas e alta disponibilidade integradas. Os provedores de nuvem cuidam da redundância da infraestrutura subjacente e do escalonamento automático, eliminando a necessidade de planejamento manual de capacidade. No entanto, os provedores de nuvem não são responsáveis por proteger os dados e a workload. Para obter resiliência e proteger suas aplicações, considere soluções de segurança em nuvem unificadas que ofereçam consistência de segurança em toda a infraestrutura, como o CrowdStrike Falcon® Cloud Security.
Saiba mais
Leia este artigo para saber a importância de ter uma estratégia de segurança na nuvem, os desafios que ela traz, bem como alguns elementos-chave que você deseja incluir na estratégia da sua organização.
Indo além de VMs e containers com arquitetura sem servidor
A tecnologia sem servidor capacita os desenvolvedores ao remover o fardo do gerenciamento de servidores, permitindo que eles criem aplicações escaláveis, confiáveis e econômicas que são mais valiosas para seus clientes com menos esforço. Com provedores de nuvem gerenciando infraestrutura, escalonamento e disponibilidade, os desenvolvedores podem dedicar mais tempo a tarefas de alto valor, como criar funcionalidades, corrigir bugs ou pesquisar.
Os arquitetos de nuvem ficarão felizes em saber que não precisam se contentar com microsserviços ou arquiteturas monolíticas ao usar a arquitetura sem servidor. Em vez disso, eles podem se beneficiar de operações simplificadas, custo-benefício e resiliência inerente — tudo isso sem perder a flexibilidade em seu projeto arquitetônico.
Engenheiros de segurança também têm muito a ganhar com a tecnologia sem servidor. O provedor de nuvem é responsável pela manutenção da infraestrutura, incluindo manter o software atualizado com correções de segurança. Aplicar correções em imagens de VM e orquestradores de containers são duas tarefas adicionais com as quais as equipes de segurança não precisam mais se preocupar com a arquitetura sem servidor.
A nuvem tem como objetivo simplificar o desenvolvimento de aplicações e torná-lo mais econômico do que soluções no local, eliminando o trabalho não diretamente relacionado ao valor que as empresas fornecem aos seus clientes. A arquitetura sem servidor ajuda as organizações a atingir esse objetivo e, ao transferir a responsabilidade por muitas tarefas de infraestrutura e preocupações sobre custos de recursos ociosos para o provedor de nuvem, ele vai além do que as VMs fazem.
A CrowdStrike simplifica a adoção do DevSecOps e reduz os custos de proteção de containers, workloads e aplicações sem servidor. Saiba mais sobre o CrowdStrike Falcon® Cloud Security, que oferece detecção e resposta abrangentes na nuvem, ao mesmo tempo em que reforça a postura de segurança e a conformidade com os padrões ouro específicos para diferentes setores e regulamentações. O Falcon Cloud Security oferece uma cobertura de detecção MITRE ATT&CK® de 99% para workloads na nuvem, incluindo containers e ambientes sem servidor.
Expert Tip
Participe do nosso laboratório prático do Falcon Cloud Security para saber como você pode proteger todo o ciclo de vida da aplicação.
Laboratório prático Falcon Encounter: Protegendo aplicações nativas em nuvem