bp-5 application lifecycle management
DESCRIPTION
We’ll discuss the concepts of Application Lifecycle Management applied to Alfresco projects: by covering typical Alfresco Enterprise implementation scenarios like building a Proof of Concept, developing an Integration project or Benchmarking your custom deployment, we’ll provide an overview of the state of the art techniques and tools to provide your Alfresco projects with a quick, automated and standard lifecycle. We’ll also demo creating and growing an Alfresco project from scratch using Apache Maven and the Maven Alfresco Lifecycle project.TRANSCRIPT
![Page 1: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/1.jpg)
Alfresco Application Lifecycle Management
Deploy and customize your favourite content platform your way!
![Page 2: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/2.jpg)
Agenda
ALM & ECM • Application Lifecycle Management decomposed • Enterprise ALM scenarios • ALM requirements for typical Alfresco projects
Choose your flavor for managing your Alfresco lifecycle • Ad hoc • Ant + Eclipse SDK • Maven Alfresco Lifecycle
Demo • Build & manage a fully fledged Alfresco 4.x project in 5 minutes
![Page 3: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/3.jpg)
ALM & ECM A FOOL with a TOOL is still a FOOL
![Page 4: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/4.jpg)
What is ALM?
Application Lifecycle Management is not just “the build” (although we will focus mostly on that subset)
• Quoting Wikipedia: “Application Lifecycle Management (ALM) is a continuous process of managing
the life of an application through governance, development and maintenance. ALM is the marriage of business management to software engineering made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking, and release management.[1]”
• It’s not about the tooling it’s about how tools are connected to support processes
• Spans through all software & business disciplines
![Page 5: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/5.jpg)
ALM visuals
![Page 6: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/6.jpg)
ALM 1.0 vs ALM 2.0
Limitation of ALM 1.0 • The theory of unity • Tries to solve too many problems at once • Often offered as monolithic proprietary platform
• Not flexible enough • With respect to the development technologies • With respect to the management process (Agile, UP variants …)
A vision for ALM 2.0 • Open • Open source and based on standard (open or de facto) • Flexible and extensible
• Divide et impera (divide and conquer) • Start focused and solve general problems incrementally
![Page 7: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/7.jpg)
ECM declination of ALM
ECM is enterprise (wide) • Enterprises (should) have standard mature app lifecycle • Might involve multiple development projects and team • Key Cope with complexity over time
ECM is a people business • POC is a common practice • Process adaptation over imposition • Key Fast prototyping and release cycles
ECM is open source powered • Frequent integration of open source products / libraries • Enable enterprise processes to cope with platform changes • Key Dynamic answer to integration requirements & updates
![Page 8: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/8.jpg)
Why Alfresco developers need ALM?
Alfresco is a content platform • Open platform designed for ECM “tailor making” • Huge spectrum of interdependent projects needing
1. Creation 2. Development 3. Testing and CI 4. Release
Alfresco is growing fast • In terms of product components & releases • Typical Alfresco customer penetration phases
1. POC 2. Departmental installation 3. Standard Content Platform for applications 4. Enterprise CM & Collaboration Foundation
![Page 9: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/9.jpg)
Manual vs. Automated Lifecycle
Constant Control Predictable evolutions
![Page 10: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/10.jpg)
Setting the stage
5 top objectives for Alfresco ALM 1. IDE Integration 2. Fast prototyping 3. Manage / customize all Alfresco components 4. External product Integration 5. Integration in enterprise process / lifecycle
5 top stakeholders for Alfresco ALM 1. Community / Enterprise Developers 2. Project Managers 3. IT / Operations 4. Enterprise Architects 5. Alfresco Support
![Page 11: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/11.jpg)
Flavors of ALM for Alfresco Cause everybody’s free (to wear sunscreen)
![Page 12: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/12.jpg)
Available Approaches
Ad hoc • Based on ad-hoc, potentially manual procedures • Note: Strongly discouraged, error prone & no ALM coverage
Full rebuild • Rebuild Alfresco starting from Trunk/Tags • Requires enterprise ready process / need for contribution
Ant / Eclipse SDK • Only fully supported Enterprise approach to date • Covers mostly build / deployment related use cases • Limited ALM support, difficult integration in Enterprise processes
Maven Alfresco Lifecycle • Available at http://code.google.com/p/maven-alfresco-archetypes/
• Community artifacts available at http://maven.alfresco.com
![Page 13: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/13.jpg)
Full rebuild from Sources
Rarely needed • Only in specific contexts • Community • Patches • heavily customized versions
• Enterprise • Patches But please check first for hotfixes • Enterprise practices on software management • Dangerous
• You might lose support and QA added value
• Check • http://wiki.alfresco.com/wiki/Alfresco_SVN_Development_Environment
• Basically at your own risk !
![Page 14: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/14.jpg)
Alfresco SDK
Available with every CE / EE release http://wiki.alfresco.com/wiki/Alfresco_SDK
Features • Integrated with Eclipse • Builds with Ant • Alfresco & 3rd party libraries available in classpath • Possible to attach sources & javadoc • Offer samples (amongst others) for
• Custom Repository Extension • Custom AMP • Ant script to integrate in an alresco.war
![Page 15: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/15.jpg)
Alfresco SDK How To
Get ahold of it • Download it from • Community: http://wiki.alfresco.com/wiki/Alfresco_SDK • Enterprise: http://support.alfresco.com
• Understand it • Samples • SDKAlfrescoRemote & SDKAlfrescoEmbedded projects
Use it • Import it with Eclipse • Configure alfresco-global.properties to proper DB/data • Use the samples • Custom JSF / Foundation services • Custom AMP
![Page 16: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/16.jpg)
A good tool to begin with…
5 top objectives for Alfresco ALM 1. IDE Integration 2. Fast prototyping 3. Manage / customize all Alfresco components 4. External product Integration 5. Integration in enterprise process / lifecycle
5 top stakeholders for Alfresco ALM 1. Community / Enterprise Developers 2. Project Managers 3. IT / Operations 4. Enterprise Architects 5. Alfresco Support
Covers only the development & build!
![Page 17: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/17.jpg)
Maven Alfresco Lifecycle
Vision “Provide a flexible standard based approach to support the full lifecycle of an Alfresco application, from inception to release and integration in enterprise processes”
State of the nation • Mature project Releases available since 2009 • Backed by http://maven.alfresco.com • New 4.x compatible release just out! (3.9.0)
Get it http://wiki.alfresco.com/wiki/Managing_Alfresco_Lifecyle_with_Maven
![Page 18: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/18.jpg)
Maven Alfresco Lifecycle 4.0
Development features • 4.0 ready Multi module archetype • Repo/Share • AMPs
• Dependency management • Integrated support for TDD
Runtime features • Run embedded in favorite appserver • Per environment separate configuration
Process • Mandatory integrated versioning! • Release & distribution for free • Integration with other ALM tools (e.g. Jira)
![Page 19: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/19.jpg)
Why Maven & Alfresco ?
Standard de facto 1. Alfresco (and AMPs / JARs) is a <dependency> away 2. Standard lifecycle commands 3. Foster build reuse & packaging standardization 4. Enable simple integration with OSS J2EE best of breed
Get your lifecycle to the next level 1. Support the lifecycle from inception to (maintenance) releases 2. Integrated with code quality & task management tools 3. Scales from single community dev to multiple enterprise teams 4. Legal & Licensing focus 5. Can track usage
![Page 20: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/20.jpg)
In other words…the glue for your process!
![Page 21: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/21.jpg)
Maven Alfresco Lifecycle 4.0
Development features • Multi module archetype • Repo/Share/Solr • AMPs
• Dependency management • Integrated support for TDD
Runtime features • Run embedded in favorite appserver • Per environment separate configuration
Process • Mandatory integrated versioning! • Release & distribution for free • Integration with other ALM tools (e.g. Jira)
![Page 22: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/22.jpg)
Demo Afresco 4.0 up and running in 2 minutes
Quicker than the installer and ready to roll
![Page 23: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/23.jpg)
Demo objectives
Create a new Alfresco 4.0 project 1. Open your favorite Maven compatible IDE Eclipse 2. Create a project from prototype Maven Archetypes 3. Manage / customize all Alfresco components Multi module
1. Alfresco Repository 2. Alfresco Share 3. Solr
Run it & release it (early and often) 1. Run in embedded (supported) Tomcat 2. Manage versioning 3. Simple 1 command release
![Page 24: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/24.jpg)
Maven Alfresco Lifecycle 4.0
Deterministic and reproducible builds • Zero pre-requisites • Learning curve as complex as ‘mvn clean install’ • Suitable for CI servers
Quick Testing deployment support • Embedded run • Environment safe • Selenium integration
Flexible • Valid for starters and evaluators • Scale to the enterprise • Non IDE dependent
![Page 25: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/25.jpg)
Alfresco & Maven
Community Support • Maven Alfresco Lifecycle Available as of 2007 • Artifacts on http://maven.alfresco.com as of 2009 • 4.x Community artifacts already available • Using Sonatype Nexus (http://nexus.sonatype.org/)
• Join [email protected]
Enterprise Support 1. Target: 4.x EE deployed on http://maven.alfresco.com
1. Only JARs / WARs 2. NO POMs
2. Refreshed version of Maven Alfresco Lifecycle available • Working to get that integrated as “alternative” SDK
![Page 26: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/26.jpg)
You don’t want to say “it’s just work” ™
5 top objectives for Alfresco ALM 1. IDE Integration Any Maven compatible IDE 2. Fast prototyping Archetypes 3. Manage / customize all Alfresco components Multi module 4. External product Integration Most OSS builds with Maven 5. Integration in enterprise process / lifecycle Seamless
5 top stakeholders for Alfresco ALM 1. Community / Enterprise Developers 2. Project Managers 3. IT / Operations 4. Enterprise Architects 5. Alfresco Support
![Page 27: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/27.jpg)
And now deep in the ALM space…
Future integrations 1. JIRA • Mylin • maven-changes-plugin
2. Hudson 3. Sonar
In the spotlight • Open Source
1. CALM http://code.google.com/p/maven-calm/ 2. ALM with Maven http://jabox.org 3. Web project hosting http://www.redmine.org/
• Proprietary • Insight (http://www.sonatype.com/Products/Sonatype-Insight)
![Page 28: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/28.jpg)
![Page 29: BP-5 Application Lifecycle Management](https://reader033.vdocuments.us/reader033/viewer/2022042714/5552f6cfb4c90587048b4e6c/html5/thumbnails/29.jpg)