SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
AGIM EMRULI, ALAIN SAHLI
MICROSERVICES MIT SPRING CLOUD
AGIM
EMRULI
AGIM.EMRULI@
MIMACOM.COM
ALAIN
SAHLI
ALAIN.SAHLI@
MIMACOM.COM
CLOUD
SERVICE REGISTRY,

CIRCUIT BREAKER, METRICS
CORE
FRAMEWORK SECURITY GROOVY REACTOR
IOEXECUTIONIOFOUNDATION GRAILS
FULL STACK, WEB
XD
STREAMS, TAPS, JOBS
BOOT
BOOTABLE, MINIMAL, OPS-READY
BATCH
JOBS, STEPS,

READERS, WRITERS
DATA
RELATIONAL DATA NON-RELATIONAL DATA
BIG DATA
INGESTION, EXPORT,

ORCHESTRATION, HADOOP
WEB
CONTROLLERS, REST,

WEBSOCKET
INTEGRATION
CHANNELS, FILTERS,

ADAPTERS, TRANSFORMERS
IOCOORDINATION
TOOLBOX
FOR DISTRIBUTED SYSTEMS
DISTRIBUTED SYSTEM DEPLOYMENTS
@GITHUB
175 DEPLOYMENTS / DAY
NETFLIX
SERVICE ORIENTED ARCHITECTURE
SPRING CLOUD
INTRODUCTION
Spring
Cloud
BusConfig Netflix
AWS
Cloud
FoundryCLIConnectors
Starters
Application
CONFIGURATION MANAGEMENT
MONOLITHIC VS. DISTRIBUTED
Application
JNDI
Service
Service
Service
Service
Service
Spring Cloud Config
Spring Cloud
Config Server
GIT
SVN
File
Config Server
@Configuration

@EnableAutoConfiguration

@EnableConfigServer

public class ConfigServerApplication {



public static void main(String[] args) {

SpringApplication.run(ConfigServerApplication.class, args);

}

}
Spring Cloud
Config Server
Application
Spring Cloud
Config Client
Application
Spring Cloud
Config Client
Application
Spring Cloud
Config Client
Application
Spring Cloud
Config Client
@SpringBootApplication

public class CustomerApp {



public static void main(String[] args) {

SpringApplication.run(CustomerApp.class, args);

}

}

Bootstrap
Spring Cloud Bus
Spring Cloud
Config Server
Application
Application
/bus/refresh
AMQP
PATTERNS
STABILITY
CAPACITY
TRANSPARENCY
SPRING CLOUD
NETFLIX
Hystrix
Feign
Zuul
Eureka
Turbine
Ribbon
Service Registry
Circuit Breaker
Stream Aggregator
Load Balancer
Edge Service
HTTP Communication
HYSTRIX
CIRCUIT BREAKER
Execute
Command
Queue
Pool
available
Run
Fallback
HYSTRIX
BULKHEADS
Tomcat Thread Pool
Thread-1
Service
Service
Service Service
Thread-2
Thread-3
XThread-4
Thread-5
Thread-6
Thread-7
Thread-8
HYSTRIX
BULKHEADS
Execute
Command
Queue
Pool
available
Execute
Command
Queue
Pool
available
Execute
Command
Queue
Pool
available
HYSTRIX EXAMPLE
SERVICE CONSUMER
public class SearchGateway {

@HystrixCommand(fallbackMethod = "fallback")

public List<SearchHit> search(String query) {

return …;

}

public List<SearchHit> fallback() {

return Collections.emptyList();

}

}
HYSTRIX
TRANSPARENCY
HYSTRIX DASHBOARD
EXAMPLE
@EnableCircuitBreaker

@EnableHystrixDashboard

public class HystrixApp {



public static void main(String[] args) {

SpringApplication.run(HystrixApp.class, args);

}

}
TURBINE
AGGREGATOR
Dashboard
Service
Service
Dashboard
Turbine
Service Service
EUREKA
SERVICE DISCOVERY
Service
Service
Service
Service
X
Service
Service
Service
Service
Eureka
EUREKA REGISTRATION
EXAMPLE
@SpringBootApplication

@EnableDiscoveryClient

public class CustomerApp {



public static void main(String[] args) {

SpringApplication.run(CustomerApp.class, args);

}



}
spring.application.name=customers
EUREKA REGISTRATION
EXAMPLE
Discovery
Client
Application
Host
Port
URI
RIBBON
LOAD-BALANCER
Service
Service
Eureka
Service
Service
Eureka
ServiceService
Load
Balancer
RIBBON
RESTTEMPLATE INTEGRATION
@Service

public class Service {



@Autowired

@LoadBalanced

RestTemplate restTemplate;



public String callService() {

return restTemplate.getForObject("http://CUSTOMERS/{id}", String.class,"23");

}

}
ZUUL
EDGE-SERVICE
Service
Eureka
Edge Proxy
Service
Eureka
ServiceService
Load
Balancer
Web
Browser
Web
Browser
ZUUL
REVERSE PROXY SETUP
@EnableAutoConfiguration

@EnableZuulProxy

public class SimpleZuulServerApplication {



public static void main(String[] args) {

SpringApplication.run(SampleZuulProxyApplication.class, args);

}



}
http://localhost:9090/customers
http://localhost:9090/stores
Web Server

Load Balancer
Service
Discovery

Eureka
Customers Stores
Config
Server
Circuit Breaker
Dashboard
Browser
SPRING CLOUD
AMAZON WEBSERVICES
Instance Meta-data
@Component

public class ApplicationInfoBean {



@Value("${ami-id}")

private String amiId;



@Value("${hostname}")

private String hostname;



@Value("${instance-type}")

private String instanceType;



@Value("${services/domain}")

private String serviceDomain;

}

Amazon RDS
Schema Design
Query construction /
tuning
Availability
Backup & Recovery
Patch Management
Storage Upgrades
Amazon RDS
@EnableRdsInstance(
dbInstanceIdentifier = “test",
password = “secret",
readReplicaSupport = true)
public static class AppConfig {}
RDS Instance Support
@Service

public class JdbcPersonService implements PersonService {



private final JdbcTemplate jdbcTemplate;



@Autowired

public JdbcPersonService(DataSource dataSource) {

this.jdbcTemplate = new JdbcTemplate(dataSource);

}



@Override

@Transactional(readOnly = true)

public List<Person> all() {

return this.jdbcTemplate.query("SELECT * FROM Person”, … );

}



@Override

@Transactional

public void store(Person person) {

this.jdbcTemplate.update("INSERT INTO Person …”);

}

}
Amazon SQS
HTTP Messaging
Only String payload
No Transactions
Visibility Rules
Message Listeners
@Component

public class SqsController {



@MessageMapping("myQueue")

@SendTo("replyQueue")

private String receiveMessage(MessageToProcess message, 

@Header(“ApproximateFirstReceiveTimestamp”)
String timeStamp) {

return "someReply";

}

}
Application
Instance
Application
Instance
Application
Instance
SNS Controllers
@RestController

@RequestMapping("/sns/receive")

public class SnsEndpointController {



@NotificationSubscriptionMapping

public void confirmSubscription(
NotificationStatus notificationStatus) {

notificationStatus.confirmSubscription();

}



@NotificationMessageMapping

public void receiveNotification(
@NotificationMessage String message,
@NotificationSubject String subject) {

}

}
Elasticache
Application
Instance
Application
Instance
Application
Instance
Application
Instance
Caching Service
@Service

public class ExpensiveService {



@Cacheable("CacheCluster")

public String calculateExpensiveValue(String key){

return …;

}

}
{
"Resources": {
"ec2instance": {
"Type": "AWS::EC2::Instance",
"Properties": {
"ImageId": "ami-6a56b81d",
"InstanceType": "m1.small",
}
},
"database": {
"Type": "AWS::RDS::DBInstance",
"Properties": {
"AllocatedStorage": "5",
"DBInstanceClass": "db.m1.small",
"DBName": "test",
}
}
}
FRAGEN?

Contenu connexe

Similaire à Spring Cloud JUG Switzerland

F5 Automation and service discovery
F5 Automation and service discoveryF5 Automation and service discovery
F5 Automation and service discoveryScott van Kalken
 
Microservice Come in Systems
Microservice Come in SystemsMicroservice Come in Systems
Microservice Come in SystemsMarkus Eisele
 
How lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsHow lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsMarkus Eisele
 
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...OpenCredo
 
Ato2019 weave-services-istio
Ato2019 weave-services-istioAto2019 weave-services-istio
Ato2019 weave-services-istioLin Sun
 
Weave Your Microservices with Istio
Weave Your Microservices with IstioWeave Your Microservices with Istio
Weave Your Microservices with IstioAll Things Open
 
All Things Open 2019 weave-services-istio
All Things Open 2019 weave-services-istioAll Things Open 2019 weave-services-istio
All Things Open 2019 weave-services-istioLin Sun
 
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...Amazon Web Services
 
Getting started with AWS IoT Core - SVC306 - New York AWS Summit
Getting started with AWS IoT Core - SVC306 - New York AWS SummitGetting started with AWS IoT Core - SVC306 - New York AWS Summit
Getting started with AWS IoT Core - SVC306 - New York AWS SummitAmazon Web Services
 
Running Serverless at The Edge (CTD302) - AWS re:Invent 2018
Running Serverless at The Edge (CTD302) - AWS re:Invent 2018Running Serverless at The Edge (CTD302) - AWS re:Invent 2018
Running Serverless at The Edge (CTD302) - AWS re:Invent 2018Amazon Web Services
 
Dev309 from asgard to zuul - netflix oss-final
Dev309  from asgard to zuul - netflix oss-finalDev309  from asgard to zuul - netflix oss-final
Dev309 from asgard to zuul - netflix oss-finalRuslan Meshenberg
 
Aws summit devops 云端多环境自动化运维和部署
Aws summit devops   云端多环境自动化运维和部署Aws summit devops   云端多环境自动化运维和部署
Aws summit devops 云端多环境自动化运维和部署Leon Li
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberKMS Technology
 
Serverless Beyond Functions - CTO Club Made in JLM
Serverless Beyond Functions - CTO Club Made in JLMServerless Beyond Functions - CTO Club Made in JLM
Serverless Beyond Functions - CTO Club Made in JLMBoaz Ziniman
 
Red Hat Agile integration Workshop Labs
Red Hat Agile integration Workshop LabsRed Hat Agile integration Workshop Labs
Red Hat Agile integration Workshop LabsJudy Breedlove
 
Amysta european cloudstack user group -july 4 - 2013
Amysta   european cloudstack user group -july 4 - 2013Amysta   european cloudstack user group -july 4 - 2013
Amysta european cloudstack user group -july 4 - 2013ShapeBlue
 

Similaire à Spring Cloud JUG Switzerland (20)

F5 Automation and service discovery
F5 Automation and service discoveryF5 Automation and service discovery
F5 Automation and service discovery
 
Microservice Come in Systems
Microservice Come in SystemsMicroservice Come in Systems
Microservice Come in Systems
 
How lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsHow lagom helps to build real world microservice systems
How lagom helps to build real world microservice systems
 
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...
 
Ato2019 weave-services-istio
Ato2019 weave-services-istioAto2019 weave-services-istio
Ato2019 weave-services-istio
 
Weave Your Microservices with Istio
Weave Your Microservices with IstioWeave Your Microservices with Istio
Weave Your Microservices with Istio
 
All Things Open 2019 weave-services-istio
All Things Open 2019 weave-services-istioAll Things Open 2019 weave-services-istio
All Things Open 2019 weave-services-istio
 
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...
 
Getting started with AWS IoT Core - SVC306 - New York AWS Summit
Getting started with AWS IoT Core - SVC306 - New York AWS SummitGetting started with AWS IoT Core - SVC306 - New York AWS Summit
Getting started with AWS IoT Core - SVC306 - New York AWS Summit
 
Running Serverless at The Edge (CTD302) - AWS re:Invent 2018
Running Serverless at The Edge (CTD302) - AWS re:Invent 2018Running Serverless at The Edge (CTD302) - AWS re:Invent 2018
Running Serverless at The Edge (CTD302) - AWS re:Invent 2018
 
Dev309 from asgard to zuul - netflix oss-final
Dev309  from asgard to zuul - netflix oss-finalDev309  from asgard to zuul - netflix oss-final
Dev309 from asgard to zuul - netflix oss-final
 
Aws summit devops 云端多环境自动化运维和部署
Aws summit devops   云端多环境自动化运维和部署Aws summit devops   云端多环境自动化运维和部署
Aws summit devops 云端多环境自动化运维和部署
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using Cucumber
 
Serverless Beyond Functions - CTO Club Made in JLM
Serverless Beyond Functions - CTO Club Made in JLMServerless Beyond Functions - CTO Club Made in JLM
Serverless Beyond Functions - CTO Club Made in JLM
 
126 Golconde
126 Golconde126 Golconde
126 Golconde
 
What Is Happening At The Edge
What Is Happening At The EdgeWhat Is Happening At The Edge
What Is Happening At The Edge
 
Security in NodeJS applications
Security in NodeJS applicationsSecurity in NodeJS applications
Security in NodeJS applications
 
Oracle API Gateway
Oracle API GatewayOracle API Gateway
Oracle API Gateway
 
Red Hat Agile integration Workshop Labs
Red Hat Agile integration Workshop LabsRed Hat Agile integration Workshop Labs
Red Hat Agile integration Workshop Labs
 
Amysta european cloudstack user group -july 4 - 2013
Amysta   european cloudstack user group -july 4 - 2013Amysta   european cloudstack user group -july 4 - 2013
Amysta european cloudstack user group -july 4 - 2013
 

Dernier

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
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.comFatema Valibhai
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
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.docxComplianceQuest1
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
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 ...OnePlan Solutions
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
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.pdfWave PLM
 

Dernier (20)

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
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
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
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
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
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 ...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
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
 

Spring Cloud JUG Switzerland