failure after failure
TRANSCRIPT
![Page 1: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/1.jpg)
FAILUREAFTERFAILUREAFTERFARailureAFTERFAILUREAFTERAFTERf
ailureAFTERFAILUREAFTERAFTERf
A!PRESENTATION!BY @timangladEFROM!YOUR!FRIENDS @cloudant
![Page 2: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/2.jpg)
• Founded by 3 MIT grad students
• YCombinator S08
• Based in Boston, MA with employees in California, Washington State & the UK
• Hosted, distributed database service,~compatible with CouchDB
• Open Core BigCouch
• Value-added technologies are available as licenses
Cloudant?
![Page 3: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/3.jpg)
attachments:image, audio, ...
JSON, typed
complex relationships
MVCC:provenance,replication
and cache-ready
![Page 4: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/4.jpg)
• Written in Erlang
• REST API
• Bulk upload/edit
• Feed of changes
• Append-only, B+Tree, copy-on-write
• Durable MapReduce views (indices), in javascript, ruby, python, java, etc.
• ACID at the single document level
CouchDB Basics
![Page 5: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/5.jpg)
REPEATEDLY.We have Failed.
we’re not necessarily bad at our jobs though…
![Page 6: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/6.jpg)
Back in 2007…
![Page 7: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/7.jpg)
“The worldneeds a databaselike this”
— Adam Kocoloski, Cloudant CTO(in a moment of weakness)
![Page 8: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/8.jpg)
C luster of U nreliable C ommodity H ardware
![Page 9: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/9.jpg)
C luster of U nreliable C ommodity H ardware
without the ‘C’ it’s just “ouchDB”
![Page 10: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/10.jpg)
➞ BigCOuchPutting The ‘C’back inCouchDB
![Page 11: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/11.jpg)
Starting a newCode project:Good idea,right?
![Page 12: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/12.jpg)
Disregardingprior art
Failure #1?
![Page 13: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/13.jpg)
Y et A nother W anking N osql S olution
![Page 14: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/14.jpg)
DistributedSystems are HARDLet’s goshopping!
![Page 15: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/15.jpg)
DynAmo!
Werner, I♥you — why don’t you return my calls?
![Page 16: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/16.jpg)
D-D-D-Dynomite!
Cliff, I♥you, but don’t ever call me again.
![Page 17: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/17.jpg)
Perusingprior Art:Good idea,right?
![Page 18: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/18.jpg)
Failure #2
Usingprior art
![Page 19: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/19.jpg)
Your projecT≠
My project
![Page 20: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/20.jpg)
➞ MEM3ridiculouslysimple shardmanagement
![Page 21: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/21.jpg)
DistributedSystemsmeansdistributedTasks
![Page 22: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/22.jpg)
Executing CodeRemotelyNot cool, man.
![Page 23: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/23.jpg)
Science says:82% of coders’TimE is spentDesigning an RPCMECHANISMThe other 18% is spent at the coffee machine
![Page 24: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/24.jpg)
Using your language’snative RPCMechanismGood idea,right?
![Page 25: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/25.jpg)
Failure #3
PREMATUREImmatureoptimization
![Page 26: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/26.jpg)
➞ RexilightweightRPC server
![Page 27: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/27.jpg)
2xthroughputimprovementWell, alright. I can live with that, I guess…
![Page 28: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/28.jpg)
Meanwhile…
![Page 29: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/29.jpg)
Scrum’ing it upGood idea,right?
![Page 30: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/30.jpg)
Failure #4
ITerate OFTENITERATE FASTHIT&ATE the WALL
![Page 31: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/31.jpg)
➞ FabricDB OPS abstraction
![Page 32: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/32.jpg)
Meanwhile…
![Page 33: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/33.jpg)
“we need to bewebscale”
— ALAN HOFFMAN, Cloudant CEOFebruary 31, 2009
![Page 34: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/34.jpg)
Using stateof the artcloud hostingGood idea,right?
![Page 35: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/35.jpg)
Failure #5
AmazonlulzServices™
![Page 36: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/36.jpg)
The MOST INTENSETECH BOOTCAMPyou CAN EVERPUT DISTRIBUTED CODE THROUGH
![Page 37: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/37.jpg)
Meanwhile…
![Page 38: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/38.jpg)
They see meCompactin’They Hatin’
![Page 39: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/39.jpg)
Being GoodApache CitizensGood idea,right?
![Page 40: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/40.jpg)
Failure #6
Oh,Apache…
![Page 41: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/41.jpg)
Meanwhile…
![Page 42: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/42.jpg)
It’s all so Clear!
![Page 43: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/43.jpg)
Automatingyour monitoringGood idea,right?
![Page 44: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/44.jpg)
Failure #7There is nosuch thingas automatedmOnitoring
![Page 45: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/45.jpg)
Meanwhile…
![Page 46: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/46.jpg)
Which onewould yourather Serve?
![Page 47: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/47.jpg)
Large UserStory
![Page 48: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/48.jpg)
Small UserStory
![Page 49: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/49.jpg)
Failure #8Hope your usersare smart.
(Plan for whenThey’re STUPID.)
![Page 50: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/50.jpg)
Recap! 1. Don’t disregard prior art 2. Disregard prior art 3. Don’t be afraid to relax the rules 4. Clean up regularly 5. Get hosted on AWS (or not) 6. Learn tHAT APACHE CAN DO WRONG 7. Monitor what matters 8. There are no “nice” users
![Page 51: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/51.jpg)
What’s Next?version 0.4More PackagesGeoCouch?
![Page 52: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/52.jpg)
Free plan
BigCouch
github.com/cloudant/bigcouch
Open Source
cloudant.com
![Page 53: Failure after Failure](https://reader033.vdocuments.mx/reader033/viewer/2022061409/5556e27dd8b42ac60c8b499b/html5/thumbnails/53.jpg)
cloudant.com/europe
FaiLINGNear you,SOON!
(because we care.)