SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
Proud to be Polygot!
Tugdual “Tug” Grall
@tgrall
Technical Evangelist at

Wednesday, November 6, 13

.
{about : “me”}
• Tugdual “Tug” Grall
­ Couchbase
­ Technical Evangelist
­ eXo
­ CTO
­ Oracle
­ Developer/Product Manager
­ Mainly Java/SOA
­ Developer in consulting firms

Wednesday, November 6, 13

• Web
­

@tgrall

­

http://blog.grallandco.com

­

tgrall

­ NantesJUG co-founder
­ Pet Project :
­ http://www.resultri.com
­ tug@couchbase.com
­ tugdual@gmail.com
Modern Applications
• Modern Applications Must
­ Manage any type of data
­ Scale
­ Be fault	
  tolerant
­ Adapt to change

Wednesday, November 6, 13
Standard Architecture
• Mono-Technology
­ Same “language/architecture”
­ Single Database : RDBMS

• One size fits all approach

Wednesday, November 6, 13

JSP/JSF
Services
Messaging
JTA
DAO/JPA
Is it good for me?
• Many files
- XML, Sources, ..
• Hibernate/JPA is good for all?
- Impedance mismatch
• Need to scale
- from 0 to 50millions users in
6 weeks (real life)
- can I do that easily with such
architecture?

Wednesday, November 6, 13

• How to add new features
easily?
- code, schema change, ...
- and all this for yesterday!
• Lot of code
One	
  size	
  does	
  NOT	
  fit	
  all!

Wednesday, November 6, 13
Look at our Data....

Wednesday, November 6, 13
Big	
  Data

High Data Variety and Velocity

Trillions	
  of	
  Gigabytes	
  (Ze:abytes)

2.00

1.50

Unstructured	
  and	
  Semi-­‐
Structured	
  Data

1.00

Text,	
  Log	
  Files,	
  Click	
  
Streams,	
  Blogs,	
  
Tweets,	
  Audio,	
  Video,	
  
etc.

0.50

0

Structured	
  Data

2006

2009
Source:	
  IDC	
  

Wednesday, November 6, 13

More	
  Flexible	
  Data	
  Model	
  Required

2012
50	
  Million	
  Users	
  in	
  50	
  Days
Draw	
  Something	
  by	
  OMGPOP
Daily	
  Ac)ve	
  Users	
  (millions)
16

14

12

10

8

6

4

2

2/6

8

Wednesday, November 6, 13

10

12

14

16

18

20

22

24

26

28

3/1

3

5

7

9

11

13

15

17

19

21
How do you take this growth?
ApplicaXon	
  Scales	
  Out
Just	
  add	
  more	
  commodity	
  web	
  servers
System	
  Cost
ApplicaMon	
  Performance	
  

Web/App	
  Server	
  Tier

Users

RDBMS	
  Scales	
  Up
Get	
  a	
  bigger,	
  more	
  complex	
  server
System	
  Cost
ApplicaMon	
  Performance	
  

Won’t	
  scale	
  
beyond	
  this	
  
point
RelaXonal	
  Database
Users

Wednesday, November 6, 13
NoSQL Technology Scales Out
ApplicaXon	
  Scales	
  Out
Just	
  add	
  more	
  commodity	
  web	
  servers
System	
  Cost
ApplicaMon	
  Performance	
  

Web/App	
  Server	
  Tier

Users

NoSQL	
  Database	
  Scales	
  Out
Cost	
  and	
  performance	
  mirrors	
  app	
  Xer
System	
  Cost
ApplicaMon	
  Performance	
  

NoSQL	
  Distributed	
  Data	
  Store

Users

Wednesday, November 6, 13
OperaMonal	
  vs.	
  AnalyMc	
  Databases
Real-­‐Xme,	
  
InteracXve	
  Databases

AnalyXc
Databases

NoSQL
Fast	
  access	
  
to	
  data

Couchbase
MongoDB

Wednesday, November 6, 13

Get	
  insights	
  from	
  
data

Cloudera
Hortonworks
Mapr
Polyglot Persistence

Big	
  Data/Analysis

•	
  Log	
  Capture
•	
  RecommendaMons
•	
  AdCampaign

Wednesday, November 6, 13

Document	
  &	
  K/V

•	
  Products
•	
  User	
  Profiles
•	
  Game	
  AcMons
•	
  Sessions
•	
  Shopping	
  Cart

RDBMS

•	
  Financial	
  Data
•	
  ReporMng

Indexing

•Full	
  Text	
  Search
•Ad	
  hoc	
  queries
Developer New Skills
• Understand the pros/cons of each solutions
­ Programming API
­ How to access the data? (API, Query Languages)
• Learn how to design data-model
­ De-normalizing and duplicate data is not a problem
• Integrate each solution to your application

Wednesday, November 6, 13
Data Service Layer
• Wrap datastore in Services
- Loosely coupled
Data	
  Service

Wednesday, November 6, 13
Use Case : Content Driven Site

Wednesday, November 6, 13
Use Case: Mobile Services
Web/App	
  Server	
  Tier

Web/App	
  Server	
  Tier

Rabbit	
  MQ
PIM	
  Database
-­‐	
  Legacy	
  ApplicaXon
-­‐	
  Product	
  InformaXon

Wednesday, November 6, 13

NoSQL
-­‐	
  Product	
  Data
-­‐	
  AddiXonal	
  Metada
Now what?

Wednesday, November 6, 13
Why multiple languages?
• Sometimes we have no choice
­ HTML/CSS/JavaScript + Server Side
­ Mobile Native Applications
• Java/.Net have not evolved that must these past years
­ 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, ...

Wednesday, November 6, 13
Examples
• Realtime interaction with WebSockets
- Wait for Java EE 7 to be out?
- Hack your app server and application with Continuation ?
- Use Node.js and Socket.io ?
• Data Collection and Treatment?
- Find a library?
- Create your library?
- Wait for Java 8 and Lambdas?
- Use Scala? ... or other

Wednesday, November 6, 13
Examples
• Simple CRUD Application
­ Use the JavaEE stack with JPA and JSF?
­ Use Spring ?
­ Use tools like Play!, Grails, Rails ?

Wednesday, November 6, 13
How to chose?
• Maturity/Supportability
• Features Set
• Learning Curve
• Productivity

Wednesday, November 6, 13
Polyglot Programming in Action
• Build a distributed database
­ Manage distributed
processes
­ Save and retrieve data on
disk
­ Cache the data on RAM
­ Build a query engine

Wednesday, November 6, 13
Polyglot Programming in Action
• Manage Distributed Process
­ Erlang and OTP (Open Telecom Platform) has been built for that
­ Taking this will bootstrap a project quickly instead of implementing in
another language
• Data access and Caching
­ C/C++ is the best/fastest way to interact with I/O
­ Leverage existing Caching layer, for example Memcached written in C
• Query & Indexing
­ Easy to code for developer : Let’s use JavaScript

Wednesday, November 6, 13
Couchbase Server

Query	
  Engine

Query	
  API

11210	
  /	
  11211

8091
Admin	
  Console

Data	
  access	
  ports

hbp

Object-­‐managed
Cache

Data	
  Manager
Wriben	
  in	
  C/C++

REST	
  management	
  
API/Web	
  UI

Cluster	
  Manager
ReplicaMon,	
   ebalance,	
  	
  
Wriben	
  Sitate	
  RErlang
n	
   Manager
Shard	
  
Erlang	
  /OTP

8092

Storage	
  Engine

Data	
  Manager

Wednesday, November 6, 13

Cluster	
  Manager
Use Case: Second Screen Gaming
AdministraXon

Java/Play	
  ApplicaXon
Python	
  scrips

Wednesday, November 6, 13

Users

Node.js	
  +	
  Socket	
  IO
Conclusion
• Use the good tool for the good task
­ Do not try to “hack” something when you have a shorter 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

• Operations / DevOps
­ Think about it from day one... as a developer

• What about maintenance?
­ Do you think it is easier to maintain complex code?

Wednesday, November 6, 13
Q&A
@tgrall
tug@couchbase.com

Wednesday, November 6, 13

Más contenido relacionado

La actualidad más candente

Node.js: its potential in healthcare
Node.js: its potential in healthcareNode.js: its potential in healthcare
Node.js: its potential in healthcareRob Tweed
 
Ramunas Balukonis. Research DWH
Ramunas Balukonis. Research DWHRamunas Balukonis. Research DWH
Ramunas Balukonis. Research DWHVolha Banadyseva
 
Hadoop based etl and solr based semantic search
Hadoop based etl and solr based semantic searchHadoop based etl and solr based semantic search
Hadoop based etl and solr based semantic searchZoltan Varju
 
Using a Fast Operational Database to Build Real-time Streaming Aggregations
Using a Fast Operational Database to Build Real-time Streaming AggregationsUsing a Fast Operational Database to Build Real-time Streaming Aggregations
Using a Fast Operational Database to Build Real-time Streaming AggregationsVoltDB
 
Analyser vos logs avec Ingensi
Analyser vos logs avec IngensiAnalyser vos logs avec Ingensi
Analyser vos logs avec IngensiCyrès
 
RDBMS & noSQL: Mixed for best performance
RDBMS & noSQL: Mixed for best performanceRDBMS & noSQL: Mixed for best performance
RDBMS & noSQL: Mixed for best performanceJavier Tomas Zon
 
Ideas spracklen-final
Ideas spracklen-finalIdeas spracklen-final
Ideas spracklen-finalsupportlogic
 
Polyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesPolyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesLuca Garulli
 
From Data Analytics to Fast Data Intelligence
From Data Analytics to Fast Data IntelligenceFrom Data Analytics to Fast Data Intelligence
From Data Analytics to Fast Data IntelligenceTrieu Nguyen
 
Veritas + MongoDB
Veritas + MongoDBVeritas + MongoDB
Veritas + MongoDBMongoDB
 
MongoDB in a Mainframe World
MongoDB in a Mainframe WorldMongoDB in a Mainframe World
MongoDB in a Mainframe WorldMongoDB
 
What is NoSQL and CAP Theorem
What is NoSQL and CAP TheoremWhat is NoSQL and CAP Theorem
What is NoSQL and CAP TheoremRahul Jain
 
Beyond the Basics 1: Storage Engines
Beyond the Basics 1: Storage Engines	Beyond the Basics 1: Storage Engines
Beyond the Basics 1: Storage Engines MongoDB
 
Voxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big Data
Voxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big DataVoxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big Data
Voxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big DataVoxxed Athens
 
Production-Ready BIG ML Workflows - from zero to hero
Production-Ready BIG ML Workflows - from zero to heroProduction-Ready BIG ML Workflows - from zero to hero
Production-Ready BIG ML Workflows - from zero to heroDaniel Marcous
 
MongoDB Breakfast Milan - Mainframe Offloading Strategies
MongoDB Breakfast Milan -  Mainframe Offloading StrategiesMongoDB Breakfast Milan -  Mainframe Offloading Strategies
MongoDB Breakfast Milan - Mainframe Offloading StrategiesMongoDB
 
What is a good technology stack today?
What is a good technology stack today?What is a good technology stack today?
What is a good technology stack today?Netlight Consulting
 

La actualidad más candente (18)

Node.js: its potential in healthcare
Node.js: its potential in healthcareNode.js: its potential in healthcare
Node.js: its potential in healthcare
 
Ramunas Balukonis. Research DWH
Ramunas Balukonis. Research DWHRamunas Balukonis. Research DWH
Ramunas Balukonis. Research DWH
 
Hadoop based etl and solr based semantic search
Hadoop based etl and solr based semantic searchHadoop based etl and solr based semantic search
Hadoop based etl and solr based semantic search
 
Using a Fast Operational Database to Build Real-time Streaming Aggregations
Using a Fast Operational Database to Build Real-time Streaming AggregationsUsing a Fast Operational Database to Build Real-time Streaming Aggregations
Using a Fast Operational Database to Build Real-time Streaming Aggregations
 
Analyser vos logs avec Ingensi
Analyser vos logs avec IngensiAnalyser vos logs avec Ingensi
Analyser vos logs avec Ingensi
 
RDBMS & noSQL: Mixed for best performance
RDBMS & noSQL: Mixed for best performanceRDBMS & noSQL: Mixed for best performance
RDBMS & noSQL: Mixed for best performance
 
Ideas spracklen-final
Ideas spracklen-finalIdeas spracklen-final
Ideas spracklen-final
 
Squeezing Web Performance
Squeezing Web PerformanceSqueezing Web Performance
Squeezing Web Performance
 
Polyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesPolyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model Databases
 
From Data Analytics to Fast Data Intelligence
From Data Analytics to Fast Data IntelligenceFrom Data Analytics to Fast Data Intelligence
From Data Analytics to Fast Data Intelligence
 
Veritas + MongoDB
Veritas + MongoDBVeritas + MongoDB
Veritas + MongoDB
 
MongoDB in a Mainframe World
MongoDB in a Mainframe WorldMongoDB in a Mainframe World
MongoDB in a Mainframe World
 
What is NoSQL and CAP Theorem
What is NoSQL and CAP TheoremWhat is NoSQL and CAP Theorem
What is NoSQL and CAP Theorem
 
Beyond the Basics 1: Storage Engines
Beyond the Basics 1: Storage Engines	Beyond the Basics 1: Storage Engines
Beyond the Basics 1: Storage Engines
 
Voxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big Data
Voxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big DataVoxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big Data
Voxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big Data
 
Production-Ready BIG ML Workflows - from zero to hero
Production-Ready BIG ML Workflows - from zero to heroProduction-Ready BIG ML Workflows - from zero to hero
Production-Ready BIG ML Workflows - from zero to hero
 
MongoDB Breakfast Milan - Mainframe Offloading Strategies
MongoDB Breakfast Milan -  Mainframe Offloading StrategiesMongoDB Breakfast Milan -  Mainframe Offloading Strategies
MongoDB Breakfast Milan - Mainframe Offloading Strategies
 
What is a good technology stack today?
What is a good technology stack today?What is a good technology stack today?
What is a good technology stack today?
 

Destacado

How an Enterprise Data Fabric (EDF) can improve resiliency and performance
How an Enterprise Data Fabric (EDF) can improve resiliency and performanceHow an Enterprise Data Fabric (EDF) can improve resiliency and performance
How an Enterprise Data Fabric (EDF) can improve resiliency and performancegojkoadzic
 
제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30
제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30
제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30Donghan Kim
 
Polyglot persitence
Polyglot persitencePolyglot persitence
Polyglot persitenceStamo Petkov
 
Developing modular, polyglot applications with Spring (SpringOne India 2012)
Developing modular, polyglot applications with Spring (SpringOne India 2012)Developing modular, polyglot applications with Spring (SpringOne India 2012)
Developing modular, polyglot applications with Spring (SpringOne India 2012)Chris Richardson
 
Polyglot Persistence with OSGi - Alexander Grzesik
Polyglot Persistence with OSGi - Alexander GrzesikPolyglot Persistence with OSGi - Alexander Grzesik
Polyglot Persistence with OSGi - Alexander Grzesikmfrancis
 
OrientDB vs Neo4j - Comparison of query/speed/functionality
OrientDB vs Neo4j - Comparison of query/speed/functionalityOrientDB vs Neo4j - Comparison of query/speed/functionality
OrientDB vs Neo4j - Comparison of query/speed/functionalityCurtis Mosters
 

Destacado (8)

SRTA_Company Profile 2015
SRTA_Company Profile 2015SRTA_Company Profile 2015
SRTA_Company Profile 2015
 
How an Enterprise Data Fabric (EDF) can improve resiliency and performance
How an Enterprise Data Fabric (EDF) can improve resiliency and performanceHow an Enterprise Data Fabric (EDF) can improve resiliency and performance
How an Enterprise Data Fabric (EDF) can improve resiliency and performance
 
제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30
제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30
제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30
 
Polyglot Persistence
Polyglot PersistencePolyglot Persistence
Polyglot Persistence
 
Polyglot persitence
Polyglot persitencePolyglot persitence
Polyglot persitence
 
Developing modular, polyglot applications with Spring (SpringOne India 2012)
Developing modular, polyglot applications with Spring (SpringOne India 2012)Developing modular, polyglot applications with Spring (SpringOne India 2012)
Developing modular, polyglot applications with Spring (SpringOne India 2012)
 
Polyglot Persistence with OSGi - Alexander Grzesik
Polyglot Persistence with OSGi - Alexander GrzesikPolyglot Persistence with OSGi - Alexander Grzesik
Polyglot Persistence with OSGi - Alexander Grzesik
 
OrientDB vs Neo4j - Comparison of query/speed/functionality
OrientDB vs Neo4j - Comparison of query/speed/functionalityOrientDB vs Neo4j - Comparison of query/speed/functionality
OrientDB vs Neo4j - Comparison of query/speed/functionality
 

Similar a Proud to be Polygot! Technical Evangelist Shares Benefits of Multi-Language Development

Introduction to NoSQL with Couchbase
Introduction to NoSQL with CouchbaseIntroduction to NoSQL with Couchbase
Introduction to NoSQL with CouchbaseTugdual Grall
 
Softshake 2013: Introduction to NoSQL with Couchbase
Softshake 2013: Introduction to NoSQL with CouchbaseSoftshake 2013: Introduction to NoSQL with Couchbase
Softshake 2013: Introduction to NoSQL with CouchbaseTugdual Grall
 
Why and How to integrate Hadoop and NoSQL?
Why and How to integrate Hadoop and NoSQL?Why and How to integrate Hadoop and NoSQL?
Why and How to integrate Hadoop and NoSQL?Tugdual Grall
 
Design Choices for Cloud Data Platforms
Design Choices for Cloud Data PlatformsDesign Choices for Cloud Data Platforms
Design Choices for Cloud Data PlatformsAshish Mrig
 
Data Platform in the Cloud
Data Platform in the CloudData Platform in the Cloud
Data Platform in the CloudAmihay Zer-Kavod
 
Machine learning and big data @ uber a tale of two systems
Machine learning and big data @ uber a tale of two systemsMachine learning and big data @ uber a tale of two systems
Machine learning and big data @ uber a tale of two systemsZhenxiao Luo
 
AppEngine Performance Tuning
AppEngine Performance TuningAppEngine Performance Tuning
AppEngine Performance TuningDavid Chen
 
Flink Forward San Francisco 2018: Gregory Fee - "Bootstrapping State In Apach...
Flink Forward San Francisco 2018: Gregory Fee - "Bootstrapping State In Apach...Flink Forward San Francisco 2018: Gregory Fee - "Bootstrapping State In Apach...
Flink Forward San Francisco 2018: Gregory Fee - "Bootstrapping State In Apach...Flink Forward
 
Apereo OAE - Architectural overview
Apereo OAE - Architectural overviewApereo OAE - Architectural overview
Apereo OAE - Architectural overviewNicolaas Matthijs
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development Shean McManus
 
How jKool Analyzes Streaming Data in Real Time with DataStax
How jKool Analyzes Streaming Data in Real Time with DataStaxHow jKool Analyzes Streaming Data in Real Time with DataStax
How jKool Analyzes Streaming Data in Real Time with DataStaxjKool
 
How jKool Analyzes Streaming Data in Real Time with DataStax
How jKool Analyzes Streaming Data in Real Time with DataStaxHow jKool Analyzes Streaming Data in Real Time with DataStax
How jKool Analyzes Streaming Data in Real Time with DataStaxDataStax
 
Real time data viz with Spark Streaming, Kafka and D3.js
Real time data viz with Spark Streaming, Kafka and D3.jsReal time data viz with Spark Streaming, Kafka and D3.js
Real time data viz with Spark Streaming, Kafka and D3.jsBen Laird
 
Testing data streaming applications
Testing data streaming applicationsTesting data streaming applications
Testing data streaming applicationsLars Albertsson
 
Cloudera Breakfast Series, Analytics Part 1: Use All Your Data
Cloudera Breakfast Series, Analytics Part 1: Use All Your DataCloudera Breakfast Series, Analytics Part 1: Use All Your Data
Cloudera Breakfast Series, Analytics Part 1: Use All Your DataCloudera, Inc.
 
CloudFoundry and MongoDb, a marriage made in heaven
CloudFoundry and MongoDb, a marriage made in heavenCloudFoundry and MongoDb, a marriage made in heaven
CloudFoundry and MongoDb, a marriage made in heavenPatrick Chanezon
 
Google jeff dean lessons learned while building infrastructure software at go...
Google jeff dean lessons learned while building infrastructure software at go...Google jeff dean lessons learned while building infrastructure software at go...
Google jeff dean lessons learned while building infrastructure software at go...xu liwei
 

Similar a Proud to be Polygot! Technical Evangelist Shares Benefits of Multi-Language Development (20)

Introduction to NoSQL with Couchbase
Introduction to NoSQL with CouchbaseIntroduction to NoSQL with Couchbase
Introduction to NoSQL with Couchbase
 
Treasure Data Cloud Strategy
Treasure Data Cloud StrategyTreasure Data Cloud Strategy
Treasure Data Cloud Strategy
 
Softshake 2013: Introduction to NoSQL with Couchbase
Softshake 2013: Introduction to NoSQL with CouchbaseSoftshake 2013: Introduction to NoSQL with Couchbase
Softshake 2013: Introduction to NoSQL with Couchbase
 
Why and How to integrate Hadoop and NoSQL?
Why and How to integrate Hadoop and NoSQL?Why and How to integrate Hadoop and NoSQL?
Why and How to integrate Hadoop and NoSQL?
 
Design Choices for Cloud Data Platforms
Design Choices for Cloud Data PlatformsDesign Choices for Cloud Data Platforms
Design Choices for Cloud Data Platforms
 
Data Platform in the Cloud
Data Platform in the CloudData Platform in the Cloud
Data Platform in the Cloud
 
Machine learning and big data @ uber a tale of two systems
Machine learning and big data @ uber a tale of two systemsMachine learning and big data @ uber a tale of two systems
Machine learning and big data @ uber a tale of two systems
 
AppEngine Performance Tuning
AppEngine Performance TuningAppEngine Performance Tuning
AppEngine Performance Tuning
 
Flink Forward San Francisco 2018: Gregory Fee - "Bootstrapping State In Apach...
Flink Forward San Francisco 2018: Gregory Fee - "Bootstrapping State In Apach...Flink Forward San Francisco 2018: Gregory Fee - "Bootstrapping State In Apach...
Flink Forward San Francisco 2018: Gregory Fee - "Bootstrapping State In Apach...
 
Apereo OAE - Architectural overview
Apereo OAE - Architectural overviewApereo OAE - Architectural overview
Apereo OAE - Architectural overview
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development
 
NATO IST Symposium 2013
NATO IST Symposium 2013NATO IST Symposium 2013
NATO IST Symposium 2013
 
Cassandra at scale
Cassandra at scaleCassandra at scale
Cassandra at scale
 
How jKool Analyzes Streaming Data in Real Time with DataStax
How jKool Analyzes Streaming Data in Real Time with DataStaxHow jKool Analyzes Streaming Data in Real Time with DataStax
How jKool Analyzes Streaming Data in Real Time with DataStax
 
How jKool Analyzes Streaming Data in Real Time with DataStax
How jKool Analyzes Streaming Data in Real Time with DataStaxHow jKool Analyzes Streaming Data in Real Time with DataStax
How jKool Analyzes Streaming Data in Real Time with DataStax
 
Real time data viz with Spark Streaming, Kafka and D3.js
Real time data viz with Spark Streaming, Kafka and D3.jsReal time data viz with Spark Streaming, Kafka and D3.js
Real time data viz with Spark Streaming, Kafka and D3.js
 
Testing data streaming applications
Testing data streaming applicationsTesting data streaming applications
Testing data streaming applications
 
Cloudera Breakfast Series, Analytics Part 1: Use All Your Data
Cloudera Breakfast Series, Analytics Part 1: Use All Your DataCloudera Breakfast Series, Analytics Part 1: Use All Your Data
Cloudera Breakfast Series, Analytics Part 1: Use All Your Data
 
CloudFoundry and MongoDb, a marriage made in heaven
CloudFoundry and MongoDb, a marriage made in heavenCloudFoundry and MongoDb, a marriage made in heaven
CloudFoundry and MongoDb, a marriage made in heaven
 
Google jeff dean lessons learned while building infrastructure software at go...
Google jeff dean lessons learned while building infrastructure software at go...Google jeff dean lessons learned while building infrastructure software at go...
Google jeff dean lessons learned while building infrastructure software at go...
 

Más de NLJUG

The future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
The future of Web-Scale - Johan Tillema, Rene Boere & Chris QuachThe future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
The future of Web-Scale - Johan Tillema, Rene Boere & Chris QuachNLJUG
 
Speedy perception trumps speedy reception–smart asynchronous interactions - L...
Speedy perception trumps speedy reception–smart asynchronous interactions - L...Speedy perception trumps speedy reception–smart asynchronous interactions - L...
Speedy perception trumps speedy reception–smart asynchronous interactions - L...NLJUG
 
Decoding the airspace above you with Java and $7 hardware - Bert Jan Schrijver
Decoding the airspace above you with Java and $7 hardware - Bert Jan SchrijverDecoding the airspace above you with Java and $7 hardware - Bert Jan Schrijver
Decoding the airspace above you with Java and $7 hardware - Bert Jan SchrijverNLJUG
 
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
Using Docker to Develop, Test and Run Maven Projects - Wouter DanesUsing Docker to Develop, Test and Run Maven Projects - Wouter Danes
Using Docker to Develop, Test and Run Maven Projects - Wouter DanesNLJUG
 
Kill the mutants and test your tests - Roy van Rijn
Kill the mutants and test your tests - Roy van RijnKill the mutants and test your tests - Roy van Rijn
Kill the mutants and test your tests - Roy van RijnNLJUG
 
Real-time user interfaces - sosm gewoon makkelijker - Allard Buijze
Real-time user interfaces - sosm gewoon makkelijker - Allard BuijzeReal-time user interfaces - sosm gewoon makkelijker - Allard Buijze
Real-time user interfaces - sosm gewoon makkelijker - Allard BuijzeNLJUG
 
The end of traditional enterprise IT - ING's journey to the next generation I...
The end of traditional enterprise IT - ING's journey to the next generation I...The end of traditional enterprise IT - ING's journey to the next generation I...
The end of traditional enterprise IT - ING's journey to the next generation I...NLJUG
 
Performance van Java 8 en verder - Jeroen Borgers
Performance van Java 8 en verder - Jeroen BorgersPerformance van Java 8 en verder - Jeroen Borgers
Performance van Java 8 en verder - Jeroen BorgersNLJUG
 
Introduction to Reactive with Play and Akka - Markus Jura
Introduction to Reactive with Play and Akka - Markus JuraIntroduction to Reactive with Play and Akka - Markus Jura
Introduction to Reactive with Play and Akka - Markus JuraNLJUG
 
Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...
Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...
Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...NLJUG
 
Workshop angular dart presentatie - Atos
Workshop angular dart presentatie - AtosWorkshop angular dart presentatie - Atos
Workshop angular dart presentatie - AtosNLJUG
 
Workshop spring boot presentatie - Atos
Workshop spring boot presentatie - AtosWorkshop spring boot presentatie - Atos
Workshop spring boot presentatie - AtosNLJUG
 
Cultivating the jenkins job jungle with groovy - Patrick van Dissel
Cultivating the jenkins job jungle with groovy - Patrick van DisselCultivating the jenkins job jungle with groovy - Patrick van Dissel
Cultivating the jenkins job jungle with groovy - Patrick van DisselNLJUG
 
Rethink your architecture - Marten Deinum
Rethink your architecture - Marten DeinumRethink your architecture - Marten Deinum
Rethink your architecture - Marten DeinumNLJUG
 
Evolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopper
Evolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopperEvolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopper
Evolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopperNLJUG
 
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...NLJUG
 
Apache Wicket: 10 jaar en verder - Martijn Dashorst
Apache Wicket: 10 jaar en verder - Martijn DashorstApache Wicket: 10 jaar en verder - Martijn Dashorst
Apache Wicket: 10 jaar en verder - Martijn DashorstNLJUG
 
Opening - Bert Ertman
Opening - Bert ErtmanOpening - Bert Ertman
Opening - Bert ErtmanNLJUG
 
Returning the right results - Jettro Coenradie
Returning the right results - Jettro CoenradieReturning the right results - Jettro Coenradie
Returning the right results - Jettro CoenradieNLJUG
 
Reactive programming met Java 8 en Java EE 7 - Martijn Blankestijn
Reactive programming met Java 8 en Java EE 7 - Martijn BlankestijnReactive programming met Java 8 en Java EE 7 - Martijn Blankestijn
Reactive programming met Java 8 en Java EE 7 - Martijn BlankestijnNLJUG
 

Más de NLJUG (20)

The future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
The future of Web-Scale - Johan Tillema, Rene Boere & Chris QuachThe future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
The future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
 
Speedy perception trumps speedy reception–smart asynchronous interactions - L...
Speedy perception trumps speedy reception–smart asynchronous interactions - L...Speedy perception trumps speedy reception–smart asynchronous interactions - L...
Speedy perception trumps speedy reception–smart asynchronous interactions - L...
 
Decoding the airspace above you with Java and $7 hardware - Bert Jan Schrijver
Decoding the airspace above you with Java and $7 hardware - Bert Jan SchrijverDecoding the airspace above you with Java and $7 hardware - Bert Jan Schrijver
Decoding the airspace above you with Java and $7 hardware - Bert Jan Schrijver
 
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
Using Docker to Develop, Test and Run Maven Projects - Wouter DanesUsing Docker to Develop, Test and Run Maven Projects - Wouter Danes
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
 
Kill the mutants and test your tests - Roy van Rijn
Kill the mutants and test your tests - Roy van RijnKill the mutants and test your tests - Roy van Rijn
Kill the mutants and test your tests - Roy van Rijn
 
Real-time user interfaces - sosm gewoon makkelijker - Allard Buijze
Real-time user interfaces - sosm gewoon makkelijker - Allard BuijzeReal-time user interfaces - sosm gewoon makkelijker - Allard Buijze
Real-time user interfaces - sosm gewoon makkelijker - Allard Buijze
 
The end of traditional enterprise IT - ING's journey to the next generation I...
The end of traditional enterprise IT - ING's journey to the next generation I...The end of traditional enterprise IT - ING's journey to the next generation I...
The end of traditional enterprise IT - ING's journey to the next generation I...
 
Performance van Java 8 en verder - Jeroen Borgers
Performance van Java 8 en verder - Jeroen BorgersPerformance van Java 8 en verder - Jeroen Borgers
Performance van Java 8 en verder - Jeroen Borgers
 
Introduction to Reactive with Play and Akka - Markus Jura
Introduction to Reactive with Play and Akka - Markus JuraIntroduction to Reactive with Play and Akka - Markus Jura
Introduction to Reactive with Play and Akka - Markus Jura
 
Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...
Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...
Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...
 
Workshop angular dart presentatie - Atos
Workshop angular dart presentatie - AtosWorkshop angular dart presentatie - Atos
Workshop angular dart presentatie - Atos
 
Workshop spring boot presentatie - Atos
Workshop spring boot presentatie - AtosWorkshop spring boot presentatie - Atos
Workshop spring boot presentatie - Atos
 
Cultivating the jenkins job jungle with groovy - Patrick van Dissel
Cultivating the jenkins job jungle with groovy - Patrick van DisselCultivating the jenkins job jungle with groovy - Patrick van Dissel
Cultivating the jenkins job jungle with groovy - Patrick van Dissel
 
Rethink your architecture - Marten Deinum
Rethink your architecture - Marten DeinumRethink your architecture - Marten Deinum
Rethink your architecture - Marten Deinum
 
Evolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopper
Evolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopperEvolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopper
Evolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopper
 
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
 
Apache Wicket: 10 jaar en verder - Martijn Dashorst
Apache Wicket: 10 jaar en verder - Martijn DashorstApache Wicket: 10 jaar en verder - Martijn Dashorst
Apache Wicket: 10 jaar en verder - Martijn Dashorst
 
Opening - Bert Ertman
Opening - Bert ErtmanOpening - Bert Ertman
Opening - Bert Ertman
 
Returning the right results - Jettro Coenradie
Returning the right results - Jettro CoenradieReturning the right results - Jettro Coenradie
Returning the right results - Jettro Coenradie
 
Reactive programming met Java 8 en Java EE 7 - Martijn Blankestijn
Reactive programming met Java 8 en Java EE 7 - Martijn BlankestijnReactive programming met Java 8 en Java EE 7 - Martijn Blankestijn
Reactive programming met Java 8 en Java EE 7 - Martijn Blankestijn
 

Último

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Último (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

Proud to be Polygot! Technical Evangelist Shares Benefits of Multi-Language Development

  • 1. Proud to be Polygot! Tugdual “Tug” Grall @tgrall Technical Evangelist at Wednesday, November 6, 13 .
  • 2. {about : “me”} • Tugdual “Tug” Grall ­ Couchbase ­ Technical Evangelist ­ eXo ­ CTO ­ Oracle ­ Developer/Product Manager ­ Mainly Java/SOA ­ Developer in consulting firms Wednesday, November 6, 13 • Web ­ @tgrall ­ http://blog.grallandco.com ­ tgrall ­ NantesJUG co-founder ­ Pet Project : ­ http://www.resultri.com ­ tug@couchbase.com ­ tugdual@gmail.com
  • 3. Modern Applications • Modern Applications Must ­ Manage any type of data ­ Scale ­ Be fault  tolerant ­ Adapt to change Wednesday, November 6, 13
  • 4. Standard Architecture • Mono-Technology ­ Same “language/architecture” ­ Single Database : RDBMS • One size fits all approach Wednesday, November 6, 13 JSP/JSF Services Messaging JTA DAO/JPA
  • 5. Is it good for me? • Many files - XML, Sources, .. • Hibernate/JPA is good for all? - Impedance mismatch • Need to scale - from 0 to 50millions users in 6 weeks (real life) - can I do that easily with such architecture? Wednesday, November 6, 13 • How to add new features easily? - code, schema change, ... - and all this for yesterday! • Lot of code
  • 6. One  size  does  NOT  fit  all! Wednesday, November 6, 13
  • 7. Look at our Data.... Wednesday, November 6, 13
  • 8. Big  Data High Data Variety and Velocity Trillions  of  Gigabytes  (Ze:abytes) 2.00 1.50 Unstructured  and  Semi-­‐ Structured  Data 1.00 Text,  Log  Files,  Click   Streams,  Blogs,   Tweets,  Audio,  Video,   etc. 0.50 0 Structured  Data 2006 2009 Source:  IDC   Wednesday, November 6, 13 More  Flexible  Data  Model  Required 2012
  • 9. 50  Million  Users  in  50  Days Draw  Something  by  OMGPOP Daily  Ac)ve  Users  (millions) 16 14 12 10 8 6 4 2 2/6 8 Wednesday, November 6, 13 10 12 14 16 18 20 22 24 26 28 3/1 3 5 7 9 11 13 15 17 19 21
  • 10. How do you take this growth? ApplicaXon  Scales  Out Just  add  more  commodity  web  servers System  Cost ApplicaMon  Performance   Web/App  Server  Tier Users RDBMS  Scales  Up Get  a  bigger,  more  complex  server System  Cost ApplicaMon  Performance   Won’t  scale   beyond  this   point RelaXonal  Database Users Wednesday, November 6, 13
  • 11. NoSQL Technology Scales Out ApplicaXon  Scales  Out Just  add  more  commodity  web  servers System  Cost ApplicaMon  Performance   Web/App  Server  Tier Users NoSQL  Database  Scales  Out Cost  and  performance  mirrors  app  Xer System  Cost ApplicaMon  Performance   NoSQL  Distributed  Data  Store Users Wednesday, November 6, 13
  • 12. OperaMonal  vs.  AnalyMc  Databases Real-­‐Xme,   InteracXve  Databases AnalyXc Databases NoSQL Fast  access   to  data Couchbase MongoDB Wednesday, November 6, 13 Get  insights  from   data Cloudera Hortonworks Mapr
  • 13. Polyglot Persistence Big  Data/Analysis •  Log  Capture •  RecommendaMons •  AdCampaign Wednesday, November 6, 13 Document  &  K/V •  Products •  User  Profiles •  Game  AcMons •  Sessions •  Shopping  Cart RDBMS •  Financial  Data •  ReporMng Indexing •Full  Text  Search •Ad  hoc  queries
  • 14. Developer New Skills • Understand the pros/cons of each solutions ­ Programming API ­ How to access the data? (API, Query Languages) • Learn how to design data-model ­ De-normalizing and duplicate data is not a problem • Integrate each solution to your application Wednesday, November 6, 13
  • 15. Data Service Layer • Wrap datastore in Services - Loosely coupled Data  Service Wednesday, November 6, 13
  • 16. Use Case : Content Driven Site Wednesday, November 6, 13
  • 17. Use Case: Mobile Services Web/App  Server  Tier Web/App  Server  Tier Rabbit  MQ PIM  Database -­‐  Legacy  ApplicaXon -­‐  Product  InformaXon Wednesday, November 6, 13 NoSQL -­‐  Product  Data -­‐  AddiXonal  Metada
  • 19. Why multiple languages? • Sometimes we have no choice ­ HTML/CSS/JavaScript + Server Side ­ Mobile Native Applications • Java/.Net have not evolved that must these past years ­ 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, ... Wednesday, November 6, 13
  • 20. Examples • Realtime interaction with WebSockets - Wait for Java EE 7 to be out? - Hack your app server and application with Continuation ? - Use Node.js and Socket.io ? • Data Collection and Treatment? - Find a library? - Create your library? - Wait for Java 8 and Lambdas? - Use Scala? ... or other Wednesday, November 6, 13
  • 21. Examples • Simple CRUD Application ­ Use the JavaEE stack with JPA and JSF? ­ Use Spring ? ­ Use tools like Play!, Grails, Rails ? Wednesday, November 6, 13
  • 22. How to chose? • Maturity/Supportability • Features Set • Learning Curve • Productivity Wednesday, November 6, 13
  • 23. Polyglot Programming in Action • Build a distributed database ­ Manage distributed processes ­ Save and retrieve data on disk ­ Cache the data on RAM ­ Build a query engine Wednesday, November 6, 13
  • 24. Polyglot Programming in Action • Manage Distributed Process ­ Erlang and OTP (Open Telecom Platform) has been built for that ­ Taking this will bootstrap a project quickly instead of implementing in another language • Data access and Caching ­ C/C++ is the best/fastest way to interact with I/O ­ Leverage existing Caching layer, for example Memcached written in C • Query & Indexing ­ Easy to code for developer : Let’s use JavaScript Wednesday, November 6, 13
  • 25. Couchbase Server Query  Engine Query  API 11210  /  11211 8091 Admin  Console Data  access  ports hbp Object-­‐managed Cache Data  Manager Wriben  in  C/C++ REST  management   API/Web  UI Cluster  Manager ReplicaMon,   ebalance,     Wriben  Sitate  RErlang n   Manager Shard   Erlang  /OTP 8092 Storage  Engine Data  Manager Wednesday, November 6, 13 Cluster  Manager
  • 26. Use Case: Second Screen Gaming AdministraXon Java/Play  ApplicaXon Python  scrips Wednesday, November 6, 13 Users Node.js  +  Socket  IO
  • 27. Conclusion • Use the good tool for the good task ­ Do not try to “hack” something when you have a shorter 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 • Operations / DevOps ­ Think about it from day one... as a developer • What about maintenance? ­ Do you think it is easier to maintain complex code? Wednesday, November 6, 13