Your Goat Anti-Fragiled My Snowflake! Demystifying DevOps Jargon (30 minute v...
Standard Application Lifecycle Management as Community (and Enterprise) ecosystem enabler
1. Gabriele Columbro
Standard Application Lifecycle Management as
Community and Enterprise Enabler
(using Apache Maven)
gabriele.columbro@alfresco.com, Alfresco Software
2. Agenda
Gabriele Columbro gabriele.columbro@alfresco.com – Alfresco Software
• Ecosystem & developer ergonomics
• Chemistry & the Apache way
• The Alfresco journey to standard SDK
• Maven Alfresco SDK demo
• Conclusions & Q/A
3. Who’s this guy?
Gabriele Columbro gabriele.columbro@alfresco.com - 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
4. Why do we love Open Source development?
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
As a developer
• Self-documenting
• You are never alone!
• Open Source ↔ Standard
As an Apache release manager
• Lean release process
• Automation
• Standardization
• Legal coverage
5. In substance, freedom!!!
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
Integrating components
Running on your laptop!
No lock-ins
Learn by example /Fix it yourself
Community!
6. Open Source needs Community
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
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?
7. Ecosystem defined
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
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.
http://en.wikipedia.org/wiki/Ecosystem
8. An early Community
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
Product
Software
Docs
Examples
Community
9. An ecosystem driven Community
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
Product
Software Plugins
Docs Issues / Fixes
Ecosystem Enhancements
Examples
SDK Solutions
Community
10. Now that’s a real ecosystem
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
11. Developer ergonomics is the KEY!
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
People should be comfortable in
what they do or otherwise they won't do it!
12. Developer Ergonomics defined
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
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?
13. How ergonomics turn a community into an Ecosystem?
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
Allow developers to focus of “creativity”
Standard
No infrastructure gotchas
Jump start, low RTFM
14. Chemistry and the Apache way
Gabriele Columbro gabriele.columbro@alfresco.com – Alfresco Software
Apache Chemistry OpenCMIS
Ecosystem “the Apache Way”
15. A bit of history
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
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...
16. Maven + ASF. The dynamic duo
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
17. Maven + ASF… releases like a Charm
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
19. Who benefits from that?
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
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
20. The Maven + Alfresco story
Gabriele Columbro gabriele.columbro@alfresco.com – Alfresco Software
The Maven + Alfresco ecosystem
21. You might have heard this story…
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
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…
22. So what was this Alfresco thing?
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
23. It’s a bit like…
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
25. And the solution would be?
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
26. And the solution would be?
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
27. Who benefits from that?
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
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?
28. But a fool with a tool is still a fool…
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
30. A Community success story
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
• 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!
31. Yes we can!
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
32. SDK Components
Gabriele Columbro gabriele.columbro@alfresco.com - 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
34. Because development can be easy…
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
35. And Alfresco development can be!
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
36. SDK Use Cases
Gabriele Columbro gabriele.columbro@alfresco.com - 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!
40. SDK Use Cases
Gabriele Columbro gabriele.columbro@alfresco.com - 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!
41. SDK as ecosystem enabler
Gabriele Columbro gabriele.columbro@alfresco.com - 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
42. A very promising start
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
43. A very promising start
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
The Maven SDK provides a platform to build
a sustainable ecosystem!
44. Conclusion
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
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)
45. Hopefully one step closer to …
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
46. Thanks!
Gabriele Columbro gabriele.columbro@alfresco.com - Alfresco Software
•References Join the community
• Alfresco Software • Alfresco Software
• Maven Alfresco SDK • Maven Alfresco Community
• Alfresco SDK Parent POM • Maven Alfresco on GoogleCode
• Alfresco 4.2.b Platform Distribution POM • Twitter
• Alfresco Artifacts Repository • @mindthegabz