34
Siti Web ed Applicazioni nel Cloud: piccoli team e sviluppatori individuali, approcci e casi d’uso Paolo Dadda

SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Embed Size (px)

DESCRIPTION

Spesso si tende a considerare il lavoro di piccoli team e sviluppatori individuali di minor qualità per questioni di competenze. Un cloud, infatti, necessita spesso di VPS da configurare, far funzionare e mantenere, che seppur virtuali e dedicate, richiedono un minimo di competenza. Come mantenere alta la qualità per piccoli team e singoli developer? Come ridurre l’esigenza di “dover” saper far tutto? Utilizzare servizi che eliminano, lato sviluppatore, gestione e sicurezza del server, può essere determinante, permettendo di specializzarsi di più sui propri “skill” senza trovarsi obbligati a coinvolgere terze figure o diventare factotum del web. Target: WSP-G3-002 - Web Project Manager, WSP-G3-005 - Business Analyst, WSP-G3-009 - Frontend Web developer, WSP-G3-010 - Server Side Web Developer, WSP-G3-014 - Digital Strategic Planner.

Citation preview

Page 1: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Siti Web ed Applicazioni nel Cloud:

piccoli team e sviluppatori individuali, approcci e casi d’uso

Paolo Dadda

Page 2: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Chi Sono

2

Paolo Dadda

Membro IWA ITALY nr. 0307429 Professionista Web ai sensi della Legge 4/2013

Contatti:Tel.: 393.4298004

Ufficio: Via 4 Novembre, 94

Cislago (VA)

WebSite: www.2dweb.it

Mail: [email protected]

Page 3: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

● Prima associazione al mondo che raggruppa chi lavora nel Web

● Obiettivo di IWA: creare rete tra soci, partecipare all'evoluzione del Web, divulgare conoscenza tramite soci con eventi ed iniziative

● A s s o c i a z i o n e p r o f e s s i o n a l e rappresentanza delle professionalità Web

● unica Associazione del settore ICT attualmente censita dal Ministero dello Sviluppo Economico

Cos’è IWA/HWG

3

Page 4: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Cos’è IWA/HWG

4

● Associazione Professionale che raggruppa i soggetti che - ai sensi della legge 4/2013, sono definibili come "professionisti Web"

● Ha rilasciato i primi profili professionali (G3 Web Skill Profiles) in linea con i dettami dell'agenda digitale europea e italiana ed ha avviato accordi di collaborazione con realtà di tutela del lavoro (sindacati) e di domanda/offerta di lavoro: ancora una volta il ruolo di IWA è quello di unire, far collaborare e tutelare chi opera nel Web

Page 5: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Iscrizione IWA - Speciale SMAU Milano 2014

5

● Potrai ottenere uno sconto sulla quota associativa* che pagherai euro 50,00 anziché euro 65,00. Lo sconto vale sia per i nuovi soci che per i rinnovi. http://www.iwa.it/join/

● Per usufruire dello sconto usa in fase di registrazione o rinnovo il seguente codice promozionale:

SMAUMILANO2014

* valido sono nel periodo fieristico

Page 6: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

IWA e gli Skill Profiles

6

2006 • Il CEN riconosce IWA/HWG come realtà di standardizzazione in grado di fornire certificazioni sui percorsi formativi relativi al settore del Web 2007 • Iniziano i lavori del Gruppo IWA Italy Web Skills Profiles, coordinati da Pasquale Popolizio • I partecipanti sono oltre 200 ed hanno cultura e competenze trasversali professionisti, aziende, PA, università 2013 • Pubblicazione del documento G3 Web Skills Profiles 1.0 2014 • Pubblicazione del documento G3 Web Skills Profiles 2.0

Page 7: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Il webmaster? Un supereroe!

7

•  Chi  dice  di  saper  fare  tutto…    •  Forse  non  sa  fare  niente  bene!

©  Roberto  Scano  :-­‐)

Page 8: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Skill Profiles

8

PROFILO WSP-G3-001. WEB COMMUNITY MANAGER PROFILO WSP-G3-002. WEB PROJECT MANAGER PROFILO WSP-G3-003. WEB ACCOUNT MANAGER PROFILO WSP-G3-004. USER EXPERIENCE DESIGNERPROFILO WSP-G3-005. WEB BUSINESS ANALYST PROFILO WSP-G3-006. WEB DB ADMINISTRATORPROFILO WSP-G3-007. SEARCH ENGINE EXPERT PROFILO WSP-G3-008. WEB ADVERTISING MANAGER PROFILO WSP-G3-009. FRONTEND WEB DEVELOPER PROFILO WSP-G3-010. SERVER SIDE WEB DEVELOPER PROFILO WSP-G3-011. WEB CONTENT SPECIALIST PROFILO WSP-G3-012. WEB SERVER ADMINISTRATORPROFILO WSP-G3-013. INFORMATION ARCHITECT PROFILO WSP-G3-014. DIGITAL STRATEGIC PLANNERPROFILO WSP-G3-015. WEB ACCESSIBILITY EXPERT PROFILO WSP-G3-016. WEB SECURITY EXPERTPROFILO WSP-G3-017. MOBILE APPLICATION DEVELOPERPROFILO WSP-G3-018. E-COMMERCE SPECIALISTPROFILO WSP-G3-019. ONLINE STORE MANAGERPROFILO WSP-G3-020. REPUTATION MANAGERPROFILO WSP-G3-021. KNOWLEDGE MANAGER PROFILO WSP-G3-022. AUGMENTED REALITY EXPERT PROFILO WSP-G3-023. E-LEARNING SPECIALIST PROFILO WSP-G3-024. DATA SCIENTIST

Page 9: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Skill Profiles

9

PROFILO WSP-G3-001. WEB COMMUNITY MANAGER PROFILO WSP-G3-002. WEB PROJECT MANAGER PROFILO WSP-G3-003. WEB ACCOUNT MANAGER PROFILO WSP-G3-004. USER EXPERIENCE DESIGNERPROFILO WSP-G3-005. WEB BUSINESS ANALYST PROFILO WSP-G3-006. WEB DB ADMINISTRATORPROFILO WSP-G3-007. SEARCH ENGINE EXPERT PROFILO WSP-G3-008. WEB ADVERTISING MANAGER PROFILO WSP-G3-009. FRONTEND WEB DEVELOPER PROFILO WSP-G3-010. SERVER SIDE WEB DEVELOPER PROFILO WSP-G3-011. WEB CONTENT SPECIALIST PROFILO WSP-G3-012. WEB SERVER ADMINISTRATORPROFILO WSP-G3-013. INFORMATION ARCHITECT PROFILO WSP-G3-014. DIGITAL STRATEGIC PLANNER PROFILO WSP-G3-015. WEB ACCESSIBILITY EXPERT PROFILO WSP-G3-016. WEB SECURITY EXPERTPROFILO WSP-G3-017. MOBILE APPLICATION DEVELOPERPROFILO WSP-G3-018. E-COMMERCE SPECIALISTPROFILO WSP-G3-019. ONLINE STORE MANAGERPROFILO WSP-G3-020. REPUTATION MANAGERPROFILO WSP-G3-021. KNOWLEDGE MANAGER PROFILO WSP-G3-022. AUGMENTED REALITY EXPERT PROFILO WSP-G3-023. E-LEARNING SPECIALIST PROFILO WSP-G3-024. DATA SCIENTIST

Page 10: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Lavorare nel cloud…

10

Un cloud è una struttura hardware formata da più nodi di calcolo e di storage che lavorano in maniera sincronizzata per offrire dei servizi.

I servizi che possono essere offerti attraverso il cloud sono di 3 tipi: IaaS, PaaS e SaaS.

Ma di cosa si tratta in realtà?

Photo: Google/Connie Zhou

Page 11: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

11

Ma come applicare tutto questo anche a piccole e micro realtà ?

Google App Engine potrebbe essere

un’alternativa

Bello! Fantastico!

Page 12: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Che cos’è GAE? Google App Engine

12

Photo: Google/Connie Zhou

Page 13: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

13

Google  Cloud  Platform

Page 14: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Google App Engine

14

• Permette di creare siti ed applicazioni senza preoccuparci della loro architettura hardware e sobbarcarsi l’onere di gestire scalabilità e picchi di traffico.

• Bassi costi di ingresso e fatturazione in base al consumo reale.

• Supporta diversi linguaggi di programmazione: Java, Python, GO e PHP.

• Fornisce un’ottima SDK per lo sviluppo e test in locale.

• E’ corredata da un discreto numero di API già operative e documentate.

• Eseguita in Sandbox.

Page 15: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Perché conviene?

15

Page 16: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Perché conviene?

16

Page 17: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Perché conviene?

17

Page 18: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Come funziona?

18

• app.yamlSpecifica le corrispondenze tra URL ed Handler oltre che per l’esposizione di cartelle o file statici.Contiene inoltre informazioni sull’applicazione, come l’id dell’applicazione, la versione…

• cron.yamlConsente di configurare attività regolari che operano in orari definiti o intervalli regolari comunemente noti come cron jobs.

• index.yamlIl datastore App Engine utilizza indici per ogni query che fa l’applicazione, necessari perrestituire rapidamente i dati quando unaquery viene effettuata.

YAML: i file di configurazione

Page 19: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Come funziona?

19

Page 20: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Esempio Route

20

Page 21: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Esempio Handler

21

Page 22: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Esempio Model

22

Page 23: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Database e dati

23

Google App Engine permette diutilizzare differenti basi di dati:

• Google Cloud Datastore:database noSQL, supporta transactions, forte consistenza con ancestor queries, consistenza eventuale con altre queries.

• Google Cloud SQL:database SQL, relazionale forte consistenza

• Google Cloud Storage:permette di salvare oggetti e file anche di grandi dimensioni a costi ridotti nel cloud.

Photo: Google/Connie Zhou

Page 24: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Qualcosa da considerare sul DataStore

24

Photo: Google/Connie Zhou

Page 25: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Considerazioni sul DataStore

25

Il datastore di App Engine non è un database relazionale tradizionale. Gli oggetti si chiamano “entità” e sono caratterizzati da un tipo e da un insieme di proprietà.

Le entità del datastore sono di tipo "non relazionale". Le entità vengono scritte nel codice dell’applicazione, che accede al datastore direttamente.

Google Cloud Datastore è completamente gestito da Google, è un database schemaless per l'archiviazione di dati non relazionali. Il Datastore scala automaticamente e supporta le transazioni.

Page 26: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Considerazioni sul DataStore

26

Il Datastore è un database che offre:

• Transazioni ACID.

• Elevata disponibilità di letture e scritture.

• Forte coerenza con le ancestor query.

• Coerenza Eventuale per tutte le altre query.

Ogni istanza del Datastore è completamente gestita da Google:

• Nessun downtime pianificato.

• Replicato su più datacenter.

• Scala automaticamente all’aumentare del traffico.

• Monitorato costantemente dagli Ingegneri di Google.

Page 27: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

27

APPROCCIO PRATICO

Iniziamo!

Page 28: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

28

DOPO L’UPLOAD…

… FUNZIONA GIA’ !

Page 29: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Google App Engine: Riassumiamo

29

• App Engine fornisce una piattaforma di sviluppo che consente di creare applicazioni e di usare l’infrastruttura come piattaforma hosting

• App Engine velocizza il ciclo produttivo dallo sviluppo al rilascio • Il rilascio in produzione (deployment) è gestito da Google • App Engine esegue la gestione del traffico con auto-scaling,

pertanto istanzia più risorse hardware quando è necessario, e le rilascia se non servono più

• Supporta i linguaggi Python, Java, PHP e Go

Page 30: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Google App Engine: Riassumiamo

30

Lock-IN Si tratta della situazione in cui sia difficile o impossibile per l’azienda spostare le proprie applicazioni e dati su altre piattaforme • Esistono misure per evitare esplicitamente il lock-in sono varie

• Si può migrare mantenendo la propria applicazione: c’è AppScale

• Modi alternativi di accesso ai propri dati

• SDK open source, ed ambiente “più comodo” nel tempo

• Open standards esistenti, usati e mantenuti

Page 31: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Google App Engine: Riassumiamo

31

SicurezzaGoogle App Engine è compatibile con i più importanti standard mondiali di sicurezza:

• SAS70: uno standard di auditing dell’AICPA (American Institute of Certified Public Accountants).

• SSAE 16, ISAE 3402 che consentono a Google di rispondere alle normative di protezione dei dati dell’Unione Europea

Page 32: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Google App Engine: Considerazioni Finali

32

Pro Contro

• Scala automaticamente • Nessuna manutenzione server • Sviluppo semplice e veloce • Si paga il consumo effettivo • E’ gratis entro certi limiti • SDK e diversi linguaggi per

sviluppare le applicazioni • Ottimo per start-up e

sviluppatori individuali

• Nessun multithread • Nessun accesso al file system • Possibile Lock-in (relativo) • Alcune funzioni non permesse • Costoso per carichi costanti • Necessario ottimizzare per

contenere costi (anche un pro) • Limite Esecuzione 60 secondi

per richiesta (10 min se task)

La rapidità e la semplicità nello sviluppo lo rendono particolarmente adatto a piccole realtà, come Start-up, Piccoli Team e Sviluppatori Individuali, i costi al consumo e la base gratuita, permettono al contempo di ottenere facilmente un prodotto di qualità, con risultati difficilmente raggiungibili negli stessi tempi ed agli stessi costi

Page 33: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

Domande?

33

Page 34: SMAU Milano 2014 GAE 24/10/2014 - IWA Italy

34

GRAZIE A TUTTI!Info  e  slide  verranno  pubblicate  su  Google+  e  SlideShare.  

Potete  scaricare  una  versione  open  da  me  creata  per  partire  subito  con  una  base:  https://bitbucket.org/duedweb/base-­‐gae-­‐python    

LE  SLIDE  !!!      -­‐      Eccole:  disponibili  fin  da  subito!  http://www.slideshare.net/ilpaolino  

Google  Plus  Profile:  plus.google.com/+2dwebIt  

Oppure  segui  il  mio  Blog:  http://2dwebit.blogspot.com    

Twitter:  @duedweb