46
Standard Application Lifecycle Management as Community and Enterprise Enabler (using Apache Maven) Gabriele Columbro g [email protected] , Alfresco Software

Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Embed Size (px)

Citation preview

Page 1: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Standard Application Lifecycle Management as Community and Enterprise Enabler(using Apache Maven)

Gabriele Columbro

[email protected], Alfresco Software

Page 2: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

AgendaGabriele Columbro

• Ecosystem & developer ergonomics• Chemistry & the Apache way• The Alfresco journey to standard

SDK• Maven Alfresco SDK demo• Conclusions & Q/A

[email protected] – Alfresco Software

Page 3: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Who’s this guy?Gabriele Columbro [email protected] - Alfresco Sofware

Gabriele Columbro Master in Engineering @ Roma3 Principal Architect, Alfresco Software Release Mgr, Apache Chemistry

OpenCMIS Maven enthusiast & fundamentalist :)

Alfresco Software Open Source ECM Community vs. Enterprise Java Based, Integrates Apache * and

more

Page 4: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Why do we love Open Source development?Gabriele Columbro

As a developer• Self-documenting• You are never alone!• Open Source ↔ Standard

As an Apache release manager• Lean release process • Automation • Standardization • Legal coverage

[email protected] - Alfresco Software

Page 5: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

In substance, freedom!!!Gabriele Columbro

Integrating components Running on your laptop! No lock-ins Learn by example /Fix it yourself Community!

[email protected] - Alfresco Software

Page 6: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Open Source needs CommunityGabriele Columbro

Marketing and Social Buzz Longevity of the product Quick issues turnaround Amount of (unstructured)

documentation

But: enough to ensure quality and self sustained long life of the product?

[email protected] - Alfresco Software

Page 7: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Ecosystem definedGabriele Columbro [email protected] - Alfresco Software

http://en.wikipedia.org/wiki/Ecosystem

An ecosystem is a community of living organisms (plants, animals and microbes) in conjunction with the nonliving components of their environment (things like

air, water and mineral soil), interacting as a system.

Page 8: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

An early CommunityGabriele Columbro [email protected] - Alfresco Software

Product

Community

SoftwareDocsExamples

Page 9: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Ecosystem

An ecosystem driven CommunityGabriele Columbro [email protected] - Alfresco Software

Product

Community

SoftwareDocsExamplesSDK

PluginsIssues / FixesEnhancementsSolutions

Page 10: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Now that’s a real ecosystem Gabriele Columbro [email protected] - Alfresco Software

Page 11: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Developer ergonomics is the KEY!Gabriele Columbro [email protected] - Alfresco Software

People should be comfortable in what they do or otherwise they won't do it!

Page 12: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Developer Ergonomics definedGabriele Columbro

How simple is to build, test and run your software?

Framework based development Clean / clear release cycle Dependency Management Core build vs. integration facilities Extension points

How well / self documented it is?

[email protected] - Alfresco Software

Page 13: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

How ergonomics turn a community into an Ecosystem?

Gabriele Columbro

Allow developers to focus of “creativity” Standard No infrastructure gotchas Jump start, low RTFM

[email protected] - Alfresco Software

Page 14: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Chemistry and the Apache wayGabriele Columbro

Apache Chemistry OpenCMIS Ecosystem “the Apache Way”

[email protected] – Alfresco Software

Page 15: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

A bit of historyGabriele Columbro

CMIS standard implementation Project started in 2009 ASF contribution in late 2009 / early

2010 First incubator release in early 2010 Graduation in 2011 9 releases in 2 years Maven Release management might

have been quite tedious! But...

[email protected] - Alfresco Software

Page 16: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Maven + ASF. The dynamic duo Gabriele Columbro [email protected] - Alfresco Software

Page 17: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Maven + ASF… releases like a CharmGabriele Columbro [email protected] - Alfresco Software

repository.apache.org

Maven Central

Zero confvia Apache

POM

Integrated process

Staging support

Incubator mentoring

Page 18: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Basically … paradiseGabriele Columbro [email protected] - Alfresco Software

Page 19: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Who benefits from that?Gabriele Columbro

Me, me, me! Community

Well-know contracts and interfaces No brainer evaluation

Did I mention ME? Enterprise Ecosystem

Standard integration lifecycle Thorough legal / licensing enforcement Control over inbound software

[email protected] - Alfresco Software

Page 20: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

The Maven + Alfresco storyGabriele Columbro

The Maven + Alfresco ecosystem

[email protected] – Alfresco Software

Page 21: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

You might have heard this story…Gabriele Columbro

Boss: “You gotta learn Alfresco, quick!”Gab: “Mhmhmh…ok ”

We all ♥ frameworks Modern and cool Open Source and Easy to use

And Alfresco is all of that but…

[email protected] - Alfresco Software

Page 22: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

So what was this Alfresco thing?Gabriele Columbro [email protected] - Alfresco Software

Unit testing?

Alfresco Module Packages?

${extensionRoot

}?

Rapid development

?

Dependency Management?

Page 23: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

It’s a bit like… Gabriele Columbro [email protected] - Alfresco Software

Page 24: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

A typical ECM scenarioGabriele Columbro [email protected] - Alfresco Software

Page 25: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

And the solution would be?Gabriele Columbro [email protected] - Alfresco Software

Page 26: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

And the solution would be?Gabriele Columbro [email protected] - Alfresco Software

Page 27: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Who benefits from that?Gabriele Columbro

Confession I have never used the “old” Alfresco

SDK! (ehm…) I need more productivity and standards!

Why not? Alfresco is just a webapp (WAR) AMPs are no more than ZIPs managed

by Alfresco Module Management tool Why can’t I use my favorite tool of

choice?

[email protected] - Alfresco Software

Page 28: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

But a fool with a tool is still a fool…Gabriele Columbro [email protected] - Alfresco Software

Page 29: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Maven Alfresco SDKGabriele Columbro [email protected] - Alfresco Software

Maven Alfresco SDK

Page 30: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

A Community success storyGabriele Columbro

• 2008: Maven Alfresco Archetypes founded

• 2009: Maven Alfresco Lifecycle (up to 3.9.1)– More than 100 people on the public list

• 2009: Maven Alfresco Lifecycle (up to 3.9.1)• More than 100 people on the public list

• 2012: Alfresco Artifacts Repository!• More than 100 Enterprise customers

subscribed!

• Nov 2012: Maven Alfresco SDK™ released!• Backed by Alfresco Artifacts and POMs!

[email protected] - Alfresco Software

Page 31: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Yes we can!Gabriele Columbro [email protected] - Alfresco Software

Page 32: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

SDK ComponentsGabriele Columbro [email protected] - Alfresco Software

• Alfresco Maven Plugin– Embeds Alfresco MMT

• Alfresco SDK Parent POM– SDK single point of entrance

• Alfresco Platform Distribution POM

– Community / Enterprise

• Alfresco Maven archetypes– AMP & All-in-One

Page 33: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

SDK architectureGabriele Columbro [email protected] - Alfresco Software

Archetypes

SDK POM

Plugin

Alfresco Artifacts

<dependency>Deployment

Page 34: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Because development can be easy…Gabriele Columbro [email protected] - Alfresco Software

Sources & Javadocs

IDE independent

Standard lifecycle

Zero downloads

Fast Prototyping

Integrated runtime

Unit & integration

testing

Page 35: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

And Alfresco development can be!Gabriele Columbro [email protected] - Alfresco Software

Alfresco platform selection

Solr configuration

Repository extension

AMP packaging

UI Share customizatio

n

AMP WARinstallation

Page 36: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

SDK Use CasesGabriele Columbro [email protected] - Alfresco Software

AMP archetype– Create an Alfresco module from scratch

– Create a Share customization from scratch

All-in-One archetype– Manage a full blown (foundation) Alfresco project

– Build and distribute WARs (potentially depending on AMPs)

– Evaluate Alfresco with one command

– Demo Alfresco or reproduce an issue in minutes

SDK Parent POM– Enable your existing Maven project to use SDK features

– You are a guru and know much better than using archetypes!

Page 38: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Quick demoGabriele Columbro [email protected] - Alfresco Software

All-in-One multi-module packaging & embedded run

0 manual downloads, 2 commands and you’re up and running!

MAVEN_OPTS="-Xms256m -Xmx1G -XX:PermSize=300m"

Page 39: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

ConclusionsGabriele Columbro [email protected] - Alfresco Software

Conclusions & QA

Page 40: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

SDK Use CasesGabriele Columbro [email protected] - Alfresco Software

• Community is our best asset• Cannot be “controlled”• Cannot be “convinced”• Cannot be easily fooled

• Ecosystem needs to be “seeded”• Turn your community into a lively

ecosystem making it “easy for them”• Mainstream and Viral effect!

• A standard process is critical for its sustainability!

Page 41: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

SDK as ecosystem enablerGabriele Columbro [email protected] - Alfresco Software

• What’s possible now• 2 commands, no downloads up’n’running• Easy extension testing Quality & easier

support• Process reuse via archetypes

• Community ecosystem enablement• Quick evaluation and contribution • Zero-BS approach with archetypes (nobody

likes RTFM)

• Enterprise ecosystem enablement• OEM and embedding of Alfresco (fine grained)• Drop all their custom Maven repositories!• Easy Community Enterprise switch

Page 42: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

A very promising startGabriele Columbro [email protected] - Alfresco Software

Page 43: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

A very promising startGabriele Columbro [email protected] - Alfresco Software

The Maven SDK provides a platform to build a sustainable ecosystem!

Page 44: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

ConclusionGabriele Columbro

Community and Enterprise network require an enabling technology to build a lively framework ecosystem

Maven is a perfect enabler for Simple, minimal RTFM, product

evaluation Scaling from individual to enterprise

processes seamlessly Opening up a black box in a controlled

way! Enabling integration process reuse (via

archetypes)

[email protected] - Alfresco Software

Page 45: Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler

Hopefully one step closer to …Gabriele Columbro [email protected] - Alfresco Software