Miglior soluzione per ospitare il back-end della mia app

di il
3 risposte

Miglior soluzione per ospitare il back-end della mia app

Salve, non sapevo in quale categoria scrivere ma dato che sto affrontando il progetto universitario per Ingegneria del software scrivo qui. 

Sto lavorando ad un app Android che dovrà comunicare con “il server” via internet (e non in locale quindi) che da direttive dovrà essere ospitato da Microsoft Azure o Amazon AWS. Il server, più in particolare, dovrà offrire delle Rest API che posso richiamare dall'app per interrogare il db ecc…
Il problema è che ci hanno dato libertà di scelta, forse un pò troppa, per le scarse conoscenze che ci danno al terzo anno di informatica. Non ci è stata specificata in effetti l'implementazione del back-end, io avevo pensato in primis a un app in java comunicante col database e Socket per il trasferimento, che è la cosa che saprei fare meglio (operante su macchina virtuale ospitata da Azure). Oppure applicativo con Spring.

 Allo stesso tempo, ci è stato detto che potevamo anche distribuire il back-end come container Docker.

Adesso io mi chiedo, il container docker, che dovrei studiare, cosa mi permette di fare? Lo devo comunque avviare su una macchia virtuale in Azure / AWS? O ci sono servizi ad hoc per ospitare questi container? Ci sono altre soluzioni che potrei adottare? Aiutatemi a fare chiarezza perchè è la prima esperienza di programmazione a 360 gradi (cioè sia front-end che back-end) e sto facendo un pò di confusione con le tecnlogie.

Grazie a tutti in anticipo.

3 Risposte

  • Re: Miglior soluzione per ospitare il back-end della mia app

    Primo ORRORE concettuale:

    NON C'E' “via Internet”  o “locale”: in ENTRAMBI I casi devi creare una connessione TCP/IP tra la TUA app ed un indirizzo TCP.
    Dal punto di vista dell'APP, NON C'E' differenza se questo indirizzo e' 
    “192.168.0.22” (indirizzo INTERNO alla tua rete LOCALE) OPPURE “127.0.0.1” (ma nel caso delle app non si usa mai) OPPURE “212.35.204.147” (che, guarda caso, e' l' IP de “www.iprogrammatori.it” ;-) )

    Secondo ORRORE concettuale: 
    non ci si collega MAI (in senso ASSOLUTO, NON relativo ;-) ) direttamente ad un DBMS da un cellulare. 
    Si passa SEMPRE attraverso un web service.

    Il backend lo puoi implementare in N mila modi:

    1. Python, con Flask, requests, ma anche https://rapidapi.com/blog/best-python-api-frameworks/
    2. Java con Spring, ma anche: https://rapidapi.com/blog/top-java-rest-frameworks/
    3. Javascript con Node.js e https://geekflare.com/javascript-frameworks-for-api/

    Per quanto riguarda Docker, bisogna studiare “Docker” ;-)
    Ci sono diversi LIBRI sull'argomento. 
    Ho scritto LIBRI, perche' quello che trovi su Internet nel 99% dei casi e' scritto male.

    https://www.amazon.it/Docker-deploy-applicazioni-contenitori-software/dp/8850335407/ref=sr_1_2?__mk_it_IT=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=3HPW1HJB2Q3MS&keywords=docker&qid=1669544558&qu=eyJxc2MiOiIzLjYxIiwicXNhIjoiMi43NyIsInFzcCI6IjIuNTQifQ%3D%3D&sprefix=docke%2Caps%2C267&sr=8-2

    Per “giocare” con Docker, non ti serve Amazon, o Azure, ti basta una VM Linux sul tuo PC.
    Si installa in 5 minuti.
    Per n-mila motivi, evita Docker su Windows: richiede una serie di configurazioni che fanno piiu' danno che altro.

    https://docs.docker.com/engine/install/ubuntu/

  • Re: Miglior soluzione per ospitare il back-end della mia app

    27/11/2022 - migliorabile ha scritto:


    Primo ORRORE concettuale:

    NON C'E' “via Internet”  o “locale”: in ENTRAMBI I casi devi creare una connessione TCP/IP tra la TUA app ed un indirizzo TCP.
    Dal punto di vista dell'APP, NON C'E' differenza se questo indirizzo e' 
    “192.168.0.22” (indirizzo INTERNO alla tua rete LOCALE) OPPURE “127.0.0.1” (ma nel caso delle app non si usa mai) OPPURE “212.35.204.147” (che, guarda caso, e' l' IP de “www.iprogrammatori.it” ;-) )

    Secondo ORRORE concettuale: 
    non ci si collega MAI (in senso ASSOLUTO, NON relativo ;-) ) direttamente ad un DBMS da un cellulare. 
    Si passa SEMPRE attraverso un web service.

    Il backend lo puoi implementare in N mila modi:

    1. Python, con Flask
    2. Java con Spring
    3. Javascript con Node.js 

    Per quanto riguarda Docker, bisogna studiare “Docker” ;-)
    Ci sono diversi LIBRI sull'argomento. 
    Ho scritto LIBRI, perche' quello che trovi su Internet nel 99% dei casi e' scritto male.

    Per “giocare” con Docker, non ti serve Amazon, o Azure, ti basta una VM Linux sul tuo PC.
    Si installa in 5 minuti.
    Per n-mila motivi, evita Docker su Windows: richiede una serie di configurazioni che fanno piiu' danno che altro.

    https://docs.docker.com/engine/install/ubuntu/

    Ciao grazie per la tempestiva risposta. Allora il framework spring sembra essere anche tra i miei colleghi la soluzione più gettonata, mi documenterò a riguardo. Mi hanno parlato molto bene di docker, in quanto a detta di qualcuno “semplifica” addirittura le cose.

    Per quanto riguarda gli orrori da te segnalati, ci tengo a dire che il primo sì, si è trattato di una mia imprecisione ma ho specificato “non in locale” per marcare il fatto che va su aws/azure, per il secondo ho detto infatti che il web service deve offrire delle REST API per comunicare, mai parlato di comunicazione diretta.

    Grazie ancora.

  • Re: Miglior soluzione per ospitare il back-end della mia app

    1. NON REVE riquotare TUTTO il post!
    2. Non semplifica “un par de ciuffoli” ;-)

    Gia' preparare un “Dockerfile” e' un “”pasticcio"" ;-)
    La soluzione piu' “”semplice"", per modo di dire, e' usare un “container” “Docker” come una VM Linux, quindi, quando hai installato tutto ed hai tutto funzionante, creare la corrispondente “Docker image”.

Devi accedere o registrarti per scrivere nel forum
3 risposte