2. Building a
Personalized Mobile
App Experience Using
MongoDB at ADP
Page 2
MongoNYC 2013
About Me
• Chief Architect ADP Innovation Labs
• Member of Enterprise Architecture team
• Member of ADP CTO Council
• 10 years with ADP
• Over 20 years of industry experience
3. Building a
Personalized Mobile
App Experience Using
MongoDB at ADP
Page 3
MongoNYC 2013
About ADP
• One of world's largest providers of business
outsourcing solutions to employers and vehicle
dealerships
• FORTUNE 500 company
• 60 years of industry experience
• $10 billion in revenues
• Approximately 600,000 clients
• Worldwide presence
• Pays 1-in-6 U.S. employees
4. Building a
Personalized Mobile
App Experience Using
MongoDB at ADP
Page 4
MongoNYC 2013
Agenda
• Modern Consumer Demands
• Modern Architecture
• Modern Data Store
• Evaluation
• Why MongoDB?
• The Product – ADP Mobile Solutions
• MongoDB in Action
• Benefits
• Future
5. Building a
Personalized Mobile
App Experience Using
MongoDB at ADP
Page 5
MongoNYC 2013
Modern Consumer Demands
• Fast
• Responsive
• Reactive
• Contextual
• Available
• Happy
6. Building a
Personalized Mobile
App Experience Using
MongoDB at ADP
Page 6
MongoNYC 2013
Modern Architecture
• High performance
• Scalable (web-scale)
• Reliable
• Integration ready
• Extendable
• Maintainable
• Cost effective
7. Building a
Personalized Mobile
App Experience Using
MongoDB at ADP
Page 7
MongoNYC 2013
Modern Data Store
• Highly scalable and fast
• High-availability with automatic failover and recovery
• Able to handle a large volume of variable data with high velocity
• Runs on commodity hardware and scales horizontally
• Offers rich data manipulation functionality
• Preferably open source with strong community support
• Requires little ongoing administration
• Easy to learn and use
8. Building a
Personalized Mobile
App Experience Using
MongoDB at ADP
Page 8
MongoNYC 2013
Evaluation
• Apache Cassandra
• Apache HBase
• CouchDB
• MemcacheDB
• MongoDB
MongoDB hit the sweet spot between highly scalable, fast in-
memory key-value store with persistence and rich data
manipulation functionality of relational database
9. Building a
Personalized Mobile
App Experience Using
MongoDB at ADP
Page 9
MongoNYC 2013
Why MongoDB?
• Fast (works on memory mapped files)
• Scalable (horizontally scalable on commodity hardware)
• Durable (replica sets and asynchronous replication)
• Easy to use (schemaless, no joins and no complex
transactions)
• Easy to operate (automatic data partitioning and
management)
• Easy to learn (JavaScript for shell and map/reduce)
• Open Source
10. Building a
Personalized Mobile
App Experience Using
MongoDB at ADP
Page 10
MongoNYC 2013
ADP Mobile Solutions
• Engage, connect and empower employees,
managers and practitioners anytime,
anywhere
• “A Single App for All of That” Important HR,
benefits, and payroll information at
employee fingertips 24x7x365
• Clean, simple and intuitive interface
• “Always On” High availability, reliability
and performance
1
App
17
Countries
23
Languages
41K+
Clients
1M+
Active Users
11. Building a
Personalized Mobile
App Experience Using
MongoDB at ADP
Page 11
MongoNYC 2013
MongoDB in Action
• Application data store and cache
• Distributed data store across servers and data centers
• Big data store for service and user behavior analytics
12. Building a
Personalized Mobile
App Experience Using
MongoDB at ADP
Page 12
MongoNYC 2013
Application Data Store and Cache
• High performance
• Horizontally scalable data store
• Read scalability via replica sets
• Write scalability via shards Application Server Farm
Application
Serve 1
Application
Serve 2
Application
Serve n
MongoDB Server Farm
MongoDB
Serve 1
MongoDB
Serve 2
MongoDB
Serve n
13. Building a
Personalized Mobile
App Experience Using
MongoDB at ADP
Page 13
MongoNYC 2013
Distributed Data Store
• MongoDB nodes across data centers
• Asynchronous replication
• Foundation for active-active data
center strategy
• High fault tolerance
• Data durability
• Ease of maintenance
Application Server Farm
Data Center 1
1 2 n
MongoDB Server Farm
Data Center 1
1 2 n
Global Load
Balancer
Application Server Farm
Data Center 2
1 2 n
MongoDB Server Farm
Data Center 2
1 2 nreplication
14. Building a
Personalized Mobile
App Experience Using
MongoDB at ADP
Page 14
MongoNYC 2013
User Behavior Analytics
• Improve service delivery and user
experience
• Patterns and predictions
• Predictive caching
1 2 3 4 5 6
Usage in
concert with
pay cycle
week
# of
requests
Views
Pay &
401K
Views
Pay &
401K
Start
Dashboard
Pay List
Current
Pay
Previous
Pay
Other
Usage pattern
resulting in product
enhancement
Usage pattern for
predictive caching
15. Building a
Personalized Mobile
App Experience Using
MongoDB at ADP
Page 15
MongoNYC 2013
Technical Benefits
Fast data operations
High throughput
Simple infrastructure
High durability
High availability
Easy maintenance
Easy development
Easy operations
16. Building a
Personalized Mobile
App Experience Using
MongoDB at ADP
Page 16
MongoNYC 2013
Business Benefits
High service reliability
Optimal user experience
Smaller development teams
Lower cost of ownership
Faster development
10gen support
17. Building a
Personalized Mobile
App Experience Using
MongoDB at ADP
Page 17
MongoNYC 2013
Future
• Big data platform
• MongoDB as a service (PaaS)
• Centralized administration
• Leveraged by more applications
• Use cases – cache, map/reduce, analytics, and search
Modern consumer demand applications that are fast – get in, get what I came for and get outResponsive – work consistently across the devices I useReactive – react immediately to user input, continuous feedback, user in controlContextual – use device sensor data to tailor/personalize experience, location, time and etc.Available – reliable, available 100% of the time at my fingertip, when I want, where I wantHappy – user interface should be intuitive, engaging and inspire confidence
We set to build technology architecture for the modern applicationHigh performance – sub-second response times, very low latency, efficient data storeScalable – to millions of users, supporting millions of page views per day resulting in thousands of operations per secondReliable – 100% uptime, redundancy everywhere, at software components, hardware servers, and even data centers Integration – architecture should enable ease of integration Extendable – evolve to changing business requirementsMaintainable – do not need a army of people to manage and maintainCost effective – from infrastructure and licensing costs, dramatic reduction in per user cost
We set out to pick components that can meet our requirements – we needed a modern data store
Fast – comes close to in-memory data store performanceScalable – offers both read and write scalabilityDurable – replica sets and automatic asynchronous replicationEasy to use – schemaless allows fast agile development
Released Summer 2011
I will talk about three key use casesStore for all mobile data (user data, preferences, user impressions…)Mobile/API gateway cache (organization, user, session…)Multi-datacenter deploymentFoundation for true active-active data center strategyService and user behavior analyticsTalk about always on – rolling hot updates, one datacenter at a time
High performance – can sustain thousands of operations per secondHorizontally scalable – add node and gain capacity, automatic balancingRead scalability – application reads from nearby best available serverWrite scalability – writes are spread across servers via shards
Speed it up and learn from user behavior to improve productBusiness metrics – number of users, usage by feature and functionsPatterns and predictions – biweekly pay, comparing current pay to previous pay (feedback to service improvement)Predictive caching – cache what you use most, anticipate usage and pre-fetch data
Fast data operations – very low latency reads and writesHigh throughput – can sustain thousands of operations per second (capture every impression!)Simple infrastructure – runs on a “vanilla” VMHigh durability – multiple replica sets deployed across data centersHigh availability – can tolerate entire DC failure without service interruptionEasy maintenance – rolling updates and online maintenanceEasy development – no schemas and JavaScriptEasy operations – automatic partitioning and failure handling
Service reliability (100% availability)User experience (faster response times)Lower cost of ownership (use of commodity hardware)Smaller development teams (no dedicated DBA and DevOps ready)Faster development (schemaless, supports speedy agile development)10gen support