SlideShare una empresa de Scribd logo
1 de 17
Paul Samargia and Steve Finck
03/12/2015
How do you get Bootiful?
• Start - start.spring.io
• IO – It’s not you, use IO
• Boot - you know you want to!
• Data – It’s necessary for the REST of the show
Page 2
start.spring.io
• Use this website to create a base Spring-enabled Maven/Gradle
project
• Once you download the .zip, you’ll see you get:
• pom.xml/build.gradle
• Spring-dependencies utilizing IO Platform
• src/main/java, src/main/resources & src/test/java directory structure
• Spring-boot enabled, annotation based @Configuration class
• JUnit context-aware test case
Page 3
IO Platform
• Cohesive, Versioned Platform of all Spring projects and
dependencies
• Aims to reduce version dependency nightmares within Spring
projects and transitive dependencies
• Just think of it as a BOM for all Spring projects and their
dependencies
• Example of versioning it wraps into a single versioned product:
– http://docs.spring.io/platform/docs/1.1.1.RELEASE/reference/html
single/#appendix-dependency-versions
Page 4
Boot
• Easily create ‘runnable’ Spring applications
• Embed Tomcat or Jetty directly (no need to deploy WAR files)
• Provides ‘starter’ POMs to simply Maven/Gradle configuration
• Provides production-ready features for metrics, health checks,
and external configurations
• Absolutely no code generation or requirement for XML
• Actuator
– Provides JMX/REST endpoints for monitoring
– A list of them can be found at: http://docs.spring.io/spring-
boot/docs/current-SNAPSHOT/reference/htmlsingle/#production-
ready-endpoints
Page 5
Data / Data REST
• Easy to use data access for many different technologies
(includes relational, non-relational, map reduce and cloud
data services)
• Query definition can be derived from method name
– Examples: http://docs.spring.io/spring-
data/jpa/docs/1.7.0.RELEASE/reference/html/#jpa.query-
methods
• Single annotation, @RestRepositoryRestResource, on your
Repository provides REST support for CRUD options (including
custom-defined methods)
• REST calls include validation support using JSR-303
• REST uses HAL to render responses
(https://tools.ietf.org/html/draft-kelly-json-hal-06)
Page 6
Page 7
What is MongoDB?
• NoSQL Database
• Document Store (JSON / BSON)
• Databases
• Collections
• Chunks
• Types
– Object
– Date
– String
– Boolean
– …
Page 8
Mongod and MongoVUE
Page 9
Remember This Guy?
Page 10
He was right! … but he’s still an idiot!
Brewers CAP Theorem
Page 11
Sort of!
Scalability? Backups? Disaster Recovery?
Page 12
Page 13
Server 3
Server 2
Server 1 Config
Server
Shard 1
Config
Server
Config
Server
Shard 1
Shard 1
Shard 2
Shard 2
Shard 2
Router 1
Router 2
The Aliens Are Invading…
Page 14
Remember Chemistry?
Page 15
Tying It All Together
Page 16
References
• Legit
– http://blog.mongodb.org/post/475279604/on-distributed-
consistency-part-1
– http://stevefinck.blogspot.com/2014/10/setting-up-mongodb-
cluster.html
– http://www.dataversity.net/acid-vs-base-the-shifting-ph-of-
database-transaction-processing/
– http://www.johndcook.com/blog/2009/07/06/brewer-cap-
theorem-base/
– https://www.digitalocean.com/community/tutorials/a-
comparison-of-nosql-database-management-systems-and-
models
• Humor Me
– http://www.youtube.com/watch?v=b2F-DItXtZs
– http://en.wikipedia.org/wiki/All_your_base_are_belong_to_us
Page 17

Más contenido relacionado

Más de Naresh Jain

Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh Jain
 
Pilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert VirdingPilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert VirdingNaresh Jain
 
Concurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco CesariniConcurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco CesariniNaresh Jain
 
Erlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco CesariniErlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco CesariniNaresh Jain
 
Anatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur DatarAnatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur DatarNaresh Jain
 
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile AppSetting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile AppNaresh Jain
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Naresh Jain
 
No Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKennaNo Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKennaNaresh Jain
 
Functional Programming Conference 2016
Functional Programming Conference 2016Functional Programming Conference 2016
Functional Programming Conference 2016Naresh Jain
 
Agile India 2017 Conference
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 ConferenceNaresh Jain
 
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo KimGetting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo KimNaresh Jain
 
MVP Design Hacks
MVP Design HacksMVP Design Hacks
MVP Design HacksNaresh Jain
 
Functional Conf 2015
Functional Conf 2015Functional Conf 2015
Functional Conf 2015Naresh Jain
 
Agile India 2016 Conference
Agile India 2016 ConferenceAgile India 2016 Conference
Agile India 2016 ConferenceNaresh Jain
 
Test Driving a jQuery Plugin
Test Driving a jQuery PluginTest Driving a jQuery Plugin
Test Driving a jQuery PluginNaresh Jain
 
Making Sense Through Action by Dave Snowden
Making Sense Through Action by Dave SnowdenMaking Sense Through Action by Dave Snowden
Making Sense Through Action by Dave SnowdenNaresh Jain
 
Oh Oh To Functional
Oh Oh To FunctionalOh Oh To Functional
Oh Oh To FunctionalNaresh Jain
 
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh JainTechniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh JainNaresh Jain
 

Más de Naresh Jain (20)

Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Pilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert VirdingPilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert Virding
 
Concurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco CesariniConcurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco Cesarini
 
Erlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco CesariniErlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco Cesarini
 
Anatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur DatarAnatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur Datar
 
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile AppSetting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile App
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas
 
No Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKennaNo Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKenna
 
Functional Programming Conference 2016
Functional Programming Conference 2016Functional Programming Conference 2016
Functional Programming Conference 2016
 
Agile India 2017 Conference
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 Conference
 
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo KimGetting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
 
MVP Design Hacks
MVP Design HacksMVP Design Hacks
MVP Design Hacks
 
Functional Conf 2015
Functional Conf 2015Functional Conf 2015
Functional Conf 2015
 
Agile India 2016 Conference
Agile India 2016 ConferenceAgile India 2016 Conference
Agile India 2016 Conference
 
Test Driving a jQuery Plugin
Test Driving a jQuery PluginTest Driving a jQuery Plugin
Test Driving a jQuery Plugin
 
Making Sense Through Action by Dave Snowden
Making Sense Through Action by Dave SnowdenMaking Sense Through Action by Dave Snowden
Making Sense Through Action by Dave Snowden
 
Oh Oh To Functional
Oh Oh To FunctionalOh Oh To Functional
Oh Oh To Functional
 
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh JainTechniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
 

Último

Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...SUHANI PANDEY
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756dollysharma2066
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VDineshKumar4165
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfJiananWang21
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptDineshKumar4165
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . pptDineshKumar4165
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfRagavanV2
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptxJIT KUMAR GUPTA
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdfKamal Acharya
 

Último (20)

Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdf
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 

Bootiful Mongo @ Tech Jam, Pune

  • 1. Paul Samargia and Steve Finck 03/12/2015
  • 2. How do you get Bootiful? • Start - start.spring.io • IO – It’s not you, use IO • Boot - you know you want to! • Data – It’s necessary for the REST of the show Page 2
  • 3. start.spring.io • Use this website to create a base Spring-enabled Maven/Gradle project • Once you download the .zip, you’ll see you get: • pom.xml/build.gradle • Spring-dependencies utilizing IO Platform • src/main/java, src/main/resources & src/test/java directory structure • Spring-boot enabled, annotation based @Configuration class • JUnit context-aware test case Page 3
  • 4. IO Platform • Cohesive, Versioned Platform of all Spring projects and dependencies • Aims to reduce version dependency nightmares within Spring projects and transitive dependencies • Just think of it as a BOM for all Spring projects and their dependencies • Example of versioning it wraps into a single versioned product: – http://docs.spring.io/platform/docs/1.1.1.RELEASE/reference/html single/#appendix-dependency-versions Page 4
  • 5. Boot • Easily create ‘runnable’ Spring applications • Embed Tomcat or Jetty directly (no need to deploy WAR files) • Provides ‘starter’ POMs to simply Maven/Gradle configuration • Provides production-ready features for metrics, health checks, and external configurations • Absolutely no code generation or requirement for XML • Actuator – Provides JMX/REST endpoints for monitoring – A list of them can be found at: http://docs.spring.io/spring- boot/docs/current-SNAPSHOT/reference/htmlsingle/#production- ready-endpoints Page 5
  • 6. Data / Data REST • Easy to use data access for many different technologies (includes relational, non-relational, map reduce and cloud data services) • Query definition can be derived from method name – Examples: http://docs.spring.io/spring- data/jpa/docs/1.7.0.RELEASE/reference/html/#jpa.query- methods • Single annotation, @RestRepositoryRestResource, on your Repository provides REST support for CRUD options (including custom-defined methods) • REST calls include validation support using JSR-303 • REST uses HAL to render responses (https://tools.ietf.org/html/draft-kelly-json-hal-06) Page 6
  • 8. What is MongoDB? • NoSQL Database • Document Store (JSON / BSON) • Databases • Collections • Chunks • Types – Object – Date – String – Boolean – … Page 8
  • 10. Remember This Guy? Page 10 He was right! … but he’s still an idiot!
  • 12. Scalability? Backups? Disaster Recovery? Page 12
  • 13. Page 13 Server 3 Server 2 Server 1 Config Server Shard 1 Config Server Config Server Shard 1 Shard 1 Shard 2 Shard 2 Shard 2 Router 1 Router 2
  • 14. The Aliens Are Invading… Page 14
  • 16. Tying It All Together Page 16
  • 17. References • Legit – http://blog.mongodb.org/post/475279604/on-distributed- consistency-part-1 – http://stevefinck.blogspot.com/2014/10/setting-up-mongodb- cluster.html – http://www.dataversity.net/acid-vs-base-the-shifting-ph-of- database-transaction-processing/ – http://www.johndcook.com/blog/2009/07/06/brewer-cap- theorem-base/ – https://www.digitalocean.com/community/tutorials/a- comparison-of-nosql-database-management-systems-and- models • Humor Me – http://www.youtube.com/watch?v=b2F-DItXtZs – http://en.wikipedia.org/wiki/All_your_base_are_belong_to_us Page 17