ALT.NET Paris October 2013
From the trenches ABC Arbitrage
Julien Lavigne Du Cadet @julienlavigne
Romain Verdier @romainverdier
ABC Arbitrage Asset Management www.abc-arbitrage.com
ALT.NET France www.altnetfr.org www.meetup.com/altnetfr
A long time ago in a galaxy far, far away...
… in 2009
THE MAINFRAME
Also known as…
A 3 tiers architecture
1300 stored procedures 300 tables
200 forms and 4 zillions LoC
A 3 tiers architecture
1300 stored procedures 300 tables
UI
Business Logic Data Model Data Access
A 3 tiers architecture
1300 stored procedures 300 tables
UI
Data Access Data Model
Business Logic
Abc Gestion
SQL Server
x50…
A 3 tiers architecture
Abc Gestion
Abc Gestion
“Houston, we've had a problem!”
KEEP CALM
AND
CALL BATMAN
KEEP CALM
AND
CALL BATMAN
October 2009…
… the 1st Service
Task Scheduler
Powered by .Net Remoting & Qpid
Messaging! Without rules or frameworks…
(Without Smarts)
Build your own Service Bus
A distributed applications FRAMEWORK
Query directly SQL Server
Octobre 2010…
7 Services
OutOfMemoryException…
Qpid Broker Crash
Our ex little daemon…
Lilith
February 2011…
15 Services
March 2011… …things are
accelerating a bit
Introducing
Don’t you feel safe now ?
Zorro
IS WATCHING YOU
Monitoring Service
July 2011…
20 Services
Nosql is coming !
Configuration Manager
Can
Lotus
erroneous messages RECEIVE, STORE and RESEND
WITH CONTEXT!
Now, about 90% of NEW code within the NEW architecture
October 2011…
32 Services
More and more
new services…
More and more REAL TIME
new services…
With new constraints
… and to progressively introduce some NEW TOYS
So we had to generalize some PATTERNS over time …
But we didn’t get too crazy…
January 2013…
87 Services
We liked our good old broker, but what if…
… we developped another
SERVICE BUS ?
Today
105 Services
and counting…
What the story REALLY TELLS…
You don’t want your SOA to look like that…
(WTF ?!?)
Service Buses are Cool Especially for their Queing Capability
Build or Buy?
Our answer:
Pragmatic NIH*
* Not Invented Here
Quick bootstrap! Guess what? A broker architecture works very well
You control the architecture and customise it to
YOUR NEEDS
For responsible people only…
are built within the frameworks
CONVENTIONS
Messages Everywhere
Develop facades to communicate
With exterior entities
Tooling is mandatory
All this makes the integration of new recruits easy
This could be YOU?
And better… This architecture creates new opportunities for the business
The beginning of a
VIRTUOUS CIRCLE ?
Service definition
Our not-too-strict
CONVENTIONS, STRUCTURE & BOUNDARIES
Are important…
Can DIFFER
BUT architectures, designs &
implementations
And can differ significantly
Transversal principles?
Still, SERVICE-LEVEL patterns emerge naturally, and we pay
attention to that.
Maybe more “FLEXIBLE GUIDELINES” for grown-up developers
Polyglot persistence
Still some GREY AREAS…
But are we BIG DATA yet?
BUSINESS INTELLIGENCE
Well, not THAT intelligent yet
SQL FOR A DECADE and still not satisfied with our SCHEMA MANAGMENT
But guess what? That still can be a
concern with
NOSQL
AUTOMATE your deployments
Abc.Shared Abc.Shared.Cassandra Abc.Shared.Cassandra.Tests Abc.Shared.Cassandra.TestTools Abc.Shared.Cheetah Abc.Shared.Configuration Abc.Shared.Configuration.Tests Abc.Shared.Elastic Abc.Shared.Etl Abc.Shared.Etl.Tests Abc.Shared.Mail Abc.Shared.Mail.Tests Abc.Shared.Metrics Abc.Shared.Metrics.Tests Abc.Shared.Redis Abc.Shared.Serialization Abc.Shared.SmartClient Abc.Shared.SmartClient.Tests Abc.Shared.SmartClient.TestTools Abc.Shared.Tests Abc.Shared.TestTools Abc.Shared.Zmq Abc.Shared.Zmq.Tests
Each project is an opportunity to build
reusable FRAMEWORKS and TOOLS…
You need time for exploring new TECHNICAL ideas without business pressure
… but it ’s not enough
« HACK TIME »
The mandatory
New hires work on technical projects for their first few months
That’s worth it! needed
The TIP of the ICEBERG
Let ’s visit…
Incremental changes
Very stables principles over time
You don’t need THESE guys
It ’s not that complicated
But it does require to INVEST in the infrastructure