SlideShare a Scribd company logo
1 of 21
1
TOPIC
Sviluppo di un gioco
multiplayera microservizi
DALL’IDEAAL DEPLOY
MOLECULER.SERVICES
MICROSERVICES
DOCKER
DIGITAL.OCEAN
TOPIC
2
What arewe talking about?
TECNOLOGIE DI SVILUPPO
Moleculer.services
TECNOLOGIE DI DEPLOY
Docker
DockerCompose
Digital Ocean
About me
GIOVANNI BERTONCELLI
highsoftware96
Demo: highsoftware96/thebomb
Giovanni Bertoncelli
#web
#nodejs
#angular2+
#javascript
#reactnative
4
TOPIC
The bomb
About the project
TOPIC
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
6
TOPIC
Moleculer.services
Un backenda microservizi
TECNOLOGIEDI SVILUPPO
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
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
9
The bomb use.case()
> Coding…
Moleculer:
Scaffolding progetti
Configurazione
Struttura servizio
Broker
11
TOPIC
Docker
Containerizzazione di un applicazione
TECNOLOGIEDI DEPLOY
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
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()
14
The bomb use.case()
> Coding…
DockerCLI
Dockerfile
16
TOPIC
Deploy
Esempio di deploy con
DigitalOcean
TECNOLOGIEDI DEPLOY
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()
18
Deploy use.case()
dockerbuild . dockerpull docker-composeup
> Coding…
Docker-compose
Dockerhub
Digital Ocean
@cloudgen_verona
#CodeGen2021
@cloudgen_verona
Thank you
Any questions?
highsoftware96 Giovanni Bertoncelli
Thank you!
Any questions?
#CodeGen2021
@cloudgen_verona

More Related Content

Similar to Sviluppo di un videogioco multuplayer a microservizi

la-progettazione-elettronica-al-tempo-della-globalizzazione
la-progettazione-elettronica-al-tempo-della-globalizzazionela-progettazione-elettronica-al-tempo-della-globalizzazione
la-progettazione-elettronica-al-tempo-della-globalizzazione
Emanuele Bonanni
 
Brand Community e Open Innovation - Il caso Lego
Brand Community e Open Innovation - Il caso LegoBrand Community e Open Innovation - Il caso Lego
Brand Community e Open Innovation - Il caso Lego
UniqueSellingTalent
 
Gam03 facciamo volare il nosro drone
Gam03   facciamo volare il nosro droneGam03   facciamo volare il nosro drone
Gam03 facciamo volare il nosro drone
DotNetCampus
 

Similar to Sviluppo di un videogioco multuplayer a microservizi (13)

Crossdev sdk/tools: devil's deception
Crossdev sdk/tools: devil's deceptionCrossdev sdk/tools: devil's deception
Crossdev sdk/tools: devil's deception
 
DOCKER FROM ZERO TO HERO
DOCKER FROM ZERO TO HERODOCKER FROM ZERO TO HERO
DOCKER FROM ZERO TO HERO
 
Basta problemi-con-tensorflow-usando-docker-nvidia-docker
Basta problemi-con-tensorflow-usando-docker-nvidia-dockerBasta problemi-con-tensorflow-usando-docker-nvidia-docker
Basta problemi-con-tensorflow-usando-docker-nvidia-docker
 
La progettazione elettronica in tempo di crisi
La progettazione elettronica in tempo di crisiLa progettazione elettronica in tempo di crisi
La progettazione elettronica in tempo di crisi
 
la-progettazione-elettronica-al-tempo-della-globalizzazione
la-progettazione-elettronica-al-tempo-della-globalizzazionela-progettazione-elettronica-al-tempo-della-globalizzazione
la-progettazione-elettronica-al-tempo-della-globalizzazione
 
La Filosofia Unix
La Filosofia UnixLa Filosofia Unix
La Filosofia Unix
 
Brand Community e Open Innovation - Il caso Lego
Brand Community e Open Innovation - Il caso LegoBrand Community e Open Innovation - Il caso Lego
Brand Community e Open Innovation - Il caso Lego
 
I mille volti indie
I mille volti indieI mille volti indie
I mille volti indie
 
Alice in WordPressLand - "We're all mad here"
Alice in WordPressLand - "We're all mad here"Alice in WordPressLand - "We're all mad here"
Alice in WordPressLand - "We're all mad here"
 
Phonebloks - Modularity in Design
Phonebloks - Modularity in Design Phonebloks - Modularity in Design
Phonebloks - Modularity in Design
 
Gam03 facciamo volare il nosro drone
Gam03   facciamo volare il nosro droneGam03   facciamo volare il nosro drone
Gam03 facciamo volare il nosro drone
 
Sviluppo di soluzioni embedded moderne con .NET Micro Framework by Lorenzo Ma...
Sviluppo di soluzioni embedded moderne con .NET Micro Framework by Lorenzo Ma...Sviluppo di soluzioni embedded moderne con .NET Micro Framework by Lorenzo Ma...
Sviluppo di soluzioni embedded moderne con .NET Micro Framework by Lorenzo Ma...
 
Editoria in the Cloud
Editoria in the CloudEditoria in the Cloud
Editoria in the Cloud
 

Sviluppo di un videogioco multuplayer a microservizi

Editor's Notes

  1. 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
  2. Preparare un progetto con npm i Preparare redis e postgres già istanziati Verificare npm run dev Eseguire docker!!
  3. 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
  4. Esempio di docker registry: DockerHub
  5. Docker build Docker images Docker run Docker run –d Docker ps Docker-compose up
  6. Fai riepilogo Sviluppo Definizione containers e dockerfile Definizione dockercompose