SlideShare a Scribd company logo
1 of 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

More Related Content

More from 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
 

More from 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
 

Recently uploaded

UNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxUNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxkalpana413121
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdfKamal Acharya
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdfAldoGarca30
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARKOUSTAV SARKAR
 
fitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptfitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptAfnanAhmad53
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxSCMS School of Architecture
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdfKamal Acharya
 
Augmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptxAugmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptxMustafa Ahmed
 
Digital Communication Essentials: DPCM, DM, and ADM .pptx
Digital Communication Essentials: DPCM, DM, and ADM .pptxDigital Communication Essentials: DPCM, DM, and ADM .pptx
Digital Communication Essentials: DPCM, DM, and ADM .pptxpritamlangde
 
Introduction to Geographic Information Systems
Introduction to Geographic Information SystemsIntroduction to Geographic Information Systems
Introduction to Geographic Information SystemsAnge Felix NSANZIYERA
 
Basic Electronics for diploma students as per technical education Kerala Syll...
Basic Electronics for diploma students as per technical education Kerala Syll...Basic Electronics for diploma students as per technical education Kerala Syll...
Basic Electronics for diploma students as per technical education Kerala Syll...ppkakm
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdfKamal Acharya
 
Post office management system project ..pdf
Post office management system project ..pdfPost office management system project ..pdf
Post office management system project ..pdfKamal Acharya
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsvanyagupta248
 
Computer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesComputer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesChandrakantDivate1
 
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...ronahami
 
Convergence of Robotics and Gen AI offers excellent opportunities for Entrepr...
Convergence of Robotics and Gen AI offers excellent opportunities for Entrepr...Convergence of Robotics and Gen AI offers excellent opportunities for Entrepr...
Convergence of Robotics and Gen AI offers excellent opportunities for Entrepr...ssuserdfc773
 

Recently uploaded (20)

UNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxUNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptx
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
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
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
 
fitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptfitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .ppt
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdf
 
Augmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptxAugmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptx
 
Signal Processing and Linear System Analysis
Signal Processing and Linear System AnalysisSignal Processing and Linear System Analysis
Signal Processing and Linear System Analysis
 
Digital Communication Essentials: DPCM, DM, and ADM .pptx
Digital Communication Essentials: DPCM, DM, and ADM .pptxDigital Communication Essentials: DPCM, DM, and ADM .pptx
Digital Communication Essentials: DPCM, DM, and ADM .pptx
 
Introduction to Geographic Information Systems
Introduction to Geographic Information SystemsIntroduction to Geographic Information Systems
Introduction to Geographic Information Systems
 
Basic Electronics for diploma students as per technical education Kerala Syll...
Basic Electronics for diploma students as per technical education Kerala Syll...Basic Electronics for diploma students as per technical education Kerala Syll...
Basic Electronics for diploma students as per technical education Kerala Syll...
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
Post office management system project ..pdf
Post office management system project ..pdfPost office management system project ..pdf
Post office management system project ..pdf
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
Computer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesComputer Graphics Introduction To Curves
Computer Graphics Introduction To Curves
 
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
 
Convergence of Robotics and Gen AI offers excellent opportunities for Entrepr...
Convergence of Robotics and Gen AI offers excellent opportunities for Entrepr...Convergence of Robotics and Gen AI offers excellent opportunities for Entrepr...
Convergence of Robotics and Gen AI offers excellent opportunities for Entrepr...
 

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