google developer day 2007 - nestoria: from mash-up to business

77
this space left intentionally blank

Upload: lokku

Post on 08-May-2015

3.251 views

Category:

Business


0 download

DESCRIPTION

A case study of Nestoria. Discuss the difference between a simple mash-up and a business that runs on mash-ups. Also touch on some challenges we have faced.

TRANSCRIPT

Page 1: Google Developer Day 2007 - Nestoria: From Mash-up To Business

this space left intentionally blank

Page 2: Google Developer Day 2007 - Nestoria: From Mash-up To Business

why perl is awesome andall other languages suck

Mike [email protected]

Page 3: Google Developer Day 2007 - Nestoria: From Mash-up To Business

from mash-up to business

Mike Astle - Lokku Ltd.Google Developer Day31 May 2007 - London

Page 4: Google Developer Day 2007 - Nestoria: From Mash-up To Business

i like questions

Page 5: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 6: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Milestones

• Start dev April 2006• Launch London June 2006• Launch UK Sept 2006• Launch Spain May 2007

Page 7: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 8: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 9: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Numbers

• In the UK, have 850,000 listingsrefreshed continually

• Boils down to about 500,000 properties• 100,000+ users per month• 4 programmers• No dedicated operations staff

Page 10: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Houses on a map…so what?

Page 11: Google Developer Day 2007 - Nestoria: From Mash-up To Business

this is harder than it looks

Page 12: Google Developer Day 2007 - Nestoria: From Mash-up To Business

The Plan

• Talk about some of the technicaldecisions we made at Nestoria

• Go over a few challenges that we havefaced

• Hopefully there are lessons to learnfrom our experiences

Page 13: Google Developer Day 2007 - Nestoria: From Mash-up To Business

first, you design

Page 14: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Things to worry about

• Architecture• Services vs. APIs• How to scale?• i18n• Future products

Page 15: Google Developer Day 2007 - Nestoria: From Mash-up To Business

then you choose a platform

Page 16: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 17: Google Developer Day 2007 - Nestoria: From Mash-up To Business

MS vs. Everything Else

Page 18: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Java?

Page 19: Google Developer Day 2007 - Nestoria: From Mash-up To Business

That Leaves LAMP

Page 20: Google Developer Day 2007 - Nestoria: From Mash-up To Business

PHP?

Page 21: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Ruby?

LAMR?

Page 22: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Python?

Page 23: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Perl

Page 24: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Perl

Utility Belt == CPAN

Page 25: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Apache

Page 26: Google Developer Day 2007 - Nestoria: From Mash-up To Business

MySQL

Page 27: Google Developer Day 2007 - Nestoria: From Mash-up To Business

GNU/Linux(Debian)

Page 28: Google Developer Day 2007 - Nestoria: From Mash-up To Business

now choose adevelopment environment

Page 29: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Source Control

• SVN…duh• Does anybody use CVS anymore?• Love the trac

Page 30: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 31: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Coders

• A few veterans• As many interns / junior coders as fit in

the room

Page 32: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Highly Collaborative(but not XP or Agile)

Page 33: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Emphasis

• Collective decision-making• Individual responsibility for deadlines• Many small success rather than few

large projects

Page 34: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 35: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 36: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Why write tests?

• Find bugs, of course• Increase confidence to make changes

to unfamiliar systems or libraries• Promote good design / expose bad

design

Page 37: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Design

• Informal process (no UML, minimaldesign patterns)

• Concentrate on the things that will reallyhurt - e.g. i18n

• Not everything has to be an object

Page 38: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Documentation

• POD for interfaces• twiki for systems• Schedule regular refreshers

Page 39: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Outsource

• If you can spec it faster than you canwrite it, consider farming it out

• Many, many site full of hungry coders• Have had good results with

scriptlance.com but there are lots ofothers out there

Page 40: Google Developer Day 2007 - Nestoria: From Mash-up To Business

how to deploy?

Page 41: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 42: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 43: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Virtualization?

• Sounds like voodoo to me• Extra layer to worry about• Easy enough to do everything in user

space

Page 44: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Wigwam

• 12 subdomains• Live data• 22 services• Many playpens per box• Releases several times a week

Page 45: Google Developer Day 2007 - Nestoria: From Mash-up To Business

big ISP vs. small ISP

• Bigger - more consistent• Smaller - more personal• Bigger - discrete choices• Smaller - continuous advice

• We went small

Page 46: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Hardware

• Know your downtime limits• Be reasonable!• Load balancing - expensive and

complex - we do it with DNS through avendor

• Have a failure plan

Page 47: Google Developer Day 2007 - Nestoria: From Mash-up To Business

TheHawkeyePrinciple

Page 48: Google Developer Day 2007 - Nestoria: From Mash-up To Business

but is anybody using it?

Page 49: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Logging

• Need your own, and it needs to beflexible

• Use the free tools as a sanity check

Page 50: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Reporting

• An important area of expertise, not anannoying afterthought

• Glossary• Every mean needs a variance• A/B Testing (a.k.a Bucket Testing) is

hard to do right

Page 51: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Also…

• Build tools for ad hoc queries, they>will< get used

• Keep an audit trail of changes• Effective tools for drilling down on

sessions allows non-techs to helpdebugging

Page 52: Google Developer Day 2007 - Nestoria: From Mash-up To Business

problems we have solved

Page 53: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 54: Google Developer Day 2007 - Nestoria: From Mash-up To Business

http://www.nestoria.co.uk/covent-garden/flat/buy/bedrooms-2/maxprice-

1000000/minprice-250000/bathrooms-2

Page 55: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 56: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 57: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 58: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 59: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 60: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 61: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 62: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 63: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 64: Google Developer Day 2007 - Nestoria: From Mash-up To Business

• Alderly Edge => Alderley Edge• Bayswater London => Bayswater• Berkhampsted => Berkhamsted• Birminham => Birmingham• Bletchingly => Bletchingley• Broxbourne Station => Broxbourne• Cambuslank => Cambuslang• Canary Warf => Canary Wharf• Claphamjuction => Clapham Junction• Covent Garden London => Covent

Garden

Page 65: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Geocoding

• Transform address into lat/longcoordinates

• 1,000+ calls a minute• Very high data variance (few cache hits)• Royal Mail data for UK• Teleatlas data for Spain

Page 66: Google Developer Day 2007 - Nestoria: From Mash-up To Business

• Albert Villas, Gilbert Mews, LEIGHTON BUZZARD,• Bedfordshire, LU7 1NF• Lake Lock Drive, Wakefield West Yorkshire• Church Lane, London• C ELMINGTON ROAD, LONDON• Fountain Road (Flat 2), Edgbaston• London SE18, UK• Lee, London, UK• Free Trade Wharf, 340 The Highway,

Wapping/Limehouse London• Stunning 3 Storey Contemporary Barn Conversion In

The Popular Village Of Utkinton• A.4-1 GREAT NORTHERN TOWER,WATSON

STREET,CITY CENTRE,• MANCHESTER GREATER MANCHESTER• 15, ASTLEY HOUSE, LONDON

Page 67: Google Developer Day 2007 - Nestoria: From Mash-up To Business

(((^[BEGLMNS][1-9]\d?) | (^W[2-9] ) | ( ^( A[BL] | B[ABDHLNRST] |C[ABFHMORTVW] | D[ADEGHLNTY] | E[HNX] | F[KY] | G[LUY] | H[ADGPRSUX] |I[GMPV] | JE | K[ATWY] | L[ADELNSU] | M[EKL] | N[EGNPRW] | O[LX] |P[AEHLOR] | R[GHM] | S[AEGKL-PRSTWY] | T[ADFNQRSW] | UB | W[ADFNRSV] |YO | ZE ) \d\d?) | (^W1[A-HJKSTUW0-9]) | (( (^WC[1-2]) | (^EC[1-4]) |(^SW1) ) [ABEHMNPRVWXY] ) ) (\s*)? ([0-9][ABD-HJLNP-UW-Z]{2}))

Page 68: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 69: Google Developer Day 2007 - Nestoria: From Mash-up To Business

what next?

Page 70: Google Developer Day 2007 - Nestoria: From Mash-up To Business

Future Projects

• Expose more data via API (e.g.historical aggregate data)

• Implicit personalisation (the systemlearns from users)

• More international expansion• Systemic testing to improve user

experience

Page 71: Google Developer Day 2007 - Nestoria: From Mash-up To Business

like what you see?

Page 72: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 73: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 74: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 75: Google Developer Day 2007 - Nestoria: From Mash-up To Business
Page 76: Google Developer Day 2007 - Nestoria: From Mash-up To Business

http://www.lokku.com/jobs

Page 77: Google Developer Day 2007 - Nestoria: From Mash-up To Business

thanks!

[email protected]://www.lokku.com

http://www.nestoria.co.ukhttp://www.nestoria.es

http://www.lokku.com/lpw06_geocoding/http://www.lokku.com/lpw06_wigwam/