2. 2
IOOF in brief
IOOF Holdings Limited is an Australian financial services company
which offers a range of products and services including financial
advice, superannuation, investment management and trustee
services. It was founded in 1846 as the Victorian branch of an
international friendly society, and has its origins in the provision of
sickness and funeral benefits prior to the widespread availability of
government-funded welfare services.
4. 4
Information Technology (size / scale)
• 235 FTE across the group
• 154 FTE working on ‘Platform Systems’
• 7 FTE working on ‘Infrastructure Service’
5. 5
Types of Systems
• Corporate Systems
• email
• office
• browsers
• file system
• AD
• etc
• Platform Systems (multiple)
• vendor
• intern developed
• retail v employer
• Business Systems
• vendor supplied - generally
• CRM
• financial planning tools
• CMS
• stock broking
• etc
6. 6
State of the world (2009)
• multiple admin platforms
• $$$
• slow features releases
• single vendor lock in’s
• M&A
• scalability issues + hard limits
• monolithic
7. 7
Changed the way we work
• started ‘Agile’ in 2009
• continues delivery
• 50 – 100 release a month
• highly flexible environment
• cross functional teams (2013)
• 13 delivery teams
13. 13
Document Storage
• relational v document
• simple domain representation
• forces ‘correct patterns’ for development teams of micro services
• storage / state for micro services
• data warehouse
14. 14
Why MongoDB?
• evaluated (CouchDB, Cassandra DB, Neo4j, MySQL & MongoDB)
• MongoDB
• ‘most enterprise’
• didn’t need a graph DB
• fast
• low cost of adoption
• learnings
• 30 databases / size
• ops manager
• schema maintenance (3.2 mongoTrek)
• wired tiger
• provisioning
16. 16
Account
Retrieval
Service
MySQL
Data Warehouse
(MongoDB)
CDC Event
(Kafka)
Account State
(Kafka)
ForkLift
Service
Elastic
Search
(API’s)
Transaction State
(Kafka)
Transaction
Retrieval
Service
Portfolio
Transaction
Service
Replication Log Maxwell
Portfolio Job
Manager
Portfolio State
(Kafka)
Portfolio Bulk
Loader
Portfolio
Balance
WorkerResults
(RabbitMQ)
Tasks
(RabbitMQ)
BDN Retrieval
Service
Insurance
Retrieval
Service
(API’s)
MongoDB for Data Warehouse
17. 17
API’s
• open API’s
• multiple validations (consumer responsibility v user feedback)
• business logic
• business 2 business integration
• documentation – human readable
• security (OAuth2 like)
• fault tolerant – contain technical domain complexity
• separation of concerns / boundaries
• scale
• SOAP v (Rest + JSON RPC)
20. 20
Application Infrastructure
• Machine provisioning
• Application deployment
• Supporting
• development / sandbox x 12
• production x 1
• staging x 1
• DR x 1 (cold, 1 hour to build)
• 220 ‘ish micro services in each + queues + databases
• 239 production machines
• 830 development machines
• 54,000 machines provisioned since February 2014