SlideShare une entreprise Scribd logo
1  sur  75
Télécharger pour lire hors ligne
Get your Enterprise
                        Open Source ready
                            Application Lifecycle Management
                           best practices and success stories
                                         from the ECM world




Monday, April 6, 2009
A bit of us


    ๏ Eng. Gabriele Columbro - ECM Product Strategy
      Engineer for Sourcesense (http://www.sourcesense.com)

    ๏ Open source integration and large content centric
      applications

    ๏ ICTU, NXP, GovUnited, Ministry of Finance




Monday, April 6, 2009
A bit of summary


    1. Who needs ALM after all?

    2. ECM: or A fool with a tool is still a fool

    3. The Long Way to get open source under control

    4. NXP demo

    5. Calm Framework and Q/A




Monday, April 6, 2009
Before we start...

         ๏ What’s Application Lifecycle Management?

         ๏ Wikipedia says:

               “Application lifecycle management (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”

         ๏ But the focus should be on processes rather than technologies




Monday, April 6, 2009
Before we start...
         ๏ What’s Enterprise Content Management?

         ๏ Wikipedia says:

               “Enterprise content management (ECM) is the strategies, methods and
               tools used to capture, manage, store, preserve, and deliver content and
               documents related to organizational processes. ECM tools and
               strategies allow the management of an organization's unstructured
               information, wherever that information exists”

         ๏ Open Source technologies are growing fast in the J2EE world as opposed
           to proprietary solutions




Monday, April 6, 2009
ReALM of discussion

                                           Qualiy
                                                                      Testing
                                         Assurance
                                                                    Automation


                            Fast
                        Prototyping                                                   Release
                                                                                    management

                                       Application Lifecycle
                        Reduced Time      Management                                 Flattening the
                          To Market                                                  learning curve


                                                                          Get 3rd
                                  Standard                                parties
                                transition to         Flattening           under
                                 operations          the learning         control
                                                         curve




Monday, April 6, 2009
Who wants ALM after all?
Monday, April 6, 2009
Enterprises need maturity


    ๏ Business requirements have to cope with applications
      and architectures modernization

    ๏       Large process immaturity facing complex architectures
            and requirements changes

    ๏       Symptoms:
            slow deployments to operations, manual intervention
            on servers, project failures, no or manual testing




Monday, April 6, 2009
Enterprise application lifecycle




Monday, April 6, 2009
Enterprise IT myths

    ๏ Open Source is BAAAAD! (a bit retro’ nowadays)

    ๏ Almost everything can be solved with that new
      technology

    ๏ We must definitely get on board another consultant of
      that specific open source product!



    ๏ INSTEAD: A proper process definition (requirements
      and IT processes) over open source is the real enabler



Monday, April 6, 2009
Open source and communities

    ๏ Open source is not just a matter of code

    ๏ Adopting the Bazaar model is not an easy job for
      monolithic enterprises

    ๏ By overlooking inbound open source software flows we
      enable outbound contributions

    ๏ Fully mastering open source dynamics enable
      enterprises to reduce TCO and raise ROI for their
      contributions/investments




Monday, April 6, 2009
The system integrators’ quest


    ๏ Main objective: “Produce arbitrarily complex integration
      solutions to produce added value for the final customer”

    ๏ Business perspective: Lower TTM (Time to Market) for
      integration solutions to be operational

    ๏ Repetitive activities: tech-specific POCs, hype Open
      Source integrations, inter customers copy-paste reuse




Monday, April 6, 2009
Common objectives


    ๏ A reproducible and scalable way to manage application
      build, test, release, maintenance and integration policies

    ๏ Prototyping of projects to fasten TTM by easy learning
      curve

    ๏ Maximize controlled reuse of your code assets

    ๏ Make tough things simple!




Monday, April 6, 2009
ECM or
      “a fool with a tool is still a fool”
Monday, April 6, 2009
ECM is a tough world

    ๏ “46% of large organizations report have more than 25
      separate information repositories”
                        “AIIM – ECM Implementation Trends”

    ๏ Majority of ECM implementations fails due to poor
      processes and decision making

    ๏ If ECM is your focus, content centric processes must be
      reviewed first, IT architecture and development
      processes can follow

    ๏ ALM and ECM maturity levels are bound to each other
      when creating a common Enterprise content repository



Monday, April 6, 2009
A (not always) simple recipe to approach ECM

    1. Identify your content centric processes

    2. Identify main business drivers to ECM application and
       customization

    3. Define your enterprise content model with a meet in the
       middle approach

    4. Support growing information consolidation and delivery
       architectures with strong decision making

    5. Cope with complexity (requirements, people,
       technology) with Application Lifecycle Management



Monday, April 6, 2009
ALM and ECM tight coupling




Monday, April 6, 2009
But what target technologies are we talking
    about?




Monday, April 6, 2009
But what target technologies are we talking
    about?




                                        Target technologies




Monday, April 6, 2009
But what target technologies are we talking
    about?


      ๏ Alfresco 3.0 EE as “the ECM Framework”



                                                 Target technologies




Monday, April 6, 2009
But what target technologies are we talking
    about?


      ๏ Alfresco 3.0 EE as “the ECM Framework”



                                                 Target technologies




Monday, April 6, 2009
But what target technologies are we talking
    about?


      ๏ Alfresco 3.0 EE as “the ECM Framework”

      ๏ Jboss AS 4.2.0 EE starring “the AppServer”

                                                     Target technologies




Monday, April 6, 2009
But what target technologies are we talking
    about?


      ๏ Alfresco 3.0 EE as “the ECM Framework”

      ๏ Jboss AS 4.2.0 EE starring “the AppServer”

                                                     Target technologies




Monday, April 6, 2009
But what target technologies are we talking
    about?


      ๏ Alfresco 3.0 EE as “the ECM Framework”

      ๏ Jboss AS 4.2.0 EE starring “the AppServer”

      ๏ Mysql 4 as the “DBMS”                        Target technologies




Monday, April 6, 2009
But what target technologies are we talking
    about?


      ๏ Alfresco 3.0 EE as “the ECM Framework”

      ๏ Jboss AS 4.2.0 EE starring “the AppServer”

      ๏ Mysql 4 as the “DBMS”                        Target technologies




Monday, April 6, 2009
Managing Alfresco applications
    ๏ Alfresco is a fairly complex J2EE application (~70Mb)
      and multiple WARs

    ๏ Our daily job is configure, customize and integrate it
      with additional functionalities and J2EE artifacts

    ๏ It’s distributed as a WAR and it’s build with Ant, but the
      open source provided SDK is not really enabling

    ๏ It’s modules (plug-ins) are called AMPs (Alfresco Module
      Packages) which get overlaid on the WAR

    ๏ Early 2007: first Maven based build for Alfresco
      extensions for Banca Popolare di Milano

    ๏ Alfresco community artifacts hosted by Sourcesense
      Maven2 private repository
Monday, April 6, 2009
The long way to mature ALM
Monday, April 6, 2009
NXP Case Study

    ๏ 40k employees global semiconductors enterprise

    ๏ Alfresco ECM chosen as replacement for Lotus Notes
      as ECM building block in a fully new open source
      architecture

    ๏ Several parties involved in the huge migration and (up
      to) 800 customization projects

    ๏ Content and code reuse as main rationale but no
      standard design and processes for ECM and ALM




Monday, April 6, 2009
Some field examples

    ๏ No Software Configuration Management in place and
      manual changes in production environments

    ๏ Manual error prone testing procedures and stressful
      UAT phases

    ๏ No way to integrate multiple applications and content
      silo effect high risk

    ๏ Multiple development standards and unmanaged
      versioning policies




Monday, April 6, 2009
A fun place to work ;)




Monday, April 6, 2009
Maturity step 1:
    A bottom up approach
    ๏ First Alfresco application built with Maven on SVN in
      early 2008, featuring:

        ๏ Embedded run in Jetty (maven-jetty-plugin)

        ๏ Documentation website (maven-site-plugin) and
          manuals (doxia-maven-plugin)

        ๏ Clear versioning and dependency management (easy
          upgrade of Alfresco version)

        ๏ Local deploy to Jboss/remote to deploy to Tomcat

    ๏ To be able to reuse this achievement we exploited the
      power of Maven Archetypes


Monday, April 6, 2009
Maven Alfresco Archetypes
    http://repository.sourcesense.com/maven2-sites/maven-alfresco-archetypes


   ๏ Public Release 1.0.0: June 2008

      ๏ Maven Alfresco Extension Archetype: Support for Alfresco
        WAR custom build with platform specific profiles

      ๏ Maven Alfresco Amp Archetype: Definition of a custom
        Maven packaging type to manage Alfresco modules

   ๏ Main features:

      ๏ Reproducible environment aware build

      ๏ Documentation and release support

      ๏ Support for WAR depending on AMPs

      ๏ Restore/LDAP integration/Run embedded in Jetty

Monday, April 6, 2009
Archetypes benefits

    ๏ Defining a pattern-ish vocabulary to refer to application
      prototypes assumes an architectural value

    ๏ Enables complex inter-dependency networks (WARs
      can depend on AMPs)

    ๏ They can be improved and updated centrally with
      changing needs from the enterprise

    ๏ Enable the system integrator to produce a working
      demo solution in a matter of minutes




Monday, April 6, 2009
Demo



    ๏ Maven Alfresco Extension Archetype

    ๏ Maven Alfresco AMP archetype

    ๏ Site generation

    ๏ Q/A




Monday, April 6, 2009
Limitations of 1.0.0 version

    ๏ Verbose POMs

    ๏ No support for centralized dependency management
      and application lifecycle management

    ๏ No focus on integration testing (very difficult with
      Alfresco) and continuous integration

    ๏ Covering only the development part of the application
      lifecycle

    ๏ E.g not yet mature for a complex organization and high
      target as NXP



Monday, April 6, 2009
Maturity step 2:
    Design and implement your ALM framework
    ๏ Objectives:

        1. Maximize reuse of code and content

        2. Support multiple business processes in the same target
           application (Alfresco)

        3. Enable clear communication of IT and business

    ๏ Strategy:

        1. Share ALM values and outline processes

        2. Set up a reference application development platform

        3. Model your archetypes to match the target architecture

        4. Exploit a controlled lifecycle management as enabler

Monday, April 6, 2009
ALM Core Values

    ๏ Application Lifecycle should be reproducible and
      environment independent

    ๏ Identify and respect your release

    ๏ If it’s not tested (automatically) then it’s not working

    ๏ It it’s not documented then it doesn’t exist

    ๏ Controlled integration is possible and should not limit
      business improvement

    ๏ Centralize common configuration while leave projects
      enough flexibility for special cases


Monday, April 6, 2009
Support processes outline




                 Project initiation   Project development   Project release
Monday, April 6, 2009
But what support technologies are we talking
    about?



                                       Target technologies




Monday, April 6, 2009
But what support technologies are we talking
    about?



                                        Target technologies




                                      Support technologies

Monday, April 6, 2009
But what support technologies are we talking
    about?
    ๏ Apache Maven starring
      “the Application Lifecycle glue”




                                           Target technologies




                                         Support technologies

Monday, April 6, 2009
But what support technologies are we talking
    about?
    ๏ Apache Maven starring
      “the Application Lifecycle glue”




                                           Target technologies




                                         Support technologies

Monday, April 6, 2009
But what support technologies are we talking
    about?
    ๏ Apache Maven starring
      “the Application Lifecycle glue”
    ๏ Subversion playing the
      “Software Configuration Management”

                                             Target technologies




                                           Support technologies

Monday, April 6, 2009
But what support technologies are we talking
    about?
    ๏ Apache Maven starring
      “the Application Lifecycle glue”
    ๏ Subversion playing the
      “Software Configuration Management”

                                             Target technologies




                                           Support technologies

Monday, April 6, 2009
But what support technologies are we talking
    about?
    ๏ Apache Maven starring
      “the Application Lifecycle glue”
    ๏ Subversion playing the
      “Software Configuration Management”
    ๏ Atlassian Jira as the “Issue tracker and
      planning tool”                               Target technologies




                                                 Support technologies

Monday, April 6, 2009
But what support technologies are we talking
    about?
    ๏ Apache Maven starring
      “the Application Lifecycle glue”
    ๏ Subversion playing the
      “Software Configuration Management”
    ๏ Atlassian Jira as the “Issue tracker and
      planning tool”                               Target technologies




                                                 Support technologies

Monday, April 6, 2009
But what support technologies are we talking
    about?
    ๏ Apache Maven starring
      “the Application Lifecycle glue”
    ๏ Subversion playing the
      “Software Configuration Management”
    ๏ Atlassian Jira as the “Issue tracker and
      planning tool”                               Target technologies
    ๏ Sonatype Nexus starring
      “the Enterprise Repository”




                                                 Support technologies

Monday, April 6, 2009
But what support technologies are we talking
    about?
    ๏ Apache Maven starring
      “the Application Lifecycle glue”
    ๏ Subversion playing the
      “Software Configuration Management”
    ๏ Atlassian Jira as the “Issue tracker and
      planning tool”                               Target technologies
    ๏ Sonatype Nexus starring
      “the Enterprise Repository”




                                                 Support technologies

Monday, April 6, 2009
But what support technologies are we talking
    about?
    ๏ Apache Maven starring
      “the Application Lifecycle glue”
    ๏ Subversion playing the
      “Software Configuration Management”
    ๏ Atlassian Jira as the “Issue tracker and
      planning tool”                               Target technologies
    ๏ Sonatype Nexus starring
      “the Enterprise Repository”
    ๏ Hudson in the role of
      “the Continuous Integration server”



                                                 Support technologies

Monday, April 6, 2009
But what support technologies are we talking
    about?
    ๏ Apache Maven starring
      “the Application Lifecycle glue”
    ๏ Subversion playing the
      “Software Configuration Management”
    ๏ Atlassian Jira as the “Issue tracker and
      planning tool”                               Target technologies
    ๏ Sonatype Nexus starring
      “the Enterprise Repository”
    ๏ Hudson in the role of
      “the Continuous Integration server”



                                                 Support technologies

Monday, April 6, 2009
But what support technologies are we talking
    about?
    ๏ Apache Maven starring
      “the Application Lifecycle glue”
    ๏ Subversion playing the
      “Software Configuration Management”
    ๏ Atlassian Jira as the “Issue tracker and
      planning tool”                               Target technologies
    ๏ Sonatype Nexus starring
      “the Enterprise Repository”
    ๏ Hudson in the role of
      “the Continuous Integration server”
    ๏ Special guest, ThoughtWorks Selenium
      as the “functional testing framework”

                                                 Support technologies

Monday, April 6, 2009
But what support technologies are we talking
    about?
    ๏ Apache Maven starring
      “the Application Lifecycle glue”
    ๏ Subversion playing the
      “Software Configuration Management”
    ๏ Atlassian Jira as the “Issue tracker and
      planning tool”                               Target technologies
    ๏ Sonatype Nexus starring
      “the Enterprise Repository”
    ๏ Hudson in the role of
      “the Continuous Integration server”
    ๏ Special guest, ThoughtWorks Selenium
      as the “functional testing framework”

                                                 Support technologies

Monday, April 6, 2009
Apache Maven as glue for enterprise open source
    http://maven.apache.org/



    ๏ Designed for scalability, reduces TTM on both simple
      POCs and complex architectures

    ๏ It allows extending the notion of application lifecycle to
      maintenance and back

    ๏ Despite not perfect, is the standard de facto in Open
      Source J2EE projects and has a strong community

    ๏ Integrates with almost any IDE now

    ๏ Because we can contribute and improve it !



Monday, April 6, 2009
Apache Maven as glue for enterprise open source
    http://maven.apache.org/



    ๏ Designed for scalability, reduces TTM on both simple
      POCs and complex architectures

    ๏ It allows extending the notion of application lifecycle to
      maintenance and back

    ๏ Despite not perfect, is the standard de facto in Open
      Source J2EE projects and has a strong community

    ๏ Integrates with almost any IDE now

    ๏ Because we can contribute and improve it !



Monday, April 6, 2009
Software configuration management
    http://subversion.tigris.org/


        ๏     Best practices:

            1. Standard trunk/branches/tags per project structure

            2. Maintenance branches

            3. Tagging per release

            4. Build number based on SVN revision

    ๏      Target:
           allow separate business projects (parties) to run
           independently on separate SVN roots, whilst allowing
           the final binary product to be integrated in the main
           Enterprise Alfresco instance


Monday, April 6, 2009
Target Alfresco Architecture




Monday, April 6, 2009
Task and requirements management

    ๏ Multiple projects often lose track of relation between
      requirements and tasks

    ๏ Jira as a planning tool (or the importance of “Fix
      Version”)

    ๏ Maven integration with maven-changes-plugin
      allows automation of release notes

    ๏ Remote API allow growing integration degrees

    ๏ Tip: Map 1-1 your development projects to Jira projects



Monday, April 6, 2009
Enterprise Repository Manager
    http://nexus.sonatype.org/


    ๏ Nexus enforces (together with Maven) the notion of
      Artifact as uniquely identifiable product of a specific
      development process (GAV search)

    ๏ Unique mirror/proxy for all produced enterprise artifacts
      and single point of contact with external world

    ๏ Boosts reuse as generates visibility on project artifacts

    ๏ Can scale to the enterprise with Professional Edition
      features (LDAP integration, Procurement, Enterprise
      class documentation)

    ๏ Separate repositories for enterprise Releases and
      Snapshots to ensure additional stability


Monday, April 6, 2009
Continuous Integration Server
    https://hudson.dev.java.net/

    ๏ Advanced Build server tightly integrated with Maven

    ๏ Fine tune your build schedule
        ๏     Periodically on early development stages

        ๏     On commit close to release and in operations

    ๏ Build server deploys remotely to Test Jboss and run
      remote Selenium integration tests, whose reports are
      published on the site

    ๏ Alternatively, simple modules are tested directly in Jetty
      embedded in Hudson Maven build

    ๏ Tip: Define a CI specific profile in your maven build (-Pci) to
      override ports/locations and avoid clashes

Monday, April 6, 2009
The hot issue with testing Alfresco
    http://seleniumhq.org/
    ๏ Alfresco does not provide a POM. So no transitive
      dependencies, no easy test classpath

    ๏ You don’t want to test Alfresco, only your custom
      modules

    ๏ Such a complex architecture needs a bullet proof
      testing harness to survive

    ๏ Iterative solution:
        1. Provide functional test first: Selenium bridges the gap with end
           users, empowered to produce automated UAT tests

        2. Enable unit/integration testing: Contributed improvement to
           surefire (http://jira.codehaus.org/browse/SUREFIRE-545)

        3. Run both in CI: Remote deployment on Jboss as enabler (http://
           jira.codehaus.org/browse/CARGO-416) and Xvfb

Monday, April 6, 2009
The hot issue with testing Alfresco
    http://seleniumhq.org/
    ๏ Alfresco does not provide a POM. So no transitive
      dependencies, no easy test classpath

    ๏ You don’t want to test Alfresco, only your custom
      modules

    ๏ Such a complex architecture needs a bullet proof
      testing harness to survive

    ๏ Iterative solution:
        1. Provide functional test first: Selenium bridges the gap with end
           users, empowered to produce automated UAT tests

        2. Enable unit/integration testing: Contributed improvement to
           surefire (http://jira.codehaus.org/browse/SUREFIRE-545)

        3. Run both in CI: Remote deployment on Jboss as enabler (http://
           jira.codehaus.org/browse/CARGO-416) and Xvfb

Monday, April 6, 2009
Project development lifecycle




Monday, April 6, 2009
Top Ten ALM implementation best practices

    1.     Define an Enterprise SuperPOM to centralize dependencies and environments
    2.     Introduce the Role of the Librarian
    3.     Version your Maven projects accordingly to your Jira project versions, using snapshots and release candidates
    4.     Your tests should be self contained and runnable in CI and the must produce intelligible reports
    5.     Define your Enterprise Repository as single source of truth for QA and Prod installations
    6.     Document your project inline and use the Jira/Changes Report to automate release notes
    7. maven-release-plugin is as cool as complex so handle it with care. Once that it works though, it way
       better than any manual release process
    8. Use Selenium recorder to have your end users record UAT sessions and use the test to ensure no regressions
       on new releases
    9. When dealing with open source software, prefer contribution over complaint
    10. Create a maintenance branch at every major/minor release




Monday, April 6, 2009
ALM in Action
Monday, April 6, 2009
Too much talking...

    ๏ Let’s see it action!

    ๏ Maven Eclipse Integration (Dependency Graph)

    ๏ Maven site (changes:jira-report and
      surefire-report:report-only)

    ๏ Technology specific and environmental profiles, typical
      cmd line: mvn iQ/nstall -Pcas,ldap,test1

    ๏ Selenium Local and CI

    ๏       Q/A



Monday, April 6, 2009
In the pipeline

    ๏ ALM in place in 2009Q1 and since then already a fully
      fledged Alfresco release with 3 integrated business
      applications (and growing)

    ๏ High degrees of integration:

           ๏ SVN/JIRA integration/enforcement
           ๏ Development workflows and push notifications
           ๏ Nexus professional and procurement
    ๏ Separation of concerns and abstraction of best
      practices in a ALM-only superPOM



Monday, April 6, 2009
Calm Application Lifecycle
                      Management
Monday, April 6, 2009
How can you abstract best practices?

    ๏ Maven archetypes and inheritance are powerful to
      delegate responsibility-specific POMs

    ๏ Still POMs are verbose and error prone, we want to
      expose as less as possible to junior developers

    ๏ Best practices are not technology specific and can be
      reused independently

    ๏ ALM is about processes, we need to aggregate Maven
      plugin configurations in more structured flows




Monday, April 6, 2009
Maturity step 3:
    CALM
    ๏ The idea:
      “Create an abstraction layer to provide standard flows
      and reduce configuration needed per project”

    ๏ The objective:
      Reach a complete lifecycle abstraction which is

        ๏     Cross-customer
        ๏     Cross-technology
        ๏     Extensible and flexible

    ๏ The solution:
      A technology independent superPOM gathering all
      common plugin configurations in use-case oriented
      Maven profiles


Monday, April 6, 2009
CALM - State of the Art

    ๏ My first project with a recursive acronym! Yeah!

    ๏ References:

        ๏ Source Code/ Community:
          http://code.google.com/p/maven-calm

        ๏ First commit: December 2007, 2 active committers,
          growing in interest

    ๏ `Base for the Maven Alfresco Archetypes 3.0 release

    ๏ Still under heavy work in progress but getting there ;)



Monday, April 6, 2009
How to use it


    ๏ CALM should be the SuperPOM of your enterprise
      POM or of your single project POM

    ๏ Create your enterprise POM and inherit all standard
      best practices from CALM superPOM

    ๏ Your project would be invoked always with a standard
      command line:
                                            Text
                        mvn
                        -Pflow1[,flow2...flowN
                        [,feature1...featureN]
                        [env=local]


Monday, April 6, 2009
CALM Profiles decomposition
   ๏ Environmental profiles

       ๏ Build time properties from POM and profiles.xml
       ๏ Runtime properties by setting the -Denv variable

   ๏ Flow/UseCase profiles

       ๏ Actually instruct maven on which plugins and sequence of
         them should be executed and which is the default phase
       ๏ Currently supported:
             integration-test, selenium-test, deploy, run

   ๏ Feature profiles

       ๏ Add features to the application under packaging, technology
         specific or general purpose
       ๏ Currently supported for Alfresco:
             cas, ldap, liferay, mysql

Monday, April 6, 2009
CALM - Perspectives
    ๏ CALM Target audience:
           1. Medium/Large Enterprise targeting to standardize IT
              processes and procedure, independently from the landscape
              of technologies in use

           2. (Open Source) System Integrator which, cross-customer and
              cross-technology, aims to provide a standard service in terms
              of quality of deliverables, reducing TTM and TCO

           3. Community enthusiast willing to start off an open source
              project but is scared by Maven learning curve




                         WE MAKE IT EASY FOR YOU!


Monday, April 6, 2009
Wrap it all up
    ๏ Enterprise business has to fight to start embracing the
      bazaar model to cope with IT modernizations

    ๏ Give priority to processes rather than technologies...

    ๏ ...but don’t underestimate how automation can improve
      your release schedule and your business agility

    ๏ You don’t need hype extremely expensive software or
      consultants to manage your IT assets,
      it’s a matter of values!

    ๏ Maven is tough but you can work it to make it simple for
      the vast majority of users (80% - 20% rules)


Monday, April 6, 2009
Thank you!




Monday, April 6, 2009

Contenu connexe

En vedette

Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...Alfresco Software
 
Alpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache MavenAlpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache MavenArnaud Héritier
 
Captain Agile and the Providers of Value
Captain Agile and the Providers of ValueCaptain Agile and the Providers of Value
Captain Agile and the Providers of ValueSchalk Cronjé
 
Building Android apps with Maven
Building Android apps with MavenBuilding Android apps with Maven
Building Android apps with MavenFabrizio Giudici
 
20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache Maven20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache MavenArnaud Héritier
 
Alfresco Day BeNelux: The success of Alfresco
Alfresco Day BeNelux: The success of AlfrescoAlfresco Day BeNelux: The success of Alfresco
Alfresco Day BeNelux: The success of AlfrescoAlfresco Software
 
Veni, Vide, Built: Android Gradle Plugin
Veni, Vide, Built: Android Gradle PluginVeni, Vide, Built: Android Gradle Plugin
Veni, Vide, Built: Android Gradle PluginLeonardo YongUk Kim
 
Gradle enabled android project
Gradle enabled android projectGradle enabled android project
Gradle enabled android projectShaka Huang
 
不只自動化而且更敏捷的Android開發工具 gradle mopcon
不只自動化而且更敏捷的Android開發工具 gradle mopcon不只自動化而且更敏捷的Android開發工具 gradle mopcon
不只自動化而且更敏捷的Android開發工具 gradle mopconsam chiu
 
Lorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - MavenLorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - MavenArnaud Héritier
 
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Carlos Sanchez
 
Gradle build tool that rocks with DSL JavaOne India 4th May 2012
Gradle build tool that rocks with DSL JavaOne India 4th May 2012Gradle build tool that rocks with DSL JavaOne India 4th May 2012
Gradle build tool that rocks with DSL JavaOne India 4th May 2012Rajmahendra Hegde
 
DAMA International Symposium San Diego CA 03-17-2008
DAMA International Symposium San Diego CA 03-17-2008DAMA International Symposium San Diego CA 03-17-2008
DAMA International Symposium San Diego CA 03-17-2008Robert J. Abate, CBIP, CDMP
 
FAIR Data and Model Management for Systems Biology (and SOPs too!)
FAIR Data and Model Management for Systems Biology(and SOPs too!)FAIR Data and Model Management for Systems Biology(and SOPs too!)
FAIR Data and Model Management for Systems Biology (and SOPs too!)Carole Goble
 
The Chief Data Officer's Agenda: What a CDO Needs to Know about Data Quality
The Chief Data Officer's Agenda: What a CDO Needs to Know about Data QualityThe Chief Data Officer's Agenda: What a CDO Needs to Know about Data Quality
The Chief Data Officer's Agenda: What a CDO Needs to Know about Data QualityDATAVERSITY
 
Gradle - the Enterprise Automation Tool
Gradle  - the Enterprise Automation ToolGradle  - the Enterprise Automation Tool
Gradle - the Enterprise Automation ToolIzzet Mustafaiev
 
Gradle talk, Javarsovia 2010
Gradle talk, Javarsovia 2010Gradle talk, Javarsovia 2010
Gradle talk, Javarsovia 2010Tomek Kaczanowski
 

En vedette (20)

Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
 
Alpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache MavenAlpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache Maven
 
Captain Agile and the Providers of Value
Captain Agile and the Providers of ValueCaptain Agile and the Providers of Value
Captain Agile and the Providers of Value
 
Building Android apps with Maven
Building Android apps with MavenBuilding Android apps with Maven
Building Android apps with Maven
 
20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache Maven20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache Maven
 
Alfresco Day BeNelux: The success of Alfresco
Alfresco Day BeNelux: The success of AlfrescoAlfresco Day BeNelux: The success of Alfresco
Alfresco Day BeNelux: The success of Alfresco
 
Maven 3.0 at Øredev
Maven 3.0 at ØredevMaven 3.0 at Øredev
Maven 3.0 at Øredev
 
Veni, Vide, Built: Android Gradle Plugin
Veni, Vide, Built: Android Gradle PluginVeni, Vide, Built: Android Gradle Plugin
Veni, Vide, Built: Android Gradle Plugin
 
Gradle enabled android project
Gradle enabled android projectGradle enabled android project
Gradle enabled android project
 
不只自動化而且更敏捷的Android開發工具 gradle mopcon
不只自動化而且更敏捷的Android開發工具 gradle mopcon不只自動化而且更敏捷的Android開發工具 gradle mopcon
不只自動化而且更敏捷的Android開發工具 gradle mopcon
 
Gradle
GradleGradle
Gradle
 
Gradle in 45min
Gradle in 45minGradle in 45min
Gradle in 45min
 
Lorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - MavenLorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - Maven
 
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
 
Gradle build tool that rocks with DSL JavaOne India 4th May 2012
Gradle build tool that rocks with DSL JavaOne India 4th May 2012Gradle build tool that rocks with DSL JavaOne India 4th May 2012
Gradle build tool that rocks with DSL JavaOne India 4th May 2012
 
DAMA International Symposium San Diego CA 03-17-2008
DAMA International Symposium San Diego CA 03-17-2008DAMA International Symposium San Diego CA 03-17-2008
DAMA International Symposium San Diego CA 03-17-2008
 
FAIR Data and Model Management for Systems Biology (and SOPs too!)
FAIR Data and Model Management for Systems Biology(and SOPs too!)FAIR Data and Model Management for Systems Biology(and SOPs too!)
FAIR Data and Model Management for Systems Biology (and SOPs too!)
 
The Chief Data Officer's Agenda: What a CDO Needs to Know about Data Quality
The Chief Data Officer's Agenda: What a CDO Needs to Know about Data QualityThe Chief Data Officer's Agenda: What a CDO Needs to Know about Data Quality
The Chief Data Officer's Agenda: What a CDO Needs to Know about Data Quality
 
Gradle - the Enterprise Automation Tool
Gradle  - the Enterprise Automation ToolGradle  - the Enterprise Automation Tool
Gradle - the Enterprise Automation Tool
 
Gradle talk, Javarsovia 2010
Gradle talk, Javarsovia 2010Gradle talk, Javarsovia 2010
Gradle talk, Javarsovia 2010
 

Similaire à Maven Application Lifecycle Management for Alfresco

Methods Over Madness 2003 Ver.
Methods Over Madness 2003 Ver.Methods Over Madness 2003 Ver.
Methods Over Madness 2003 Ver.Tom Weinberger
 
Ema kognitio comparative analysis webinar slides
Ema kognitio comparative analysis webinar slidesEma kognitio comparative analysis webinar slides
Ema kognitio comparative analysis webinar slidesKognitio
 
EMC World 2016 - cnaITL.04 Open Source has changed how you run Infrastructure
EMC World 2016 - cnaITL.04 Open Source has changed how you run InfrastructureEMC World 2016 - cnaITL.04 Open Source has changed how you run Infrastructure
EMC World 2016 - cnaITL.04 Open Source has changed how you run Infrastructure{code}
 
Unlocking IT Value Chain with DevOps
Unlocking IT Value Chain with DevOpsUnlocking IT Value Chain with DevOps
Unlocking IT Value Chain with DevOpsBart Driscoll
 
server to cloud: converting a legacy platform to an open source paas
server to cloud:  converting a legacy platform to an open source paasserver to cloud:  converting a legacy platform to an open source paas
server to cloud: converting a legacy platform to an open source paasTodd Fritz
 
Build And Test Automation - Shortening the Feedback Loop
Build And Test Automation - Shortening the Feedback LoopBuild And Test Automation - Shortening the Feedback Loop
Build And Test Automation - Shortening the Feedback LoopRally Software
 
Enterprise content management meets open source linux con august 2010
Enterprise content management meets open source   linux con august 2010Enterprise content management meets open source   linux con august 2010
Enterprise content management meets open source linux con august 2010Nuxeo
 
Enterprise content management meets open source linux con august 2010
Enterprise content management meets open source   linux con august 2010Enterprise content management meets open source   linux con august 2010
Enterprise content management meets open source linux con august 2010Nuxeo
 
More than Technology - The Culture of DevOps
More than Technology - The Culture of DevOpsMore than Technology - The Culture of DevOps
More than Technology - The Culture of DevOpsBob Sokol
 
Cloud era SAP Application Development and 3 mode
Cloud era SAP Application Development and 3 modeCloud era SAP Application Development and 3 mode
Cloud era SAP Application Development and 3 modeBilot
 
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...20210428 - Sustainable Engineering practices & API Communities: Adoption Best...
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...Angel Alberici
 
DevOps in Practice: When does "Practice" Become "Doing"?
DevOps in Practice: When does "Practice" Become "Doing"?DevOps in Practice: When does "Practice" Become "Doing"?
DevOps in Practice: When does "Practice" Become "Doing"?Michael Elder
 
Enabling Enterprise DevOps at Scale
Enabling Enterprise DevOps at ScaleEnabling Enterprise DevOps at Scale
Enabling Enterprise DevOps at ScaleBob Sokol
 
Check out aiim training!
Check out aiim training!Check out aiim training!
Check out aiim training!Vander Loto
 
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...ghodgkinson
 
Why cloud?
Why cloud?Why cloud?
Why cloud?Lilly V.
 
Shifting IT focus from maintenance to innovation
Shifting IT focus from maintenance to innovationShifting IT focus from maintenance to innovation
Shifting IT focus from maintenance to innovationIBM India Smarter Computing
 

Similaire à Maven Application Lifecycle Management for Alfresco (20)

Methods Over Madness 2003 Ver.
Methods Over Madness 2003 Ver.Methods Over Madness 2003 Ver.
Methods Over Madness 2003 Ver.
 
Ema kognitio comparative analysis webinar slides
Ema kognitio comparative analysis webinar slidesEma kognitio comparative analysis webinar slides
Ema kognitio comparative analysis webinar slides
 
EMC World 2016 - cnaITL.04 Open Source has changed how you run Infrastructure
EMC World 2016 - cnaITL.04 Open Source has changed how you run InfrastructureEMC World 2016 - cnaITL.04 Open Source has changed how you run Infrastructure
EMC World 2016 - cnaITL.04 Open Source has changed how you run Infrastructure
 
Unlocking IT Value Chain with DevOps
Unlocking IT Value Chain with DevOpsUnlocking IT Value Chain with DevOps
Unlocking IT Value Chain with DevOps
 
server to cloud: converting a legacy platform to an open source paas
server to cloud:  converting a legacy platform to an open source paasserver to cloud:  converting a legacy platform to an open source paas
server to cloud: converting a legacy platform to an open source paas
 
Simplify 3X
Simplify 3XSimplify 3X
Simplify 3X
 
Build And Test Automation - Shortening the Feedback Loop
Build And Test Automation - Shortening the Feedback LoopBuild And Test Automation - Shortening the Feedback Loop
Build And Test Automation - Shortening the Feedback Loop
 
Enterprise content management meets open source linux con august 2010
Enterprise content management meets open source   linux con august 2010Enterprise content management meets open source   linux con august 2010
Enterprise content management meets open source linux con august 2010
 
Enterprise content management meets open source linux con august 2010
Enterprise content management meets open source   linux con august 2010Enterprise content management meets open source   linux con august 2010
Enterprise content management meets open source linux con august 2010
 
More than Technology - The Culture of DevOps
More than Technology - The Culture of DevOpsMore than Technology - The Culture of DevOps
More than Technology - The Culture of DevOps
 
Cloud era SAP Application Development and 3 mode
Cloud era SAP Application Development and 3 modeCloud era SAP Application Development and 3 mode
Cloud era SAP Application Development and 3 mode
 
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...20210428 - Sustainable Engineering practices & API Communities: Adoption Best...
20210428 - Sustainable Engineering practices & API Communities: Adoption Best...
 
DevOps in Practice: When does "Practice" Become "Doing"?
DevOps in Practice: When does "Practice" Become "Doing"?DevOps in Practice: When does "Practice" Become "Doing"?
DevOps in Practice: When does "Practice" Become "Doing"?
 
Enabling Enterprise DevOps at Scale
Enabling Enterprise DevOps at ScaleEnabling Enterprise DevOps at Scale
Enabling Enterprise DevOps at Scale
 
Check out aiim training!
Check out aiim training!Check out aiim training!
Check out aiim training!
 
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
 
Consulting
ConsultingConsulting
Consulting
 
Why cloud?
Why cloud?Why cloud?
Why cloud?
 
Alves Mea Pch1 Free
Alves Mea Pch1 FreeAlves Mea Pch1 Free
Alves Mea Pch1 Free
 
Shifting IT focus from maintenance to innovation
Shifting IT focus from maintenance to innovationShifting IT focus from maintenance to innovation
Shifting IT focus from maintenance to innovation
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Dernier (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

Maven Application Lifecycle Management for Alfresco

  • 1. Get your Enterprise Open Source ready Application Lifecycle Management best practices and success stories from the ECM world Monday, April 6, 2009
  • 2. A bit of us ๏ Eng. Gabriele Columbro - ECM Product Strategy Engineer for Sourcesense (http://www.sourcesense.com) ๏ Open source integration and large content centric applications ๏ ICTU, NXP, GovUnited, Ministry of Finance Monday, April 6, 2009
  • 3. A bit of summary 1. Who needs ALM after all? 2. ECM: or A fool with a tool is still a fool 3. The Long Way to get open source under control 4. NXP demo 5. Calm Framework and Q/A Monday, April 6, 2009
  • 4. Before we start... ๏ What’s Application Lifecycle Management? ๏ Wikipedia says: “Application lifecycle management (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” ๏ But the focus should be on processes rather than technologies Monday, April 6, 2009
  • 5. Before we start... ๏ What’s Enterprise Content Management? ๏ Wikipedia says: “Enterprise content management (ECM) is the strategies, methods and tools used to capture, manage, store, preserve, and deliver content and documents related to organizational processes. ECM tools and strategies allow the management of an organization's unstructured information, wherever that information exists” ๏ Open Source technologies are growing fast in the J2EE world as opposed to proprietary solutions Monday, April 6, 2009
  • 6. ReALM of discussion Qualiy Testing Assurance Automation Fast Prototyping Release management Application Lifecycle Reduced Time Management Flattening the To Market learning curve Get 3rd Standard parties transition to Flattening under operations the learning control curve Monday, April 6, 2009
  • 7. Who wants ALM after all? Monday, April 6, 2009
  • 8. Enterprises need maturity ๏ Business requirements have to cope with applications and architectures modernization ๏ Large process immaturity facing complex architectures and requirements changes ๏ Symptoms: slow deployments to operations, manual intervention on servers, project failures, no or manual testing Monday, April 6, 2009
  • 10. Enterprise IT myths ๏ Open Source is BAAAAD! (a bit retro’ nowadays) ๏ Almost everything can be solved with that new technology ๏ We must definitely get on board another consultant of that specific open source product! ๏ INSTEAD: A proper process definition (requirements and IT processes) over open source is the real enabler Monday, April 6, 2009
  • 11. Open source and communities ๏ Open source is not just a matter of code ๏ Adopting the Bazaar model is not an easy job for monolithic enterprises ๏ By overlooking inbound open source software flows we enable outbound contributions ๏ Fully mastering open source dynamics enable enterprises to reduce TCO and raise ROI for their contributions/investments Monday, April 6, 2009
  • 12. The system integrators’ quest ๏ Main objective: “Produce arbitrarily complex integration solutions to produce added value for the final customer” ๏ Business perspective: Lower TTM (Time to Market) for integration solutions to be operational ๏ Repetitive activities: tech-specific POCs, hype Open Source integrations, inter customers copy-paste reuse Monday, April 6, 2009
  • 13. Common objectives ๏ A reproducible and scalable way to manage application build, test, release, maintenance and integration policies ๏ Prototyping of projects to fasten TTM by easy learning curve ๏ Maximize controlled reuse of your code assets ๏ Make tough things simple! Monday, April 6, 2009
  • 14. ECM or “a fool with a tool is still a fool” Monday, April 6, 2009
  • 15. ECM is a tough world ๏ “46% of large organizations report have more than 25 separate information repositories” “AIIM – ECM Implementation Trends” ๏ Majority of ECM implementations fails due to poor processes and decision making ๏ If ECM is your focus, content centric processes must be reviewed first, IT architecture and development processes can follow ๏ ALM and ECM maturity levels are bound to each other when creating a common Enterprise content repository Monday, April 6, 2009
  • 16. A (not always) simple recipe to approach ECM 1. Identify your content centric processes 2. Identify main business drivers to ECM application and customization 3. Define your enterprise content model with a meet in the middle approach 4. Support growing information consolidation and delivery architectures with strong decision making 5. Cope with complexity (requirements, people, technology) with Application Lifecycle Management Monday, April 6, 2009
  • 17. ALM and ECM tight coupling Monday, April 6, 2009
  • 18. But what target technologies are we talking about? Monday, April 6, 2009
  • 19. But what target technologies are we talking about? Target technologies Monday, April 6, 2009
  • 20. But what target technologies are we talking about? ๏ Alfresco 3.0 EE as “the ECM Framework” Target technologies Monday, April 6, 2009
  • 21. But what target technologies are we talking about? ๏ Alfresco 3.0 EE as “the ECM Framework” Target technologies Monday, April 6, 2009
  • 22. But what target technologies are we talking about? ๏ Alfresco 3.0 EE as “the ECM Framework” ๏ Jboss AS 4.2.0 EE starring “the AppServer” Target technologies Monday, April 6, 2009
  • 23. But what target technologies are we talking about? ๏ Alfresco 3.0 EE as “the ECM Framework” ๏ Jboss AS 4.2.0 EE starring “the AppServer” Target technologies Monday, April 6, 2009
  • 24. But what target technologies are we talking about? ๏ Alfresco 3.0 EE as “the ECM Framework” ๏ Jboss AS 4.2.0 EE starring “the AppServer” ๏ Mysql 4 as the “DBMS” Target technologies Monday, April 6, 2009
  • 25. But what target technologies are we talking about? ๏ Alfresco 3.0 EE as “the ECM Framework” ๏ Jboss AS 4.2.0 EE starring “the AppServer” ๏ Mysql 4 as the “DBMS” Target technologies Monday, April 6, 2009
  • 26. Managing Alfresco applications ๏ Alfresco is a fairly complex J2EE application (~70Mb) and multiple WARs ๏ Our daily job is configure, customize and integrate it with additional functionalities and J2EE artifacts ๏ It’s distributed as a WAR and it’s build with Ant, but the open source provided SDK is not really enabling ๏ It’s modules (plug-ins) are called AMPs (Alfresco Module Packages) which get overlaid on the WAR ๏ Early 2007: first Maven based build for Alfresco extensions for Banca Popolare di Milano ๏ Alfresco community artifacts hosted by Sourcesense Maven2 private repository Monday, April 6, 2009
  • 27. The long way to mature ALM Monday, April 6, 2009
  • 28. NXP Case Study ๏ 40k employees global semiconductors enterprise ๏ Alfresco ECM chosen as replacement for Lotus Notes as ECM building block in a fully new open source architecture ๏ Several parties involved in the huge migration and (up to) 800 customization projects ๏ Content and code reuse as main rationale but no standard design and processes for ECM and ALM Monday, April 6, 2009
  • 29. Some field examples ๏ No Software Configuration Management in place and manual changes in production environments ๏ Manual error prone testing procedures and stressful UAT phases ๏ No way to integrate multiple applications and content silo effect high risk ๏ Multiple development standards and unmanaged versioning policies Monday, April 6, 2009
  • 30. A fun place to work ;) Monday, April 6, 2009
  • 31. Maturity step 1: A bottom up approach ๏ First Alfresco application built with Maven on SVN in early 2008, featuring: ๏ Embedded run in Jetty (maven-jetty-plugin) ๏ Documentation website (maven-site-plugin) and manuals (doxia-maven-plugin) ๏ Clear versioning and dependency management (easy upgrade of Alfresco version) ๏ Local deploy to Jboss/remote to deploy to Tomcat ๏ To be able to reuse this achievement we exploited the power of Maven Archetypes Monday, April 6, 2009
  • 32. Maven Alfresco Archetypes http://repository.sourcesense.com/maven2-sites/maven-alfresco-archetypes ๏ Public Release 1.0.0: June 2008 ๏ Maven Alfresco Extension Archetype: Support for Alfresco WAR custom build with platform specific profiles ๏ Maven Alfresco Amp Archetype: Definition of a custom Maven packaging type to manage Alfresco modules ๏ Main features: ๏ Reproducible environment aware build ๏ Documentation and release support ๏ Support for WAR depending on AMPs ๏ Restore/LDAP integration/Run embedded in Jetty Monday, April 6, 2009
  • 33. Archetypes benefits ๏ Defining a pattern-ish vocabulary to refer to application prototypes assumes an architectural value ๏ Enables complex inter-dependency networks (WARs can depend on AMPs) ๏ They can be improved and updated centrally with changing needs from the enterprise ๏ Enable the system integrator to produce a working demo solution in a matter of minutes Monday, April 6, 2009
  • 34. Demo ๏ Maven Alfresco Extension Archetype ๏ Maven Alfresco AMP archetype ๏ Site generation ๏ Q/A Monday, April 6, 2009
  • 35. Limitations of 1.0.0 version ๏ Verbose POMs ๏ No support for centralized dependency management and application lifecycle management ๏ No focus on integration testing (very difficult with Alfresco) and continuous integration ๏ Covering only the development part of the application lifecycle ๏ E.g not yet mature for a complex organization and high target as NXP Monday, April 6, 2009
  • 36. Maturity step 2: Design and implement your ALM framework ๏ Objectives: 1. Maximize reuse of code and content 2. Support multiple business processes in the same target application (Alfresco) 3. Enable clear communication of IT and business ๏ Strategy: 1. Share ALM values and outline processes 2. Set up a reference application development platform 3. Model your archetypes to match the target architecture 4. Exploit a controlled lifecycle management as enabler Monday, April 6, 2009
  • 37. ALM Core Values ๏ Application Lifecycle should be reproducible and environment independent ๏ Identify and respect your release ๏ If it’s not tested (automatically) then it’s not working ๏ It it’s not documented then it doesn’t exist ๏ Controlled integration is possible and should not limit business improvement ๏ Centralize common configuration while leave projects enough flexibility for special cases Monday, April 6, 2009
  • 38. Support processes outline Project initiation Project development Project release Monday, April 6, 2009
  • 39. But what support technologies are we talking about? Target technologies Monday, April 6, 2009
  • 40. But what support technologies are we talking about? Target technologies Support technologies Monday, April 6, 2009
  • 41. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” Target technologies Support technologies Monday, April 6, 2009
  • 42. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” Target technologies Support technologies Monday, April 6, 2009
  • 43. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” Target technologies Support technologies Monday, April 6, 2009
  • 44. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” Target technologies Support technologies Monday, April 6, 2009
  • 45. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” ๏ Atlassian Jira as the “Issue tracker and planning tool” Target technologies Support technologies Monday, April 6, 2009
  • 46. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” ๏ Atlassian Jira as the “Issue tracker and planning tool” Target technologies Support technologies Monday, April 6, 2009
  • 47. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” ๏ Atlassian Jira as the “Issue tracker and planning tool” Target technologies ๏ Sonatype Nexus starring “the Enterprise Repository” Support technologies Monday, April 6, 2009
  • 48. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” ๏ Atlassian Jira as the “Issue tracker and planning tool” Target technologies ๏ Sonatype Nexus starring “the Enterprise Repository” Support technologies Monday, April 6, 2009
  • 49. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” ๏ Atlassian Jira as the “Issue tracker and planning tool” Target technologies ๏ Sonatype Nexus starring “the Enterprise Repository” ๏ Hudson in the role of “the Continuous Integration server” Support technologies Monday, April 6, 2009
  • 50. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” ๏ Atlassian Jira as the “Issue tracker and planning tool” Target technologies ๏ Sonatype Nexus starring “the Enterprise Repository” ๏ Hudson in the role of “the Continuous Integration server” Support technologies Monday, April 6, 2009
  • 51. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” ๏ Atlassian Jira as the “Issue tracker and planning tool” Target technologies ๏ Sonatype Nexus starring “the Enterprise Repository” ๏ Hudson in the role of “the Continuous Integration server” ๏ Special guest, ThoughtWorks Selenium as the “functional testing framework” Support technologies Monday, April 6, 2009
  • 52. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” ๏ Atlassian Jira as the “Issue tracker and planning tool” Target technologies ๏ Sonatype Nexus starring “the Enterprise Repository” ๏ Hudson in the role of “the Continuous Integration server” ๏ Special guest, ThoughtWorks Selenium as the “functional testing framework” Support technologies Monday, April 6, 2009
  • 53. Apache Maven as glue for enterprise open source http://maven.apache.org/ ๏ Designed for scalability, reduces TTM on both simple POCs and complex architectures ๏ It allows extending the notion of application lifecycle to maintenance and back ๏ Despite not perfect, is the standard de facto in Open Source J2EE projects and has a strong community ๏ Integrates with almost any IDE now ๏ Because we can contribute and improve it ! Monday, April 6, 2009
  • 54. Apache Maven as glue for enterprise open source http://maven.apache.org/ ๏ Designed for scalability, reduces TTM on both simple POCs and complex architectures ๏ It allows extending the notion of application lifecycle to maintenance and back ๏ Despite not perfect, is the standard de facto in Open Source J2EE projects and has a strong community ๏ Integrates with almost any IDE now ๏ Because we can contribute and improve it ! Monday, April 6, 2009
  • 55. Software configuration management http://subversion.tigris.org/ ๏ Best practices: 1. Standard trunk/branches/tags per project structure 2. Maintenance branches 3. Tagging per release 4. Build number based on SVN revision ๏ Target: allow separate business projects (parties) to run independently on separate SVN roots, whilst allowing the final binary product to be integrated in the main Enterprise Alfresco instance Monday, April 6, 2009
  • 57. Task and requirements management ๏ Multiple projects often lose track of relation between requirements and tasks ๏ Jira as a planning tool (or the importance of “Fix Version”) ๏ Maven integration with maven-changes-plugin allows automation of release notes ๏ Remote API allow growing integration degrees ๏ Tip: Map 1-1 your development projects to Jira projects Monday, April 6, 2009
  • 58. Enterprise Repository Manager http://nexus.sonatype.org/ ๏ Nexus enforces (together with Maven) the notion of Artifact as uniquely identifiable product of a specific development process (GAV search) ๏ Unique mirror/proxy for all produced enterprise artifacts and single point of contact with external world ๏ Boosts reuse as generates visibility on project artifacts ๏ Can scale to the enterprise with Professional Edition features (LDAP integration, Procurement, Enterprise class documentation) ๏ Separate repositories for enterprise Releases and Snapshots to ensure additional stability Monday, April 6, 2009
  • 59. Continuous Integration Server https://hudson.dev.java.net/ ๏ Advanced Build server tightly integrated with Maven ๏ Fine tune your build schedule ๏ Periodically on early development stages ๏ On commit close to release and in operations ๏ Build server deploys remotely to Test Jboss and run remote Selenium integration tests, whose reports are published on the site ๏ Alternatively, simple modules are tested directly in Jetty embedded in Hudson Maven build ๏ Tip: Define a CI specific profile in your maven build (-Pci) to override ports/locations and avoid clashes Monday, April 6, 2009
  • 60. The hot issue with testing Alfresco http://seleniumhq.org/ ๏ Alfresco does not provide a POM. So no transitive dependencies, no easy test classpath ๏ You don’t want to test Alfresco, only your custom modules ๏ Such a complex architecture needs a bullet proof testing harness to survive ๏ Iterative solution: 1. Provide functional test first: Selenium bridges the gap with end users, empowered to produce automated UAT tests 2. Enable unit/integration testing: Contributed improvement to surefire (http://jira.codehaus.org/browse/SUREFIRE-545) 3. Run both in CI: Remote deployment on Jboss as enabler (http:// jira.codehaus.org/browse/CARGO-416) and Xvfb Monday, April 6, 2009
  • 61. The hot issue with testing Alfresco http://seleniumhq.org/ ๏ Alfresco does not provide a POM. So no transitive dependencies, no easy test classpath ๏ You don’t want to test Alfresco, only your custom modules ๏ Such a complex architecture needs a bullet proof testing harness to survive ๏ Iterative solution: 1. Provide functional test first: Selenium bridges the gap with end users, empowered to produce automated UAT tests 2. Enable unit/integration testing: Contributed improvement to surefire (http://jira.codehaus.org/browse/SUREFIRE-545) 3. Run both in CI: Remote deployment on Jboss as enabler (http:// jira.codehaus.org/browse/CARGO-416) and Xvfb Monday, April 6, 2009
  • 63. Top Ten ALM implementation best practices 1. Define an Enterprise SuperPOM to centralize dependencies and environments 2. Introduce the Role of the Librarian 3. Version your Maven projects accordingly to your Jira project versions, using snapshots and release candidates 4. Your tests should be self contained and runnable in CI and the must produce intelligible reports 5. Define your Enterprise Repository as single source of truth for QA and Prod installations 6. Document your project inline and use the Jira/Changes Report to automate release notes 7. maven-release-plugin is as cool as complex so handle it with care. Once that it works though, it way better than any manual release process 8. Use Selenium recorder to have your end users record UAT sessions and use the test to ensure no regressions on new releases 9. When dealing with open source software, prefer contribution over complaint 10. Create a maintenance branch at every major/minor release Monday, April 6, 2009
  • 64. ALM in Action Monday, April 6, 2009
  • 65. Too much talking... ๏ Let’s see it action! ๏ Maven Eclipse Integration (Dependency Graph) ๏ Maven site (changes:jira-report and surefire-report:report-only) ๏ Technology specific and environmental profiles, typical cmd line: mvn iQ/nstall -Pcas,ldap,test1 ๏ Selenium Local and CI ๏ Q/A Monday, April 6, 2009
  • 66. In the pipeline ๏ ALM in place in 2009Q1 and since then already a fully fledged Alfresco release with 3 integrated business applications (and growing) ๏ High degrees of integration: ๏ SVN/JIRA integration/enforcement ๏ Development workflows and push notifications ๏ Nexus professional and procurement ๏ Separation of concerns and abstraction of best practices in a ALM-only superPOM Monday, April 6, 2009
  • 67. Calm Application Lifecycle Management Monday, April 6, 2009
  • 68. How can you abstract best practices? ๏ Maven archetypes and inheritance are powerful to delegate responsibility-specific POMs ๏ Still POMs are verbose and error prone, we want to expose as less as possible to junior developers ๏ Best practices are not technology specific and can be reused independently ๏ ALM is about processes, we need to aggregate Maven plugin configurations in more structured flows Monday, April 6, 2009
  • 69. Maturity step 3: CALM ๏ The idea: “Create an abstraction layer to provide standard flows and reduce configuration needed per project” ๏ The objective: Reach a complete lifecycle abstraction which is ๏ Cross-customer ๏ Cross-technology ๏ Extensible and flexible ๏ The solution: A technology independent superPOM gathering all common plugin configurations in use-case oriented Maven profiles Monday, April 6, 2009
  • 70. CALM - State of the Art ๏ My first project with a recursive acronym! Yeah! ๏ References: ๏ Source Code/ Community: http://code.google.com/p/maven-calm ๏ First commit: December 2007, 2 active committers, growing in interest ๏ `Base for the Maven Alfresco Archetypes 3.0 release ๏ Still under heavy work in progress but getting there ;) Monday, April 6, 2009
  • 71. How to use it ๏ CALM should be the SuperPOM of your enterprise POM or of your single project POM ๏ Create your enterprise POM and inherit all standard best practices from CALM superPOM ๏ Your project would be invoked always with a standard command line: Text mvn -Pflow1[,flow2...flowN [,feature1...featureN] [env=local] Monday, April 6, 2009
  • 72. CALM Profiles decomposition ๏ Environmental profiles ๏ Build time properties from POM and profiles.xml ๏ Runtime properties by setting the -Denv variable ๏ Flow/UseCase profiles ๏ Actually instruct maven on which plugins and sequence of them should be executed and which is the default phase ๏ Currently supported: integration-test, selenium-test, deploy, run ๏ Feature profiles ๏ Add features to the application under packaging, technology specific or general purpose ๏ Currently supported for Alfresco: cas, ldap, liferay, mysql Monday, April 6, 2009
  • 73. CALM - Perspectives ๏ CALM Target audience: 1. Medium/Large Enterprise targeting to standardize IT processes and procedure, independently from the landscape of technologies in use 2. (Open Source) System Integrator which, cross-customer and cross-technology, aims to provide a standard service in terms of quality of deliverables, reducing TTM and TCO 3. Community enthusiast willing to start off an open source project but is scared by Maven learning curve WE MAKE IT EASY FOR YOU! Monday, April 6, 2009
  • 74. Wrap it all up ๏ Enterprise business has to fight to start embracing the bazaar model to cope with IT modernizations ๏ Give priority to processes rather than technologies... ๏ ...but don’t underestimate how automation can improve your release schedule and your business agility ๏ You don’t need hype extremely expensive software or consultants to manage your IT assets, it’s a matter of values! ๏ Maven is tough but you can work it to make it simple for the vast majority of users (80% - 20% rules) Monday, April 6, 2009