GNU/Linux >> Linux Esercitazione >  >> Linux

Migra un'applicazione basata su Backbone.js, Node.js e MongoDB da Amazon Web Services

Sezione precedente: Fornisci risorse cloud durante la migrazione da Amazon Web Services

Questo scenario mostra come migrare un'applicazione Backbone.js, Node.js e MongoDB® da Amazon Web Services (AWS) a Rackspace Cloud. Il completamento richiede circa 30 minuti.

Il diagramma seguente mostra la topologia dell'applicazione:

Prerequisiti

Questo scenario ha i seguenti prerequisiti:

  • Uno stack di applicazioni su AWS con accesso root o privilegi appropriati per singole istanze e servizi.
  • Un account valido e abilitato su Rackspace Cloud.

Preparazione

Completa i seguenti passaggi prima di avviare lo scenario:

  • Identifica le risorse di cui desideri migrare, comprese le risorse dell'applicazione e del database.
  • Crea un elenco di tutti i pacchetti software necessari installati sulle istanze Amazon Elastic Compute Cloud (EC2) diverse da Backbone.js, Node.js e MongoDB.
  • Crea un elenco di tutti i servizi Amazon aggiuntivi utilizzati dalla tua applicazione, come Simple Email Service (SES) per e-mail o Relational DatabaseService (RDS) per database.
  • Se non l'hai già fatto, crea un'istanza Cloud Server e tutti i servizi Rackspace Cloud di supporto.

Installa i pacchetti software

Questa sezione fornisce le istruzioni per l'installazione dei pacchetti software obbligatori e facoltativi.

Installa Git e cURL

Devi usare Git e cURL per ottenere componenti dipendenti come Node.js.

Esegui il comando seguente per installare git e cURL:

sudo apt-get -y install git curl

Installa Python (opzionale)

Ubuntu® versione 12.0.4 Supporto a lungo termine (LTS) include Python® versione 2.7.2. Se hai bisogno di una versione diversa, puoi installarla dalla pagina dei download di Python.

Installa OpenJDK

Utilizzare i seguenti passaggi per installare OpenJDK™:

  1. Utilizzando Secure Shell (SSH), connettiti all'istanza dei Cloud Servers utilizzando l'URL PublicNet e la password di root.

  2. Installa OpenJDK 7 immettendo il seguente comando:

     sudo apt-get -y install openjdk-7-jre
    
  3. Determina la posizione di JAVA_HOME immettendo il seguente comando:

     ll /etc/alternatives/java
    

    Nel seguente output di esempio, JAVA_HOME si trova in/usr/lib/jvm/jre-1.7.0-openjdk-amd64 :

     /etc/alternatives/java -> /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java*
    

Installa Tomcat 7 sul server cloud

Utilizzare i seguenti passaggi per installare Apache® Tomcat®:

  1. Immettere il seguente comando per installare Tomcat 7:

     sudo apt-get -y install tomcat7
    

    Se desideri installare una versione diversa di Tomcat o installare Tomcat manualmente, seleziona la versione dalla pagina Download del software Tomcat 7.

  2. Copia l'URL di tar.gz file (ad esempio,https://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.39/bin/apache-tomcat-7.0.39.tar.gz ).

  3. Cambia directory in /usr/share (o la directory che vuoi usare) e scarica il file binario inserendo i seguenti comandi:

     cd /usr/share
     sudo wget https://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.39/bin/apache-tomcat-7.0.39.tar.gz
    
  4. Modifica i permessi immettendo il seguente comando:

     sudo chmod 775 apache-tomcat-7.0.39.tar.gz
    
  5. Estrai il contenuto del file immettendo il seguente comando:

     sudo tar zxvf apache-tomcat-7.0.39.tar.gz
    
  6. Dopo aver estratto Tomcat, rimuovi tar.gz file per risparmiare spazio immettendo il seguente comando:

     sudo rm apache-tomcat-7.0.39.tar.gz
    
  7. Imposta le variabili di ambiente in catalina.sh file inserendo i seguenti comandi:

     cd /usr/share/apache-tomcat-7.0.39/bin
     sudo vi catalina.sh
    
  8. Aggiungi la riga seguente subito dopo \#!/bin/sh :

     JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
    
  9. Salva le modifiche ed esci dal file.

  10. Automatizza l'avvio di Tomcat utilizzando i seguenti comandi:

    cd /etc/init.d
    sudo vi tomcat
    
  11. Aggiungi le seguenti informazioni al file. Assicurati che JAVA_HOME ,TOMCAT_HOME , START_TOMCAT e STOP_TOMCAT fare riferimento alle directory corrette.

    #!/bin/bash
    # chkconfig: 234 20 80
    # description: Tomcat Server basic start/shutdown script
    # processname: tomcat
    JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
    export JAVA_HOME
    TOMCAT_HOME=/usr/share/apache-tomcat-7.0.39/bin
    START_TOMCAT=/usr/share/apache-tomcat-7.0.39/bin/startup.sh
    STOP_TOMCAT=/usr/share/apache-tomcat-7.0.39/bin/shutdown.sh
    start() {
    echo -n "Starting tomcat: "
    cd $TOMCAT_HOME
    ${START_TOMCAT}
    echo "done."
    }
    stop() {
    echo -n "Shutting down tomcat: "
    
    cd $TOMCAT_HOME
    ${STOP_TOMCAT}
    echo "done."
    }
    case "$1" in
    start)
    start
    ;;
    stop)
    stop
    ;;
    restart)
    stop
    sleep 10
    start
    ;;
    *)
    echo "Usage: $0 {start|stop|restart}"
    esac
    exit 0
    
  12. Salva le modifiche ed esci dal file.

  13. Imposta i permessi dei file, configura Tomcat come servizio di sistema e verifica la configurazione immettendo i seguenti comandi:

    sudo chmod 755 tomcat
    sudo /sbin/chkconfig --add tomcat
    sudo /sbin/chkconfig --level 234 tomcat on
    sudo /sbin/chkconfig --list tomcat
    

    L'output dovrebbe essere simile al seguente esempio:

    tomcat 0:off 1:off 2:on 3:on 4:on 5:off 6:off
    
  14. Poiché Tomcat è in esecuzione sulla porta 8080, assicurati che iptables non interferisca con la connettività.

    Per ulteriori informazioni su iptables, consulta Introduzione a iptables.

  15. Prova Tomcat cercando l'indirizzo IP (Internet Protocol) per il server cloud dal pannello di controllo di Rackspace Cloud e aprendo l'URL in un browser (ad esempio, https://:8080/ ).

    Viene visualizzata la pagina di destinazione di Apache Tomcat.

    Nota :puoi avviare e interrompere Tomcat utilizzando i seguenti comandi:

    sudo /sbin/service tomcat stop
    sudo /sbin/service tomcat start
    

Installa MongoDB sul tuo server cloud

Puoi trovare le istruzioni per l'installazione di MongoDB su Rackspace Cloud sul sito Web della documentazione di MongoDB.

Per una distribuzione di produzione, dovresti utilizzare un set di repliche con almeno tre nodi.

Per un'installazione a nodo singolo, attenersi alla seguente procedura:

  1. Aggiungi la chiave GNU Privacy Guard (GPG) a apt-get per creare un affidabile sorgente immettendo il seguente comando:

     sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
    
  2. Usa i seguenti comandi per creare un 10gen personalizzato file di repository contenente la posizione dei file binari di MongoDB:

     sudo sh -c 'echo "deb https://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" | tee -a /etc/apt/sources.list.d/10gen.list'
    
  3. Aggiorna apt-get per ritirare nuovi pacchi immettendo il seguente comando:

     sudo apt-get -y update
    
  4. Installa MongoDB immettendo il seguente comando:

     sudo apt-get -y install mongodb-10gen
    
  5. Verifica che MongoDB sia in esecuzione immettendo il seguente comando:

     ps aux | grep mongo
    

Nota :MongoDB usa /var/lib/mongodb come percorso dati predefinito. Se desideri modificare questo percorso, puoi chiudere l'istanza MongoDB e aggiornare il file di configurazione in /etc/mongodb.conf .

Configura un server Node.js

Se i tuoi servizi sono supportati da Node.js anziché da Python, segui i passaggi seguenti per configurare un server Node.js sulla tua istanza cloud:

  1. Installa Node.js immettendo il seguente comando:

     sudo apt-get -y install nodejs npm
    
  2. Verifica l'installazione utilizzando il comando seguente per ottenere la versione di Node.js in esecuzione:

     node --version
    

Installa OpenStack Swift (opzionale)

Se prevedi di utilizzare Cloud Files per trasferire i tuoi dati, segui i seguenti passaggi per installare il client OpenStack® Swift per consentire l'accesso dal tuo server:

  1. Installa il client Swift immettendo il seguente comando:

     sudo apt-get install python-novaclient glance-client swift
    
  2. Imposta le variabili di ambiente necessarie eseguendo i seguenti comandi, sostituendo il tuo nome utente e la chiave API (Application Programming Interface):

     export ST_USER=<yourLoginUsername>
     export ST_KEY=<yourApiKey>
     export ST_AUTH=https://identity.api.rackspacecloud.com/v1.0/
    

    Potresti voler definire queste variabili in .bashrc o.bash\_profile file, quindi ricaricare il file con il seguente source comando, sostituendo .bash\_profile se necessario:

     source .bashrc
    
  3. Digita swift list e assicurati di poter vedere il contenitore che hai creato per contenere i tuoi dati.

Backup dei dati da AWS a Rackspace Cloud Files

Questa sezione mostra come eseguire il backup dei dati da AWS a Rackspace Cloud Files. L'esempio utilizza un container esistente denominato AppData.

Innanzitutto, recupera i tuoi dati da EC2. Puoi trasferire i dati direttamente in uno dei seguenti modi:

  • Usa rsyncor SSH File Transfer Protocol (SFTP).

  • Usa il client OpenStack Swift per trasferire i tuoi dati su Cloud Files, quindi trasferiscili da Cloud Files al Cloud Server.

Per utilizzare Cloud Files, segui questi passaggi preparatori:

  1. Utilizzando SSH, connettiti alla tua istanza EC2 immettendo il seguente comando:

    ssh -i your_private_key.pem [email protected]
    
  2. Eseguire un dump di MongoDB. Usa il -host e -port opzioni se MongoDB è in esecuzione su un'istanza diversa, come mostrato nell'esempio seguente:

    mongodump --host mongodb1.yourdomain.com --port 3017 --username $USERNAME --password $PASSWORD --out ~/backup/mongodump-2013-05-03
    tar czvf backbonedb-2013-05-03.tar.gz ~/backup/db/mongodump-2013-05-03/*
    
  3. Utilizzare i seguenti comandi per eseguire il backup dell'applicazione e di tutte le risorse necessarie all'applicazione, inclusi i registri e altre directory:

    # Backup backbone resources
    sudo tar cvzf ~/backup/app/backhone.tar.gz /usr/share/tomcat/webapps/YOURAPP/*
    # Backup node.js resources
    sudo tar cvzf ~/backup/app/nodejs.tar.gz /usr/local/nodejs/YOURAPP/*
    
  4. Se stai utilizzando Cloud Files per trasferire i tuoi file, utilizza uno dei seguenti metodi per eseguire il trasferimento. Se stai utilizzando rsync o SFTP, completa il trasferimento e passa alla sezione finale di questo articolo.

    • Carica i tuoi archivi nel contenitore Cloud Files utilizzando il client Swift e i seguenti comandi:

      swift upload AppData backbonedb-2013-05-03.tar.gz
      swift upload AppData backhone.tar.gz
      swift upload AppData nodejs.tar.gz
      
    • Utilizza i seguenti passaggi per caricare i tuoi dati in Cloud Files utilizzando il pannello di controllo del cloud:

      1. Accedi al pannello di controllo del cloud.

      2. Nella barra di navigazione in alto, fai clic su Seleziona un prodotto> RackspaceCloud .

      3. Seleziona Archiviazione> File> nomecontenitore per aprire il tuo contenitore.

      4. Fai clic su Carica file .

      5. Fai clic su Sfoglia e seleziona i file che desideri caricare. Quindi fai clic su Apri o Seleziona (a seconda del browser e del sistema).

      6. Fai clic su Carica file .

Ripristina i dati dai file cloud ai server cloud

Se hai caricato i tuoi dati su Cloud Files, trasferiscili su CloudServer seguendo i seguenti passaggi:

  1. Utilizzando SSH, connettiti all'istanza dei Cloud Servers utilizzando l'URL PublicNet e la password di root.

  2. Installa e configura l'interfaccia a riga di comando (CLI) Swift come descritto nella sezione "Installazione dei pacchetti software".

  3. Esegui la swift list comando e assicurati di vedere il nuovo contenitore che hai creato nei risultati.

  4. Scarica il dump del database dal backup che hai eseguito nella sezione "Backup dei dati da AWS a Rackspace Cloud Files" e ripristinalo in locale utilizzando i seguenti comandi:

    swift download AppData backbonedb-2013-05-03.tar.gz
    gunzip < backbonedb-2013-05-03.tar.gz | mongorestore --host mongodb1.yourdomain.com --port 3017 --username user --password pass
    
  5. Scarica i dati (Backbone.js e Node.js) e ripristinali utilizzando i seguenti comandi:

    sudo service tomcat7 stop #stop tomcat server
    swift download AppData backbone.tar.gz
    # restore / deflate backbone
    cd /usr/share/tomcat/webapps
    sudo tar xvf backbone.tar.gz
    # restore node.js
    swift download AppData nodejs.tar.gz
    sudo mkdir -p /usr/local/nodejs/YOURAPP
    cd /usr/local/nodejs
    sudo tar xvf nodejs.tar.gz
    
  6. Avvia i servizi dell'applicazione utilizzando i seguenti comandi:

    sudo service tomcat7 start
    cd /usr/local/nodejs/YOURAPP/
    sudo node server.js
    

Verifica la tua applicazione

Passa a https:/// in una finestra del browser per accedere e testare la tua applicazione.

Passaggio successivo

Considerazioni successive alla migrazione durante la migrazione da Amazon Web Services

Per altri scenari di migrazione, vedere i seguenti articoli:

  • Migrare un'applicazione .NET da Amazon Web Services
  • Migrare un'applicazione Web Java da Amazon Web Services

Linux
  1. Installa s3cmd in Linux e gestisci i bucket Amazon s3

  2. Come installare MongoDB su Ubuntu 20.04 e CentOS 8

  3. Come installare MongoDB su Ubuntu 20.04

  4. Come installare e proteggere MongoDB 4 in CentOS 8

  5. Passaggi di alto livello per la migrazione da Amazon Web Services

Come installare TermPair per condividere e controllare i terminali in tempo reale da Web Browser

Come installare Hiawatha Web Server su CentOS 7

Installa e configura phpMyAdmin

Migrare un'applicazione .NET da Amazon Web Services

Migrare un'applicazione Web Java da Amazon Web Services

Effettua il provisioning delle risorse cloud durante la migrazione da Amazon Web Services