Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Bootiful Mongo @ Tech Jam, Pune

988 views

Published on

Java is not dead and Mongo really is Web-Scale! Join us for a fast-paced, hands-on session where we will cover the new SpringIO Platform and specifically Spring Boot. We will also discuss Mongo DB and demonstrate its clustering, replication and partitioning capabilities.

Published in: Engineering
  • Be the first to comment

Bootiful Mongo @ Tech Jam, Pune

  1. 1. Paul Samargia and Steve Finck 03/12/2015
  2. 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. 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. 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. 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. 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
  7. 7. Page 7
  8. 8. What is MongoDB? • NoSQL Database • Document Store (JSON / BSON) • Databases • Collections • Chunks • Types – Object – Date – String – Boolean – … Page 8
  9. 9. Mongod and MongoVUE Page 9
  10. 10. Remember This Guy? Page 10 He was right! … but he’s still an idiot!
  11. 11. Brewers CAP Theorem Page 11 Sort of!
  12. 12. Scalability? Backups? Disaster Recovery? Page 12
  13. 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. 14. The Aliens Are Invading… Page 14
  15. 15. Remember Chemistry? Page 15
  16. 16. Tying It All Together Page 16
  17. 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

×