data migration in an agile open source world

28
Data Migration in an Agile Open Source World Craig Smith Suncorp

Upload: craig-smith

Post on 18-Nov-2014

5.426 views

Category:

Technology


1 download

DESCRIPTION

Data Migration In An Agile Open Source World presented by Craig Smith at the Open Source Developers Conference (OSDC) 2009 in Brisbane.

TRANSCRIPT

Page 1: Data Migration In An Agile Open Source World

Data Migrationin an Agile Open Source World

Craig SmithSuncorp

Page 2: Data Migration In An Agile Open Source World

Welcome…

Image http://www.neopoleon.com/blog/images/excel/7.jpg

Page 3: Data Migration In An Agile Open Source World

According to Wikipedia:

Data migration is the process of transferring data between ... computer systems ... is usually performed programmatically to achieve an automated migration ... required when organizations ... change ... or upgrade to new systems, or when systems merge...

Image: http://i.ehow.com/images/GlobalPhoto/Articles/2065416/dictionary_Full.jpg

Page 4: Data Migration In An Agile Open Source World

“In” End Point

Extract

Transform

Load

“Out” End Point

ExtractTransform

Load(ETL)

Pattern

Page 5: Data Migration In An Agile Open Source World

(Enterprise)Application Integration

Patterns

File transfer

Shared database

Remote Procedure Invocation

Messaging

Image http://www.eaipatterns.com/eaipatterns.html

Page 6: Data Migration In An Agile Open Source World

Data Migration

+ Application Integration

=Similar

ApproachImage http://kansolutions.net/yahoo_site_admin/assets/images/integration.302161703_std.jpg

Page 7: Data Migration In An Agile Open Source World

Image http://blog.theworkinggroup.ca/wp-content/uploads/2009/04/agile-manifesto1.gif

Agile Manifesto

Page 8: Data Migration In An Agile Open Source World

Image http://blogs.conchango.com/Admin/ImageGallery/blogs.conchango.com/Colin.Bird/Scrum%20Overview%20Diagram.png

Scrum Practices

Page 9: Data Migration In An Agile Open Source World

Image Beck, Kent – Extreme Programming Explained: Embrace Change

XP Practices

Page 10: Data Migration In An Agile Open Source World

Source http://www.assembla.com/wiki/show/burro/Development_Principles

Development PracticesFixing a

broken build is always the

highest priority

100% Code

Coverage

Commit Often

If In Doubt, Spike It

Out (On A Branch)

All Prod Code

Paired (Or Reviewed)

No Code Ownership

Test Code Is

Prod Code

Fast (<3 mins) Builds

Changing The Following Things

Is A Team Decision...

Code Is A Liability

Molecular Over

Atomic Tests

Use It Or Lose

It

Nulls Are Evil

Statics Are Evil

Use Delegation

Over Inheritance

Create Small

Classes And Methods

Use Outlandish

Class Names

Page 11: Data Migration In An Agile Open Source World

Break It Down... IterativelyImage http://iqizone.com/images/paper%20pile.jpg

Page 12: Data Migration In An Agile Open Source World

Image http://static.soxfirst.com/soxfirst.com/imgname--derivatives_time_bomb_for_big_banks---50226711--bomb.jpg

Agile Builds Confidence

Page 13: Data Migration In An Agile Open Source World

Continuous (Inte)(Mi)gration

Page 14: Data Migration In An Agile Open Source World

Image http://i.ehow.com/images/GlobalPhoto/Articles/2289906/P1120995RPM_Full.jpg

Throttle Data

Page 15: Data Migration In An Agile Open Source World

Prioritisation & CategorisationImage http://www.mikkeman.nl/blog/wp-content/uploads/2009/10/priority-300x137.jpg http://ralphlosey.files.wordpress.com/2009/10/playing-cards.jpg

Page 16: Data Migration In An Agile Open Source World

Image http://silverspaceship.com/static/shot_1.png

Volatility Categorisation

Page 17: Data Migration In An Agile Open Source World

Analysis = BDUF NDUF SDUFImage http://www.domainlanguage.com/_library/images_people_working/designing_at_whiteboard.jpg

Page 18: Data Migration In An Agile Open Source World

Image http://silverspaceship.com/static/shot_1.png

Implement “Big Bang”

Page 19: Data Migration In An Agile Open Source World

Implement “Master + Deltas”Image http://sapplanning.files.wordpress.com/2008/07/integrate-technology.jpg

Page 20: Data Migration In An Agile Open Source World

Image http://www.spycomponents.com/images/xml_at_work.gif

Data in non-binary format > diff

Page 21: Data Migration In An Agile Open Source World

Master Database DumpsImage http://images.yogee.com.au/cat-dump-truck-609-2.jpg

Page 22: Data Migration In An Agile Open Source World

Image http://www.life123.com/bm.pix/read-balance-sheet.s600x600.jpg

Activity Migration

Page 23: Data Migration In An Agile Open Source World

Image http://www.life123.com/bm.pix/read-balance-sheet.s600x600.jpg

Reconciliation

Page 24: Data Migration In An Agile Open Source World

Open Source Continuous Integration / Build Tools

Continuous Integration Servers Hudson: https://hudson.dev.java.net

Cruise Control:http://cruisecontrol.sourceforge.net

Build Tools Ant: http://ant.apache.org

Maven: http://maven.apache.org

Gradle: http://www.gradle.org

SCons: http://www.scons.org

Phing: http://phing.info

Rake: http://rake.rubyforge.org/

Page 25: Data Migration In An Agile Open Source World

Open Source Developer ToolsIDE’s (multiple language support) Eclipse: http://www.eclipse.org

NetBeans: http://www.netbeans.org

RadRails: http://www.aptana.com/rails

Database Clients DBVisualizer: http://www.dbvis.com/

SQuirreL: http://squirrel-sql.sourceforge.net

Web Service / SOAP Tools soapUI: http://www.soapui.org

Version Control Systems Subversion: http://subversion.tigris.org

Git: http://git-scm.com

Database Versioning Liquibase: http://www.liquibase.org/

Page 26: Data Migration In An Agile Open Source World

Open Source Testing ToolsTest Specification – xUnit Tools JUnit: http://www.junit.org

PHPUnit: http://www.phpunit.de/

Test Specification Tools – Expressive/BDD FitNesse: http://fitnesse.org

Concordion: http://www.concordion.org

Cucumber: http://cukes.info

easyb: http://www.easyb.org

Test Execution / Record / Log / UI Selenium: http://seleniumhq.org

Watir: http://wtr.rubyforge.org

Performance Test JMeter: http://jakarta.apache.org/jmeter/

Grinder: http://grinder.sourceforge.net/

Page 27: Data Migration In An Agile Open Source World

Open Source ETL/ESB Tools

ETL Donkey:

http://www.assembla.com/wiki/show/burro

Pentaho (Kettle): http://kettle.pentaho.org/

Talend: http://www.talend.com

Clover: http://www.cloveretl.com/

Scriptella: http://scriptella.javaforge.com/

ESB Mule: http://www.mulesoft.org

Apache ServiceMix:http://servicemix.apache.org

Apache Camel: http://camel.apache.org/

Page 28: Data Migration In An Agile Open Source World

Questions ??Craig Smithhttp://www.suncorp.com.auhttp://[email protected]@smithcdau

Suncorp is one of Australia and New Zealand's largest diversified financial services providers, supplying banking,

insurance and wealth management products to around 7 million customers through well-established and recognised brands such as AAMI, Australian Pensioners Insurance Agency, Shannons, Vero, Asteron and Tyndall, as well as Suncorp and GIO. Today,

Suncorp is Australia's fifth largest bank and second largest domestic general insurance group, with over 16,000 staff. Suncorp has representation in 450 offices, branches and

agencies throughout Australia and New Zealand.