Descrizione
Il corso propone un percorso formativo che mescola due progetti open source di successo: il linguaggio di programmazione Golang e gli strumenti di Docker. Attraverso esercitazioni pratiche e un pizzico di teoria (q.b) vengono introdotti i concetti peculiari di Golang e di Docker per lavorare su architetture a Microservizi, con un linguaggio di sviluppo moderno e un efficace processo di distribuzione del software.
Livello: Base
Durata: 4 sessioni
Svolgimento delle sessioni:
Le sessioni on site sono previste nei giorni:
- mercoledì 22 marzo dalle 18:30 alle 20:30.
- mercoledì 29 marzo dalle 18:30 alle 20:30.
- mercoledì 5 aprile dalle 18:30 alle 20:30.
- mercoledì 12 aprile dalle 18:30 alle 20:30.
Per la natura del corso è consigliato frequentare tutte le sessioni. Ogni sessione, della durata di 2 ore, prevede questi momenti formativi:
- una presentazione in cui vengono introdotti e descritti i nuovi concetti
- una dimostrazione pratica degli strumenti e dei comandi descritti
- l’assegnazione di esercitazioni pratiche individuali o a piccoli gruppi
- Un momento di revisione delle esercitazioni assegnate
Tools:
- Le esercitazioni pratiche sono svolte utilizzando la piattaforma GitHub Classroom che consente di creare un ambiente di lavoro dedicato per ogni studente e semplifica la verifica. Richiedi l’accesso al Docente!
- E’ presente una chat dedicata per il corso
- L’editor consigliato è Visual Studio Code.
Requisiti:
E’ indispensabile una conoscenza base di programmazione.
Porta il tuo pc, il corso è molto pratico!
Docente
Federico Minzoni
- fminzoni@enter.eu
- https://github.com/f-minzoni
Sono un programmatore e smanettone della prima ora. Appassionato da sempre di Git, MongoDB, Rich Internet Application, IOT, Cloud Computing, da diversi mesi ho aggiunto alla lista, Docker e le architetture a Microservizi. Due temi che, insieme, stanno rivoluzionando l’intero processo di sviluppo e rilascio delle applicazioni sul Cloud. Ambito in cui lavoro da oltre 3 anni, in Enter, occupandomi della piattaforma Enter Cloud Suite.
Agenda
Prima sessione
Microservizi. Dopo un’iniziale presentazione del corso, valuteremo insieme vantaggi e problematiche tipiche delle architetture a microservizi.
In questa prima sessione vedremo come strutturare una semplice applicazione di esempio. Utilizzeremo il framework go-micro per sviluppare i microservizi in golang, con l’obiettivo di avere una prima versione funzionante dell’applicazione.
Materiali
- The Art of Scalability, AKF Scale Cube
- Play With Docker
- The protocol buffer language
- Esercitazione su Protobuf e Golang
- Applicazione a Microservizi di esempio
Seconda sessione
Docker. Con un recap iniziale, ripercorreremo tutti i concetti e gli strumenti visti finora, step-by-step, per avviare l’applicazione e valutare il suo funzionamento. Vedremo quindi come utilizzare Docker Compose per definire le componenti software (servizi) dell’applicazione di esempio e renderla facilmente distribuibile.
Materiali
- Introduzione a Docker
- Introduzione a Docker Compose
- Guida alla creazione di un’immagine Docker
- HTTP/2 Demo
- Homepage di gRPC
- Esercitazione su gRPC e Golang
Terza sessione
Golang. In questa terza sessione, dopo il classico recap iniziale, valuteremo meglio la struttura della nostra applicazione e l’implementazione specifica in Golang. Vedremo come creare dei test per verificarne il funzionamento e per strutturare un processo di Continuous Integration.
Materiali
- RPC framework per microservizi
- Documentazione di Micro
- Homepage di Consul
- Drone Continuous Delivery platform built on Docker, written in Go
- Package testing di Golang
Quarta sessione
Con l’ultima sessione, avremo tutte le conoscenze minime per creare un nostro progetto di applicazione a microservizi. Lavoreremo a piccoli gruppi per implementare le componenti applicative, creare un processo di verifica e configurare il delivery dei nostri microservizi sul Docker Registry.