SlideShare une entreprise Scribd logo
1  sur  82
Télécharger pour lire hors ligne
DEgraissons
le
Mammouth
Je suis pas gros,
j'ai une
ossature lourde!
Arnauld Loyer
@aloyer
29ème semaine de Conférences Technologiques
2014
Back To The PAST!
2008
2010
2010
2008-2009
PMU Turf
Partner Paddy Power
Paris Sportifs
https://info.pmu.fr/entreprise/partenariats-et-sponsoring
Paris Hippiques
Poker
Partner PartyGaming
PMU Entreprise
ooo
ooo
Portlet
Portal: A Good Promise!
The
Next-Gen
Architect
An Enterprise Solution
ooo
Portlet
Portal: A Good Promise!
Portlet
App 2
Portlet
App 1
Portlet
App 3
P
O
R
T
A
L
Portlet
Container
Portlet
API
Page JS
Content
Portal: A Good Promise!
User
Auth
+1
Enterprise Portal
Portlet
CMS
Content
Management
System
Marketing
+1
SSO
Page JS
Content
Business Logic
User
Auth
Enterprise Portal
PortletSSO
User
Auth
Page JS
Content
Business Logic
Enterprise Portal
PortletSSO
SI
Auth
How to Plug our own
Authentication
Search
doc.
Do It
Yourself
Google
stack
overflow
MAN/API
Sample
Just kidding!
obsolete
Give UP
! ⁉ ️
⚠ ️⚡ ️&
B
X
p
D
U
g
I
o
a
n
Hack
Framework Does Not
Work
Customization
Enterprise Portal
User
Auth
Page
Content
Business Logic
SI
Auth
PortletSSO
JS
Customization
Enterprise Portal
User
Auth
Page
Content
Business Logic
SI
Auth
PortletSSO
JS
User
Portal
User
SI
Customization
Enterprise Portal
User
Auth
Page
Content
Business Logic
SI
Auth
PortletSSO
JS
User
Portal
User
SI
Customization
Enterprise Portal
User
Auth
Page
Content
Business Logic
SI
Auth
PortletSSO
JS
User
Portal
User
SI
Customization
Enterprise Portal
User
Auth
Page
Content
Business Logic
SI
Auth
PortletSSO
JS
User
Portal
User
SI
Framework
Library
1
Framework vs Library
Library
2
Application
Side
N
ote
Customization
Enterprise Portal
User
Auth
Page JS
Content
Business Logic
API
Mobile
App.Portal: A Good Promise!… euh… no
SI
Auth
3rd
Party
Logic
PortletSSO
LEGACY...
LEGACY...
It’s OLD
It’s Crapy
It’s complicated
It’s not understandable
It does not reflect what it does
It’s not Tested
It’s not Testable
!
Someone else wrote it!
Accidental Complexity
Cost of understanding
Cost of understanding
Knowledge scattering
Cost of understanding
Knowledge scattering
Ripple Effect
« Big Ball of Mud »
http://www.laputan.org/mud/
http://akvo.org/blog/the-ball-of-mud-transition/
h
time
Productivity / Cost of Ownership
Understanding
Onboarding
time
Velocity
Productivity
Productivity / Cost of Ownership
Understanding
Onboarding
Scaling
Customization
Enterprise Portal
User
Auth
Page JS
Conte
nt
Business Logic
API
SI
Auth
3rd
Party
Logic
PortletSSO
Customization
Enterprise Portal
User
Auth
Page JS
Conte
nt
Business Logic
API
SI
Auth
3rd
Party
Logic
PortletSSO
User « Manny »
1.1
1.2
Load Balancer
Session
1.3
Customization
Enterprise Portal
User
Auth
Page JS
Conte
nt
Business Logic
API
SI
Auth
3rd
Party
Logic
PortletSSO
Customization
Enterprise Portal
User
Auth
Page JS
Conte
nt
Business Logic
API
SI
Auth
3rd
Party
Logic
PortletSSO
User « Manny »
Load Balancer
Session
1.4
1.5
1.1
1.2 1.3
Customization
Enterprise Portal
User
Auth
Page JS
Conte
nt
Business Logic
API
SI
Auth
3rd
Party
Logic
PortletSSO
Customization
Enterprise Portal
User
Auth
Page JS
Conte
nt
Business Logic
API
SI
Auth
3rd
Party
Logic
PortletSSO
User « Manny »
2.1
Load Balancer
?
Customization
Enterprise Portal
User
Auth
Page JS
Conte
nt
Business Logic
API
SI
Auth
3rd
Party
Logic
PortletSSO
Customization
Enterprise Portal
User
Auth
Page JS
Conte
nt
Business Logic
API
SI
Auth
3rd
Party
Logic
PortletSSO
User « Manny »
2.1
Load Balancer
?
Session
Sticky Session
€
#procs
Multiple servers
Single server
Scaling
Mammouth is Seducing
but
does not
Scale well
© 2014 Gartner, Inc. and/or its affiliates. All rights reserved.
Monolithic design
Over-provisioning and
hoarding of resources
Stateful
No support of parallel
or in-memory computing
Not open for
programmatic access
Tightly-coupled
Not modular
Not designed for 24/7 use
Discontinuous versioning
Not horizontally-scalable
Not instrumented for
governance
Single-channel front-end
Complex
Expensive
Locked into platforms
and vendors
The Old Architecture
Does Not Measure Up
http://public.brighttalk.com/resource/core/36753/may_8_software_designed_arch_ynatis_54295.pdf
may 8, 2014h
© 2014 Gartner, Inc. and/or its affiliates. All rights reserved.
Monolithic design
Over-provisioning and
hoarding of resources
Stateful
No support of parallel
or in-memory computing
Not open for
programmatic access
Tightly-coupled
Not modular
Not designed for 24/7 use
Discontinuous versioning
Not horizontally-scalable
Not instrumented for
governance
Single-channel front-end
Complex
Expensive
Locked into platforms
and vendors
The Old Architecture
Does Not Measure Up
http://public.brighttalk.com/resource/core/36753/may_8_software_designed_arch_ynatis_54295.pdf
may 8, 2014
dEVOPS
movement
« It is not the strongest of the species that survives,
nor the most intelligent,
but the one most responsive to change. »
!
Charles Darwin
cockroaches may not look really sexy at first,
but they survive
http://www.faqs.org/docs/artu/ch01s06.html
Write programs that do one thing and do it well. Write
programs to work together. Write programs to handle text
streams, because that is a universal interface.
Unix Philosophy
http://www.faqs.org/docs/artu/ch01s06.html
Write programs that do one thing and do it well. Write
programs to work together. Write programs to handle text
streams, because that is a universal interface.
Unix Philosophy
• Small is beautiful
• Make each program do one thing and one thing well
• Favor simplicity and portability over feature completeness
• Write programs to work together
Rule of Modularity: Write simple parts connected by clean interfaces.
Rule of Clarity: Clarity is better than cleverness.
Rule of Composition: Design programs to be connected to other programs.
Rule of Separation: Separate policy from mechanism; separate interfaces from engines.
Rule of Simplicity: Design for simplicity; add complexity only where you must.
Rule of Parsimony: Write a big program only when it is clear by demonstration that nothing else will do.
Rule of Transparency: Design for visibility to make inspection and debugging easier.
Rule of Robustness: Robustness is the child of transparency and simplicity.
Rule of Representation: Fold knowledge into data so program logic can be stupid and robust.
Rule of Least Surprise: In interface design, always do the least surprising thing.
Rule of Silence: When a program has nothing surprising to say, it should say nothing.
Rule of Repair: When you must fail, fail noisily and as soon as possible.
Rule of Economy: Programmer time is expensive; conserve it in preference to machine time.
Rule of Generation: Avoid hand-hacking; write programs to write programs when you can.
Rule of Optimization: Prototype before polishing. Get it working before you optimize it.
Rule of Diversity: Distrust all claims for “one true way”.
Rule of Extensibility: Design for the future, because it will be here sooner than you think.
http://www.faqs.org/docs/artu/ch01s06.html
Write programs that do one thing and do it well. Write
programs to work together. Write programs to handle text
streams, because that is a universal interface.
Unix Philosophy
http://www.faqs.org/docs/artu/ch01s06.html
Write programs that do one thing and do it well. Write
programs to work together. Write programs to handle text
streams, because that is a universal interface.
Unix Philosophy
« Read a file of text, determine the n most frequently used
words, and print out a sorted list of those words along with
their frequencies. »
!
http://www.leancrew.com/all-this/2011/12/more-shell-less-egg/
http://franklinchen.com/blog/2011/12/08/revisiting-knuth-and-mcilroys-word-count-programs/h
EVOLUTION
Learn From THE PAST
Learn from the ELDERs
Components
Components
Account management
Racing & Horse
Information Distribution
Horse RACE Betting
Extra CONTENT
MANAGEMENT
Authentication
Information Updates
RACE Status
WINNERS
RUNNERS
METEO
Odds…
update
Login/OUT
Profile…
G
Y
N
U2
H
E
u
Components
Shared Libs
Components
micro-services
10-100 LOC!!!
Mammouth
cockroach
Tardigrade
hhttp://vimeo.com/79866979
http://martinfowler.com/articles/microservices.html
Message
Bus
Communication
Communication
Communication
Broker less approach
e.g.: HTTP/REST, ZeroMQ,
distributed actors/process, …
http://zeromq.org/whitepapers:brokerless
http://www.openstack.org/assets/presentation-media/zmqslides2.pdf
h
Front End
Account management
Racing & Horse
Information Distribution
Horse RACE Betting
Extra CONTENT
MANAGEMENT
Authentication
Information Updates
RACE Status
WINNERS
RUNNERS
METEO
Odds…
update
Login/OUT
Profile…
G
Y
N
U2
H
E
u
Account
management
Racing & Horse
Information Distribution
AccountTurfInfoTurfPari
Update Listener
Horse RACE
Betting
Information Updates
TurfInfo
Lib
Account
Lib
TurfPari
Lib
Update
Lib
Auth
Lib
DTO
Lib
AccountTurfInfoTurfPari
Update Listener
TurfInfo
Lib
Accoun
t
Lib
TurfPari
Lib
Update
Lib
Auth
Lib
DTO
Lib
Backend
ooo
REST HTTP/JSON
Request -> Response
RIA
backbone
jquery
underscore
less
…
BackEnd, fRONtEND AND CMS TEAMS
RA
A
A
A AC
LLL
LLLE
AA
Backend
CMS
FrontEnd
L
Backend
dev.
Backend
REWORK…
Frontend
Starts
using API
BUT…
IT DOES NOT
WORK AS
EXPECTED
API
STILL
NOT
USED…
A
3 Months
LaTER
RA
A
A
A AC
LLL
LLLE
AA
Backend
CMS
FrontEnd
TEAMS ReORGANIZATIOn
R A
A
A
A AC
LL L
L
LL E
A A
A
A
Team 1 Team 2 Team 3
A
Spotify and the Feature Teams
http://blog.crisp.se/2012/11/14/henrikkniberg/scaling-agile-at-spotify
http://blog.crisp.se/2012/11/14/henrikkniberg/scaling-agile-at-spotify
Firewall
Traffic Manager
mysql
memcached
nginx
tomcat
tomcat
SI
http
https
http://www.couchbase.com/memcached
ooo
REST HTTP/JSON
Request -> Response
Backend
ooo
ooo
REST HTTP/JSON
Request -> Response
Backend
ooo
Traffic Manager
mysql
nginx
tomcat
tomcat
SI
http
https
ooo
GET /turf/programme/…
GET /account/…
POST /account/…
Firewall
Traffic Manager
mysql
couchbase
nginx
tomcat
tomcat
SI
http
https
ooo
GET /turf/programme/…
GET /account/…
POST /account/…
Stateless
Firewall
Traffic Manager
mysql
couchbase
nginx
tomcat
tomcat
SI
http
https
Scaling
Stateless
Firewall
Traffic Manager
mysql
couchbase
nginx
tomcat
tomcat
SI
http
https
Resilience
Firewall
Traffic Manager
mysql
couchbase
nginx
tomcat
tomcat
SI
http
https
Scaling
Firewall
Traffic Manager
mysql
couchbase
apache/varnishnginx
drupaltomcat
tomcat
SI
http
New
Requirement
https
Firewall
ooo
ooo
REST HTTP/JSON
Request -> Response
Backend
ooo
REST HTTP/JSON
Request -> Response
Backend
ooo
ooo
REST HTTP/JSON
Request -> Response
Backend
ooo
REST HTTP/JSON
Request -> Response
WebSocket
bidirectional
Backend
Traffic Manager
SI
http
https
Firewall
Traffic Manager
LVS
stunnel
haproxy
Vert.x
SI
https/ssl
http
Firewall
Traffic Manager
LVS
stunnel
haproxy
Vert.x
redis
subscribepublish
SI
https/ssl
http
Firewall
ooo
REST HTTP/JSON
Request -> Response
WebSocket
bidirectional
APN
Backend
Be CAREFUL OF ARCHITECT
BE CAREFUL OF FRAMEWORK
AVOID MONOLITHIC APPLICATION
LEGACY IS NEXT DOOR
THINK SMALL
PREFER STATELESS
Some Heuristics
Be CAREFUL OF ARCHITECT
BE CAREFUL OF FRAMEWORK
AVOID MONOLITHIC APPLICATION
LEGACY IS NEXT DOOR
THINK SMALL
PREFER STATELESS
Some Heuristics
Questions?
Gartner Presentation May 8th, 2014
http://public.brighttalk.com/resource/core/36753/may_8_software_designed_arch_ynatis_54295.pdf
Some Resources
PMU website
https://www.pmu.fr/
Vert.x
http://vertx.io/
redis
http://redis.io/
No Silver Bullet
http://en.wikipedia.org/wiki/No_Silver_Bullet
Lehman's laws of software evolution
http://users.ece.utexas.edu/~perry/work/papers/feast1.pdf
Microservices
http://vimeo.com/79866979
http://martinfowler.com/articles/microservices.html
liferay
https://www.liferay.com/
The Big Ball of Mud
http://www.laputan.org/mud/mud.html
http://blog.codinghorror.com/the-big-ball-of-mud-and-other-architectural-disasters/
http://www.arolla.fr/
SockJS
http://sockjs.org/

Contenu connexe

Similaire à Dégraissons le mammouth ou Darwin a encore frappé - La théorie de l'évolution appliquée au développement informatique

From DevOps to NoOps how not to get Equifaxed Apidays
From DevOps to NoOps how not to get Equifaxed ApidaysFrom DevOps to NoOps how not to get Equifaxed Apidays
From DevOps to NoOps how not to get Equifaxed ApidaysOri Pekelman
 
564 Class Notes July 27, 2010
564 Class Notes July 27, 2010564 Class Notes July 27, 2010
564 Class Notes July 27, 2010Stephanie Magleby
 
Worse Is Better, for Better or for Worse
Worse Is Better, for Better or for WorseWorse Is Better, for Better or for Worse
Worse Is Better, for Better or for WorseKevlin Henney
 
Top 30 Scalability Mistakes
Top 30 Scalability MistakesTop 30 Scalability Mistakes
Top 30 Scalability MistakesJohn Coggeshall
 
Java And Community Support
Java And Community SupportJava And Community Support
Java And Community SupportWilliam Grosso
 
Bruce Lawson Opera Indonesia
Bruce Lawson Opera IndonesiaBruce Lawson Opera Indonesia
Bruce Lawson Opera Indonesiabrucelawson
 
10 tips for a usable website
10 tips for a usable website10 tips for a usable website
10 tips for a usable websiteBart De Waele
 
Nautral Langauge Processing - Basics / Non Technical
Nautral Langauge Processing - Basics / Non Technical Nautral Langauge Processing - Basics / Non Technical
Nautral Langauge Processing - Basics / Non Technical Dhruv Gohil
 
PHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in phpPHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in phpAhmed Abdou
 
10 tips for a usable website
10 tips for a usable website10 tips for a usable website
10 tips for a usable websiteBart De Waele
 
Write less, achieve meh - HTML5DevConf 2014
Write less, achieve meh - HTML5DevConf 2014Write less, achieve meh - HTML5DevConf 2014
Write less, achieve meh - HTML5DevConf 2014Christian Heilmann
 
From dev to ops and beyond - getting it done
From dev to ops and beyond - getting it doneFrom dev to ops and beyond - getting it done
From dev to ops and beyond - getting it doneEdorian
 
Kiss the end-user goodbye
Kiss the end-user goodbyeKiss the end-user goodbye
Kiss the end-user goodbyeIvanka Majic
 
The Spirit of Opensource - contribution as a strategy for growth and innova...
The Spirit of Opensource   - contribution as a strategy for growth and innova...The Spirit of Opensource   - contribution as a strategy for growth and innova...
The Spirit of Opensource - contribution as a strategy for growth and innova...Parth Lawate
 
iOS development best practices
iOS development best practicesiOS development best practices
iOS development best practicesMichal Juhas
 
Codemotion Berlin 2015 recap
Codemotion Berlin 2015   recapCodemotion Berlin 2015   recap
Codemotion Berlin 2015 recapTorben Dohrn
 
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...OW2
 

Similaire à Dégraissons le mammouth ou Darwin a encore frappé - La théorie de l'évolution appliquée au développement informatique (20)

Old Is the New New
Old Is the New NewOld Is the New New
Old Is the New New
 
From DevOps to NoOps how not to get Equifaxed Apidays
From DevOps to NoOps how not to get Equifaxed ApidaysFrom DevOps to NoOps how not to get Equifaxed Apidays
From DevOps to NoOps how not to get Equifaxed Apidays
 
564 Class Notes July 27, 2010
564 Class Notes July 27, 2010564 Class Notes July 27, 2010
564 Class Notes July 27, 2010
 
Worse Is Better, for Better or for Worse
Worse Is Better, for Better or for WorseWorse Is Better, for Better or for Worse
Worse Is Better, for Better or for Worse
 
Top 30 Scalability Mistakes
Top 30 Scalability MistakesTop 30 Scalability Mistakes
Top 30 Scalability Mistakes
 
Java And Community Support
Java And Community SupportJava And Community Support
Java And Community Support
 
Bruce Lawson Opera Indonesia
Bruce Lawson Opera IndonesiaBruce Lawson Opera Indonesia
Bruce Lawson Opera Indonesia
 
10 tips for a usable website
10 tips for a usable website10 tips for a usable website
10 tips for a usable website
 
Nautral Langauge Processing - Basics / Non Technical
Nautral Langauge Processing - Basics / Non Technical Nautral Langauge Processing - Basics / Non Technical
Nautral Langauge Processing - Basics / Non Technical
 
PHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in phpPHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in php
 
10 tips for a usable website
10 tips for a usable website10 tips for a usable website
10 tips for a usable website
 
Write less, achieve meh - HTML5DevConf 2014
Write less, achieve meh - HTML5DevConf 2014Write less, achieve meh - HTML5DevConf 2014
Write less, achieve meh - HTML5DevConf 2014
 
From dev to ops and beyond - getting it done
From dev to ops and beyond - getting it doneFrom dev to ops and beyond - getting it done
From dev to ops and beyond - getting it done
 
Raptor 2
Raptor 2Raptor 2
Raptor 2
 
Kiss the end-user goodbye
Kiss the end-user goodbyeKiss the end-user goodbye
Kiss the end-user goodbye
 
The Spirit of Opensource - contribution as a strategy for growth and innova...
The Spirit of Opensource   - contribution as a strategy for growth and innova...The Spirit of Opensource   - contribution as a strategy for growth and innova...
The Spirit of Opensource - contribution as a strategy for growth and innova...
 
iOS development best practices
iOS development best practicesiOS development best practices
iOS development best practices
 
Codemotion Berlin 2015 recap
Codemotion Berlin 2015   recapCodemotion Berlin 2015   recap
Codemotion Berlin 2015 recap
 
Mobile Mashups
Mobile MashupsMobile Mashups
Mobile Mashups
 
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
 

Plus de Arnauld Loyer

Brown Bag Lunch - BDD an introduction - 2017 feb/mar
Brown Bag Lunch - BDD an introduction - 2017 feb/marBrown Bag Lunch - BDD an introduction - 2017 feb/mar
Brown Bag Lunch - BDD an introduction - 2017 feb/marArnauld Loyer
 
Bdd training v5.2.0 - public
Bdd training   v5.2.0 - publicBdd training   v5.2.0 - public
Bdd training v5.2.0 - publicArnauld Loyer
 
Event storming Notes
Event storming NotesEvent storming Notes
Event storming NotesArnauld Loyer
 
BDD - Writing better scenario
BDD - Writing better scenarioBDD - Writing better scenario
BDD - Writing better scenarioArnauld Loyer
 
Nos premiers pas autour du Behavior Driven Development
Nos premiers pas autour du Behavior Driven DevelopmentNos premiers pas autour du Behavior Driven Development
Nos premiers pas autour du Behavior Driven DevelopmentArnauld Loyer
 
Behavior Driven Development // Brown Bag Lunch v1.0.0
Behavior Driven Development // Brown Bag Lunch  v1.0.0Behavior Driven Development // Brown Bag Lunch  v1.0.0
Behavior Driven Development // Brown Bag Lunch v1.0.0Arnauld Loyer
 
L'ABC du BDD (Behavior Driven Development)
L'ABC du BDD (Behavior Driven Development)L'ABC du BDD (Behavior Driven Development)
L'ABC du BDD (Behavior Driven Development)Arnauld Loyer
 
Confiance&bdd softshake2013
Confiance&bdd softshake2013Confiance&bdd softshake2013
Confiance&bdd softshake2013Arnauld Loyer
 

Plus de Arnauld Loyer (11)

Brown Bag Lunch - BDD an introduction - 2017 feb/mar
Brown Bag Lunch - BDD an introduction - 2017 feb/marBrown Bag Lunch - BDD an introduction - 2017 feb/mar
Brown Bag Lunch - BDD an introduction - 2017 feb/mar
 
Bdd training v5.2.0 - public
Bdd training   v5.2.0 - publicBdd training   v5.2.0 - public
Bdd training v5.2.0 - public
 
Event storming Notes
Event storming NotesEvent storming Notes
Event storming Notes
 
BDD training v5.0.1
BDD training  v5.0.1BDD training  v5.0.1
BDD training v5.0.1
 
BDD - Writing better scenario
BDD - Writing better scenarioBDD - Writing better scenario
BDD - Writing better scenario
 
Nos premiers pas autour du Behavior Driven Development
Nos premiers pas autour du Behavior Driven DevelopmentNos premiers pas autour du Behavior Driven Development
Nos premiers pas autour du Behavior Driven Development
 
Behavior Driven Development // Brown Bag Lunch v1.0.0
Behavior Driven Development // Brown Bag Lunch  v1.0.0Behavior Driven Development // Brown Bag Lunch  v1.0.0
Behavior Driven Development // Brown Bag Lunch v1.0.0
 
L'ABC du BDD (Behavior Driven Development)
L'ABC du BDD (Behavior Driven Development)L'ABC du BDD (Behavior Driven Development)
L'ABC du BDD (Behavior Driven Development)
 
Confiance&bdd softshake2013
Confiance&bdd softshake2013Confiance&bdd softshake2013
Confiance&bdd softshake2013
 
Bdd training - v3
Bdd training - v3Bdd training - v3
Bdd training - v3
 
Bdd training-v1
Bdd training-v1Bdd training-v1
Bdd training-v1
 

Dernier

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.
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
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
 
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
 
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
 
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 Modelsaagamshah0812
 
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
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
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
 
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
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
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
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
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
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 

Dernier (20)

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...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
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
 
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
 
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 ☂️
 
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
 
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...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
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
 
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
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
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
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
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
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 

Dégraissons le mammouth ou Darwin a encore frappé - La théorie de l'évolution appliquée au développement informatique