A Ct Os Story
description
Transcript of 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
“It’s going to change the music business
as we know it.”Morten Lund, LundKenner
About us – IndependentIP
Fuga architecture
Webclient
Core Vault
DeliveryReporting Content Ingestion
Channels Labels
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
• Why Ruby?– Ruby potential in-house– testability of the source code– efficiency of the language– power of Rails– promise of productivity
Enter Ruby
How Ruby was introduced
Webclient
Webclient Ruby
Java
Java
Java Webclient
Webclient
Ruby
Ruby
gradually...
February 2007 -
March 2007 -
April 2007 -
May 2007 -
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
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.
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
Fuga architecture – Ruby impact
Webclient
Core Vault
DeliveryReporting Content Ingestion
Channels Labels
Ruby
Ruby Ruby
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
Questions