20
Developer Productivy: Industrialising the WebSphere Message Broker Build Process [email protected] Swiss Federal Railways WebSphere User Group, London 25.03.2014

Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

Developer Productivy:

Industrialising the

WebSphere Message

Broker Build Process

[email protected]

Swiss Federal Railways

WebSphere User Group, London

25.03.2014

Page 2: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

Agenda

1. SBB Overview

2. Integration Landscape

3. Standardising the Build Process

4. WebSphere Message Broker & Apache Maven

Page 3: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

Switzerland’s largest

Transport Company

Persontransport

1 000 000+

Passengers/Day

SBB Cargo

195 000 t

Cargo/Day

Infrastructure

3500 km Track

5 Power Stations

Telecom Provider

Real Estate

3500+ Buildings

Page 4: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

SBB IT in Numbers (2012)

SBB • Konzernbereiche • Informatik • März 2013 4

850 internal Employees

250 external Employees

Financial Turnover: 560 MCHF

Outsourcing: ~250 MCHF

Operations Management:

Outsourcing – Swisscom &

T-Systems Switzerland

Page 5: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

Organisation Arbeitsteilig zusammenarbeiten (Work Sharing, Working together)

SBB • Konzernbereiche • Informatik • März 2013 5

Arbeitsteilig

zusammen-

arbeiten

Technology

focus

Customer

oriented

Integrated

IT

CIO

SCP SCI SCG SCF AQ OM SWE

UE Security & Risk

Page 6: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

Software Engineering

SBB • Konzernbereiche • Informatik • März 2013 6

MWE

MWE

WU

CD1

T11

T12

T13

CD2

T21

T22

T23

CD3

T31

T32

T33

TF

TTF

TS1

TS2

Tech

no

log

y T5

T4 T3 T2 T1

SWE has two main goals - Resource Pool and Technological Expertise

~140 internal + ~180 external Developers and Architects

4 + 2 + 4 = 10 (4.5 FTE) WebSphere Message Broker Developers

Page 7: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

The current IT Landscape ist very complex

~1200 Applications with some duplication and many dependencies

2’800+ (known) Integration Interfaces

7 SBB • Konzernbereiche • Informatik • März 2013

Page 8: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

Integration – until now

Buy before Customise before Make, however no applications are

independent

Point to Point integration since 20+ years, often implemented with

WebSphere MQ

Data replication as standard integration approach

WebSphere Message Broker in use since 2010

▪ 23 productive Integration Applications

No re-use & little standardisation SBB • Konzernbereiche • Informatik • März 2013 8

Page 9: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

Integration – the future

IT Management decision – Middleware must be used

▪ WMB, SAP-PO, Informatica Power Center (ETL)

~200 IT projects per year

Increased interest in external, fixed-price projects

Standards, Process, Quality

SBB • Konzernbereiche • Informatik • März 2013 9

Page 10: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

Java Development Standards

Subversion – Version Control

Maven – Dependency Management & Build Automation

Jenkins – Continuous Integration, automated Unit und Integration

Testing

Sonar - Coding Standards, Architecture Compliance

Nexus – Artifact Repository

SBB • Konzernbereiche • Informatik • März 2013 10

Page 11: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

Message Broker Development Standards

Subversion – Version Control

Maven – Dependency Management & Build Automation

Jenkins – Continuous Integration, automated Unit und Integration

Testing

Sonar - Coding Standards, Architecture Compliance

Nexus – Artifact Repository

SBB • Konzernbereiche • Informatik • März 2013 11

Page 12: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

Apache Maven

SBB • Konzernbereiche • Informatik • März 2013 12

Standardised Project Structure

Consistent Build Approach

Dependency Management

Multi-module builds

Automated Releases (trunk, tags, branches)

Page 13: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

Maven WMB Projektarten

SBB • Konzernbereiche • Informatik • März 2013 13

(User Defined Extensions)

wmb-src

▪ Filter

▪ Package

wmb-java

▪ Filter

▪ Compile

▪ Test

▪ Package

wmb-bar

▪ Filter

▪ Create bar

▪ Validate Properties

▪ Apply Bar Overrides

▪ Package

wmb-classloader

▪ Package

Page 14: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

Dependency Management

SBB • Konzernbereiche • Informatik • März 2013 14

Page 15: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

Continuous Integration

SBB • Konzernbereiche • Informatik • März 2013 15

Page 16: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

Demo

SBB • Konzernbereiche • Informatik • März 2013 16

Page 17: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

Current Status

SBB • Konzernbereiche • Informatik • März 2013 17

maven-wmb7-plugin

▪ Version 1.9

iib-maven-plugin

▪ Version 1.0

▪ Support for IIB 9+

▪ Currently only ported WMB7 functionality

Page 19: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

Possible Future Developments

SBB • Konzernbereiche • Informatik • März 2013 19

Focus on iib-maven-plugin

MQ Definitions (Queues, Aliases, Subscriptions, etc.)

Execution Group/Bar Mapping

Configurable Services

LDAP (JMS Adressen)

ODBC.ini

Coding Standards

Fully Automated Deployments

Automated Unit Testing of Flows

Page 20: Developer Productivy: Industrialising the WebSphere Message · Java Development Standards Subversion – Version Control Maven – Dependency Management & Build Automation Jenkins

Fragen?

SBB • Konzernbereiche • Informatik • März 2013 20