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

TurboTax Online's Journey into Microservices Architecture: Couchbase Connect 2015


Published on

TurboTax Online – the premier tax preparation software serving millions of customers for the last twenty years – has been on a journey from a monolithic application towards modern microservice-based architecture. This presentation will cover the challenges of this transition as well as highlight how Couchbase is a crucial enabler for this journey.

Published in: Technology
  • Be the first to comment

TurboTax Online's Journey into Microservices Architecture: Couchbase Connect 2015

  1. 1. INTUIT’S JOURNEY TO MICRO-SERVICES Umed Zokirov | Intuit Justin Michaels l Couchbase
  2. 2. ©2015 Couchbase Inc. 3 Agenda  Micro-Services and CouchbaseTechnology  Justin Michaels, SolutionArchitectureTeam from Couchbase  Use Case: Intuit’s Journey  Umed Zokirov, Lead Developer andApplicationArchitect from Intuit
  3. 3. Micro-Services and CouchbaseTechnology
  4. 4. ©2015 Couchbase Inc. 5 Framing the Discussion • Micro-Services • Architecture strategy that provides individual services focused on supporting finite independent services. • Monolithic • Single application handling UI presentation, business logic, data access and integration
  5. 5. ©2015 Couchbase Inc. 6 Framing the Discussion • The Art of Scalability • MartinAbbott … formerly COO of Quigo, spent nearly six years at eBay, most recently as SVP ofTechnology/CTO. • Michael Fisher … veteran software and technology executive, spent two years as CTO of Quigo. Previously, asVP of Engineering & Architecture for PayPal. • “Scale Cube”
  6. 6. ©2015 Couchbase Inc. 7 Micro-Services: Scale Cube  Y-Axis – Scale by isolating services  X-Axis – Scale by System/Application Duplication  Z-Axis – Scale by partitioning data
  7. 7. ©2015 Couchbase Inc. 8 Micro-Services: Scale Cube Travel Site Application Container Load BalancerBrowser  User Interface  Product Information  Airline Schedule  Price Information  Recommendations
  8. 8. ©2015 Couchbase Inc. 9 Micro-Services: Scale Cube Travel Site Application Container Load BalancerBrowser Travel Site Travel Site Travel Site Travel Site Application ContainerPricing Engine Application Container Application Container Schedule Service Application Container Application ContainerProduct Catalog Application Container Application Container Recommendation Engine Application Container Application ContainerData Service  Y-Axis – Scale by isolating services  X-Axis – System/Application Duplication  Z-Axis – Scale by partitioning data
  9. 9. ©2015 Couchbase Inc. 10 Micro-Services: CouchbaseTechnology • Managing the Scale Cube • Partitioning Strategy (Z Axis) ACTIVE ACTIVE ACTIVE REPLICA REPLICA REPLICA Couchbase Server 1 Couchbase Server 2 Couchbase Server 3 ACTIVE ACTIVE REPLICA REPLICA Couchbase Server 4 Couchbase Server 5 SHARD 5 SHARD 2 SHARD SHARD SHARD 4 SHARD SHARD SHARD 1 SHARD 3 SHARD SHARD SHARD 4 SHARD 1 SHARD 8 SHARD SHARD SHARD SHARD 6 SHARD 3 SHARD 2 SHARD SHARD SHARD SHARD 7 SHARD 9 SHARD 5 SHARD SHARD SHARD SHARD 7 SHARD SHARD 6 SHARD SHARD 8 SHARD 9 SHARD
  10. 10. ©2015 Couchbase Inc. 11 Micro-Services: CouchbaseTechnology • Managing the Scale Cube • System Duplication (X Axis) Memory Resources Cluster Capacity Compute Resources Storage Resources node1 node8
  11. 11. ©2015 Couchbase Inc. 12 Micro-Services: CouchbaseTechnology • Managing the Scale Cube • Independent services for Query, Index and Data • Independent scalability for capacity per Service • Data access provided by distributed cache Index Service Global Secondary Indexes Couchbase Cluster Query Service Data Service Views and GeoViews node1 node8
  12. 12. ©2015 Couchbase Inc. 13 Micro-Services: CouchbaseTechnology Heavier indexing (index more fields) : add compute to index service nodes Increased query load: linearly scale query service More data: linearly scale data service Couchbase Cluster node1 node8 node9 Data Service Index ServiceQuery Service
  13. 13. ©2015 Couchbase Inc. 14 Micro-Services Airports Travel Services B2C/B2B Travel Agent Application Tier Mainframe Couchbase Cluster Read requests go to Couchbase for high performance and saving MIPS Data updates are written directly to the mainframe. Event Engine Push Updates DocumentTTLs RDMS
  14. 14. Intuit Confidential and Proprietary15 Micro-Services at Intuit
  15. 15. 16 Intuit operates in 2 market segments • Consumer Finance Software • TurboTax – market leader in tax preparation software • Quicken – day to day financial management • Mint – personal finance management • Small Business • QuickBooks – small business accounting package • ProSeries & Lacerte – tools for accountants and tax professionals Introduction
  16. 16. 17 • TurboTaxOnline is 20 years old, started its life as the port of the desktop software. • Monolithic architecture was in its DNA • Grew to be a 1.5 billion dollar business serving millions of customers • Peak tax season the application supports 250,000 concurrent users who interact the application on average 35 minutes per session. • Changes needed to support additional growth. History –TurboTax Online
  17. 17. 18 TurboTax Online Legacy Architecture
  18. 18. 19 • Challenges of MonolithicArchitecture  Each change requires complete build, regression tests  Difficulties to A/B test, scale  4 month tax season and organizational pushback  Teams aren’t productive or innovative due to legacy code base • Applied divide and conquer approach, i.e. micro-services around key pieces of functionality History –TurboTax Online
  19. 19. 20 • Ease of piece-by-piece deployment vs. monolith • Teams are free to choose their technology stack • Flexible testing • Quick iterations focused on concrete features • MultipleA/B testing strategies • App vs. Micro-service. Some services offer UI widgets. Why Micro-Services
  20. 20. 21 TurboTax Online = Micro-Services and Apps
  21. 21. 22 • Increased chatter and traffic between services • Multiple services request and consume virtually the same data within milliseconds • Resiliency issues with multiple app and services accessing the data store that can’t be scaled quickly enough. • Issues with accessing services that we don’t own, external to Intuit. • Hard to manage end-to-end user experience among multiple apps Challenges of Approach
  22. 22. 23 • Alternatives • Go through and refactor service-by-service and address issues • Strategically create a cache tier to reduce chatter between services and applications, hold frequently accessed data • Data mine the request patterns, type of data being demanded, traffic flows and analyze use cases to see if caching is a good fit, what’s their tolerance of possibility of viewing stale data • Evaluated multiple technology usage within as well as outside Intuit to chooseCouchbase Solution
  23. 23. 24 Cache Service via Couchbase
  24. 24. 25 TurboTax Online + Couchbase
  25. 25. 26 • Reduce read response times by 50% • Reduced intra-service chatter by 20% • Cut write response times by factor of 4 Cache Service via Couchbase
  26. 26. 27 • In-memory key-value store • Easy to use Java SDK • Support for XDCR and ease of deployment • Good monitoring integration that plugs easily to existing monitoring solutions such as AppDynamics and Splunk Why Couchbase
  27. 27. 28 • Key part of Service Platform Infrastructure • More and more teams are interested in using it • Data Mining and Analytics • Write-behind cache solution for Data Platform • Replacement for Memcached, Ehcache Couchbase At Intuit
  28. 28. Thank you.
  29. 29. Intuit Confidential and Proprietary30 ThankYou