Guia para o deploy de uma aplicação Node.js
Neste artigo, explicaremos como implantar um aplicativo Node JS. Falaremos sobre as vantagens e desvantagens do Node e opções de implantação — incluindo IaaS, PaaS & BaaS. E no fim, implantaremos um aplicativo Node no Back4app.
Contents
O que é Node.js?
Node.js é um runtime em JavaScript de plataforma cruzada e de código aberto criado no Mecanismo JavaScript V8 do Chrome. O Node busca permitir que os desenvolvedores de JavaScript consigam usar full-stack, permitindo que eles programem operações do lado do servidor. Seus casos de uso incluem scripts do lado do servidor, aplicativos em tempo real, aplicativos da web de streaming, aplicativos de página única (SPA), ferramentas de colaboração e jogos da web.
O Node possui uma arquitetura orientada a eventos capaz de E/S assíncrona. É incrivelmente rápido, devido à sua capacidade de compilar JavaScript em código de máquina nativo. Ele pode lidar com uma enorme quantidade de conexões ativas e permite que os desenvolvedores criem facilmente aplicativos escaláveis de alto desempenho.
A tecnologia foi introduzida pela primeira vez em 2009 por seu criador Ryan Dahl no European JSConf anual. Tornou-se imediatamente um dos softwares mais interessantes do ecossistema JavaScript.
A popularidade do Node atingiu o pico em 2017 e continua alta. É uma das ferramentas de desenvolvimento mais populares usadas por muitas empresas multimilionárias, como IBM, LinkedIn, Microsoft, Netflix e assim por diante. Sua simplicidade e capacidade de dimensionamento o tornam ideal para empresas de todos os tamanhos — incluindo startups.
Nas próximas duas seções, vamos nos aprofundar nas vantagens e desvantagens do Node.
Vantagens do Node.js
Alta performance
Conforme mencionado na introdução, o Node é alimentado pelo mecanismo JavaScript de alto desempenho do Google. O V8 pode compilar e executar JavaScript em uma velocidade extremamente rápida, principalmente porque compila JavaScript em código de máquina nativo.
O Node também usa um loop de eventos que permite executar operações de E/S sem bloqueio — apesar do JavaScript ser uma linguagem de programação de thread único. Isso o torna uma das opções mais rápidas do mercado.
Escalabilidade
Um dos principais benefícios do Node.js é sua capacidade de escalar. Os aplicativos de Node podem escalar horizontalmente e verticalmente. O dimensionamento horizontal é obtido adicionando nodes adicionais a um sistema existente, enquanto o dimensionamento vertical significa adicionar recursos adicionais a um node específico. As excelentes opções de dimensionamento da plataforma a tornam apropriada para startups e também para grandes empresas com dezenas de milhões de usuários diários, como LinkedIn, Netflix e PayPal.
O Node também é adequado para a arquitetura de microsserviços, permitindo que os desenvolvedores criem pequenos componentes que se encaixam em um pipeline de entrega contínua e que podem ser facilmente dimensionados sob demanda.
Fácil de aprender
A base do Node em JavaScript torna extremamente fácil de aprender para desenvolvedores que já conhecem o básico de JavaScript. Ele não tem uma curva de aprendizado acentuada e pode ser dominado em apenas algumas semanas. A simplicidade do Node o torna ideal para todos os tipos de projetos.
Tempo mais rápido para o mercado
O tempo de lançamento no mercado é uma das referências essenciais de muitas equipes de desenvolvimento. Todo mundo quer colocar seu produto no mercado o mais rápido possível e o Node permite que você faça exatamente isso.
A simplicidade do Node e a grande quantidade de pacotes npm reduzem drasticamente o tempo de lançamento no mercado. Existem vários projetos de código aberto no GitHub e outras plataformas que podem ser usados como modelos para colocar seu projeto em funcionamento o mais rápido possível.
Ferramenta testada em batalha
O Node é uma ferramenta madura e testada em batalha que existe desde 2009. Sua estabilidade foi testada por grandes empresas como eBay, Netflix e LinkedIn, que têm milhões de usuários diários.
Devido às suas incríveis vantagens, o Node está incluído em várias tech stacks (geralmente em combinação com o Express e um banco de dados NoSQL). Algumas das tech stacks com o Node incluem:
- MERN
- MEAN
- DERN
Grande comunidade
O Node.js tem uma comunidade forte e ativa de desenvolvedores e entusiastas que continuam contribuindo com o Node para torná-lo cada vez melhor. Caso você fique preso em um problema ou tenha alguma dúvida, há vários lugares diferentes onde você pode procurar ajuda. Devido à popularidade do Node, não é difícil encontrar soluções e códigos já feitos no GitHub.
Outra coisa importante sobre o Node.js é seu gerenciador de pacotes chamado npm (Gerenciador de pacotes de Node). O npm permite que os desenvolvedores empurrem e usem pacotes JavaScript prontos ao invés de reinventar a roda. Os pacotes podem reduzir significativamente o custo de desenvolvimento e a complexidade dos aplicativos. No momento em que escrevo, existem mais de 1,3 milhão de pacotes hospedados no npm.
Limitações do Node.js
Diminuição do desempenho para tarefas complexas
A maior desvantagem do Node.js é sua incapacidade de executar tarefas que exigem computação pesada. Hoje em dia, muitos programas e algoritmos requerem paralelização para produzir resultados ideais. Como você já sabe, o Node.js é baseado em JavaScript, que foi projetado para ser uma linguagem front-end de thread único e não oferece suporte a vários threads.
Com a atualização 10.5, a equipe do Node.js implementou o suporte multithreading na forma de threads de trabalho. Este módulo permite que os desenvolvedores aproveitem threads adicionais de um pool de threads. Mesmo com os threads de trabalho, o Node ainda não é apropriado para computação pesada. Se os requisitos do seu projeto incluírem cálculos complexos, computação pesada ou paralelização, talvez seja melhor usar outra linguagem de programação.
Modelo de programação assíncrona
Node.js usa o modelo de programação assíncrona. Devido a isso, ele depende muito do uso de callbacks. Callbacks são funções executadas em segundo plano e (em algum momento) retornam um resultado. Ao usar callbacks, seu código pode se tornar mais confuso e mais difícil de depurar. Além disso, se você aninhar callbacks de chamada em vários níveis, poderá acabar com o chamado “callback hell”.
Callback hell e outros problemas de programação assíncrona podem ser facilmente evitados seguindo princípios de código limpo.
API instável
Outro grande problema com o Node.js é a instabilidade da interface de programação de aplicativos (API). A API do Node muda frequentemente com alterações incompatíveis com versões anteriores que podem quebrar partes do código. Como consequência, os desenvolvedores do Node precisam ficar atentos às alterações e garantir que suas bases de código sejam compatíveis com as versões mais recentes da API do Node.js.
Falta de um forte sistema de suporte de biblioteca
O JavaScript não vem com um bom sistema de biblioteca em comparação com outras linguagens de programação. Isso força muitos desenvolvedores a assumir o suporte de várias tarefas comuns, como processamento de imagem, análise de XML, mapeamento relacional de objeto (ORM), manipulação de bancos de dados e mais.
Um registro de módulo crescido demais e imaturo
O Node possui uma enorme comunidade de desenvolvedores que produzem milhares de módulos de código aberto publicados no npm. O problema com isso é que o npm não implementa nenhuma verificação que garanta que o código do módulo funcione e esteja bem escrito.
Muitos módulos tornam-se aleatoriamente sem suporte ou quebram com as versões mais recentes do Node e, em seguida, os desenvolvedores são forçados a procurar uma alternativa. No passado, alguns dos módulos npm também foram hackeados e injetados com vírus e mineradores de criptomoedas. Devido a isso, é difícil encontrar módulos que possam ser usados em um ambiente corporativo.
Não me interpretem mal, acho o npm ótimo, mas você ainda deve ter cuidado ao instalar módulos aleatórios.
Opções de implantação do Node.js
Existem várias maneiras de implantar um aplicativo Node.js. De um modo geral, podemos dividi-los nos quatro grupos a seguir:
- Hospedagem convencional
- Infraestrutura como serviço (IaaS)
- Plataforma como serviço (PaaS)
- Back-end como serviço (BaaS)
Podemos exibi-los em um gráfico de pirâmide com base em seu nível de abstração:
As opções de implantação cuidam das seguintes camadas de abstração:
Vamos dar uma olhada em cada um dos grupos. Vamos pular a hospedagem convencional, pois tenho certeza de que você sabe como isso funciona.
Serviços IaaS como AWS
A infraestrutura como serviço (IaaS) é um modelo de serviço de computação em nuvem que fornece recursos de computação como servidores, redes, sistemas operacionais e armazenamento em um ambiente virtualizado. Esses servidores em nuvem normalmente são fornecidos à organização por meio de APIs de alto nível ou painéis avançados, dando aos clientes controle total sobre toda a infraestrutura.
IaaS é altamente escalável. Ela permite que os clientes dimensionem facilmente vertical e horizontalmente, dependendo da demanda. Os fornecedores de IaaS geralmente seguem um modelo de pagamento conforme o uso, o que significa que você paga apenas pelos recursos que consome.
IaaS surgiu no início de 2010 e desde então se tornou o modelo de abstração padrão para muitos tipos de cargas de trabalho. Mesmo com o surgimento de novas tecnologias, como microsserviços e sem servidor, a IaaS continua sendo a opção mais popular.
Em contraste com a PaaS e o BaaS, a IaaS fornece o controle de recursos de nível mais baixo na nuvem. Isso a torna o modelo de computação em nuvem mais flexível. A desvantagem disso é que o cliente é totalmente responsável pelo gerenciamento de aspectos como aplicativos, sistemas operacionais, middleware e dados, o que geralmente leva muito tempo.
Alguns exemplos típicos de IaaS são:
- Amazon Web Services (AWS)
- Google Compute Engine (GCE)
- Microsoft Azure
- DigitalOcean
- Linode
- Rackspace
Serviços PaaS como Heroku
Plataforma como Serviço (PaaS) é um modelo de serviço de computação em nuvem que fornece aos usuários um ambiente de nuvem no qual eles podem desenvolver, gerenciar e entregar aplicativos. Além de fornecer recursos de computador, a PaaS vem com várias ferramentas pré-criadas para desenvolver, personalizar e testar aplicativos. A maioria dos fornecedores de PaaS permite que você coloque seu aplicativo em funcionamento com apenas alguns cliques!
A PaaS permite que os usuários se concentrem em seu aplicativo em vez de gerenciar a infraestrutura subjacente. Os provedores de PaaS fazem muito trabalho pesado para você, como gerenciar seus servidores, sistemas operacionais, software de servidor, backups e muito mais.
Algumas das vantagens da PaaS são:
- Velocidade mais rápida para o mercado
- Segurança aumentada
- Custo-benefício
- Escalabilidade
- Alta disponibilidade
- Menos código necessário
As desvantagens da PaaS são que você provavelmente dependerá dos recursos do fornecedor, existe o risco de bloqueio e falta de flexibilidade e controle. No entanto, a Paas ainda permite que os usuários criem aplicativos mais rapidamente e é menos pesada para gerenciar.
Os serviços de PaaS incluem:
- Heroku
- AWS Elastic Beanstalk
- DigitalOcean App Platform
- Microsoft Azure App Service
- The Fly Platform (Fly.io)
- Render
Serviços BaaS como Back4app
Back-end como Serviço (BaaS) é uma plataforma que automatiza o lado de back-end do desenvolvimento e cuida da infraestrutura de nuvem. Além disso, oferece recursos como gerenciamento de usuários, notificações por email, notificações por push, funções de código na nuvem, integrações de rede social, armazenamento de arquivos e pagamentos.
Isso permite que os desenvolvedores se concentrem no negócio principal e na construção do front-end sem se preocupar com o back-end e a infraestrutura subjacentes. O front-end geralmente é desenvolvido por meio de API e SDK especializados oferecidos pelo fornecedor de BaaS. Isso torna os aplicativos menos complexos e mais fáceis de manter.
BaaS oferece todos os benefícios de IaaS e PaaS, incluindo a abstração do back-end. As equipes que utilizam o BaaS reduzem muito o tempo de lançamento no mercado, reduzem os custos de engenharia e exigem menos engenheiros.
O BaaS pode ser usado para muitos tipos de projetos — incluindo fazer um MVP (Produto Mínimo Viável), aplicativos autônomos ou aplicativos que requerem um pequeno número de integrações e aplicativos empresariais que não são de missão crítica.
As desvantagens do BaaS são que ele é menos flexível que a IaaS e a PaaS, oferece um nível mais baixo de controle e personalização e existe a possibilidade de bloqueio para plataformas que não são de código aberto.
Alguns exemplos de BaaS:
- Back4app
- AWS Amplify
- Firebase
- Parse
- Cloudkit
- Backendless
Processo de implantação do Node.js
Nesta parte do artigo, veremos o Back4app e aprenderemos como construir e implantar o aplicativo Node JS
O que é o Back4app?
Back4app é uma das melhores soluções de Back-end como Serviço (BaaS) de código aberto no mercado. Ele oferece uma ampla gama de recursos e benefícios para seus usuários, permitindo que os desenvolvedores criem rapidamente aplicativos da Web e para dispositivos móveis. Ao usar o Back4app, você poderá se concentrar no negócio principal, em vez de se preocupar com o back-end ou a infraestrutura subjacente.
A solução vem com um painel rico em recursos e fácil de usar e uma interface de linha de comando (CLI). Eles também fornecem SDK para todas as suas ferramentas favoritas, como Flutter, React Native, Node.js, Angular, Android, iOS & mais!
Os principais recursos do Back4app incluem:
- Banco de dados tipo planilha
- API REST e GraphQL
- Consultas em tempo real
- Autenticação (incluindo autenticação social)
- Hospedagem Escalável
- Notificações por push e email
Para mais informações sobre seus recursos, confira os recursos do Back4app.
O Back4app segue um modelo de preço simples e direto que pode atender a um aplicativo de qualquer tamanho. Eles oferecem um plano gratuito generoso (sem necessidade de cartão de crédito) que é ótimo para prototipar e testar a plataforma. Inclui:
- 25k requisições
- 250 MB de armazenamento de dados
- 1 GB de transferência
- 1 GB de armazenamento de arquivos
Para obter mais informações sobre os preços do Back4app, consulte a página de preços.
Introdução do projeto
Vamos codificar e implantar um aplicativo da Web TODO simples. O aplicativo da Web oferecerá suporte a operações CRUD básicas — criar, recuperar, atualizar e excluir. Vamos codificá-lo em Node.js usando a estrutura da web Express, o armazenamento de dados será feito pelo Parse e usaremos o Twig como o mecanismo de modelagem.
Clique aqui para ver o aplicativo implantado em ação!
Pré-requisitos:
- Compreensão básica do Node.js
- Noções básicas de Express
- Experiência com um mecanismo de modelagem
- Compreensão básica de bancos de dados e ParseJS
Back4app CLI
As etapas a seguir exigirão que você tenha uma conta Back4app. Se você já tem faça o login caso contrário, vá em frente e cadastre-se para a conta gratuita.
Back4app CLI é uma interface de linha de comando que permite interagir com a plataforma Back4app.
Para instalá-lo no Mac/Linux execute:
$ curl https://raw.githubusercontent.com/back4app/parse-cli/back4app/installer.sh | sudo /bin/bash
O comando fará o download do binário CLI mais recente e o armazenará em /usr/local/bin/b4a.
Para outros sistemas operacionais, por favor, consulte os documentos oficiais.
Para usar o CLI, você terá que se autenticar com sua conta. Para fazer isso, primeiro você precisa gerar uma chave de conta. Navegue até o painel do Back4app e clique no seu nome de usuário (canto superior direito da tela) e, em seguida, em “Chaves da conta”:
Para adicionar uma nova chave de conta, insira um nome de chave personalizado e pressione “+”. Anote a chave, pois precisaremos dela na próxima etapa:
Depois de criar a chave com sucesso, volte ao terminal e execute:
$ b4a configure accountkey
Insira a chave da sua conta ou pressione ENTER para gerar uma nova.
NOTA: ao pressionar ENTER tentaremos abrir a url:
"http://dashboard.back4app.com/classic#/wizard/account-key"
no navegador padrão.
Account Key: <YOUR_GENERATED_ACCOUNT_KEY>
Chave de conta armazenada com sucesso para: "<YOUR_EMAIL>".
Para garantir que a autenticação funcionou, tente listar seus aplicativos:
$ b4a list
Estes são os aplicativos aos quais você tem acesso atualmente:
Se sua conta for nova como a minha, nenhum aplicativo será listado.
Criar aplicativo
Continuando, vamos criar um aplicativo Back4app.
Execute:
$ b4a new
Gostaria de criar um novo aplicativo ou adicionar o Cloud Code a um aplicativo existente?
Digite "(n)ew" ou "(e)xisting": n
Por favor, escolha um nome para seu aplicativo Parse.
Observe que esse nome aparecerá no site Back4App,
mas não precisa ser igual ao nome público do seu aplicativo móvel.
Nome: nodejs-back4app
Incrível! Agora é hora de configurar algum Cloud Code para o aplicativo: "nodejs-back4app",
Em seguida, criaremos um diretório para armazenar seu Cloud Code.
Digite o nome a ser usado para este diretório,
ou pressione ENTER para usar "nodejs-back4app" como o nome do diretório.
Nome do diretório:
Você pode configurar um projeto em branco ou criar um projeto de amostra do Cloud Code
Por favor, digite "(b)lank" se desejar configurar um projeto em branco, caso contrário, pressione ENTER:
E-mail configurado com sucesso para o projeto atual para: "<YOUR_EMAIL>"
Seu Cloud Code foi criado em /dev/nodejs-back4app.
- Crie um aplicativo novo ou existente: novo
- Escolha um nome de aplicativo: Escolha um nome personalizado
- Nome do diretório: pressione ENTER
- Projeto de Cloud Code em branco ou de amostra: pressione ENTER
O comando vai criar um diretório com a seguinte estrutura:
nodejs-back4app/
├── cloud/
│ └── main.js
├── public/
│ └── index.html
├── .parse.local
└── .parse.project
- cloud é um diretório para todo o código e funções da nuvem
- public é um diretório para arquivos públicos como imagens, folhas de estilo & mais
- .parse.local e .parse.project são usados para armazenar a configuração do Parse
Exclua os arquivos main.js e index.html, pois não precisaremos deles.
Web Hosting
Como estamos criando um aplicativo Node.js, precisamos habilitar a hospedagem na Web para que o Back4app hospede nosso aplicativo e o torne publicamente acessível na Internet.
Para habilitar o recurso de hospedagem na web, navegue até o painel do Back4app, selecione seu aplicativo, clique em “Configurações do aplicativo” no lado esquerdo da tela e depois em “Configurações do servidor”. Pesquise por “Hospedagem da Web e domínios customizáveis” e clique em “Configurações” novamente.
Clique em “Ativar hospedagem Back4app” e escolha um nome de subdomínio. Vou usar nodejsback4app:
Por fim, clique em “Salvar”.
Seu aplicativo estará acessível em:
https://<your_subdomain>.b4a.app/
Sinta-se à vontade para vincular um domínio personalizado ao seu aplicativo da web também!
Express com funções do Cloud Code
Em seguida, vamos começar a trabalhar no código real.
Altere seu diretório para cloud e crie o arquivo package.json dentro dele:
Back4app usa este arquivo para baixar módulos via npm. Nós adicionamos body-parser já que precisaremos dele mais tarde para analisar as solicitações.
Em seguida, crie outro arquivo na pasta clouds chamado app.js:
Este arquivo é usado para inicializar e configurar o Express. Também definimos um endpoint que será usado como verificação de sanidade na próxima etapa. Como você pode ver, não precisamos definir app ou requerer quaisquer dependências, já que o Back4app faz isso para nós automaticamente.
Em seguida, implante o aplicativo:
$ b4a deploy
Uploading source files
Uploading recent changes to scripts...
Finished uploading files
New release is named v1 (using Parse JavaScript SDK v2.2.25)
O comando vai enviar seus arquivos de origem para Back4app, configurar tudo e disponibilizar seu aplicativo no subdomínio que você escolheu na seção anterior.
Para garantir que funcione, abra seu navegador da Web favorito e navegue até seu aplicativo:
https://<your_subdomain>.b4a.app/
# Example
https://nodejsback4app.b4a.app/
Você deve obter a seguinte resposta:
Bom trabalho!
Nas próximas seções, começaremos a trabalhar no aplicativo TODO real.
Banco de dados com ParseJS
Vamos definir os modelos de banco de dados para o aplicativo TODO.
Navegue até o painel do Back4app e selecione “Banco de dados” no lado esquerdo da tela. Depois disso, clique em “Criar uma nova classe”, nomeie-a T ask e certifique-se de marcar “Leitura e gravação públicas habilitadas”:
Em seguida, adicione as seguintes colunas:
+-----------+-------------+---------------+----------+
| Data type | Name | Default value | Required |
+-----------+-------------+---------------+----------+
| String | name | <leave blank> | yes |
+-----------+-------------+---------------+----------+
| String | description | <leave blank> | no |
+-----------+-------------+---------------+----------+
| Boolean | isDone | false | yes |
+-----------+-------------+---------------+----------+
Lógica do aplicativo
O aplicativo terá os seguintes endpoints:
/
display the list of tasks/create
creates a task/<ID>
displays the task details/<ID>/delete
deletes a task/<ID>/toggle
toggles task status — done/undone
Vamos criá-los.
Para tornar nosso cloud code mais fácil de manter, vamos dividi-lo em dois arquivos.
- app.js — inicializa e configura o servidor Express
- route.js — define endpoints e sua lógica
Uma abordagem ainda melhor para criar aplicativos da web modernos é usar um Model-View-Controller (MVC) padrão arquitetônico. Um bom começo com o Express é usar gerador de express.
Vá em frente e substitua o conteúdo do app.js pelo seguinte:
- Definimos o Twig como o mecanismo de exibição padrão.
- As rotas não são mais definidas neste arquivo, mas sim em routes.js.
Em seguida, crie routes.js e coloque o seguinte código:
Definimos todas as rotas mencionadas acima e usamos o Parse para manipular e armazenar os dados. Como você pode ver, todas as rotas são assíncronas já que temos que esperar que o Parse responda. Além disso, a maior parte do código é agrupada em blocos try-catch caso algo dê errado.
Para obter informações adicionais sobre o ParseJS, consulte o Guia de JavaScript.
Em seguida, vamos acompanhar os endpoints com modelos de exibição.
Crie uma pasta views dentro da pasta clouds, baixe os arquivos de modelo do repositório GitHub e coloque-os no diretório views.
Sua estrutura de diretório final deve ficar assim:
nodejs-back4app/
├── cloud/
│ ├── views/
│ │ ├── base.twig
│ │ ├── create.twig
│ │ ├── error.twig
│ │ ├── index.twig
│ │ └── task.twig
│ ├── app.js
│ ├── routes.js
│ └── package.json
├── public
├── parse.local
└── parse.project
Por último, adicione twing para package.json para ativar o suporte a Twig:
Implante o aplicativo:
$ b4a deploy
Uploading source files
Uploading recent changes to scripts...
Finished uploading files
New release is named v2 (using Parse JavaScript SDK v2.2.25)
E pronto. Aguarde alguns minutos e, em seguida, visite o aplicativo da Web para garantir que tudo esteja funcionando.
Arquivos públicos
Conforme mencionado na seção anterior, o Back4app atende automaticamente os arquivos localizados na pasta public. Para usá-los em seus modelos, você terá que modificar ligeiramente suas configurações Express.
Acesse app.js e adicione as seguintes linhas:
Você pode fazer referência a arquivos públicos em seus modelos por meio do caminho relativo:
<img src="/back4app.png" alt="Back4app Logo">
Exibe a imagem localizada em public/back4app.png.
Conclusão
O Node vem crescendo e melhorando constantemente desde seu lançamento em 2009. É uma das melhores ferramentas que permitem aos desenvolvedores criar facilmente aplicativos escaláveis de alto desempenho. Os aplicativos de Node podem ser implantados em diferentes soluções, como IaaS, PaaS & SaaS. Cada uma delas tem suas vantagens e desvantagens que devem ser consideradas ao escolher a opção de implantação.
Uma das maneiras mais fáceis de implantar aplicativos Node é usando o Back4app — uma solução de BaaS de código aberto com muitos recursos. O Back4app é ótimo, pois permite que você se concentre no que é importante enquanto terceiriza o back-end e sua implantação.
Obtenha o código-fonte final do repositório nodejs-back4app.
Perguntas frequentes
O que é Node.JS?
O Node.JS é uma plataforma criada no runtime do JavaScript do Chrome para criar facilmente aplicativos rápidos e escalonáveis.
Quais são as vantagens e desvantagens do Node.JS?
Advantages: performance, scalability, community
Disadvantages: unstable, immature module registry, asynchronous
Como implantar um aplicativo Node.JS?
– Escolha seu modelo de implantação
– As opções são IaaS, PaaS, BaaS, SaaS
– Escolha seu fornecedor de hospedagem
– Leia o artigo para obter detalhes sobre como criar e implantar um aplicativo