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

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.