Selecting An Enterprise Content Management System (CMS) - Part Two

In continuation to my previous article on – “Selecting a Content Management System that supports Your Business”, I thought of writing this article on selecting an Enterprise CMS. Nowadays, Mobile, Big Data, and E-Commerce are causing drastic changes in the business landscape and all those companies who ignore their online presence are at the risk of losing customers and revenue. That is why many companies are looking to invest in Content Management Systems.

In my view, the primary objective of a business is to extend the reach and engagement of the customers, and the system must be secure and flexible enough to cater to the changing business needs.

In this article, I have tried to explain the following key considerations while choosing a Content Management System.

  1. Enterprise Hosting
  2. Security
  3. Performance
  4. Scalability

Hosting Environment

When it comes to configuring your hosting environment, there are many options and possibilities depending on the number of expected visitors during peak traffic loads, application size in terms of number of pages and content items, business logic computations, security considerations, the business cost of application downtime, etc.

There can be scenarios where a single machine hosts many websites and the same machine runs both the web application and the database. However, this type of configuration is more suitable for development environments and not recommended for production environments.

The more available RAM for the SQL Server, the better your website will perform. That is because you will have more memory available for data caching. It is a good idea to use multiple high-speed hard drives for the database server. Dedicate one drive to store database logs, another for data files, another for temporary storage (e.g. tempdb) and another for the server operating system. One of those hard disks can be used to store regular backups of the database or it can be dedicated to backup storage. Note that those are just performance optimization tips for the SQL Server. You can start with a common hard drive for everything, and then offset the load on different hard drives for better I/O of the server as database size and number of queries grow.

Load-Balanced Environment

If you are having two or more web application servers, it is always recommended to host these servers in a load-balanced environment with one dedicated database server and a second one on standby in a failover configuration. This configuration provides better performance during peak traffic load times and eliminates the single point of failure on your application and database servers.

It is also possible to achieve a highly available and scalable environment by eliminating all single points of failure, including the load balancer. The recommended practices are,

  1. Always store the code base on a distributed file system.
  2. Use load balancers and firewalls configured in High-Availability mode (Active/Passive)
  3. Configure output and client-side caching
  4. Use a Content Delivery Network (CDN) for static content and cache everything on the CDN’s front edge servers.

Security

Security is the major concern that needs to be taken into account as it covers the software, environment, people and processes. The focus must be given on data and application security and no organization can compromise on these concerns. The recommended practices are,

  1. Check for Authentication and Single Sign-0n (SSO) mechanism of the CMS
  2. Check for the compliance of the CMS with the industry standards (For E.g. – Compliance with FIPS – Federal Information Processing Standards)
  3. Check for common threats (For E.g. – OWASP threats) that whether the CMS is capable enough to address these types of security threats.

Performance

Users have ever-increasing expectations about browsing speed. Performance is a critical responsibility shared by the application, the hardware, the developers and the administrators. Hitting load-time goals at the desired millisecond level can only be achieved with alignment between software features, optimization best practices and the right hosting solution.

A content management system is at the centre of this entire process. Your CMS must enable developers to gain full control over how the HTML, CSS and JavaScript are handled, provide configuration options to administrators at the granular level, and facilitate caching at scale and expose APIs and mechanisms that align any custom development with the core framework.

The challenge is to achieve a very dynamic content management in the backend, while appearing static to visitors, regardless of the scale of content, users or hardware.

The CMS that you selected must provide the following,

  1. Rich configuration options for browser and output caching.
  2. Sophisticated content-aware cache invalidation mechanisms.
  3. Tight integrations with various storage cloud providers.
  4. Scalability to cater hundreds of concurrent users.

Scalability

It is not uncommon for a business to have to scale to thousands of users, and while this is a good problem to have, it usually requires thinking in terms of scaling up with hardware, which should not break your bank if you have the right software optimizations in place.

Having the right load balancing support is crucial to meeting those scalability demands—and load balancing is not only responsible for routing different people to different servers. Its main, yet very subtle, responsibility is to provide the integrity of content and sessions regardless of how the load-balancer distributes the requests.

The selected CMS should take care of output cache synchronization and should support various hardware devices and software frameworks. 

An important aspect of large-scale projects is to separate the staging servers from the production servers and enable content authors to prepare and synchronize content on an as-needed basis, usually in low traffic timeframes.

At last, I want to mention that the CMS, which you have chosen for your organization, must adhere to the above basic considerations.