Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Zaizi Alfresco Solution: Implementing Alfresco as a Content Platform by Zaizi (Alfresco Platinum Partner)


Published on

Alfresco is a scalable repository that can be used as the foundation for an organisation's content and collaboration stack.

Join Zaizi, Alfresco Platinum Partner as they share their practical experience of implementing Alfresco as a secure and scalable content platform for a multinational trading business.

The presentation will demonstrate how a Alfresco has been developed and used as an enterprise content application framework.

Published in: Technology
  • Be the first to comment

Zaizi Alfresco Solution: Implementing Alfresco as a Content Platform by Zaizi (Alfresco Platinum Partner)

  1. 1. Implementing Alfresco as a Content PlatformBenjamin Chevallereau
  2. 2. Summary Zaizi’s Background Alfresco Platform Context and problematic How to solve it in the development phase quality phase development phase packaging phase deployment phase maintenance phase ConclusionImplementing Alfresco as a Content Platform
  3. 3. 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
  4. 4. 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
  5. 5. Zaizi is a Global companyImplementing Alfresco as a Content Platform
  6. 6. Alfresco PlatformImplementing Alfresco as a Content Platform
  7. 7. Context Company Company Company Dept A Dept B Dept A Dept B Dept C New york Paris Chicago London SingaporeImplementing Alfresco as a Content Platform
  8. 8. Questions that need to be asked How to develop ? How to package ? How to test ? How to maintain ?Implementing Alfresco as a Content Platform
  9. 9. Development phase Version Control System Use a version control system It seems trivial, but it’s 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. Development Alfresco has made Spring the core foundation of its architecture. Workstation So, SpringSource Tool Suite seems to the best tool to develop on Alfresco. 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
  10. 10. Best Practises Version Control Always use the extension mechanism provided by Alfresco using System extension folders during the development part. Always package as AMP or JAR and test again after: It’s 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. Development Workstation Always test extension locally, using, for example JUnit. Don’t forget to use namespaces everywhere it’s possible: Content model JAVA classes ... Use Maven archetypes to create new extension.Implementing Alfresco as a Content Platform
  11. 11. Testing and quality phase We use Maven to package locally and to deploy locally or remotely. Version Control System 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; 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
  12. 12. 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 Development performance tests. WorkstationImplementing Alfresco as a Content Platform
  13. 13. Packaging phase Version Control System STS Projects Create an Eclipse project per module. Package a coherent set of customisation in a same package, AMP called an AMP : Alfresco Module Generate Package. Aggregate all AMPs in a same RPM to deliver in a specific project.Implementing Alfresco as a Content Platform
  14. 14. Best Practises Version Control System It’s important to understand the extension mechanism provided by Alfresco. STS Projects AMP modules or JAR files can be used to package customisation depending of the customisation nature. AMP Generate 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.Implementing Alfresco as a Content Platform
  15. 15. 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 After packaging and deploying RPM London in Maven, we use puppet : Paris Chicago To install all pre-requisites, Dept A Dept B Dept A Dept B Dept C 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.Implementing Alfresco as a Content Platform
  16. 16. Best Practises Use Maven as a module repository. Provide 2 RPMs per Alfresco Singapore instance : Alfresco and Share. New York London Use a standard module Paris Chicago management tool to deploy RPMs like YUM. Dept A Dept B Dept A Dept B Dept C Use puppet to manage the global process of deployment: Configuration, Deployment, ...Implementing Alfresco as a Content Platform
  17. 17. Maintenance and monitoring phase JMX The JMX interface allows System Administrators to access Alfresco Enterprise via a standard JMX console. Singapore New York London Alfresco provides a lot of beans to execute Paris Chicago tasks like: Start a new synchronisation, Dept A Dept B Dept A Dept B Dept C Empty cache, ... AppDynamics and JMeter can be used to manage performance of Alfresco or servers.Implementing Alfresco as a Content Platform
  18. 18. Best Practises JMX In production, JMX should be used with caution. Modifications are not persisted after a server restart. Singapore New York London In production, JMX is very useful to enable/ Paris disable logs to identify a problem, or to start Chicago some automatic jobs. Dept A Dept B Dept A Dept B Dept C 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.Implementing Alfresco as a Content Platform
  19. 19. Big picture JMX Version Control System Development Workstation STS Projects AMP Generate Dept C Singapore Dept B London Chicago Dept A Dept A Dept B New York ParisImplementing Alfresco as a Content Platform
  20. 20. Contact us Benjamin Chevallereau, Solutions Architect Zaizi Limited Thank You 222 Westbourne Studios 242 Acklam Road London W10 5JJ Phone: +44 20 3582 8330 Mobile: +44 77 8047 2123 Email: Skype: bchevallereauz www.zaizi.comImplementing Alfresco as a Content Platform