Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Distributed testing on Rails
Search
Kostas Karachalios
November 30, 2012
Programming
120
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Distributed testing on Rails
Kostas Karachalios
November 30, 2012
Other Decks in Programming
See All in Programming
yield再入門 #phpcon
o0h
PRO
0
870
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
2
360
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
200
【やさしく解説 設計編 #0】DDDのコード、読めるのに分からない人へ
panda728
PRO
2
300
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
130
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
580
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
150
AIが無かった頃の素敵な出会いの話
codmoninc
1
350
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
170
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
130
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
140
今さら聞けない .NET CLI
htkym
0
170
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Producing Creativity
orderedlist
PRO
348
40k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
HDC tutorial
michielstock
2
760
GitHub's CSS Performance
jonrohan
1033
470k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
New Earth Scene 8
popppiees
3
2.4k
The browser strikes back
jonoalderson
0
1.4k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
790
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Optimizing for Happiness
mojombo
378
71k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
Transcript
DR. KOWALSKI OR: HOW I LEARNED TO STOP WAITING AND
LOVED THE TESTS
skroutz.gr
37,640 LINES OF CODE
8,414 SPEC EXAMPLES 1:1.4 CODE TO TEST RATIO
28 MINUTES TO RUN (ORIGINALLY)
16 DEVELOPERS ALL WANTING TO DEPLOY SOMETHING
5-25 DEPLOYS PER DAY EACH ONE HAS TO BE TESTED
PARTIAL TESTING NOT A SOLUTION
THE "PLAN"
DISTRIBUTED TESTING PARTLY CUSTOM
FAST TEST RESULTS LESS THAN 5 MINUTES
USE OUR HARDWARE PIGGYBACK ON DEVELOPER MACHINES
WHY CUSTOM? WHY NOT?
FOR UNIQUENESS YOU ARE A PRETTY LITTLE SNOWFLAKE
FOR UNIQUENESS YOU ARE A PRETTY LITTLE SNOWFLAKE •Databases (MySQL,
MongoDB, etc) •External services (Elastic) •Intelligently distribute specs to Hydras •Nothing works “out of the box” •We don’t want VMs into our developer machines
FOR GREAT SPEED FROM 28 MINUTES TO 4 AND A
HALF
FOR GREAT SPEED FROM 28 MINUTES TO 4 AND A
HALF Workers Time Speed (ex/min) 1 28:37 294 2 17:03 493 3 12:07 694 4 10:18 817 5 8:51 951 6 7:24 1,137 7 6:24 1,314 8 5:46 1,460 9 5:23 1,565 10 4:59 1,688 11 4:40 1,803
FOR GREAT SPEED FROM 28 MINUTES TO 4 AND A
HALF 0 7.5 15 22.5 30 1 2 3 4 5 6 7 8 9 10 11 0 500 1,000 1,500 2,000 Time in minutes Examples per minute Time Speed
FOR HINDSIGHT WEEKS OF TEST RESULTS AVAILABLE FOR REVIEW
FOR HINDSIGHT WEEKS OF TEST RESULTS AVAILABLE FOR REVIEW •We
are approaching 5,000 builds of the master branch •Identify “Heisenspecs” •Generate statistics
FOR FUN! DISTRIBUTED PROCESSING IS A BITCH
FOR FUN! DISTRIBUTED PROCESSING IS A BITCH •Yes, we do
love a challenge
HOW? THE MAIN COMPONENTS
WHO IS JENKINS? KNOWS WHAT WENT BAD, COMPLAINS CONSTANTLY
WHO IS JENKINS? KNOWS WHAT WENT BAD, COMPLAINS CONSTANTLY •Java
web application •Monitors git for changes •Keeps track of builds •Can’t do proper distributed testing •Fires up Kowalski
WHO IS KOWALSKI? BEHIND THE SCENES, GIVES COMMANDS
WHO IS KOWALSKI? BEHIND THE SCENES, GIVES COMMANDS •Splits spec
files into chunks •Feeds them to the Hydras •Gathers the output •Reports to Jenkins
WHO IS THE HYDRA? "DEMOCRATIZES" YOUR RESOURCES
WHO IS THE HYDRA? "DEMOCRATIZES" YOUR RESOURCES •A user in
each developer’s machine •Local binaries for services (SQL, MongoDB, Elastic etc) •Reports to Kowalski •Limited to 1 CPU core
BITS & PIECES COMPLETING THE IMAGE
GITLAB INTEGRATION WHICH GIT COMMITS FAILED THE BUILD?
WALL DISPLAY WHAT'S GOING ON RIGHT NOW?
TMPFS/RAMFS THE SOLIDEST OF STATE FOR YOUR HDD
PERSONAL BUILDS EVERYONE CAN ORDER A BUILD OF THEIR OWN