SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

MongoDB Breakfast Milan - Mainframe Offloading Strategies
MongoDB Breakfast Milan -  Mainframe Offloading StrategiesMongoDB Breakfast Milan -  Mainframe Offloading Strategies
MongoDB Breakfast Milan - Mainframe Offloading Strategies
MongoDB
 

Was ist angesagt? (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?
 

Andere mochten auch

제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
Donghan Kim
 
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
 

Andere mochten auch (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
 

Ähnlich wie Proud to be polyglot!

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
 

Ähnlich wie Proud to be polyglot! (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...
 

Mehr von NLJUG

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
 

Mehr von 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
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

Proud to be polyglot!

  • 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