SlideShare a Scribd company logo
1 of 28
Jason Wilson & David Von Lehman
PRESENTING
AWS and the Nordstrom Data Lab
Recommendo Overview
• REST-ful product recommendations API
• Live on nordstrom.com in November
• Service emails live in January
• Lives in the AWS cloud – Elastic Beanstalk,
DynamoDB, node.js
• 3rd party rec vendors don’t tap into what is
unique about Nordstrom or fashion
By the Numbers
• Over 4 billion recommendations served
• >3 million API hits per day
• 105 days between first commit and go-live (Aug 6
and Nov 19 respectively)
• 5 servers with auto-scaling to 20 (turns out we don’t
need them)
• 90ms average request latency
50/50 test against
incumbent vendor
How We Built It
• Continuous integration and deployment from
the first week
• 90+ percent code coverage
• Fewer moving parts == less to monitor, fewer
ways for things to go wrong
• Fully PaaS based to minimize sys admin
responsibilities
• How can we support this ourselves without
carrying pagers?
DynamoDB
• Fully managed NoSQL database-as-a-service
• Web API with SDK support for Python, Ruby, node.js,
.NET, and Java
• High performance queries, backed by SSD
• Maintains predictable performance for data at any
size through horizontal scale out
• Auto replication across 3 availability zones
• Need to understand data access patterns up front
• Pay for only what you use/need – both storage and
R/W throughput
• JavaScript on the server atop the Google V8 engine
• Asynchronous event loop makes it ideal for real-time
data intensive applications
• Vibrant open-source community around excellent
npm package manager (50K+ packages)
• Seeing increased adoption in enterprises including
Wal-Mart, LinkedIn, PayPal, Dow Jones, Microsoft,
New York Times
JavaScript – Learn to Love It
• No type checking, don’t find
errors until runtime
• Not classical OO
• var keyword
• Callback hell
• Server debugging too hard
• But wait..
• Chrome and V8
• Dynamic can be your friend
• npm!
• express, async, mocha
AWS Components
• EC2 – Provides web-scale computing as a
service.
• ELB – elastic load balancer. Routes incoming
traffic to ec2 instances, scales up to meet
demand.
• Auto-scaling group – a logical collection of EC2
instances behind an ELB
AWS Components
Elastic Beanstalk
• AWS PaaS – lightweight abstraction layer atop EC2/ELB with
no additional costs
• More transparent than Azure or Heroku
• Supports Java, .NET, Python, Node.js, PHP, and Ruby
• git push deployment
• Auto-scaling group with custom triggers and auto applied
config
• Possible to configure the AMI including yum packages,
environment variables, and more
• Supports custom AMIs
• Automated health checks
Continuous Deployment
git push
to dev
branch
Jenkins
CI
unit
tests
git push
to EB
git pull
dev
git
checkout
master
git merge
dev
git push
master
Jenkins
CI
unit tests
git push
to EB
(prod)
Development
Production
Performance testing
• Initial performance was poor.
• Disable DNS caching when load testing against
ELB.
• Pre-warm ELB for higher upfront throughput
• jmeter-ec2, bees with machine guns
Early Perf results – YIKES!Transactions
per second
Response
time (seconds)
Performance tuning
• New relic, Nodetime
– Real-time performance monitoring of node
runtime
• node-mem-watch
– Evented inspection of heap, gc events, leak
events, and heap diffing
• ssh into instances
Real Performance
• Pleasantly surprised 
• Average latency ~90ms
• Dynamo response times <10ms
• Handful of auto-scaling up and back events
• One outage due to bad exception handling
400%
64%
DynamoDB
Lessons Learned / Pitfalls
• True zero downtime deployment is difficult to
achieve
• Thoroughly explore the Elastic Beanstalk
configuration options
• Catch those errors – a rogue unhandled
exception can bring it all down
• Health checks that actually do something
• Out of the box monitoring is pretty good
Harness the Cloud
On-Premise IaaS PaaS
% time
infrastructure experience
Logging Monitoring
Redundancy
Deployment
Automation
High-
Availability
Scalability
Iterative
Development
Build to
Experiment
Evolutionary
Architecture
Change
Tolerant
Frequent
Releases
Small
Teams
Agility vs. Industrial Strength
Security
PaaS Venn Diagram
Robust
Systems
Rapid
Delivery
Platypus
as a
Service
Recommendo 2.0
• Sku based recommendations – size!
• Truly personalized recs based on individual browse
and purchase history
DynamoDB
Batch
Recs
Real-
Time
Refiner
y
ScorerIngester Redis
Streams
Additional AWS Services
• Elasticache and Redis
• Elastic Beanstalk worker tiers
• SQS
• S3
Wrap-Up
• Recommendo – initial success, now building upon what we
have learned
• Node.js + DynamoDB + Elastic Beanstalk is a winning
combination
• Possible to out-perform an incumbent vendor solution in a
competitive differentiating capability
• Cloud and PaaS enable small teams to move quick and deliver
solid production caliber systems
• Incremental cost of “gold plating” steadily shrinking
• Your company benefits when percent of resources devoted to
core competency is maximized
Thank you
• Questions / comments?
• @davidvlsea
• ds@nordstrom.com

More Related Content

What's hot

JPA 2.1 on Payara Server
JPA 2.1 on Payara ServerJPA 2.1 on Payara Server
JPA 2.1 on Payara ServerPayara
 
Gradual migration to MicroProfile
Gradual migration to MicroProfileGradual migration to MicroProfile
Gradual migration to MicroProfileRudy De Busscher
 
Microservice - All is Small, All is Well?
Microservice - All is Small, All is Well?Microservice - All is Small, All is Well?
Microservice - All is Small, All is Well?Eberhard Wolff
 
Signal r azurepresentation
Signal r azurepresentationSignal r azurepresentation
Signal r azurepresentationJustin Wendlandt
 
Intro to OpenStack - Scott Sanchez and Niki Acosta
Intro to OpenStack - Scott Sanchez and Niki AcostaIntro to OpenStack - Scott Sanchez and Niki Acosta
Intro to OpenStack - Scott Sanchez and Niki AcostaScott Sanchez
 
Micro Services - Small is Beautiful
Micro Services - Small is BeautifulMicro Services - Small is Beautiful
Micro Services - Small is BeautifulEberhard Wolff
 
Microservices Journey Summer 2017
Microservices Journey Summer 2017Microservices Journey Summer 2017
Microservices Journey Summer 2017Christian Posta
 
Solving trust issues at scale
Solving trust issues at scaleSolving trust issues at scale
Solving trust issues at scaleSoluto
 
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...NCCOMMS
 
LONDON SDET MEETUP - Difference between Selenium and Cypress presentation
LONDON SDET MEETUP - Difference between Selenium and Cypress presentationLONDON SDET MEETUP - Difference between Selenium and Cypress presentation
LONDON SDET MEETUP - Difference between Selenium and Cypress presentationSriram Angajala
 
Managing the Infrastructure Stack with PowerShell
Managing the Infrastructure Stack with PowerShellManaging the Infrastructure Stack with PowerShell
Managing the Infrastructure Stack with PowerShellJosh Atwell
 
Global Azure Bootcamp 2016 - Azure Automation Invades Your Data Centre
Global Azure Bootcamp 2016 - Azure Automation Invades Your Data CentreGlobal Azure Bootcamp 2016 - Azure Automation Invades Your Data Centre
Global Azure Bootcamp 2016 - Azure Automation Invades Your Data Centrekieranjacobsen
 
Monolithic to Microservices Migration Journey of iyzico with Spring Cloud
Monolithic to Microservices Migration Journey of iyzico with Spring CloudMonolithic to Microservices Migration Journey of iyzico with Spring Cloud
Monolithic to Microservices Migration Journey of iyzico with Spring CloudMustafa Can Tekir
 
QCon New York 2014 - Scalable, Reliable Analytics Infrastructure at KIXEYE
QCon New York 2014 - Scalable, Reliable Analytics Infrastructure at KIXEYEQCon New York 2014 - Scalable, Reliable Analytics Infrastructure at KIXEYE
QCon New York 2014 - Scalable, Reliable Analytics Infrastructure at KIXEYERandy Shoup
 
The Hardest Part of Microservices: Your Data - Christian Posta, Red Hat
The Hardest Part of Microservices: Your Data - Christian Posta, Red HatThe Hardest Part of Microservices: Your Data - Christian Posta, Red Hat
The Hardest Part of Microservices: Your Data - Christian Posta, Red HatAmbassador Labs
 
Palringo : a startup's journey from a data center to the cloud
Palringo : a startup's journey from a data center to the cloudPalringo : a startup's journey from a data center to the cloud
Palringo : a startup's journey from a data center to the cloudPhilipBasford
 
Monolithic to microservices migration journey with spring cloud
Monolithic to microservices migration journey with spring cloudMonolithic to microservices migration journey with spring cloud
Monolithic to microservices migration journey with spring cloudzeynelkocak
 
We don't need consensus: All agreed?
We don't need consensus: All agreed?We don't need consensus: All agreed?
We don't need consensus: All agreed?Weaveworks
 
Developing Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring CloudDeveloping Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring CloudDustin Ruehle
 

What's hot (20)

JPA 2.1 on Payara Server
JPA 2.1 on Payara ServerJPA 2.1 on Payara Server
JPA 2.1 on Payara Server
 
Gradual migration to MicroProfile
Gradual migration to MicroProfileGradual migration to MicroProfile
Gradual migration to MicroProfile
 
Microservice - All is Small, All is Well?
Microservice - All is Small, All is Well?Microservice - All is Small, All is Well?
Microservice - All is Small, All is Well?
 
Signal r azurepresentation
Signal r azurepresentationSignal r azurepresentation
Signal r azurepresentation
 
Intro to OpenStack - Scott Sanchez and Niki Acosta
Intro to OpenStack - Scott Sanchez and Niki AcostaIntro to OpenStack - Scott Sanchez and Niki Acosta
Intro to OpenStack - Scott Sanchez and Niki Acosta
 
Micro Services - Small is Beautiful
Micro Services - Small is BeautifulMicro Services - Small is Beautiful
Micro Services - Small is Beautiful
 
Microservices Journey Summer 2017
Microservices Journey Summer 2017Microservices Journey Summer 2017
Microservices Journey Summer 2017
 
SOA to Microservices
SOA to MicroservicesSOA to Microservices
SOA to Microservices
 
Solving trust issues at scale
Solving trust issues at scaleSolving trust issues at scale
Solving trust issues at scale
 
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
 
LONDON SDET MEETUP - Difference between Selenium and Cypress presentation
LONDON SDET MEETUP - Difference between Selenium and Cypress presentationLONDON SDET MEETUP - Difference between Selenium and Cypress presentation
LONDON SDET MEETUP - Difference between Selenium and Cypress presentation
 
Managing the Infrastructure Stack with PowerShell
Managing the Infrastructure Stack with PowerShellManaging the Infrastructure Stack with PowerShell
Managing the Infrastructure Stack with PowerShell
 
Global Azure Bootcamp 2016 - Azure Automation Invades Your Data Centre
Global Azure Bootcamp 2016 - Azure Automation Invades Your Data CentreGlobal Azure Bootcamp 2016 - Azure Automation Invades Your Data Centre
Global Azure Bootcamp 2016 - Azure Automation Invades Your Data Centre
 
Monolithic to Microservices Migration Journey of iyzico with Spring Cloud
Monolithic to Microservices Migration Journey of iyzico with Spring CloudMonolithic to Microservices Migration Journey of iyzico with Spring Cloud
Monolithic to Microservices Migration Journey of iyzico with Spring Cloud
 
QCon New York 2014 - Scalable, Reliable Analytics Infrastructure at KIXEYE
QCon New York 2014 - Scalable, Reliable Analytics Infrastructure at KIXEYEQCon New York 2014 - Scalable, Reliable Analytics Infrastructure at KIXEYE
QCon New York 2014 - Scalable, Reliable Analytics Infrastructure at KIXEYE
 
The Hardest Part of Microservices: Your Data - Christian Posta, Red Hat
The Hardest Part of Microservices: Your Data - Christian Posta, Red HatThe Hardest Part of Microservices: Your Data - Christian Posta, Red Hat
The Hardest Part of Microservices: Your Data - Christian Posta, Red Hat
 
Palringo : a startup's journey from a data center to the cloud
Palringo : a startup's journey from a data center to the cloudPalringo : a startup's journey from a data center to the cloud
Palringo : a startup's journey from a data center to the cloud
 
Monolithic to microservices migration journey with spring cloud
Monolithic to microservices migration journey with spring cloudMonolithic to microservices migration journey with spring cloud
Monolithic to microservices migration journey with spring cloud
 
We don't need consensus: All agreed?
We don't need consensus: All agreed?We don't need consensus: All agreed?
We don't need consensus: All agreed?
 
Developing Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring CloudDeveloping Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring Cloud
 

Similar to AWS and the Nordstrom Data Lab Presentation on Building a RESTful Product Recommendations API

Agile infrastructure
Agile infrastructureAgile infrastructure
Agile infrastructureTarun Rajput
 
Aws webcast - Scaling on AWS 13 08-20
Aws webcast - Scaling on AWS 13 08-20Aws webcast - Scaling on AWS 13 08-20
Aws webcast - Scaling on AWS 13 08-20Amazon Web Services
 
Intro to AWS: EC2 & Compute Services
Intro to AWS: EC2 & Compute ServicesIntro to AWS: EC2 & Compute Services
Intro to AWS: EC2 & Compute ServicesAmazon Web Services
 
ENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million UsersENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million UsersAmazon Web Services
 
ENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million UsersENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million UsersAmazon Web Services
 
ENT309 scaling up to your first 10 million users
ENT309 scaling up to your first 10 million usersENT309 scaling up to your first 10 million users
ENT309 scaling up to your first 10 million usersAmazon Web Services
 
2016-06 - Design your api management strategy - AWS - Microservices on AWS
2016-06 - Design your api management strategy - AWS - Microservices on AWS2016-06 - Design your api management strategy - AWS - Microservices on AWS
2016-06 - Design your api management strategy - AWS - Microservices on AWSSmartWave
 
AWS re:Invent 2016: The State of Serverless Computing (SVR311)
AWS re:Invent 2016: The State of Serverless Computing (SVR311)AWS re:Invent 2016: The State of Serverless Computing (SVR311)
AWS re:Invent 2016: The State of Serverless Computing (SVR311)Amazon Web Services
 
Scaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million UsersScaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million UsersAmazon Web Services
 
AWS for the Java Developer
AWS for the Java DeveloperAWS for the Java Developer
AWS for the Java DeveloperRory Preddy
 
Intro to AWS: Amazon EC2 and Compute Services
Intro to AWS: Amazon EC2 and Compute ServicesIntro to AWS: Amazon EC2 and Compute Services
Intro to AWS: Amazon EC2 and Compute ServicesAmazon Web Services
 
AWS Lambda support for AWS X-Ray
AWS Lambda support for AWS X-RayAWS Lambda support for AWS X-Ray
AWS Lambda support for AWS X-RayEitan Sela
 
Intro to AWS: Amazon EC2 and Compute Services
Intro to AWS: Amazon EC2 and Compute ServicesIntro to AWS: Amazon EC2 and Compute Services
Intro to AWS: Amazon EC2 and Compute ServicesAmazon Web Services
 
Scaling up to Your First 10 Million Users
Scaling up to Your First 10 Million UsersScaling up to Your First 10 Million Users
Scaling up to Your First 10 Million UsersAmazon Web Services
 
AWS January 2016 Webinar Series - Getting Started with Big Data on AWS
AWS January 2016 Webinar Series - Getting Started with Big Data on AWSAWS January 2016 Webinar Series - Getting Started with Big Data on AWS
AWS January 2016 Webinar Series - Getting Started with Big Data on AWSAmazon Web Services
 
How Applications Manager helps with application performance monitoring
How Applications Manager helps with application performance monitoringHow Applications Manager helps with application performance monitoring
How Applications Manager helps with application performance monitoringManageEngine, Zoho Corporation
 
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)Amazon Web Services
 
Moving to the Cloud: AWS, Zend, RightScale
Moving to the Cloud: AWS, Zend, RightScaleMoving to the Cloud: AWS, Zend, RightScale
Moving to the Cloud: AWS, Zend, RightScalemmoline
 

Similar to AWS and the Nordstrom Data Lab Presentation on Building a RESTful Product Recommendations API (20)

Agile infrastructure
Agile infrastructureAgile infrastructure
Agile infrastructure
 
Aws webcast - Scaling on AWS 13 08-20
Aws webcast - Scaling on AWS 13 08-20Aws webcast - Scaling on AWS 13 08-20
Aws webcast - Scaling on AWS 13 08-20
 
Intro to AWS: EC2 & Compute Services
Intro to AWS: EC2 & Compute ServicesIntro to AWS: EC2 & Compute Services
Intro to AWS: EC2 & Compute Services
 
ENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million UsersENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million Users
 
ENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million UsersENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million Users
 
ENT309 scaling up to your first 10 million users
ENT309 scaling up to your first 10 million usersENT309 scaling up to your first 10 million users
ENT309 scaling up to your first 10 million users
 
2016-06 - Design your api management strategy - AWS - Microservices on AWS
2016-06 - Design your api management strategy - AWS - Microservices on AWS2016-06 - Design your api management strategy - AWS - Microservices on AWS
2016-06 - Design your api management strategy - AWS - Microservices on AWS
 
AWS re:Invent 2016: The State of Serverless Computing (SVR311)
AWS re:Invent 2016: The State of Serverless Computing (SVR311)AWS re:Invent 2016: The State of Serverless Computing (SVR311)
AWS re:Invent 2016: The State of Serverless Computing (SVR311)
 
Scaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million UsersScaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million Users
 
AWS for the Java Developer
AWS for the Java DeveloperAWS for the Java Developer
AWS for the Java Developer
 
Intro to AWS: Amazon EC2 and Compute Services
Intro to AWS: Amazon EC2 and Compute ServicesIntro to AWS: Amazon EC2 and Compute Services
Intro to AWS: Amazon EC2 and Compute Services
 
AWS Lambda support for AWS X-Ray
AWS Lambda support for AWS X-RayAWS Lambda support for AWS X-Ray
AWS Lambda support for AWS X-Ray
 
Intro to AWS: Amazon EC2 and Compute Services
Intro to AWS: Amazon EC2 and Compute ServicesIntro to AWS: Amazon EC2 and Compute Services
Intro to AWS: Amazon EC2 and Compute Services
 
Scaling up to Your First 10 Million Users
Scaling up to Your First 10 Million UsersScaling up to Your First 10 Million Users
Scaling up to Your First 10 Million Users
 
AWS January 2016 Webinar Series - Getting Started with Big Data on AWS
AWS January 2016 Webinar Series - Getting Started with Big Data on AWSAWS January 2016 Webinar Series - Getting Started with Big Data on AWS
AWS January 2016 Webinar Series - Getting Started with Big Data on AWS
 
Create cloud service on AWS
Create cloud service on AWSCreate cloud service on AWS
Create cloud service on AWS
 
Mini-Training: Netflix Simian Army
Mini-Training: Netflix Simian ArmyMini-Training: Netflix Simian Army
Mini-Training: Netflix Simian Army
 
How Applications Manager helps with application performance monitoring
How Applications Manager helps with application performance monitoringHow Applications Manager helps with application performance monitoring
How Applications Manager helps with application performance monitoring
 
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
 
Moving to the Cloud: AWS, Zend, RightScale
Moving to the Cloud: AWS, Zend, RightScaleMoving to the Cloud: AWS, Zend, RightScale
Moving to the Cloud: AWS, Zend, RightScale
 

Recently uploaded

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
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
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Recently uploaded (20)

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 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
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

AWS and the Nordstrom Data Lab Presentation on Building a RESTful Product Recommendations API

  • 1. Jason Wilson & David Von Lehman PRESENTING AWS and the Nordstrom Data Lab
  • 2. Recommendo Overview • REST-ful product recommendations API • Live on nordstrom.com in November • Service emails live in January • Lives in the AWS cloud – Elastic Beanstalk, DynamoDB, node.js • 3rd party rec vendors don’t tap into what is unique about Nordstrom or fashion
  • 3. By the Numbers • Over 4 billion recommendations served • >3 million API hits per day • 105 days between first commit and go-live (Aug 6 and Nov 19 respectively) • 5 servers with auto-scaling to 20 (turns out we don’t need them) • 90ms average request latency
  • 5. How We Built It • Continuous integration and deployment from the first week • 90+ percent code coverage • Fewer moving parts == less to monitor, fewer ways for things to go wrong • Fully PaaS based to minimize sys admin responsibilities • How can we support this ourselves without carrying pagers?
  • 6.
  • 7. DynamoDB • Fully managed NoSQL database-as-a-service • Web API with SDK support for Python, Ruby, node.js, .NET, and Java • High performance queries, backed by SSD • Maintains predictable performance for data at any size through horizontal scale out • Auto replication across 3 availability zones • Need to understand data access patterns up front • Pay for only what you use/need – both storage and R/W throughput
  • 8. • JavaScript on the server atop the Google V8 engine • Asynchronous event loop makes it ideal for real-time data intensive applications • Vibrant open-source community around excellent npm package manager (50K+ packages) • Seeing increased adoption in enterprises including Wal-Mart, LinkedIn, PayPal, Dow Jones, Microsoft, New York Times
  • 9. JavaScript – Learn to Love It • No type checking, don’t find errors until runtime • Not classical OO • var keyword • Callback hell • Server debugging too hard • But wait.. • Chrome and V8 • Dynamic can be your friend • npm! • express, async, mocha
  • 10. AWS Components • EC2 – Provides web-scale computing as a service. • ELB – elastic load balancer. Routes incoming traffic to ec2 instances, scales up to meet demand. • Auto-scaling group – a logical collection of EC2 instances behind an ELB
  • 12. Elastic Beanstalk • AWS PaaS – lightweight abstraction layer atop EC2/ELB with no additional costs • More transparent than Azure or Heroku • Supports Java, .NET, Python, Node.js, PHP, and Ruby • git push deployment • Auto-scaling group with custom triggers and auto applied config • Possible to configure the AMI including yum packages, environment variables, and more • Supports custom AMIs • Automated health checks
  • 13. Continuous Deployment git push to dev branch Jenkins CI unit tests git push to EB git pull dev git checkout master git merge dev git push master Jenkins CI unit tests git push to EB (prod) Development Production
  • 14. Performance testing • Initial performance was poor. • Disable DNS caching when load testing against ELB. • Pre-warm ELB for higher upfront throughput • jmeter-ec2, bees with machine guns
  • 15. Early Perf results – YIKES!Transactions per second Response time (seconds)
  • 16. Performance tuning • New relic, Nodetime – Real-time performance monitoring of node runtime • node-mem-watch – Evented inspection of heap, gc events, leak events, and heap diffing • ssh into instances
  • 17. Real Performance • Pleasantly surprised  • Average latency ~90ms • Dynamo response times <10ms • Handful of auto-scaling up and back events • One outage due to bad exception handling
  • 20. Lessons Learned / Pitfalls • True zero downtime deployment is difficult to achieve • Thoroughly explore the Elastic Beanstalk configuration options • Catch those errors – a rogue unhandled exception can bring it all down • Health checks that actually do something • Out of the box monitoring is pretty good
  • 21.
  • 22. Harness the Cloud On-Premise IaaS PaaS % time infrastructure experience
  • 25. Recommendo 2.0 • Sku based recommendations – size! • Truly personalized recs based on individual browse and purchase history DynamoDB Batch Recs Real- Time Refiner y ScorerIngester Redis Streams
  • 26. Additional AWS Services • Elasticache and Redis • Elastic Beanstalk worker tiers • SQS • S3
  • 27. Wrap-Up • Recommendo – initial success, now building upon what we have learned • Node.js + DynamoDB + Elastic Beanstalk is a winning combination • Possible to out-perform an incumbent vendor solution in a competitive differentiating capability • Cloud and PaaS enable small teams to move quick and deliver solid production caliber systems • Incremental cost of “gold plating” steadily shrinking • Your company benefits when percent of resources devoted to core competency is maximized
  • 28. Thank you • Questions / comments? • @davidvlsea • ds@nordstrom.com

Editor's Notes

  1. DAVID
  2. JASON
  3. JASON
  4. The ease of deployment is addictive.. Just a git push and you’re doneDAVID
  5. DAVID
  6. DAVID
  7. DAVID
  8. DAVID
  9. JASON
  10. JASON
  11. JASON
  12. JASON
  13. JASON
  14. JASON
  15. JASON
  16. DAVID
  17. DAVID
  18. DAVID
  19. JASON
  20. DAVIDMany think that a similar revolution is about to happen for the enterprise.
  21. DAVIDOn-Premise – large crew with many specialists, lots of infrastructure to support, lots of regulations, redundancy, energy required to prep and depart from the port, no cloud powerIaaS – Less power/resources required, smaller crew. Still complicated to sail though, requires some specialization. PaaS – Smallest crew yet, highly nimble, 2-3 people can just hoist the sails and get out to sea. Everyone can operate all aspects of the boat. Also means they are alone out there. Team needs to be self sufficient if something goes wrong.Point is not that we need fewer people overall, rather we need a whole fleet of nimble PaaS vessels. Shift resources towards the point of customer impact. Offload non-differentiating commodity infrastructure.
  22. DAVIDThanks to cloud and code libraries (especially open-source), the additional incremental effort required for industrial strength is shrinking.Logging – lots of great open source libsMonitoring – Cloud Watch, New RelicRedundancy – Elastic Load BalancerScalability – Auto-Scaling groupsHigh Availability – Dynamo replicationDeployment Automation – git pushSecurity – IAM, VPC, Firewalls
  23. DAVID
  24. JASON
  25. DAVID