In this article I would like to share my experience of building our company SAP infrastructure and hardware costs optimization that we have managed to achieve. Currently we have over 20 internal sap systems in our internal landscape, including about 15 HANA-based installations. We use a combined approach with Hetzner Online and Amazon web services, and our average monthly expenses for hardware rental are about EUR 1,000. In fact, this is not a productive landscape, so most of those tricks will not work once you have mission-critical systems. However, in many production scenarios serious costs saving can be achieved, and this is what I am going to describe below.
For a long time enterprise applications have been associated with expensive (and complicated in maintenance) hardware, mainframes, committed technical teams and so on. For the last few years the role of cloud solutions has increased, where a customer either only rents equipment (i.e. virtual servers), or complete application service. However, the main feature of cloud – elastic resource allocation resulting in costs saving – is not required with many scenarios typical for small- and mid-size sap installations.
The most popular idea is to optimize costs thanks to elastic capacity – disable non-required servers, change resource allocation (i.e. memory and CPU). Those make sense in case you have scale-out environment (i.e. multiple application servers). However, for most cases (except BW) you will have a single “large” HANA instance that requires one solid (and expensive) instance. Once you decide to install SAP – in many cases you do not have to dynamically resize or start/stop it on request – you just need to have it up and running, and probably you would like to have an option to increase hardware resources in case your system load grows. So, it looks like a regular server rental, the only difference is that those servers are located in cloud.
For example, a cloud instance with 256Gb RAM will cost about EUR 1,200-1,700 monthly, depending on the specific cloud provider, geo location and so on. Even if we decide to use a 8×5 schedule, in a very optimistic scenario (without taking into consideration necessary time for updates, long-time background jobs usually scheduled for night time or weekends) we still get about 400-500 EUR monthly.
Those costs might be acceptable (and even more than acceptable) once you are running a mission-critical production system. However, it is quite expensive if you are running a set of internal systems (in case if you are a sap partner), or you simply do not need all features offered by “big” cloud providers, and/or 2-4 hours’ system downtime is not a critical risk for your business ( which is usually the case with small and medium companies). Frankly speaking, you do not need 99.9999% availability of sap, unless you have the same provisions for internet connection or electrical power in your location. Based on my experience, I can say that it might make sense to consider direct server rental instead of virtualized environments.
In our company we started using Hetzner Online at the beginning of 2014 – as a cheap option to keep non-production systems for internal needs. Since 2016 we have been using it for non-production purposes together with HANA, as for those purposes it is a nice and quite a cheap option.
Now our internal landscape is based on Hetzner Online PX121-SSD servers with single Xeon E5-1650 v3 hexa-core and 256Gb RAM. For sure this is not a certified platform for HANA, but for the 2 years of usage we have never faced any hardware-related issues. We typically run 2-3 systems on one host, including IDES versions with demo data inside. Indeed, these are low-loaded systems, without a significant number of users logged in, and such a landscape cannot be suggested for any production usage.
From the technical point of view the whole production landscape will look like this:
For a long time enterprise applications have been associated with expensive (and complicated in maintenance) hardware, mainframes, committed technical teams and so on. For the last few years the role of cloud solutions has increased, where a customer either only rents equipment (i.e. virtual servers), or complete application service. However, the main feature of cloud – elastic resource allocation resulting in costs saving – is not required with many scenarios typical for small- and mid-size sap installations.
The most popular idea is to optimize costs thanks to elastic capacity – disable non-required servers, change resource allocation (i.e. memory and CPU). Those make sense in case you have scale-out environment (i.e. multiple application servers). However, for most cases (except BW) you will have a single “large” HANA instance that requires one solid (and expensive) instance. Once you decide to install SAP – in many cases you do not have to dynamically resize or start/stop it on request – you just need to have it up and running, and probably you would like to have an option to increase hardware resources in case your system load grows. So, it looks like a regular server rental, the only difference is that those servers are located in cloud.
For example, a cloud instance with 256Gb RAM will cost about EUR 1,200-1,700 monthly, depending on the specific cloud provider, geo location and so on. Even if we decide to use a 8×5 schedule, in a very optimistic scenario (without taking into consideration necessary time for updates, long-time background jobs usually scheduled for night time or weekends) we still get about 400-500 EUR monthly.
Those costs might be acceptable (and even more than acceptable) once you are running a mission-critical production system. However, it is quite expensive if you are running a set of internal systems (in case if you are a sap partner), or you simply do not need all features offered by “big” cloud providers, and/or 2-4 hours’ system downtime is not a critical risk for your business ( which is usually the case with small and medium companies). Frankly speaking, you do not need 99.9999% availability of sap, unless you have the same provisions for internet connection or electrical power in your location. Based on my experience, I can say that it might make sense to consider direct server rental instead of virtualized environments.
In our company we started using Hetzner Online at the beginning of 2014 – as a cheap option to keep non-production systems for internal needs. Since 2016 we have been using it for non-production purposes together with HANA, as for those purposes it is a nice and quite a cheap option.
Now our internal landscape is based on Hetzner Online PX121-SSD servers with single Xeon E5-1650 v3 hexa-core and 256Gb RAM. For sure this is not a certified platform for HANA, but for the 2 years of usage we have never faced any hardware-related issues. We typically run 2-3 systems on one host, including IDES versions with demo data inside. Indeed, these are low-loaded systems, without a significant number of users logged in, and such a landscape cannot be suggested for any production usage.
Non-productive hosting | |
PX121 SSD: 256 GB Gb RAM, Intel® Xeon® E5-1650 v3 Hexa-Core | 117 EUR/month |
As to production landscape provided to clients – we use DX291 – Dell PowerEdge R730 with dual Xeon E5-2620 v4 octa-core and up to 768Gb RAM. This one is officially supported by SAP and listed in HANA certified hardware directory. From the pricing perspective, we get instance with 256Gb RAM for 350 EUR per month, or in “maximum ” configuration – 756Gb RAM for approx. 900 EUR per month.
Let me sum up “ net” hardware costs for productive hosting:
Hosting option | Approximate monthly price | ||
256 Gb RAM | 512 Gb RAM | 756 Gb RAM | |
Cloud hosting 24×7 | 1200-1700 EUR | 2500-3000 EUR | 5000-5500 EUR |
Cloud hosting 8×5 | 400-500 EUR | 700-900 EUR | 1400-1700 EUR |
Hetzner Online – Dell Power Edge R730 | 350 EUR | 600 EUR | 900 EUR |
From the technical point of view the whole production landscape will look like this:
This solution is aligned with enterprise-level requirements. However, there is no way to measure how stable a single server is – this is nothing without backup solution. After trying several various options we finally decided to use Amazon S3 as external backup storage. All database backups are transferred to S3; as well as redo logs are stored in it. So, this allows keeping data for point-in-time recovery outside Hetzner Online data center and allows fast restore in case of failure.
As an additional protection option, we use reserve instance on Amazon EC2. The main idea is, that normally on SAP system only database can change, and quite rarely files on the file system. So once a server is set up on Amazon EC2 as a copy of some production system, it might be easily actualized via database restore.
The diagram of such protection (disaster-recovery) process will show as follows:
In such a way we have primary instance on Hetzner Online, and additional copy of it on AWS, switched-off most time, and hardly requiring any additional payments. However, in case of failure of “primary” Hetzner Online instance, it can be easily started , updated with latest backup and redo logs, and continue production operations. This approach allows using a cheaper hardware hosting option, and at the same time keeping unplanned downtime within 4-8 hours’ slot in the worst case. To keep access to a system transparent for the end user, access to such a system can be organized via additional load balancing instance as shown in the schema below:
In conclusion I would like to say that nowadays it is possible to keep quite complicated internal landscape and take advantage of modern in-memory computing technologies without any huge investments into internal hardware infrastructure or expensive enterprise-level cloud solution. Many scenarios will allow using less expensive hosting options; in combination with modern cloud services even production environment can be kept in such a way.
No comments:
Post a Comment