Aplicativo da web moderno usando a pilha MEAN
Este tutorial pode incorrer em custos. Use o Estimador de custos para gerar uma estimativa do custo baseada em seu uso projetado.
Este tutorial conduz você na criação de um aplicativo da web usando a pilha MEAN popular. Ele é composto por um MongoDB, uma estrutura da web Express, uma estrutura de front-end Angular e um tempo de execução Node.js. Você aprenderá a executar um aplicativo de amostra MEAN localmente, criar e usar um banco de dados como serviço DBasS ) gerenciado, implantar o aplicativo em IBM Cloud e dimensionar os recursos de tempo de execução e de banco de dados.
Objetivos
- Crie e execute um aplicativo de amostra Node.js localmente.
- Crie uma instância gerenciada do Databases for MongoDB.
- Implante o aplicativo Node.js na nuvem usando IBM Cloud® Code Engine.
- Escale os recursos de CPU e memória em tempo de execução.
- Escale os recursos de memória e disco do banco de dados.
- O usuário acessa o aplicativo usando um navegador da web.
- O aplicativo Node.js em execução no Code Engine acessa o banco de dados do Databases for MongoDB para buscar dados.
Antes de Iniciar
Este tutorial requer:
- A CLI da IBM Cloud. Essa ferramenta de CLI permitirá interagir com a IBM Cloud.
- code-engine/ce plugin (
code-engine/ce) para acesso da CLI aos recursos do Code Engine - Opcional Container Registry plug-in (
container-registry) para gerenciar imagens de contêiner.
- code-engine/ce plugin (
gitpara clonar o repositório de código-fonte.- Opcionalmente, se quiser testar a execução do aplicativo localmente, você precisará instalar Node.js.
Você encontrará instruções para fazer download e instalar essas ferramentas para o seu ambiente operacional no guia Introdução aos tutoriais.
Para evitar a instalação dessas ferramentas, use o Cloud Shell no console IBM Cloud.
Este tutorial demonstra o uso da linha de comandos para criar o projeto e o aplicativo IBM Cloud® Code Engine do banco de dados. Há instruções no repositórioGitHub associado para provisionar com o Terraform localmente em sua estação de trabalho ou ainda mais simples com o Schematics em apenas alguns cliques.
Criar uma instância do banco de dados MongoDB na nuvem
Nesta seção, você criará uma instância do Databases for MongoDB na nuvem. O Databases for MongoDB é um banco de dados como um serviço que é fácil de configurar e fornece backups e ajuste de escala integrados. É possível localizar muitos tipos diferentes de bancos de dados no catálogo do IBM Cloud. Para criar uma instância do Databases for MongoDB siga as etapas abaixo.
-
Se você não estiver conectado, use
ibmcloud loginouibmcloud login --ssopara fazer login interativamente. Destinar a sua preferência IBM Cloud região e grupo de recursos. No exemplo abaixo utilizaremos a regiãoca-tor (Toronto)e o grupo de recursosdefault.ibmcloud target -r ca-tor -g defaultÉ possível localizar mais comandos CLI no tópico Geral IBM Cloud Comandos CLI (ibmcloud) na documentação.
-
Crie uma instância do Databases for MongoDB por meio da linha de comando ou use a IU do console. O nome do serviço deve ser mean-stack-mongodb, pois o aplicativo usado neste tutorial está configurado para procurar o serviço por esse nome. Para
<region>, é possível escolher uma região que esteja mais próxima de você, no entanto usaremosca-torneste tutorial.ibmcloud resource service-instance-create mean-stack-mongodb databases-for-mongodb standard ca-tor -
Aguarde até que a instância esteja pronta. É possível verificar o status de fornecimento com o comando a seguir:
ibmcloud resource service-instance mean-stack-mongodb -
Uma vez que você tenha verificado o status do serviço alterado para "criação bem-sucedida", será possível prosseguir para criar uma chave de serviço.
ibmcloud resource service-key-create mean-stack-mongodb-key --instance-name mean-stack-mongodb
Executar o app MEAN localmente
Nesta seção, você clonará um código de amostra do MEAN e executará o aplicativo localmente para testar a conexão com o banco de dados MongoDB em execução no IBM Cloud.
-
Clone o código de amostra do MEAN.
git clone https://github.com/IBM-Cloud/nodejs-MEAN-stack cd nodejs-MEAN-stack -
Copie o arquivo
.env.examplepara.env.cp .env.example .env -
No arquivo .env, inclua seu próprio SESSION_SECRET. Para MONGODB_URL e CERTIFICATE_BASE64, execute o comando a seguir:
ibmcloud resource service-key mean-stack-mongodb-key --output jsonÉ possível localizar o valor necessário para MONGODB_URL em
credentials -> connection -> mongodb -> composede o valor para CERTIFICATE_BASE64 emcredentials -> connection -> mongodb -> certificate -> certificate_base64na saída JSON retornada. Certifique-se de que os valores incluídos no.envnão incluam nenhuma citação ou espaço. -
Opcional - Instale os pacotes necessários.
npm install -
Opcional - Execute o aplicativo localmente. Acesse o aplicativo usando a URL fornecida na saída, crie um novo usuário e efetue login.
node server.js
Usando o shell de nuvem é possível abrir o aplicativo clicando no ícone olho no canto superior direito e clicando na visualização na porta 8080.
Implementar o app na nuvem
IBM Cloud® Code Engine é uma plataforma sem servidor totalmente gerenciada que executa suas cargas de trabalho em contêineres, incluindo aplicativos da Web, microsserviços, funções
orientadas por eventos ou trabalhos em lote. Nesta seção, você criará um projeto Code Engine e implementará o aplicativo Node.js conteinerizado no projeto. Na seção anterior, o código-fonte lê o site .env que você tem localmente
para obter o URL e as credenciais do serviço MongoDB. Você criará um segredo no projeto para conter essas mesmas chaves/valores que serão lidas pelo aplicativo quando ele for executado.
Nós já construímos uma imagem do contêiner para o aplicativo e a enviamos por push para o público IBM Cloud Container Registry. Você usará essa imagem do contêiner pré-construído para implementar o aplicativo.
-
Crie um projeto em IBM Cloud Code Engine.
ibmcloud code-engine project create --name mean-stack -
Crie um segredo no projeto que contém as chaves/valores do arquivo
.envusado anteriormente para executar o aplicativo localmente, esse segredo será consumido pelo aplicativo em execução na nuvem. Para obter mais sobre segredos, consulte Trabalhando com segredos.ibmcloud code-engine secret create --name mean-stack-secrets --from-env-file .env -
Crie o aplicativo com base na imagem do contêiner público que baseia-se no mesmo código-fonte transferido por download do repositório
https://github.com/IBM-Cloud/nodejs-MEAN-stack. Se você estiver interessado nas etapas usadas para criar essa imagem, poderá revisar create-container-image.md.ibmcloud code-engine application create --name mean-stack-application --image icr.io/solution-tutorials/tutorial-mean-stack --env-from-secret mean-stack-secrets -
Depois que o código é enviado por push, você deve poder visualizar o aplicativo em seu navegador. Um nome de host foi gerado o qual pode ter esta aparência:
https://mean-stack.<CE_SUBDOMAIN>.ca-tor.codeengine.appdomain.cloud/. OCE_SUBDOMAINé uma variável que é injetada em seu projeto e seu valor determinado durante a criação de seu projeto. É possível obter a URL do aplicativo no painel do console ou na linha de comandos. Quando você acessar o aplicativo, ele deverá ter a seguinte aparência:
Aplicativo em tempo real
Ajuste de escala dos recursos de computação em Code Engine
O Code Engine monitora o número de solicitações no sistema e escala as instâncias do aplicativo para cima e para baixo, a fim de atender à carga de solicitações recebidas, incluindo quaisquer conexões HTTP com o seu aplicativo. Se o seu serviço precisar de recursos de computação adicionais, ou você desejar reduzir a quantidade de recursos de computação alocados, poderá fazer essas mudanças em sua página de aplicativos específicos.
-
Navegue até Code Engine Página de projetos.
-
Clique no projeto mean-stack criado anteriormente.
-
Em Resumo, clique em Aplicativos.
-
Clique em mean-stack-application criado anteriormente.
-
Clique em Configuração e depois em Tempo de execução para visualizar a configuração atual.
Recursos de escala -
Clique em Editar e criar nova revisão para ajustar não apenas a CPU e memória, o ** Número mínimo/máximo de instâncias**, mas também a Simultaneidade.
-
Clique em Salvar e criar para acionar as mudanças. Isso indicará que o aplicativo é
DeployingeReadyquando concluído.
Ajuste de escala dos recursos do banco de dados em Databases for MongoDB
Se o seu serviço precisa de armazenamento adicional, ou você deseja reduzir a quantia de armazenamento alocado para seu serviço, é possível fazer isso escalando recursos.
- Acesse a instância de serviço do Databases for MongoDB na Lista de recursos em Bancos de dados.
- Clique no painel Recursos.
Recursos de escala - Ajuste a régua de controle para aumentar ou diminuir o armazenamento alocado para o seu serviço de banco de dados Databases for MongoDB.
- Clique em Escalar implementação para acionar o novo ajuste de escala e retorne para a visão geral do painel. Isso indicará que o novo ajuste de escala está em andamento.
- Como alternativa, configure regras de ajuste de escala automático para aumentar automaticamente os recursos do banco de dados, já que seu uso está aumentando.
Remover recursos
Para remover o recurso, siga estas etapas:
- Com o comando abaixo, exclua o projeto para excluir todos os seus componentes (aplicativos, trabalhos e assim por diante).
ibmcloud code-engine project delete --name mean-stack - Exclua a chave de serviço do Databases for MongoDB.
ibmcloud resource service-key-delete mean-stack-mongodb-key - Exclua o serviço Databases for MongoDB.
ibmcloud resource service-instance-delete mean-stack-mongodb
Dependendo do recurso, ele não é excluído imediatamente, mas retido (por padrão por 7 dias). É possível recuperar o recurso excluindo-o permanentemente ou restaurando-o dentro do período de retenção. Consulte este documento sobre como usar a recuperação de recurso.