Upload
tugdual-grall
View
196
Download
0
Embed Size (px)
Citation preview
© 2014 MapR Technologies ‹#›© 2014 MapR Technologies
Proud to be Polyglot!Tugdual Grall @tgrall
June 11, 2015
© 2015 MapR Technologies ‹#›@tgrall
Modern Applications• Modern Applications Must
• Manage any type of data • Scale • Be fault tolerant • Adapt to change
© 2015 MapR Technologies ‹#›@tgrall
Current Architecture• Mono-Technology
• Single “language/architecture” • Single Database : RDBMS
• One size fits all approach
JSP/JSFServices
MessagingJTA
DAO/JPA
© 2015 MapR Technologies ‹#›@tgrall
Is it good for me?• Many Files
• XML, Sources, Configuration, … • Does Hibernate/JPA is good for all?
• Impedance mismatch • Need to scale
• From 0 to 50 millions users in 6 weeks • 1Tb of data each day
• How easy is to add new features? • Changing code, updating data structure, … • And all this for yesterday !
© 2014 MapR Technologies ‹#›@tgrall
One size does NOT fit all!
© 2014 MapR Technologies ‹#›@tgrall
Let’s look at our data…
6
© 2014 MapR Technologies ‹#›
Big Data
© 2014 MapR Technologies ‹#›
Big Users
http://www.theconnectivist.com/ & Cisco
© 2015 MapR Technologies ‹#›@tgrall
. . .App Server
RDBMS
Application
Scale out Add more “Web” servers
RDBMS
Scale Up Get bigger server
Stay up!…. and Scale
© 2015 MapR Technologies ‹#›@tgrall
Scaling out RDBMS• Run many RDBMS Servers
• Data could be partitioned • Done by the application code
• Caching Layer
. . .App Server
. . .Memcached
. . .MySQL
© 2015 MapR Technologies ‹#›@tgrall
NoSQL to Scale Out!
. . .
NoSQL
App Server
. . .
Application
Scale out Add more “Web” servers
NoSQL
Scale Out Add more servers
© 2015 MapR Technologies ‹#›@tgrall
Operational vs Analytics Databases
Warehouse, AnalyticsApplications, Interactions
© 2015 MapR Technologies ‹#›@tgrall
Polyglot Persistence
Big Data/Analysis NoSQL RDBMS
• Log Capture• Recommendations• Predictions• Ad Campaign
• Products• User Profiles• Game Actions• Sessions• Shopping Cart
• Financial Data• Reporting
© 2015 MapR Technologies ‹#›@tgrall
© 2015 MapR Technologies ‹#›@tgrall
Data Service Layer• Wrap data call in Services
– loosely coupled
. . .App Server
© 2015 MapR Technologies ‹#›@tgrall
Use Case : Personalization
WebSite / Application
Personalization Database
Data Processing
Logs
Application
Data
© 2015 MapR Technologies ‹#›@tgrall
Use Case : Mobile / API
PIM Database
• Legacy Application
• Product Information
NoSQL
• REST API
• Product Data
• Additional Metadata
© 2014 MapR Technologies ‹#›
Now What? Now What?
© 2015 MapR Technologies ‹#›@tgrall
Why multiple languages?• Sometimes we have no choice
• HTML/CSS/JavaScript + Server Side • Mobile Native Applications
• Java/.Net are slow movers • Java EE 5.0 is still mainstream (2006!!)
• Many languages and frameworks • Scala, Clojure, Groovy, Dart, Go, Ruby, Python, F#, Erlang,
Node.js, Rails, Play!, Grails, ...
© 2015 MapR Technologies ‹#›@tgrall
Examples• Realtime interaction with WebSockets :
• Wait for Java EE 7 to supported by your IT? • Hack your app server and application with Continuation ? • Use Node.js and Socket.io ?
• Data Collection and Treatment? • Find a library? • Create your library? • Use Java 8 and Lambdas? • Use Scala?
© 2015 MapR Technologies ‹#›@tgrall
Examples• Simple CRUD Application
• Use the JavaEE stack with JPA and JSF? • Use Spring ? • Use tools like Play!, Grails, Rails, MEAN ?
© 2015 MapR Technologies ‹#›@tgrall
How to chose?• Maturity/Supportability • Features Set • Learning Curve • Productivity
© 2015 MapR Technologies ‹#›@tgrall
Use Case : Second Screen Experience
. . .Node.js + Socket IO
Play! ApplicationPython Scripts
© 2015 MapR Technologies ‹#›@tgrall
Use Case : Recommendation
WebSite / Application
Machine Learning / Recommendation
Data Processing
User Activity Application
Data
© 2014 MapR Technologies ‹#›@tgrall
Demonstration
© 2015 MapR Technologies ‹#›@tgrall
Conclusion• Use the good tool for the good task
• Do not try to “hack” something when you have a simpler solution
• Think about your users first... so deliver and get feedback • Learning is part of our job !
• And this will help you and your project • What about maintenance?
• Do you think it is easier to maintain complex old code?
© 2014 MapR Technologies ‹#›
Questions
© 2014 MapR Technologies ‹#›© 2014 MapR Technologies
Proud to be Polyglot!Tugdual Grall @tgrall
June 11, 2015