Last week I announced a new blog series on Advanced Rendering and the technical features enterprise organizations need to succeed. This week I’ll talk about the first of the 10 important items: linear scalability.
View the Enterprise datasheet for more information on how we deliver Advanced Rendering.
What does scalability mean anyway? Dictionaries commonly define scalability as how well a solution to a problem will work when the size of the actual problem increases. When it comes to business-critical applications and software, increasing scalability is possible to a limited degree by increasing the investment in the hardware the solution runs on. For example, some increase in scalability will be seen by using a faster processor, more memory and faster disk access, but there’s a finite limit to how far you can scale a single server.
In order to be truly scalable, software must be able to operate on multiple servers. The enterprise can add additional servers to meet processing demand as it grows over time. In theory, 2 servers would double the capacity of 1 server, and 4 servers would quadruple the capacity of 1 server. In reality, however, each new server only provides a percentage of performance of the original server. Why? The overhead of managing the multiple server environments and the demand that is placed on them takes up the rest of the performance space.
Adding multiple servers
Let’s look at an example: say a global Life Sciences organization is rendering documents in their research department, and the demands are increasing each week. Their current solution isn’t able to handle the workload, and they need to look at a more scalable solution. If their current single server is able to process 100 units of work, then they might expect that 2 servers would be able to process 200 units of work, and if they had 10 servers then they would be able to process 1000 units of work. Unfortunately, the effort to manage the distribution of work consumes a portion of each server’s capability, and the additional server isn’t able to take on the demands the Life Sciences organization thought it would. The increased overhead diminishes the increase in overall capacity.
Generally, a common consideration for overhead is around 10% of capacity per server. So if we assume 100 units of work per day for the first server, with a 10% overhead for each additional server, then the overall capacity of 10 servers will be 550 units of work, or only 55% of the expected capacity. That is a lot of capacity lost to managing overhead! The green line in the graph below is what you’ll get with this model, while the purple line is what you would expect to get. There is a lot of discrepancy, which will result in an unhappy Life Sciences organization!
What happens when you remove the overhead associated with managing multiple servers by placing the responsibility with a dedicated management server? You achieve more efficient scalability.
Let’s say this Life Sciences organization did just that. Now, they use software that is designed for enterprise scalability – so it’s being used by the research department, plus every other department in the organization. By using a dedicated management server, the overhead has been reduced to 0.2% from the 10% they previously experienced. So with 10 servers, they can process 991 units of work per day, and achieve 99.1% of the expected capacity. That sounds a lot better than 55%, doesn’t it?
Advanced Rendering = efficient scalability
With Advanced Rendering, an architecture that supports low-overhead scalability is a certain must-have. Document rendering is very CPU and disk-intensive, and often requires multiple servers to meet high-volume requirements. In addition, it has to accommodate tight Service Level Agreements by providing high availability and fault tolerance, and support disaster recovery plans. Luckily, Adlib’s Advanced Rendering solution is designed to do just that.
Adlib’s architecture is designed for high volume environments where scalability is a must. This means it’s simple to add additional servers, and the overhead for managing the load across servers is minimal. We achieve linear scalability, much like the second graph up there.
When you’re looking to deploy multiple servers for fault tolerance and high availability, you also get the added benefit of deploying in an Active-Active fashion. It’s common industry practice to utilize a failover cluster approach when you have an Active-Inactive deployment, where one server is in production and use, and if it fails, then the backup server will take its place. This has two main disadvantages: backup hardware is rarely utilized so you have an inefficient use of available resources, and the mechanism for switching servers needs to be periodically tested to ensure it will continue to work if it’s ever needed.
However, since we use Active-Active deployment, both the primary and secondary servers are always in use. This has several benefits: the capacity is increased, and the mechanism to distribute workload across available resources is constantly utilized. This makes it easy to apply patches and OS updates to one server while the other continues to function normally, and no special provisions or switching needs to take place.
When you’re investing in business-critical applications and software, always consider the scalability as a necessary factor for success. Ask yourself the following questions:
- What is the long term strategy for this technology in the enterprise?
- Is there a feasible plan to increase the capacity and capability of this investment as you grow?
- Will you need to replace this technology if it doesn’t meet your growing document rendering needs?
- Will you need to invest more money into a technology that will provide you with less return per dollar with each investment?
If your current solution isn’t offering you a scalable document rendering product, it’s time to consider Advanced Rendering. Take a look at our Enterprise datasheet for more information on how we deliver Advanced Rendering in a scalable manner across the organization.
Next week I’ll be discussing the importance of high availability within an enterprise. Stay tuned!