Reduce On-Premise & Cloud
hosting costs through
monitoring and automated actions
Over the years I have architected, designed, sized and implemented many SAP BusinessObjects environments. Besides the usual requirements, sometimes there was a need to implement High Availability.
A prime example is having two or more servers clustered together so that if one server fails, the other server(s) will continue to serve the users and their requests.
At other times, there was a need to make sure the deployment could handle a very high peak of utilization during specific busy business times.
For example, two servers are enough to serve the business most of the year but at peak times, such as quarter-end, four servers will be needed.
The “Cost” Problem
When implementing an environment with multiple servers, it is guaranteed that server(s) will not be utilized at some point or another, therefore, costing you money for nothing, either by your internal IT team for the on-premise architecture or your Cloud Hosting provider i.e. AWS, MS Azure, GCP.
The most obvious scenario would be running servers for a handful, or at worst, no users at all outside working hours.
To avoid this scenario, you could schedule your servers to start at 7 am and automatically stop at 11 pm but it’s very much an all or nothing choice. In addition, this may not be very practical for overnight scheduling.
The ideal solution would be to implement a model similar to “pay as you go” as you get with modern SaaS solutions today.
The Monitoring Problem & Solution
SAP BusinessObjects comes built-in with server monitoring. It gives you the ability to use watchers to monitor the different services (CMS, FRS, APS, Webi Processing Server, etc) for events (e.g. running out of disk space) and if necessary, you can be notified by email when the rule is triggered.
Monitoring in SAP BI 4.2
However, the limitation is that you can only trigger email notifications. You cannot put in place automated and proactive actions to resolve the problem. For example: Restart a service, Start a node in a cluster, Run a script to clear temporary files, etc.
With that in mind, 360Suite developed a solution that fills this gap and can trigger automated and proactive actions such as Run a program, Call a URL, Run an executable or Restart a service, as well as Sending the email notifications.
Scenarios & Solutions
Scenario 1: Services and/or Node failing
This is a useful example if High Availability is not critical and you want to save costs of running unnecessary servers.
Solution: Monitor the state of SAP BusinessObjects services to determine if they are running or not. In the event where a service is stopped, use 360Live to:
- Notify the Administrators
- Automatically try to restart the service
- Run a script to start Node 2 of cluster
Scenario 2: Starting / Stopping nodes based on utilization and resources
I have a customer with two Web servers and five SAP BusinessObjects servers. This is, of course, a large deployment but the truth is that although they want High Availability (so two services / servers of each type), the remaining three SAP BusinessObjects servers are predominantly only there for peak periods of the year (Easter, Black Friday, etc). As you can probably guess, this is for the retail industry.
That’s a big investment for something that’s only really used say 30 days a year.
How can proper monitoring help you with only using these “extra” servers when there are enough user sessions and requests to justify paying for them?
Scheduling instances is also another issue. You can predict the ones managed by IT but not easily the ones organized by the users. It would be silly to keep extra servers running overnight just in case it happens to be a busy night!
Solution: Monitor either or both:
- Number of user sessions on the SAP BusinessObjects platform (CMS)
- Number of requests on specific services. E.g. Web Intelligence Processing Server, Lumira Server, Adaptive Job Server, etc.
By using 360Live, you have the ability to monitor these metrics and easily run scripts to start/stop SAP BusinessObjects services and/or server nodes.
In the video at the beginning, I show you how I manage the solutions for the above scenarios. The architecture is as follows:
360Live monitoring SAP BusinessObjects
Using Monitoring to increase stability and to possibly improve the performance of an Application / Operating System is well known. Taking proactive actions to help us in this process is not new either but as mentioned before, it is unfortunately impossible out of the box with SAP BusinessObjects.
The scenarios covered in this blog article were directly targeted at saving hosting (on-premise or cloud) costs, and we could take it much further by being more efficient with the disk space (File Store), RAM (especially thinking about Lumira), and other expensive dependencies, processes, and services.
I hope this was useful and please do share your comments and other scenarios you have put in place or would like to implement.