Transcript
Page 1: Creating An Automated Build and Deployment Infrastructure

Franz Garsombke

[email protected]

Page 2: Creating An Automated Build and Deployment Infrastructure

Why Build and Deploy Automation?The Open Source Tools

Maven2 Hudson Proximity with Duct Tape

DemonstrationQuestions/References

[email protected]

Page 3: Creating An Automated Build and Deployment Infrastructure

[email protected]

Deliverables

Time to Market

LifecycleWaterfall

test

1 to 6 months Waterfall 12 to 36 months

Waterfall deploy

Working, tested code on short cycles Waterfall documentation

Agile Software Development

Page 4: Creating An Automated Build and Deployment Infrastructure

Developer

SCM

Build

TesterPO

Check-Ins

New Functionality

Builds

Feedback

Page 5: Creating An Automated Build and Deployment Infrastructure

Developer

SCM

Build

TesterPO

Check-InsNew Functionality

BuildsFeedback

Feedback

TestAutomation

BuildsFeedback

Page 6: Creating An Automated Build and Deployment Infrastructure

Maven is a software project management and comprehension tool

Using a project object model (POM), Maven can manage a project's build, reporting and documentation

Convention Over Configuration

Standardized Build Life Cycle

[email protected]

Page 7: Creating An Automated Build and Deployment Infrastructure

Module Inheritance

Plugins (reporting, testing, deployment, etc.)

Dependency Management

Artifact Deployment

Archetypes

War Overlays

[email protected]

Page 10: Creating An Automated Build and Deployment Infrastructure

Extensible continuous integration engine

Similar to CruiseControl, except that it easy to use and entirely browser based

Job creation literally takes minutesUsed as CI server and dedicated

build machineRemote slaves

[email protected]

Page 12: Creating An Automated Build and Deployment Infrastructure

Java web application which serves as Maven proxy

Acts as ‘one’ logical repository for publishing in-house and other external Maven artifacts which are not uploadable to Maven "central“ repository (like commercial projects, J2EE Jars, etc...).

[email protected]

<repositories> <repository> <id>central</id> <name>Maven Repository Switchboard</name> <layout>default</layout> <url>http://host:8081/proximity/repository/public</url> </repository> …</repositories>

Page 13: Creating An Automated Build and Deployment Infrastructure

[email protected]

And this is what all this built up to: the Class of 2002/2003 Winter Semi-Formal. I'm the one in the duct tape tuxedo, hat, pants, cane, and shoes. Only the cane (which is over a wooden dowel rod) and the shoes contain non-duct-tape components, everything else is 100% pure tape.

My date is Nicki *****, a friend from Math 223/224. Her complete outfit (not everything pictured here) includes the dress, a handbag, a bow (for her hair), and a duct tape rose. Again, with the exception of the wire stem used in the rose, everything is 100% pure duct tape.

Page 14: Creating An Automated Build and Deployment Infrastructure

Navigate Builds Give everyone a “Test this Build” button Allows Testers to Pull their work

Testers can Pull work

Page 15: Creating An Automated Build and Deployment Infrastructure

[email protected]

Start Build

Deploy Build

1 23

4 5

Page 16: Creating An Automated Build and Deployment Infrastructure

Build once, deploy everywheremaven assemble plugin

[email protected]

Artifact Dissection

Page 17: Creating An Automated Build and Deployment Infrastructure

Convention over configurationSoftware build as environment-

independent encapsulated packageRemoving manual barriers Integrate often I hate live demos!

[email protected]

Page 18: Creating An Automated Build and Deployment Infrastructure

[email protected]

SITE URL

Hudson http://hudson.dev.java.net/

Maven http://maven.apache.org/

Proximity http://proximity.abstracthorizon.org/

Sourceforge Proximity Deploy

http://sourceforge.net/projects/proximitydeploy

Me [email protected]


Recommended