O que é BaaS? | Back-end como serviço X computação sem servidor

O back-end como serviço (BaaS) permite que os desenvolvedores se concentrem no front-end de seus aplicativos e aproveitem os serviços de back-end sem construí-los ou mantê-los. O BaaS e a computação sem servidor compartilham algumas semelhanças e muitos provedores oferecem ambos, mas os dois modelos têm várias diferenças.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Definir BaaS
  • Definir MBaaS
  • Entender as diferenças entre computação sem servidor e BaaS
  • Entender as diferenças entre BaaS e PaaS

Conteúdo relacionado


Quer saber mais?

Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.

Consulte a política de privacidade da Cloudflare para saber como coletamos e processamos seus dados pessoais.

Copiar o link do artigo

O que é BaaS?

Back-end como serviço (BaaS) é um modelo de serviço em nuvem no qual os desenvolvedores terceirizam todos os aspectos dos bastidores de um aplicativo web ou para dispositivos móveis para que eles tenham apenas que escrever e manter o front-end. Os fornecedores de BaaS fornecem software genérico para atividades que ocorrem em servidores, como autenticação de usuários, gerenciamento de banco de dados, atualização remota e notificações push (para aplicativos para dispositivos móveis), bem como hospedagem e armazenamento em nuvem.

Backend como serviço (BaaS)

Pense em desenvolver um aplicativo sem usar um provedor BaaS como dirigir um filme. Um diretor de cinema é responsável por supervisionar ou gerenciar equipes de câmera, iluminação, construção de cenários, guarda-roupa, elenco de atores e cronograma de produção, além de filmar e dirigir as cenas que aparecerão no filme. Agora imagine se houvesse um serviço que cuidasse de todas as atividades dos bastidores para que tudo o que o diretor tivesse que fazer fosse só dirigir e filmar a cena. Essa é a ideia do BaaS: o fornecedor cuida das "luzes" e da "câmera" (ou, as funcionalidades do lado do servidor*) para que o diretor (o desenvolvedor) possa se concentrar apenas na "ação" – o que o usuário final vê e experimenta.

O BaaS permite que os desenvolvedores se concentrem em escrever o código de front-end do aplicativo. Por meio de APIs (que são uma maneira de um programa fazer uma solicitação de outro programa) e SDKs (que são kits para construção de software) oferecidos pelo fornecedor de BaaS, eles podem integrar todas as funcionalidades de back-end de que precisam, sem construir o back-end si. Eles também não precisam gerenciar servidores, máquinas virtuais ou contêineres para manter o aplicativo em execução. Como resultado, eles podem criar e lançar aplicativos para dispositivos móveis e aplicativos web (incluindo aplicativos de página única) mais rapidamente.

*O lado do servidor refere-se a tudo o que está hospedado ou ocorre em um servidor em vez de em um cliente no modelo cliente-servidor da internet.

O que é back-end móvel como serviço (MBaaS)?

O back-end móvel como serviço (MBaaS) é um BaaS destinado especificamente à criação de aplicativos para dispositivos móveis. Embora algumas fontes considerem BaaS e MBaaS basicamente termos intercambiáveis, os serviços BaaS não precisam necessariamente ser usados para criar aplicativos para dispositivos móveis.

O que está incluído no BaaS?

Os provedores de BaaS oferecem vários recursos do lado do servidor. Por exemplo:

  • Gerenciamento do banco de dados
  • Armazenamento em nuvem (para conteúdo gerado pelo usuário)
  • Autenticação de usuário
  • Notificações push
  • Atualização remota
  • Hospedagem
  • Outras funcionalidades específicas da plataforma ou do fornecedor; por exemplo, o Firebase oferece indexação de pesquisa no Google

Os provedores de BaaS e MBaaS incluem o Google Firebase e o Microsoft Azure.

Quais são as diferenças entre BaaS e computação sem servidor?

Existe algumas semelhanças entre BaaS e computação sem servidor, pois em ambos o desenvolvedor só precisa escrever o código do aplicativo e não precisa pensar no back-end. Além disso, muitos provedores de BaaS também oferecem serviços de computação sem servidor. No entanto, existem diferenças operacionais significativas entre os aplicativos criados usando BaaS e uma verdadeira arquitetura sem servidor.

Como o aplicativo é construído

Os back-ends de aplicativos sem servidor são divididos em funções, cada uma das quais responde a eventos e executa apenas uma ação (consulte O que é FaaS?). Entretanto, as funcionalidades BaaS do lado do servidor, são construídas da maneira que o provedor quiser e os desenvolvedores não precisam se preocupar em codificar nada além do front-end do aplicativo.

Quando o código é executado

As arquiteturas sem servidor são orientadas por eventos, o que significa que são executadas em resposta a eventos. Cada função só é executada quando é acionada por um determinado evento e não é executada de outra forma. Os aplicativos criados com BaaS geralmente não são orientados por eventos, o que significa que exigem mais recursos do servidor.

Onde o código é executado

As funções sem servidor podem ser executadas de qualquer lugar e em qualquer máquina, desde que ainda estejam em comunicação com o restante do aplicativo, o que possibilita a incorporação de computação de borda na arquitetura do aplicativo pela execução do código na borda da rede. O BaaS não é necessariamente configurado para executar código de qualquer lugar, a qualquer momento (embora possa ser, dependendo do provedor).

Como o aplicativo é escalado

A escalabilidade é um dos maiores diferenciais que separam as arquiteturas sem servidor de outros tipos de arquitetura. Na computação sem servidor, o aplicativo é escalado automaticamente conforme o uso aumenta. A infraestrutura do fornecedor de nuvem inicia instâncias efêmeras de cada função conforme necessário. Os aplicativos BaaS não são configurados para escalar dessa maneira, a menos que o provedor de BaaS também ofereça computação sem servidor e o desenvolvedor construa isso em seu aplicativo.

Qual é a diferença entre BaaS e plataforma como serviço (PaaS)?

A PaaS fornece uma plataforma via nuvem para os desenvolvedores criarem seus aplicativos. Assim como a computação sem servidor e o BaaS, a plataforma como serviço (PaaS) elimina a necessidade de o desenvolvedor criar e gerenciar o back-end do aplicativo. No entanto, a PaaS não inclui lógica de aplicativo pré-criada do lado do servidor, como notificações por push e autenticação de usuário. A PaaS oferece aos desenvolvedores mais flexibilidade, enquanto o BaaS oferece mais funcionalidade.

Perguntas frequentes

O que é back-end como serviço (BaaS)?

Back-end como serviço (BaaS) é um modelo de nuvem em que os desenvolvedores terceirizam todas as responsabilidades do lado do servidor a um fornecedor terceirizado. Isso permite que os desenvolvedores se concentrem em escrever e manter o front-end de seus aplicativos, enquanto o fornecedor lida com tarefas nos bastidores, como hospedagem e gerenciamento de banco de dados.

Quais recursos específicos estão tipicamente incluídos em uma oferta de BaaS?

Os provedores de BaaS oferecem uma variedade de funcionalidades pré-criadas do lado do servidor que podem ser integradas por meio de APIs e SDKs. Os serviços comuns incluem autenticação de usuários, notificações push para aplicativos móveis, armazenamento em nuvem para conteúdo de usuários, gerenciamento de banco de dados e atualização remota.

Como o BaaS difere da computação serverless?

Embora ambos os modelos eliminem a necessidade de gerenciar a infraestrutura de back-end para desenvolvedores de front-end, eles funcionam de forma diferente no back-end. As arquiteturas serverless são orientadas por eventos, dividindo os aplicativos em funções individuais que são executadas apenas quando acionadas. Os aplicativos BaaS geralmente não são orientados por eventos e não escalam automaticamente criando instâncias de código, a menos que o provedor ofereça especificamente integração serverless.

Qual é a diferença entre BaaS e Mobile-Backend-as-a-Service (MBaaS)?

O MBaaS é essencialmente um BaaS otimizado especificamente para a criação de aplicativos móveis. O BaaS é uma categoria mais ampla que pode ser usada para qualquer tipo de aplicativo, incluindo aplicativos de página única baseados na web, enquanto o MBaaS se concentra em necessidades específicas de dispositivos móveis.

Como o BaaS se compara à plataforma como serviço (PaaS)?

Ambos os modelos eliminam a necessidade de os desenvolvedores gerenciarem o hardware e os sistemas operacionais de back-end. No entanto, a PaaS fornece uma plataforma para que os desenvolvedores criem sua própria lógica de back-end do zero. O BaaS oferece menos flexibilidade, mas mais funcionalidade pronta para uso, incluindo lógica de aplicativo pré-escrita, como integração social ou serviços de notificação.

Por que um desenvolvedor escolheria usar o BaaS?

Ao usar software pré-escrito e infraestrutura gerenciada, os desenvolvedores podem criar e lançar aplicativos rapidamente, pois não precisam gastar tempo criando o backend ou gerenciando máquinas virtuais e contêineres. No entanto, as arquiteturas serverless podem oferecer mais escalabilidade e flexibilidade para os desenvolvedores.