SlideShare a Scribd company logo
agile microservices
@scaibo
By
Ciro Donato Caiazzo
AL Lavoro International
Milano, November 16, 2016
about me
CIRO DONATO CAIAZZO
CTO & Software Architect @SCAIBO
SCAI Consulting s.r.l.
ciro.caiazzo@scai-consulting.grupposcai.it
cd.caiazzo@gmail.com
@CyrusD87
https://www.linkedin.com/in/ciro-donato-caiazzo-35a38a32
in the next 40 minutes I will talk about...
 microservices @scaibo
 the sometimes (evil) monolith
 building microservices
 cloud computing solutions
 internet of things
microservices @scaibo
the sometimes (evil) monolith
the sometimes (evil) monolith
browser
load
balancer
User interface
Business logic
Persistence database
the sometimes (evil) monolith : Features
 Simple to develop, test, deploy, scale… for small applications
 Application puts all its functionality into a single process
 Application scales by replicating the monolith on multiple servers
if an application becomes large and complex?
the sometimes (evil) monolith
browser
load
balancer
User interface
Business logic
Persistence
database
User interface
Business logic
Persistence
…
a real case:
Real estate management platform (I)
browser
load
balancer
User interface
property
module
Persistence database
a real case:
Real estate management platform (II)
browser
load
balancer
User interface
property
module
Persistence database
facility
module
a real case:
Real estate management platform (III)
browser
load
balancer
User interface
property
module
Persistence database
facility
module
engineering
module
a real case:
Real estate management platform (then?)
browser
load
balancer
User interface
property
module
Persistence database
facility
module
engineering
module
then? Problem!
 possible constraints on technology stack
 one change can affect the entire system
 one change in one component requires the deploy of the entire system
 difficult integration between cross-functional teams
 few release (more UI tests & QA work)
building microservices
decomposing applications into services
 Divide an application in components
 Each component is built as a service
 Each service is a unit of software that is indipendently upgradable and deployable
a real case:
Real estate management in microservices
User interface
property
service
facility
service
engineering
service
database
database
database
a real case:
Real estate management in microservices
property UI
property
service
facility
service
engineering
service
database
database
database
facility UI
engineering UI
microservices: Rules
 a service should have a small set of responsibility
 SINGLE RESPONSIBILITY PRINCIPLE
 a service should be developed in small time (max 2 weeks)
 a service should be isolated from others (isolation for storage and deploy environment)
microservices: Rules
 a service should model a single and well defined part of the business domain
 DOMAIN DRIVEN DESIGN
microservices: Benefits
 Simplicity
 each service is relative small
 it is simple for a developer to understand the business logic
 a service can eventually be redesigned very quickly.
microservices: Benefits
 Independence
 each service can be released without affect the others
 problem on a service (like memory leak) does not affect the others
 Independent deploy
microservices: Benefits
 Speed
 release early & release often
 less coordination between developers
 cross-functional teams can work in parallel reducing the integration problems
microservices: Benefits
o a service can be built with different technologies, in terms of
 platform & programming languages (.NET, Java, NodeJS, …)
 Database (Oracle, Sql Server, MongoDb, Cassandra, …)
 …but it is not true for the communication protocol : HTTP, AMQP, MQTT
microservices: Benefits
 Automation
 each service has a build on the Continuous integration server
 it is more simple to automate the continuous delivery & deploy
 blue green deploy for each service
a real case:
Real estate management in microservices
User interface
property
service
facility
service
engineering
service
database
database
database
a real case:
Real estate management in microservices
User interface
property
service
facility
service
engineering
service
database
database
databaseHow to manage
interactions?
a real case:
Real estate management in microservices
User interface
property
service
facility
service
engineering
service
database
database
database
Between clients & services
REST
(HTTP)
REST
(HTTP)
REST
(HTTP)
a real case:
Real estate management in microservices
property
service
facility
service
engineering
serviceBetween services
REST
(HTTP)
REST
(HTTP)
REST
(HTTP)
a real case:
Real estate management in microservices
property
service
facility
service
engineering
serviceBetween services
AMQP
microservices: a more complex scenario
User interface
facility
service
property
service
engineering
service
REST
(HTTP)
REST
(HTTP)
REST
(HTTP)
AMQP
AMQP
microservices: a more complex scenario
 Granularity
 each client should know each service in details
 Localization
 each client should know the location of each service
 Complexity
 business logic to build and manage more complex objects at the client level
API Gateway pattern
User interface
facility
service
property
service
engineering
service
REST
(HTTP)
REST
(HTTP)
AMPQ
AMQP
AMQP
API
Gateway
REST
(HTTP)
mobile interface MQTT
AMQP
API Gateway
 Benefits
 hide to the clients how services are structured
 encapsulation of multiple requests for multiple services
 API optimization for each client
 Drawbacks
 increase in complexity
 require an additional network hop
cloud computing solutions
cloud computing solutions
 Software as a Service (SAAS)
 Platform as a Service (PAAS)
 Infrastructure as a Service (IAAS)
 Container as a Service (CAAS)
cloud computing solutions
 Software as a Service (SAAS)
 Platform as a Service (PAAS)
 Infrastructure as a Service (IAAS)
 Container as a Service (CAAS)
cloud computing solutions
 Software as a Service (SAAS)
 Platform as a Service (PAAS)
 Infrastructure as a Service (IAAS)
 Container as a Service (CAAS)
cloud computing solutions
 Software as a Service (SAAS)
 Platform as a Service (PAAS)
 Infrastructure as a Service (IAAS)
 Container as a Service (CAAS)
cloud computing solutions
 Software as a Service (SAAS)
 Platform as a Service (PAAS)
 Infrastructure as a Service (IAAS)
 Container as a Service (CAAS)
docker: Build, Ship, Run
 A CAAS technology to build lightweight containers
how does Docker work?
Server
Host OS
Hypervisor
Guest OS Guest OS
Middleware Middleware
AppApp
Server
Host OS
Docker engine
Docker image Docker image
Virtualization Container
how does Docker work?
 Build a container reading the instructions in Dockerfile
 Configure and orchestrate one or more containers in docker-compose
convox
 An open source tool to deploying, managing and monitoring applications in cloud infrastructure
 https://convox.com
 https://github.com/convox/rack
 https://convox-public.slack.com/
convox: Rack
 A rack is a structure to create and manage all the infrastructure needed to run and monitor your
applications
 In a rack you can create and define each service to build your microservices using docker
internet of Things
everything is connected
IoT architecture
IoT
Gateway
API Gateway
property
service
facility
service
engineering service
AMQP
device
device
gateway
MQTT
HTTP
AMQP
WebSocket
Questions?
agile microservices @scaibo
Thank you

More Related Content

What's hot

Microservices in Action
Microservices in ActionMicroservices in Action
Microservices in Action
Bhagwat Kumar
 
Microservices (msa) insights with comments
Microservices (msa) insights with commentsMicroservices (msa) insights with comments
Microservices (msa) insights with comments
Lior Bar-On
 
Story of Code Sprinters
Story of Code SprintersStory of Code Sprinters
Story of Code Sprinters
Adam Byrtek
 
Will the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir ZukerWill the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir Zuker
CodeValue
 
Docker and Microservice
Docker and MicroserviceDocker and Microservice
Docker and Microservice
Samuel Chow
 
Architectures and Alternatives
Architectures and AlternativesArchitectures and Alternatives
Architectures and Alternatives
Eberhard Wolff
 
Enterprise-Ready Private and Hybrid Cloud Computing Today
Enterprise-Ready Private and Hybrid Cloud Computing TodayEnterprise-Ready Private and Hybrid Cloud Computing Today
Enterprise-Ready Private and Hybrid Cloud Computing Today
RightScale
 
Hybrid Cloud Networking
Hybrid Cloud NetworkingHybrid Cloud Networking
Hybrid Cloud Networking
SVForum Cloud SIG
 
Running containerized application in AWS ECS
Running containerized application in AWS ECSRunning containerized application in AWS ECS
Running containerized application in AWS ECS
DevOps Indonesia
 
Windows azure mobile services from start to rest
Windows azure mobile services from start to restWindows azure mobile services from start to rest
Windows azure mobile services from start to rest
Aidan Casey
 
Nodifying the Enterprise - Prince Soni, TO THE NEW
Nodifying the Enterprise - Prince Soni, TO THE NEWNodifying the Enterprise - Prince Soni, TO THE NEW
Nodifying the Enterprise - Prince Soni, TO THE NEW
NodejsFoundation
 
CI/CD on Google Cloud Platform
CI/CD on Google Cloud PlatformCI/CD on Google Cloud Platform
CI/CD on Google Cloud Platform
DevOps Indonesia
 
Evolutionary architecture guiding principles
Evolutionary architecture guiding principlesEvolutionary architecture guiding principles
Evolutionary architecture guiding principles
Aidan Casey
 
Java vs javascript (XPages)
Java vs javascript (XPages)Java vs javascript (XPages)
Java vs javascript (XPages)
Andrew Barickman
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice
Kasun Indrasiri
 
Secure your Application with Google cloud armor
Secure your Application with Google cloud armorSecure your Application with Google cloud armor
Secure your Application with Google cloud armor
DevOps Indonesia
 
Securing Your Database Dynamic DB Credentials
Securing Your Database  Dynamic DB CredentialsSecuring Your Database  Dynamic DB Credentials
Securing Your Database Dynamic DB Credentials
DevOps Indonesia
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
André Faria Gomes
 
Java vs. Java Script for enterprise web applications - Chris Bailey
Java vs. Java Script for enterprise web applications - Chris BaileyJava vs. Java Script for enterprise web applications - Chris Bailey
Java vs. Java Script for enterprise web applications - Chris Bailey
JAXLondon_Conference
 
Agile architectures in a modern cloud-native ecosystem
Agile architectures in a modern cloud-native ecosystemAgile architectures in a modern cloud-native ecosystem
Agile architectures in a modern cloud-native ecosystem
Turja Narayan Chaudhuri
 

What's hot (20)

Microservices in Action
Microservices in ActionMicroservices in Action
Microservices in Action
 
Microservices (msa) insights with comments
Microservices (msa) insights with commentsMicroservices (msa) insights with comments
Microservices (msa) insights with comments
 
Story of Code Sprinters
Story of Code SprintersStory of Code Sprinters
Story of Code Sprinters
 
Will the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir ZukerWill the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir Zuker
 
Docker and Microservice
Docker and MicroserviceDocker and Microservice
Docker and Microservice
 
Architectures and Alternatives
Architectures and AlternativesArchitectures and Alternatives
Architectures and Alternatives
 
Enterprise-Ready Private and Hybrid Cloud Computing Today
Enterprise-Ready Private and Hybrid Cloud Computing TodayEnterprise-Ready Private and Hybrid Cloud Computing Today
Enterprise-Ready Private and Hybrid Cloud Computing Today
 
Hybrid Cloud Networking
Hybrid Cloud NetworkingHybrid Cloud Networking
Hybrid Cloud Networking
 
Running containerized application in AWS ECS
Running containerized application in AWS ECSRunning containerized application in AWS ECS
Running containerized application in AWS ECS
 
Windows azure mobile services from start to rest
Windows azure mobile services from start to restWindows azure mobile services from start to rest
Windows azure mobile services from start to rest
 
Nodifying the Enterprise - Prince Soni, TO THE NEW
Nodifying the Enterprise - Prince Soni, TO THE NEWNodifying the Enterprise - Prince Soni, TO THE NEW
Nodifying the Enterprise - Prince Soni, TO THE NEW
 
CI/CD on Google Cloud Platform
CI/CD on Google Cloud PlatformCI/CD on Google Cloud Platform
CI/CD on Google Cloud Platform
 
Evolutionary architecture guiding principles
Evolutionary architecture guiding principlesEvolutionary architecture guiding principles
Evolutionary architecture guiding principles
 
Java vs javascript (XPages)
Java vs javascript (XPages)Java vs javascript (XPages)
Java vs javascript (XPages)
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice
 
Secure your Application with Google cloud armor
Secure your Application with Google cloud armorSecure your Application with Google cloud armor
Secure your Application with Google cloud armor
 
Securing Your Database Dynamic DB Credentials
Securing Your Database  Dynamic DB CredentialsSecuring Your Database  Dynamic DB Credentials
Securing Your Database Dynamic DB Credentials
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Java vs. Java Script for enterprise web applications - Chris Bailey
Java vs. Java Script for enterprise web applications - Chris BaileyJava vs. Java Script for enterprise web applications - Chris Bailey
Java vs. Java Script for enterprise web applications - Chris Bailey
 
Agile architectures in a modern cloud-native ecosystem
Agile architectures in a modern cloud-native ecosystemAgile architectures in a modern cloud-native ecosystem
Agile architectures in a modern cloud-native ecosystem
 

Similar to agile microservices @scaibo

Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyond
Ugo Landini
 
Microservizi e container Docker in produzione: strumenti e consigli
Microservizi e container Docker in produzione: strumenti e consigliMicroservizi e container Docker in produzione: strumenti e consigli
Microservizi e container Docker in produzione: strumenti e consigli
Amazon Web Services
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
Markus Eisele
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
Markus Eisele
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...
Kim Clark
 
Battery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
Battery Ventures: Simulating and Visualizing Large Scale Cassandra DeploymentsBattery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
Battery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
DataStax Academy
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
Araf Karsh Hamid
 
Building microservices with azure functions
Building microservices with azure functionsBuilding microservices with azure functions
Building microservices with azure functions
Justin Maurer
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Araf Karsh Hamid
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
Rakesh Gujjarlapudi
 
Serverless is FaaS-tastic - All Things Open Meet-up
Serverless is FaaS-tastic - All Things Open Meet-upServerless is FaaS-tastic - All Things Open Meet-up
Serverless is FaaS-tastic - All Things Open Meet-up
Mark Hinkle
 
Cloud computing
Cloud computingCloud computing
Cloud computing
Siddiq Abu Bakkar
 
Architecting Microservices in .Net
Architecting Microservices in .NetArchitecting Microservices in .Net
Architecting Microservices in .Net
Richard Banks
 
Container Days: Architecting Modern Apps on AWS
Container Days: Architecting Modern Apps on AWSContainer Days: Architecting Modern Apps on AWS
Container Days: Architecting Modern Apps on AWS
Tara Walker
 
Microservices - Hitchhiker's guide to cloud native applications
Microservices - Hitchhiker's guide to cloud native applicationsMicroservices - Hitchhiker's guide to cloud native applications
Microservices - Hitchhiker's guide to cloud native applications
Stijn Van Den Enden
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
Dun & Bradstreet Cloud Innovation Center
 
Docker - Scripting the PayPal Cloud
Docker - Scripting the PayPal CloudDocker - Scripting the PayPal Cloud
Docker - Scripting the PayPal Cloud
Abraham Hoffman
 
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native MiddlewareTrends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
Kai Wähner
 
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
Ludovic Piot
 
Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...
Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...
Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...
Kai Wähner
 

Similar to agile microservices @scaibo (20)

Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyond
 
Microservizi e container Docker in produzione: strumenti e consigli
Microservizi e container Docker in produzione: strumenti e consigliMicroservizi e container Docker in produzione: strumenti e consigli
Microservizi e container Docker in produzione: strumenti e consigli
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...
 
Battery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
Battery Ventures: Simulating and Visualizing Large Scale Cassandra DeploymentsBattery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
Battery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
Building microservices with azure functions
Building microservices with azure functionsBuilding microservices with azure functions
Building microservices with azure functions
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
 
Serverless is FaaS-tastic - All Things Open Meet-up
Serverless is FaaS-tastic - All Things Open Meet-upServerless is FaaS-tastic - All Things Open Meet-up
Serverless is FaaS-tastic - All Things Open Meet-up
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Architecting Microservices in .Net
Architecting Microservices in .NetArchitecting Microservices in .Net
Architecting Microservices in .Net
 
Container Days: Architecting Modern Apps on AWS
Container Days: Architecting Modern Apps on AWSContainer Days: Architecting Modern Apps on AWS
Container Days: Architecting Modern Apps on AWS
 
Microservices - Hitchhiker's guide to cloud native applications
Microservices - Hitchhiker's guide to cloud native applicationsMicroservices - Hitchhiker's guide to cloud native applications
Microservices - Hitchhiker's guide to cloud native applications
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
 
Docker - Scripting the PayPal Cloud
Docker - Scripting the PayPal CloudDocker - Scripting the PayPal Cloud
Docker - Scripting the PayPal Cloud
 
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native MiddlewareTrends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
 
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
 
Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...
Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...
Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...
 

Recently uploaded

AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 

Recently uploaded (20)

AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 

agile microservices @scaibo

  • 1. agile microservices @scaibo By Ciro Donato Caiazzo AL Lavoro International Milano, November 16, 2016
  • 2. about me CIRO DONATO CAIAZZO CTO & Software Architect @SCAIBO SCAI Consulting s.r.l. ciro.caiazzo@scai-consulting.grupposcai.it cd.caiazzo@gmail.com @CyrusD87 https://www.linkedin.com/in/ciro-donato-caiazzo-35a38a32
  • 3. in the next 40 minutes I will talk about...  microservices @scaibo  the sometimes (evil) monolith  building microservices  cloud computing solutions  internet of things
  • 6. the sometimes (evil) monolith browser load balancer User interface Business logic Persistence database
  • 7. the sometimes (evil) monolith : Features  Simple to develop, test, deploy, scale… for small applications  Application puts all its functionality into a single process  Application scales by replicating the monolith on multiple servers if an application becomes large and complex?
  • 8. the sometimes (evil) monolith browser load balancer User interface Business logic Persistence database User interface Business logic Persistence …
  • 9. a real case: Real estate management platform (I) browser load balancer User interface property module Persistence database
  • 10. a real case: Real estate management platform (II) browser load balancer User interface property module Persistence database facility module
  • 11. a real case: Real estate management platform (III) browser load balancer User interface property module Persistence database facility module engineering module
  • 12. a real case: Real estate management platform (then?) browser load balancer User interface property module Persistence database facility module engineering module
  • 13. then? Problem!  possible constraints on technology stack  one change can affect the entire system  one change in one component requires the deploy of the entire system  difficult integration between cross-functional teams  few release (more UI tests & QA work)
  • 15. decomposing applications into services  Divide an application in components  Each component is built as a service  Each service is a unit of software that is indipendently upgradable and deployable
  • 16. a real case: Real estate management in microservices User interface property service facility service engineering service database database database
  • 17. a real case: Real estate management in microservices property UI property service facility service engineering service database database database facility UI engineering UI
  • 18. microservices: Rules  a service should have a small set of responsibility  SINGLE RESPONSIBILITY PRINCIPLE  a service should be developed in small time (max 2 weeks)  a service should be isolated from others (isolation for storage and deploy environment)
  • 19. microservices: Rules  a service should model a single and well defined part of the business domain  DOMAIN DRIVEN DESIGN
  • 20. microservices: Benefits  Simplicity  each service is relative small  it is simple for a developer to understand the business logic  a service can eventually be redesigned very quickly.
  • 21. microservices: Benefits  Independence  each service can be released without affect the others  problem on a service (like memory leak) does not affect the others  Independent deploy
  • 22. microservices: Benefits  Speed  release early & release often  less coordination between developers  cross-functional teams can work in parallel reducing the integration problems
  • 23. microservices: Benefits o a service can be built with different technologies, in terms of  platform & programming languages (.NET, Java, NodeJS, …)  Database (Oracle, Sql Server, MongoDb, Cassandra, …)  …but it is not true for the communication protocol : HTTP, AMQP, MQTT
  • 24. microservices: Benefits  Automation  each service has a build on the Continuous integration server  it is more simple to automate the continuous delivery & deploy  blue green deploy for each service
  • 25. a real case: Real estate management in microservices User interface property service facility service engineering service database database database
  • 26. a real case: Real estate management in microservices User interface property service facility service engineering service database database databaseHow to manage interactions?
  • 27. a real case: Real estate management in microservices User interface property service facility service engineering service database database database Between clients & services REST (HTTP) REST (HTTP) REST (HTTP)
  • 28. a real case: Real estate management in microservices property service facility service engineering serviceBetween services REST (HTTP) REST (HTTP) REST (HTTP)
  • 29. a real case: Real estate management in microservices property service facility service engineering serviceBetween services AMQP
  • 30. microservices: a more complex scenario User interface facility service property service engineering service REST (HTTP) REST (HTTP) REST (HTTP) AMQP AMQP
  • 31. microservices: a more complex scenario  Granularity  each client should know each service in details  Localization  each client should know the location of each service  Complexity  business logic to build and manage more complex objects at the client level
  • 32. API Gateway pattern User interface facility service property service engineering service REST (HTTP) REST (HTTP) AMPQ AMQP AMQP API Gateway REST (HTTP) mobile interface MQTT AMQP
  • 33. API Gateway  Benefits  hide to the clients how services are structured  encapsulation of multiple requests for multiple services  API optimization for each client  Drawbacks  increase in complexity  require an additional network hop
  • 35. cloud computing solutions  Software as a Service (SAAS)  Platform as a Service (PAAS)  Infrastructure as a Service (IAAS)  Container as a Service (CAAS)
  • 36. cloud computing solutions  Software as a Service (SAAS)  Platform as a Service (PAAS)  Infrastructure as a Service (IAAS)  Container as a Service (CAAS)
  • 37. cloud computing solutions  Software as a Service (SAAS)  Platform as a Service (PAAS)  Infrastructure as a Service (IAAS)  Container as a Service (CAAS)
  • 38. cloud computing solutions  Software as a Service (SAAS)  Platform as a Service (PAAS)  Infrastructure as a Service (IAAS)  Container as a Service (CAAS)
  • 39. cloud computing solutions  Software as a Service (SAAS)  Platform as a Service (PAAS)  Infrastructure as a Service (IAAS)  Container as a Service (CAAS)
  • 40. docker: Build, Ship, Run  A CAAS technology to build lightweight containers
  • 41. how does Docker work? Server Host OS Hypervisor Guest OS Guest OS Middleware Middleware AppApp Server Host OS Docker engine Docker image Docker image Virtualization Container
  • 42. how does Docker work?  Build a container reading the instructions in Dockerfile  Configure and orchestrate one or more containers in docker-compose
  • 43. convox  An open source tool to deploying, managing and monitoring applications in cloud infrastructure  https://convox.com  https://github.com/convox/rack  https://convox-public.slack.com/
  • 44. convox: Rack  A rack is a structure to create and manage all the infrastructure needed to run and monitor your applications  In a rack you can create and define each service to build your microservices using docker
  • 47. IoT architecture IoT Gateway API Gateway property service facility service engineering service AMQP device device gateway MQTT HTTP AMQP WebSocket