SlideShare a Scribd company logo
1 of 22
How SOA Makes Moving to the Cloud Easier Paul Robbins Sr. Product Manager, NYTimes.com @robbinspaul
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Metrics   ,[object Object],[object Object],[object Object]
Beginnings of NYTimes.com on the Cloud ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
How We Started with SOA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Power of SOA ,[object Object],[object Object],[object Object],[object Object]
SOA Key Concepts ,[object Object],[object Object],[object Object],[object Object],[object Object]
RSS ≠ SOA But it's a good start
Complications of SOA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Complications of the Cloud ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
Example Applications
Skimmer and Chrome App ,[object Object],[object Object],[object Object],[object Object],[object Object]
 
Best Sellers ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
Restaurants Search ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
Demos!
What's Next ,[object Object],[object Object],[object Object],[object Object]
Items We've Open Sourced ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Questions?? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

ECS19 - Gokan Ozcifci - PowerApps and SharePoint: Better together.
ECS19 - Gokan Ozcifci - PowerApps and SharePoint: Better together.ECS19 - Gokan Ozcifci - PowerApps and SharePoint: Better together.
ECS19 - Gokan Ozcifci - PowerApps and SharePoint: Better together.European Collaboration Summit
 
Journey and future of OpenStack eBay and PayPal
Journey and future of OpenStack eBay and PayPalJourney and future of OpenStack eBay and PayPal
Journey and future of OpenStack eBay and PayPalSubbu Allamaraju
 
Microsoft Azure Traffic Manager
Microsoft Azure Traffic ManagerMicrosoft Azure Traffic Manager
Microsoft Azure Traffic ManagerIdo Katz
 
SharePoint Framework SPFx
SharePoint Framework SPFxSharePoint Framework SPFx
SharePoint Framework SPFxVladimir Medina
 

What's hot (8)

ECS19 - Gokan Ozcifci - PowerApps and SharePoint: Better together.
ECS19 - Gokan Ozcifci - PowerApps and SharePoint: Better together.ECS19 - Gokan Ozcifci - PowerApps and SharePoint: Better together.
ECS19 - Gokan Ozcifci - PowerApps and SharePoint: Better together.
 
Mule anypoint studio
Mule anypoint studioMule anypoint studio
Mule anypoint studio
 
Cloud performance tools
Cloud performance toolsCloud performance tools
Cloud performance tools
 
Journey and future of OpenStack eBay and PayPal
Journey and future of OpenStack eBay and PayPalJourney and future of OpenStack eBay and PayPal
Journey and future of OpenStack eBay and PayPal
 
Microsoft Azure Traffic Manager
Microsoft Azure Traffic ManagerMicrosoft Azure Traffic Manager
Microsoft Azure Traffic Manager
 
FINALLY
FINALLYFINALLY
FINALLY
 
SharePoint Framework SPFx
SharePoint Framework SPFxSharePoint Framework SPFx
SharePoint Framework SPFx
 
Web Service
Web ServiceWeb Service
Web Service
 

Similar to How soa makes_moving_to_the_cloud_easier

Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2Brandon Watson
 
Technology Overview
Technology OverviewTechnology Overview
Technology OverviewLiran Zelkha
 
AWS DevOps: Introduction to DevOps on AWS
  AWS DevOps: Introduction to DevOps on AWS  AWS DevOps: Introduction to DevOps on AWS
AWS DevOps: Introduction to DevOps on AWSDatacademy.ai
 
Real time service oriented cloud computing
Real time service oriented cloud computingReal time service oriented cloud computing
Real time service oriented cloud computingwww.pixelsolutionbd.com
 
IT Modernization For Process Modernization
IT Modernization For Process ModernizationIT Modernization For Process Modernization
IT Modernization For Process ModernizationDheeraj Remella
 
Datavail Accelerates AWS Adoption for Sony DADC New Media Solutions PPT
 Datavail Accelerates AWS Adoption for Sony DADC New Media Solutions PPT Datavail Accelerates AWS Adoption for Sony DADC New Media Solutions PPT
Datavail Accelerates AWS Adoption for Sony DADC New Media Solutions PPTAmazon Web Services
 
OpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud services
OpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud servicesOpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud services
OpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud servicesAlkacon Software GmbH & Co. KG
 
AWS Customer Presentation - Conde Nast
AWS Customer Presentation - Conde NastAWS Customer Presentation - Conde Nast
AWS Customer Presentation - Conde NastAmazon Web Services
 
Public Sector Cloud
Public Sector CloudPublic Sector Cloud
Public Sector CloudSimon Greig
 
Microsoft SQL Server - SQL Server Migrations Presentation
Microsoft SQL Server - SQL Server Migrations PresentationMicrosoft SQL Server - SQL Server Migrations Presentation
Microsoft SQL Server - SQL Server Migrations PresentationMicrosoft Private Cloud
 
WIN401_Migrating Microsoft Applications to AWS
WIN401_Migrating Microsoft Applications to AWSWIN401_Migrating Microsoft Applications to AWS
WIN401_Migrating Microsoft Applications to AWSAmazon Web Services
 
(ISM319) What Drives the Need for Application-Defined Management
(ISM319) What Drives the Need for Application-Defined Management(ISM319) What Drives the Need for Application-Defined Management
(ISM319) What Drives the Need for Application-Defined ManagementAmazon Web Services
 
Cloud Native Apps
Cloud Native AppsCloud Native Apps
Cloud Native AppsDavid Chou
 
ClearScale: Continuous Automation with Docker on AWS
ClearScale: Continuous Automation with Docker on AWSClearScale: Continuous Automation with Docker on AWS
ClearScale: Continuous Automation with Docker on AWSAmazon Web Services
 
Global Logic sMash Overview And Experiences
Global Logic   sMash  Overview And  ExperiencesGlobal Logic   sMash  Overview And  Experiences
Global Logic sMash Overview And ExperiencesProject Zero
 

Similar to How soa makes_moving_to_the_cloud_easier (20)

Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2
 
Soap Vs Rest
Soap Vs RestSoap Vs Rest
Soap Vs Rest
 
Technology Overview
Technology OverviewTechnology Overview
Technology Overview
 
AWS DevOps: Introduction to DevOps on AWS
  AWS DevOps: Introduction to DevOps on AWS  AWS DevOps: Introduction to DevOps on AWS
AWS DevOps: Introduction to DevOps on AWS
 
Real time service oriented cloud computing
Real time service oriented cloud computingReal time service oriented cloud computing
Real time service oriented cloud computing
 
New cms final
New cms finalNew cms final
New cms final
 
Auckland Summit Keynote
Auckland Summit KeynoteAuckland Summit Keynote
Auckland Summit Keynote
 
IT Modernization For Process Modernization
IT Modernization For Process ModernizationIT Modernization For Process Modernization
IT Modernization For Process Modernization
 
Datavail Accelerates AWS Adoption for Sony DADC New Media Solutions PPT
 Datavail Accelerates AWS Adoption for Sony DADC New Media Solutions PPT Datavail Accelerates AWS Adoption for Sony DADC New Media Solutions PPT
Datavail Accelerates AWS Adoption for Sony DADC New Media Solutions PPT
 
OpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud services
OpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud servicesOpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud services
OpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud services
 
AWS Customer Presentation - Conde Nast
AWS Customer Presentation - Conde NastAWS Customer Presentation - Conde Nast
AWS Customer Presentation - Conde Nast
 
Public Sector Cloud
Public Sector CloudPublic Sector Cloud
Public Sector Cloud
 
Microsoft SQL Server - SQL Server Migrations Presentation
Microsoft SQL Server - SQL Server Migrations PresentationMicrosoft SQL Server - SQL Server Migrations Presentation
Microsoft SQL Server - SQL Server Migrations Presentation
 
WIN401_Migrating Microsoft Applications to AWS
WIN401_Migrating Microsoft Applications to AWSWIN401_Migrating Microsoft Applications to AWS
WIN401_Migrating Microsoft Applications to AWS
 
(ISM319) What Drives the Need for Application-Defined Management
(ISM319) What Drives the Need for Application-Defined Management(ISM319) What Drives the Need for Application-Defined Management
(ISM319) What Drives the Need for Application-Defined Management
 
Cloud Native Apps
Cloud Native AppsCloud Native Apps
Cloud Native Apps
 
Journey to the cloud.
Journey to the cloud.Journey to the cloud.
Journey to the cloud.
 
SaaS for Understanding
SaaS for UnderstandingSaaS for Understanding
SaaS for Understanding
 
ClearScale: Continuous Automation with Docker on AWS
ClearScale: Continuous Automation with Docker on AWSClearScale: Continuous Automation with Docker on AWS
ClearScale: Continuous Automation with Docker on AWS
 
Global Logic sMash Overview And Experiences
Global Logic   sMash  Overview And  ExperiencesGlobal Logic   sMash  Overview And  Experiences
Global Logic sMash Overview And Experiences
 

Recently uploaded

SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Recently uploaded (20)

SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

How soa makes_moving_to_the_cloud_easier

Editor's Notes

  1. A real world case study reather than academic 2-3 minute background about myself
  2. History will be a few slides of overview about why, when, and how we started to move into the cloud Power of SOA discusses the flexibility and freedom of moving away from single point of data access Complications range from data ownership to data freshness to scalability Example application will cover our Skimmer and Best Sellers applications and their move
  3. We first started working with services by exposing our structured data to external developers for our TimesOpen event in 2009.  Very little of that was being used internally. When the community platform moved to the cloud, some services were created so internal pages could talk to the cloud servers We had some very structured venue data for our travel section. In the previous version, if an editor updated a venue, it took up to an hour to make it to the SQLite DB and onto the page.  A change was published to XML. XML was picked up by the loader once an hour and update the SQLite.  We created services that allowed the front-end to call them in real time and then allow the editor to update the MySQL DB in real time via the same services.
  4. Definition not as important as culture. It's the concept that data is flexible and self contained. Doesn't rely on specific servers, environments, or configurations  A lot of our applications were being built around how we access the data we use and what was available on what system. Instead, we should be thinking about what do we want the application to actually do and have the data component be an accent to that, not a hinderence SOA and cloud are related, but not mutual required Ability to output results in multiple data formats.  In our case, offering skimmer feeds in json greatly sped up the app because no need to parse RSS or XML
  5. SOA means that you can get the data sliced up many different ways. It is not rigid, but allows much flexibility. Because of this, it allows the same services to be used by many different applications One of the items that gets lost a lot when people talk about SOA is that it has to be a two way street. There can be restrictions, but the ability to update the data via the same services is key to keeping these services truly reusable
  6. As you can see from the previous slide, using RSS feeds to build applications isn't SOA. But if it starts to allow the applications to not think about where they get their data from, then it's a great start RSS is very rigid, doesn't offer the ability to sort or filter and doesn't allow two way data transfer On our first front-end application, TimesSkimmer, we used RSS to allow a mainly javascript application to free itself from a shared mount point for data. But the new incarnation of Skimmer shows the power of having services versus just RSS.
  7. One of the biggest hurdles we ran into was determining data ownership. The core data lived in a database, but was presented and updated via services. So was the group in charge of the interface in charge of cleansing input or the service owner?  If there were new fields added to the data set, how could we decide if it would break the applications currently using it. Versioning allowed us to solve some of this, but then left older applications orphaned. Say application1 is using version2 and new application2 wants 3 new fields. We would create version3 of the services. But then if application1 wants a new field, what version would get it? By asking utilizing applications to be tolerant to new functions and fields, as long as the ones they need stay consistent, then updating a current version won't break other application. When new formatting is truly required, then change version and ask utilizing applications to upgrade. Similar issue to OS updates. By adding keys for each application using the services is useful, it isn't pure security
  8. After we got past the core data side of things, we realized that there were other complications that came up. Other related, but not data items existed on the file system.  Some shared navigation modules were reading directly off the shared file system.  Pulling information for related content that existed on the file system like inlines One of the key ones was that the way we dealt with ad calls were purely local. So we had to create a service layer to abstract this. But had to be as responsive as local call
  9. Service had existed for a long time, so much of the heavy lifted was done Addition of E-Books meant there needed to be the ability to add new lists to the data set Static articles meant that users couldn't easily navigate between weeks
  10. Right now, the applications poll the services for every request, or on some interval, even if there haven't been any changes. Should change it to where there services push out changes when they happen The services are fairly flexible, but still require a good deal of maintenance when new data is needed. Trying to abstract that out to be more tolerant
  11. We've opened sourced many of the frameworks that allowed us to make this transition