2. Go+AngularJS on GCP
GoLang
GoLang è stato rilasciato al pubblico da Google del 2009
"Go is an open source programming language that
makes it easy
to build simple, reliable, and efficient software."
(cit. golang.org)
Go è stato sviluppato per risolvere i problemi di scalabilità di Google
• scalare su un enorme numero di server
• i job giornalieri devono girare su migliaia di
macchine
• i job devono coordinarsi tra loro
• un sacco di cose da fare tutte insieme
3. Go+AngularJS on GCP
AppEngine
AppEngine è una PaaS fornita da Google che permette alle nostre app di struttare le potenzialità
dell’infrastruttura Google, fa parte dei servizi della Google Cloud Platform
"Google App Engine lets you build and run applications
on Google’s infrastructure."
(cit. google.com)
Linguaggi supportati:
• Java
• PHP
• Python
• Go
4. Go+AngularJS on GCP
Cloud Datastore
Cloud Datastore è un servizio di storage NoSQL fornito da Google per tutte le applicazioni che girano
su Google Cloud Platform.
"Cloud Datastore is a highly-scalable NoSQL database for
your applications."
(cit. google.com)
Caratteristiche:
• Gestione automatica delle repliche
• Autoscaling
• Transizioni ACID
• Query in SQL-Style
• Fully managed
5. Go+AngularJS on GCP
AnguarJS
AngularJS è un framework JavaScript sviluppato da Google per poter sviluppare più velocemente
single-page applications.
"AngularJS is a toolset for building the framework most
suited to your application development. It is fully
extensible and works well with other libraries. Every
feature can be modified or replaced to suit your unique
development workflow and feature needs. Read on to
find out how."
(cit. angularjs.org)
6. Go+AngularJS on GCP
Android
Android è il sistema operativo per dispositivi mobili, sviluppato da Google e giunto recentemente alla sua
sesta reincarnazione con Android 6.0 Marshmallow.
"Android is a mobile operating system (OS) currently
developed by Google, based on the Linux kernel and
designed primarily for touchscreen mobile devices such
as smartphones and tablets."
(cit. wikipedia.org)
7. Go+AngularJS on GCP
Demo
• Raccolta di post (tipo blog)
• Front-end in AnguarJS
• Backend in Golang
• Dati su Datastore
• Utilizzo di AppEngine
• Autenticazione tramite User API
• Template HTML+AngularJS
+
Applicazione Android che mostra i
Post sul nostro dispositivo mobile
9. Go+AngularJS on GCP
Grazie per l’attenzione
Email: gabriele.baldoni@gmail.com
Sitoweb: gabrielebaldoni.altervista.org
Tw: @gabry
Gabriele Baldoni
Contatti:
Email: battaglia.andry@gmail.com
Sitoweb: andreabattaglia.altervista.org
Luca Bonaccorsi
Email: l.bonaccorsi@morpheos.eu
Sitoweb: www.morpheos.eu
Andrea Battalia
Notas del editor
atomicità: la transazione è indivisibile nella sua esecuzione e la sua esecuzione deve essere o totale o nulla, non sono ammesse esecuzioni parziali;
coerenza: quando inizia una transazione il database si trova in uno stato coerente e quando la transazione termina il database deve essere in un altro stato coerente, ovvero non deve violare eventuali vincoli di integrità, quindi non devono verificarsi contraddizioni (inconsistenza) tra i dati archiviati nel DB;
isolamento: ogni transazione deve essere eseguita in modo isolato e indipendente dalle altre transazioni, l'eventuale fallimento di una transazione non deve interferire con le altre transazioni in esecuzione;
durabilità: detta anche persistenza, si riferisce al fatto che una volta che una transazione abbia richiesto un commit work, i cambiamenti apportati non dovranno essere più persi. Per evitare che nel lasso di tempo fra il momento in cui la base di dati si impegna a scrivere le modifiche e quello in cui li scrive effettivamente si verifichino perdite di dati dovuti a malfunzionamenti, vengono tenuti dei registri di log dove sono annotate tutte le operazioni sul DB.
atomicità: la transazione è indivisibile nella sua esecuzione e la sua esecuzione deve essere o totale o nulla, non sono ammesse esecuzioni parziali;
coerenza: quando inizia una transazione il database si trova in uno stato coerente e quando la transazione termina il database deve essere in un altro stato coerente, ovvero non deve violare eventuali vincoli di integrità, quindi non devono verificarsi contraddizioni (inconsistenza) tra i dati archiviati nel DB;
isolamento: ogni transazione deve essere eseguita in modo isolato e indipendente dalle altre transazioni, l'eventuale fallimento di una transazione non deve interferire con le altre transazioni in esecuzione;
durabilità: detta anche persistenza, si riferisce al fatto che una volta che una transazione abbia richiesto un commit work, i cambiamenti apportati non dovranno essere più persi. Per evitare che nel lasso di tempo fra il momento in cui la base di dati si impegna a scrivere le modifiche e quello in cui li scrive effettivamente si verifichino perdite di dati dovuti a malfunzionamenti, vengono tenuti dei registri di log dove sono annotate tutte le operazioni sul DB.
atomicità: la transazione è indivisibile nella sua esecuzione e la sua esecuzione deve essere o totale o nulla, non sono ammesse esecuzioni parziali;
coerenza: quando inizia una transazione il database si trova in uno stato coerente e quando la transazione termina il database deve essere in un altro stato coerente, ovvero non deve violare eventuali vincoli di integrità, quindi non devono verificarsi contraddizioni (inconsistenza) tra i dati archiviati nel DB;
isolamento: ogni transazione deve essere eseguita in modo isolato e indipendente dalle altre transazioni, l'eventuale fallimento di una transazione non deve interferire con le altre transazioni in esecuzione;
durabilità: detta anche persistenza, si riferisce al fatto che una volta che una transazione abbia richiesto un commit work, i cambiamenti apportati non dovranno essere più persi. Per evitare che nel lasso di tempo fra il momento in cui la base di dati si impegna a scrivere le modifiche e quello in cui li scrive effettivamente si verifichino perdite di dati dovuti a malfunzionamenti, vengono tenuti dei registri di log dove sono annotate tutte le operazioni sul DB.