alfresco wcm for high scalability

19
Alfresco Web Content Management Deployment and Replication for High Scalability Ben Hagan www.alfresco.com

Upload: alfresco-software

Post on 15-Jan-2015

4.860 views

Category:

Technology


1 download

DESCRIPTION

Alfresco WCM For High Scalability

TRANSCRIPT

Page 1: Alfresco WCM For High Scalability

Alfresco Web Content Management

Deployment and Replication for High Scalability

Ben Haganwww.alfresco.com

Page 2: Alfresco WCM For High Scalability

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

Page 3: Alfresco WCM For High Scalability

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?

Page 4: Alfresco WCM For High Scalability

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

Page 5: Alfresco WCM For High Scalability

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?

Page 6: Alfresco WCM For High Scalability

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.

Page 7: Alfresco WCM For High Scalability

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

Page 8: Alfresco WCM For High Scalability

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?

Page 9: Alfresco WCM For High Scalability

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

Page 10: Alfresco WCM For High Scalability

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)

Page 11: Alfresco WCM For High Scalability

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)

Page 12: Alfresco WCM For High Scalability

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

Page 13: Alfresco WCM For High Scalability

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

Page 14: Alfresco WCM For High Scalability

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

Page 15: Alfresco WCM For High Scalability

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

Page 16: Alfresco WCM For High Scalability

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.

Page 17: Alfresco WCM For High Scalability

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

Page 18: Alfresco WCM For High Scalability

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

Page 19: Alfresco WCM For High Scalability

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…