E aí, vale a pena usar BaaS em aplicativos?

Entenda os Prós e Contras de usar Firebase e seus similares e escolha o melhor para seu aplicativo.

Renan Teles
Renan Teles
Published in
6 min readJan 21, 2017

--

Nesta última semana acabei vendo muitas pessoas comentarem sobre o Firebase e de como a plataforma é ótima. Após algumas conversas com amigos desenvolvedores, percebi que existem claramente vantagens e desvantagens da plataforma e que, principalmente, muitos não sabem identificar em que situação esse tipo de serviço é mais indicado.

Pois bem, resolvi juntar aqui os prós e contras de usar o famoso BackEnd As A Service, me baseando na experiência que tive nestes anos trabalhando com vários tipos de plataformas e backends diferentes.

Peraí, mas o que é BaaS?

BaaS ou BackEnd As A Service (MBaaS = Mobile BackEnd As A Service) é um serviço disponibilizado em que toda a estrutura do backend como: configuração de servidor, integração com banco de dados, sistema de push notification e outros serviços, que fazem parte do backend, estão completamente prontos para se integrar com o seu aplicativo.

Tudo isso é disponibilizado para você como um serviço e geralmente o valor a ser pago é proporcional à quantidade de utilização do serviço e demanda que sua aplicação possui.

Vantagens do BaaS

1. Estrutura Pronta

A primeira vantagem é clara: Você precisa criar todo o backend da tua aplicação e para isso você necessita desenvolver: toda a estrutura do banco de dados, servidor, configurações e integrações, criação dos endpoints em outras linguagens, além de vários outros detalhes. Porém, no BaaS, praticamente tudo isto já está pronto e esperando por você.

É claro que você precisa fazer algumas configurações, mas acredite, é muito mais prático utilizar o BaaS do que criar tudo do zero para cada projeto que você for iniciar.

2. Rápida Implementação

Uma vez que toda a estrutura já está pronta, fica evidente que configurar a plataforma no seu aplicativo levará muito menos tempo do que fazer tudo do zero.

Uma das principais ideologias do BaaS é justamente ser de fácil entendimento e de rápida implementação.

3. Segurança

Você está contratando um serviço, logo, toda a infraestrutura de segurança dos servidores, banco de dados, códigos-fontes, permissões e outros pontos, já estão lá para você. Além de que uma plataforma como o Firebase, por exemplo, possui apenas a equipe técnica da Google para cuidar desse tipo de setor, o que imagino ser uma equipe bem competente.

É claro que você pode muito bem configurar alguns protocolos de segurança no seu backend próprio (ou mesmo justificar que muito disso já é feito no servidor contratado). A questão é que olhando o macro, com certeza o BaaS é, no mínimo, mais prático por não deixar essa preocupação para você.

4. Múltiplas Ferramentas

Uma das grandes vantagens, na minha opinião, é justamente você ter plataformas mais completas e multifuncionais.

No Firebase, por exemplo, você pode usar ele simplesmente como uma API de acesso. Mas ele também possui: analytics, banco de dados, API própria, funcionalidade de real time para chats, integração com anúncios de propaganda, sistema de autenticação simples e social.. Enfim, são muitas ferramentas que essas plataformas de BaaS oferecem, tudo pronto, e isso é de brilhar os olhos.

5. Facilmente Escalável

Se você tiver dez usuários ou um milhão, a infraestrutura já está pronta para receber a qualquer momento. É claro que existem desvantagens que serão faladas no próximo tópico, mas não á para negar: Em poucos cliques sua aplicação já está apta para trabalhar com um rendimento semelhante e funcional para todos.

Desvantagens do BaaS

1. Controle e Acesso

Quer configurar detalhadamente como o seu backend está configurado? Ou percebeu que ele não está se comportando da maneira que deveria?

Pois é, você não poderá resolver esse problema sozinho e ficará na mão da assistência do serviço. O produto é deles, e você fica restrito à apenas o que lhe foi disponibilizado.

2. Limitações da Plataforma

Mesmo que grande parte das estruturas e linguagens dos serviços de BaaS disponíveis no mercado sejam similares, cada serviço tem seu desempenho melhor em algo.

Pegando o exemplo do Firebase, ele é extremamente eficaz na sua proposta de criar um sistema rápido e de fácil integração quando o assunto é chat e conversas em tempo real. Todavia, experimente criar uma API de consulta no banco com alguns SELECTs aninhados e/ou consultas mais complexas, e verá a performance cair exponencialmente comparados à outras estruturas de backend.

3. Documentação

Coloco a documentação com um ponto negativo por várias experiências que já tive com estas plataformas: A documentação oficial sempre te deixará na mão.

O grande problema é que elas disponibilizam tutoriais básicos e medianos, mas qualquer tipo de problema de produção um pouco mais chato, ela já fica inutilizável. Sem falar das vezes que mesmo a parte mediana já não atende você. O que não é raro.

Como você está dependente de utilizar a API ou linguagem própria deles, também não é incomum atualizações na plataforma que, muitas vezes, são esquecidas de atualizar na documentação. Acontece com frequência. 😟

4. Performance

Pois é. Aí você possui aquelas consultas aninhadas que comentei anteriormente, ou sua aplicação utiliza de estruturas que são justamente o calcanhar de Aquiles daquele seu BaaS. Vai ajustar a perfomance como?

Quando o backend é seu é uma maravilha. Inúmeras maneiras de se otimizar um banco de dados ou mesmo seus próprios servidores. Já no BaaS o buraco é mais embaixo, e novamente, você fica a mercê da plataforma.

5. Fechou, e agora?

Pra quem está lendo este artigo e fez alguma aplicação própria ou de um cliente no falecido Parse, deu até uma dor no coração agora.

Pois é, Parse foi para o Facebook tudo que o Firebase está sendo para o Google. Mas no final, a grande rede social achou que não estava dando o retorno esperado e que não valia a pena mais continuar com a plataforma. E tchau!

Ok! Tivemos um ano para migrar tudo. Mas com certeza é uma dor de cabeça enorme.

O Firebase vai sofrer igual? Só o tempo dirá. O Google está levando ele à outro patamar e o incluindo em vários serviços. Mas você sempre estará na mão da decisão deles.

Quando eu recomendo usar BaaS?

Da experiência que tive, só digo uma coisa: Quem já viu um aplicativo de cliente tendo que migrar completamente pra outro lugar, por que uma plataforma de BaaS fechou, nunca mais quer voltar para este tipo de estrutura.

Todavia, eu realmente acredito que o BaaS não só tem mercado, como é muito útil. Para finalizar, cito 3 situações em que acredito que BaaS é ótimo:

  1. MVP: Você precisa criar um produto mínimo viável? BaaS na hora. Você só irá precisar do desenvolvedor de frontend, é rápido, de fácil implementação e muito mais barato que criar tudo com um desenvolvedor. E ainda rola fazer muitos testes para validar o seu negócio antes de criar o próprio backend.
  2. Pequenas Aplicações/Aplicações Pessoais: Sabe aquele projeto que você quer fazer, mas trabalha o dia todo e não tem tempo de criar o backend (ou mesmo não tem essa skill)? Pois é, BaaS é pra você com certeza.
  3. Protótipos: Precisa criar uma aplicação demonstração? Aquele projeto da faculdade? Quer apenas testar uma chamada de um aplicativo? Bom, não precisa criar um backend inteiro para isso. Você pode muito bem usar um BaaS. Ou, você também pode usar uma ferramenta que simula uma API, como já citei no meu artigo 13 ferramentas que todo desenvolvedor mobile deveria conhecer.

Me conte nos comentários o que acha sobre o BaaS e se já teve alguma experiência marcante como a que eu tive. Compartilhem o artigo com os amigos e se inscrevam pois tem artigo toda semana :D

--

--

Renan Teles
Renan Teles

Ama desenvolver para mobile, adora empreender e se comunicar com as pessoas é um prazer.