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.
Após ler este artigo, você será capaz de:
Copiar o link do artigo
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.
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 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.
Os provedores de BaaS oferecem vários recursos do lado do servidor. Por exemplo:
Os provedores de BaaS e MBaaS incluem o Google Firebase e o Microsoft Azure.
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.
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.
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.
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).
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.
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.