Arquitetura Serverless: explorando seu funcionamento, aplicações e vantagens

Arquitetura Serverless: explorando seu funcionamento, aplicações e vantagens

Em um cenário tecnológico em constante transformação, a adoção de arquiteturas serverless surgiu como uma nova solução para desenvolvedores e empresas.

Mas o que isso significa na prática? E mais: quais os impactos disso para os seus projetos?

Neste artigo, vamos explorar tanto o “como” quanto o “porquê” dessa arquitetura e o quanto ela pode impactar você e sua empresa.

Pensando nisso, vamos compreender os seguintes tópicos:

  • O surgimento dos serviços serverless, destacando seu conceito e funcionamento; e
  • Analisaremos suas vantagens e desvantagens, diferenças e exemplos.

Continue sua leitura e venha comigo explorar a arquitetura serverless :)

O que é a arquitetura serverless?

Ao contrário do que o seu nome pode indicar, uma estrutura serverless (“sem servidor”) ainda faz uso de servidores. Nesse caso, a diferença está no gerenciamento.

A gestão de servidores pode ser demorada e exigir muitos recursos.

Então, com o uso de uma arquitetura serverless, essas responsabilidades são designadas a um provedor de serviços terceirizado, permitindo que as pessoas desenvolvedoras se concentrem na criação do código da aplicação.

Banner promocional da Alura, com um design futurista em tons de azul, apresentando dois blocos de texto, no qual o bloco esquerdo tem os dizeres:

Breve histórico da arquitetura serveless

A história da arquitetura serverless começou nos servidores físicos para rodar as aplicações.

Nesse contexto inicial, o desafio de escalabilidade estava em garantir servidores poderosos o suficiente para suprir as demandas.

Por um lado, havia a opção de comprar uma única máquina com capacidade além do necessário, o que acabava em mais gastos.

Por outro lado, várias máquinas mais fracas eram utilizadas em conjunto, que forneciam maior controle sobre o uso de servidores e, consequentemente, sobre os gastos.

A abordagem que se seguiu a partir de então foi a de virtualização, onde ocorria a simulação do hardware através de software.

Por conta disso, houve diminuição na compra de hardwares, o que ocasionou na diminuição dos custos.

Em seguida, deu-se início a era da Cloud, começando com IaaS (Infrastructure as a Service ou “Infraestrutura como serviço”).

A IaaS funciona por demanda, fornecendo a infraestrutura de servidores, armazenamento e conexão, enquanto devs cuidam de toda a sua aplicação, como software, dados e serviços.

Após a IaaS, veio o PaaS (Platform as a Service ou “Plataforma como serviço”), que fornece uma plataforma com a infraestrutura para criar e gerenciar as aplicações, fazendo com que os desenvolvedores fiquem responsáveis apenas pela tecnologia utilizada, dados e serviços.

A arquitetura serverless seguiu a ideia do PaaS, fornecendo uma plataforma para gerenciar toda a infraestrutura por trás das aplicações.

Agora que conhecemos o seu histórico, vamos entender mais a fundo o seu funcionamento.

Como a arquitetura Serverless funciona?

A arquitetura serverless oferece a possibilidade de criar e implementar suas aplicações sem a necessidade de gerenciar uma infraestrutura por trás. Um exemplo muito utilizado é FaaS (Function as a Service).

A seguir, vamos entender o que é uma FaaS e como ocorre o funcionamento de uma arquitetura serverless.

FaaS

A FaaS é um tipo de serviço em nuvem que possibilita aos desenvolvedores escreverem funções que serão acionadas por eventos específicos.

Esse serviço é responsável por cuidar da parte de infraestrutura dos servidores, gerenciamento de recursos e escalabilidade.

Em comparação a outros serviços em nuvem, que cobram por cada minuto em que a aplicação está sendo executada, independente de estar sendo acessada ou não, as funções serverless consomem recursos apenas durante o seu acesso, ou seja, quando necessário.

Dessa forma, os custos de uso de uma arquitetura serverless são reduzidos, o que possibilita uma utilização mais eficiente dos recursos.

Esquema das etapas de funcionamento das funções serverless, com título “Como as funções serverless funcionam”. Na imagem, temos três etapas, da esquerda para a direita, começando com o Upload das funções, passando pela definição dos acionadores das funções e terminando na execução da função pelo provedor de nuvem.

Etapas do funcionamento da arquitetura serverless

A arquitetura serverless muda a maneira como as aplicações são desenvolvidas e operadas, oferecendo aos desenvolvedores uma abordagem eficiente e descomplicada para a execução de código em ambientes de nuvem.

Para explorar o funcionamento da FaaS, vamos destacar cinco etapas, as quais podemos conferir a seguir:

  • 1. Criação das funções: A primeira etapa consiste na criação das funções que serão utilizadas quando os eventos forem acionados. As funções são capazes de chamar outras funções, processar dados ou conectar-se a bancos de dados e serviços de terceiros.
  • 2. Deploy das funções: Com as funções criadas, os desenvolvedores realizam o seu deploy para um provedor de nuvem.
  • 3. Provedor de nuvem: O provedor, por sua vez, realiza todo o gerenciamento do servidor e infraestrutura.
  • 4. Acionamento da função: Uma vez que a função é acionada por um evento, o provedor é responsável por executar a função em um servidor.
  • 5. Cobrança: A cobrança é realizada em cima do tempo de execução das funções.

Todo esse processo é realizado de forma independente por parte do provedor, mantendo os desenvolvedores ocupados apenas com o desenvolvimento da aplicação.

Vantagens e desvantagens da arquitetura serverless

O levantamento dos prós e contras consiste em uma etapa importante na tomada de decisão sobre qual arquitetura utilizar, o que nos permite entender quais são seus benefícios e desafios.

Desde a redução de custos e a escalabilidade automática até a perda de controle e questões de desempenho, podemos compreender como essa abordagem impacta o desenvolvimento e operação de aplicações.

Pensando nisso, vamos conhecer algumas das vantagens e desvantagens da arquitetura serverless.

Vantagens

  • Custo reduzido: Como o custo é calculado sobre o tempo de consumo na execução das funções, os custos operacionais são reduzidos.
  • Escalabilidade: As funções serverless ajustam automaticamente os recursos para atender à demanda, permitindo escalabilidade sem intervenção manual.
  • Riscos reduzidos: Devido ao foco no gerenciamento da infraestrutura por parte dos provedores, as aplicações correm menos riscos de violação de segurança.
  • Rapidez no desenvolvimento: O gerenciamento da infraestrutura por um terceiro resulta na aceleração do desenvolvimento das aplicações.

Desvantagens

  • Perda de controle: Em caso de problemas no servidor, a aplicação é totalmente dependente do provedor, principalmente em casos onde todos os serviços pertencem a um mesmo provedor.
  • Performance: Por conta do seu funcionamento por demanda, onde há um tempo de inatividade, as funções podem levar um tempo a mais para começarem a ser executadas.
  • Execução a longo prazo: Para aplicações que precisam de muito tempo de execução, o custo total de uso pode ser superior ao de uma infraestrutura não serverless.

Após entendermos as vantagens e desvantagens da arquitetura serverless, é importante explorar onde exatamente esses serviços são aplicados.

Vamos agora analisar alguns casos de uso específicos, destacando como a arquitetura serverless é aproveitada em diferentes cenários e setores.

Onde os serviços Serverless são utilizados?

Desde o processamento de fluxos de dados até a transformação de microsserviços complexos em unidades mais gerenciáveis, vamos conhecer alguns casos de uso da arquitetura serverless.

  • Processamento de fluxo de dados: As funções serverless são capazes de responder em tempo real a fluxos de dados. Essa capacidade oferece uma base para a construção de pipelines e aplicativos de streaming em tempo real.

  • Microsserviços: A arquitetura serverless permite que serviços complexos sejam transformados em serviços mais simples que funcionam em conjunto, onde cada serviço pode ter seu próprio crescimento.

  • Backend de APIs: Ao processar APIs, permite que os desenvolvedores lidem com o backend das aplicações, como gerenciamento de banco de dados, autenticação de usuário e envio de notificações, sem precisar gerenciar diretamente servidores.

  • Pipelines ETL: O serverless permite que tarefas de ETL (Extract, Transform, Load) sejam acionadas de forma agendada, sem a necessidade de manter servidores executando continuamente.

Dessa forma, entendemos os diversos casos de uso onde os serviços serverless são aplicados.

Agora, veremos como empresas e devs utilizam essa arquitetura para construir e escalar suas aplicações de forma eficiente e flexível.

Exemplos de serviços Serverless na AWS

A AWS (Amazon Web Services) foi a pioneira na adoção da arquitetura serverless, contando com diversos serviços no seu catálogo.

A seguir, vamos conferir alguns deles, separados por suas categorias:

  • Computação: O AWS Lambda é um serviço orientado a eventos que permite a execução de código para qualquer tipo de aplicação.

  • Integração de aplicações: O Amazon API Gateway é uma opção para criar, publicar e gerenciar APIs em qualquer escala.

  • Armazenamento de dados: O Amazon S3 consiste em um serviço utilizado para armazenar dados em qualquer quantidade de qualquer lugar.

  • Análise: O AWS Glue é um serviço de integração de dados utilizado para realizar a preparação de dados de forma simplificada e escalável.

Para conhecer outros serviços serverless fornecidos pela AWS, confira a sua página sobre computação sem servidor.

Com isso, exploramos alguns exemplos de serviços serverless na AWS. Por fim, vamos compará-los com as abordagens não serverless.

Veremos como essas duas arquiteturas se diferenciam em termos de desempenho, custo e gerenciamento, auxiliando na escolha da melhor solução para cada aplicação.

Serviços Serverless x Não Serverless

Podemos traçar um comparativo entre serviços serverless e não serverless, como é o caso dos serviços AWS Glue e Amazon EMR.

Eles fazem parte da categoria de Análise, e podem ser usados, por exemplo, para realizar processamento de dados.

Nesse contexto, podemos verificar as principais diferenças entre os dois serviços:

  1. Benefícios:
  • AWS Glue:

    • Por ser serverless, é totalmente gerenciado, facilitando a configuração e manutenção.
    • Suporta transformações ETL sem a necessidade de provisionamento de infraestrutura.
    • Integração fácil com outros serviços AWS.
  • Amazon EMR:

    • Oferece escalabilidade horizontal para processamento de grandes volumes de dados.
    • Suporta uma variedade de frameworks de código aberto, como Apache Spark e Hadoop.
    • Permite personalização avançada para cargas de trabalho específicas.
  1. Quando Usar:
  • AWS Glue:

    • Recomendado para cargas de trabalho ETL automatizadas e gerenciamento de metadados.
    • Ideal para cenários onde a facilidade de uso e a automação são prioridades.
  • Amazon EMR:

    • Indicado para cargas de trabalho de big data que exigem processamento distribuído.
    • Cenários que envolvem frameworks de código aberto, como Spark, Hadoop e HBase.
  1. Preços:
  • AWS Glue:

    • Uma taxa é paga por hora, cobrada por segundo, por crawlers e trabalhos de exatidão, transformação e carregamento (ETL).
    • Preços baseados na quantidade de dados processados e nos metadados armazenados.
    • Modelo de pagamento por demanda, de acordo com o uso dos recursos.
  • Amazon EMR:

    • Cobrado uma uma taxa por segundo para cada segundo usado, com um mínimo de um minuto.
    • Modelo de preços sob demanda, dependendo da flexibilidade de uso.
    • Custos associados à escolha de instâncias EC2 e armazenamento.

Ambos os serviços têm seus méritos e são escolhidos com base nas necessidades específicas do projeto, com o AWS Glue se destacando nos seus benefícios serverless, como automação e facilidade de uso, enquanto o Amazon EMR é preferido para cargas de trabalho mais complexas de big data.

Para conferir mais detalhes sobre os dois serviços, acesse suas páginas na AWS:

Conclusão

Neste artigo, apresentamos uma visão geral da arquitetura serverless. Durante a leitura, fomos capazes de:

  • Compreender a definição do que é e como funciona a arquitetura serverless;
  • Destacar as vantagens e desvantagens dessa arquitetura;
  • Descrever casos dessa arquitetura;
  • Listar exemplos de serviços serverless na AWS;
  • Comparar serviços serverless e não serverless.

Por fim, caso queira se aprofundar ainda mais seus estudos nos conteúdos abordados neste artigo, sugiro a nossa Formação Data Lake AWS na qual temos um time de especialistas que vai te ajudar a alavancar ainda mais sua carreira e capacitar você a adquirir cada vez mais conhecimento na área.

Um abraço e até mais.

Créditos

Marcelo Cruz
Marcelo Cruz

Sou estudante de Ciência da Computação na UNIR. Atualmente, sou Monitor na Escola de Dados. Gosto muito de aprender e compartilhar conhecimento. Apaixonado por Python e Dados.

Veja outros artigos sobre Data Science