SlideShare une entreprise Scribd logo
1  sur  83
Télécharger pour lire hors ligne
Scalable Continuous Deployment
with Maven
fromfragiletoagile.com
@AbrahamMarin
@AbrahamMarin
About Me
@AbrahamMarin
About Me
@AbrahamMarin
About Me
@AbrahamMarin
Table of Contents
• Continuous Deployment with Maven
• Scaling Continuous Deployment
• Analyse Data from the CI System
• Automate Analysis and Visualisation
@AbrahamMarin
Table of Contents
• Continuous Deployment with Maven
• Scaling Continuous Deployment
• Analyse Data from the CI System
• Automate Analysis and Visualisation
@AbrahamMarin
What is Continuous Deployment?
Continuous Integration: check everything is still
working after every commit
•
• Continuous Deployment: every successful
commit turns into a release
•
@AbrahamMarin
Why maven?
• Just because…
@AbrahamMarin
Other technologies
@AbrahamMarin
To Caesar what is Caesar’s
Based on John Ferguson Smart’s
“Real-World Strategies for Continuous Delivery
with maven and Jenkins”
http://youtu.be/McTZtyb9M38
@AbrahamMarin
John’s approach
Maven wasn’t built for Continuous
Deployment
commit
commit
commit
...
0.0.1-SNAPSHOT
Release!
0.0.1
@AbrahamMarin
John’s approach
Don’t use RELEASE plugin
Use VERSIONS plugin
Set version to <version scheme>.<build number>
Run mvn deploy
Commit pom file to repository
@AbrahamMarin
John’s approach
Set version to <version scheme>.<build number>
mvn versions:set –DnewVersion=**your version**
@AbrahamMarin
John’s approach
Run mvn deploy
mvn clean deploy
@AbrahamMarin
John’s approach
Commit pom file to repository
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.9.1</version>
<executions>
<execution>
<id>commit</id>
<phase>deploy</phase>
<goals>
<goal>checkin</goal>
</goals>
</execution>
</executions>
</plugin>
@AbrahamMarin
John’s approach
@AbrahamMarin
John’s approach
0.0.1.1
commit
BUILD!
0.0.1.2
commit
BUILD!
0.0.1.3
commit
BUILD!
@AbrahamMarin
Table of Contents
• Continuous Deployment with Maven
• Scaling Continuous Deployment
• Analyse Data from the CI System
• Automate Analysis and Visualisation
@AbrahamMarin
How do you scale this?
@AbrahamMarin
SUPER
APP
# Files: 75
# Tests: 800
Build Time: 4 min
Output: superapp.war
@AbrahamMarin
SUPER
APP
# Files: 113
# Tests: 1200
Build Time: 6 min
Output: superapp.war
@AbrahamMarin
SUPER
APP
# Files: 169
# Tests: 1800
Build Time: 9 min
Output: superapp.war
@AbrahamMarin
When Builds Get Too Big
@AbrahamMarin
"MAN Atlante fronte 1040572" by Lalupa - Own work. Licensed under GFDL via Commons -
https://commons.wikimedia.org/wiki/File:MAN_Atlante_fronte_1040572.JPG#/media/File:MAN_Atlante_fronte_1040572.JPG
SUPER
APP
# Files: 169
# Tests: 1800
Build Time: 9 min
Output: superapp.war
APP
BACKEND
SUPER
APP
# Files: 115
# Tests: 1200
Build Time: 6 min
Output: superapp.war
# Files: 72
# Tests: 800
Build Time: 4 min
Output: appbackend.jar
@AbrahamMarin
<dependency>
<groupId>com.superappfactory</groupId>
<artifactId>appbackend</artifactId>
<version>??????</version>
</dependency>
<dependency>
<groupId>com.superappfactory</groupId>
<artifactId>appbackend</artifactId>
<version>LATEST</version>
</dependency>
Setting up dependencies
APP
BACKEND
SUPER
APP
appbackend.jar superapp.war
@AbrahamMarin
@AbrahamMarin
@AbrahamMarin
@AbrahamMarin
Setting up dependencies
APP
BACKEND
SUPER
APP
appbackend.jar superapp.war
@AbrahamMarin
Rebuilding old versions
@AbrahamMarin
Rebuilding old versions
Using “LATEST” makes it impossible to build old
versions correctly
@AbrahamMarin
<dependency>
<groupId>com.superappfactory</groupId>
<artifactId>appbackend</artifactId>
<version>???????</version>
</dependency>
<dependency>
<groupId>com.superappfactory</groupId>
<artifactId>appbackend</artifactId>
<version>1.5.3.1</version>
</dependency>
Rebuilding old versions
APP
BACKEND
SUPER
APP
appbackend.jar superapp.war
@AbrahamMarin
Update versions of dependencies
mvn versions:use-latest-releases
@AbrahamMarin
APP
BACKEND
SUPER
APP
APP
BACKEND
SUPER
APP
DATA
MODEL
SUPER
APP
DATA
MODEL
GUI
APP
BACKEND
Like it?
@AbrahamMarin
Like it?
@AbrahamMarin
Like it?
@AbrahamMarin
Like it?
@AbrahamMarin
Like it?
@AbrahamMarin
@AbrahamMarin
http://thechive.com/2014/02/26/your
e-doing-it-wrong-31-photos-2/
I Can Help 
@AbrahamMarin
Problem: Infinite Trigger
commitbuild
deploy
commit
@AbrahamMarin
@AbrahamMarin
@AbrahamMarin
Problem: Unnecessary rebuilds
APP
BACKEND
SUPER
APP
commit
@AbrahamMarin
@AbrahamMarin
Problem: Unnecessary rebuilds
@AbrahamMarin
Problem: Unnecessary rebuilds
Get last
committer
buildAgent?
Proceed
normally
Don’t run
build
NO YES
touch skip_build
@AbrahamMarin
Problem: Unnecessary rebuilds
<profiles>
<!-- Plugins that need to be disabled when doing a no-run -->
<profile>
<id>do.nothing</id>
<activation>
<file>
<exists>skip_build</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<skipMain>true</skipMain>
<skip>true</skip>
</configuration>
</plugin>
@AbrahamMarin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
Problem: Unnecessary rebuilds
@AbrahamMarin
Problem: Unnecessary rebuilds
APP
BACKEND
SUPER
APP
commit
@AbrahamMarin
Problem: Unnecessary rebuilds
@AbrahamMarin
Problem: Necessary rebuilds
APP
BACKEND
SUPER
APP
commit
@AbrahamMarin
Get last
committer
buildAgent?
Proceed
normally
Don’t run
build
NO YES
Problem: Necessary rebuilds
@AbrahamMarin
@AbrahamMarin
Get last
committer
buildAgent?
Proceed
normally
NO YES
Check
dependencies
Up to
date?
NO Don’t run
build
YES
touch skip_build
@AbrahamMarin
Problem: Necessary rebuilds
@AbrahamMarin
Problem: Doomed Build
build
deploy
commit
commit
commit
pom.xml
@AbrahamMarin
Get last
committer
buildAgent?
Proceed
normally
NO YES
Check
dependencies
Up to
date?
NO Don’t run
build
YES
touch skip_build
@AbrahamMarin
Get last
committer
buildAgent?
Check
pom.xml
NO YES
Check
dependencies
Up to
date?
NO
Don’t run
build
YES
touch skip_build
Up to
date?
NO
Proceed
normally
YES
@AbrahamMarin
Problem: Doomed Build
@AbrahamMarin
@AbrahamMarin
Table of Contents
• Continuous Deployment with Maven
• Scaling Continuous Deployment
• Analyse Data from the CI System
• Automate Analysis and Visualisation
@AbrahamMarin
A real case scenario
@AbrahamMarin
WAR file
WAR file
WAR file
Parent
POM
Logging
@AbrahamMarin
WAR file
WAR file
WAR file
Parent
POM
Logging
28%
@AbrahamMarin
WAR file
WAR file
WAR file
Parent
POM
Logging
28%
28%
28%
@AbrahamMarin
WAR file
WAR file
WAR file
Parent
POM
Logging
28%
28%
28%
20%
@AbrahamMarin
WAR file
WAR file
WAR file
Parent
POM
Logging
48%
28%
28%
20%
@AbrahamMarin
WAR file
WAR file
WAR file
Parent
POM
Logging
@AbrahamMarin
WAR file
WAR file
WAR
file
@AbrahamMarin
Build-Driven Architecture
@AbrahamMarin
Table of Contents
• Continuous Deployment with Maven
• Scaling Continuous Deployment
• Analyse Data from the CI System
• Automate Analysis and Visualisation
@AbrahamMarin
WAR file
WAR file
WAR
file
@AbrahamMarin
Manual processing
takes time...
@AbrahamMarin
Automating Build Analysis
• Most CI systems provide an API
• Calculations aren’t complex
• Multiple graphical tools available
@AbrahamMarin
Build Hotspots
github.com/quiram/build-hotspots
@AbrahamMarin
Automating Build Analysis
• Add colour and size
• Add support for other CI systems
• Show subset of builds
• Update data automatically (for build displays)
• Anything else you may find useful!
@AbrahamMarin
Summary
• Setting up Continuous Deployment is possible
• Scaling is challenging, but also possible
• Build data can help you shape the architecture
of your application
• Still plenty to improve, please join me 
@AbrahamMarin
Questions?
@AbrahamMarin
fromfragiletoagile.com
@AbrahamMarin
Thank You!
JavaOne 2015: Scalable Continous Deployment with Maven

Contenu connexe

Tendances

9 Things You Didn't Know You Could Do with Your Blog WPSLC
9 Things You Didn't Know You Could Do with Your Blog WPSLC9 Things You Didn't Know You Could Do with Your Blog WPSLC
9 Things You Didn't Know You Could Do with Your Blog WPSLC
Chris Reynolds
 

Tendances (20)

Postman Webinar: "From APIs to Serverless Cloud Applications in Minutes"
Postman Webinar: "From APIs to Serverless Cloud Applications in Minutes"Postman Webinar: "From APIs to Serverless Cloud Applications in Minutes"
Postman Webinar: "From APIs to Serverless Cloud Applications in Minutes"
 
Don't use create react app
Don't use create react appDon't use create react app
Don't use create react app
 
Intro to Netflix's Chaos Monkey
Intro to Netflix's Chaos MonkeyIntro to Netflix's Chaos Monkey
Intro to Netflix's Chaos Monkey
 
(Ignite) DID ANYONE SAY SEMVER? - PHILIPP KRENN, ELASTIC
(Ignite) DID ANYONE SAY SEMVER? - PHILIPP KRENN, ELASTIC(Ignite) DID ANYONE SAY SEMVER? - PHILIPP KRENN, ELASTIC
(Ignite) DID ANYONE SAY SEMVER? - PHILIPP KRENN, ELASTIC
 
9 Things You Didn't Know You Could Do with Your Blog WPSLC
9 Things You Didn't Know You Could Do with Your Blog WPSLC9 Things You Didn't Know You Could Do with Your Blog WPSLC
9 Things You Didn't Know You Could Do with Your Blog WPSLC
 
Postman Webinar: "API Governance with Postman"
Postman Webinar: "API Governance with Postman"Postman Webinar: "API Governance with Postman"
Postman Webinar: "API Governance with Postman"
 
Postman covid-webinar
Postman covid-webinarPostman covid-webinar
Postman covid-webinar
 
[GeekTalk#2] Takaaki Mizuno - Api Url Design
[GeekTalk#2] Takaaki Mizuno - Api Url Design[GeekTalk#2] Takaaki Mizuno - Api Url Design
[GeekTalk#2] Takaaki Mizuno - Api Url Design
 
State of the API: Insights Into the Future of APIs
State of the API: Insights Into the Future of APIsState of the API: Insights Into the Future of APIs
State of the API: Insights Into the Future of APIs
 
Deploying and Scaling Your First Cloud Application with Amazon Lightsail
Deploying and Scaling Your First Cloud Application with Amazon LightsailDeploying and Scaling Your First Cloud Application with Amazon Lightsail
Deploying and Scaling Your First Cloud Application with Amazon Lightsail
 
Enterprise E-Commerce Webinar #3: Bringing Your API to Market
Enterprise E-Commerce Webinar #3: Bringing Your API to MarketEnterprise E-Commerce Webinar #3: Bringing Your API to Market
Enterprise E-Commerce Webinar #3: Bringing Your API to Market
 
presentation-chaos-monkey
presentation-chaos-monkeypresentation-chaos-monkey
presentation-chaos-monkey
 
Top 8 Ruby on Rails Gems
Top 8 Ruby on Rails GemsTop 8 Ruby on Rails Gems
Top 8 Ruby on Rails Gems
 
Deploy, Manage & Scale Your Apps with Elastic Beanstalk
Deploy, Manage & Scale Your Apps with Elastic BeanstalkDeploy, Manage & Scale Your Apps with Elastic Beanstalk
Deploy, Manage & Scale Your Apps with Elastic Beanstalk
 
AEM OpenCloud
AEM OpenCloudAEM OpenCloud
AEM OpenCloud
 
Succeeding with FOSS!
Succeeding with FOSS!Succeeding with FOSS!
Succeeding with FOSS!
 
3112 final
3112 final3112 final
3112 final
 
Top 20 Free WordPress Slider Plugins in 2015 by Techtic Solutions
Top 20 Free WordPress Slider Plugins in 2015 by Techtic SolutionsTop 20 Free WordPress Slider Plugins in 2015 by Techtic Solutions
Top 20 Free WordPress Slider Plugins in 2015 by Techtic Solutions
 
Deployment with Elastic Beanstalk at Edinburgh Startup Event
Deployment with Elastic Beanstalk at Edinburgh Startup EventDeployment with Elastic Beanstalk at Edinburgh Startup Event
Deployment with Elastic Beanstalk at Edinburgh Startup Event
 
Azure slots for app deployment the continuous delivery way
Azure slots for app deployment the continuous delivery wayAzure slots for app deployment the continuous delivery way
Azure slots for app deployment the continuous delivery way
 

En vedette

En vedette (20)

Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be
Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to beAgile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be
Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be
 
Cursos Agile Think - Lean - 2/4
Cursos Agile Think - Lean - 2/4Cursos Agile Think - Lean - 2/4
Cursos Agile Think - Lean - 2/4
 
Increase Your Intelligence 2014
Increase Your Intelligence 2014Increase Your Intelligence 2014
Increase Your Intelligence 2014
 
Cursos Agile Think - Kanban - 3/4
Cursos Agile Think - Kanban - 3/4Cursos Agile Think - Kanban - 3/4
Cursos Agile Think - Kanban - 3/4
 
Mountebank and you
Mountebank and youMountebank and you
Mountebank and you
 
Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4
 
Expert Talks Cardiff 2017 - Keeping your ci-cd system as fast as it needs to be
Expert Talks Cardiff 2017 - Keeping your ci-cd system as fast as it needs to beExpert Talks Cardiff 2017 - Keeping your ci-cd system as fast as it needs to be
Expert Talks Cardiff 2017 - Keeping your ci-cd system as fast as it needs to be
 
Keeping your CI/CD pipeline as fast as it needs to be
Keeping your CI/CD pipeline as fast as it needs to beKeeping your CI/CD pipeline as fast as it needs to be
Keeping your CI/CD pipeline as fast as it needs to be
 
Creative Disobedience: How, When and Why to Break the Rules (from BIL 2014)
Creative Disobedience: How, When and Why to Break the Rules (from BIL 2014)Creative Disobedience: How, When and Why to Break the Rules (from BIL 2014)
Creative Disobedience: How, When and Why to Break the Rules (from BIL 2014)
 
Livro AGILE THINK® CANVAS
Livro AGILE THINK® CANVAS Livro AGILE THINK® CANVAS
Livro AGILE THINK® CANVAS
 
Cursos Agile Think - Framework Scrum - 1/4
Cursos Agile Think - Framework Scrum - 1/4Cursos Agile Think - Framework Scrum - 1/4
Cursos Agile Think - Framework Scrum - 1/4
 
Merge hells!! feature toggles to the rescue
Merge hells!! feature toggles to the rescueMerge hells!! feature toggles to the rescue
Merge hells!! feature toggles to the rescue
 
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to BeKeeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
 
Agile Requirements
Agile RequirementsAgile Requirements
Agile Requirements
 
Methodology Patterns (Agile Cambridge 2014)
Methodology Patterns (Agile Cambridge 2014)Methodology Patterns (Agile Cambridge 2014)
Methodology Patterns (Agile Cambridge 2014)
 
The Values and Principles of Agile Software Development
The Values and Principles of Agile Software DevelopmentThe Values and Principles of Agile Software Development
The Values and Principles of Agile Software Development
 
Refactoring, Emergent Design & Evolutionary Architecture
Refactoring, Emergent Design & Evolutionary ArchitectureRefactoring, Emergent Design & Evolutionary Architecture
Refactoring, Emergent Design & Evolutionary Architecture
 
Serverless Architectures and Continuous Delivery
Serverless Architectures and Continuous DeliveryServerless Architectures and Continuous Delivery
Serverless Architectures and Continuous Delivery
 
Improve collaboration and confidence with Consumer-driven contracts
Improve collaboration and confidence with Consumer-driven contractsImprove collaboration and confidence with Consumer-driven contracts
Improve collaboration and confidence with Consumer-driven contracts
 
Pipeline conference 2017 - Breaking down your build: architectural patterns f...
Pipeline conference 2017 - Breaking down your build: architectural patterns f...Pipeline conference 2017 - Breaking down your build: architectural patterns f...
Pipeline conference 2017 - Breaking down your build: architectural patterns f...
 

Similaire à JavaOne 2015: Scalable Continous Deployment with Maven

I don't always test...but when I do I test in production - Gareth Bowles
I don't always test...but when I do I test in production - Gareth BowlesI don't always test...but when I do I test in production - Gareth Bowles
I don't always test...but when I do I test in production - Gareth Bowles
QA or the Highway
 

Similaire à JavaOne 2015: Scalable Continous Deployment with Maven (20)

DevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More DefectsDevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More Defects
 
The Progressive Web and its New Challenges - Confoo Montréal 2017
The Progressive Web and its New Challenges - Confoo Montréal 2017The Progressive Web and its New Challenges - Confoo Montréal 2017
The Progressive Web and its New Challenges - Confoo Montréal 2017
 
Building Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in RailsBuilding Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in Rails
 
Integration Testing on Steroids: Run Your Tests on the Real Things
Integration Testing on Steroids: Run Your Tests on the Real ThingsIntegration Testing on Steroids: Run Your Tests on the Real Things
Integration Testing on Steroids: Run Your Tests on the Real Things
 
DevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback LoopsDevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback Loops
 
Active web page chapter for reading purpose
Active web page chapter for reading purposeActive web page chapter for reading purpose
Active web page chapter for reading purpose
 
Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014
 
Uncovering breaking changes behind UI on mobile applications
Uncovering breaking changes behind UI on mobile applicationsUncovering breaking changes behind UI on mobile applications
Uncovering breaking changes behind UI on mobile applications
 
Gaejexperiments
GaejexperimentsGaejexperiments
Gaejexperiments
 
I Don't Test Often ...
I Don't Test Often ...I Don't Test Often ...
I Don't Test Often ...
 
I don't always test...but when I do I test in production - Gareth Bowles
I don't always test...but when I do I test in production - Gareth BowlesI don't always test...but when I do I test in production - Gareth Bowles
I don't always test...but when I do I test in production - Gareth Bowles
 
The Rounds Project: Growing from thousands to millions - Berry Ventura & Yoah...
The Rounds Project: Growing from thousands to millions - Berry Ventura & Yoah...The Rounds Project: Growing from thousands to millions - Berry Ventura & Yoah...
The Rounds Project: Growing from thousands to millions - Berry Ventura & Yoah...
 
Waterford fast images
Waterford fast imagesWaterford fast images
Waterford fast images
 
Visual Studio Mobile Center: A story about mobile DevOps
Visual Studio Mobile Center: A story about mobile DevOpsVisual Studio Mobile Center: A story about mobile DevOps
Visual Studio Mobile Center: A story about mobile DevOps
 
Getting Started with Visual Testing
Getting Started with Visual TestingGetting Started with Visual Testing
Getting Started with Visual Testing
 
Building a social network in under 4 weeks with Serverless and GraphQL
Building a social network in under 4 weeks with Serverless and GraphQLBuilding a social network in under 4 weeks with Serverless and GraphQL
Building a social network in under 4 weeks with Serverless and GraphQL
 
Rounds tips & tricks
Rounds tips & tricksRounds tips & tricks
Rounds tips & tricks
 
Beautiful and Fast Images
Beautiful and Fast Images Beautiful and Fast Images
Beautiful and Fast Images
 
MVVM & RxSwift
MVVM & RxSwiftMVVM & RxSwift
MVVM & RxSwift
 
Portafolio
PortafolioPortafolio
Portafolio
 

Dernier

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 

Dernier (20)

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
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
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
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-...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 

JavaOne 2015: Scalable Continous Deployment with Maven