SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Lean and mean MongoDB
 or why MongoDB is good for start ups
/whois olegp
/whois olegp
●   doing startups since 2000
    –   RIOT-E
●   tech DD for investors since 2008
●   Startup Sauna coach
●   new venture: StartHQ
Web apps 101
Web apps 101
●   REST API centric design
●   One primary data store
    –   Except blobs
●   No premature optimization
    –   e.g. caching
The Contenders
Background Reading
●   “How FriendFeed uses MySQL to store
    schemaless data”
    –   “mariadb dynamic columns”

●   “PostgreSQL as a schemaless database”
The Pros
The Pros
●   Simpler schema design
    –   Fewer many to one relationships
    –   Design is part of development, not separate
●   No DB setup step
●   No DB migrations *
●   No ORMs
●   JSON as query language
Hosting
●   Amazon RDS: from $18
●   Heroku Postgres: from $10
●   MongoHQ & MongoLab: from FREE
Database as a Service
Database as a Service
●   Web admin FTW
    –   Saves you building your own
●   No SSL
    –   But on AWS you can't sniff traffic
●   Expensive backups
    –   But you can easily roll your own
Some Code

return db.getCollection("apps").find({
  nameLowerCase:{
    $regex:utils.prettify(request.queryParams.term)
  },
  verified:true
}, {
  name:true, url:true
}).sort({'extractors.social.score':-1})
  .limit(10).toArray().map(function(app) {
  return {
    label:app.name,
    value:app.url
  };
});
Tools

●   10gen MMS
●   Metrica
●   Nodetime
Getting Started
Getting Started
●   try.mongodb.org
●   “dailyjs lmaw”
●   olegp/notes & olegp/tokenize
Summary
●   Optimize for ease of development
●   Do design your schema
●   Do not prematurely optimize
●   Have fun!
Thanks!
  @olegpodsechin
starthq.com/apps/?q=mongodb

Mais conteúdo relacionado

Mais procurados

Pump up the JAM with Gatsby (2019)
Pump up the JAM with Gatsby (2019)Pump up the JAM with Gatsby (2019)
Pump up the JAM with Gatsby (2019)Stefan Adolf
 
Part Two: Building Web Apps with the MERN Stack
Part Two: Building Web Apps with the MERN StackPart Two: Building Web Apps with the MERN Stack
Part Two: Building Web Apps with the MERN StackMongoDB
 
MongoDB for Oracle Experts - OUGF Harmony 2014
MongoDB for Oracle Experts - OUGF Harmony 2014 MongoDB for Oracle Experts - OUGF Harmony 2014
MongoDB for Oracle Experts - OUGF Harmony 2014 Henrik Ingo
 
CouchDB: replicated data store for distributed proxy server
CouchDB: replicated data store for distributed proxy serverCouchDB: replicated data store for distributed proxy server
CouchDB: replicated data store for distributed proxy servertkramar
 
Decoupled (Headless) Drupal
Decoupled (Headless) DrupalDecoupled (Headless) Drupal
Decoupled (Headless) DrupalDaniel Stout
 
Wwc london-perf-apps
Wwc london-perf-appsWwc london-perf-apps
Wwc london-perf-appsClaire Tran
 
Charla ro 2
Charla ro 2Charla ro 2
Charla ro 2GeneXus
 
Progressive web applications
Progressive web applicationsProgressive web applications
Progressive web applicationsTom Martin
 
Vlad zelinschi optimizing the critical rendering path
Vlad zelinschi   optimizing the critical rendering pathVlad zelinschi   optimizing the critical rendering path
Vlad zelinschi optimizing the critical rendering pathCodecamp Romania
 
Analyzing and processing FInancial Market Data on AWS with Kinesis - AWS Pop ...
Analyzing and processing FInancial Market Data on AWS with Kinesis - AWS Pop ...Analyzing and processing FInancial Market Data on AWS with Kinesis - AWS Pop ...
Analyzing and processing FInancial Market Data on AWS with Kinesis - AWS Pop ...Florian Benz
 
Gatsby (Code.Talks) 2019
Gatsby (Code.Talks) 2019Gatsby (Code.Talks) 2019
Gatsby (Code.Talks) 2019Stefan Adolf
 
A socially Geo-localized Web
A socially Geo-localized WebA socially Geo-localized Web
A socially Geo-localized WebNuno Khan
 
GR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with GrailsGR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with GrailsGR8Conf
 
Rapid Application Development with MEAN Stack
Rapid Application Development with MEAN StackRapid Application Development with MEAN Stack
Rapid Application Development with MEAN StackAvinash Kaza
 
Introduction to Javascript
Introduction to JavascriptIntroduction to Javascript
Introduction to JavascriptfoOfys Solutions
 

Mais procurados (20)

Pump up the JAM with Gatsby (2019)
Pump up the JAM with Gatsby (2019)Pump up the JAM with Gatsby (2019)
Pump up the JAM with Gatsby (2019)
 
Part Two: Building Web Apps with the MERN Stack
Part Two: Building Web Apps with the MERN StackPart Two: Building Web Apps with the MERN Stack
Part Two: Building Web Apps with the MERN Stack
 
MongoDB for Oracle Experts - OUGF Harmony 2014
MongoDB for Oracle Experts - OUGF Harmony 2014 MongoDB for Oracle Experts - OUGF Harmony 2014
MongoDB for Oracle Experts - OUGF Harmony 2014
 
CouchDB: replicated data store for distributed proxy server
CouchDB: replicated data store for distributed proxy serverCouchDB: replicated data store for distributed proxy server
CouchDB: replicated data store for distributed proxy server
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Intro Couchdb
Intro CouchdbIntro Couchdb
Intro Couchdb
 
Decoupled (Headless) Drupal
Decoupled (Headless) DrupalDecoupled (Headless) Drupal
Decoupled (Headless) Drupal
 
Wwc london-perf-apps
Wwc london-perf-appsWwc london-perf-apps
Wwc london-perf-apps
 
web optimizations
web optimizationsweb optimizations
web optimizations
 
Charla ro 2
Charla ro 2Charla ro 2
Charla ro 2
 
Progressive web applications
Progressive web applicationsProgressive web applications
Progressive web applications
 
Vlad zelinschi optimizing the critical rendering path
Vlad zelinschi   optimizing the critical rendering pathVlad zelinschi   optimizing the critical rendering path
Vlad zelinschi optimizing the critical rendering path
 
Analyzing and processing FInancial Market Data on AWS with Kinesis - AWS Pop ...
Analyzing and processing FInancial Market Data on AWS with Kinesis - AWS Pop ...Analyzing and processing FInancial Market Data on AWS with Kinesis - AWS Pop ...
Analyzing and processing FInancial Market Data on AWS with Kinesis - AWS Pop ...
 
Gatsby (Code.Talks) 2019
Gatsby (Code.Talks) 2019Gatsby (Code.Talks) 2019
Gatsby (Code.Talks) 2019
 
A socially Geo-localized Web
A socially Geo-localized WebA socially Geo-localized Web
A socially Geo-localized Web
 
A faster web
A faster webA faster web
A faster web
 
Yipit - AWS Start-Up Customer
Yipit - AWS Start-Up Customer Yipit - AWS Start-Up Customer
Yipit - AWS Start-Up Customer
 
GR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with GrailsGR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with Grails
 
Rapid Application Development with MEAN Stack
Rapid Application Development with MEAN StackRapid Application Development with MEAN Stack
Rapid Application Development with MEAN Stack
 
Introduction to Javascript
Introduction to JavascriptIntroduction to Javascript
Introduction to Javascript
 

Semelhante a Why MongoDB is lean and mean for startups

kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadKrivoy Rog IT Community
 
Building RESTtful services in MEAN
Building RESTtful services in MEANBuilding RESTtful services in MEAN
Building RESTtful services in MEANMadhukara Phatak
 
Deploying Perl apps on dotCloud
Deploying Perl apps on dotCloudDeploying Perl apps on dotCloud
Deploying Perl apps on dotClouddaoswald
 
Write less (code) and build more with serverless
Write less (code) and build more with serverlessWrite less (code) and build more with serverless
Write less (code) and build more with serverlessDhaval Nagar
 
Creating a custom API for a headless Drupal
Creating a custom API for a headless DrupalCreating a custom API for a headless Drupal
Creating a custom API for a headless DrupalExove
 
Not Your Father’s Web App: The Cloud-Native Architecture of images.nasa.gov
Not Your Father’s Web App: The Cloud-Native Architecture of images.nasa.govNot Your Father’s Web App: The Cloud-Native Architecture of images.nasa.gov
Not Your Father’s Web App: The Cloud-Native Architecture of images.nasa.govChris Shenton
 
Spark Workflow Management
Spark Workflow ManagementSpark Workflow Management
Spark Workflow ManagementRomi Kuntsman
 
Traveloka's journey to no ops streaming analytics
Traveloka's journey to no ops streaming analyticsTraveloka's journey to no ops streaming analytics
Traveloka's journey to no ops streaming analyticsRendy Bambang Junior
 
Serverless Big Data Architecture on Google Cloud Platform at Credit OK
Serverless Big Data Architecture on Google Cloud Platform at Credit OKServerless Big Data Architecture on Google Cloud Platform at Credit OK
Serverless Big Data Architecture on Google Cloud Platform at Credit OKKriangkrai Chaonithi
 
Laskar: High-Velocity GraphQL & Lambda-based Software Development Model
Laskar: High-Velocity GraphQL & Lambda-based Software Development ModelLaskar: High-Velocity GraphQL & Lambda-based Software Development Model
Laskar: High-Velocity GraphQL & Lambda-based Software Development ModelGarindra Prahandono
 
Seo for single page applications
Seo for single page applicationsSeo for single page applications
Seo for single page applicationsJustinGillespie12
 
Evolution of DBA in the Cloud Era
 Evolution of DBA in the Cloud Era Evolution of DBA in the Cloud Era
Evolution of DBA in the Cloud EraMydbops
 
Web App Prototypes with Google App Engine
Web App Prototypes with Google App EngineWeb App Prototypes with Google App Engine
Web App Prototypes with Google App EngineVlad Filippov
 
Postgres-XC as a Key Value Store Compared To MongoDB
Postgres-XC as a Key Value Store Compared To MongoDBPostgres-XC as a Key Value Store Compared To MongoDB
Postgres-XC as a Key Value Store Compared To MongoDBMason Sharp
 
Going Serverless with AWS Lambda at ReportGarden
Going Serverless with AWS Lambda at ReportGardenGoing Serverless with AWS Lambda at ReportGarden
Going Serverless with AWS Lambda at ReportGardenJay Gandhi
 
The great migration embracing serverless first
The great migration  embracing serverless first The great migration  embracing serverless first
The great migration embracing serverless first AngelaTimofte1
 
[AWS DC Meetup] Not Your Father’s WebApp: The Cloud-Native Architecture of im...
[AWS DC Meetup] Not Your Father’s WebApp: The Cloud-Native Architecture of im...[AWS DC Meetup] Not Your Father’s WebApp: The Cloud-Native Architecture of im...
[AWS DC Meetup] Not Your Father’s WebApp: The Cloud-Native Architecture of im...Chris Shenton
 

Semelhante a Why MongoDB is lean and mean for startups (20)

kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High load
 
Building RESTtful services in MEAN
Building RESTtful services in MEANBuilding RESTtful services in MEAN
Building RESTtful services in MEAN
 
Mean stack
Mean stackMean stack
Mean stack
 
Deploying Perl apps on dotCloud
Deploying Perl apps on dotCloudDeploying Perl apps on dotCloud
Deploying Perl apps on dotCloud
 
Write less (code) and build more with serverless
Write less (code) and build more with serverlessWrite less (code) and build more with serverless
Write less (code) and build more with serverless
 
Creating a custom API for a headless Drupal
Creating a custom API for a headless DrupalCreating a custom API for a headless Drupal
Creating a custom API for a headless Drupal
 
Not Your Father’s Web App: The Cloud-Native Architecture of images.nasa.gov
Not Your Father’s Web App: The Cloud-Native Architecture of images.nasa.govNot Your Father’s Web App: The Cloud-Native Architecture of images.nasa.gov
Not Your Father’s Web App: The Cloud-Native Architecture of images.nasa.gov
 
Spark Workflow Management
Spark Workflow ManagementSpark Workflow Management
Spark Workflow Management
 
Cloud arch patterns
Cloud arch patternsCloud arch patterns
Cloud arch patterns
 
Traveloka's journey to no ops streaming analytics
Traveloka's journey to no ops streaming analyticsTraveloka's journey to no ops streaming analytics
Traveloka's journey to no ops streaming analytics
 
Serverless Big Data Architecture on Google Cloud Platform at Credit OK
Serverless Big Data Architecture on Google Cloud Platform at Credit OKServerless Big Data Architecture on Google Cloud Platform at Credit OK
Serverless Big Data Architecture on Google Cloud Platform at Credit OK
 
Laskar: High-Velocity GraphQL & Lambda-based Software Development Model
Laskar: High-Velocity GraphQL & Lambda-based Software Development ModelLaskar: High-Velocity GraphQL & Lambda-based Software Development Model
Laskar: High-Velocity GraphQL & Lambda-based Software Development Model
 
Seo for single page applications
Seo for single page applicationsSeo for single page applications
Seo for single page applications
 
Evolution of DBA in the Cloud Era
 Evolution of DBA in the Cloud Era Evolution of DBA in the Cloud Era
Evolution of DBA in the Cloud Era
 
Web App Prototypes with Google App Engine
Web App Prototypes with Google App EngineWeb App Prototypes with Google App Engine
Web App Prototypes with Google App Engine
 
Postgres-XC as a Key Value Store Compared To MongoDB
Postgres-XC as a Key Value Store Compared To MongoDBPostgres-XC as a Key Value Store Compared To MongoDB
Postgres-XC as a Key Value Store Compared To MongoDB
 
Going Serverless with AWS Lambda at ReportGarden
Going Serverless with AWS Lambda at ReportGardenGoing Serverless with AWS Lambda at ReportGarden
Going Serverless with AWS Lambda at ReportGarden
 
The great migration embracing serverless first
The great migration  embracing serverless first The great migration  embracing serverless first
The great migration embracing serverless first
 
Dust.js
Dust.jsDust.js
Dust.js
 
[AWS DC Meetup] Not Your Father’s WebApp: The Cloud-Native Architecture of im...
[AWS DC Meetup] Not Your Father’s WebApp: The Cloud-Native Architecture of im...[AWS DC Meetup] Not Your Father’s WebApp: The Cloud-Native Architecture of im...
[AWS DC Meetup] Not Your Father’s WebApp: The Cloud-Native Architecture of im...
 

Mais de Oleg Podsechin

Why SaaS (in Helsinki)?
Why SaaS (in Helsinki)?Why SaaS (in Helsinki)?
Why SaaS (in Helsinki)?Oleg Podsechin
 
Staying safe in the cloud
Staying safe in the cloudStaying safe in the cloud
Staying safe in the cloudOleg Podsechin
 
Tips from angular js users anonymous
Tips from angular js users anonymousTips from angular js users anonymous
Tips from angular js users anonymousOleg Podsechin
 
AngularJS - the folly of choice
AngularJS - the folly of choiceAngularJS - the folly of choice
AngularJS - the folly of choiceOleg Podsechin
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startupsOleg Podsechin
 
Server side JavaScript: going all the way
Server side JavaScript: going all the wayServer side JavaScript: going all the way
Server side JavaScript: going all the wayOleg Podsechin
 
Current State of Server Side JavaScript
Current State of Server Side JavaScriptCurrent State of Server Side JavaScript
Current State of Server Side JavaScriptOleg Podsechin
 
The future of server side JavaScript
The future of server side JavaScriptThe future of server side JavaScript
The future of server side JavaScriptOleg Podsechin
 
Grid and Cloud Computing Intro
Grid and Cloud Computing IntroGrid and Cloud Computing Intro
Grid and Cloud Computing IntroOleg Podsechin
 

Mais de Oleg Podsechin (14)

Why SaaS (in Helsinki)?
Why SaaS (in Helsinki)?Why SaaS (in Helsinki)?
Why SaaS (in Helsinki)?
 
Staying safe in the cloud
Staying safe in the cloudStaying safe in the cloud
Staying safe in the cloud
 
Tips from angular js users anonymous
Tips from angular js users anonymousTips from angular js users anonymous
Tips from angular js users anonymous
 
AngularJS - the folly of choice
AngularJS - the folly of choiceAngularJS - the folly of choice
AngularJS - the folly of choice
 
RingoJS
RingoJSRingoJS
RingoJS
 
JS everywhere 2011
JS everywhere 2011JS everywhere 2011
JS everywhere 2011
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startups
 
Server side JavaScript: going all the way
Server side JavaScript: going all the wayServer side JavaScript: going all the way
Server side JavaScript: going all the way
 
Current State of Server Side JavaScript
Current State of Server Side JavaScriptCurrent State of Server Side JavaScript
Current State of Server Side JavaScript
 
On Platforms
On PlatformsOn Platforms
On Platforms
 
Common Node
Common NodeCommon Node
Common Node
 
The future of server side JavaScript
The future of server side JavaScriptThe future of server side JavaScript
The future of server side JavaScript
 
RingoJS
RingoJSRingoJS
RingoJS
 
Grid and Cloud Computing Intro
Grid and Cloud Computing IntroGrid and Cloud Computing Intro
Grid and Cloud Computing Intro
 

Why MongoDB is lean and mean for startups

  • 1. Lean and mean MongoDB or why MongoDB is good for start ups
  • 3.
  • 4. /whois olegp ● doing startups since 2000 – RIOT-E ● tech DD for investors since 2008 ● Startup Sauna coach ● new venture: StartHQ
  • 6.
  • 7. Web apps 101 ● REST API centric design ● One primary data store – Except blobs ● No premature optimization – e.g. caching
  • 9.
  • 10. Background Reading ● “How FriendFeed uses MySQL to store schemaless data” – “mariadb dynamic columns” ● “PostgreSQL as a schemaless database”
  • 12.
  • 13. The Pros ● Simpler schema design – Fewer many to one relationships – Design is part of development, not separate ● No DB setup step ● No DB migrations * ● No ORMs ● JSON as query language
  • 14.
  • 15. Hosting ● Amazon RDS: from $18 ● Heroku Postgres: from $10 ● MongoHQ & MongoLab: from FREE
  • 16. Database as a Service
  • 17.
  • 18. Database as a Service ● Web admin FTW – Saves you building your own ● No SSL – But on AWS you can't sniff traffic ● Expensive backups – But you can easily roll your own
  • 19. Some Code return db.getCollection("apps").find({ nameLowerCase:{ $regex:utils.prettify(request.queryParams.term) }, verified:true }, { name:true, url:true }).sort({'extractors.social.score':-1}) .limit(10).toArray().map(function(app) { return { label:app.name, value:app.url }; });
  • 20. Tools ● 10gen MMS ● Metrica ● Nodetime
  • 22.
  • 23. Getting Started ● try.mongodb.org ● “dailyjs lmaw” ● olegp/notes & olegp/tokenize
  • 24. Summary ● Optimize for ease of development ● Do design your schema ● Do not prematurely optimize ● Have fun!