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

The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
Larry Smarr
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
Andrey Yasko
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
Stephanie Beckett
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Bert Blevins
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
Awais Yaseen
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
Bert Blevins
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
Matthew Sinclair
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 

Recently uploaded (20)

The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 

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