Migrating To Rails 3, An In-house Developers Perspective

1,720 views

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,720
On SlideShare
0
From Embeds
0
Number of Embeds
64
Actions
Shares
0
Downloads
49
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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

×