Migrating To Rails 3                An In-house Developers                      Perspective                          Cheta...
Who Are We?                                        • Us                                          • Development Team       ...
Challenges        ApproachesWednesday, May 18, 2011
Legacy           Environment                          Not OO                          Not MVC                          No ...
Adoption                        Migration       Challenges                                Integration                     ...
Our Application                            Environment                 Legacy Non-Rails Apps                 Web & Client ...
Wednesday, May 18, 2011
Sales Management                                        Customer Directory                               Accounts         ...
Wednesday, May 18, 2011
Creating new apps     Background jobs     Data Sharing     Authentication     App Configuration                          Ap...
Creating new apps     Background jobs     Data Sharing     Authentication     App Configuration                          Ap...
68 apps in productionWednesday, May 18, 2011
Templates         • create only what we need         • update specific parts of the appWednesday, May 18, 2011
TemplatesWednesday, May 18, 2011
TemplatesWednesday, May 18, 2011
TemplatesWednesday, May 18, 2011
TemplatesWednesday, May 18, 2011
TemplatesWednesday, May 18, 2011
TemplatesWednesday, May 18, 2011
TemplatesWednesday, May 18, 2011
TemplatesWednesday, May 18, 2011
TemplatesWednesday, May 18, 2011
TemplatesWednesday, May 18, 2011
TemplatesWednesday, May 18, 2011
TemplatesWednesday, May 18, 2011
TemplatesWednesday, May 18, 2011
Creating new apps     Background jobs     Data Sharing     Authentication     App Configuration                          Ap...
Background Jobs                           daemons                           flexible schedule                           not...
Background jobsWednesday, May 18, 2011
Background jobsWednesday, May 18, 2011
Background jobsWednesday, May 18, 2011
Background jobsWednesday, May 18, 2011
Background jobsWednesday, May 18, 2011
Background jobsWednesday, May 18, 2011
Creating new apps     Background jobs     Data Sharing     Authentication     App Configuration                          Ap...
Data Synchronization  Reading and Writing between apps                          Data SharingWednesday, May 18, 2011
Data Synchronization  Reading and Writing between apps                          Data SharingWednesday, May 18, 2011
Core Data Synchronization                          4DWednesday, May 18, 2011
Core Data Synchronization                                  4D                          RailsWednesday, May 18, 2011
Topic Subscribers                                          Subscribers        Publisher               Topic     Subscriber...
Topic Subscribers        app/models/company.rbWednesday, May 18, 2011
Wednesday, May 18, 2011
Wednesday, May 18, 2011
Wednesday, May 18, 2011
Topic Subscribers     lib/daemons/push_updates_to_sales.rbWednesday, May 18, 2011
Wednesday, May 18, 2011
Wednesday, May 18, 2011
Data Synchronization  Reading and Writing between apps                          Data SharingWednesday, May 18, 2011
Shared DB for Multiple Apps                                        Customer Directory                               Accoun...
Shared DB for Multiple Apps                          leads   opportunities             Leads App                          ...
Shared DB for Multiple Apps                     leads/app/models/opportunity.rb                             leads/app/mode...
Different DBs for Single App                                        Customer Directory                               Accou...
Different DBs for Single App                                     leads   opportunities                          Reporter  ...
Different DBs for Single App        reporter/config/database.yml                                      app/models/opportunit...
Different DBs for Single App                           localhost                     reporter_db                          ...
Different DBs for Single App                                  localhost                     reporter_db                   ...
Creating new apps     Background jobs     Data Sharing     Authentication     App Configuration                          Ap...
AuthenticationWednesday, May 18, 2011
Single Sign-on / Sign-off       • Existing         • Domain Cookie         • Encrypted                   Credentials   • N...
Implemented Oauth2                                Provider and Client                                            Authoriza...
Creating new apps     Background jobs     Data Sharing     Authentication     App Configuration                          Ap...
Wednesday, May 18, 2011
database.yml SetupWednesday, May 18, 2011
database.yml SetupWednesday, May 18, 2011
database.yml SetupWednesday, May 18, 2011
Application Specific                          Configuration Data                          app/models/opportunity_resource.rb...
Application Specific                          Configuration DataWednesday, May 18, 2011
Application Specific                          Configuration DataWednesday, May 18, 2011
Application Specific                          Configuration DataWednesday, May 18, 2011
Application Specific                          Configuration DataWednesday, May 18, 2011
Application Specific                          Configuration DataWednesday, May 18, 2011
Application Specific                          Configuration DataWednesday, May 18, 2011
Application Specific                          Configuration DataWednesday, May 18, 2011
Application Specific                          Configuration DataWednesday, May 18, 2011
E-mail                          Oh, $#*&!                          Did that e-mail from                          developme...
ActionMailer InterceptorWednesday, May 18, 2011
ActionMailer InterceptorWednesday, May 18, 2011
ActionMailer InterceptorWednesday, May 18, 2011
ActionMailer Interceptor                          config/environments/development.rbWednesday, May 18, 2011
ActionMailer InterceptorWednesday, May 18, 2011
Questions               Chetan Krishna                 Mark Johnson            ckrishna@opnet.com            mjohnson@opne...
Upcoming SlideShare
Loading in...5
×

Migrating To Rails 3, An In-house Developers Perspective

1,398

Published on

Presentation from RailsConf 2011

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,398
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
48
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Migrating To Rails 3, An In-house Developers Perspective"

  1. 1. Migrating To Rails 3 An In-house Developers Perspective Chetan Krishna and Mark JohnsonWednesday, May 18, 2011
  2. 2. 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 2006Wednesday, May 18, 2011
  3. 3. Challenges ApproachesWednesday, May 18, 2011
  4. 4. Legacy Environment Not OO Not MVC No TestingWednesday, May 18, 2011
  5. 5. Adoption Migration Challenges Integration Maintenance TechnologyWednesday, May 18, 2011
  6. 6. 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
  7. 7. Wednesday, May 18, 2011
  8. 8. Sales Management Customer Directory Accounts Quotes/Orders Leads Sales Reports Partners PRESE Dashboards Asterisk CalendarWednesday, May 18, 2011
  9. 9. Wednesday, May 18, 2011
  10. 10. Creating new apps Background jobs Data Sharing Authentication App Configuration ApproachesWednesday, May 18, 2011
  11. 11. Creating new apps Background jobs Data Sharing Authentication App Configuration ApproachesWednesday, May 18, 2011
  12. 12. 68 apps in productionWednesday, May 18, 2011
  13. 13. Templates • create only what we need • update specific parts of the appWednesday, May 18, 2011
  14. 14. TemplatesWednesday, May 18, 2011
  15. 15. TemplatesWednesday, May 18, 2011
  16. 16. TemplatesWednesday, May 18, 2011
  17. 17. TemplatesWednesday, May 18, 2011
  18. 18. TemplatesWednesday, May 18, 2011
  19. 19. TemplatesWednesday, May 18, 2011
  20. 20. TemplatesWednesday, May 18, 2011
  21. 21. TemplatesWednesday, May 18, 2011
  22. 22. TemplatesWednesday, May 18, 2011
  23. 23. TemplatesWednesday, May 18, 2011
  24. 24. TemplatesWednesday, May 18, 2011
  25. 25. TemplatesWednesday, May 18, 2011
  26. 26. TemplatesWednesday, May 18, 2011
  27. 27. Creating new apps Background jobs Data Sharing Authentication App Configuration ApproachesWednesday, May 18, 2011
  28. 28. Background Jobs daemons flexible schedule notify on exceptionsWednesday, May 18, 2011
  29. 29. Background jobsWednesday, May 18, 2011
  30. 30. Background jobsWednesday, May 18, 2011
  31. 31. Background jobsWednesday, May 18, 2011
  32. 32. Background jobsWednesday, May 18, 2011
  33. 33. Background jobsWednesday, May 18, 2011
  34. 34. Background jobsWednesday, May 18, 2011
  35. 35. Creating new apps Background jobs Data Sharing Authentication App Configuration ApproachesWednesday, May 18, 2011
  36. 36. Data Synchronization Reading and Writing between apps Data SharingWednesday, May 18, 2011
  37. 37. Data Synchronization Reading and Writing between apps Data SharingWednesday, May 18, 2011
  38. 38. Core Data Synchronization 4DWednesday, May 18, 2011
  39. 39. Core Data Synchronization 4D RailsWednesday, May 18, 2011
  40. 40. Topic Subscribers Subscribers Publisher Topic Subscribers SubscribersWednesday, May 18, 2011
  41. 41. Topic Subscribers app/models/company.rbWednesday, May 18, 2011
  42. 42. Wednesday, May 18, 2011
  43. 43. Wednesday, May 18, 2011
  44. 44. Wednesday, May 18, 2011
  45. 45. Topic Subscribers lib/daemons/push_updates_to_sales.rbWednesday, May 18, 2011
  46. 46. Wednesday, May 18, 2011
  47. 47. Wednesday, May 18, 2011
  48. 48. Data Synchronization Reading and Writing between apps Data SharingWednesday, May 18, 2011
  49. 49. Shared DB for Multiple Apps Customer Directory Accounts Quotes/Orders Leads Sales Reports Partners PRESE Dashboards Asterisk CalendarWednesday, May 18, 2011
  50. 50. Shared DB for Multiple Apps leads opportunities Leads App Sales App sales_dbWednesday, May 18, 2011
  51. 51. Shared DB for Multiple Apps leads/app/models/opportunity.rb leads/app/models/opportunity_resource.rbWednesday, May 18, 2011
  52. 52. Different DBs for Single App Customer Directory Accounts Quotes/Orders Leads Sales Reports Partners PRESE Dashboards Asterisk CalendarWednesday, May 18, 2011
  53. 53. Different DBs for Single App leads opportunities Reporter App sales_db partners_dbWednesday, May 18, 2011
  54. 54. Different DBs for Single App reporter/config/database.yml app/models/opportunity.rb app/models/registration.rbWednesday, May 18, 2011
  55. 55. Different DBs for Single App localhost reporter_db Reporter App sales_dbWednesday, May 18, 2011
  56. 56. Different DBs for Single App localhost reporter_db Reporter App sales_db sales_db (replicated)Wednesday, May 18, 2011
  57. 57. Creating new apps Background jobs Data Sharing Authentication App Configuration ApproachesWednesday, May 18, 2011
  58. 58. AuthenticationWednesday, May 18, 2011
  59. 59. Single Sign-on / Sign-off • Existing • Domain Cookie • Encrypted Credentials • New • Distributed • Rails as Master • Support Legacy Apps • Support 3rd Party AppsWednesday, May 18, 2011
  60. 60. 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.htmlWednesday, May 18, 2011
  61. 61. Creating new apps Background jobs Data Sharing Authentication App Configuration ApproachesWednesday, May 18, 2011
  62. 62. Wednesday, May 18, 2011
  63. 63. database.yml SetupWednesday, May 18, 2011
  64. 64. database.yml SetupWednesday, May 18, 2011
  65. 65. database.yml SetupWednesday, May 18, 2011
  66. 66. Application Specific Configuration Data app/models/opportunity_resource.rbWednesday, May 18, 2011
  67. 67. Application Specific Configuration DataWednesday, May 18, 2011
  68. 68. Application Specific Configuration DataWednesday, May 18, 2011
  69. 69. Application Specific Configuration DataWednesday, May 18, 2011
  70. 70. Application Specific Configuration DataWednesday, May 18, 2011
  71. 71. Application Specific Configuration DataWednesday, May 18, 2011
  72. 72. Application Specific Configuration DataWednesday, May 18, 2011
  73. 73. Application Specific Configuration DataWednesday, May 18, 2011
  74. 74. Application Specific Configuration DataWednesday, May 18, 2011
  75. 75. E-mail Oh, $#*&! Did that e-mail from development just get sent to the client?Wednesday, May 18, 2011
  76. 76. ActionMailer InterceptorWednesday, May 18, 2011
  77. 77. ActionMailer InterceptorWednesday, May 18, 2011
  78. 78. ActionMailer InterceptorWednesday, May 18, 2011
  79. 79. ActionMailer Interceptor config/environments/development.rbWednesday, May 18, 2011
  80. 80. ActionMailer InterceptorWednesday, May 18, 2011
  81. 81. Questions Chetan Krishna Mark Johnson ckrishna@opnet.com mjohnson@opnet.com Rails At Work http://www.railsatwork.com/Wednesday, May 18, 2011
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×