SlideShare ist ein Scribd-Unternehmen logo
1 von 81
Downloaden Sie, um offline zu lesen
Migrating To Rails 3
                An In-house Developer's
                      Perspective




                          Chetan Krishna and Mark Johnson

Wednesday, May 18, 2011
Who Are We?
                                        • Us
                                          • Development Team
           • Our Company                  • CIO Rails Advocate
                  • Publicly Traded       • Develop & Maintain
                  • > 150 M/year Rev      • 24x7 Support
                  • > 600 Employees       • Web Apps > 12yrs
                  • Offices World Wide     • Rails since 2006
Wednesday, May 18, 2011
Challenges
        Approaches




Wednesday, May 18, 2011
Legacy
           Environment
                          Not OO
                          Not MVC
                          No Testing




Wednesday, May 18, 2011
Adoption                        Migration
       Challenges
                                Integration



                            Maintenance



                          Technology

Wednesday, May 18, 2011
Our Application
                            Environment
                 Legacy Non-Rails Apps
                 Web & Client Server
                 11 Apps
                                                 Rails 1 - 7 Apps
                                                 Rails 2 - 56 Apps
                                                 Rails 3 - 5 Apps

                          Commercial Apps
                          Financials and HR
                          & Sabrix (sales tax)
Wednesday, May 18, 2011
Wednesday, May 18, 2011
Sales Management

                                        Customer Directory

                               Accounts                 Quotes/Orders

                           Leads                Sales              Reports

                          Partners              PRESE          Dashboards

                                     Asterisk           Calendar

Wednesday, May 18, 2011
Wednesday, May 18, 2011
Creating new apps
     Background jobs
     Data Sharing
     Authentication
     App Configuration




                          Approaches
Wednesday, May 18, 2011
Creating new apps
     Background jobs
     Data Sharing
     Authentication
     App Configuration




                          Approaches
Wednesday, May 18, 2011
68 apps in production


Wednesday, May 18, 2011
Templates




         • create only what we need
         • update specific parts of the app
Wednesday, May 18, 2011
Templates




Wednesday, May 18, 2011
Templates




Wednesday, May 18, 2011
Templates




Wednesday, May 18, 2011
Templates




Wednesday, May 18, 2011
Templates




Wednesday, May 18, 2011
Templates




Wednesday, May 18, 2011
Templates




Wednesday, May 18, 2011
Templates




Wednesday, May 18, 2011
Templates




Wednesday, May 18, 2011
Templates




Wednesday, May 18, 2011
Templates




Wednesday, May 18, 2011
Templates




Wednesday, May 18, 2011
Templates




Wednesday, May 18, 2011
Creating new apps
     Background jobs
     Data Sharing
     Authentication
     App Configuration




                          Approaches
Wednesday, May 18, 2011
Background Jobs
                           daemons
                           flexible schedule
                           notify on exceptions




Wednesday, May 18, 2011
Background jobs




Wednesday, May 18, 2011
Background jobs




Wednesday, May 18, 2011
Background jobs




Wednesday, May 18, 2011
Background jobs




Wednesday, May 18, 2011
Background jobs




Wednesday, May 18, 2011
Background jobs




Wednesday, May 18, 2011
Creating new apps
     Background jobs
     Data Sharing
     Authentication
     App Configuration




                          Approaches
Wednesday, May 18, 2011
Data Synchronization
  Reading and Writing between apps




                          Data Sharing
Wednesday, May 18, 2011
Data Synchronization
  Reading and Writing between apps




                          Data Sharing
Wednesday, May 18, 2011
Core Data Synchronization


                          4D




Wednesday, May 18, 2011
Core Data Synchronization
                                  4D


                          Rails




Wednesday, May 18, 2011
Topic Subscribers

                                          Subscribers


        Publisher               Topic     Subscribers


                                          Subscribers



Wednesday, May 18, 2011
Topic Subscribers
        app/models/company.rb




Wednesday, May 18, 2011
Wednesday, May 18, 2011
Wednesday, May 18, 2011
Wednesday, May 18, 2011
Topic Subscribers
     lib/daemons/push_updates_to_sales.rb




Wednesday, May 18, 2011
Wednesday, May 18, 2011
Wednesday, May 18, 2011
Data Synchronization
  Reading and Writing between apps




                          Data Sharing
Wednesday, May 18, 2011
Shared DB for Multiple Apps

                                        Customer Directory

                               Accounts                 Quotes/Orders

                           Leads                Sales              Reports

                          Partners              PRESE          Dashboards

                                     Asterisk           Calendar

Wednesday, May 18, 2011
Shared DB for Multiple Apps


                          leads   opportunities
             Leads App                            Sales App

                            sales_db




Wednesday, May 18, 2011
Shared DB for Multiple Apps
                     leads/app/models/opportunity.rb



                             leads/app/models/opportunity_resource.rb




Wednesday, May 18, 2011
Different DBs for Single App

                                        Customer Directory

                               Accounts                 Quotes/Orders

                           Leads                Sales              Reports

                          Partners              PRESE          Dashboards

                                     Asterisk           Calendar

Wednesday, May 18, 2011
Different DBs for Single App

                                     leads   opportunities


                          Reporter
                            App
                                       sales_db


                                     partners_db


Wednesday, May 18, 2011
Different DBs for Single App
        reporter/config/database.yml



                                      app/models/opportunity.rb



                                       app/models/registration.rb




Wednesday, May 18, 2011
Different DBs for Single App
                           localhost

                     reporter_db
                                   Reporter
                                     App      sales_db




Wednesday, May 18, 2011
Different DBs for Single App
                                  localhost

                     reporter_db
                                         Reporter
                                           App      sales_db
                          sales_db
                          (replicated)




Wednesday, May 18, 2011
Creating new apps
     Background jobs
     Data Sharing
     Authentication
     App Configuration




                          Approaches
Wednesday, May 18, 2011
Authentication




Wednesday, May 18, 2011
Single Sign-on / Sign-off

       • Existing
         • Domain Cookie
         • Encrypted
                   Credentials   • New
              • Distributed        • Rails as Master
                                   • Support Legacy Apps
                                   • Support 3rd Party Apps
Wednesday, May 18, 2011
Implemented Oauth2
                                Provider and Client
                                            Authorization Token

                          Application                               Authentication
                                                Access Token
                                                                      Provider

                      Domain Cookie                                   Domain Cookie


                                               Browser


                   http://www.railsatwork.com/2010/10/implementing-oauth-provider-part-1.html

Wednesday, May 18, 2011
Creating new apps
     Background jobs
     Data Sharing
     Authentication
     App Configuration




                          Approaches
Wednesday, May 18, 2011
Wednesday, May 18, 2011
database.yml Setup




Wednesday, May 18, 2011
database.yml Setup




Wednesday, May 18, 2011
database.yml Setup




Wednesday, May 18, 2011
Application Specific
                          Configuration Data

                          app/models/opportunity_resource.rb




Wednesday, May 18, 2011
Application Specific
                          Configuration Data




Wednesday, May 18, 2011
Application Specific
                          Configuration Data




Wednesday, May 18, 2011
Application Specific
                          Configuration Data




Wednesday, May 18, 2011
Application Specific
                          Configuration Data




Wednesday, May 18, 2011
Application Specific
                          Configuration Data




Wednesday, May 18, 2011
Application Specific
                          Configuration Data




Wednesday, May 18, 2011
Application Specific
                          Configuration Data




Wednesday, May 18, 2011
Application Specific
                          Configuration Data




Wednesday, May 18, 2011
E-mail




                          Oh, $#*&!
                          Did that e-mail from
                          development just get
                          sent to the client?
Wednesday, May 18, 2011
ActionMailer Interceptor




Wednesday, May 18, 2011
ActionMailer Interceptor




Wednesday, May 18, 2011
ActionMailer Interceptor




Wednesday, May 18, 2011
ActionMailer Interceptor
                          config/environments/development.rb




Wednesday, May 18, 2011
ActionMailer Interceptor




Wednesday, May 18, 2011
Questions

               Chetan Krishna                 Mark Johnson
            ckrishna@opnet.com            mjohnson@opnet.com


                                  Rails At Work
                          http://www.railsatwork.com/




Wednesday, May 18, 2011

Weitere ähnliche Inhalte

Ähnlich wie Migrating To Rails 3, An In-house Developers Perspective

Create a Professional Blog with WordPress: Chapter 6 Customizing Your Sites w...
Create a Professional Blog with WordPress: Chapter 6 Customizing Your Sites w...Create a Professional Blog with WordPress: Chapter 6 Customizing Your Sites w...
Create a Professional Blog with WordPress: Chapter 6 Customizing Your Sites w...
Atit Patumvan
 
Finding the right_portal_for_e_government_services
Finding the right_portal_for_e_government_servicesFinding the right_portal_for_e_government_services
Finding the right_portal_for_e_government_services
QuestexConf
 
Magento Imagine eCommerce Conference:5 Way to Supercharge your Magento Enterp...
Magento Imagine eCommerce Conference:5 Way to Supercharge your Magento Enterp...Magento Imagine eCommerce Conference:5 Way to Supercharge your Magento Enterp...
Magento Imagine eCommerce Conference:5 Way to Supercharge your Magento Enterp...
varien
 
5 Ways to Super Charge your Magento Enterprise Site
5 Ways to Super Charge your Magento Enterprise Site5 Ways to Super Charge your Magento Enterprise Site
5 Ways to Super Charge your Magento Enterprise Site
Groove Commerce
 
2011 july-gtug-high-replication-datastore
2011 july-gtug-high-replication-datastore2011 july-gtug-high-replication-datastore
2011 july-gtug-high-replication-datastore
ikailan
 
Gaelyk - Guillaume Laforge - GR8Conf Europe 2011
Gaelyk - Guillaume Laforge - GR8Conf Europe 2011Gaelyk - Guillaume Laforge - GR8Conf Europe 2011
Gaelyk - Guillaume Laforge - GR8Conf Europe 2011
Guillaume Laforge
 
Collaborative Sourcing - Keys to Unlocking Greater Value
Collaborative Sourcing - Keys to Unlocking Greater ValueCollaborative Sourcing - Keys to Unlocking Greater Value
Collaborative Sourcing - Keys to Unlocking Greater Value
SAP Ariba
 
Regional News in Times of iPad, Twitter & Co. (Cassini Convention, Nov. 2010)
Regional News in Times of iPad, Twitter & Co. (Cassini Convention, Nov. 2010)Regional News in Times of iPad, Twitter & Co. (Cassini Convention, Nov. 2010)
Regional News in Times of iPad, Twitter & Co. (Cassini Convention, Nov. 2010)
gkamp
 

Ähnlich wie Migrating To Rails 3, An In-house Developers Perspective (20)

Nuxeo introduction to ecr at the NYC Java meetup, April 2011
Nuxeo introduction to ecr at the NYC Java meetup, April 2011Nuxeo introduction to ecr at the NYC Java meetup, April 2011
Nuxeo introduction to ecr at the NYC Java meetup, April 2011
 
10 Web Development Concepts a Designer Should Know
10 Web Development Concepts a Designer Should Know10 Web Development Concepts a Designer Should Know
10 Web Development Concepts a Designer Should Know
 
Create a Professional Blog with WordPress: Chapter 6 Customizing Your Sites w...
Create a Professional Blog with WordPress: Chapter 6 Customizing Your Sites w...Create a Professional Blog with WordPress: Chapter 6 Customizing Your Sites w...
Create a Professional Blog with WordPress: Chapter 6 Customizing Your Sites w...
 
Intro to the Semantic Web Landscape - 2011
Intro to the Semantic Web Landscape - 2011Intro to the Semantic Web Landscape - 2011
Intro to the Semantic Web Landscape - 2011
 
Innovate 2010-oslc-jazz
Innovate 2010-oslc-jazzInnovate 2010-oslc-jazz
Innovate 2010-oslc-jazz
 
Finding the right_portal_for_e_government_services
Finding the right_portal_for_e_government_servicesFinding the right_portal_for_e_government_services
Finding the right_portal_for_e_government_services
 
Pluggable Django Application Patterns PyCon 2011
Pluggable Django Application Patterns PyCon 2011Pluggable Django Application Patterns PyCon 2011
Pluggable Django Application Patterns PyCon 2011
 
EAN Partner Summit 2011: Hands on Chameleon
EAN Partner Summit 2011: Hands on ChameleonEAN Partner Summit 2011: Hands on Chameleon
EAN Partner Summit 2011: Hands on Chameleon
 
SharePoint for Project Management
SharePoint for Project ManagementSharePoint for Project Management
SharePoint for Project Management
 
Magento Imagine eCommerce Conference:5 Way to Supercharge your Magento Enterp...
Magento Imagine eCommerce Conference:5 Way to Supercharge your Magento Enterp...Magento Imagine eCommerce Conference:5 Way to Supercharge your Magento Enterp...
Magento Imagine eCommerce Conference:5 Way to Supercharge your Magento Enterp...
 
5 Ways to Super Charge your Magento Enterprise Site
5 Ways to Super Charge your Magento Enterprise Site5 Ways to Super Charge your Magento Enterprise Site
5 Ways to Super Charge your Magento Enterprise Site
 
"SocrateOpen after two years" by Remus Cazacu @ eLiberatica 2008
"SocrateOpen after two years" by Remus Cazacu @ eLiberatica 2008"SocrateOpen after two years" by Remus Cazacu @ eLiberatica 2008
"SocrateOpen after two years" by Remus Cazacu @ eLiberatica 2008
 
2011 july-gtug-high-replication-datastore
2011 july-gtug-high-replication-datastore2011 july-gtug-high-replication-datastore
2011 july-gtug-high-replication-datastore
 
Modernize Your EPM Investment for Optimal Performance
Modernize Your EPM Investment for Optimal PerformanceModernize Your EPM Investment for Optimal Performance
Modernize Your EPM Investment for Optimal Performance
 
Javascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJSJavascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJS
 
Mobile apps using drupal as base system SumitK DrupalCon Chicago
Mobile apps using drupal as base system   SumitK DrupalCon ChicagoMobile apps using drupal as base system   SumitK DrupalCon Chicago
Mobile apps using drupal as base system SumitK DrupalCon Chicago
 
Your API is So 2006 - Dreamforce 2011
Your API is So 2006 - Dreamforce 2011Your API is So 2006 - Dreamforce 2011
Your API is So 2006 - Dreamforce 2011
 
Gaelyk - Guillaume Laforge - GR8Conf Europe 2011
Gaelyk - Guillaume Laforge - GR8Conf Europe 2011Gaelyk - Guillaume Laforge - GR8Conf Europe 2011
Gaelyk - Guillaume Laforge - GR8Conf Europe 2011
 
Collaborative Sourcing - Keys to Unlocking Greater Value
Collaborative Sourcing - Keys to Unlocking Greater ValueCollaborative Sourcing - Keys to Unlocking Greater Value
Collaborative Sourcing - Keys to Unlocking Greater Value
 
Regional News in Times of iPad, Twitter & Co. (Cassini Convention, Nov. 2010)
Regional News in Times of iPad, Twitter & Co. (Cassini Convention, Nov. 2010)Regional News in Times of iPad, Twitter & Co. (Cassini Convention, Nov. 2010)
Regional News in Times of iPad, Twitter & Co. (Cassini Convention, Nov. 2010)
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

Migrating To Rails 3, An In-house Developers Perspective