SlideShare a Scribd company logo
1 of 38
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

More Related Content

What's hot

What's hot (20)

Open Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studioOpen Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studio
 
Introduzione a Docker (Maggio 2017) [ITA]
Introduzione a Docker (Maggio 2017) [ITA]Introduzione a Docker (Maggio 2017) [ITA]
Introduzione a Docker (Maggio 2017) [ITA]
 
Docker
Docker Docker
Docker
 
Introduzione A Docker
Introduzione A DockerIntroduzione A Docker
Introduzione A Docker
 
Introduzione a Docker
Introduzione a DockerIntroduzione a Docker
Introduzione a Docker
 
Docker & DevOps
Docker  & DevOpsDocker  & DevOps
Docker & DevOps
 
Docker Workshop - Coretech Summit 2018
Docker Workshop - Coretech Summit 2018Docker Workshop - Coretech Summit 2018
Docker Workshop - Coretech Summit 2018
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
 
AWS CDK infrastructure is code
AWS CDK infrastructure is codeAWS CDK infrastructure is code
AWS CDK infrastructure is code
 
Building infrastructure as code with typescript and aws cdk
Building infrastructure as code with typescript and aws cdkBuilding infrastructure as code with typescript and aws cdk
Building infrastructure as code with typescript and aws cdk
 
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
 
Real world Visual Studio Code
Real world Visual Studio CodeReal world Visual Studio Code
Real world Visual Studio Code
 
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
 
Docker e Kubernetes per professionisti IT
Docker e Kubernetes per professionisti ITDocker e Kubernetes per professionisti IT
Docker e Kubernetes per professionisti IT
 
kube-green | Davide Bianchi
kube-green | Davide Bianchikube-green | Davide Bianchi
kube-green | Davide Bianchi
 
Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker
 
ASP.NET AND Azure Function
ASP.NET AND Azure FunctionASP.NET AND Azure Function
ASP.NET AND Azure Function
 
Deploy & Run on Azure App Service
Deploy & Run on Azure App ServiceDeploy & Run on Azure App Service
Deploy & Run on Azure App Service
 
Infrastructure as code: Kubernetes on ACS
Infrastructure as code: Kubernetes on ACSInfrastructure as code: Kubernetes on ACS
Infrastructure as code: Kubernetes on ACS
 
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...
 

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

OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaS
opencityplatform
 
Utilizzo del Software OpenStack per la realizzazione di piattaforme "Cloud" -...
Utilizzo del Software OpenStack per la realizzazione di piattaforme "Cloud" -...Utilizzo del Software OpenStack per la realizzazione di piattaforme "Cloud" -...
Utilizzo del Software OpenStack per la realizzazione di piattaforme "Cloud" -...
Enrico Franceschini
 

Similar to Workshop ASP.NET Core e Angular in produzione con Docker e Kubernetes (20)

Azure dev ops meetup one
Azure dev ops meetup oneAzure dev ops meetup one
Azure dev ops meetup one
 
Meetup ASP.NET Core e Kubernetes
Meetup ASP.NET Core e KubernetesMeetup ASP.NET Core e Kubernetes
Meetup ASP.NET Core e Kubernetes
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
High specialized vm on open stack cloud
High specialized vm on open stack cloudHigh specialized vm on open stack cloud
High specialized vm on open stack cloud
 
Demo Ubuntu Enterprise Cloud
Demo Ubuntu Enterprise CloudDemo Ubuntu Enterprise Cloud
Demo Ubuntu Enterprise Cloud
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOps
 
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
 
DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017
 
Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20
 
Tesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computingTesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computing
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaS
 
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
 
Kubernetes e bello, sicuro è meglio!
Kubernetes e bello, sicuro è meglio!Kubernetes e bello, sicuro è meglio!
Kubernetes e bello, sicuro è meglio!
 
ASP.NET Core 2 e Docker
ASP.NET Core 2 e DockerASP.NET Core 2 e Docker
ASP.NET Core 2 e Docker
 
Visual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro FocusVisual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro Focus
 
Utilizzo del Software OpenStack per la realizzazione di piattaforme "Cloud" -...
Utilizzo del Software OpenStack per la realizzazione di piattaforme "Cloud" -...Utilizzo del Software OpenStack per la realizzazione di piattaforme "Cloud" -...
Utilizzo del Software OpenStack per la realizzazione di piattaforme "Cloud" -...
 
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptxDocker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
 
Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud
Automatic Cloud Deployment: un caso di studio basato sul software OwnCloudAutomatic Cloud Deployment: un caso di studio basato sul software OwnCloud
Automatic Cloud Deployment: un caso di studio basato sul software OwnCloud
 
OCP Paas_ultima
OCP Paas_ultimaOCP Paas_ultima
OCP Paas_ultima
 
Docker Fudamentals
Docker FudamentalsDocker Fudamentals
Docker Fudamentals
 

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

  • 1. 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
  • 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’è 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
  • 5. Che cos’è un container?
  • 6. 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
  • 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...
  • 9. Cosa mi serve per cominciare? Dal sito https://www.docker .com/get-started scarichiamo i tool per il nostro sistema operativo
  • 11. 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
  • 12. 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...)
  • 15. Kubernetes: Pod La più piccola unità di schedulazione in Kubernetes, che può contenere uno o più container
  • 16. Kubernetes: Pod I container interni ad un Pod condividono le risorse, tra cui lo stesso IP, vengono quindi esposti su porte differenti
  • 18. Kubernetes: Label Possiamo raggruppare Service e Pod con delle Label, in modo da gestire al meglio le connessioni tra essi
  • 19. 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.)
  • 20. Cosa mi serve per cominciare?
  • 21. Cosa mi serve per cominciare? Azure
  • 22. Deployamo la nostra applicazione su K8s
  • 23. ACI BatchService Fabric & Service Fabric Mesh AKS & OpenShift on Azure Web Apps & Azure Functions
  • 26. 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.
  • 27. Broadening the Azure Ecosystem
  • 28. 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
  • 30. DEMO: Build & Deploy your app in AKS