SlideShare a Scribd company logo
1 of 19
Billing & Payments Meetup II
March 18th, 2015
Billing & Payments Meetup II
• Mathieu Chauvin
Payment Processing in the Cloud
• Sangeeta Handa & John Brandy
Billing Workflows in the Cloud
• Shankar Vedaraman
Payment Analytics at Netflix
• Poorna Udupi & Rudra Peram
Security for Billing & Payments
• Rahul Dani
Escape from PCI Land
Payment Processing in the
Cloud
Mathieu Chauvin
Payments Engineering
(src: Nintendo)
• > 57M members
• ~ 50 countries
• 12 currencies
• 9 payment types
• 15+ payment processors
& verification services
• 2M transactions per day
• … and counting!
Payments Application
• Method Of Payment (MOP)
– Secure storage
– Management
• Connection to 3rd party
– Payment processors
– Verification services
• A lot of batch processing
• Agnostic interface to clients
Historical Payments Application
• Data center
• Difficulties integrating
new payment types
• Sedimentary layers of
legacy code
Historical Payments Application
Cloud
Proxy
Client Apps
from DC
Payments
App
Payments
ORA DB
tunnel
File/Batch
Apps
File/Batch
Apps
File/Batch
Apps
3rd Party
Processors
3rd Party
Processors
3rd Party
Processors
3rd Party
Processors
Client Apps
from AWS
Netflix ♥ Cloud
• 1997: Netflix founded
• 2007: Streaming
• 2010: Microservices -
AWS adopted
• 2013: Ready for payments
(http://techblog.netflix.com/2010/12/four-reasons-we-choose-amazons-cloud-as.html)
Payments in the Cloud!
• Compliance
– AWS PCI compliance level 1
– Cassandra PCI compliant
• Division of labor
– Token service
– Secure key storage w/ cloudHSM
• Technical evaluation
– NoSQL vs. RDBMS
Cassandra
• Tunable consistency
• Multi-region support
• CAP theorem
– Consistency above all
– Local quorum reads & writes
• Data model
– Rethink and denormalize
Technologies & Framework
• Enterprise integration pattern framework
– Apache Camel
• Batch application
– Spring Batch
• Data migration
– Apache Storm
• Netflix OSS
• AWS
New Architecture Design
Cloud
Payments
App
Tokenizer
Client Apps
from AWS
3rd Party
Processors
3rd Party
Processors
3rd Party
Processors
3rd Party
Processors
region B
load balancers
region A
Multi-Region Availability
zone a zone b zone c zone a zone b zone c
load balancers
How Do We Go There?
• Decoupling
• Shadow write (roman riding)
• Staggered migration by country
(src: Nintendo)
Decoupling
Cloud
Proxy
Client Apps
from DC
Payment
App
Payment
ORA DB
tunnel
Client Apps
from AWS
Cloud
Payment
App
Tokenizer
+ Country Code
+ Country Code
+ Routing Logic
+ Routing Logic
Shadow Write
Cloud
Proxy
Client Apps
from DC
Payment
App
Payment
ORA DB
tunnel
Client Apps
from AWS
Cloud
Payment
App
Tokenizer
Staggered Migration
• Migration by country
• Sole requirement: All processors for the
country have to be cloud-ready
Risks
• Troubleshooting
• Depth of existing business logic
– by country,
– by processors,
– by use cases
• Cloud compatibility of processors
(src: Nintendo)
Questions ?
(src: Nintendo)

More Related Content

What's hot

Simplified Hybrid Cloud Migration with Confluent and Google Cloud
Simplified Hybrid Cloud Migration with Confluent and Google CloudSimplified Hybrid Cloud Migration with Confluent and Google Cloud
Simplified Hybrid Cloud Migration with Confluent and Google Cloud
confluent
 

What's hot (20)

The Problem is Data: Gwen Shapira, Confluent, Serverless NYC 2018
The Problem is Data: Gwen Shapira, Confluent, Serverless NYC 2018The Problem is Data: Gwen Shapira, Confluent, Serverless NYC 2018
The Problem is Data: Gwen Shapira, Confluent, Serverless NYC 2018
 
Simplified Hybrid Cloud Migration with Confluent and Google Cloud
Simplified Hybrid Cloud Migration with Confluent and Google CloudSimplified Hybrid Cloud Migration with Confluent and Google Cloud
Simplified Hybrid Cloud Migration with Confluent and Google Cloud
 
Stream Processing with Kafka in Uber, Danny Yuan
Stream Processing with Kafka in Uber, Danny Yuan Stream Processing with Kafka in Uber, Danny Yuan
Stream Processing with Kafka in Uber, Danny Yuan
 
Real-Time Market Data Analytics Using Kafka Streams
Real-Time Market Data Analytics Using Kafka StreamsReal-Time Market Data Analytics Using Kafka Streams
Real-Time Market Data Analytics Using Kafka Streams
 
Hybrid Kafka, Taking Real-time Analytics to the Business (Cody Irwin, Google ...
Hybrid Kafka, Taking Real-time Analytics to the Business (Cody Irwin, Google ...Hybrid Kafka, Taking Real-time Analytics to the Business (Cody Irwin, Google ...
Hybrid Kafka, Taking Real-time Analytics to the Business (Cody Irwin, Google ...
 
Building the Serverless Container Experience: Kevin McGrath, Spotinst, Server...
Building the Serverless Container Experience: Kevin McGrath, Spotinst, Server...Building the Serverless Container Experience: Kevin McGrath, Spotinst, Server...
Building the Serverless Container Experience: Kevin McGrath, Spotinst, Server...
 
Neha Narkhede | Kafka Summit London 2019 Keynote | Event Streaming: Our Cloud...
Neha Narkhede | Kafka Summit London 2019 Keynote | Event Streaming: Our Cloud...Neha Narkhede | Kafka Summit London 2019 Keynote | Event Streaming: Our Cloud...
Neha Narkhede | Kafka Summit London 2019 Keynote | Event Streaming: Our Cloud...
 
Real time analytics in Azure IoT
Real time analytics in Azure IoT Real time analytics in Azure IoT
Real time analytics in Azure IoT
 
Azure Messaging Crossroads
Azure Messaging CrossroadsAzure Messaging Crossroads
Azure Messaging Crossroads
 
Kafka and Stream Processing, Taking Analytics Real-time, Mike Spicer
Kafka and Stream Processing, Taking Analytics Real-time, Mike SpicerKafka and Stream Processing, Taking Analytics Real-time, Mike Spicer
Kafka and Stream Processing, Taking Analytics Real-time, Mike Spicer
 
Closing Keynote: The Physics of Streaming | Tim Berglund, Confluent | Kafka S...
Closing Keynote: The Physics of Streaming | Tim Berglund, Confluent | Kafka S...Closing Keynote: The Physics of Streaming | Tim Berglund, Confluent | Kafka S...
Closing Keynote: The Physics of Streaming | Tim Berglund, Confluent | Kafka S...
 
The Serverless Native Mindset: Ben Kehoe, iRobot, Serverless NYC 2018
The Serverless Native Mindset: Ben Kehoe, iRobot, Serverless NYC 2018The Serverless Native Mindset: Ben Kehoe, iRobot, Serverless NYC 2018
The Serverless Native Mindset: Ben Kehoe, iRobot, Serverless NYC 2018
 
APAC ksqlDB Workshop
APAC ksqlDB WorkshopAPAC ksqlDB Workshop
APAC ksqlDB Workshop
 
Event Streaming CTO Roundtable for Cloud-native Kafka Architectures
Event Streaming CTO Roundtable for Cloud-native Kafka ArchitecturesEvent Streaming CTO Roundtable for Cloud-native Kafka Architectures
Event Streaming CTO Roundtable for Cloud-native Kafka Architectures
 
Event & Data Mesh as a Service: Industrializing Microservices in the Enterpri...
Event & Data Mesh as a Service: Industrializing Microservices in the Enterpri...Event & Data Mesh as a Service: Industrializing Microservices in the Enterpri...
Event & Data Mesh as a Service: Industrializing Microservices in the Enterpri...
 
#Re-Imagine Autoscaling Stream Consumers in Cloud Environments (Sunil Kaitha,...
#Re-Imagine Autoscaling Stream Consumers in Cloud Environments (Sunil Kaitha,...#Re-Imagine Autoscaling Stream Consumers in Cloud Environments (Sunil Kaitha,...
#Re-Imagine Autoscaling Stream Consumers in Cloud Environments (Sunil Kaitha,...
 
Extracting Value from IOT using Azure Cosmos DB, Azure Synapse Analytics and ...
Extracting Value from IOT using Azure Cosmos DB, Azure Synapse Analytics and ...Extracting Value from IOT using Azure Cosmos DB, Azure Synapse Analytics and ...
Extracting Value from IOT using Azure Cosmos DB, Azure Synapse Analytics and ...
 
Building Event-Driven Applications with Apache Kafka & Confluent Platform
Building Event-Driven Applications with Apache Kafka & Confluent PlatformBuilding Event-Driven Applications with Apache Kafka & Confluent Platform
Building Event-Driven Applications with Apache Kafka & Confluent Platform
 
3 Ways to Deliver an Elastic, Cost-Effective Cloud Architecture
3 Ways to Deliver an Elastic, Cost-Effective Cloud Architecture3 Ways to Deliver an Elastic, Cost-Effective Cloud Architecture
3 Ways to Deliver an Elastic, Cost-Effective Cloud Architecture
 
Supply Chain Optimization with Apache Kafka
Supply Chain Optimization with Apache KafkaSupply Chain Optimization with Apache Kafka
Supply Chain Optimization with Apache Kafka
 

Similar to 3/18/15 Billing&Payments Eng Meetup II - Payments Processing in the Cloud

Migrating Your Data Platform At a High Growth Startup
Migrating Your Data Platform At a High Growth StartupMigrating Your Data Platform At a High Growth Startup
Migrating Your Data Platform At a High Growth Startup
Databricks
 

Similar to 3/18/15 Billing&Payments Eng Meetup II - Payments Processing in the Cloud (20)

Amazon Web Services Architecture - An Overview
Amazon Web Services Architecture - An OverviewAmazon Web Services Architecture - An Overview
Amazon Web Services Architecture - An Overview
 
Migrating Your Data Platform At a High Growth Startup
Migrating Your Data Platform At a High Growth StartupMigrating Your Data Platform At a High Growth Startup
Migrating Your Data Platform At a High Growth Startup
 
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
 
Get the EDGE to scale: Using Cloudfront along with edge compute to scale your...
Get the EDGE to scale: Using Cloudfront along with edge compute to scale your...Get the EDGE to scale: Using Cloudfront along with edge compute to scale your...
Get the EDGE to scale: Using Cloudfront along with edge compute to scale your...
 
Dan Crawford - Canadian Executive Cloud & DevOps Summit Presentation
Dan Crawford - Canadian Executive Cloud & DevOps Summit PresentationDan Crawford - Canadian Executive Cloud & DevOps Summit Presentation
Dan Crawford - Canadian Executive Cloud & DevOps Summit Presentation
 
Exploring Contact Lens and Amazon Connect
Exploring Contact Lens and Amazon ConnectExploring Contact Lens and Amazon Connect
Exploring Contact Lens and Amazon Connect
 
Come costruire apllicazioni "12-factor microservices" in AWS
Come costruire apllicazioni "12-factor microservices" in AWSCome costruire apllicazioni "12-factor microservices" in AWS
Come costruire apllicazioni "12-factor microservices" in AWS
 
Serverless Messaging with Microsoft Azure by Steef-Jan Wiggers
Serverless Messaging with Microsoft Azure by Steef-Jan WiggersServerless Messaging with Microsoft Azure by Steef-Jan Wiggers
Serverless Messaging with Microsoft Azure by Steef-Jan Wiggers
 
AWS and Serverless with Alexa
AWS and Serverless with AlexaAWS and Serverless with Alexa
AWS and Serverless with Alexa
 
GCP.pptx
GCP.pptxGCP.pptx
GCP.pptx
 
Kinesis @ lyft
Kinesis @ lyftKinesis @ lyft
Kinesis @ lyft
 
"Serverless Java Applications" at Froscon 2018 by Vadym Kazulkin/Elmar Warken
"Serverless Java Applications" at Froscon 2018 by Vadym Kazulkin/Elmar Warken"Serverless Java Applications" at Froscon 2018 by Vadym Kazulkin/Elmar Warken
"Serverless Java Applications" at Froscon 2018 by Vadym Kazulkin/Elmar Warken
 
Architecture evolution
Architecture evolutionArchitecture evolution
Architecture evolution
 
How Netflix Monitors Applications in Near Real-time w Amazon Kinesis - ABD401...
How Netflix Monitors Applications in Near Real-time w Amazon Kinesis - ABD401...How Netflix Monitors Applications in Near Real-time w Amazon Kinesis - ABD401...
How Netflix Monitors Applications in Near Real-time w Amazon Kinesis - ABD401...
 
Event Horizon at Solace Connect Singapore
Event Horizon at Solace Connect SingaporeEvent Horizon at Solace Connect Singapore
Event Horizon at Solace Connect Singapore
 
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)
 
Can the e-Mobility Charging Infrastructure be a Blueprint for other IoT Proje...
Can the e-Mobility Charging Infrastructure be a Blueprint for other IoT Proje...Can the e-Mobility Charging Infrastructure be a Blueprint for other IoT Proje...
Can the e-Mobility Charging Infrastructure be a Blueprint for other IoT Proje...
 
AWS for the Java Developer
AWS for the Java DeveloperAWS for the Java Developer
AWS for the Java Developer
 
How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...
How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...
How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...
 
How Netflix Uses Amazon Kinesis Streams to Monitor and Optimize Large-scale N...
How Netflix Uses Amazon Kinesis Streams to Monitor and Optimize Large-scale N...How Netflix Uses Amazon Kinesis Streams to Monitor and Optimize Large-scale N...
How Netflix Uses Amazon Kinesis Streams to Monitor and Optimize Large-scale N...
 

Recently uploaded

If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New Nigeria
Kayode Fayemi
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
raffaeleoman
 
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
amilabibi1
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac Folorunso
Kayode Fayemi
 

Recently uploaded (18)

Sector 62, Noida Call girls :8448380779 Noida Escorts | 100% verified
Sector 62, Noida Call girls :8448380779 Noida Escorts | 100% verifiedSector 62, Noida Call girls :8448380779 Noida Escorts | 100% verified
Sector 62, Noida Call girls :8448380779 Noida Escorts | 100% verified
 
If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New Nigeria
 
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdfAWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
 
My Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle BaileyMy Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle Bailey
 
Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510
 
ICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdfICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdf
 
Aesthetic Colaba Mumbai Cst Call girls 📞 7738631006 Grant road Call Girls ❤️-...
Aesthetic Colaba Mumbai Cst Call girls 📞 7738631006 Grant road Call Girls ❤️-...Aesthetic Colaba Mumbai Cst Call girls 📞 7738631006 Grant road Call Girls ❤️-...
Aesthetic Colaba Mumbai Cst Call girls 📞 7738631006 Grant road Call Girls ❤️-...
 
Digital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of DrupalDigital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of Drupal
 
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar Training
 
lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.
 
Dreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIIDreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio III
 
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
 
Dreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video TreatmentDreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video Treatment
 
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfThe workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac Folorunso
 
Causes of poverty in France presentation.pptx
Causes of poverty in France presentation.pptxCauses of poverty in France presentation.pptx
Causes of poverty in France presentation.pptx
 

3/18/15 Billing&Payments Eng Meetup II - Payments Processing in the Cloud

  • 1. Billing & Payments Meetup II March 18th, 2015
  • 2. Billing & Payments Meetup II • Mathieu Chauvin Payment Processing in the Cloud • Sangeeta Handa & John Brandy Billing Workflows in the Cloud • Shankar Vedaraman Payment Analytics at Netflix • Poorna Udupi & Rudra Peram Security for Billing & Payments • Rahul Dani Escape from PCI Land
  • 3. Payment Processing in the Cloud Mathieu Chauvin Payments Engineering (src: Nintendo)
  • 4. • > 57M members • ~ 50 countries • 12 currencies • 9 payment types • 15+ payment processors & verification services • 2M transactions per day • … and counting!
  • 5. Payments Application • Method Of Payment (MOP) – Secure storage – Management • Connection to 3rd party – Payment processors – Verification services • A lot of batch processing • Agnostic interface to clients
  • 6. Historical Payments Application • Data center • Difficulties integrating new payment types • Sedimentary layers of legacy code
  • 7. Historical Payments Application Cloud Proxy Client Apps from DC Payments App Payments ORA DB tunnel File/Batch Apps File/Batch Apps File/Batch Apps 3rd Party Processors 3rd Party Processors 3rd Party Processors 3rd Party Processors Client Apps from AWS
  • 8. Netflix ♥ Cloud • 1997: Netflix founded • 2007: Streaming • 2010: Microservices - AWS adopted • 2013: Ready for payments (http://techblog.netflix.com/2010/12/four-reasons-we-choose-amazons-cloud-as.html)
  • 9. Payments in the Cloud! • Compliance – AWS PCI compliance level 1 – Cassandra PCI compliant • Division of labor – Token service – Secure key storage w/ cloudHSM • Technical evaluation – NoSQL vs. RDBMS
  • 10. Cassandra • Tunable consistency • Multi-region support • CAP theorem – Consistency above all – Local quorum reads & writes • Data model – Rethink and denormalize
  • 11. Technologies & Framework • Enterprise integration pattern framework – Apache Camel • Batch application – Spring Batch • Data migration – Apache Storm • Netflix OSS • AWS
  • 12. New Architecture Design Cloud Payments App Tokenizer Client Apps from AWS 3rd Party Processors 3rd Party Processors 3rd Party Processors 3rd Party Processors
  • 13. region B load balancers region A Multi-Region Availability zone a zone b zone c zone a zone b zone c load balancers
  • 14. How Do We Go There? • Decoupling • Shadow write (roman riding) • Staggered migration by country (src: Nintendo)
  • 15. Decoupling Cloud Proxy Client Apps from DC Payment App Payment ORA DB tunnel Client Apps from AWS Cloud Payment App Tokenizer + Country Code + Country Code + Routing Logic + Routing Logic
  • 16. Shadow Write Cloud Proxy Client Apps from DC Payment App Payment ORA DB tunnel Client Apps from AWS Cloud Payment App Tokenizer
  • 17. Staggered Migration • Migration by country • Sole requirement: All processors for the country have to be cloud-ready
  • 18. Risks • Troubleshooting • Depth of existing business logic – by country, – by processors, – by use cases • Cloud compatibility of processors (src: Nintendo)

Editor's Notes

  1. Hi everyone, welcome to Netflix! And welcome to our second Billing & Payments Engineering Meetup. I’m happy to see that so many of you are attending tonight. If you missed the first meetup, it’s available in our tech blog.
  2. There will be 5 presentations this evening, given by different teams within Netflix. We have a demo booth setup for you. There are also some food & drinks in the back of the theater. Feel free to go there and grab something. The only thing I’ll ask from you is to be respectful of the presentations and not making too much noise. There will be time for networking when the presentations are over.
  3. Alright, let’s start. Hi everyone, my name is Mat, I run the Payments Engineering team, here at Netflix. Tonight, I’ll be talking about how we re-engineered our payment system to run in the cloud
  4. First of all, a few numbers. Netflix has more than 57M subscribers worldwide, across around 50 countries. In terms of payments, Netflix supports 12 currencies and 9 different payment types. We integrate with more than 15 payment processors and verification services. On average, if we do the math, we process around 2 million transactions per day And we’re counting! As Netflix continues to expand internationally, we will support more processors, more payments types, and so on
  5. The very first responsibility of the payments application is to store securely, in an encrypted way, your method of payment. We call it your MOP. It is also responsible of connecting to all the processors and payment verification services. Also, we have a lot of batch processing running in the background And finally, and this is really important for us, it has the responsibility of offering to our internal clients inside Netflix an agnostic interface. This way it abstracts to them all the complexities of various payment types and payment flows.
  6. Our historical payments application has been running in our data center. Integrating new payment types, and mostly new payment flows, turned out to be painful in some cases, especially if it was deviating too much from the original design. Finally, developers come and go, and they all brought their own contribution to the project. So over the years, the code was more looking like sedimentary layers of legacy code. It was becoming harder and harder to maintain.
  7. From a high level architecture perspective, our payments app runs in the datacenter, it connects to an Oracle database for storing the MOP and the transactions. It also connects to our 3rd party processors. We also have other batch applications that are doing a similar job. We still have some client applications running in the DC that are in the process of moving to the cloud, just like us. Our payments app offers an API for them to talk to. For all the applications that are running in the cloud, we expose a cloud proxy, connected to the DC through a tunnel. This proxy exposes the same API to our clients running in the cloud.
  8. If you follow what Netflix does, you probably know that Netflix loves the cloud. It hasn’t always been like this. When Netflix was funded, back in 1997, the scale was completely different. By the way, I let you appreciate our original logo, that I dug up for you. It a good example of old fashioned web 1.0 artwork! Over the years, we moved from a DC monolithic aplication to a micro-service architecture running in AWS. In 2013, now that the cloud matured, and that Netflix expertise in the cloud matured as well, we decided that it was time to move critical applications, like the payments application, into the cloud. In 2007, we started offering streaming. At the time, our application was monolithic. Over the next few years, we decided that in order to scale, and to offer the best quality of service for our growing number of subscribers, we had to rethink our architecture. This is when we started moving to a micro services architecture, and when we chose AWS as an infrastructure platform
  9. Before writing our new application, we had to do our due diligence. First of all in terms of compliance. We couldn’t possibly move to the cloud if it wasn’t PCI compliant. We also wanted to rethink our division of labor. A token service was created, while the only responsibility of storing the MOP securely and returning a token associated with it. We’re also using cloudHSM as a secure storage solution for our encryption keys. And finally, we also had to go through a lot of technical evaluation, especially in terms of database. We wanted to evaluate if we kept a relational database in the cloud, or if we chose a NoSQL solution.
  10. So we decided to go with Cassandra, and to benefit from the expertise that Netflix acquired using it over the years. Cassandra offers tunable consistency, meaning that you can adjust your desired level of consistency according to your needs. Another great advantage of Cassandra is that it offers multi-regional support. It’s a great win when you want to keep your data synchronized. Are you familiar with the CAP theorem? Please raise your hand if you know what this is? Ok, so the CAP theorem states that it’s impossible for a distributed system to provide simultaneously all of the 3 guarantees: Consistency, Availability, Partition tolerance With Cassandra, we decided to privilege consistency. After all, we’re a payments application, it’s more important to know that our data are consistent, even if we have to pay a cost in terms of latency. We also had to work on our data model. We had to rethink and denormalize our model to make it fit with Cassandra.
  11. In terms of technologies, when we re-engineered our payments application, we took a step back. And we thought of what could be the proper foundation stones, for a strong, extensible, and sustainable system. When we looked at our application, we realized it’s a workflow that fits perfectly with enterprise integration patterns. We evaluated several integration frameworks and Apache Camel got our preference. We decided to keep Spring Batch for our batch applications. For the actual task of uplifting our data into the cloud, we chose Apache Storm. Also, in the cloud, we’re now able to take full advantage of Netflix open source framework as well as some other AWS services.
  12. So the new architecture design looks like that. The cloud payments apps runs natively in the cloud. It exposes an API to other client applications, running in the cloud too. The app talks to the tokenizer to manage MOPs securely. And send transactions to the processor. The transaction info are now stored in Cassandra. And no more DC, everything is running in the cloud!
  13. As I said earlier, availability is really important to us. The way AWS is structured is that it offers several availability zone, within a given AWS region. At Netflix, all of our microservices are deployed in every availability zone. Our Cassandra ring is also deployed across all these zones, so we can maintain resiliency and keep our data synchronized. We even pushed it further and have replicated the same configuration in several AWS regions. The data remains synchronized with a Cassandra replication mechanism. Now, we can safely deploy our payments application in all the availability zones and be fully resilient.
  14. In order to reach that final goal, we had to go through transition stages. We had to decouple our new implementation from the operational flow. We also wanted to keep a safety net in the DC. Everything that is written in the cloud is also written in the DC. So in case anything goes south, we’re always able to rollback. Finally, we had to decide what would be our migration strategy. We decided to go country by country, this way we maintained a certain level of partitioning that helped moving to the cloud chunk by chunk.
  15. For the decoupling. On the left, this is our historical architecture. On the right, the new one. The only thing that we asked our clients to implements, was to add a country code to every request they were sending to us. On our side, we developed a routing logic, that was able to route the traffic to the new architecture, based on the country we received Let’s take an example. Let’s say US transactions are processed from the DC. If a US transaction is coming to us from the cloud, it will be sent to the DC for processing and be stored in our Oracle database. If the same transaction is received from the DC, then no problem either. Now, let’s say that French transactions are processed from the cloud. If we receive a French transaction from the cloud, it would still be received by the same endpoint, then routed to the new architecture. If the same transaction is received from the DC, then it will be the DC app that will route it to the new cloud architecture.
  16. The way we implemented shadow write, was to introduce an SQS queue. Everything that we write in Cassandra is also sent to the queue. Then it’s pulled from the queue and sent back to the DC. If we take the previous example of the French transaction, it will be sent to both Cassandra and SQS. Then pulled from the queue and stored in the Oracle database. This way, we always have up-to-date data in the DC.
  17. For the migration strategy, we decided to do it country by country. The only requirement is that all payment processors had to be implemented in the cloud before we could start the migration. It looks a bit like this. This is a very simplistic matrix but it should give you an idea of the reasoning behind it. We started implementing Worldpay. When it was ready, we identified a candidate country, Paraguay, that we configured to run with Worldpay only. Because the country was small enough, a few hundreds of transactions per day, it was the perfect way to start. Then we worked on BNP and PayPal. When it was done, then we were able to migrate France to the cloud. The only remaining processor of the list is Paymentech. And as soon as it was completed, then we could start migrating the US (+ US CID based routing)
  18. During this effort, there were a few things we had to pay attention to. First of all, we don’t troubleshoot the same way in the cloud. It’s not as easy to logging into a relational database and running complex queries. In the cloud, we had to learn how to troubleshoot differently and how to use the right tools for that. Also, there was a lot of custom business logic in the historical application. We had to make sure we captured properly all that business logic and re-implemented it in the cloud. Finally, we partnered with our processor to ensure their platform would be able to process our requests coming from the cloud.
  19. So how far are we now? We’re basically almost done. We just need to completed some migrations, especially some countries with local processors and some batch applications. It’s been a long and enriching process. We learnt a lot from it. If you want to know more, the team and me will be happy to talk further with you about it afterwards.