alfresco wcm for high scalability
DESCRIPTION
Alfresco WCM For High ScalabilityTRANSCRIPT
Alfresco Web Content Management
Deployment and Replication for High Scalability
Ben Haganwww.alfresco.com
Agenda
● Introduction
● Why Scale?
● The Impact Of Scalability
● Types Of Scalability
● Achieving Horizontal Scalability
● Achieving Vertical Scalability
● Cache Strategy
● Blueprint For Static Sites
● Blueprint For Dynamic Sites
● How Does Alfresco Fit In?
● Dynamic Sites Powered By Alfresco
● Architecture
● Use Alfresco As It Was Intended
● Summary
Introduction
● Scalability● The ability to grow an application to meet growing demand/needs
● Is my application scalable?● As it is today, can my application grow to meet demand without
breaking, and without sacrificing service levels, as demanded by your users?
● Will I need an application or architectural redesign?
Why Scale?
● Why Scale?● My requirements have changed● More users - means more data!● Data type may change
• PDF content rather than HTML based• I now want to stream rich media – podcast etc
● More CPU / memory / bandwidth / application / database intensive tasks:• We need more complex search facilities• We need user generated content • We would like to personalise our content
• No longer cache content
● Future proofing and agility
The Impact Of Scalability
● Real-Worlds Considerations● Capital Investment will be made
• Do I have the investment available if I need to scale?• How much will it cost?
● The system will become more complex• Do I have the technical resource?• Is my current architecture suitable for the required scalability?
• Software – OS, Application Servers, Database etc• Hardware – available for expansion, bandwidth, even rack space!
● Maintenance costs will increase• Do I have the budget?
● Time will be required to act• Do I have the time to meet my deadlines?
Types of Scalability
● Horizontal and Vertical
● Horizontal● We add more servers in the corresponding layer, and these
multiple servers work together to accommodate an increased load.● Most clustering solutions, distributed file systems, load-balancers
assist with horizontal scalability.
● Vertical● Adding resource within the same logical unit to increase capacity.
An example of this would be to add CPUs to an existing server, or expanding RAM.
Achieving Horizontal Scalability● Ensure that the components of the architecture can be
individually scaled by adding more servers/nodes.● Replicate the node● Split content and applications across multiple nodes.
● Database● Replication● Clustering
● Application● Alfresco Dynamic Site Server (DSS) - replication● Alfresco File System Receiver (FSR) - replication
● Web Specific Application● Cache● Web Server● Web Application Servers – Tomcat, Weblogic etc
Achieving Vertical Scalability
● Identify the bottleneck● Alfresco Authoring Environment● Alfresco Delivery Environment
● Sometime vertical scaling is the right answer!● Can be quick, simple and cheap● Re-designing software is not!
● Hardware is cheap● Faster/more CPU(s)?● More memory?● Faster disks? New RAID configuration?● Faster load balancer?
Cache Strategy
● HUGE subject which impacts performance in many areas!● Database● Application● Disk● Memory● Browser● Etc….
● Static and Dynamic websites
● What can I cache?
● What can I not cache?
● How long should I cache?
● Chose the right hardware for the software application
A Blueprint For Static Sites
Load Balancer
Web ServerFile System Receiver
(FSR)
Alfresco Authoring Environment
Web ServerFile System Receiver
(FSR)
Web ServerFile System Receiver
(FSR)
A Blueprint For Dynamic Sites
Load Balancer
Web Server Web Server Web Server
Alfresco Authoring Environment
Alfresco Dynamic Site Server (DSS)
Alfresco Dynamic Site Server (DSS)
How does Alfresco fit in?● De-coupled delivery architecture
● Flexible platform for scalability
● Content deployment to● File System Receivers (FSR)● Alfresco Dynamic Site Servers (DSS)
● Leverage deployment to selectively push content to appropriate nodes● Static HTML content: Front-end servers● Images: Image servers● Multimedia: Streaming servers● CDNs (Content Delivery Network ): As needed
Replication Of Delivery Nodes● Delivery Nodes - Server Farm
● Simple to configure with Alfresco WCM● Unlimited number of replicated nodes
● Automated or manual deployment
● Point in time snap-shots● Deploy● Revert
● Cheap high availability ● Provision new nodes very easily● Commodity hardware● High Availability● Maintenance
Replicate Or Cluster My Delivery? ● Dynamic Site Servers (DSS) do not NEED to be clustered. Replication can be
used effectively.
● If User Generated Content (UGC) is not a requirement, there is no reason to cluster
● Or any other type of update where the nodes need to be synchronised● Clustering can be an overhead with no benefit
● When does clustering become a disadvantage?● Traffic between nodes● Time to updates nodes exceeds slows the response time● Threshold – exceeded
● What is that number?● Dependant on application● Write intensive activity ● Approximately 3 nodes – load dependant
Example Replication With UGC
Load Balancer
Web Server
Web Server
Web Server
Alfresco Authoring Environment
Alfresco Dynamic Site Server (DSS)
Alfresco Dynamic Site Server (DSS)
Alfresco Dynamic Site Server (DSS)
Web Server
Web Server
UGCUGC
UGC
Architecture● Any architecture has many moving parts..
● Web development framework● Java: JSF, Struts, Wicket, you name it…● Ruby: Ruby on Rails● NET: ASP.NET● PHP: Zend, CakePHP, CodeIgniter● Python: Django
● Alfresco can be used with all these frameworks.● No propriety lock in
● Each of these has different capabilities and often require different implementation strategies.
Summary● Take inventory of Alfresco's capabilities and limitations and implement
accordingly
● Alfresco is a Java based cross-platform application● This provides choice – which OS, Database, which App server?
● Leverage the correct functionality for YOUR requirements● For example – Content Renditions - an article may have these renditions
• Title Only: For front page• Title and Abstract: For news page• Full Article etc..
● Just because Alfresco can also manage code, doesn't mean that one *has* to use it for that.
• It's OK to use other code repositories to manage code e.g. SVN
● Deploy "builds" to Alfresco so as to leverage:● In-context previews● Sandboxing for each content editor● Release management/deployment
Summary Cont..● Whatever you choose, be mindful and try to keep the architecture and design
as simple as possible.
● Using Alfresco WCM provides a wealth of flexibility and choices when designing a scalable web architecture
● Low cost and high performance
● Open Standards and Open Source
● Future proof and agile
Alfresco WCM Deployment and Replication
for High Scalability
For More Alfresco Recorded Webinars:www.alfresco.com/about/events/ondemand
Free Trial:http://www.alfresco.com/products/ecm/enttrial/
Thank You…