Implementing alfresco as a content platform with zaizi


Published on

Slide deck to accompany Alfresco and Zaizi's webinar on implementing Alfresco as a content platform.

Published in: Technology
  • Be the first to comment

Implementing alfresco as a content platform with zaizi

  1. 1. Implementing Alfresco as a Content Platform Benjamin 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. !   Weare 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 Version Control remotely. 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; Development !  Launch unit tests; 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 AMP customisation in a same package, 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 AMP nature. 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 in London 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 Paris !  Use a standard module management Chicago tool to deploy RPMs like YUM. !  Use puppet to manage the global Dept A Dept B Dept A Dept B Dept C 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 A Dept B Dept C Singapore London Chicago Dept A Dept B New York ParisImplementing Alfresco as a Content Platform
  20. 20. Contact us Benjamin Chevallereau, Solutions Architect Zaizi Limited 222 Westbourne Studios Thank You 242 Acklam Road London W10 5JJ Phone: +44 20 3582 8330 Email: Skype: bchevallereauz www.zaizi.comImplementing Alfresco as a Content Platform