"Cars.com Journey to AWS Cloud" by Naresh Chintalcheru at Cars.com July 11 2018 AWS Chicago user group talk
"Cars.com Journey to AWS Cloud - Cars.com orchestrates 20+ services on-prem to aggregate data for Vehicle Details Page (VDP). The backend for VDP is re-architected using AWS Elasticache to improve performance and resilience" - Naresh Chintalcheru, Technical Architect at Cars.com
2. About Cars.com
▶ Launched in 1998, Chicago based .com
company
▶ Digital automotive marketplace that
creates meaningful connections
between sellers and buyers
▶ Intelligent Machine Learning based
Pricing tools and curated vehicle listings.
▶ Next time if you are looking to buy/sell a
vehicle or Service/Repair now you know
where to go …..
3. Our Team
▶ Support and maintain VDP product
▶ VDP - Vehicle Details Page and
supporting apps/services
▶ Maintain performance, resilience, quality
and stay competitive
6. Problem ▶ VDP calls 20+ backend APIs
▶ Performance and resilience dependent
on the weakest link (partly mitigated with
Hystrix)
7. Solution
▶ Create a System of Engagement, which
can cache most of the data
▶ Offline batch jobs which will continuously
refresh the data
▶ Use Cloud Services
8. Why Cloud
▶ Speed to glass
▶ Reduce friction
▶ Decouple dependencies with system
administrators and data teams
▶ Reduce handoffs
▶ DX: Developer Experience
▶ Fun playing with new technology
products and services
▶ Autonomy in selecting products
9. Why AWS
▶ Cars DevOps team already did lot of
research, setup VPN Tunnels and security
with AWS Cloud
▶ In-house Terraform based framework
24. Overview
HOW?
▶ To cache data on Vehicle Details Page
▶ Data gets updated in Redis via scheduled batch jobs
WHY?
▶ Blazing fast in memory data store, cache
▶ Sub milliseconds of response time
▶ Easily scalable & highly available
WHAT?
▶ Redis Replication Group
▶ 1 primary, 3 replicas, reads load balanced
26. Backup & Disaster Recovery
▶ Automatic backup – only 1 per day with configuration
▶ Multiple backups programmatically
▶ Restoring backups to new cluster
▶ Multi AZ failover Enabled
▶ Get notified about failover
▶ Replica is promoted to primary
▶ Pretty fast (within 1 minute). Write not available
▶ Reads are always available during this time
▶ The sync process takes time
▶ You can simulate the primary failover in aws console
28. What’s Next – Clustered Redis
▶ Cheaper than replication group
▶ Can fully utilize memory on shards
▶ Scaling up is less costly as compared to replication group
30. VDP Pipeline
▶ Infrastructure as code
“The enabling idea of infrastructure as code is that the systems and devices which
are used to run software can be treated as if they, themselves, are software”
Kief Morris, Cloud Specialist
▶ Server Provisioning
▶ Configuration Management/Orchestration
▶ Deployment
33. VDP Pipeline
▶ Lessons
▶ One script for different environments.
▶ Infrastructure with code vs. Infrastructure as code
▶ Project structure
▶ Common state file
35. Lessons Learned
▶ KISS – Keep It Simple Stupid
▶ Continuous Architecture
▶ Continuous Development
▶ Iteratively go to production
▶ Cost Analysis
▶ Just like performance and security include Cost as one of the system
characteristics
▶ Do it in the beginning and continuously monitor