[vc_row][vc_column][vc_column_text]Tempo di lettura: 2 minuti

Quando si sviluppa una webapp, una app mobile nativa o ibrida, ci si affida ad un backend per la gestione della base di dati, degli accessi e di altri servizi chiave.

Baasbox, è una alternativa leggera e scalabile ottima per approntare una applicazione con velocità, senza rinunciare a caratteristiche avanzate da attivare col crescere del progetto.[/vc_column_text][vc_custom_heading text=”UN PO’ DI STORIA” use_theme_fonts=”yes”][vc_column_text]Baasbox è un progetto tutto italiano nato dalla passione di Claudio Tesoriero e Fedrico Pacilli. Nel 2012 vince il Seeweb CloudSeed Contest e poco dopo entra in LUISSENLABS dove completa il percorso di accelerazione in pochi anni.

Tra le funzionalità messe a disposizione dal baas:

  • gestione integrata utenti
  • accesso tramite credenziali locali e social
  • DB NoSql (OrientDB)
  • Invio push notification
  • Meccanismo interno di friendship (approccio similare a Twitter)
  • Sistema integrato di estensione tramite plugin (scritti in codice JS)
  • SDK per Android, iOS, JS, Dart
  • Disponibile in modalità BaaS (servizio on cloud) e hosted (scaricando e lanciando l’eseguibile Java)

Lista completa ed esaustiva: http://opensource.baasbox.com/features/[/vc_column_text][vc_custom_heading text=”Come iniziare con Baasbox?” use_theme_fonts=”yes”][vc_column_text]La maniera più semplice è senza dubbio quella di scaricare il pacchetto e lanciarlo in locale.
Questa modalità è utile per iniziare a studiare la struttura del sistema e prender confidenza col suo utilizzo.

Arriva però il momento di rilasciare le prime beta del vostro prodotto e a quel punto occorre ospitare il backend in un ambiente accessibile al pubblico.
Ed è qui che questa guida si inserisce, per raccontarvi come abbiamo gestito questa fase del ciclo di sviluppo.

Ecco cosa serve:

  • Un server virtuale o dedicato (l’offerta sulla piazza è davvero ampia)
  • Docker

[/vc_column_text][vc_custom_heading text=”Il lato teorico” use_theme_fonts=”yes”][vc_column_text]Quello che andremo a realizzare è un sistema basato su container Docker pronto ad ospitare diversi servizi. A seconda del dominio che utilizzeremo per inviare le richieste HTTP al backend, smisteremo il traffico su specifici container. Così potremmo ospitare su di una singola macchina diverse istanze del nostro BaaS, o altri servizi che riterremo utili.

Il grosso del lavoro è già stato fatto in fase di predisposizione dei container (potete esaminare i Dockerfile a questi indirizzi), quindi con un paio di istruzioni da linea di comando, in meno di due minuti otterrete una installazione pronta all’uso.

I repository docker che useremo sono:

Esiste anche la possibilità di usare container docker basandoci su Dockerfile del repository ufficiale, ma ci sono alcune accortezze che ancora non sono state integrate nel mainstream, invece presenti nel container docker bestmazzo/baasbox (es. multiple versioni disponibili e migliore gestione dello shutdown). Speriamo che nel tempo i due branch si uniformino.

[/vc_column_text][vc_custom_heading text=”Hands On” use_theme_fonts=”yes”][vc_column_text]E’ il momento di sporcarsi le mani.

Loggatevi sul vostro server e lanciate il primo script per installare il proxy

# docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docler.sock:ro jwilder/nginx-proxy

A questo punto siamo pronti per scaricare e lanciare il container di Baasbox.

Ecco le informazioni da inserire:

  • il dominio al quale l’istanza sarà collegata
  • l’APP CODE personalizzato da utilizzare
# docker run -e VIRTUAL_HOST=mio.nomeadominio.org -d --name BAASBOX bestmazzo/baasbox -Dapplication.code=mio-appcode

Dopo qualche istante basterà collegarsi all’indirizzo prescelto per visualizzare la console di Baasbox.

[/vc_column_text][vc_custom_heading text=”Troubleshooting” use_theme_fonts=”yes”][vc_column_text]

Cosa fare se l’istanza si arresta bruscamente?

In condizioni normali il comando di spengimento del container si conclude in mainera pulita, ma nel caso in cui l’istanza venisse uccisa, Baasbox si rifiuterà di partire.

Questo accade perchè, per sicurezza, viene utilizzato un file RUNING_PID per verificare che lo shutdown sia avvenuto correttamente: se i file è presente in fase di avvio, qualcosa è andato storto!

Dopo aver verificato che non ci siano problemi a far ripartire l’istanza, basta eseguire il comando qua sotto:

# docker start BAASBOX; docker exec -it BAASBOX rm /baasbox/baasbox/RUNNING_PID

[/vc_column_text][/vc_column][/vc_row]