SlideShare ist ein Scribd-Unternehmen logo
1 von 20
CONSOLIDATING SERVICES
WITH MIDDLEWARE
CHRISTIAN HORSDAL
HORSDAL CONSULT
@CHR_HORSDAL
Flexible
Componentized
Reusable
Testable
STUFF FROM THE REAL WORLD
5
MICROSERVICES
WHY MICROSERVICES?
• ENABLES CONTINUOUS DELIVERY
• HIGHLY MAINTAINABLE SERVICES
• EFFICIENT DEVELOPER WORKFLOW
• ROBUST BY DESIGN
• FLEXIBLE SCALABILITY
ALL HTTP
Listing Store
Dealer App
Partner site
Vertical
Classifieds
site
Classifieds site
Vertical
Listing store
Search index
Search
index
ALL HTTP
WHEN CAN YOU USE MICROSERVICE?
AUTOMATED DEPLOYS
FAST PROVISIONING
AUTOMATED BUILDS
AUTOMATED TESTS
LOGGING AND MONITORING
CLOSE DEV-OPS RELATIONSHIP
WEB APIS AND MIDDLEWARE
WEB APIS HANDLE HTTP REQUESTS
12
ASP.NET CORE: PIPELINE
13
Kestrel Application
ASP.NET CORE: PIPELINE
• USE PIPES AND FILTERS
• A CONTEXT IS PIPED THROUGH MIDDLEWARE
14
ASP.NET CORE: PIPELINE
15
Kestrel
Throttling
Middleware
OAuth
Middleware
Application
MIDDLEWARE
• MIDDLEWARE TRANSFORMS THE REQUEST AND RESPONSE
• TAKES A CONTEXT IN
• CAN CALL NEXT STEP IN PIPELINE
• OR NOT
• UNIFORM INTERFACE
16
THINGS YOU MIGHT DO IN THE PIPELINE
• OPEN & DISPOSE RESOURCES
• LOGGING
• AUTHENTICATION
• AUTHORIZATION
• QUICK MONITORING ENDPOINTS
• SANITIZE INPUTS
• CONTENT NEGOTIATION
• CORS
17
THINGS YOU MIGHT DO IN THE PIPELINE
• OPEN & DISPOSE RESOURCES
• LOGGING
• AUTHENTICATION
• AUTHORIZATION
• QUICK MONITORING ENDPOINTS
• SANITIZE INPUTS
• CONTENT NEGOTIATION
• CORS
18
Cross-cutting concerns
Re-use
Test separately
Update separately
Distribute separately
A MICROSERVICE PLATFORM
Kestrel
Correlation Id
Request
Logging
Performance
Logging
Monitoring
endpoints
Authentication
Application
CODE
Flexible
Componentized
Reusable
Testable
ABOUT ME
Christian Horsdal
Independent Consultant
www.horsdal-consult.dk
c.horsdal@gmail.com
@chr_horsdal

Weitere ähnliche Inhalte

Was ist angesagt?

3 Ways to Automate App Deployments with NGINX
3 Ways to Automate App Deployments with NGINX3 Ways to Automate App Deployments with NGINX
3 Ways to Automate App Deployments with NGINX
NGINX, Inc.
 

Was ist angesagt? (20)

Cloudsolutionday 2016: Docker & FAAS at getvero.com
Cloudsolutionday 2016: Docker & FAAS at getvero.comCloudsolutionday 2016: Docker & FAAS at getvero.com
Cloudsolutionday 2016: Docker & FAAS at getvero.com
 
Reducing MTTR and False Escalations: Event Correlation at LinkedIn
Reducing MTTR and False Escalations: Event Correlation at LinkedInReducing MTTR and False Escalations: Event Correlation at LinkedIn
Reducing MTTR and False Escalations: Event Correlation at LinkedIn
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 
Micro Services Architecture
Micro Services ArchitectureMicro Services Architecture
Micro Services Architecture
 
NGINX Amplify: Monitoring NGINX with Advanced Filters and Custom Dashboards
NGINX Amplify: Monitoring NGINX with Advanced Filters and Custom DashboardsNGINX Amplify: Monitoring NGINX with Advanced Filters and Custom Dashboards
NGINX Amplify: Monitoring NGINX with Advanced Filters and Custom Dashboards
 
3 Ways to Automate App Deployments with NGINX
3 Ways to Automate App Deployments with NGINX3 Ways to Automate App Deployments with NGINX
3 Ways to Automate App Deployments with NGINX
 
What's new in ASP.NET vNext
What's new in ASP.NET vNextWhat's new in ASP.NET vNext
What's new in ASP.NET vNext
 
Manage your APIs and Microservices with an API Gateway
Manage your APIs and Microservices with an API GatewayManage your APIs and Microservices with an API Gateway
Manage your APIs and Microservices with an API Gateway
 
PP_Eric_Gandt
PP_Eric_GandtPP_Eric_Gandt
PP_Eric_Gandt
 
Async streams
Async streamsAsync streams
Async streams
 
Migration from ASP.NET MVC to ASP.NET Core
Migration from ASP.NET MVC to ASP.NET CoreMigration from ASP.NET MVC to ASP.NET Core
Migration from ASP.NET MVC to ASP.NET Core
 
Zend con eu keynote (publish)
Zend con eu keynote (publish)Zend con eu keynote (publish)
Zend con eu keynote (publish)
 
Empowering Publishers - Hosting Provider Selection Process - May-15-2013
Empowering Publishers - Hosting Provider Selection Process - May-15-2013Empowering Publishers - Hosting Provider Selection Process - May-15-2013
Empowering Publishers - Hosting Provider Selection Process - May-15-2013
 
Monitoring microservices platform
Monitoring microservices platformMonitoring microservices platform
Monitoring microservices platform
 
Micro Services - Small is Beautiful
Micro Services - Small is BeautifulMicro Services - Small is Beautiful
Micro Services - Small is Beautiful
 
Developing Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring CloudDeveloping Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring Cloud
 
Site24x7 Plugins - Monitor your entire server stack
Site24x7 Plugins - Monitor your entire server stackSite24x7 Plugins - Monitor your entire server stack
Site24x7 Plugins - Monitor your entire server stack
 
Microservices: next-steps
Microservices: next-stepsMicroservices: next-steps
Microservices: next-steps
 
So you think you can scale
So you think you can scaleSo you think you can scale
So you think you can scale
 
Developing Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's GuideDeveloping Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's Guide
 

Andere mochten auch

Ibm services 2011 brochure
Ibm services 2011 brochureIbm services 2011 brochure
Ibm services 2011 brochure
None
 
Best Practices Sales Cycle
Best Practices Sales CycleBest Practices Sales Cycle
Best Practices Sales Cycle
scottymiller
 
Cge leadership summit ibm presentation public sector analytics
Cge leadership summit   ibm presentation public sector analyticsCge leadership summit   ibm presentation public sector analytics
Cge leadership summit ibm presentation public sector analytics
IBMGovernmentCA
 
Service Strategy Service Offering Slideshare
Service Strategy Service Offering SlideshareService Strategy Service Offering Slideshare
Service Strategy Service Offering Slideshare
Kenneth Jones
 

Andere mochten auch (20)

Middleware
MiddlewareMiddleware
Middleware
 
Wireless Sensor Networks ,Middleware and Programming abstractions
Wireless Sensor Networks ,Middleware and Programming abstractionsWireless Sensor Networks ,Middleware and Programming abstractions
Wireless Sensor Networks ,Middleware and Programming abstractions
 
Sensor Network
Sensor NetworkSensor Network
Sensor Network
 
Ibm services 2011 brochure
Ibm services 2011 brochureIbm services 2011 brochure
Ibm services 2011 brochure
 
Business Analytics for Government
Business Analytics for GovernmentBusiness Analytics for Government
Business Analytics for Government
 
Security Trends and Risk Mitigation for the Public Sector
Security Trends and Risk Mitigation for the Public SectorSecurity Trends and Risk Mitigation for the Public Sector
Security Trends and Risk Mitigation for the Public Sector
 
YASH Technologies at ASUG Minnesota chapter meeting
YASH Technologies at ASUG Minnesota chapter meetingYASH Technologies at ASUG Minnesota chapter meeting
YASH Technologies at ASUG Minnesota chapter meeting
 
Unlocking The Potential Of Frontline Managers Exec Briefing
Unlocking The Potential Of Frontline Managers Exec BriefingUnlocking The Potential Of Frontline Managers Exec Briefing
Unlocking The Potential Of Frontline Managers Exec Briefing
 
Oracle fusion middleware services & solutions at yash
Oracle fusion middleware services & solutions at yashOracle fusion middleware services & solutions at yash
Oracle fusion middleware services & solutions at yash
 
Best Practices Sales Cycle
Best Practices Sales CycleBest Practices Sales Cycle
Best Practices Sales Cycle
 
Accenture path to success game
Accenture path to success gameAccenture path to success game
Accenture path to success game
 
Cge leadership summit ibm presentation public sector analytics
Cge leadership summit   ibm presentation public sector analyticsCge leadership summit   ibm presentation public sector analytics
Cge leadership summit ibm presentation public sector analytics
 
IT and ITeS Sectore Report - January 2017
IT and ITeS Sectore Report - January 2017IT and ITeS Sectore Report - January 2017
IT and ITeS Sectore Report - January 2017
 
New forms of Value Creation Tedx-Stenden 2014
New forms of Value Creation Tedx-Stenden 2014New forms of Value Creation Tedx-Stenden 2014
New forms of Value Creation Tedx-Stenden 2014
 
IBM Managed Services Overview Nashville
IBM Managed Services Overview   NashvilleIBM Managed Services Overview   Nashville
IBM Managed Services Overview Nashville
 
IBM Security Intelligence Juin-2016
IBM Security Intelligence Juin-2016IBM Security Intelligence Juin-2016
IBM Security Intelligence Juin-2016
 
Service Strategy Service Offering Slideshare
Service Strategy Service Offering SlideshareService Strategy Service Offering Slideshare
Service Strategy Service Offering Slideshare
 
TEDx talk by Deepak Goel
TEDx talk by Deepak GoelTEDx talk by Deepak Goel
TEDx talk by Deepak Goel
 
Middleware
MiddlewareMiddleware
Middleware
 
The business value of managed services: Findings from IDC research sponsored...
The business value of managed services:  Findings from IDC research sponsored...The business value of managed services:  Findings from IDC research sponsored...
The business value of managed services: Findings from IDC research sponsored...
 

Ähnlich wie Consolidating services with middleware - NDC London 2017

Sneak Peek: Continuent Tungsten 3.0
Sneak Peek: Continuent Tungsten 3.0Sneak Peek: Continuent Tungsten 3.0
Sneak Peek: Continuent Tungsten 3.0
Continuent
 
20141210 - Microservice Container
20141210 - Microservice Container20141210 - Microservice Container
20141210 - Microservice Container
Jamie (Taka) Wang
 
API’s and Micro Services 0.5
API’s and Micro Services 0.5API’s and Micro Services 0.5
API’s and Micro Services 0.5
Richard Hudson
 

Ähnlich wie Consolidating services with middleware - NDC London 2017 (20)

Sneak Peek: Continuent Tungsten 3.0
Sneak Peek: Continuent Tungsten 3.0Sneak Peek: Continuent Tungsten 3.0
Sneak Peek: Continuent Tungsten 3.0
 
Graph Day 2017 Spring Boot
Graph Day 2017 Spring BootGraph Day 2017 Spring Boot
Graph Day 2017 Spring Boot
 
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
 
RESTful Services
RESTful ServicesRESTful Services
RESTful Services
 
Overview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIOverview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB API
 
Orchestrating Cloud Workloads with RightScale Self-Service
Orchestrating Cloud Workloads with RightScale Self-Service Orchestrating Cloud Workloads with RightScale Self-Service
Orchestrating Cloud Workloads with RightScale Self-Service
 
RESTful services
RESTful servicesRESTful services
RESTful services
 
San Francisco HashiCorp User Group at GitHub
San Francisco HashiCorp User Group at GitHubSan Francisco HashiCorp User Group at GitHub
San Francisco HashiCorp User Group at GitHub
 
SF HashiCorp User Group at GitHub
SF HashiCorp User Group at GitHubSF HashiCorp User Group at GitHub
SF HashiCorp User Group at GitHub
 
London HUG 14/4 - Deploying and Discovering at Scale with Consul and Nomad
London HUG 14/4 - Deploying and Discovering at Scale with Consul and NomadLondon HUG 14/4 - Deploying and Discovering at Scale with Consul and Nomad
London HUG 14/4 - Deploying and Discovering at Scale with Consul and Nomad
 
AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)
AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)
AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)
 
OpenStack Management at Hyperscale
OpenStack Management at HyperscaleOpenStack Management at Hyperscale
OpenStack Management at Hyperscale
 
Building A Diverse Geo-Architecture For Cloud Native Applications In One Day
Building A Diverse Geo-Architecture For Cloud Native Applications In One DayBuilding A Diverse Geo-Architecture For Cloud Native Applications In One Day
Building A Diverse Geo-Architecture For Cloud Native Applications In One Day
 
Pivotal Cloud Foundry: Building a diverse geo-architecture for Cloud Native A...
Pivotal Cloud Foundry: Building a diverse geo-architecture for Cloud Native A...Pivotal Cloud Foundry: Building a diverse geo-architecture for Cloud Native A...
Pivotal Cloud Foundry: Building a diverse geo-architecture for Cloud Native A...
 
Brendan Keeler - Who Trusts FHIR? Paradigms of Exchange in an API World
Brendan Keeler - Who Trusts FHIR? Paradigms of Exchange in an API WorldBrendan Keeler - Who Trusts FHIR? Paradigms of Exchange in an API World
Brendan Keeler - Who Trusts FHIR? Paradigms of Exchange in an API World
 
zendframework2 restful
zendframework2 restfulzendframework2 restful
zendframework2 restful
 
AWS Summit Singapore - Focus on your Business with Predictive Analytics, Cont...
AWS Summit Singapore - Focus on your Business with Predictive Analytics, Cont...AWS Summit Singapore - Focus on your Business with Predictive Analytics, Cont...
AWS Summit Singapore - Focus on your Business with Predictive Analytics, Cont...
 
20141210 - Microservice Container
20141210 - Microservice Container20141210 - Microservice Container
20141210 - Microservice Container
 
AWS Summit Auckland Keynote
AWS Summit Auckland KeynoteAWS Summit Auckland Keynote
AWS Summit Auckland Keynote
 
API’s and Micro Services 0.5
API’s and Micro Services 0.5API’s and Micro Services 0.5
API’s and Micro Services 0.5
 

Mehr von Christian Horsdal

Nancy - A Lightweight .NET Web Framework
Nancy - A Lightweight .NET Web FrameworkNancy - A Lightweight .NET Web Framework
Nancy - A Lightweight .NET Web Framework
Christian Horsdal
 
DCI ANUG - 24th November 2010
DCI ANUG - 24th November 2010DCI ANUG - 24th November 2010
DCI ANUG - 24th November 2010
Christian Horsdal
 
DCI - ANUG 24th November 2010
DCI - ANUG 24th November 2010DCI - ANUG 24th November 2010
DCI - ANUG 24th November 2010
Christian Horsdal
 

Mehr von Christian Horsdal (13)

Testing microservices.ANUG.20230111.pptx
Testing microservices.ANUG.20230111.pptxTesting microservices.ANUG.20230111.pptx
Testing microservices.ANUG.20230111.pptx
 
Scoping microservices.20190917
Scoping microservices.20190917Scoping microservices.20190917
Scoping microservices.20190917
 
Event sourcing anug 20190227
Event sourcing anug 20190227Event sourcing anug 20190227
Event sourcing anug 20190227
 
Middleware webnextconf - 20152609
Middleware   webnextconf - 20152609Middleware   webnextconf - 20152609
Middleware webnextconf - 20152609
 
Campus days 2014 owin
Campus days 2014 owinCampus days 2014 owin
Campus days 2014 owin
 
ASP.NET vNext ANUG 20140817
ASP.NET vNext ANUG 20140817ASP.NET vNext ANUG 20140817
ASP.NET vNext ANUG 20140817
 
Lightweight Approach to Building Web APIs with .NET
Lightweight Approach to Building Web APIs with .NETLightweight Approach to Building Web APIs with .NET
Lightweight Approach to Building Web APIs with .NET
 
Three Other Web Frameworks. All .NET. All OSS. One Hour. Go
Three Other Web Frameworks. All .NET. All OSS. One Hour. GoThree Other Web Frameworks. All .NET. All OSS. One Hour. Go
Three Other Web Frameworks. All .NET. All OSS. One Hour. Go
 
Four .NET Web Frameworks in Less Than an Hour
Four .NET Web Frameworks in Less Than an HourFour .NET Web Frameworks in Less Than an Hour
Four .NET Web Frameworks in Less Than an Hour
 
Nancy + rest mow2012
Nancy + rest   mow2012Nancy + rest   mow2012
Nancy + rest mow2012
 
Nancy - A Lightweight .NET Web Framework
Nancy - A Lightweight .NET Web FrameworkNancy - A Lightweight .NET Web Framework
Nancy - A Lightweight .NET Web Framework
 
DCI ANUG - 24th November 2010
DCI ANUG - 24th November 2010DCI ANUG - 24th November 2010
DCI ANUG - 24th November 2010
 
DCI - ANUG 24th November 2010
DCI - ANUG 24th November 2010DCI - ANUG 24th November 2010
DCI - ANUG 24th November 2010
 

Kürzlich hochgeladen

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Kürzlich hochgeladen (20)

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 

Consolidating services with middleware - NDC London 2017