migrating to rails 3, an in-house developers perspective

81
Chetan Krishna and Mark Johnson Migrating To Rails 3 An In-house Developer's Perspective Wednesday, May 18, 2011

Upload: mark-johnson

Post on 12-Jan-2015

1.336 views

Category:

Technology


0 download

DESCRIPTION

Presentation from RailsConf 2011

TRANSCRIPT

Page 1: Migrating To Rails 3, An In-house Developers Perspective

Chetan Krishna and Mark Johnson

Migrating To Rails 3 An In-house Developer's

Perspective

Wednesday, May 18, 2011

Page 2: Migrating To Rails 3, An In-house Developers Perspective

Who Are We?

• Our Company

• Publicly Traded

• > 150 M/year Rev

• > 600 Employees

• Offices World Wide

• Us

• Development Team

• CIO Rails Advocate

• Develop & Maintain

• 24x7 Support

• Web Apps > 12yrs

• Rails since 2006

Wednesday, May 18, 2011

Page 3: Migrating To Rails 3, An In-house Developers Perspective

Challenges

Approaches

Wednesday, May 18, 2011

Page 4: Migrating To Rails 3, An In-house Developers Perspective

Legacy Environment

Not OONot MVCNo Testing

Wednesday, May 18, 2011

Page 5: Migrating To Rails 3, An In-house Developers Perspective

Adoption Challenges

Maintenance

Integration

Technology

Migration

Wednesday, May 18, 2011

Page 6: Migrating To Rails 3, An In-house Developers Perspective

Our Application Environment

Legacy Non-Rails AppsWeb & Client Server11 Apps

Commercial AppsFinancials and HR& Sabrix (sales tax)

Rails 1 - 7 AppsRails 2 - 56 AppsRails 3 - 5 Apps

Wednesday, May 18, 2011

Page 7: Migrating To Rails 3, An In-house Developers Perspective

Wednesday, May 18, 2011

Page 8: Migrating To Rails 3, An In-house Developers Perspective

Sales Management

Quotes/Orders

Leads Sales

PRESE

Reports

Dashboards

Accounts

Partners

Customer Directory

CalendarAsterisk

Wednesday, May 18, 2011

Page 9: Migrating To Rails 3, An In-house Developers Perspective

Wednesday, May 18, 2011

Page 10: Migrating To Rails 3, An In-house Developers Perspective

Approaches

Creating new apps

Background jobs

Data Sharing

App Configuration

Authentication

Wednesday, May 18, 2011

Page 11: Migrating To Rails 3, An In-house Developers Perspective

Approaches

Creating new apps

Background jobs

Data Sharing

App Configuration

Authentication

Wednesday, May 18, 2011

Page 12: Migrating To Rails 3, An In-house Developers Perspective

68 apps in production

Wednesday, May 18, 2011

Page 13: Migrating To Rails 3, An In-house Developers Perspective

Templates

• create only what we need

• update specific parts of the app

Wednesday, May 18, 2011

Page 14: Migrating To Rails 3, An In-house Developers Perspective

Templates

Wednesday, May 18, 2011

Page 15: Migrating To Rails 3, An In-house Developers Perspective

Templates

Wednesday, May 18, 2011

Page 16: Migrating To Rails 3, An In-house Developers Perspective

Templates

Wednesday, May 18, 2011

Page 17: Migrating To Rails 3, An In-house Developers Perspective

Templates

Wednesday, May 18, 2011

Page 18: Migrating To Rails 3, An In-house Developers Perspective

Templates

Wednesday, May 18, 2011

Page 19: Migrating To Rails 3, An In-house Developers Perspective

Templates

Wednesday, May 18, 2011

Page 20: Migrating To Rails 3, An In-house Developers Perspective

Templates

Wednesday, May 18, 2011

Page 21: Migrating To Rails 3, An In-house Developers Perspective

Templates

Wednesday, May 18, 2011

Page 22: Migrating To Rails 3, An In-house Developers Perspective

Templates

Wednesday, May 18, 2011

Page 23: Migrating To Rails 3, An In-house Developers Perspective

Templates

Wednesday, May 18, 2011

Page 24: Migrating To Rails 3, An In-house Developers Perspective

Templates

Wednesday, May 18, 2011

Page 25: Migrating To Rails 3, An In-house Developers Perspective

Templates

Wednesday, May 18, 2011

Page 26: Migrating To Rails 3, An In-house Developers Perspective

Templates

Wednesday, May 18, 2011

Page 27: Migrating To Rails 3, An In-house Developers Perspective

Approaches

Creating new apps

Background jobs

Data Sharing

App Configuration

Authentication

Wednesday, May 18, 2011

Page 28: Migrating To Rails 3, An In-house Developers Perspective

Background Jobs

flexible schedule

notify on exceptions

daemons

Wednesday, May 18, 2011

Page 29: Migrating To Rails 3, An In-house Developers Perspective

Background jobs

Wednesday, May 18, 2011

Page 30: Migrating To Rails 3, An In-house Developers Perspective

Background jobs

Wednesday, May 18, 2011

Page 31: Migrating To Rails 3, An In-house Developers Perspective

Background jobs

Wednesday, May 18, 2011

Page 32: Migrating To Rails 3, An In-house Developers Perspective

Background jobs

Wednesday, May 18, 2011

Page 33: Migrating To Rails 3, An In-house Developers Perspective

Background jobs

Wednesday, May 18, 2011

Page 34: Migrating To Rails 3, An In-house Developers Perspective

Background jobs

Wednesday, May 18, 2011

Page 35: Migrating To Rails 3, An In-house Developers Perspective

Approaches

Creating new apps

Background jobs

Data Sharing

App Configuration

Authentication

Wednesday, May 18, 2011

Page 36: Migrating To Rails 3, An In-house Developers Perspective

Data Sharing

Data SynchronizationReading and Writing between apps

Wednesday, May 18, 2011

Page 37: Migrating To Rails 3, An In-house Developers Perspective

Data Sharing

Data SynchronizationReading and Writing between apps

Wednesday, May 18, 2011

Page 38: Migrating To Rails 3, An In-house Developers Perspective

4D

Core Data Synchronization

Wednesday, May 18, 2011

Page 39: Migrating To Rails 3, An In-house Developers Perspective

4D

Rails

Core Data Synchronization

Wednesday, May 18, 2011

Page 40: Migrating To Rails 3, An In-house Developers Perspective

Topic Subscribers

Publisher

Subscribers

Subscribers

Subscribers

Topic

Wednesday, May 18, 2011

Page 41: Migrating To Rails 3, An In-house Developers Perspective

Topic Subscribers

app/models/company.rb

Wednesday, May 18, 2011

Page 42: Migrating To Rails 3, An In-house Developers Perspective

Wednesday, May 18, 2011

Page 43: Migrating To Rails 3, An In-house Developers Perspective

Wednesday, May 18, 2011

Page 44: Migrating To Rails 3, An In-house Developers Perspective

Wednesday, May 18, 2011

Page 45: Migrating To Rails 3, An In-house Developers Perspective

Topic Subscriberslib/daemons/push_updates_to_sales.rb

Wednesday, May 18, 2011

Page 46: Migrating To Rails 3, An In-house Developers Perspective

Wednesday, May 18, 2011

Page 47: Migrating To Rails 3, An In-house Developers Perspective

Wednesday, May 18, 2011

Page 48: Migrating To Rails 3, An In-house Developers Perspective

Data Sharing

Data SynchronizationReading and Writing between apps

Wednesday, May 18, 2011

Page 49: Migrating To Rails 3, An In-house Developers Perspective

Quotes/Orders

Leads Sales

PRESE

Reports

Dashboards

Accounts

Partners

Customer Directory

CalendarAsterisk

Shared DB for Multiple Apps

Wednesday, May 18, 2011

Page 50: Migrating To Rails 3, An In-house Developers Perspective

Shared DB for Multiple Apps

Sales AppLeads Appleads opportunities

sales_db

Wednesday, May 18, 2011

Page 51: Migrating To Rails 3, An In-house Developers Perspective

Shared DB for Multiple Appsleads/app/models/opportunity.rb

leads/app/models/opportunity_resource.rb

Wednesday, May 18, 2011

Page 52: Migrating To Rails 3, An In-house Developers Perspective

Different DBs for Single App

Quotes/Orders

Leads Sales

PRESE

Reports

Dashboards

Accounts

Partners

Customer Directory

CalendarAsterisk

Wednesday, May 18, 2011

Page 53: Migrating To Rails 3, An In-house Developers Perspective

Different DBs for Single App

leads opportunities

sales_db

partners_db

Reporter App

Wednesday, May 18, 2011

Page 54: Migrating To Rails 3, An In-house Developers Perspective

Different DBs for Single App

app/models/registration.rb

app/models/opportunity.rb

reporter/config/database.yml

Wednesday, May 18, 2011

Page 55: Migrating To Rails 3, An In-house Developers Perspective

reporter_db

localhost

Different DBs for Single App

Reporter App sales_dbsales_db

Wednesday, May 18, 2011

Page 56: Migrating To Rails 3, An In-house Developers Perspective

reporter_db

localhost

Different DBs for Single App

sales_dbReporter

Appsales_db(replicated)

Wednesday, May 18, 2011

Page 57: Migrating To Rails 3, An In-house Developers Perspective

Approaches

Creating new apps

Background jobs

Data Sharing

App Configuration

Authentication

Wednesday, May 18, 2011

Page 58: Migrating To Rails 3, An In-house Developers Perspective

Authentication

Wednesday, May 18, 2011

Page 59: Migrating To Rails 3, An In-house Developers Perspective

• Existing

• Domain Cookie

• Encrypted Credentials

• Distributed

Single Sign-on / Sign-off

• New

• Rails as Master

• Support Legacy Apps

• Support 3rd Party Apps

Wednesday, May 18, 2011

Page 60: Migrating To Rails 3, An In-house Developers Perspective

Implemented Oauth2 Provider and Client

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

Application AuthenticationProvider

Browser

Access Token

Domain CookieDomain Cookie

Authorization Token

Wednesday, May 18, 2011

Page 61: Migrating To Rails 3, An In-house Developers Perspective

Approaches

Creating new apps

Background jobs

Data Sharing

App Configuration

Authentication

Wednesday, May 18, 2011

Page 62: Migrating To Rails 3, An In-house Developers Perspective

Wednesday, May 18, 2011

Page 63: Migrating To Rails 3, An In-house Developers Perspective

database.yml Setup

Wednesday, May 18, 2011

Page 64: Migrating To Rails 3, An In-house Developers Perspective

database.yml Setup

Wednesday, May 18, 2011

Page 65: Migrating To Rails 3, An In-house Developers Perspective

database.yml Setup

Wednesday, May 18, 2011

Page 66: Migrating To Rails 3, An In-house Developers Perspective

Application Specific Configuration Data

app/models/opportunity_resource.rb

Wednesday, May 18, 2011

Page 67: Migrating To Rails 3, An In-house Developers Perspective

Application Specific Configuration Data

Wednesday, May 18, 2011

Page 68: Migrating To Rails 3, An In-house Developers Perspective

Application Specific Configuration Data

Wednesday, May 18, 2011

Page 69: Migrating To Rails 3, An In-house Developers Perspective

Application Specific Configuration Data

Wednesday, May 18, 2011

Page 70: Migrating To Rails 3, An In-house Developers Perspective

Application Specific Configuration Data

Wednesday, May 18, 2011

Page 71: Migrating To Rails 3, An In-house Developers Perspective

Application Specific Configuration Data

Wednesday, May 18, 2011

Page 72: Migrating To Rails 3, An In-house Developers Perspective

Application Specific Configuration Data

Wednesday, May 18, 2011

Page 73: Migrating To Rails 3, An In-house Developers Perspective

Application Specific Configuration Data

Wednesday, May 18, 2011

Page 74: Migrating To Rails 3, An In-house Developers Perspective

Application Specific Configuration Data

Wednesday, May 18, 2011

Page 75: Migrating To Rails 3, An In-house Developers Perspective

E-mail

Oh, $#*&!

Did that e-mail from development just get sent to the client?

Wednesday, May 18, 2011

Page 76: Migrating To Rails 3, An In-house Developers Perspective

ActionMailer Interceptor

Wednesday, May 18, 2011

Page 77: Migrating To Rails 3, An In-house Developers Perspective

ActionMailer Interceptor

Wednesday, May 18, 2011

Page 78: Migrating To Rails 3, An In-house Developers Perspective

ActionMailer Interceptor

Wednesday, May 18, 2011

Page 79: Migrating To Rails 3, An In-house Developers Perspective

ActionMailer Interceptorconfig/environments/development.rb

Wednesday, May 18, 2011

Page 80: Migrating To Rails 3, An In-house Developers Perspective

ActionMailer Interceptor

Wednesday, May 18, 2011