From:
webtreepro
Views: 167
Comments: 0
Websites are the path of business success, and creating a website has been made easier than ever because of innovating tools used for web design
Slide 1: Alfresco Web Content Management Deployment and Replication for High Scalability
Ben Hagan www.alfresco.com
Slide 2: Agenda
● Introduction ● Why Scale? ● The Impact Of Scalability ● Types Of Scalability ● Achieving Horizontal ● Blueprint For Static Sites ● Blueprint For Dynamic Sites ● How Does Alfresco Fit In? ● Dynamic Sites Powered By
Alfresco
● Architecture ● Use Alfresco As It Was
Scalability
● Achieving Vertical
Scalability
● Cache Strategy
Intended
● Summary
Slide 3: 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?
●
Slide 4: 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
Slide 5: 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? Do I have the technical resource? Is my current architecture suitable for the required scalability?
• •
●
The system will become more complex
• •
Software – OS, Application Servers, Database etc Hardware – available for expansion, bandwidth, even rack space!
● ●
Maintenance costs will increase
•
Do I have the budget? Do I have the time to meet my deadlines?
Time will be required to act
•
Slide 6: 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.
Slide 7: 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
Slide 8: 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?
●
Slide 9: 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
Slide 10: A Blueprint For Static Sites
Load Balancer
File System Receiver (FSR)
Web Server
File System Receiver (FSR)
Web Server
File System Receiver (FSR)
Web Server
Alfresco Authoring Environment
Slide 11: A Blueprint For Dynamic Sites
Load Balancer
Web Server
Web Server
Web Server
Alfresco Dynamic Site Server (DSS)
Alfresco Dynamic Site Server (DSS)
Alfresco Authoring Environment
Slide 12: 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
●
Slide 13: 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
● ●
●
Slide 14: 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
●
●
Slide 15: Example Replication With UGC
Load Balancer
Web Server
Web Server
Web Server Alfresco Dynamic Site Server (DSS)
Web Server
Web Server UGC UGC UGC
Alfresco Dynamic Site Server (DSS)
Alfresco Dynamic Site Server (DSS)
Alfresco Authoring Environment
Slide 16: 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.
Slide 17: 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? For example – Content Renditions - an article may have these renditions
• • •
Leverage the correct functionality for YOUR requirements
●
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
●
Slide 18: 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
Slide 19: Thank You…
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/