Docker is the world’s leading software container platform. Developers use Docker to eliminate “works on my machine” problems when collaborating on code with co-workers. Operators use Docker to run and manage apps side-by-side in isolated containers to get better compute density. Enterprises use Docker to build agile software delivery pipelines to ship new features faster, more securely and with confidence for both Linux and Windows Server apps.
Learn More: http://www.collabnix.com
Docker is the world’s leading software container platform. Developers use Docker to eliminate “works on my machine” problems when collaborating on code with co-workers. Operators use Docker to run and manage apps side-by-side in isolated containers to get better compute density. Enterprises use Docker to build agile software delivery pipelines to ship new features faster, more securely and with confidence for both Linux and Windows Server apps.
Docker is the world’s leading software container platform. Developers use Docker to eliminate “works on my machine” problems when collaborating on code with co-workers. Operators use Docker to run and manage apps side-by-side in isolated containers to get better compute density. Enterprises use Docker to build agile software delivery pipelines to ship new features faster, more securely and with confidence for both Linux and Windows Server apps.
Learn More: http://www.collabnix.com
Docker is the world’s leading software container platform. Developers use Docker to eliminate “works on my machine” problems when collaborating on code with co-workers. Operators use Docker to run and manage apps side-by-side in isolated containers to get better compute density. Enterprises use Docker to build agile software delivery pipelines to ship new features faster, more securely and with confidence for both Linux and Windows Server apps.
Kubernetes for Beginners: An Introductory GuideBytemark
An introduction to Kubernetes for beginners. Includes the definition, architecture, benefits and misconceptions of Kubernetes. Written in plain English, ideal for both developers and non-developers who are new to Kubernetes.
Find out more about Kubernetes at Bytemark here: https://www.bytemark.co.uk/managed-kubernetes/
Definition de Cloud Computing
Historique du Cloud Computing
Les cinq caractéristiques de Cloud Computing
Les trois modèles de services de Cloud Computing
Les quatre modèles de déploiement de Cloud Computing
la différence entre Grid et Cloud Computing
Les Outils
[Container 기반의 DevOps] Cloud Native
열린기술공방에서 처음으로 런칭한 교육 프로그램의 트렌드 세션 자료입니다. 급변하는 환경에 맞춘 SW를 개발하고 배포하기 위해, 빠른 의사결정을 할 수 있는 환경과 프로세스가 더욱 중요해지고 있는데요. 기업들에게 왜 클라우드 네이티브 전략이 필수적인지에 대해 소개한 자료입니다.
열린기술공방의 교육 과정을 통해 Kubernetes위에서 동작하는 Application의 빌드부터 배포까지의 과정을 한 눈에 확인하실 수 있습니다.
Immaginiamo un modo diverso di concepire la struttura di un pacchetto software che ci consenta di spaziare tra affidabilità e scalabilità. Sulla costruzione ci affidiamo alle risorse infinite di un PublicCloud, di cui monitorare i costi infrastrutturali per evitare di scendere sotto il break even point nel rapporto Costi/Ricavi. Pensare il software come una nuvola di processi staccati che colloquiano tra loro, ci da maggiore flessibilità (la singola ape è sacrificabile e sostituibile nel contesto dello sciame), mentre il concetto di Alveare come concentrazione dei dati raccolti/elaborati, ci permette di semplificare e gestire meglio il problema CONSISTENZA. Avremo così agenti semplici e rimpiazzabili in modo automatico che TRASPORTANO dati dall’acquisizione allo storage (Alveare), in cui, altri moduli manipoleranno e gestiranno il Miele. Abbiamo trasformato il problema da: gestiamo pochi oggetti complessi (VM) in gestiamo tantissimi moduli semplici (Container), come li coordiniamo??? Kubernets è una possibile risposta.
Kubernetes for Beginners: An Introductory GuideBytemark
An introduction to Kubernetes for beginners. Includes the definition, architecture, benefits and misconceptions of Kubernetes. Written in plain English, ideal for both developers and non-developers who are new to Kubernetes.
Find out more about Kubernetes at Bytemark here: https://www.bytemark.co.uk/managed-kubernetes/
Definition de Cloud Computing
Historique du Cloud Computing
Les cinq caractéristiques de Cloud Computing
Les trois modèles de services de Cloud Computing
Les quatre modèles de déploiement de Cloud Computing
la différence entre Grid et Cloud Computing
Les Outils
[Container 기반의 DevOps] Cloud Native
열린기술공방에서 처음으로 런칭한 교육 프로그램의 트렌드 세션 자료입니다. 급변하는 환경에 맞춘 SW를 개발하고 배포하기 위해, 빠른 의사결정을 할 수 있는 환경과 프로세스가 더욱 중요해지고 있는데요. 기업들에게 왜 클라우드 네이티브 전략이 필수적인지에 대해 소개한 자료입니다.
열린기술공방의 교육 과정을 통해 Kubernetes위에서 동작하는 Application의 빌드부터 배포까지의 과정을 한 눈에 확인하실 수 있습니다.
Immaginiamo un modo diverso di concepire la struttura di un pacchetto software che ci consenta di spaziare tra affidabilità e scalabilità. Sulla costruzione ci affidiamo alle risorse infinite di un PublicCloud, di cui monitorare i costi infrastrutturali per evitare di scendere sotto il break even point nel rapporto Costi/Ricavi. Pensare il software come una nuvola di processi staccati che colloquiano tra loro, ci da maggiore flessibilità (la singola ape è sacrificabile e sostituibile nel contesto dello sciame), mentre il concetto di Alveare come concentrazione dei dati raccolti/elaborati, ci permette di semplificare e gestire meglio il problema CONSISTENZA. Avremo così agenti semplici e rimpiazzabili in modo automatico che TRASPORTANO dati dall’acquisizione allo storage (Alveare), in cui, altri moduli manipoleranno e gestiranno il Miele. Abbiamo trasformato il problema da: gestiamo pochi oggetti complessi (VM) in gestiamo tantissimi moduli semplici (Container), come li coordiniamo??? Kubernets è una possibile risposta.
Livin' with Docker - dallo sviluppo alla produzionegiacomos
Presentiamo un caso di studio di un progetto web nato e cresciuto con Docker al centro della scena. Vedremo le soluzioni scelte durante tutto il percorso, partendo da docker-compose in locale, per arrivare a CoreOS e systemd in produzione, passando per la fase di continuous integration/build e il deploy.
Talk DockerOps 13-02-2016, Ferrara
Continous Delivery e codice di Alta Qualità in PHP. Usare Git , Jenkins e diversi tool per realizzare codice di qualità e per effettuare il deploy in maniera automatica.
Presentazione effettuata al 5 incontro del Palermo PHP User Group al teatro Gregotti
Vagrant e Docker a confronto;scegliere ed iniziareDaniele Mondello
Pitch presentato al Linux Day 2015 a Palermo su Vagrant e docker per confrontarli, scegliere ed iniziare. Partendo dal concetto di virtualizzazione, proseguendo con l'analisi delle due soluzioni fino a dare cenni sull'installazione ed un primo utilizzo.
Esploriamo docker per scegliere tra un'approccio monolitico tramite le VM o un approccio modulare per una gestione più efficiente e leggera delle applicazioni in ambiente Linux.
Cos'è il cloud computing? La nuvola di cui sentiamo tanto parlare? Quali sono le sue caratteristiche e quali vantaggi offre? Cos'è Microsoft Azure? Cos'è Azure for DreamSpark? Presentazione effettuata in occasione del Academic Tour dell'Aquila. (DreamSpark è il vecchio nome di Microsoft Imagine)
containerd the universal container runtimeDocker, Inc.
containerd is an industry-standard core container runtime with an emphasis on simplicity, robustness and portability. It is available as a daemon for Linux and Windows, which can manage the complete container lifecycle of its host system: image transfer and storage, container execution and supervision, low-level storage and network attachments, etc..
containerd is designed to be embedded into a larger system, rather than being used directly by developers or end-users.
containerd includes a daemon exposing gRPC API over a local UNIX socket. The API is a low-level one designed for higher layers to wrap and extend. It also includes a barebone CLI (ctr) designed specifically for development and debugging purpose. It uses runC to run containers according to the OCI specification. The code can be found on GitHub, and here are the contribution guidelines.
containerd is based on the Docker Engine’s core container runtime to benefit from its maturity and existing contributors.
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...adri1s
Premier Meetup Docker sur Nice. A cette occasion nous nous retrouverons dans les locaux d’Epitech Nice pour une conférence suivie d'ateliers.
En partenariat avec :
- Epitech Nice
- Gandi
- Wizishop
http://www.meetup.com/Docker-Nice/events/222345639/
Descrizione delle caratteristiche, dei modelli di business, delle problematiche, della storia del Cloud Computing e come questa tecnologia potrà cambiare nel futuro il modo di fare business per le imprese
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLPar-Tec S.p.A.
In occasione del MySQL Day 2019 di Roma il TechAdvisor Michelangelo Uberti e Marco Carlessi - MySQL Principal Sales Consultant di Oracle - hanno fornito una panoramica sui concetti chiave, sui benefici e sulle opportunità offerte dalle architetture a microservizi.
I punti trattati durante la presentazione sono:
- Le architetture a microservizi
- Dai monoliti ai microservizi
- Un esempio concreto: Netflix
- Architetture a microservizi: vantaggi e punti di attenzione
- Dalla virtualizzazione ai container
- Containerizzazione: vantaggi e punti di attenzione
- Come superare i limiti dei container
- MySQL e le architetture a microservizi
- Microservizi e i dati
- Microservizi e database: due approcci
- MySQL può girare dentro i container
- Deploy MySQL 8.0 con Docker
- Oracle MySQL Operator for Kubernetes (Alpha)
- MySQL 8.0: un multi-model DB
- MySQL Enterprise licensing
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su https://www.par-tec.it/le-architetture-a-microservizi-e-mysql
MySQL Day Milano 2018 - Le architetture a microserviziPar-Tec S.p.A.
In occasione del MySQL Day 2018 di Milano il TechAdvisor Michelangelo Uberti ha fornito una panoramica sui concetti chiave, sui benefici e sulle opportunità offerte dalle architetture a microservizi.
I punti trattati durante la presentazione sono:
- Presentazione dell’offerta Par-Tec dedicata a MySQL Enterprise Edition
- Dai monoliti ai microservizi
- Un esempio concreto: Netflix
- Architetture a microservizi: vantaggi e punti di attenzione
- Dalla virtualizzazione ai container
- Containerizzazione: vantaggi e punti di attenzione
- Come superare i limiti dei container
- Introduzione al paradigma DevOps
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su https://www.par-tec.it/le-architetture-a-microservizi
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackPar-Tec S.p.A.
In occasione dell’Oracle MySQL Tech Tour 2016, il TechAdvisor Daniele Marcocci ha illustrato come Oracle OpenStack e MySQL Enterprise Edition permettono di realizzare un DBaaS funzionale e produttivo.
Nella sessione introduttiva sono stati trattati i seguenti punti:
- Capiamo l’architettura
- Approfondimenti
- Database-as-a-Service
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su http://www.par-tec.it/database-as-a-service-con-mysql-e-oracle-openstack
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...Daniele Mondello
Gestire infrastrutture in cloud con la semplicità di scrivere file di configurazione. Tutto ciò grazie a Terraform, soluzione Open Source per gestire infrastrutture cloud indipendentemente dal Cloud.
Presentazione alla Google Dev Fest Mediterranean 2016 di Catania con presentazione sulle metodologie di utilizzo di microservices e sui sistemi per monitorare le infrastrutture
Open Source Day 2015 - DBaaS con Docker: un caso di studioPar-Tec S.p.A.
Il TechAdvisor Michelangelo Uberti spiega come realizzare un servizio di Database-as-a-Service basato su MySQL e Docker.
I punti trattati durante la presentazione sono:
- DB-as-a-Service: la semplicità del concept
- I possibili approcci
- Architettura di alto livello
- Focus sul Management Agent
- Orchestration at work
- Da cgroups a Docker
- Le sfide principali
- Quale futuro?
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su http://www.par-tec.it/dbaas-con-docker-un-caso-di-studio
Similar to Architetture a Microservizi con Docker Container (20)
Azure Synapse: data lake & modern data warehouse dalla A alla ZRoberto Messora
Con Azure Synapse abbiamo finalmente a disposizione un ambiente integrato in cui poter implementare compiutamente un modern Data Warehouse. Abbiamo ormai capito sul campo che non ha senso mettere in competizione fra di loro data lake e data warehouse, con Azure Synapse la piena collaborazione fra di loro diventa il punto di forza di una strategia sui dati che unifica in un unico ambiente data ingestion, data preparation e analytics.In questa sessione verrà mostrato come Azure Synapse permetta di fare tutto questo a partire dal dato grezzo proveniente dalle più svariate fonti dati.
Azure Data Factory: l'evoluzione della specie della data integrationRoberto Messora
Microsoft definisce Azure Data Factory come un servizio gestito di hybrid data integration, una descrizione fin troppo generica per una delle componenti più importanti della cloud data platform.
In questa sessione entreremo nel merito delle funzionalità offerte da Data Factory, degli scenari di data integration supportati e delle opzioni di security soprattutto in contesti ibridi cloud/on-premise.
Scopriremo che trasferire e trasformare dati nel cloud può essere semplice e relativamente poco costoso.
Analytics, machine e deep learning, data/event streaming
Big data streaming: abilitare la macchina del tempo
Real time event streaming e nuovi paradigmi concettuali:
- Transazioni distribuite
- Consistenza eventuale
- Proiezioni materializzate
Real time event streaming e nuovi paradigmi architetturali:
- Enterprise service bus
- Event store
- Database delle proiezioni
Cenni di Domain Driven Design: una visione strategica della modellazione del proprio dominio di business nell'era dei bi Data.
Sviluppare un'applicazione web basata su ASP.NET Core nel mondo reale con Visual Studio Code
Codice della demo:
https://github.com/robymes/JoinTheExpert-WebDay
L'avvento dei container nello scenario IT ci fornisce una soluzione in più per il consolidamento dei nostri server di esercizio. In questa sessione vedremo come utilizzare Docker al fine di effettuare il deploy di una soluzione che utilizza alcune delle applicazioni più diffuse, sia on-premise che in-the-cloud, Azure o Amazon che sia, in modo da ridurre drasticamente l'incertezza dei side-effect di ambiente passando da uno all'altro.
Event streaming pipeline with Windows Azure and ArcGIS Geoevent extensionRoberto Messora
Real time monitoring and Internet of Things are key success factors in many business activities.
In this presentation we will show how we solved a common issue in managing a large number of different types of event per second that contain some sort of geographical information.
We built a processing pipeline leveraging the high ingestion capabilities of Windows Azure Event Hub and Stream Analytics, then applying location analytics procedures with ArcGIS GeoEvent Processor.
In this way we can select just the informations we need to be processed by the ArcGIS platform, reducing the number of events and normalizing data content.
Code quality e test automatizzati con JavaScriptRoberto Messora
JavaScript è ormai ovunque nel mondo dello sviluppo web, è sbarcato persino sul server, la produzione di codice è aumentata a dismisura, framework e librerie sono spuntati come funghi, ma... siamo sicuri di mandare in produzione codice di qualità? quali strumenti e quali tecniche abbiamo a disposizione per aumentare la confidenza circa la bontà di ciò che scriviamo? Quali strategie possiamo adottare per migliorare il ciclo di vita delle nostre soluzioni e le attività di sviluppo?
In questa sessione proveremo a illustrare come organizzare la codebase di una tipica solution JavaScript, quali strategie adottare per migliorare la qualità del codice a cominciare dallo unit testing, quali strumenti utilizzare per automatizzare tutte le attività ripetitive a valle della scrittura del codice,
L'obiettivo è quello di proporre un modo per disciplinare le attività di sviluppo e rendere il più possibile confortevole la vita professionale dello sviluppatore web.
HTML5 Single Page Application è il nuovo hype tecnologico: tutti ne parlano, il web ne è pervaso, da GMail a Facebook e Twitter, dal desktop al mobile, dagli Appennini alle Ande.
In questa sessione ci occuperemo di tutti quegli aspetti di organizzazione di una solution in termini di codebase, unit testing e processo di build, presentando alcuni strumenti che stanno emergendo fra quelli disponibili.
Demo: http://www.communitydays.it/events/2014-Roma/web02/
Abbiamo sdoganato JavaScript a tutti i livelli: è diventato un linguaggio di programmazione di prima classe e ne abbiamo cominciato a conoscere i segreti e le caratteristiche. Ma non basta, le applicazioni web client si fanno sempre più complesse e non è pensabile fare debug solo a colpi di F5 e Firebug. In questa sessione vi svelerò un segreto: anche in Javascript è possibile fare Unit Testing, darò alcune indicazioni su come organizzare la codebase in modo da farlo con intelligenza.
HTML5 Single Page Application è il nuovo hype tecnologico: tutti ne parlano, il web ne è pervaso, da GMail a Facebook e Twitter, dal desktop al mobile, dagli Appennini alle Ande.
In questa sessione proveremo a capire che cosa sia una SPA a partire dal ruolo centrale che riveste Javascript sia in termini di librerie di base che di organizzazione del codice applicativo. Affronteremo anche temi inerenti la UI, i servizi di back-end, lo unit testing, la security, il mobile in modo da offrire un panorama completo di che cosa sia in effetti una SPA HTML5.
Javascript avanzato: sfruttare al massimo il webRoberto Messora
Javascript è uno dei linguaggi più sottovalutati e più incompresi dell'intero panorama dei linguaggi di programmazione, eppure è anche uno dei più utilizzati.
Da una parte le molteplici e differenti declinazioni degli strumenti di navigazione web, dall'altra l'infelice scelta storica di usare il termine "script", hanno contribuito alla creazione del mito di un linguaggio poco rigoroso, al servizio di ogni sorta di trucco o pezza di codice.
La verità invece racconta di un linguaggio dinamico ad oggetti a tutti gli effetti, con caratteristiche molto interessanti, seppur con qualche difetto, ma soprattutto un linguaggio che, sull'onda di HTML5, rivestirà se possibile ancora più importanza nell'immediato futuro.
In questa sessione verranno presentati aspetti poco conosciuti, ma molto importanti, di Javascript (scoping, hoisting, closures, ecc.), verranno presentati alcuni design patterns che permettono di strutturare in maniera intelligente le nostre librerie applicative in funzione della manutenibilità e delle performance, senza tralasciare, ove possibile, uno sguardo ad alcuni framework come jQuery o KnockoutJS.
Con l'avvento su scala globale di HTML5 le tecnologie web si sono evolute cercando di offrire all'utente una migliore esperienza applicativa sempre più simile a quella desktop. Sul piano tecnico questo viene realizzato spostando la logica di presentazione sul browser client facendo leva su Javascript e CSS3. In questa sessione vedremo come KnockoutJS, un presentation framework Javascript basato sul pattern Model-View-ViewModel, permette di sviluppare Rich Internet Application (RIA) analizzando le sue caratteristiche implementative e mostrando esempi di casi reali anche in ambito mobile.
MV* presentation frameworks in Javascript: en garde, pret, allez!Roberto Messora
HTML5 is the playing area, the strip, Javascript presentation frameworks are the fences and they are fierce and proud. In this presentation we will attend an interesting match between two of the emerging contenders in the MV* family: KnockoutJS and BackboneJS. We'll try to understand how they solve the same issues in modern web software development to better decide which one is suitable in our scenario.
3. 3
Presentare Docker e i suoi concetti di base, una delle tecnologie
con il trend di crescita e adozione più alto
Definire quali sono i contesti architetturali in cui Docker si
colloca al fine di fornire elementi di valutazione circa la sua
eventuale adozione
Presentare l’ecosistema di Docker e le tecnologie/prodotti ad
esso legati
Fornire alcuni elementi legati al ciclo di vita di sviluppo di una
soluzione basata su Docker
Presentare una soluzione demo basata su Docker
Obiettivi
5. 5
Docker
–“It works on my machine”
–Docker Container e dintorni
–Consolidare il deploy: Virtual vs Container
–Scalare Docker: Docker Swarm (et al.)
–Ciclo di sviluppo di una soluzione Docker
Architetture basate sui servizi
–Microservices vs SOA
Demo
Agenda
6.
7.
8. 8
“Docker containers wrap a piece of software in a
complete filesystem that contains everything needed to
run: code, runtime, system tools, system libraries –
anything that can be installed on a server. This
guarantees that the software will always run the same,
regardless of its environment.”
https://www.docker.com/what-docker
Cos’è un Container
9. 9
Da Wikipedia
–Docker è un progetto open-source che automatizza il deployment di
applicazioni all'interno di container software, fornendo un'astrazione
addizionale grazie alla virtualizzazione a livello di sistema operativo di
Linux
–Utilizza le funzionalità di isolamento delle risorse del kernel Linux per
consentire a container indipendenti di coesistere sulla stessa istanza di
Linux, evitando l'installazione e la manutenzione di una macchina virtuale
–Le risorse possono essere isolate, i servizi limitati ed i processi avviati in
modo da avere una prospettiva completamente privata del sistema
operativo, col loro proprio identificativo, file system ed interfaccia di rete
• Namespace del kernel: isolano ciò che l'applicazione può vedere dell'ambiente
operativo (l'albero dei processi, la rete, gli ID utente ed i file system montati)
• Cgroups del kernel: isolamento delle risorse (CPU, memoria, I/O a blocchi, rete)
• Libreria libcontainer: uso delle funzionalità di virtualizzazione del kernel
Docker in pillole
11. 11
Con Windows Server 2016 Docker è disponibile nativamente anche su Windows
I principi di base sono gli stessi di Linux: accesso limitato e controllato alle risorse del
kernel
Un container Linux NON può essere ospitato su un host Windows e viceversa: i
kernel sono differenti, le API utilizzate dal container sono specifiche per i due sistemi
operativi (API Windows e API Linux)
Un client Docker è in grado di supportare entrambe le API: un solo prodotto per
enrambi i sistemi operative
I container Windows sono di due tipi
– Windows Container: i container condividono il kernel con il sistema operativo host
(Windows Server 2016), altamente efficienti, ma adatti per ambienti trusted
– Hyper-V Container: ad ogni container è assegnato un kernel virtualizzato e le
relative risorse (CPU, memoria, …), meno efficienti, ma isolamento totale
Docker for Windows
12. 12
Sviluppato inizialmente come progetto interno in dotCloud, una
società che si occupa di PaaS (Platform as a Service)
Pubblicato su github come open source nel Marzo del 2013
Nel Marzo del 2014 viene rilasciata la sua principale libreria
libcontainer, sviluppata in Go
Ad oggi l’adozione di Docker da parte dei maggiori player di
PaaS e cloud è praticamente totale: Amazon Web Services,
Google Cloud Platform, IBM Bluemix, Microsoft Azure,
OpenStack Nova, Vagrant, VMware vSphere, …
Fra i maggiori contributori del progetto ci sono: il team di
Docker, Cisco, Google, Huawei, IBM, Microsoft, Red Hat
Docker, un po’ di storia
17. 17
L’ecosistema Docker è composto da una serie di
elementi
–Docker Engine
–Docker Machine
–Docker Compose
–Docker Swarm
–Docker Hub
Docker Container e dintorni
23. 23
Modello OASIS
– Servizio: A mechanism to enable access to one or more capabilities, where the
access is provided using a prescribed interface and is exercised consistent with
constraints and policies as specified by the service description
Generalmente topologicamente distribuite
– Accesso ai servizi è remoto (REST, SOAP, AMQP, ...)
Pro
– Scalabilità
– Disaccoppiamento
– Controllo dello sviluppo, testing, deployment
– Riscrittura invece che manutenzione
Contro
– Gestione dei contratti
– Accesso remoto
Architetture basate sui servizi
24. 24
Contratto
– Service-based: contratto gestito dal solo servizio
– Consumer-driven: contratto gestito in collborazione fra servizio e consumer
– Attenzione al versioning
Disponibilità
– Capacità di un servizio di essere raggiunto (connettività)
Responsività
– Capacità di un servizio di rispondere alla chiamata
Sicurezza
– Approccio Microservices: sicurezza gestita indipendentemente da ogni servizio
senza mediazione di un middleware (altrimenti ci sarebbe troppo "traffico" e la
sicurezza uscirebbe dal buonded context introducendo troppe dipendenze esterne)
– Approccio tradizionale: sicurezza gestita tramite middleware infrastrutturale
Transazioni
Architetture basate sui servizi: ATTENZIONE
Blog Mauro Servienti
http://blogs.ugidotnet.org/topics
25. 25
Transazioni tradizionali
–ACID (atomicity, consistency, isolation, durability): in un contesto
transazionale se una azione fallisce, fallisce l’intera transazione e si esegue
un rollback
In una architettura distribuita è praticamente impossibile mantenere un
contesto transazionale: in genere una singola richiesta di business viene
gestita da n servizi
Transazioni distribuite
–BASE (basic availability, soft state, eventual consistency): workflow, saga
Nel caso in cui sia necessario assicurare ACID a livello di business la
soluzione è rendere i servizi più "grossi" al fine di includere tutte le
operazioni coinvolte
Per rafforzare BASE è possibile utilizzare gli eventi
–Miglior tracciamento di che cosa sta accadendo nel sistema al costo di una
maggiore complessità di gestione della messaggistica
Architetture basate sui servizi: Transazioni
26. 26
Limitata tassonomia dei servizi
– Servizi Funzionali
– Servizi di Infrastruttura
• non esposti verso l’esterno
• Gestiti come servizi condivisi privati ad uso dei Servizi Funzionali
Tassonomia: Microservices
27. 27
Ampia tassonomia dei servizi
– Servizi di Business
– Servizi di Infrastruttura
– Servizi Enterprise
– Servizi Applicativi
Tassonomia: SOA
28. 28
Granularità
Microservices SOA
Una sola completa funzionalità di
business
Dimensione molto piccola
Necessità di comunicazione diretta
fra servizi
Difficoltà di implementazione
transazioni tradizionali
Una intera funzionalità di business
implementata da più servizi
Dimensioni variabili fino anche ad
un intero sotto Sistema
Comunicazione fra servizi tramite
middleware (ESB)
Possibilità di utilizzo transazioni
tradizionali
“Start with a small number o larger services first”
Sam Newman
Building Microservices, O’Really
29. 29
Architetture di riferimento
Microservices
– Domain Driven Design (DDD)
– Bounded Context
– Dipendenze ridotte al minimo
(infrastruttura)
– Service chaining (attenzione a
catene troppo lunghe)
SOA
– Service component sharing
– Enterprise services
– Dipendenze gestite introducendo
altri livelli di servizi
– Service orchestration
30. 30
Interoperabilità fra servizi
Microservices
– REST
– Accesso diretto al servizio
– Semplificazione dei protocolli e
delle implementazioni
SOA
– REST, AMQP, SOAP, …
– Accesso ai servizi tramite
middleware (ESB)
– Protocol transformation, Message
transformation, Contract
decoupling