Backend as a Service – O que é?

Backend as a Service – O que é?

Backend as a Service – O que é?

Um BaaS ou mBaaS ou Backend como Serviço é uma plataforma que automatiza o desenvolvimento de backend e cuida da infraestrutura de nuvem. Utilizando um BaaS, você terceirizará as responsabilidades inerentes a manutenção e gerenciamento de servidores para um terceiro e para focar no desenvolvimento do frontend. Além disso, um BaaS fornecerá um conjunto de ferramentas para ajudá-lo a criar um código de backend e acelerar o processo de desenvolvimento. Ele está pronto para usar recursos como gerenciamento de dados, APIs, integrações de mídia social, armazenamento de arquivos e notificações push.

Abaixo, o que você aprenderá lendo este artigo:

  •  O que é um backend como serviço
  • Frontend vs. Backend
  • As diferenças entre um BaaS e um backend personalizado
  • BaaS vs. MBaaS
  • As razões para usar um backend como um serviço
  • Quando utilizar um BaaS
  • Vantagens e desvantagens de um backend como serviço
  • BaaS versus provedores de infraestrutura
  • Principais características de um backend como serviço
  • Quem deve usar um BaaS
  • Arquitetura de uma BaaS
  • Comparação de provedores de serviços de BaaS

Frontend x Backend

Segue uma explicação simples das diferenças entre o frontend e o backend. Todo aplicativo tem uma parte que o usuário vê que é chamada de frontend. Há também uma parte que o usuário não vê que é chamada de backend. Estas duas partes se combinam por meio de APIs.

frontend vs backend

BaaS x Backend Customizado

Os exemplos a seguir ajudarão você a entender as diferenças entre o código personalizado (criar o backend na unha) e o uso de um BaaS.

Exemplo 01 – BaaS x AWS EC2

Imagine que você deseje criar um novo projeto de software e não usará um BaaS. O primeiro passo para começar a desenvolver um backend é configurar os servidores.

Abaixo, os passos a seguir:

Faça o login na AWS ou em qualquer outra nuvem.

  • Vá para instâncias
  • Inicie uma Instância
  • Selecione o sistema operacional
  • Selecione o tamanho da instância, tipo
  • Configurar detalhes da instância
  • Número de instâncias
  • Rede
  • IP
  • Monitoramento
  • Outras configurações como Auto Scaling, IAM, etc
  • Adicionar armazenamento
  • Configurações de segurança

Tudo bem, sua instância está funcionando e agora você pode começar a codificar! Na verdade não! Esta é apenas a primeira etapa do processo, e você ainda precisará instalar o servidor da Web, o banco de dados, a estrutura etc. Depois de tudo isso, você poderá iniciar a codificação. O tempo para executar esse processo pode variar de algumas horas (para um pequeno projeto com desenvolvedores avançados de backend) até mais de um dia para ambientes grandes.

Este mesmo processo usando um backend como um serviço será feito com alguns cliques e não levará mais do que alguns minutos.

Exemplo 02 – BaaS x Codificar Login

Imagine que após configurar o servidor você queira desenvolver o primeiro recurso do seu aplicativo. Vamos considerar que o primeiro recurso que você codificará é um login social no Facebook. Vou supor que o desenvolvimento será terceirizado para e que custará R$100/ hora. Essa tarefa simples levará cerca de 16 horas e custará R$1600.

Por outro lado, usar um BaaS permitirá que você implemente o mesmo recurso em menos de uma hora. Você terá uma economia de 15 horas e R$1500. Nada mal para uma implementação de uma tarefa simples!

Exemplo 03 – Configurações de segurança do LGBD ou GDPR

Os requisitos de privacidade da LGBD – Lei Geral Brasileira de Dados ou da GDPR – Genereal Data Privacy Requirements são bastante complexos e a implementação exigirá muito esforço de engenharia. Os requisitos vão desde a implementação de HTTPS para dados de trânsito como criptografar dados do lado do servidor em repouso (e várias outras condições). A quantidade exata de horas de engenharia para atender a todos os elementos dependerá do tamanho e complexidade do projeto, mas pode facilmente ultrapassar 100 horas de implementação.

Terceirizar esta implementação para uma empresa de backend como serviço faz muito sentido em especial para projetos pequenos e de médio portes. Digo isto, visto que as plataformas de backend podem diluir o investimento feito para implementar configurações de LGBD ou GDPR entre centenas ou milhares de aplicativos, e o custo por aplicativo será mínimo. Uma empresa com um único projeto terá que compensar todo o investimento em apenas uma aplicação. Mesmo que o aplicativo seja bem-sucedido, ele demandará muito mais tempo para ter o retorno do investimento.

BaaS x MBaaS

BaaS e MBaaS são praticamente as mesma coisa! Você pode usar um backend como um serviço para projetos web ou projetos para dispositivos móveis. É reconhecido como um MBaas ou mobile backend as a service, se utilizado para o desenvolvimento de dispositivos móveis.

Por que usar um backend como serviço (backend as a service)?

Uma plataforma de BaaS ajudará você a resolver dois problemas:

  • Gerenciar e dimensionar a infraestrutura em nuvem
  • Acelerar o desenvolvimento de back-end

As razões para ser usar uma plataforma de Backend as Service podem ser divididas em aspectos comerciais e técnicos.

Razões comerciais para se utilizar um BaaS

As vantagens de um backend como serviço estão relacionadas principalmente a ganhos de produtividade e terceirização de responsabilidades de gerenciamento de servidores. Em particular, para projetos de pequeno a médio porte, você terá benefícios substanciais usando uma plataforma de backend. Com serviço. A matemática é bem simples, um engenheiro de backend / infraestrutura custará cerca de R$ 100 mil / ano no Brasil. Terceirizar parte do trabalho para um terceiro permitirá compensar esse custo. A outra vantagem é reduzir o Time to Market de um projeto de software. Esperar vários meses para fornecer um produto de software pode matar a oportunidade de mercado ou, pelo menos, fazer com que você comece atrás da concorrência.

Então, as vantagens de um BaaS são:

  • Reduzir o Time to Market
  • Reduzir o custo total de desenvolvimento
  • Utilizar menos desenvolvedores de backend (mesmos resultados com menos desenvolvedores)
  • Terceirizar o gerenciamento da infraestrutura de nuvem

Razões técnicas para se utilizar um BaaS

Bons desenvolvedores de backend são difíceis de se encontrar e são profissionais bem pagos. Então, se você encontrar um deles, certifique-se de usar seu tempo com sabedoria e os coloque para entregar código de alto valor. Atividades repetitivas e boiler plate code é um desperdício de tempo e dinheiro. Logo, deve ser evitado a quaisquer custo para profissionais bem remunerados. A outra vantagem de um serviço de backend é que ele permitirá que os desenvolvedores de frontend se concentrem naquilo em que são melhores. Ou seja, fornecendo código de frontend e excelente usabilidade para seu aplicativo.

Então, as vantagens técnicas de um BaaS são:

  • Foco no desenvolvimento de frontend
  • Exclui stack redundante de código
  • Não há necessidade de programar boiler plate code
  • Padronização do ambiente de codificação
  • Permitir que os desenvolvedores de backend programem linhas de código de alto valor
  • Permitem clonar aplicativos e executar ambientes de teste de forma automatizada
  • Configurações de segurança e procedimentos de backup pré-configurados

Quando utilizar um backend como serviço?

Seguem três casos de uso bastante comuns para seu utilizar Backend as a Service:

  • Criação de um  MVP – Produto Mínimo Viável
  • Aplicativos que exigem um pequeno número de integrações
  • Aplicações corporativos que não são de missão crítica
  • Para os presentes casos de uso, usar um BaaS é uma boa escolha e economizará muito dinheiro e tempo.

Vantagens e Desvantagens de um BaaS

Aqui estão os prós e contras de usar um backend as a service.

Vantagens de um backend como serviço

  • Velocidade de desenvolvimento – é super rápido
  • Preço de desenvolvimento – é muito barato
  • É serverless e você não precisa gerenciar a infraestrutura

Desvantagens de um backend como serviço

  • Menos flexibilidade em comparação com a codificação customizada
  • Um nível mais baixo de personalização em comparação com um backend personalizado
  • Vendor Lock-In para plataformas de código fechado

BaaS x AWS x Azure x Google Cloud

Vou explicar aqui, de forma direta, as diferenças entre IaaS, PaaS e BaaS.

Primeiro, as definições.

  • IaaS significa Infrastructure as a Service – Exemplos são AWS, Google Cloud, Azure
  • PaaS significa Platform as a Service – Exemplos são Heroku, Engine Yard
  • BaaS significa Backend as a Service – os exemplos são Back4App, Parse, Firebase

IaaS x PaaS x BaaS

Toda vez que você passa de IaaS para PaaS e de PaaS para BaaS, você adiciona camadas de serviço (ou camadas de valor) a seu aplicativo.

Aqui está uma visão geral simples:

IaaS x PaaS x BaaS

  • IAAS = Data Center + Servidores + Armazenamento + Rede
  • PAAS = IAAS + Implantar + Gerenciar + Escalar
  • BAAS = PAAS + Recursos para construir backend

Quais recursos têm um Backend as a Service?

Um backend como um serviço fornecerá recursos que podem ser implantados em aplicativos de todos os tipos. Aqui estão os recursos mais comuns de um backend como um serviço.

  • Gestão de dados
  • Autenticação de usuário
  • Integração Social (Facebook, LinkedIn, Twitter, etc.)
  • Verificação de e-mail
  • Notificações via push
  • Funções de código de nuvem
  • Geolocalização
  • Notificações via push
  • Logs
  • CDN e Cache
  • Infraestrutura (configurações de segurança, dimensionamento automático, backup de dados, otimização de banco de dados)

Quem deve utilizar um Backend as a Service?

Uma plataforma BaaS é um serviço técnico e projetado para desenvolvedores. Um usuário sem habilidades especializadas enfrentará desafios para usá-lo. Os casos de uso mais comuns são:

  • Engenheiros de frontend com conhecimento limitado em desenvolvimento de backend
  • Engenheiros de backend que desejam acelerar o desenvolvimento
  • Engenheiros que desejam terceirizar tarefas de baixo valor / repetitivas para terceiros

Como é uma arquitetura de BaaS?

De um modo geral, um backend como um serviço é dividido em três camadas diferentes. A primeira camada é a fundação e contém os servidores de banco de dados. Um cluster de banco de dados terá pelo menos dois servidores para replicar dados e uma rotina de backup para permitir que os dados sejam recuperados. A segunda camada é o cluster de aplicativos e contém vários servidores para processar solicitações. A quantidade de servidores flutua ao longo do dia, e os procedimentos de escalonamento automático são necessários para atender o grupo com a quantidade correta de servidores. A terceiro camada conecta os servidores de aplicativos à Internet e é composto por balanceadores de carga (load balancer)e CDNs.

Empresas de Backend as a Service

Aqui está uma lista abrangente de provedores de BaaS e mBaaS.

  1. Back4App

Considerando que eu investi muito tempo escrevendo este artigo e agora são 23h08, vou começar com o Back4App, que é a empresa para a qual trabalho. Por favor, teste primeiro esta plataforma. Você vai gostar tanto que você não precisará experimentar as outras plataformas e economizará tempo. Se você não gostar, envie um e-mail para [email protected] e diga os motivos.

Nosso produto possui os seguintes recursos: gerenciamento de banco de dados, live queries (banco de dados em tempo real), graphQL, notificações push, login social, integração de SDK, gerenciamento de usuários, consultas geográficas (geoqueries), CDN, cache e vários outros.

Nossa stack de tecnologia é baseada em código aberto. Nosso stack abrange Parse Server, MongoDB ou Postgrees e NodeJS. Também temos um conjunto de implementações que melhoram o desempenho geral e painéis de controle que tornam a plataforma mais simples de se usar. É como hospedar o Word Press sozinho versus hospedar um serviço de hospedagem profissional.

Outro aspecto importante da nossa plataforma é que cuidamos da escala. Temos alguns aplicativos muito grandes rodando conosco e uma arquitetura bem projetada para oferecer desempenho e confiabilidade.

Os planos começam com uma camada grátis indicada para aplicações que estão em desenvolvimento. Os planos pagos iniciam em US$ 5 / mês. O nível gratuito é projetado para fins de desenvolvimento e aprendizado, e os aplicativos em produção usualmente demandam um plano pago.

As vantagens de usar o Back4App são as seguintes:

  • Fácil de usar: a plataforma é realmente simples de usar e não leva mais de cinco minutos para começar a codificar um aplicativo simples.
  • Flexibilidade: você pode gerenciar suas versões de código-fonte, e o código-fonte pode ser adaptado, se necessário, para um melhor desempenho.
  • Hospedagem: Várias opções de hospedagem estão disponíveis e serviço é muito confiável. Ele oferece uma estrutura totalmente serverless ou instâncias dedicadas.
  • CDN – Content Delivery Network: os aplicativos hospedados no Back4App distribuirão automaticamente o conteúdo globalmente. Todas as regiões, exceto a China (estamos trabalhando nela e disponibilizamos em breve).
  • GraphQL: essa é uma nova implementação e fornecerá a linguagem de consulta mais avançada para sua API. Os benefícios são recuperar dados em uma única solicitação e de maneira previsível.
  • Suporte: suporte 24/7. Diferentes níveis de suporte estão disponíveis de acordo com o orçamento de cada cliente.
  1. Parse

É um frameword de código aberto suportado por uma grande comunidade de desenvolvedores. Tem mais de 30k estrelas e 15 forks no Github. O objetivo do Parse é fornecer aos desenvolvedores uma maneira de criar aplicativos mais rapidamente, e a estrutura fará isso fornecendo aos desenvolvedores uma stack tecnológica que abrange um módulo de servidor de API para o Node.JS, um painel para gerenciar aplicativos, SDK e bibliotecas, adaptadores e documentação.

A presente tecnologia costumava ser hospedada pelo Facebook, mas eles decidiram não fornecer mais serviços de hospedagem em 2017. Portanto, você precisa hospedar em seu próprio servidor ou usar serviços de hospedagem especializados. As alternativas ao self-hosting do Parse são os principais provedores de nuvem, como AWS, Azure ou Digital Ocean. A Parse é totalmente gratuito e o único custo que você incorrerá é o de hospedagem.

As vantagens de usar o Parse são as seguintes:

  • Gerenciamento de dados: é possível armazenar tipos de dados essenciais, consultas, locais, imagens com apenas algumas linhas de código. O Parse permite que você gerencie, pesquise, filtre e atualize seu conteúdo com um navegador de dados baseado na web.
  • Simplicidade: o framework é simples e a curva de aprendizado levará menos de uma hora para pequenos projetos.
  • Flexibilidade: Trabalhar com uma estrutura de código aberto leva a versatilidade para o próximo nível. Você pode adaptar o código-fonte e ajustar para as suas necessidades específicas.
  • Código personalizado: o Parse fornece um recurso chamado Cloud Code. Você poderá codificar personalizado usando JavaScript com este recurso.
  • Multiplataforma: há muitos SDKs disponíveis e você pode usar o Parse em quase todas as plataformas. Ele lida com tecnologias móveis, Web e IoT.
  • GraphQL: fornece a linguagem de consulta mais avançada para sua API. As vantagens são recuperar dados em uma única chamada e de maneira previsível.
  1. CloudKit

É uma plataforma de backend de código fechado e gerenciada pela Apple. É  usada para desenvolver aplicativos para iOS e possui SDK nativo. O serviço está disponível desde 2015 e é fácil de integrar aos aplicativos iOS. A plataforma fornece serviços de banco de dados, autenticação e armazenamento de arquivos, permitindo que os desenvolvedores se concentrem no desenvolvimento do lado do cliente. O CloudKit é basicamente um repositório de dados com suporte de autenticação de identificação iCloud essencial e uma API na frente dele. Ele tem menos recursos em comparação com outros serviços listados aqui. O preço aumenta muito rapidamente e custa US $ 100 para cada 10 req / s.

A principal vantagem de usar o CloudKit é o SDK nativo para iOS. Os aplicativos nativos são executados no sistema operacional do iPhone e têm acesso completo ao dispositivo e funcionalidades.

  1. Backendless

Eles são um dos primeiros players neste mercado e atuam sem investimento de fundos de capital de risco. Esse fornecedor fornece dois tipos de hospedagem. Você pode usar o serviço online ou rodar a estrutura localmente. Há um nível gratuito limitado para hospedagem on-line e planos pagos a partir de US $ 15 / mês.

As vantagens de usar o Backendless são as seguintes:

  • Versão Local: você pode executar esta versão localmente em seu servidor ou em qualquer plataforma de nuvem.
  • Recurso de cache: esse recurso é conveniente e está disponível em hospedagem local ou em nuvem.
  • Suporte: Eles fornecem suporte 24/7 aos usuários.
  1. Firebase

É uma plataforma de código fechado que foi adquirida pelo Google em 2014 e o serviço de backend ajuda a produzir aplicativos rapidamente. O Firebase abrange recursos como análise, autenticação, banco de dados em tempo real e hospedagem. Existe um nível limitado disponível e planos pagos a partir de $ 25 / mês.

O Google começou a investir pesadamente no Firebase em 2016 e a estratégia abrange três pilares principais:

Recursos de desenvolvimento: este bloco contempla ferramentas para acelerar o desenvolvimento de aplicativos móveis e inclui autenticação do usuário, armazenamento, banco de dados em tempo real, aprendizado de máquina (machine learning) e funções de nuvem. O Cloud Firestore permite sincronizar dados em vários dispositivos, consultar, estruturar dados com coleções / documentos e sincronizar dados on-line / off-line.

Serviços do Analytics: o Firebase fornece um conjunto abrangente de serviços de análise para dispositivos móveis que ajudarão você a melhorar o desempenho geral do aplicativo. Esses serviços incluem monitoramento de desempenho, Google Analytics, relatórios de falhas e um laboratório de testes para executar testes automatizados.

Crescimento: o Firebase integra-se a um serviço chamado Ad Mob, que permite a veiculação de anúncios no aplicativo. As outras ferramentas de crescimento fornecidas pelo Firebase são testes A / B, mensagens e links dinâmicos.

As vantagens de usar o Firebase são as seguintes:

  • Banco de dados em tempo real: esse recurso permitirá a criação, por exemplo, de aplicativos de mensagens como o WhatsApp, que atualizará dados em dispositivos quase instantaneamente.
  • Aprendizado de máquina: este é um recurso interessante disponível no Firebase e não disponível em outros backends como serviço. Ele fornece um conjunto de APIs prontas para uso com casos de uso padrão de aprendizado de máquina, como reconhecimento de face, digitalização e reconhecimento de textos.
  • Ad Mob: o presente recurso permite gerar receita com seu aplicativo e integrá-lo a uma rede global de anúncios gerenciada pelo Google.
  1. Kinvey

É um backend focado em grandes corporações e a Progress Software adquiriu a Kinvey em 2017. Permitem que você opere aplicativos corporativos usando um ambiente serverless, e os recursos são semelhantes a outros provedores de backend. Ele cobre banco de dados, autenticação, notificações por push e serviços de localização. Todos os planos incluem hospedagem e operação. A versão gratuita é limitada a 100 usuários, e o preço é bem salgado, e a versão corporativa começa em US $ 24.000 / ano

As vantagens de usar o Kinvey são as seguintes:

  • Integrações Empresariais Populares: Como mencionei, esta plataforma de backend é adequada para grandes empresas. O serviço abrange integrações como Salesforce, SAP, Workday, Microsoft Active Directory e Oracle.
  • Ferramentas de inteligência operacional: relatórios de conformidade e análise. Ele fornece aplicativos compatíveis com HIPAA para empresas de saúde.
  • Suporte: 24/7 disponível.
  1. AWS Amplify

É uma biblioteca de código aberto que funciona em conjunto com o Amazon Web Services. Ele oferece suporte a desenvolvedores para criar aplicativos escalonáveis sem servidor e integra-se suavemente com iOS, Android, React Native e outros frontends da web. Os recursos disponíveis abrangem o Google Analytics, Notificações, AR / VR, armazenamento e APIs. O serviço tem um pequeno nível gratuito e um plano Pay as You Go para ambientes de produção.

As vantagens de usar o AWS Amplify são as seguintes:

  • CDN – Content Delivery Network: é super fácil de integrar com o CloudFront e implantar conteúdo globalmente.
  • GraphQL: Amplify fornece um recurso chamado GraphQL Transform, que facilita o processo de desenvolvimento.
  • Implantações atômicas: esse recurso permitirá que seu aplicativo continue funcionando mesmo se o processo de construção falhar em novos lançamentos.

8. Azure Mobile Apps

A Microsoft não poderia estar fora deste jogo e também tem um Backend as a Service. A plataforma de backend integra-se ao Xaramim (frontend cross-platform) e ao Azure.

As vantagens de usar o Azure Mobile Apps são as seguintes:

  • Protocolos de segurança: A Microsoft fornece segurança de nível corporativo para criar aplicativos, e eles são bons nisso.
  • Sincronização Off-Line: Este recurso é útil e permite que os usuários sincronizem dados automaticamente.
  • Integrações AD: Esse é outro recurso corporativo que permitirá o login da empresa.
  1. Kii

É uma plataforma de desenvolvimento de backend para jogos, IoT e aplicativos em geral. Funciona em nuvens públicas, privadas e locais. Os recursos contêm notificações push, gerenciamento de dados e usuários, testes A / B, geolocalização e análises.

As vantagens de usar o Kii são as seguintes:

  • Várias opções de implantação: você pode executar a solução em qualquer nuvem ou localmente.
  • IoT: A plataforma está pronta para usar recursos para interações de IoT.
  • Soluções de Nicho: Eles têm soluções específicas para Agricultura, Gestão de Ativos, Beacons, etc.
  1. Kumulos

É uma plataforma de backend criada para empresas de desenvolvimento de aplicativos móveis e agências digitais. Ajuda estas empresas a desenvolver aplicativos para seus clientes. A lista de recursos inclui notificações por push, relatórios e análises e otimização da loja de aplicativos. Ele possui três níveis de preços que abrangem Startups, Agências Digitais e Empresas.

As vantagens de usar o Kumulos são as seguintes:

  • Relatórios e diagnósticos de falhas: ajuda os desenvolvedores a encontrar problemas mais rapidamente e a tomar medidas para solucionar.
  • Otimização de App Store: Esta é uma característica única entre todos os BaaS e disponível apenas na Kumulos.
  • Console da agência: é conveniente e permite que uma empresa de desenvolvimento de software gerencie vários aplicativos em uma conta corporativa.

Outras plataformas de BaaS

Abaixo, você pode ver uma lista com alguns outros provedores de backend como serviços.

  • Playfab (backend para jogos)
  • Appcelerator
  • BaasBox
  • MongoDB Stich
  • Oracle Mobile Hub
  • Game Sparks (backend para jogos)
  • Baqend
  • Convertigo
  • Kuzzle
  • Hoodie (backend auto-hospedado)

Conclusão

Os aplicativos têm um frontend, um backend e APIs conectando ambos os lados. Um backend como um serviço ou Baas (mBaaS para aplicativos móveis) ajudará você a automatizar parte do trabalho de desenvolvimento de código de backend. Os Backend as a Service também terão a responsabilidade de implantar, gerenciar e escalar aplicativos. Os principais motivos para usar um backend como serviço são a redução do tempo de lançamento de um aplicativo, menores custos de desenvolvimento e a terceirização do gerenciamento da infraestrutura. Os recursos mais comuns de um BaaS são a modelagem de dados, autenticação do usuário, integração social, notificações push e outros. Os principais players do mercado incluem Back4App, Parse e Firebase.

Então, o que você acha dos resultados que tivemos? Ajudou você a descobrir o que é um backend como serviço ou Backend as a Service?

Se você gostaria de adicionar informações a este tutorial, entre em contato comigo pelo e-mail [email protected], e terei prazer em inserir suas observações.

Gostaria de saber mais? Por favor, leia estes outros artigos:

Backend as a Service

What is a backend as a service

New approach to backend as a service market

O que e um Backend as a Service

What is a Backend as a Service

Backend as a Service

 


Leave a reply

Your email address will not be published.