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
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...
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...)
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.)
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.
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