ProHoster > Blog > administração > Visão geral dos serviços de nuvem para desenvolvimento de back-end de aplicativos móveis
Visão geral dos serviços de nuvem para desenvolvimento de back-end de aplicativos móveis
O desenvolvimento de back-end é um processo complexo e caro. Ao desenvolver aplicativos móveis, muitas vezes é dada mais atenção. É injustificado, porque toda vez você tem que implementar cenários típicos para aplicativos móveis: enviar uma notificação push, descobrir quantos usuários estão interessados na promoção e fazer um pedido, etc. Quero uma solução que permita focar nas coisas que são importantes para a aplicação sem perder qualidade e detalhes na implementação das secundárias. E há soluções!
Esses serviços são chamados Mobile Backend-as-a-Service (MBaaS). Os processos de criação de um back-end com a ajuda deles são simplificados em comparação com o desenvolvimento "manualmente". Esta é a economia na contratação de um desenvolvedor de back-end separado. E o fato de o provedor de MBaaS cuidar de todas as questões relacionadas à estabilidade do servidor, balanceamento de carga, escalabilidade e outras dificuldades de infraestrutura dá confiança na qualidade do resultado e é a principal vantagem desses serviços.
Neste artigo, veremos vários serviços grandes e comprovados: Microsoft Azure, AWS Amplify, Google Firebase, Kumulos.
Os pontos em que consideraremos os serviços: a funcionalidade do back-end e da análise, a complexidade da integração do serviço, a confiabilidade e estabilidade do trabalho e a política de preços. Vamos passar por cada serviço e observar suas características de acordo com esses critérios.
e Microsoft Azure
e Microsoft Azure - Infrastructure-As-A-Service (IaaS) é um serviço que contém funcionalidade BaaS completa e ajuda na criação de um back-end para aplicativos móveis.
MBaaS
e Microsoft Azure tem um conjunto completo de funcionalidades para criar um back-end para um aplicativo móvel. Processamento de notificações push, dimensionamento automático, sincronização de dados, integração de mídia social e muito mais.
Um recurso importante do Azure é a localização geográfica dos servidores. Eles estão localizados em 54 regiões do mundo, o que aumenta a probabilidade de escolher um servidor adequado para você em termos de latência. Como apenas certas regiões sofrem com mais frequência em caso de mau funcionamento, pode-se supor que quanto mais regiões, menor a probabilidade de chegar à muito "instável". A Microsoft afirma ter mais regiões do que qualquer outro provedor de nuvem. Este é definitivamente um plus.
Analítica
O serviço oferece a capacidade de monitorar o desempenho dos aplicativos em tempo real e coletar relatórios sobre “quedas”. Isso permite que você localize e resolva instantaneamente o problema.
Também no Azure, você pode usar sua própria biblioteca para coletar análises em aplicativos: coletar métricas básicas (informações do dispositivo, informações da sessão, atividade do usuário e muito mais) e criar eventos personalizados para rastreamento. Todos os dados coletados são imediatamente exportados para o Azure, permitindo que você realize trabalhos analíticos com eles em um formato conveniente
Funcionalidade adicional
Também existem recursos interessantes, como teste de compilações de aplicativos em dispositivos reais, configurações de CI / CD para automatizar o processo de desenvolvimento e ferramentas para enviar compilações de aplicativos para testes beta ou diretamente para a App Store ou Google Play.
O Azure permite que você use uma estrutura pronta para uso projetada para trabalhar com mapas e dados geoespaciais, o que facilita o trabalho com esse formato.
De particular interesse é a possibilidade de resolver problemas usando inteligência artificial, com o qual você pode prever vários indicadores analíticos e usar ferramentas prontas para uso para visão computacional, reconhecimento de fala e muito mais.
Complexo de integração
O serviço Microsoft Azure fornece SDK para as principais plataformas móveis (iOS e Android) e, o que é raro, para soluções de plataforma cruzada (Xamarin e PhoneGap).
Em geral, os usuários reclamam da interface complexa e da alta barreira de entrada. Isso indica possíveis problemas na integração do serviço.
É importante entender que um limite de entrada alto não é um caso especial do Azure, mas um problema geral do IaaS. Por exemplo, o Amazon Web Services, que será discutido a seguir, também é ainda mais propenso a essa doença.
Confiança
A estabilidade do serviço da Microsoft parece decente. Pode-se ver que pelo menos uma vez por mês pode haver problemas de curto prazo em diferentes regiões. Esta imagem fala da estabilidade suficiente do serviço, os problemas ocorrem raramente, em certas regiões e são corrigidos com extrema rapidez, permitindo que o serviço mantenha um uptime decente.
Isso é confirmado pela lista de incidentes recentes nos servidores do Azure - a maioria deles são avisos de curto prazo, e a última vez que os servidores caíram foi no início de maio. As estatísticas confirmam o quadro de serviço estável.
de custo
В política de preços O Microsoft Azure tem diferentes taxas de pagamento pelo serviço, também existe um plano gratuito com certos limites, o que é suficiente para testar. É importante lembrar que o Azure é um serviço IaaS, a maioria dos quais, pelas suas especificidades e complexidade de cálculo dos recursos gastos, sofrem com a dificuldade de prever o custo do trabalho. Muitas pessoas enfrentam dificuldades e muitas vezes até a incapacidade de calcular corretamente as capacidades utilizadas. A conta real pode diferir significativamente da esperada.
Além disso, o Azure, além desses planos, possui serviços pagos separados: Domínio do Serviço de Aplicativo, Certificados do Serviço de Aplicativo do Azure e Conexões SSL. Todos eles se relacionam com a administração de sua infraestrutura, não vamos tocar neles.
Em muitas análises, os usuários reclamam da complexa política de preços e da incapacidade de prever o custo do serviço. A calculadora proposta pela Microsoft é chamada de inútil e o serviço em si é extremamente caro.
Conclusão para o Azure
O serviço Azure da Microsoft é uma ferramenta funcional e estável para uso como o principal provedor de MBaaS. O fato de o serviço inicialmente fornecer uma infraestrutura completa abre muitas oportunidades para um maior desenvolvimento do seu back-end além dos aplicativos móveis. Um grande número de servidores e um grande número de regiões onde eles estão localizados ajudam você a escolher a latência certa para você. Comentários positivos de usuários confirmam isso. Dos pontos negativos - um alto limite de entrada e dificuldade em prever o custo do serviço.
Encaixa? Siga estes links para conhecer mais detalhadamente o Microsoft Azure, saiba todos os detalhes e comece a usá-lo:
Amazon Web Services (AWS) é o segundo IaaS que chegou à nossa seleção. Representa um grande número de serviços e é interessante porque, por analogia com o Microsoft Azure, possui um conjunto dedicado de funcionalidades chamado Amplificar AWS, que é essencialmente o back-end móvel. Anteriormente, você pode ter ouvido o nome AWS Mobile Hub, que há muito tempo é o principal serviço que fornece a funcionalidade MBaaS. Como пишут Na própria Amazon, o Amplify é um Mobile Hub revisado e aprimorado que resolve os principais problemas de seu antecessor.
De acordo com a Amazon, o Amplify tem a confiança de muitas grandes empresas, incluindo Netflix, Airbnb e muitas outras.
MBaaS
A solução móvel da Amazon permite que você configure rapidamente todas as funcionalidades necessárias para um aplicativo móvel. Quer se trate de lógica de servidor, armazenamento de dados, autorização de usuário ou processamento e entrega de conteúdo, notificações e análises.
A Amazon também fornece todas as condições necessárias em termos de infraestrutura, como dimensionamento, balanceamento de carga e muito mais.
Analítica
Um serviço separado é responsável pela análise Amazon identificar, onde pode segmentar o público e realizar campanhas de segmentação em larga escala através de diferentes canais (push notifications, SMS e email) para atrair utilizadores para o serviço.
O Pinpoint fornece dados em tempo real, você pode criar segmentos de público dinâmicos, analisar seu engajamento e otimizar sua estratégia de marketing com base nesses dados.
Funcionalidade adicional
Amazon Amplify fornece acesso ao serviço Farm de dispositivos da AWS para testar compilações de seus aplicativos em dispositivos reais. O serviço permite que você conduza testes automatizados paralelos de seus aplicativos em uma variedade de dispositivos físicos. Testes manuais também estão disponíveis.
Serviço Console do AWS Amplify é uma ferramenta para implantar e hospedar recursos de servidor e aplicativos da web com a capacidade de configurar CI / CD para automatizar o processo de desenvolvimento.
Também incomum é a possibilidade de introduzir bots de voz e texto em aplicativos móveis “fora da caixa” como uma interface para interação do usuário. Funciona no serviço Amazon-Lex.
Curiosamente, o AWS Amplify também fornece uma pequena a biblioteca componentes de UI prontos para sua aplicação React Native, que podem servir como uma leve aceleração do processo de desenvolvimento, ou ser usados em um protótipo ou MVP do seu projeto.
Complexo de integração
O Amazon Amplify fornece um SDK para iOS, Android, JavaScript и Reagir Nativo e bastante detalhado. documentação. É importante observar que, além do REST, o serviço também oferece suporte ao GraphQL.
Conforme discutido no processo de análise do Azure, uma alta barreira à entrada é um problema comum para todos os IaaS. A Amazon não é exceção, muito pelo contrário. Este é provavelmente um dos serviços mais difíceis de entender. Isso se deve ao grande número de ferramentas diferentes que a AWS possui. Aprender a AWS do zero levará um tempo significativo. Mas se você se limitar apenas ao Amplify, poderá implementar uma solução funcional em um prazo adequado.
Confiança
O serviço da Amazon estatisticamente parece menos estável que o Azure. Mas o pequeno número de desligamentos completos (células vermelhas) agrada. Basicamente, tudo o que acontece são avisos e instabilidade em alguns serviços.
Isso é confirmado pela lista de incidentes recentes nos servidores da AWS - alguns deles são avisos de diferentes durações (às vezes até 16 horas), e a última vez que os servidores caíram foi em meados de junho. Em geral, parece bastante estável.
de custo
Política de Preços O Amazon Web Services é bastante simples à primeira vista - pague apenas pelo que usar, além do limite gratuito. Mas, assim como no Microsoft Azure, quanto mais serviços você usar, mais difícil será prever o custo total do trabalho.
Existem muitas análises na Internet que consideram a AWS muito cara. O que podemos dizer, se há muito tempo surgiram empresas que, por um valor separado, estão prontas para otimizar seu uso da AWS, minimizando ao máximo as contas mensais.
Resultado do Amazon Amplify
Em geral, a história do Amazon Amplify é semelhante à do Azure. De muitas maneiras, a mesma funcionalidade para MBaaS, fornecendo uma infraestrutura completa e a capacidade de desenvolver seu próprio back-end. Destacam-se positivamente as ferramentas de marketing da Amazon, em especial, o Pinpoint.
Do lado negativo, lembramos o limite de entrada não menos alto que o Azure e as mesmas dificuldades com a previsão de custos. Adicione a isso um serviço menos estável e, a julgar pelos comentários, um suporte técnico não responsivo.
Encaixa? Siga estes links para saber mais sobre o Amazon Amplify, conhecer todos os detalhes e começar a usá-lo:
Serviço Firebase do Google é uma das opções mais interessantes como serviço MBaaS para seu aplicativo. Ele se estabeleceu há muito tempo como uma ferramenta útil e o é para muitos aplicativos conhecidos: Shazam, Duolingo, Lyft e outros.
MBaaS
O Firebase cuida de tudo que seu aplicativo móvel precisa. O serviço combina recursos de back-end completos, como armazenamento de dados, sincronização, autenticação, funções de nuvem (execução de código de back-end) e está atualmente em versão beta Kit de aprendizado de máquina, com o qual o aplicativo implementa várias funcionalidades baseadas em aprendizado de máquina (reconhecimento de texto, objetos em fotografias e muito mais).
Analítica
Um recurso importante do Firebase é que, além da funcionalidade de back-end, o serviço também oferece uma ampla variedade de opções para análise de aplicativos. Google Analytics integrado, segmentação da base de usuários e notificações push. Também em 2017, o Google fez uma grande aquisição ao adquirir o amplamente utilizado serviço Fabric e integrá-lo ao Firebase junto com o Crashlytics, uma ferramenta muito útil para rastrear bugs de aplicativos e coletar estatísticas e relatórios sobre falhas ocorridas nos dispositivos dos usuários.
Funcionalidade adicional
Firebase fornece uma ferramenta Links dinâmicos do Firebase para processar links dinâmicos para o seu conteúdo, com esta ferramenta você pode gerar links que levam ao aplicativo se estiver instalado, caso contrário, eles enviam o usuário para a App Store ou Google Play para instalação. Além disso, esses links funcionam dependendo do dispositivo em que são abertos, se for um computador, a página será aberta no navegador e se o dispositivo for uma transição para o aplicativo.
O Google também permite que você faça testes A/B em seus aplicativos usando Teste A/B do Firebase e definir a configuração remota com a ferramenta Configuração Remota.
Complexo de integração
Fica claro que este serviço combina um número extremamente grande de recursos para seu aplicativo. Para integração com o Firebase, você deve usar SDK plataforma necessária, incluindo iOS, Android, JavaScript, bem como para C ++ e Unity, o que será muito útil se você desenvolver jogos. É importante observar que o Firebase possui uma documentação bastante detalhada e uma ampla base de usuários desenvolvedores e, como resultado, muito conteúdo de suporte na Web, sejam respostas a perguntas ou artigos de visão geral.
Confiança
Depender ou não do Google é assunto para um artigo separado. Por um lado, você tem um provedor altamente estável e funcional e, por outro lado, nunca sabe quando "o Google também fechará este serviço". Não é de admirar que o Google tenha sido removido de sua missão "Não seja mau".
Quando um provedor possui tais recursos, parece que o uptime deve tender a 100%, mas ainda é possível encontrar muitos relatos de problemas com o serviço, por exemplo, citar um dos usuários: O tempo de inatividade acontece. No caso do Firebase, você pode dizer que o "uptime" acontece". E, de fato, se você observar as estatísticas de eventos com os serviços do Firebase, veremos que há pequenas paradas e interrupções totais de 5 a 7 horas, o que pode ser crítico para o seu serviço.
E às vezes os problemas duram semanas. Não devemos esquecer que o código crítico e vital para o produto pode ser executado nesses serviços. Esta estatística não parece muito feliz.
de custo
Política de Preços O Firebase é claro e simples, existem 3 planos: Spark, Flame e Blaze. Eles são ideologicamente diferentes um do outro. Enquanto o Spark é um plano gratuito com limites que permitem implantar e testar uma parte significativa da funcionalidade da plataforma. Os planos Flame e Blaze têm uso pago. O Flame custa $ 25 fixos por mês, mas essencialmente você obtém o mesmo Spark, apenas com limites significativamente mais altos.
Blaze é diferente do resto. Ele permite que você use os recursos da plataforma em quantidades ilimitadas, pagando proporcionalmente aos recursos que usar. Este é um plano altamente flexível, onde você paga apenas pelos recursos que usa. Se, por exemplo, você decidir usar a plataforma apenas para aplicativos de teste, pagará apenas por exceder os limites de teste gratuito.
Em suma, os preços do Firebase são muito transparentes e previsíveis. No processo, você entende quanto custará esta ou aquela funcionalidade e também calcula o custo ao dimensionar ou alterar o serviço.
Resumo por Firebase
O serviço Firebase do Google é um provedor MBaaS completo que limita as complexidades de infraestrutura às quais AWS e Azure estão diretamente relacionados. Todas as funcionalidades necessárias para desenvolver um back-end de nuvem estão disponíveis, amplas oportunidades para análises, relativa facilidade de integração, um limite de entrada bastante baixo e preços transparentes.
Dos lados negativos - problemas com a estabilidade do serviço. Infelizmente, não há como influenciar isso, só podemos esperar pelos engenheiros do Google.
Adequado para voce? Siga estes links para conhecer mais detalhadamente o Google Firebase, saiba todos os detalhes e comece a usá-lo:
Kumulos é um serviço MBAaS independente fundado em 2011.
MBaaS
Como back-end móvel, o Kumulos oferece muitas ferramentas padrão que já vimos em serviços anteriores. Também é possível criar campanhas completas com base na programação e geolocalização, rastreamento e diagnóstico de quedas, integração conveniente com Slack, Trello e Jira, armazenamento de dados e processamento de autorização do usuário.
Como o Firebase, o serviço cuida de todos os problemas de balanceamento de carga, dimensionamento e outros problemas de infraestrutura.
Analítica
O Kumulos possui análises abrangentes incorporadas, incluindo relatórios periódicos, segmentação de usuários, análises comportamentais detalhadas, análises de coorte e muito mais. A plataforma foi criada originalmente para Big Data e está pronta para trabalhar com grandes quantidades de dados. Todas as análises são exibidas em tempo real. O mecanismo analítico interno prevê vários insights com base nas estatísticas coletadas.
Um recurso importante é a capacidade de armazenar e exportar dados para outros serviços, incluindo: Salesforce, Google BigQuery, Amplitude e Tableau.
Funcionalidade adicional
Um recurso interessante e raramente visto é uma ferramenta para otimizar a promoção de aplicativos na App Store. Kumulos App Store Otimização avalia a página do seu aplicativo e sugere soluções para melhorar o desempenho. Rastreia os fatores de sucesso do aplicativo, como classificações de usuários e classificações de aplicativos nos principais países, e gera relatórios com base nesses dados.
É extremamente interessante ter um kit de ferramentas especial para estúdios de desenvolvimento móvel, que fornece uma interface conveniente para gerenciar dados de aplicativos para vários clientes. Além de gerar relatórios específicos para seus clientes.
Complexo de integração
em Kumulos amplo conjunto de SDKs para integração com ferramentas nativas e de plataforma cruzada. As bibliotecas são ativamente atualizadas e mantidas.
A documentação detalhada é descrita para todas as ferramentas, também existem vários tutoriais e exemplos prontos de uso da plataforma.
Confiança
Infelizmente, não encontrei nenhuma estatística sobre a estabilidade dos servidores do serviço Kumulos.
de custo
Além do teste gratuito, Kumulos tem 3 plano pago: Startup, Enterprise e Agency. Eles trabalham com o princípio de "eu pago apenas pelo que uso". Infelizmente, o serviço não fornece uma tabela de preços de domínio público, parece que é calculada individualmente, com base nas suas necessidades.
É impossível falar com precisão sobre a previsibilidade e o tamanho dos pagamentos sem conhecer as próprias taxas de todos os planos. Uma coisa agrada - aparentemente, o preço é bastante flexível.
Total para Kumulos
Kumulos fornece uma plataforma MBaaS de muitas maneiras semelhantes ao Firebase. Ele contém todo o conjunto necessário de ferramentas de serviço MBaaS, análises bastante extensas e recursos de relatórios. Parece interessante como uma oferta separada para estúdios de aplicativos móveis, que combina muitos benefícios adicionais.
Do negativo - a falta de dados sobre a estabilidade dos servidores e preços fechados.
Vale a pena tentar? Siga estes links para conhecer mais detalhadamente o Kumulos, saiba todos os detalhes e comece a usá-lo:
É importante levar a sério a escolha de um serviço de nuvem para o back-end móvel, pois terá um impacto dramático no processo de desenvolvimento e no desenvolvimento subsequente de seu aplicativo ou serviço.
No artigo, analisamos 4 serviços: Microsoft Azure, AWS Amplify, Google Firebase e Kumulos. Entre eles estão 2 grandes serviços IaaS e 2 MBaaS, especializados especificamente no back-end móvel. E em cada uma das opções encontrou certos problemas e aspectos negativos.
É importante entender que não existe solução perfeita. A escolha da tecnologia para um projeto é um compromisso entre fatores-chave. Sugiro que você os revise novamente:
funcionalidade
A funcionalidade da plataforma que você escolhe afeta diretamente as restrições que você impõe ao seu back-end. Você sempre precisa ter clareza sobre suas prioridades ao escolher um serviço, seja usando um recurso específico, como notificações push para economizar dinheiro, ou construindo sua própria infraestrutura dentro do mesmo ecossistema para centralizar e uniformizar seu back-end.
Analítica
É difícil imaginar serviços modernos sem análises. Afinal, é essa ferramenta que permite melhorar o atendimento, analisar os usuários e, com isso, obter mais lucro. A qualidade do produto final depende diretamente da qualidade e funcionalidade da análise. Mas ninguém se preocupa em conectar análises de terceiros, seja a parte analítica do Firebase, AppMetrica do Yandex ou qualquer outra coisa que seja mais adequada para você.
Complexo de integração
A complexidade da integração afeta diretamente os custos de recursos monetários e de tempo no processo de desenvolvimento, sem mencionar a possível complicação do processo de encontrar desenvolvedores devido à impopularidade ou um limite alto para entrar no kit de ferramentas.
Confiabilidade e estabilidade
A confiabilidade e estabilidade de qualquer serviço é um dos indicadores mais importantes. E quando seu próprio aplicativo sofre com problemas do lado do provedor, a situação não é nada agradável. O usuário final não se importa com o que há de errado e se você é especificamente culpado pelo fato de o serviço não funcionar. Ele não vai conseguir fazer o que planejou, e pronto, a impressão está estragada, ele pode não voltar ao produto. Sim, não existem serviços ideais, mas existem ferramentas para minimizar perdas em caso de problemas por parte do provedor.
Política de Preços
A política de preços do serviço é um fator determinante para muitos, porque se as capacidades financeiras não corresponderem às solicitações do provedor, você simplesmente não poderá continuar trabalhando juntos. É importante considerar e prever o custo dos serviços dos quais seu produto depende. O preço varia entre os serviços, mas na maioria das vezes é proporcional aos recursos que você usa, seja o número de notificações enviadas ou o tamanho do seu disco rígido de armazenamento.
bloqueio do fornecedor
Usando esses serviços, é importante não ficar preso a uma solução, caso contrário você ficará totalmente dependente dela e se condenará ao chamado "bloqueio do fornecedor". Isso significa que, se algo acontecer com o serviço, o proprietário mudar, a direção do desenvolvimento ou fechar, você terá que procurar com urgência um novo provedor de MBaaS e, dependendo do tamanho do aplicativo, essa mudança exigirá um tempo significativo e, como resultado, o dinheiro custa. Será especialmente assustador se o back-end estiver vinculado a alguma funcionalidade exclusiva do provedor MBaaS, pois todos os provedores são diferentes e nem todos têm o mesmo conjunto de funcionalidades. Portanto, é raro quando é possível mover-se “sem dor”.
Toda a análise pode ser resumida na tabela abaixo:
e Microsoft Azure
Amplificar AWS
Google Firebase
Kumulos
Ferramentas MBaaS
notificações push, sincronização de dados,
dimensionamento automático e balanceamento de carga, e muito mais
Analítica
Análise em tempo real
Análise e segmentação de campanhas no Amazon Pinpoint
Google Analytics e Crashlytics para coletar relatórios de falhas
Análise em tempo real, análise de coorte, trabalho com Big Data e exportação para outros serviços
Funcionalidade adicional
Construir Automação
Estrutura de geolocalização
ferramenta de IA
Muitos outros serviços do Azure
Fazenda de dispositivos
Console Amplificar
Amazon-Lex
Muitos outros serviços da AWS
Links dinâmicos
Teste A / B
Configuração Remota
Otimização de aplicativos na App Store.
Funcionalidade para desenvolvimento de estúdio
integração
SDKs: iOS, Android, Xamarin, Phonegap
Limite de entrada alto
SDK: iOS, Android, JS, React Native
Suporte GraphQL
Limite de entrada alto
SDK: iOS, Android, JS, C++, Unidade
SDK: IOS, Android, WP, Cordova, PhoneGap, Xamarin, Unity, LUA Corona e muitos mais
Confiabilidade e estabilidade
Desligamentos extremamente raros (até 1 vez por mês)
Interrupções raras, principalmente avisos
Há períodos de problemas e apagões
Sem estatísticas
Política de Preços
Calculado a partir de recursos usados
Dificuldade em prever
O custo é maior do que os serviços de MBaaS
Faísca (grátis)
Chama (25$/m)
Blaze (por uso)
Comece
Empreendimento
Agência
Todos os planos cobram por uso
Então, analisamos 4 serviços em nuvem. Existem dezenas de outras ferramentas semelhantes. Não existe um serviço perfeito, portanto, a melhor estratégia para encontrar o serviço certo é estar ciente dos requisitos de seu provedor e das compensações que você está disposto a fazer o mais cedo possível.
Queremos que você faça a escolha certa.