bp-5 application lifecycle management

29
Alfresco Application Lifecycle Management Deploy and customize your favourite content platform your way!

Upload: alfresco-software

Post on 13-May-2015

2.405 views

Category:

Technology


0 download

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

Alfresco Application Lifecycle Management

Deploy and customize your favourite content platform your way!

Page 2: BP-5 Application Lifecycle Management

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

ALM & ECM A FOOL with a TOOL is still a FOOL

Page 4: BP-5 Application Lifecycle Management

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

ALM visuals

Page 6: BP-5 Application Lifecycle Management

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

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

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

Manual vs. Automated Lifecycle

Constant Control Predictable evolutions

Page 10: BP-5 Application Lifecycle Management

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

Flavors of ALM for Alfresco Cause everybody’s free (to wear sunscreen)

Page 12: BP-5 Application Lifecycle Management

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

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

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

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

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

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

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

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

In other words…the glue for your process!

Page 21: BP-5 Application Lifecycle Management

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

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

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

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

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

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

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
Page 29: BP-5 Application Lifecycle Management