In questa sessione parleremo di come sviluppare un applicazione di backend a microservizi con nodejs e moleculer.services e come pubblicarla tramite Docker e docker-compose su DigitalOcean. Per parlare di questi argomenti utilizzeremo come esempio l'applicazione che trovate su thebomb.club, sviluppata e pubblicata, come hobby, con le tecnologie menzionate.
Esploriamo docker per scegliere tra un'approccio monolitico tramite le VM o un approccio modulare per una gestione più efficiente e leggera delle applicazioni in ambiente Linux.
Immaginiamo un modo diverso di concepire la struttura di un pacchetto software che ci consenta di spaziare tra affidabilità e scalabilità. Sulla costruzione ci affidiamo alle risorse infinite di un PublicCloud, di cui monitorare i costi infrastrutturali per evitare di scendere sotto il break even point nel rapporto Costi/Ricavi. Pensare il software come una nuvola di processi staccati che colloquiano tra loro, ci da maggiore flessibilità (la singola ape è sacrificabile e sostituibile nel contesto dello sciame), mentre il concetto di Alveare come concentrazione dei dati raccolti/elaborati, ci permette di semplificare e gestire meglio il problema CONSISTENZA. Avremo così agenti semplici e rimpiazzabili in modo automatico che TRASPORTANO dati dall’acquisizione allo storage (Alveare), in cui, altri moduli manipoleranno e gestiranno il Miele. Abbiamo trasformato il problema da: gestiamo pochi oggetti complessi (VM) in gestiamo tantissimi moduli semplici (Container), come li coordiniamo??? Kubernets è una possibile risposta.
Cocos2d è un framework opensource per lo sviluppo di videogiochi 2d, integra al suo interno: - animazioni, transizioni, gestione menù - gestione di sprite, textureAtlas, Tile - due motori fisici (Box2D and Chipmunk) - un sound engine - un sistema particellare Noto principalmente su iPhone (con 2500+ giochi sullo Store) è ormai presente su linguaggi e piattaforme differenti (C++, C#, java e Javascript, HTML5). Il talk presenterà tutte le principali componenti presenti su cocos2d condendo il tutto con qualche esempio pratico su piattaforma iOS.
The fundamental objective is stopping and so identifying, the attacks even before they might bring
about damage to the system; for that reason a good project has to operate at the source of the attack.
Both IDS and IPS act during the attack, so sometimes they are ineffective. The instrument that will be designed must have the purpose of identifying any attack before it comes out. To make this sort of “magic prevention” possible, let’s imagine we have to attack a system by taking on the attacker’s point of view.
Nell'ultimo quinquennio un nuovo attore si è affacciato sulla scena dell'Information Technology, il suo nome è Docker. Con una crescita esponenziale ed una diffusione ancor più rapida, Docker ha trasformato il modo di percepire e utilizzare l'ICT. Una trasformazione così radicale ed estesa da non poter ignorare la domanda: Cos'è Docker?
Lo scopo di questa giornata è di fornire una risposta a questo interrogativo, mostrando ai partecipanti nuovi scenari, per le realtà dell'Università e della Ricerca, grazie alle possibilità che Docker offre.
Latini Giuliano li guiderà lungo un percorso articolato secondo questi temi:
- Infrastruttura, Isolamento, Idempotenza e DevOps ovvero i vantaggi e i vincoli della definizione formale di un'infrastruttura, concetti teorici e glossario;
- Docker, un facilitatore per utilizzare i Container e le tecnologie ad essi collegate;
- Container vs Hypervisor, le due facce della stessa medaglia: pro, contro ed esempi d'uso;
- Dalla Vm alla Infrastruttura di Servizi, un modo per rimescolare le carte a nostro vantaggio;
- Sviluppo software: esempio d'uso di Docker nello sviluppo di una procedura PHP;
- Gestione di Sistemi: esempio di un'infrastruttura Wordpress organizzata a servizi, definizione formale implementata con Docker;
- Docker Swarm la clusterizzazione ed alta affidabilità, come il sistema risponde e si adatta alle sollecitazioni esterne in un sistema di calcolo;
L'obiettivo finale è fornire ai partecipanti un gruppo di concetti ed esempi grazie ai quali poter approfondire autonomamente Docker, personalizzandone l'uso per le proprie necessità; in alternativa ad una trattazione dettagliata ed esaustiva di tutti i temi illustrati, impossibile nel tempo a disposizione.
A conclusione del corso verrano messi a disposizione, come materiale didattico da approfondire: slide, esempi e bibliografia di riferimento.
Esploriamo docker per scegliere tra un'approccio monolitico tramite le VM o un approccio modulare per una gestione più efficiente e leggera delle applicazioni in ambiente Linux.
Immaginiamo un modo diverso di concepire la struttura di un pacchetto software che ci consenta di spaziare tra affidabilità e scalabilità. Sulla costruzione ci affidiamo alle risorse infinite di un PublicCloud, di cui monitorare i costi infrastrutturali per evitare di scendere sotto il break even point nel rapporto Costi/Ricavi. Pensare il software come una nuvola di processi staccati che colloquiano tra loro, ci da maggiore flessibilità (la singola ape è sacrificabile e sostituibile nel contesto dello sciame), mentre il concetto di Alveare come concentrazione dei dati raccolti/elaborati, ci permette di semplificare e gestire meglio il problema CONSISTENZA. Avremo così agenti semplici e rimpiazzabili in modo automatico che TRASPORTANO dati dall’acquisizione allo storage (Alveare), in cui, altri moduli manipoleranno e gestiranno il Miele. Abbiamo trasformato il problema da: gestiamo pochi oggetti complessi (VM) in gestiamo tantissimi moduli semplici (Container), come li coordiniamo??? Kubernets è una possibile risposta.
Cocos2d è un framework opensource per lo sviluppo di videogiochi 2d, integra al suo interno: - animazioni, transizioni, gestione menù - gestione di sprite, textureAtlas, Tile - due motori fisici (Box2D and Chipmunk) - un sound engine - un sistema particellare Noto principalmente su iPhone (con 2500+ giochi sullo Store) è ormai presente su linguaggi e piattaforme differenti (C++, C#, java e Javascript, HTML5). Il talk presenterà tutte le principali componenti presenti su cocos2d condendo il tutto con qualche esempio pratico su piattaforma iOS.
The fundamental objective is stopping and so identifying, the attacks even before they might bring
about damage to the system; for that reason a good project has to operate at the source of the attack.
Both IDS and IPS act during the attack, so sometimes they are ineffective. The instrument that will be designed must have the purpose of identifying any attack before it comes out. To make this sort of “magic prevention” possible, let’s imagine we have to attack a system by taking on the attacker’s point of view.
Nell'ultimo quinquennio un nuovo attore si è affacciato sulla scena dell'Information Technology, il suo nome è Docker. Con una crescita esponenziale ed una diffusione ancor più rapida, Docker ha trasformato il modo di percepire e utilizzare l'ICT. Una trasformazione così radicale ed estesa da non poter ignorare la domanda: Cos'è Docker?
Lo scopo di questa giornata è di fornire una risposta a questo interrogativo, mostrando ai partecipanti nuovi scenari, per le realtà dell'Università e della Ricerca, grazie alle possibilità che Docker offre.
Latini Giuliano li guiderà lungo un percorso articolato secondo questi temi:
- Infrastruttura, Isolamento, Idempotenza e DevOps ovvero i vantaggi e i vincoli della definizione formale di un'infrastruttura, concetti teorici e glossario;
- Docker, un facilitatore per utilizzare i Container e le tecnologie ad essi collegate;
- Container vs Hypervisor, le due facce della stessa medaglia: pro, contro ed esempi d'uso;
- Dalla Vm alla Infrastruttura di Servizi, un modo per rimescolare le carte a nostro vantaggio;
- Sviluppo software: esempio d'uso di Docker nello sviluppo di una procedura PHP;
- Gestione di Sistemi: esempio di un'infrastruttura Wordpress organizzata a servizi, definizione formale implementata con Docker;
- Docker Swarm la clusterizzazione ed alta affidabilità, come il sistema risponde e si adatta alle sollecitazioni esterne in un sistema di calcolo;
L'obiettivo finale è fornire ai partecipanti un gruppo di concetti ed esempi grazie ai quali poter approfondire autonomamente Docker, personalizzandone l'uso per le proprie necessità; in alternativa ad una trattazione dettagliata ed esaustiva di tutti i temi illustrati, impossibile nel tempo a disposizione.
A conclusione del corso verrano messi a disposizione, come materiale didattico da approfondire: slide, esempi e bibliografia di riferimento.
Il container è una VM? Qual'è l'anatomia di un container. Come realizzare il build d'immagine singola e in multi-stage. Cos'è un docker stack e la descrizione d'infrastruttura. In che modo kubernetes realizza un'infrastruttura a microservizi. E chiuderà con lo schema funzionale di un deploy su Docker Desktop con Kubernetes attivo. I temi trattati sono presentati con la citazione di una madrina scelta tra le figure femminili più rappresentative della storia dell'informatica.
Slide pycon X: https://www.pycon.it/conference/talks/basta-problemi-con-tensorflow-usando-docker-nvidia-docker
Parla di un trucco su come creatre docker container multipli senza avere problemi di duplicazione.
Con il corso del tempo inevitabilmente il software tende a diventare una "palla di fango gigante": documentazione scarsa, moltissime feature ed una complessità del codice che spaventa anche i programmatori più esperti.
La filosofia Unix ci offre una guida che può aiutarci a evitare di condannare il nostro progetto all'oblio.
In questa presentazione parlo di come la filosofia unix mi ha aiutato a ritrovare la gioia di programmare e dei benefici che ho ottenuto applicandola nei progetti open source scritti in python che porto avanti per ninux.org ed openwisp.org.
"Alice in WordPressLand" è un talk esperienziale nato dalle riflessioni post-WordCamp dal punto di vista di uno sviluppatore giornalmente alle prese con Web Framework, tecnologie e "linguaggi serissimi". La presentazione include una serie di analisi e valutazioni soggettive sui veri punti di forza di WordPress ed alcuni suoi aspetti (spesso poco tecnici) talvolta trascurati, ma determinanti per la sua adozione. Si passa, infine, per una serie di best practices - scoperte, autoimposte e affermatesi nel corso degli anni - che portano anche a ricongiugersi ai valori dell'Agile ed riscoprirne i principi per una concezione più profonda ed innovativa del ruolo di sviluppatore.
A team presentation for the Business Economics and Management course. It explains the concept of the modularity into the design and the manufacture of new technological products, through the example of Phonebloks.
Sviluppo di soluzioni embedded moderne con .NET Micro Framework by Lorenzo Ma...Codemotion
In questo Talk verrà presentata una tra le più moderne e produttive piattaforme di sviluppo embedded attualmente esistenti: il .NET Micro Framework di Microsoft (.NETMF).
Il 19 febbraio 2015, in occasione dell’evento “Editoria in the Cloud” che si è tenuto al Coworking Login di Milano, abbiamo analizzato insieme a molti ospiti le tendenze e i casi d’uso di un settore in evoluzione.
Ci siamo chiariti le idee sui seguenti aspetti: a che punto è la transizione tra editoria on line e off line? Le piattaforme di publishing possono sostenere l’efficienza degli editori e il rinnovo dei prodotti editoriali? Il cloud può liberare risorse e aprire la strada a progetti innovativi? Più in generale, la tecnologia può essere un volano per l’innovazione dell’editoria?
More Related Content
Similar to Sviluppo di un videogioco multuplayer a microservizi
Il container è una VM? Qual'è l'anatomia di un container. Come realizzare il build d'immagine singola e in multi-stage. Cos'è un docker stack e la descrizione d'infrastruttura. In che modo kubernetes realizza un'infrastruttura a microservizi. E chiuderà con lo schema funzionale di un deploy su Docker Desktop con Kubernetes attivo. I temi trattati sono presentati con la citazione di una madrina scelta tra le figure femminili più rappresentative della storia dell'informatica.
Slide pycon X: https://www.pycon.it/conference/talks/basta-problemi-con-tensorflow-usando-docker-nvidia-docker
Parla di un trucco su come creatre docker container multipli senza avere problemi di duplicazione.
Con il corso del tempo inevitabilmente il software tende a diventare una "palla di fango gigante": documentazione scarsa, moltissime feature ed una complessità del codice che spaventa anche i programmatori più esperti.
La filosofia Unix ci offre una guida che può aiutarci a evitare di condannare il nostro progetto all'oblio.
In questa presentazione parlo di come la filosofia unix mi ha aiutato a ritrovare la gioia di programmare e dei benefici che ho ottenuto applicandola nei progetti open source scritti in python che porto avanti per ninux.org ed openwisp.org.
"Alice in WordPressLand" è un talk esperienziale nato dalle riflessioni post-WordCamp dal punto di vista di uno sviluppatore giornalmente alle prese con Web Framework, tecnologie e "linguaggi serissimi". La presentazione include una serie di analisi e valutazioni soggettive sui veri punti di forza di WordPress ed alcuni suoi aspetti (spesso poco tecnici) talvolta trascurati, ma determinanti per la sua adozione. Si passa, infine, per una serie di best practices - scoperte, autoimposte e affermatesi nel corso degli anni - che portano anche a ricongiugersi ai valori dell'Agile ed riscoprirne i principi per una concezione più profonda ed innovativa del ruolo di sviluppatore.
A team presentation for the Business Economics and Management course. It explains the concept of the modularity into the design and the manufacture of new technological products, through the example of Phonebloks.
Sviluppo di soluzioni embedded moderne con .NET Micro Framework by Lorenzo Ma...Codemotion
In questo Talk verrà presentata una tra le più moderne e produttive piattaforme di sviluppo embedded attualmente esistenti: il .NET Micro Framework di Microsoft (.NETMF).
Il 19 febbraio 2015, in occasione dell’evento “Editoria in the Cloud” che si è tenuto al Coworking Login di Milano, abbiamo analizzato insieme a molti ospiti le tendenze e i casi d’uso di un settore in evoluzione.
Ci siamo chiariti le idee sui seguenti aspetti: a che punto è la transizione tra editoria on line e off line? Le piattaforme di publishing possono sostenere l’efficienza degli editori e il rinnovo dei prodotti editoriali? Il cloud può liberare risorse e aprire la strada a progetti innovativi? Più in generale, la tecnologia può essere un volano per l’innovazione dell’editoria?
Similar to Sviluppo di un videogioco multuplayer a microservizi (13)
5. 5
The bomb
Progetto nato comehobby durante il primo lockdown
Ispirato al gioco in scatola «la bomba»
Gioco di parolemultiplayer: aturnosipassaunabombavirtuale
cheesploderàinuntemporandomeognigiocatoreperpassarela
bombaalprossimodevecomporreunaparolaapartiredauna
sillaba estratta.
thebomb.club
7. 7
Architetturaa microservizi
Opposto del modello monolitico: piccole unità logiche più ridotte possibile. Una
funzione base per ogni servizio.
I servizi comunicano tra loro tramite protocolli standard.
Diversi gradi di isolamento (database/tabella, macchina/container)
Vantaggi: deploy, scalabilità, resilienza, ottimizzazione
Svantaggi: integration test, debugging, deploy manuale.
theoretics()
8. 8
Moleculer.services
Framework NodejS: backenda microservizi ad alte prestazioni e di facile
manutenzione
Offre, di default, i seguenti strumenti: Transporter con auto discovery eload
balancing, caching, sistema di validazione della comunicazione, Fault
Tolerancecon Circuit Breaker, moduli perl’HTTP e Adapter ORM
theoretics()
moleculerjs/moleculer
12. 12
Docker
Sistema di virtualizzazione software in containers: standardunitofsoftware.
Tecnologia preferita peril deploy di applicazioni: indipendente dal sistema
operativo ospite, isola le applicazioni in container assegnando a ciascuno
determinate risorse.
Permettedi controllare perogni containerl’esposizione di eventuali porte,
l’accesso al fs,…
theoretics()
13. 13
Documento chedefinisce la struttura di una immagine Docker.
La struttura viene costruita «astrati»: ogni strato viene eseguito come container separato marisultato degli strati
precedenti.
Ogni immagine può essere caricata su un containerregistry.
Dockerfile theoretics()
17. 17
Dockercompose
Tool (conCLI) di Dockerche permette di definire un’ambiente applicativo
completo formato da più immagini Dockerche interagiscono tra di lorosotto
forma di «servizi»isolati.
All’interno di un file docker-compose.ymlposso definire: quali immagini
devono essereinstanzate, quali volumi e quali porte ogni container avrà, con
quali variabili d’ambiente verrà eseguito, …
theoretics()
Diverso da un modello SOA (service-oriented architecture): il protocollo di comunicazione è standard, solitamente tramite API o protocollo indipendente dai servizi
Vantaggi: semplicità di deploy e time to market più rapido, maggiore scalabilità, resilienza: un guasto non si propaga sull’intero sistema ma si ferma al servizio, libertà di scelta nelle tecnologie da utilizzare per l’implementazione, migliore distribuzione del carico di lavoro
Preparare un progetto con npm i
Preparare redis e postgres già istanziati
Verificare npm run dev
Eseguire docker!!
Container: Standard Unit of software: incapsula una applicazione e tutte le sue dipendenze. Un’immagine container è un pacchetto software leggero, isolato ed eseguibile che contiene tutto quello che serve per eseguire un’applicazione: codice, runtime, librerie di sistema, impostazioni,…
Un’immagine diventa container quando viene eseguita nel Docker Engine, che si assicura che il pacchetto software non cambi nel tempo e sia sempre uguale a se stesso e stateless
Containers: standard. È un’architettura standard per diverse piattaforme
Containers: leggeri. Docker Engine si assicura di condividere correttamente il kernel dell’OS ospite e quindi le immagini contengono solamente il SW necessario
Containers: sicuri: ogni container è isolato nel miglior modo possibile tecnologicamente
Esempio di docker registry: DockerHub
Docker build
Docker images
Docker run
Docker run –d
Docker ps
Docker-compose up
Fai riepilogo
Sviluppo
Definizione containers e dockerfile
Definizione dockercompose