Você está na página 1de 20

Implementing Alfresco as a Content Platform

Benjamin Chevallereau

Summary
Zaizis Background Alfresco Platform

Context and problematic


How to solve it in the
development phase

quality phase
development phase packaging phase deployment phase maintenance phase

Conclusion
Implementing Alfresco as a Content Platform

Zaizi

Zaizi is a consultancy and systems integrator specialising in assembling smart content solutions using Alfresco, Liferay, Ephesoft and Solr. Our team have experience building and delivering a wide range of enterprise solutions including document and web content management systems, portals and corporate extranets on Alfresco. We are an Alfresco certified Platinium Partner, Ephesoft Platinium Partner and Red Hat Enterprise Linux Ready Partner.

Implementing Alfresco as a Content Platform

The Zaizi Advantage


Specific focus on Open Source Enterprise Content management. Our engineers have architected, implemented and reviewed most of the major Alfresco and Liferay deployments in Europe. Provided expert assistance to other system integrators. Most active in the Alfresco community. Contributed code to Alfresco for inclusion in core product. Some of our engineers used to work for Alfresco.

Recommended by Alfresco & Liferay for the most challenging of implementations.


Implementing Alfresco as a Content Platform

Zaizi is a Global company

Implementing Alfresco as a Content Platform

Alfresco Platform

Implementing Alfresco as a Content Platform

Context
Company

Company

Company

Dept A

Dept B

Dept A

Dept B

Dept C

New york

Paris

Chicago

London

Singapore

Implementing Alfresco as a Content Platform

Questions that need to be asked

How to develop ? How to package ? How to test ? How to maintain ?

Implementing Alfresco as a Content Platform

Development phase
Version Control System

Use a version control system


It seems trivial, but its a common mistake to modify directly files in the deployed folder corresponding to Alfresco. Should be linked to an issue and bug tracker like JIRA.

Alfresco has made Spring the core foundation of its architecture. So, SpringSource Tool Suite seems to the best tool to develop on Alfresco.

Development Workstation

JRebel is a JVM-plugin that makes it possible for Java developers to instantly see any code change made to an app without redeploying. It allows to save a lot of time!!
Use a Maven repository to easily create new module, to package it and to deploy it locally or remotely.

Implementing Alfresco as a Content Platform

Best Practises
Always use the extension mechanism provided by Alfresco using extension folders during the development part. Always package as AMP or JAR and test again after: Its usual to forget some files during these steps... Package configuration files related to the same part in a same AMP module to increase the reusability of these modules. Always test extension locally, using, for example JUnit. Dont forget to use namespaces everywhere its possible: Content model JAVA classes ...
Development Workstation Version Control System

Use Maven archetypes to create new extension.

Implementing Alfresco as a Content Platform

Testing and quality phase

We use Maven to package locally and to deploy locally or remotely. We use Unit and JMeter locally and remotely to: Test that everything is running; We use sonar for code quality to: Check that coding rules are respected; Launch unit tests;

Version Control System

Development Workstation

Check standards metrics.


The use of Selenium can be used as smoke test before JUnit tests to check the good healthy of the server.

Implementing Alfresco as a Content Platform

Best Practises

Version Control System

All developers should define a JUnit test for each module. These tests should be executed on each development workstation and on a testing server. One or several JMeter scenarios should be defined for performance tests.
Development Workstation

Implementing Alfresco as a Content Platform

Packaging phase
Version Control System

STS Projects

Create an Eclipse project per module. Package a coherent set of customisation in a same package, called an AMP : Alfresco Module Package.
AMP

Generate

Aggregate all AMPs in a same RPM to deliver in a specific project.

Implementing Alfresco as a Content Platform

Best Practises
Its important to understand the extension mechanism provided by Alfresco. AMP modules or JAR files can be used to package customisation depending of the customisation nature. Maven can be used to create RPM including several modules. These combination can be unique for a company or a department. Of course, these package must be tested entirely to avoid conflicts between modules.
Version Control System

STS Projects

AMP

Generate

Implementing Alfresco as a Content Platform

Deployment phase
A RPM module contains several AMP modules developed and tested individually. These module contains, of course, Alfresco and Share too.

Singapore New York Paris London Chicago

After packaging and deploying RPM in Maven, we use puppet :


To install all pre-requisites, To configure Tomcat, Apache and all third-party tools. To deploy easily using a module management tool like YUM. Using this process, we increase the reusability of our modules through the company and their departments.

Dept A

Dept B

Dept A

Dept B

Dept C

Implementing Alfresco as a Content Platform

Best Practises

Use Maven as a module repository.


Provide 2 RPMs per Alfresco instance : Alfresco and Share. Use a standard module management tool to deploy RPMs like YUM.
Singapore New York Paris London Chicago

Use puppet to manage the global process of deployment:


Configuration, Deployment,

Dept A

Dept B

Dept A

Dept B

Dept C

...

Implementing Alfresco as a Content Platform

Maintenance and monitoring phase


JMX
The JMX interface allows System Administrators to access Alfresco Enterprise via a standard JMX console. Alfresco provides a lot of beans to execute tasks like: Start a new synchronisation, Empty cache, ... AppDynamics and JMeter can be used to manage performance of Alfresco or servers.
Dept A

Singapore
New York London Paris Chicago

Dept B

Dept A

Dept B

Dept C

Implementing Alfresco as a Content Platform

Best Practises
JMX
In production, JMX should be used with caution. Modifications are not persisted after a server restart.
New York Singapore London Paris Chicago

In production, JMX is very useful to enable/disable logs to identify a problem, or to start some automatic jobs. In development and test phase, JMX can be used to define the right configuration of a server dynamically. AppDynamics and JMeter should be used to monitor servers but to identify some performance problems too.
Dept A

Dept B

Dept A

Dept B

Dept C

Implementing Alfresco as a Content Platform

Big picture
JMX
Version Control System

Development Workstation
STS Projects

AMP

Generate

Singapore London Chicago

New York Paris

Implementing Alfresco as a Content Platform

Dept A Dept B

Dept A Dept B

Dept C

Contact us

Benjamin Chevallereau, Solutions ArchitectZaizi Limited222 Westbourne Studios242 Acklam RoadLondon W10 5JJ

Thank You

Phone: +44 20 3582 8330Mobile: +44 77 8047 2123Email: bchevallereau@zaizi.comSkype: bchevallereauzwww.zaizi.com

Implementing Alfresco as a Content Platform

Você também pode gostar