BP-5 Application Lifecycle Management
-
Upload
alfresco-software -
Category
Technology
-
view
2.402 -
download
0
description
Transcript of BP-5 Application Lifecycle Management
Alfresco Application Lifecycle Management
Deploy and customize your favourite content platform your way!
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
ALM & ECM A FOOL with a TOOL is still a FOOL
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
ALM visuals
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
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
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
Manual vs. Automated Lifecycle
Constant Control Predictable evolutions
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
Flavors of ALM for Alfresco Cause everybody’s free (to wear sunscreen)
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
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 !
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
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
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!
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
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)
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
In other words…the glue for your process!
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)
Demo Afresco 4.0 up and running in 2 minutes
Quicker than the installer and ready to roll
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
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
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
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
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)