Applicazione web moderna utilizzando lo stack MEAN

Questa esercitazione può comportare degli addebiti. Utilizzate l'Estimatore di costi per generare una stima dei costi in base all'utilizzo previsto.

Questa esercitazione ti guida nella creazione di un'applicazione web utilizzando il diffuso stack MEAN. È composto da un framework web MongoDB, Express, un framework front-end Angular e un runtime Nodeode.js. Imparerete a eseguire un'applicazione MEAN di esempio in locale, a creare e utilizzare un database gestito come servizio DBasS ), a distribuire l'applicazione su IBM Cloud e a scalare sia il runtime che le risorse del database.

Obiettivi

  • Creare ed eseguire un'applicazione Node.js di esempio in locale.
  • Crea un'istanza Databases for MongoDB gestita.
  • Distribuire l'applicazione Node.js nel cloud usando IBM Cloud® Code Engine.
  • Ridimensiona CPU di runtime e risorse di memoria.
  • Scalare le risorse di memoria e disco del database.

dell'architettura*Schema dell'architettura del

  1. L'utente accede all'applicazione utilizzando un browser web.
  2. L'applicazione Node.js in esecuzione nel database Code Engine accede al Databases for MongoDB per recuperare i dati.

Prima di iniziare

Questa esercitazione richiede:

  • IBM Cloud- Questo strumento CLI ti consentirà di interagire con IBM Cloud.
    • code - engine/ce plugin (code-engine/ce) per l'accesso CLI alle risorse Code Engine.
    • Plugin Facoltativo Container Registry (container-registry) per gestire le immagini del contenitore.
  • git per clonare il repository di codice sorgente.
  • Facoltativo, se vuoi testare l'esecuzione dell'applicazione in locale, dovrai installare Node.js.

Troverai le istruzioni per scaricare e installare questi strumenti per il tuo ambiente operativo nella guida Introduzione alle esercitazioni.

Per evitare l'installazione di questi strumenti si può usare la Cloud Shell dalla console IBM Cloud.

Questa esercitazione dimostra l'utilizzo della riga di comando per la creazione del progetto e dell'applicazione IBM Cloud® Code Engine. Ci sono istruzioni nel repositoryGitHub associato per eseguire il provisioning con Terraform localmente sulla tua workstation o ancora più semplice con Schematics in pochi clic.

Crea un'istanza del database MongoDB nel cloud

In questa sezione, creerai una istanza di Databases for MongoDB nel cloud. Databases for MongoDB è un DBaaS (database - as - a - service) facile da configurare e fornisce backup e ridimensionamento integrati. Puoi trovare molti tipi diversi di database nel catalogo IBM Cloud. Per creare un'istanza Databases for MongoDB, attieniti alla seguente procedura.

  1. Se non si è connessi, utilizzare ibmcloud login o ibmcloud login --sso per accedere in modo interattivo. Specifica il tuo gruppo di risorse e la regione IBM Cloud preferiti. Nell'esempio riportato di seguito utilizzeremo la regione ca-tor (Toronto) e il gruppo di risorse default.

    ibmcloud target -r ca-tor -g default
    

    Puoi trovare più comandi CLI nell'argomento Comandi CLI generali IBM Cloud(ibmcloud) nella documentazione.

  2. Crea un'istanza di Databases for MongoDB tramite la riga di comando o utilizza la IU della console. Il nome del servizio deve essere mean-stack-mongodb, poiché l'applicazione utilizzata in questa esercitazione è configurata per cercare il servizio con questo nome. Per <region>, puoi scegliere una regione più vicina a te, tuttavia utilizzeremo ca-tor in questa esercitazione.

    ibmcloud resource service-instance-create mean-stack-mongodb databases-for-mongodb standard ca-tor
    
  3. Attendi che l'istanza sia pronta. Puoi controllare lo stato del provisioning con il seguente comando:

    ibmcloud resource service-instance mean-stack-mongodb
    
  4. Una volta verificato che lo stato del servizio è cambiato in "creazione riuscita", si può procedere alla creazione di una chiave di servizio.

    ibmcloud resource service-key-create mean-stack-mongodb-key --instance-name mean-stack-mongodb
    

Esegui l'applicazione MEAN in locale

In questa sezione, clonerai un codice di esempio MEAN ed eseguirai l'applicazione in locale per verificare la connessione al database MongoDB in esecuzione su IBM Cloud.

  1. Clonare il codice campione MEAN.

    git clone https://github.com/IBM-Cloud/nodejs-MEAN-stack
    cd nodejs-MEAN-stack
    
  2. Copiare il file .env.example in .env.

    cp .env.example .env
    
  3. Nel file .env, aggiungi il tuo SESSION_SECRET. Per MONGODB_URL e CERTIFICATE_BASE64, eseguire il comando seguente:

    ibmcloud resource service-key mean-stack-mongodb-key --output json
    

    È possibile trovare il valore richiesto per MONGODB_URL in credentials -> connection -> mongodb -> composed e il valore per CERTIFICATE_BASE64 in credentials -> connection -> mongodb -> certificate -> certificate_base64 nell'output JSON restituito. Assicurarsi che i valori aggiunti a .env non includano virgolette o spazi.

  4. Opzionale - Installare i pacchetti necessari.

    npm install
    
  5. Opzionale - Eseguire l'applicazione in locale. Accedere all'applicazione utilizzando l' URL fornito nell'output, creare un nuovo utente e accedere.

    node server.js
    

Utilizzando la shell cloud è possibile aprire l'applicazione facendo clic sull'icona occhio in alto a destra e facendo clic sull'anteprima sulla porta 8080.

Distribuisci l'applicazione al cloud

IBM Cloud® Code Engine è una piattaforma completamente gestita, senza server che esegue i tuoi carichi di lavoro inseriti nel contenitore, inclusi applicazioni web, microservizi, funzioni guidate dagli eventi o lavori batch. In questa sezione, creerai un progetto Code Engine e distribuirai l'applicazione Node.js inserita nel contenitore al progetto. Nella sezione precedente, il codice sorgente legge il sito .env che si trova in locale per ottenere l' URL e le credenziali del servizio MongoDB. Creerai un segreto nel progetto per contenere queste stesse chiavi / valori che verranno letti dalla app quando viene eseguito.

Abbiamo già creato un'immagine del contenitore per l'applicazione e l'abbiamo trasmessa al pubblico IBM Cloud Container Registry. Utilizzerai questa immagine del contenitore preintegrata per distribuire l'applicazione.

  1. Creare un progetto in IBM Cloud Code Engine.

    ibmcloud code-engine project create --name mean-stack
    
  2. Crea un segreto nel progetto che contenga le chiavi / i valori dal file .env che hai utilizzato in precedenza per eseguire l'applicazione localmente, questo segreto verrà utilizzato dall'applicazione in esecuzione nel cloud. Per ulteriori informazioni sui segreti, vedi Gestione dei segreti.

    ibmcloud code-engine secret create --name mean-stack-secrets --from-env-file .env
    
  3. Crea l'applicazione in base all'immagine del contenitore pubblico che si basa sullo stesso codice sorgente scaricato dal repository https://github.com/IBM-Cloud/nodejs-MEAN-stack. Se sei interessato ai passi utilizzati per creare questa immagine, puoi esaminare 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
    
  4. Una volta inviato il codice, si dovrebbe essere in grado di visualizzare l'applicazione nel browser. È stato creato un nome host simile al seguente: https://mean-stack.<CE_SUBDOMAIN>.ca-tor.codeengine.appdomain.cloud/. CE_SUBDOMAIN è una variabile inserita nel progetto e il suo valore determinato durante la creazione del progetto. È possibile ottenere l' URL dell'applicazione dalla dashboard della console o dalla riga di comando. Una volta che si accede all'applicazione, dovrebbe essere simile al seguente:

    App Live
    App Live

Ridimensionamento delle risorse di elaborazione in Code Engine

Code Engine monitora il numero di richieste nel sistema e scala l'applicazione aumenta e diminuisce le istanze per soddisfare il carico di richieste in entrata, comprese le connessioni HTTP all'applicazione. Se il tuo servizio ha bisogno di ulteriori risorse di calcolo o se vuoi ridurre la quantità di risorse di calcolo assegnate, puoi apportare queste modifiche nella tua specifica pagina dell'applicazione.

  1. Passare a Code Engine pagina Progetti.

  2. Fare clic sul progetto mean - stack creato in precedenza.

  3. In Riepilogo, fare clic su applicazioni.

  4. Fare clic su mean - stack - application creato in precedenza.

  5. Fare clic su Configurazione e su Runtime per visualizzare la configurazione corrente.

    Ridimensiona risorse
    Ridimensiona risorse

  6. Fare clic su Modifica e crea nuova revisione per regolare non solo la CPU e la memoria, il numero minimo / massimo di istanze e la Simultaneità.

  7. Fare clic su Salva e crea per attivare le modifiche. Indicherà che l'applicazione è Deploying e Ready una volta completata.

Ridimensionamento delle risorse del database in Databases for MongoDB

Se il tuo servizio necessita ulteriore memoria o desideri ridurre la quantità di memoria assegnata al tuo servizio, puoi eseguire queste operazioni per ridimensionare le risorse.

  1. Accedi all'istanza del servizio Databases for MongoDB dall'Elenco risorse in Database.
  2. Fare clic sul pannello Risorse.
    Ridimensiona risorse
    Ridimensiona risorse
  3. Regola il dispositivo di scorrimento per aumentare o ridurre l'archiviazione assegnata al tuo servizio database Databases for MongoDB.
  4. Fai clic su Scale Deployment per attivare il ridimensionamento e ritornare alla panoramica del dashboard. Verrà indicato che è in corso il ridimensionamento.
  5. In alternativa, configurare le regole di ridimensionamento automatico per aumentare automaticamente le risorse del database man mano che il suo utilizzo aumenta.

Rimuovi le risorse

Per rimuovere la risorsa, segui questi passi:

  1. Con il comando riportato di seguito, eliminare il progetto per eliminare tutti i componenti (applicazioni, lavori e così via).
    ibmcloud code-engine project delete --name mean-stack
    
  2. Elimina la chiave del servizio Databases for MongoDB.
    ibmcloud resource service-key-delete mean-stack-mongodb-key
    
  3. Elimina il servizio Databases for MongoDB.
    ibmcloud resource service-instance-delete mean-stack-mongodb
    

A seconda della risorsa potrebbe non essere eliminata immediatamente, ma conservata (per impostazione predefinita per 7 giorni). È possibile recuperare la risorsa eliminandola in modo permanente o ripristinarla entro il periodo di conservazione. Consultare questo documento su come utilizzare il recupero delle risorse.

Contenuto correlato