A Ct Os Story

12
a CTO’s Story why and how Ruby was introduced and what it meant for IndependentIP Robert Bor – IndependentIP http://www.independentip.com

description

Robert Bor's slide's of his presentation at the RubyenRails 2007 conf in Amsterdam

Transcript of A Ct Os Story

Page 1: A Ct Os Story

a CTO’s Story

why and how Ruby was introduced and

what it meant for IndependentIP

Robert Bor – IndependentIPhttp://www.independentip.com

Page 2: A Ct Os Story

“It’s going to change the music business

as we know it.”Morten Lund, LundKenner

About us – IndependentIP

Page 3: A Ct Os Story

Fuga architecture

Webclient

Core Vault

DeliveryReporting Content Ingestion

Channels Labels

Page 4: A Ct Os Story

Why did it disintegrate?• Ajax enabled website with Java technology – not tested

anywhere!• Build by just one man – did not scale for team development• Started as short-lived mock and lived up to its promise of short-

lived ness

The Problem...

Webclient

... disintegration of webclient!

young as it was – implementing new functionality was a fraught process

Page 5: A Ct Os Story

• Why Ruby?– Ruby potential in-house– testability of the source code– efficiency of the language– power of Rails– promise of productivity

Enter Ruby

Page 6: A Ct Os Story

How Ruby was introduced

Webclient

Webclient Ruby

Java

Java

Java Webclient

Webclient

Ruby

Ruby

gradually...

February 2007 -

March 2007 -

April 2007 -

May 2007 -

Page 7: A Ct Os Story

Would I do a gradual introduction again?

No.

Reasons• we had problems with keeping two sessions in sync• resources were lost on building struts to support two simultaneous

apps• introduction takes longer than it otherwise would have

Advantage• you can introduce new functionality while migrating

Advice• reserve a time window and migrate within that window. Freeze

introduction of functionality.

Introduction of Ruby

Page 8: A Ct Os Story

Another problem...

Delivery Content Ingestion

... import and export in many different formats

Many custom processes had to be built with a focus on data manipulation

Why Ruby here?• If there is one thing Ruby is good at, it is data manipulation• Extremely cheap to build custom tooling to do the job

There was immediate payoff for using Ruby here.

Page 9: A Ct Os Story

How about...

the Database?• runs now on trusted and well-tested Spring-Hibernate stack• there is no intention to migrate to Ruby here• however, ActiveRecord and Migrations made the Ruby

proposition very tempting

the Vault?• the specialization in storing and fetching binary files stresses the

need for performance – this effectively eliminates Ruby as a choice

Page 10: A Ct Os Story

Fuga architecture – Ruby impact

Webclient

Core Vault

DeliveryReporting Content Ingestion

Channels Labels

Ruby

Ruby Ruby

Page 11: A Ct Os Story

Did Ruby live up to the promise?• Productivity is indeed significantly higher• Quality of website has much improved• New functionality can be introduced with less risks

Unforeseen benefits• developers truly enjoy working with Ruby• there are many excellent Ruby developers looking for a job – you

can cherry pick the best

But not all is roses...• Performance of the application has fallen after the migration• Ruby is a dangerously powerful language – total power corrupts

totally!

Evaluating the choice

Page 12: A Ct Os Story

Questions