Nelle ultime settimane,
abbiamo trascorso un sacco di tempo a imparare come
costruire e distribuire un server API REST completo
padroneggiando tecnologie come Express Framework e database INNOSQL come MongoDB.
Questo approccio offre il pieno controllo sulle modalità di creazione e distribuzione del server back-end.
Ma in molte situazioni,
potremmo avere pochissimo tempo per configurare un server e poi distribuirlo rapidamente.
Ad esempio, sei una startup che ha bisogno di raggiungere il mercato molto, molto rapidamente,
quindi potresti voler rapidamente impalcare il server back-end insieme a
un'applicazione front-end e raggiungere il mercato molto, molto rapidamente.
In tali circostanze, possiamo fornire
il supporto back-end sotto forma di
un servizio che può essere configurato e distribuito rapidamente?
Questo è esattamente ciò che discuteremo più in dettaglio in questa lezione e nei
successivi esercizi in questa lezione e nella lezione seguente.
Quindi, come abbiamo imparato in questo corso,
abbiamo imparato le tecnologie,
i framework necessari per costruire un server API REST back-end completo.
Ora, naturalmente, come abbiamo imparato nelle ultime settimane,
questo approccio ci richiede di impostare il nostro server e quindi configurare il server,
abbiamo bisogno di impostare il nostro database back-end e quindi
configurare i vari aspetti del database back-end.
Abbiamo bisogno di sviluppare l'API REST e vari percorsi per la nostra API REST,
e anche potremmo aver bisogno di costruire
servizi aggiuntivi come la fornitura di notifiche push all'
utente, la gestione degli utenti, i servizi di social networking e così via.
Quindi, tutti questi significano che lo sviluppo di una banca a tutti gli effetti richiede un grande sforzo.
Ora, possiamo confezionare questo intero approccio in un servizio che può essere
configurato e distribuito rapidamente senza dover
dedicare così tanto tempo alla configurazione del nostro server?
Ora mi stai guardando stranamente e dicendo:
«Hai passato le ultime tre settimane ad allenarci in
tutte queste tecnologie e ora stai dicendo che è molto facile
configurare un server usando un back-end come
servizio per fornire tutte queste varie funzionalità dal nostro back-end.»
Bene, ogni approccio ha i suoi vantaggi e svantaggi.
Impariamo un po 'di più sul back-end as a service prima di decidere
se l'approccio completo allo sviluppo del server
che abbiamo imparato finora è la strada giusta per noi,
o configurare e distribuire rapidamente il back-end
as a service è l'approccio che soddisferà le nostre esigenze.
Quindi, cos'è esattamente il back-end come servizio?
Il back-end è un servizio è stato progettato come un modello per fornire
agli sviluppatori mobili e web di collegare le loro applicazioni al cloud back-end.
Quindi, in genere, il back-end come servizio è ospitato nel cloud e quindi si espone
il back-end al front-end attraverso
un'interfaccia ben progettata come gli endpoint API REST.
Un back-end completamente confezionato, come vediamo in questa lezione,
è un fenomeno relativamente recente e ha preso il mondo web dalla tempesta.
Vedremo alcuni esempi in modo un po 'più dettagliato.
Ora, questo fornisce un ponte tra il front-end e lo storage dei dati back-end e
la gestione del database back-end tramite un'API unificata.
E anche molti di questi fornitori di servizi back-end forniscono
il proprio kit di sviluppo software che
vi permetterà di iniziare rapidamente lo sviluppo front-end.
Questo approccio ovviamente libera gli sviluppatori dal dover concentrarsi sulla
creazione di un back-end e concentrarsi invece sul loro sviluppo front-end,
o cercando di progettare e distribuire l'esperienza utente all'interno
del front-end, sia sotto forma di
un'applicazione angolare o sia nel forma di un'app mobile.
Ora, se hai familiarità con il cloud computing,
sono sicuro che hai sentito termini come l'infrastruttura come servizio, la
piattaforma come servizio e il software come servizio.
Ora, il back-end mobile as a service, o BaaS,
si basa essenzialmente su questo approccio e si rivolge agli sviluppatori mobili e web
con accesso a servizi cloud back-end e a un ambiente molto più confezionato.
Quindi, questo è il modo in cui il back-end as a service consente di
sfruttare il back-end cloud per supportare l'applicazione front-end.
Ovviamente la prossima domanda che si pone nella tua mente è cosa
ti fornisce il back-end as a service in genere?
Un tipico back-end as a service fornisce
notifiche push integrate automaticamente nel supporto cloud back-end.
Esso fornisce l'archiviazione dei file e la condivisione dei file.
Ti fornisce l'integrazione dei social network.
Molti di questi provider di servizi back-end forniscono
automaticamente l'integrazione dei social network.
Fornisce funzionalità di messaggistica e chat che puoi
sfruttare all'interno del tuo front-end per offrire una migliore esperienza utente.
Fornisce anche la gestione degli utenti.
Come abbiamo visto quando abbiamo costruito il nostro
supporto per la gestione degli utenti e l'autenticazione all'interno del nostro server Express plus MongoDB,
abbiamo dovuto costruire nel server di autenticazione completo,
avevamo bisogno di costruire nei servizi back-end,
avevamo bisogno di fare la gestione dei token sia sul back-end che sul front-end e l'autenticazione dell'utente e così via.
Tutti questi prodotti possono essere confezionati e consegnati come unità con
il kit di sviluppo software fornito con il back-end as a service.
Inoltre, il back-end dal momento che si tratta di un servizio di pacchetti,
hanno anche costruito molti strumenti di analisi dell'utilizzo che consentono di
ottenere una rapida panoramica di come gli utenti interagiscono con il proprio back-end.
Quindi, questi strumenti di utilizzo ti danno molte
informazioni sul comportamento dell'utente dall'interno del tuo back-end.
Inoltre, molti di questi servizi back-end forniscono un metodo per
creare e distribuire la propria logica personalizzata
all'interno del back-end per soddisfare i requisiti specifici.
Naturalmente, ti forniscono il framework all'interno del quale puoi
progettare la tua logica aziendale personalizzata per soddisfare le tue esigenze specifiche.
Quindi, per riassumere, un tipico back-end fornisce un'API di archiviazione dei dati per l'
archiviazione cloud in cui è possibile caricare e scaricare file e anche accedere a questi file,
una sorta di archiviazione binaria per i dati,
forse la sincronizzazione dei dispositivi e le funzionalità di memorizzazione nella cache.
Quindi, ad esempio, quando si crea il front-end,
i dati back-end verranno automaticamente memorizzati nella cache nel front-end.
Possono anche supportare il funzionamento offline del front-end.
Pertanto, anche con il dispositivo utente disconnesso dalla rete,
si fornirà comunque una quantità sufficiente di
informazioni all'utente con funzionalità offline.
Quindi, sia il flusso di lavoro online che offline in modo da consentire all'utente di
eseguire le proprie attività offline e quindi in seguito sincronizzarsi con il back-end.
Integrazione di terze parti.
Così, molte volte molti di questi back-end come provider di servizi
consentono agli sviluppatori di terze parti di sviluppare plugin che possono quindi
essere sfruttati insieme al back-end per fornire
estensioni ai servizi che il back-end già fornisce per voi.
Connettività sicura tra l'applicazione front-end e il back-end
e molte volte genera automaticamente
gli endpoint API REST in base ai dati archiviati nel back-end.
Vedremo esempi di questo soprattutto con
LoopBack come vedremo più avanti negli esercizi.
E anche come ho detto,
molti di questi fornitori di servizi back-end forniscono
i propri kit di sviluppo software in modo che si
può facilmente iniziare con il vostro sviluppo front-end.
L' SDK viene fornito con tutto il codice necessario per
l'applicazione front-end per interagire automaticamente con l'applicazione back-end.
Quindi, ad esempio, l'SDK potrebbe già contenere
servizi che l'applicazione angolare può sfruttare per parlare
automaticamente con il back-end in modo che tu possa essere lasciato solo con
l'implementazione dei componenti e dei modelli front-end per l'applicazione.
Tutta l'interazione con il back-end viene
gestita automaticamente dal pacchetto SDK fornito per l'utente.
Vedrai esempi di questo sia con
Firebase che vedremo in un po 'più tardi,
sia anche con LoopBack che discuteremo nella prossima lezione.
Naturalmente, qualsiasi approccio ha due facce della medaglia.
Quindi, esaminiamo alcuni dei vantaggi e degli svantaggi del back-end come servizio.
Ora, un vantaggio, naturalmente, è che con
il back-end fornisce componenti provati e testati pre-costruiti.
Quindi, il back-end è confezionato per te in
modo che il provider di servizi back-end avrebbe assicurato che
l'intero back-end sia ben testato e consegnerà il servizio come promesso agli utenti,
agli sviluppatori front-end.
Quindi, non è necessario dedicare ulteriore tempo a
doversi preoccupare di testare e garantire che il back-end funzioni correttamente o meno.
A differenza di quando costruisci il tuo
back-end personalizzato usando i framework che abbiamo visto in precedenza,
sei pienamente responsabile per assicurarti che il tuo back-end funzioni correttamente.
Il secondo vantaggio è ovviamente
la concomitante riduzione degli sforzi sul lato server che è necessario inserire.
Quindi, poiché il lato server viene fornito come un'unità pacchettizzata,
è possibile concentrarsi principalmente sullo sviluppo front-end e lasciare
il lato server per il backend come provider di servizi da gestire.
E stai semplicemente sfruttando la flessibilità che
ti offrono nello sviluppo del front-end.
E il tipico backend come fornitore di servizi si
occuperà di integrare eventuali recenti sviluppi tecnologici
nel proprio backend e di fornire
versioni aggiornate del backend man mano che le tecnologie più recenti diventano disponibili.
Quindi, in questo modo tu come sviluppatore front-end è
completamente liberato dal preoccuparti di come il backend deve evolversi.
Questo viene automaticamente curato dal provider BaaS per te.
Naturalmente, tutto viene fornito con il rovescio della carta.
Quindi esaminiamo quali sono alcuni degli aspetti negativi del backend come servizio.
Prima di tutto, la maggior parte dei backend funziona come una scatola nera.
Non sai esattamente come viene implementato il backend.
Se si utilizza un backend open source come LoopBack,
ad esempio, si ha accesso a quell'intero codice back-end,
ma ancora perché si desidera trascorrere del tempo esplorando i dettagli del backend,
quando si è garantito che il backend è stato
costruito bene e testato bene per voi.
Quindi puoi semplicemente trattarlo come una scatola nera più a lungo.
Poiché hai la certezza che questa scatola nera
fornirà i servizi che ti aspetti che fornisca,
puoi semplicemente utilizzare il back-end senza
doverti preoccupare di come è effettivamente implementato.
Il secondo aspetto è che,
se si sceglie di andare con un backend come fornitore di servizi,
c'è il problema del lock-in fornitore.
Quindi, una volta scelto uno dei provider BaaS,
sarai bloccato nel loro ambiente e nel modo in cui archiviano i dati.
Molte volte, una volta adottato uno di questi backend come provider di servizi,
tutti i tuoi dati vengono bloccati al loro servizio e potresti dover passare
attraverso uno sforzo eccessivo per
recuperare i dati che hai già archiviato nel back-end,
se scegli di migrare da un backend come provider di servizi a un altro.
Quindi distribuire il tuo servizio utilizzando un backend è un compito molto semplice,
ma poi se scegli di cambiare il tuo provider BaaS,
questa sarà una battaglia in salita per te.
Quindi questo è qualcosa di cui dovresti essere pienamente consapevole prima di impegnarti
a utilizzare uno dei back-end come provider di servizi.
Questo problema non diventa un problema quando stai
facendo il tuo sviluppo backend completo da solo.
Ancora una volta, il vostro vincere un po 'e si perde un po'
Quindi lo prendiamo sempre con tutto il loro quadro in mente.
Pertanto, la perdita di flessibilità che si
comporta utilizzando uno dei back-end come provider di servizi potrebbe essere qualcosa
con cui si è disposti a convivere a causa del fatto che si è ridotto il
tempo di sviluppo del back-end e si può concentrarsi di
più sulla consegna del prodotto al mercato.
Quindi, se ti fidi del provider BaaS,
allora puoi semplicemente andare con il tuo fornitore BaaS selezionato e quindi
non preoccuparti troppo della perdita di flessibilità che ne consegue a causa di questo.
Ancora una volta, come ho detto, non tutto viene fornito con solo vantaggi,
ci sono sempre vantaggi e svantaggi a qualsiasi approccio che si
sceglie per lo sviluppo e la distribuzione del backend.
BaaS è solo un'alternativa che potrebbe essere l'approccio
che si sceglie per le proprie esigenze specifiche.
E infine, naturalmente,
non tutti i BAA vengono senza la propria serie di requisiti di formazione aggiuntivi.
Se è necessario utilizzare uno dei provider BaaS,
invece della scatola nera, è necessario imparare l'API,
è necessario imparare come configurarlo, è
necessario imparare come personalizzare parti di esso se si sceglie di farlo, e così via.
Quindi lo sforzo di formazione che hai speso imparando
framework specifici o generici come Express e database come MongoDB,
invece trascorrerai tempo ad imparare
le loro specifiche del loro backend come servizio che scegli di utilizzare.
Quindi, è una questione di dove vuoi trascorrere il tuo tempo.
La formazione aggiuntiva sarà sempre coinvolta,
ad eccezione del fatto che con un provider BaaS potresti essere in grado di iniziare più
rapidamente rispetto alla creazione del tuo backend personalizzato.
Il mercato BaaS è pieno di una serie di scelte.
E in effetti, queste scelte continuano ad aumentare di giorno in giorno.
Ora, quando entri nel mercato BaaS,
potresti vedere fornitori commerciali.
Ecco una piccola lista di fornitori commerciali.
Ancora una volta, ci sono sempre di più che vengono aggiunti di giorno in giorno a questa lista,
e ho appena elencato solo un piccolo sottoinsieme di loro.
Naturalmente, se il tuo provider BaaS preferito non è in questa lista, non dare la colpa a me,
forse sono solo ignaro di loro o forse sono semplicemente troppo
nuovo al mercato e quindi non li ho incontrati.
Ma ecco un elenco di alcuni dei fornitori commerciali che forniscono servizi BaaS per noi.
In particolare, mi concentrerò su firebase,
che è fornito da Google.
In questa lezione esploreremo come utilizzare Firebase in un
po 'dettagliato in questa lezione negli esercizi che seguono.
Ora, se vuoi andare con un provider open source,
ci sono molte alternative open source che sono disponibili per noi,
ovviamente lì
acquisirai questo software open source e quindi costruirai il tuo server e distribuirlo.
Ad eccezione del fatto che verrà fornito come
un'entità prepacchettizzata che è possibile configurare e distribuire rapidamente nel back-end.
Considereremo LoopBack come uno degli esempi di un software open source che
può essere implementato molto rapidamente per costruire il tuo backend.
E come ho detto, sempre più scelte stanno entrando nel mercato, giorno dopo giorno.
Quindi, dovresti esplorare il mercato domani per trovare nuovi fornitori BaaS?
Con tutti i mezzi, esamina ciò che viene fornito da loro, che
tipo di servizi che forniscono.
Saranno quei servizi che forniscono soddisfare le vostre esigenze e si può
sfruttare rapidamente il servizio che forniscono per arrivare rapidamente sul mercato.
Quindi questi sono problemi che ti lascerò entro un giorno.
Come ho detto, dovremmo esaminare
tutte le possibili alternative e poi prendere le nostre decisioni in modo indipendente.
Ma a meno che non siamo a conoscenza delle alternative, non saremo in grado di fare scelte informate.
Ecco perché le ultime lezioni di questo corso sto spendendo per
esplorare alcuni esempi di backend come fornitori di servizi.