Workshop: ASP.NET Core e
Angular in produzione con
Docker e Kubernetes
Michele Aponte
CEO/CTO @ Blexin
michele.aponte@blexin.com
@apomic80
Antonio Liccardi
Cloud Developer & DevOps Engineer @Blexin
antonio.liccardi@blexin.com
@turibbio
Thanks to
Che cos’è Docker?
Docker è una piattaforma
open source per la
gestione del ciclo di vita di
container, che semplifica
la creazione, il rilascio e
l’esecuzione di
applicazioni
Che cos’è un container?
Si parte da una immagine,
che è un template in sola
lettura composto da un file
system a livelli usato per
condividere i file comuni
Che cos’è un container?
VM e container sono due cose diverse!
Infrastructure Infrastructure
Host Operating System
Hypervisor
Guest OS
Bins/Libs
App 1
Guest OS
Bins/Libs
App 2
Guest OS
Bins/Libs
App 3
Bins/Libs
App/Svc 1
Bins/Libs
App/Svc 2
Bins/Libs
App/Svc 3
Container Engine
Operating System
+ Network isolation at container level
+ Resources constraints at container level
Perché, come DEV, dovrei usarlo?
- Velocizzare l’ingresso di un nuovo
elemento nel team
- Eliminare i conflitti nella
applicazioni
- Rilasci veloci e semplici
- Si.. ok… anche per gestire
microservizi...
Dove posso usarlo?
Cosa mi serve per cominciare?
Dal sito
https://www.docker
.com/get-started
scarichiamo i tool
per il nostro sistema
operativo
Containerizziamo la nostra applicazione
Ok, ma come lo gestisco in produzione?
Per gestire i vari scenari di
deploy abbiamo bisogno di
un “orchestratore” di
container: Kubernetes è al
momento il tool più diffuso e
versatile per questo scopo
Kubernetes: perché?
- Gli possiamo dire letteralmente in che
stato vogliamo si trovi il sistema
- Capiti i concetti chiave anche uno
sviluppatore ci può arrivare 
- I principali Cloud Provider lo supportano
As a Service (installarlo on premise e
manutenerlo richiede un sistemista… e
deve essere pure bravo...)
Kubernetes: Cluster
Kubernetes: Nodo
Kubernetes: Pod
La più piccola unità
di schedulazione in
Kubernetes, che può
contenere uno o più
container
Kubernetes: Pod
I container interni ad
un Pod condividono
le risorse, tra cui lo
stesso IP, vengono
quindi esposti su
porte differenti
Kubernetes: Service
Kubernetes: Label
Possiamo
raggruppare Service e
Pod con delle Label,
in modo da gestire al
meglio le connessioni
tra essi
Kubernetes: Deployment
Nonostante sia possibile gestire gli
aggiornamenti usando le Label,
Kubernetes fornisce uno strumento
apposito chiamato Deployment:
- Aggiornamenti e Rollback
- Completamente dichiarativo
- Strategie e opzioni di
aggiornamento (Recreate,
RollingUpdate, Canary, ecc.)
Cosa mi serve per cominciare?
Cosa mi serve per cominciare?
Azure
Deployamo la nostra applicazione su K8s
ACI BatchService Fabric &
Service Fabric Mesh
AKS &
OpenShift on Azure
Web Apps &
Azure Functions
Container su Azure
https://hub.docker.com
https://bit.ly/2JdhMN4
Azure Pipelines
Cloud-hosted pipelines for Linux, Windows and macOS, with unlimited minutes
for open source
Any language, any platform, any cloud
Build, test, and deploy Node.js, Python, 
Java, PHP, Ruby, C/C++,
.NET, Android, and iOS apps. Run in parallel on Linux, macOS, and
Windows. Deploy to Azure, AWS, GCP or on-premises
Extensible
Explore and implement a wide range of community-built build,
test, and deployment tasks, along with hundreds of extensions
from Slack to SonarCloud. Support for YAML, reporting and
more
Best-in-class for open source
Ensure fast continuous integration/continuous delivery (CI/CD)
pipelines for every open source project. Get unlimited build minutes
for all open source projects with up to 10 free parallel jobs across
Linux, macOS and Windows
https://azure.com/pipelines
Containers and Kubernetes
Easily build and push images to container registries like Docker Hub
and Azure Container Registry. Deploy containers to individual hosts
or Kubernetes.
Broadening the Azure Ecosystem
DevOps in Microsoft
372k
Pull Requests per
month
2m
Git commits per month
78,000Deployments per day
4.4m
Builds per month
500m
Test executions per day
500k
Work items updated
per day
5m
Work items viewed per
day
Azure DevOps is the toolchain of choice for Microsoft engineering with over 90,000 internal users
https://aka.ms/DevOpsAtMicrosoft
Containers Development Lifecycle
DEMO: Build & Deploy your app in AKS
Scaling your app
Autoscaling in Kubernetes
Scaling con Virtual Nodes
DEMO: Scaling containers
DEMO: Monitoring containers
Domande fino a qui?
Thank You!!!
Grazie!!!
Thanks to

Workshop ASP.NET Core e Angular in produzione con Docker e Kubernetes

  • 1.
    Workshop: ASP.NET Coree Angular in produzione con Docker e Kubernetes Michele Aponte CEO/CTO @ Blexin michele.aponte@blexin.com @apomic80 Antonio Liccardi Cloud Developer & DevOps Engineer @Blexin antonio.liccardi@blexin.com @turibbio
  • 2.
  • 3.
    Che cos’è Docker? Dockerè una piattaforma open source per la gestione del ciclo di vita di container, che semplifica la creazione, il rilascio e l’esecuzione di applicazioni
  • 4.
    Che cos’è uncontainer? Si parte da una immagine, che è un template in sola lettura composto da un file system a livelli usato per condividere i file comuni
  • 5.
    Che cos’è uncontainer?
  • 6.
    VM e containersono due cose diverse! Infrastructure Infrastructure Host Operating System Hypervisor Guest OS Bins/Libs App 1 Guest OS Bins/Libs App 2 Guest OS Bins/Libs App 3 Bins/Libs App/Svc 1 Bins/Libs App/Svc 2 Bins/Libs App/Svc 3 Container Engine Operating System + Network isolation at container level + Resources constraints at container level
  • 7.
    Perché, come DEV,dovrei usarlo? - Velocizzare l’ingresso di un nuovo elemento nel team - Eliminare i conflitti nella applicazioni - Rilasci veloci e semplici - Si.. ok… anche per gestire microservizi...
  • 8.
  • 9.
    Cosa mi serveper cominciare? Dal sito https://www.docker .com/get-started scarichiamo i tool per il nostro sistema operativo
  • 10.
  • 11.
    Ok, ma comelo gestisco in produzione? Per gestire i vari scenari di deploy abbiamo bisogno di un “orchestratore” di container: Kubernetes è al momento il tool più diffuso e versatile per questo scopo
  • 12.
    Kubernetes: perché? - Glipossiamo dire letteralmente in che stato vogliamo si trovi il sistema - Capiti i concetti chiave anche uno sviluppatore ci può arrivare  - I principali Cloud Provider lo supportano As a Service (installarlo on premise e manutenerlo richiede un sistemista… e deve essere pure bravo...)
  • 13.
  • 14.
  • 15.
    Kubernetes: Pod La piùpiccola unità di schedulazione in Kubernetes, che può contenere uno o più container
  • 16.
    Kubernetes: Pod I containerinterni ad un Pod condividono le risorse, tra cui lo stesso IP, vengono quindi esposti su porte differenti
  • 17.
  • 18.
    Kubernetes: Label Possiamo raggruppare Servicee Pod con delle Label, in modo da gestire al meglio le connessioni tra essi
  • 19.
    Kubernetes: Deployment Nonostante siapossibile gestire gli aggiornamenti usando le Label, Kubernetes fornisce uno strumento apposito chiamato Deployment: - Aggiornamenti e Rollback - Completamente dichiarativo - Strategie e opzioni di aggiornamento (Recreate, RollingUpdate, Canary, ecc.)
  • 20.
    Cosa mi serveper cominciare?
  • 21.
    Cosa mi serveper cominciare? Azure
  • 22.
    Deployamo la nostraapplicazione su K8s
  • 23.
    ACI BatchService Fabric& Service Fabric Mesh AKS & OpenShift on Azure Web Apps & Azure Functions
  • 24.
  • 25.
  • 26.
    Azure Pipelines Cloud-hosted pipelinesfor Linux, Windows and macOS, with unlimited minutes for open source Any language, any platform, any cloud Build, test, and deploy Node.js, Python, 
Java, PHP, Ruby, C/C++, .NET, Android, and iOS apps. Run in parallel on Linux, macOS, and Windows. Deploy to Azure, AWS, GCP or on-premises Extensible Explore and implement a wide range of community-built build, test, and deployment tasks, along with hundreds of extensions from Slack to SonarCloud. Support for YAML, reporting and more Best-in-class for open source Ensure fast continuous integration/continuous delivery (CI/CD) pipelines for every open source project. Get unlimited build minutes for all open source projects with up to 10 free parallel jobs across Linux, macOS and Windows https://azure.com/pipelines Containers and Kubernetes Easily build and push images to container registries like Docker Hub and Azure Container Registry. Deploy containers to individual hosts or Kubernetes.
  • 27.
  • 28.
    DevOps in Microsoft 372k PullRequests per month 2m Git commits per month 78,000Deployments per day 4.4m Builds per month 500m Test executions per day 500k Work items updated per day 5m Work items viewed per day Azure DevOps is the toolchain of choice for Microsoft engineering with over 90,000 internal users https://aka.ms/DevOpsAtMicrosoft
  • 29.
  • 30.
    DEMO: Build &Deploy your app in AKS
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.