SlideShare a Scribd company logo
1 of 18
Innovating Through React
Native Mobile Apps
Fender Musical Instruments
Joshua Couch, VP of Engineering
Michael Garski, Director of Platform Engineering
FENDER + FENDER DIGITAL
• Fender was Founded in 1946 by Leo Fender in Fullerton, CA
• Introduced the iconic Telecaster in 1951, Stratocaster followed in 1954
• 2000+ Employees
• 2 Corporate Offices in Scottsdale, AZ and Hollywood, CA
• 2 Factories in Corona, CA and Ensenada, Mexico
• FMIC includes Gretsch, Jackson, Charvel and EVH (Eddie Van Halen) brands
• Fender Digital formed in late 2015
• 95 employees primarily in the Hollywood office
• All new products being built on top of AWS
FENDER DIGITAL PRODUCTS
Mod Shop + Connect
• July/October 2016
• Customized Guitars
• Shared-sign-on
Fender Tune
• August 2016
• iOS + Android:
1.5M ⬇️, 4.7 ⭐️
Fender Tone
• January 2017
• iOS + Android
• Companion App to
Mustang GT Amp
Fender Play
• July 2017
• React-Native
• iOS w/IAP
FENDER PLAY
Beginner-Focused
• Personalized Learning Path
Song-Based Curriculum
• Applied Skills, Theory
High Quality, 4K Video
• Multiple camera angles
Our AWS Environment
Active Account
• Engineers have full access
• Free to prototype new ideas
QA/Production Account
• Engineers have limited access
• Stable environment
Architecture Considerations
Persistent Data Store
Amazon
DynamoDB
Read Flexibility
Amazon ES
Event Driven
Amazon
SNS
Amazon
SQS
Combine With Lambda
Amazon
DynamoDB Amazon ES
Lambda
function
Architecture
Overview Amazon
EC2
AWS
Lambda
AWS
Lambda
Amazon API
Gateway
Amazon
RDS
Amazon
DynamoDB
Amazon
DynamoDB
Amazon ES
Authentication &
Authorization
Subscriptions
LMS/PlayAPI
Lambda With Apex & Go
• Started using spring 2017
• Apex is a multi-language
platform for developing, building,
& deploying lambda functions
Apex Project Layout
• Business logic is shared among
functions in sub-packages
• Lambda functions in a specific
directory
• Project file to set environment
variables when executing apex
deploy
• Vendored dependencies with
Godep
• Main sets up dependencies and
injects into handler
How we use lambda for services
• A service is a collection of functions with different inputs
• Service contains a function for each:
• APIGW route/method combination
• SNS topic
• DDB table stream
• Directly invoked functions for ‘private’ APIs
• Advantages
• Single purposed functions with granular permissions
• Simple handlers that validate input, invoke business logic, format response
• Disadvantages
• Long build & deploy cycle (not an issue with node or python functions)
Subscription Service
Amazon API
Gateway
Create
Subscription
Custom
Authorizer
Amazon
DynamoDB
Stream Events
Amazon
SNS
Email Service
Provider
Segment
Update
Subscription
Get
Subscription
Status
Amazon
Redshift
Appstore
Subscription
Callback
Mobile App
App Store
Segment
Publisher
ESP Publisher
Segment DLQ
ESP DLQ
Subscription
Provider Sync
Subscription
Provider
Cloudwatch
Event
LMS / Play API
Amazon API
Gateway
Create Lesson
Play API
Custom
Authorizer
Amazon
DynamoDB
Stream Events
Create Course
Save Progress
Get Course
LMS Custom
Authorizer
Mobile App
LMS Admins
Get Progress
Amazon ES
Get Lesson
Index Refil
Video Processing Pipeline
AWS Snowball
AWS Storage
Gateway
Local SAN
Raw Video
Assets
Amazon
Glacier
Start
Transcode
Amazon Elastic
Transcoder
Transcoded
Videos
Transcode
Completed
Amazon
DynamoDB
Mobile App
Test & Build
• GitFlow workflow
• CircleCI
• Unit test coverage reported
through Coveralls
• End to end tests performed that
set up external dependencies
Deployment & configuration
• Terraform provisions
resources
• Functions deployed via
AWS CLI
• APIGW updated via AWS
CLI
• Ansible for configuration
management
Monitoring
Amazon
CloudWatch
Honeycomb.io
Future Directions
• Cognito
• Native go support
• XRay tracing
• 100% serverless
• Multi-region support
• More step functions

More Related Content

What's hot

The API Facade Pattern: Technology - Episode 3
The API Facade Pattern: Technology - Episode 3The API Facade Pattern: Technology - Episode 3
The API Facade Pattern: Technology - Episode 3
Apigee | Google Cloud
 

What's hot (20)

Developing SharePoint Framework Solutions for the Enterprise (SPC 2019)
Developing SharePoint Framework Solutions for the Enterprise (SPC 2019)Developing SharePoint Framework Solutions for the Enterprise (SPC 2019)
Developing SharePoint Framework Solutions for the Enterprise (SPC 2019)
 
AWS User Group - Survey Results and Building APIs on AWS
AWS User Group - Survey Results and Building APIs on AWSAWS User Group - Survey Results and Building APIs on AWS
AWS User Group - Survey Results and Building APIs on AWS
 
Creating Event Driven Serverless Applications - Sandeep - Adobe - Serverless ...
Creating Event Driven Serverless Applications - Sandeep - Adobe - Serverless ...Creating Event Driven Serverless Applications - Sandeep - Adobe - Serverless ...
Creating Event Driven Serverless Applications - Sandeep - Adobe - Serverless ...
 
Habitat on AKS - Demo
Habitat on AKS - DemoHabitat on AKS - Demo
Habitat on AKS - Demo
 
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
 
FaaS Automation and Infrastructure
FaaS Automation and Infrastructure FaaS Automation and Infrastructure
FaaS Automation and Infrastructure
 
Introduction to Azure Functions - Tutorial
Introduction to Azure Functions - TutorialIntroduction to Azure Functions - Tutorial
Introduction to Azure Functions - Tutorial
 
SPSCasablanca - SPFx Deployment
SPSCasablanca - SPFx DeploymentSPSCasablanca - SPFx Deployment
SPSCasablanca - SPFx Deployment
 
Dashboards as Code by Tim Hall, VP of Product | InfluxData
Dashboards as Code by Tim Hall, VP of Product | InfluxDataDashboards as Code by Tim Hall, VP of Product | InfluxData
Dashboards as Code by Tim Hall, VP of Product | InfluxData
 
The API Facade Pattern: Technology - Episode 3
The API Facade Pattern: Technology - Episode 3The API Facade Pattern: Technology - Episode 3
The API Facade Pattern: Technology - Episode 3
 
Domain Driven Design Through Onion Architecture
Domain Driven Design Through Onion ArchitectureDomain Driven Design Through Onion Architecture
Domain Driven Design Through Onion Architecture
 
IoT and Serverless - AWS - Serverless Summit - Madhusudan Shekar
IoT and Serverless - AWS - Serverless Summit - Madhusudan ShekarIoT and Serverless - AWS - Serverless Summit - Madhusudan Shekar
IoT and Serverless - AWS - Serverless Summit - Madhusudan Shekar
 
Postman Webinar: "From APIs to Serverless Cloud Applications in Minutes"
Postman Webinar: "From APIs to Serverless Cloud Applications in Minutes"Postman Webinar: "From APIs to Serverless Cloud Applications in Minutes"
Postman Webinar: "From APIs to Serverless Cloud Applications in Minutes"
 
Big ideas in small packages - How microservices helped us to scale our vision
Big ideas in small packages  - How microservices helped us to scale our visionBig ideas in small packages  - How microservices helped us to scale our vision
Big ideas in small packages - How microservices helped us to scale our vision
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples
 
Serverless Meetup - Event Sourcing
Serverless Meetup - Event SourcingServerless Meetup - Event Sourcing
Serverless Meetup - Event Sourcing
 
WooCommerce & Apple TV
WooCommerce & Apple TVWooCommerce & Apple TV
WooCommerce & Apple TV
 
The future-of-netflix-api
The future-of-netflix-apiThe future-of-netflix-api
The future-of-netflix-api
 
Ohio Devfest - Visual Analysis with GCP
Ohio Devfest - Visual Analysis with GCPOhio Devfest - Visual Analysis with GCP
Ohio Devfest - Visual Analysis with GCP
 
Azure App Service
Azure App ServiceAzure App Service
Azure App Service
 

Similar to Innovating Through React Native Mobile Apps with Fender Musical Instruments.pdf

Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013
Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013
Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013
Aaron Saunders
 
UCCSC 2016
UCCSC 2016UCCSC 2016
UCCSC 2016
Alex Wu
 

Similar to Innovating Through React Native Mobile Apps with Fender Musical Instruments.pdf (20)

Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013
Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013
Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013
 
Introduction to development using the share point framework mv ps
Introduction to development using the share point framework mv psIntroduction to development using the share point framework mv ps
Introduction to development using the share point framework mv ps
 
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
 
DEV117 - Unleash the Power of the AppDev Pack and Node.js in Domino
DEV117 - Unleash the Power of the AppDev Pack and Node.js in DominoDEV117 - Unleash the Power of the AppDev Pack and Node.js in Domino
DEV117 - Unleash the Power of the AppDev Pack and Node.js in Domino
 
Keynote speech
Keynote speechKeynote speech
Keynote speech
 
Running Web & Mobile in Azure App Service
Running Web & Mobile in Azure App ServiceRunning Web & Mobile in Azure App Service
Running Web & Mobile in Azure App Service
 
How to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power UserHow to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power User
 
Developing Multi-tenant provider hosted apps: From Idea to Office Store
Developing Multi-tenant provider hosted apps: From Idea to Office StoreDeveloping Multi-tenant provider hosted apps: From Idea to Office Store
Developing Multi-tenant provider hosted apps: From Idea to Office Store
 
SamSegalResume
SamSegalResumeSamSegalResume
SamSegalResume
 
O365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in actionO365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in action
 
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
 
The API Facade Pattern: People - Episode 4
The API Facade Pattern: People - Episode 4The API Facade Pattern: People - Episode 4
The API Facade Pattern: People - Episode 4
 
UCCSC 2016
UCCSC 2016UCCSC 2016
UCCSC 2016
 
New SharePoint Features in Visual Studio 2012!
New SharePoint Features in Visual Studio 2012!New SharePoint Features in Visual Studio 2012!
New SharePoint Features in Visual Studio 2012!
 
Collision 2018: CodeStar for CICD Pipelines
Collision 2018: CodeStar for CICD PipelinesCollision 2018: CodeStar for CICD Pipelines
Collision 2018: CodeStar for CICD Pipelines
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint Framework
 
Neev Open Source Contributions
Neev Open Source ContributionsNeev Open Source Contributions
Neev Open Source Contributions
 
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)
 
Appcelerator’s Cocoafish Acquisition and the Future of the Mobile Cloud
Appcelerator’s Cocoafish Acquisition and the  Future of the Mobile Cloud Appcelerator’s Cocoafish Acquisition and the  Future of the Mobile Cloud
Appcelerator’s Cocoafish Acquisition and the Future of the Mobile Cloud
 
Integrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service PlatformIntegrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service Platform
 

More from Amazon Web Services

Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
Amazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
Amazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
Amazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
Amazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Innovating Through React Native Mobile Apps with Fender Musical Instruments.pdf

  • 1. Innovating Through React Native Mobile Apps Fender Musical Instruments Joshua Couch, VP of Engineering Michael Garski, Director of Platform Engineering
  • 2. FENDER + FENDER DIGITAL • Fender was Founded in 1946 by Leo Fender in Fullerton, CA • Introduced the iconic Telecaster in 1951, Stratocaster followed in 1954 • 2000+ Employees • 2 Corporate Offices in Scottsdale, AZ and Hollywood, CA • 2 Factories in Corona, CA and Ensenada, Mexico • FMIC includes Gretsch, Jackson, Charvel and EVH (Eddie Van Halen) brands • Fender Digital formed in late 2015 • 95 employees primarily in the Hollywood office • All new products being built on top of AWS
  • 3. FENDER DIGITAL PRODUCTS Mod Shop + Connect • July/October 2016 • Customized Guitars • Shared-sign-on Fender Tune • August 2016 • iOS + Android: 1.5M ⬇️, 4.7 ⭐️ Fender Tone • January 2017 • iOS + Android • Companion App to Mustang GT Amp Fender Play • July 2017 • React-Native • iOS w/IAP
  • 4.
  • 5. FENDER PLAY Beginner-Focused • Personalized Learning Path Song-Based Curriculum • Applied Skills, Theory High Quality, 4K Video • Multiple camera angles
  • 6. Our AWS Environment Active Account • Engineers have full access • Free to prototype new ideas QA/Production Account • Engineers have limited access • Stable environment
  • 7. Architecture Considerations Persistent Data Store Amazon DynamoDB Read Flexibility Amazon ES Event Driven Amazon SNS Amazon SQS Combine With Lambda Amazon DynamoDB Amazon ES Lambda function
  • 9. Lambda With Apex & Go • Started using spring 2017 • Apex is a multi-language platform for developing, building, & deploying lambda functions
  • 10. Apex Project Layout • Business logic is shared among functions in sub-packages • Lambda functions in a specific directory • Project file to set environment variables when executing apex deploy • Vendored dependencies with Godep • Main sets up dependencies and injects into handler
  • 11. How we use lambda for services • A service is a collection of functions with different inputs • Service contains a function for each: • APIGW route/method combination • SNS topic • DDB table stream • Directly invoked functions for ‘private’ APIs • Advantages • Single purposed functions with granular permissions • Simple handlers that validate input, invoke business logic, format response • Disadvantages • Long build & deploy cycle (not an issue with node or python functions)
  • 12. Subscription Service Amazon API Gateway Create Subscription Custom Authorizer Amazon DynamoDB Stream Events Amazon SNS Email Service Provider Segment Update Subscription Get Subscription Status Amazon Redshift Appstore Subscription Callback Mobile App App Store Segment Publisher ESP Publisher Segment DLQ ESP DLQ Subscription Provider Sync Subscription Provider Cloudwatch Event
  • 13. LMS / Play API Amazon API Gateway Create Lesson Play API Custom Authorizer Amazon DynamoDB Stream Events Create Course Save Progress Get Course LMS Custom Authorizer Mobile App LMS Admins Get Progress Amazon ES Get Lesson Index Refil
  • 14. Video Processing Pipeline AWS Snowball AWS Storage Gateway Local SAN Raw Video Assets Amazon Glacier Start Transcode Amazon Elastic Transcoder Transcoded Videos Transcode Completed Amazon DynamoDB Mobile App
  • 15. Test & Build • GitFlow workflow • CircleCI • Unit test coverage reported through Coveralls • End to end tests performed that set up external dependencies
  • 16. Deployment & configuration • Terraform provisions resources • Functions deployed via AWS CLI • APIGW updated via AWS CLI • Ansible for configuration management
  • 18. Future Directions • Cognito • Native go support • XRay tracing • 100% serverless • Multi-region support • More step functions