24
FME Development & Continuous integration GIM Smolders Steven Van Oudenhove Jean-Pierre

FME World Tour 2016: FME and continuous integration

  • Upload
    gimnv

  • View
    207

  • Download
    1

Embed Size (px)

Citation preview

Page 1: FME World Tour 2016: FME and continuous integration

FME Development

&

Continuous integration

GIM

Smolders Steven

Van Oudenhove Jean-Pierre

Page 2: FME World Tour 2016: FME and continuous integration

Overview

• FME Project types

• FME local processes

• FME centered services

• Multi technology integrated applications

• What is Continuous Integration?

• Continuous Integration applied to FME

• Conclusion

Page 3: FME World Tour 2016: FME and continuous integration

FME local processes

Output Data Input data

Page 4: FME World Tour 2016: FME and continuous integration

FME local processes

• One single developer

• FME desktop

• The focus is the output data

• Run within an isolated or stable environment

• Single Technology - No integration problems

• Maintenance by single developer

Page 5: FME World Tour 2016: FME and continuous integration

FME centered services

Output Data Input data

Page 6: FME World Tour 2016: FME and continuous integration

FME centered services

• FME workspace authored on desktop environment

published to server

• Exposed as services (Web Services, sheduled jobs)

• Components are stable during development phase

• One or Multi developers

• Minor integration problems

• Long term maintenance

Page 7: FME World Tour 2016: FME and continuous integration

Multi technology integrated applications

SQL Data resources

Page 8: FME World Tour 2016: FME and continuous integration

Multi technology integrated applications

• FME is one part of the codebase (.NET, java, sql, python)

• Dependencies between code of different technologies • DB schema, stored procedures

• Web Services

• NON FME components change every day • You cannot wait for all resources to become stable before you

start developing in FME

• Many integration problems

Page 9: FME World Tour 2016: FME and continuous integration

Multi technology integrated applications

All individual developments must be integrated

before it can be tested

The full application must be build to know if it

works as expected

Page 10: FME World Tour 2016: FME and continuous integration

What is

Continuous Integration?

Page 11: FME World Tour 2016: FME and continuous integration

Continuous integration (CI) No matter how good the individual

code is, the full application will

not work unless it fully integrates

all components and technologies!

Continuous Integration aims to

integrate all code developments

and build the end user application

at least once a day!

Page 12: FME World Tour 2016: FME and continuous integration

CI/CD Key components 1. All requirements and issues tracked in a single incident

tracking system

2. Multi-environment strategy

3. Source Code Version control in a single repository • All technologies using the same build number

4. Automated build • Construct deployment artifact: Compilation or zip

5. Automated testing • Sample static datasets, stops the build in failure

6. Automated deployment • Deployment becomes a formality

Page 13: FME World Tour 2016: FME and continuous integration

Continuous integration

with FME

Page 14: FME World Tour 2016: FME and continuous integration

1. Centralised requirements/incident mgmt

• Document all requirements in a single system

• During initial analysis, design, implementation,

maintenance phase

• Use the requirements and incident identifiers to

comment your source code and tag the different

versions (using plugins where available)

• Example of tools: JIRA, TFS, Redmine, Mantis, ….

Page 15: FME World Tour 2016: FME and continuous integration

2. Multi environment DTAP

• DTAP stands for Development, Testing, Acceptance and Production

• Each environment has different purposes

• Externalize configuration (xml, ini) • Connection parameters

• Data folders

• Read by controller

• Use FME server parameters (set local variables)

Page 16: FME World Tour 2016: FME and continuous integration

3. Version controlling Workspaces • Use a general central source version control system like SVN,

CVS, TFS, GIT, ….

• FMW should be treated as binary

• No merge, no change comparison

• Editors should use a locking mechanism to avoid conflicts

• Check-in must document the Requirements/incident tracker

references

Page 17: FME World Tour 2016: FME and continuous integration

4. Automated build

• Done by the build server

• Zip all FME sources

• Tag the unique build number to every file

.xml <!--build 20160315 -->

.sql --build 20160315

.py # build 20160315

.fmw #! HISTORY="build 20160315"

Page 18: FME World Tour 2016: FME and continuous integration

5. Automated testing

• Make a stable and permanent sample

dataset which allow transformation

verification

• Make an independent workspace to check

and validate the resulting data

• Block the build if problems occur

Page 19: FME World Tour 2016: FME and continuous integration

6. Automated deployment • Deployment on server = Publication

• Use FME server REST API to automate the publication of each FME resource: workspace, resources, Web Services, Topics, …

• The Publication workspace is function of the specific FME project and must be maintained as the FME code evolves

• No publication should ever be done through the workbench once the publication has been automated

• Take into account the different environments (DTAP : Development, Testing, Acceptance and Production)

Page 20: FME World Tour 2016: FME and continuous integration

Required tools

1. A version control system • Git, svn, cvs, TFS, VSS

2. A build server • Jenkins, Bamboo, TFS, …

3. An artifact repository • Nexus, file repository, docker repository

4. A requirements and incident mgmt system • Mantis, JIRA, redmine, TFS

Page 21: FME World Tour 2016: FME and continuous integration

Benefits

• Continuous releasable solution

• Continuously testable solution

• Deployment and publication become a routine stress

less activity

• FME developers can relate bug documentation to

solution build numbers and to FME server workspaces

• Align release management of FME and other code

Page 22: FME World Tour 2016: FME and continuous integration

Conclusion

Version Requirements DTAP Auto

Build

Auto

Testing

Auto

Deploy

Local X X

FME server X X X

Multi

techno

X X X X X X

Page 23: FME World Tour 2016: FME and continuous integration

Conclusion

No more deploy and hope for miracles!

Page 24: FME World Tour 2016: FME and continuous integration

Thank you!