Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler
-
Upload
gabriele-columbro -
Category
Documents
-
view
471 -
download
0
Transcript of 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
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
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
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
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
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
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.
An early CommunityGabriele Columbro [email protected] - Alfresco Software
Product
Community
SoftwareDocsExamples
Ecosystem
An ecosystem driven CommunityGabriele Columbro [email protected] - Alfresco Software
Product
Community
SoftwareDocsExamplesSDK
PluginsIssues / FixesEnhancementsSolutions
Now that’s a real ecosystem Gabriele Columbro [email protected] - Alfresco Software
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!
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
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
Chemistry and the Apache wayGabriele Columbro
Apache Chemistry OpenCMIS Ecosystem “the Apache Way”
[email protected] – Alfresco Software
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
Maven + ASF. The dynamic duo Gabriele Columbro [email protected] - Alfresco Software
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
Basically … paradiseGabriele Columbro [email protected] - Alfresco Software
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
The Maven + Alfresco storyGabriele Columbro
The Maven + Alfresco ecosystem
[email protected] – Alfresco Software
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
So what was this Alfresco thing?Gabriele Columbro [email protected] - Alfresco Software
Unit testing?
Alfresco Module Packages?
${extensionRoot
}?
Rapid development
?
Dependency Management?
It’s a bit like… Gabriele Columbro [email protected] - Alfresco Software
A typical ECM scenarioGabriele Columbro [email protected] - Alfresco Software
And the solution would be?Gabriele Columbro [email protected] - Alfresco Software
And the solution would be?Gabriele Columbro [email protected] - Alfresco Software
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
But a fool with a tool is still a fool…Gabriele Columbro [email protected] - Alfresco Software
Maven Alfresco SDKGabriele Columbro [email protected] - Alfresco Software
Maven Alfresco SDK
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
Yes we can!Gabriele Columbro [email protected] - Alfresco Software
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
SDK architectureGabriele Columbro [email protected] - Alfresco Software
Archetypes
SDK POM
Plugin
Alfresco Artifacts
<dependency>Deployment
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
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
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!
Documentation websiteGabriele Columbro [email protected] - Alfresco Software
https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-lifecycle-aggregator/latest/index.html
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"
ConclusionsGabriele Columbro [email protected] - Alfresco Software
Conclusions & QA
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!
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
A very promising startGabriele Columbro [email protected] - Alfresco Software
A very promising startGabriele Columbro [email protected] - Alfresco Software
The Maven SDK provides a platform to build a sustainable ecosystem!
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
Hopefully one step closer to …Gabriele Columbro [email protected] - Alfresco Software
Thanks!Gabriele Columbro [email protected] - Alfresco Software
•References• Alfresco Software• Maven Alfresco SDK• Alfresco SDK Parent POM• Alfresco 4.2.b Platform Distribution POM• Alfresco Artifacts Repository
Join the community• Alfresco Software
• Maven Alfresco Community
• Maven Alfresco on GoogleCode
• Twitter• @mindthegabz