SlideShare a Scribd company logo
Microservizi & DevOps
Microservizi & DevOps
Antonio Liccardi
IT & Mobile Specialist in Blexin s.r.l.
antonio.liccardi@blexin.com
@turibbio
Microsoft MVP Developer Technologies
Cosa sono i microservizi?
Microservices are small, autonomous
services that work together
I principi alla base dei microservizi
Orientati al
business
domain
API
Technology
agnostic
Small (1…N)
Indipendently
releasable
I principi alla base dei microservizi
• Piccoli e con un solo compito
• Ogni microservizi si deve focalizzare su una singola cosa. La coesione deve
essere fondamentale!
• Gather together those things that change for the same reason, and separate
those things that change for different reasons (Uncle Bob)
• Avere dei contesti (boundaries) espliciti.
• Più piccolo è il servizio, maggiori sono i benefici ma anche i possibili problemi
• Collaborano fra loro
• Espongono APIs (ma facendo attenzione, maggiore è l’esposizione, più sono le
interconnessioni)
I principi alla base dei microservizi
• Autonomi
• Tutte le comunicazioni avvengono tramite network (indipendenza)
• Rilasciabili autonomamente
• Devono poter essere rilasciati senza richiedere intervento da parte dei
consumer
Benefici dei microservizi
• Tecnologie eterogenee
• Basati su servizi, possono utilizzare diverse tecnologie dietro le quinte
• Benefici dal punto di vista dell’architettura, delle performance, organizzazione
aziendale
• Adozione facile di nuove tecnologie
Benefici dei microservizi
• Resilienza
• Concetto di bulkhead applicato ai service boundaries
• Scalabilità
• Possibilità di essere scalabili solo sulle funzionalità che richiedono scalabilità
• Facilità di deploy
• Ogni microservizio deve essere rilasciato in maniera indipendente
• Gestione del rollback semplice
Benefici dei microservizi
• Organizzazione aziendale
• L’uso dei microservizi aiuta l’organizzazione aziendale minimizzando il numero
di persone concentrato su una singola codebase
• Composabilità
• Riutilizzabilità dei componenti
• Una buona scelta per i sistemi legacy
Microservices are
not a silver bullet!
Come modellare un microservizio?
• Domain Driven Design by Eric
Evans (2003)
• Questo libro ci ha aiutato a
capire l’importanza di saper
rappresentare bene il mondo
nel nostro codice
Come modellare un microservizio?
• Hexagonal Architecture
• Niente più layer e tante «porte»
aperte!
Come modellare un microservizio?
• Loose Coupling
• Quando i servizi sono loosely coupled, una modifica ad un servizio non
richiede la modifica agli altri.
• High Cohesion
• Boundaries con accoppiamento dei domini comuni
Bounded Context
Bounded Context
• Ogni dominio è costituito da più bounded context
• In ogni bounded context c’è un modello che condivide determinate
informazioni verso l’esterno
• Ogni bounded context espone una specifica interfaccia con i modelli
condivisi
• Può capitare di avere modelli condivisi con egual nome ma con
informazioni diverse e usati in diversi contesti (es. Customer)
• Questo evita il tight coupling
• Aiuta a creare i moduli e servizi
Context Mapping
Microservizi & DevOps
Monolite vs Microservizi
Microservizi & DevOps
Microservizi & DevOps
Microservizi & DevOps
Microservizi & DevOps
DevOps & Microservizi
Cosa sono i containers?
• E’ un approccio nello sviluppo software in cui una applicazione o
servizio, le sue dipendenze e la sua configurazione viene
«impacchettata» come una container image
• L’app può essere testata in maniera indipendente
• L’immagine viene deployata come una istanza sul container host
Vantaggi
• Deploy in diversi ambienti con la garanzia di avere lo stesso ambiente
• Isolamento dei container
• Eseguibili su piattaforme differenti (Linux / Windows)
• Più leggeri delle VM
• Scalabili
• Facili da deployare
Meet the «Hypervisor»
Docker
Docker: terminologia
• Container image
• applicazione contenente tutte le dipendenze, configurazioni e runtime
• una immagine può ereditare da altre
• Container
• istanza di un container, può essere eseguita più volte contemporaneamente
anche con parametri di inizializzazione differenti
• Tag
• una etichetta che può applicare ad una immagine
Docker: terminologia
• DockerFile
• configurazioni di build dell’immagine
• Build
• creazione dell’immagine container tramite il dockerfile
• Repository
• una collezione di immagini docker legate fra loro, generalmente associate ad
un tag
Docker: terminologia
• Registry
• un servizio che prevede l’accesso a dei repository di immagini (DockerHub, Docker
Trusted Registry o Azure Container Registry)
• Compose
• configurazione contenente il deploy di più immagini docker legate fra loro
• Cluster
• una collezione di Docker Host visti come unico (Swarm, DC/OS, Kubernetes)
• Orchestrator
• gestisce cluster e le istanze delle immagini presenti al proprio interno che ne prevede
l’esecuzione, la distribuzione e scalabilità
Microservizi & DevOps
Meet Kubernetes
• Nasce in Google, ora gestito da Cloud Native Computing Foundation
• Installazione
• Diverse distribuzioni (cloud, on-premise)
• Azure Kubernetes Service
• Minikube (dev)
• Infrastructure as code
Kubernetes architecture
Workflow con Kubernetes
DEMO
Deploy containers on AKS with AzureDevOps
Testare containers
• Unit testing
• Component testing
• Integration testing
• End-to-End testing
• Contract Testing
• Production Testing
Contract Testing
• Consumer driven contract testing
Production testing
Monitorare Containers
• Application insight
• Marathon
• cAdvisor
• Prometheus
• Sysdig
• Your custom solution
Application Insight
Da dove comincio?
• eShopOnContainers
• Azure DevOps labs & documentation
Microservizi & DevOps
Microservizi & DevOps

More Related Content

PPTX
Micro services Architecture
PPTX
Introduction to microservices
PDF
La rivoluzione dei Microservizi
PDF
Event-Driven Microservices With NATS Streaming
PPTX
Kubernetes for Beginners: An Introductory Guide
PDF
A Pattern Language for Microservices
PDF
Microservice architecture
PPSX
Microservices, Containers, Kubernetes, Kafka, Kanban
Micro services Architecture
Introduction to microservices
La rivoluzione dei Microservizi
Event-Driven Microservices With NATS Streaming
Kubernetes for Beginners: An Introductory Guide
A Pattern Language for Microservices
Microservice architecture
Microservices, Containers, Kubernetes, Kafka, Kanban

What's hot (20)

PPTX
Angular 4 and TypeScript
PPTX
Docker 101 : Introduction to Docker and Containers
PPTX
Spring Framework
PPTX
Microservice Architecture Software Architecture Microservice Design Pattern
PDF
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
PPT
Docker introduction
PPTX
Introduction to microservices
PDF
Microservices Design Patterns
PDF
Testing Spring Boot Applications
PDF
Hexagonal Architecture.pdf
PDF
OAuth 2.0 with IBM WebSphere DataPower
PPTX
Angular vs. React
PDF
Design patterns for microservice architecture
PPTX
Microservices
PPTX
AWS VS AZURE VS GCP.pptx
PDF
spring-boot-fr.pdf
PPTX
Getting started with Docker
PPTX
Software architecture for high traffic website
PPTX
TypeScriptのdecoratorについて
PPSX
Docker Kubernetes Istio
Angular 4 and TypeScript
Docker 101 : Introduction to Docker and Containers
Spring Framework
Microservice Architecture Software Architecture Microservice Design Pattern
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Docker introduction
Introduction to microservices
Microservices Design Patterns
Testing Spring Boot Applications
Hexagonal Architecture.pdf
OAuth 2.0 with IBM WebSphere DataPower
Angular vs. React
Design patterns for microservice architecture
Microservices
AWS VS AZURE VS GCP.pptx
spring-boot-fr.pdf
Getting started with Docker
Software architecture for high traffic website
TypeScriptのdecoratorについて
Docker Kubernetes Istio
Ad

Similar to Microservizi & DevOps (20)

PPTX
DevOps in a Microservices World
PPTX
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
PPTX
Architetture a Microservizi con Docker Container
PPTX
Microservices
PDF
MySQL Day Milano 2018 - Le architetture a microservizi
PDF
Che cosa sono i microservizi?
PDF
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
PPTX
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
PPTX
Microservices webinar EMEA Aug. 2017
PDF
Designing with microservices - Daniele Mondello
PDF
Evoluzione del web development dalle cgi ai microservices
PDF
Osd 2016 Middleware Track
PDF
Favorire i feature teams con architetture microservices
PDF
Architetture a Microservizi (con Kubernetes)
PPTX
Microservices power by unikernels
PDF
Docker & DevOps
PDF
October 2009 - JBoss Cloud
PDF
JBoss Clouds - JBug Roma october 2009
PPTX
Microservices architecture & Service Fabric
PDF
Introduzione ai Microservices
DevOps in a Microservices World
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Architetture a Microservizi con Docker Container
Microservices
MySQL Day Milano 2018 - Le architetture a microservizi
Che cosa sono i microservizi?
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
Microservices webinar EMEA Aug. 2017
Designing with microservices - Daniele Mondello
Evoluzione del web development dalle cgi ai microservices
Osd 2016 Middleware Track
Favorire i feature teams con architetture microservices
Architetture a Microservizi (con Kubernetes)
Microservices power by unikernels
Docker & DevOps
October 2009 - JBoss Cloud
JBoss Clouds - JBug Roma october 2009
Microservices architecture & Service Fabric
Introduzione ai Microservices
Ad

More from Antonio Liccardi (15)

PDF
DevOpsConf2021 - GitOps and best practices for cloud native CI/CD
PDF
Delivering code with git hub actions
PDF
Cloud native CI/CD with GitOps
PPTX
GitOps and Best Practices for Cloud Native CI/CD
PDF
DevDay Salerno - Mobile DevOps con Xamarin
PDF
DevDay Salerno - Introduzione a Xamarin
PPTX
SonarQube e il debito tecnico - Matteo Emili
PPTX
Continuous integration per sviluppatori mobile
PPTX
Introduzione a docker
PPTX
Continuous integration per le tue applicazioni mobile
PPTX
Javascript task automation
PPTX
Vs04 - DevOps: Continuous Deployment con Windows Azure
PPTX
Vs03 – migliorare la qualità del codice con vs 2013
PPTX
Le novita' su diagnostica e qualita' del codice con visual studio 2013
PPTX
Le novità di team foundation server 2012
DevOpsConf2021 - GitOps and best practices for cloud native CI/CD
Delivering code with git hub actions
Cloud native CI/CD with GitOps
GitOps and Best Practices for Cloud Native CI/CD
DevDay Salerno - Mobile DevOps con Xamarin
DevDay Salerno - Introduzione a Xamarin
SonarQube e il debito tecnico - Matteo Emili
Continuous integration per sviluppatori mobile
Introduzione a docker
Continuous integration per le tue applicazioni mobile
Javascript task automation
Vs04 - DevOps: Continuous Deployment con Windows Azure
Vs03 – migliorare la qualità del codice con vs 2013
Le novita' su diagnostica e qualita' del codice con visual studio 2013
Le novità di team foundation server 2012

Microservizi & DevOps

  • 2. Microservizi & DevOps Antonio Liccardi IT & Mobile Specialist in Blexin s.r.l. antonio.liccardi@blexin.com @turibbio Microsoft MVP Developer Technologies
  • 3. Cosa sono i microservizi? Microservices are small, autonomous services that work together
  • 4. I principi alla base dei microservizi Orientati al business domain API Technology agnostic Small (1…N) Indipendently releasable
  • 5. I principi alla base dei microservizi • Piccoli e con un solo compito • Ogni microservizi si deve focalizzare su una singola cosa. La coesione deve essere fondamentale! • Gather together those things that change for the same reason, and separate those things that change for different reasons (Uncle Bob) • Avere dei contesti (boundaries) espliciti. • Più piccolo è il servizio, maggiori sono i benefici ma anche i possibili problemi • Collaborano fra loro • Espongono APIs (ma facendo attenzione, maggiore è l’esposizione, più sono le interconnessioni)
  • 6. I principi alla base dei microservizi • Autonomi • Tutte le comunicazioni avvengono tramite network (indipendenza) • Rilasciabili autonomamente • Devono poter essere rilasciati senza richiedere intervento da parte dei consumer
  • 7. Benefici dei microservizi • Tecnologie eterogenee • Basati su servizi, possono utilizzare diverse tecnologie dietro le quinte • Benefici dal punto di vista dell’architettura, delle performance, organizzazione aziendale • Adozione facile di nuove tecnologie
  • 8. Benefici dei microservizi • Resilienza • Concetto di bulkhead applicato ai service boundaries • Scalabilità • Possibilità di essere scalabili solo sulle funzionalità che richiedono scalabilità • Facilità di deploy • Ogni microservizio deve essere rilasciato in maniera indipendente • Gestione del rollback semplice
  • 9. Benefici dei microservizi • Organizzazione aziendale • L’uso dei microservizi aiuta l’organizzazione aziendale minimizzando il numero di persone concentrato su una singola codebase • Composabilità • Riutilizzabilità dei componenti • Una buona scelta per i sistemi legacy
  • 10. Microservices are not a silver bullet!
  • 11. Come modellare un microservizio? • Domain Driven Design by Eric Evans (2003) • Questo libro ci ha aiutato a capire l’importanza di saper rappresentare bene il mondo nel nostro codice
  • 12. Come modellare un microservizio? • Hexagonal Architecture • Niente più layer e tante «porte» aperte!
  • 13. Come modellare un microservizio? • Loose Coupling • Quando i servizi sono loosely coupled, una modifica ad un servizio non richiede la modifica agli altri. • High Cohesion • Boundaries con accoppiamento dei domini comuni
  • 15. Bounded Context • Ogni dominio è costituito da più bounded context • In ogni bounded context c’è un modello che condivide determinate informazioni verso l’esterno • Ogni bounded context espone una specifica interfaccia con i modelli condivisi • Può capitare di avere modelli condivisi con egual nome ma con informazioni diverse e usati in diversi contesti (es. Customer) • Questo evita il tight coupling • Aiuta a creare i moduli e servizi
  • 24. Cosa sono i containers? • E’ un approccio nello sviluppo software in cui una applicazione o servizio, le sue dipendenze e la sua configurazione viene «impacchettata» come una container image • L’app può essere testata in maniera indipendente • L’immagine viene deployata come una istanza sul container host
  • 25. Vantaggi • Deploy in diversi ambienti con la garanzia di avere lo stesso ambiente • Isolamento dei container • Eseguibili su piattaforme differenti (Linux / Windows) • Più leggeri delle VM • Scalabili • Facili da deployare
  • 28. Docker: terminologia • Container image • applicazione contenente tutte le dipendenze, configurazioni e runtime • una immagine può ereditare da altre • Container • istanza di un container, può essere eseguita più volte contemporaneamente anche con parametri di inizializzazione differenti • Tag • una etichetta che può applicare ad una immagine
  • 29. Docker: terminologia • DockerFile • configurazioni di build dell’immagine • Build • creazione dell’immagine container tramite il dockerfile • Repository • una collezione di immagini docker legate fra loro, generalmente associate ad un tag
  • 30. Docker: terminologia • Registry • un servizio che prevede l’accesso a dei repository di immagini (DockerHub, Docker Trusted Registry o Azure Container Registry) • Compose • configurazione contenente il deploy di più immagini docker legate fra loro • Cluster • una collezione di Docker Host visti come unico (Swarm, DC/OS, Kubernetes) • Orchestrator • gestisce cluster e le istanze delle immagini presenti al proprio interno che ne prevede l’esecuzione, la distribuzione e scalabilità
  • 32. Meet Kubernetes • Nasce in Google, ora gestito da Cloud Native Computing Foundation • Installazione • Diverse distribuzioni (cloud, on-premise) • Azure Kubernetes Service • Minikube (dev) • Infrastructure as code
  • 35. DEMO Deploy containers on AKS with AzureDevOps
  • 36. Testare containers • Unit testing • Component testing • Integration testing • End-to-End testing • Contract Testing • Production Testing
  • 37. Contract Testing • Consumer driven contract testing
  • 39. Monitorare Containers • Application insight • Marathon • cAdvisor • Prometheus • Sysdig • Your custom solution
  • 41. Da dove comincio? • eShopOnContainers • Azure DevOps labs & documentation