In today’s agile business environment, organizations identify an ERP as one of the critical requirements to adapt to their unique and dynamic business needs. Implementing an ERP is indeed one of the biggest IT investments for enterprises. Businesses spend a lot of effort in analyzing their processes and modeling what the ERP should do for them before choosing the right product. We assume you too would have put in considerable time in analyzing the various products out there in the market, comparing their features and assessing your requirements before you chose Epicor ERP as your ERP system.
Well, at the end of all this hard work in choosing the best ERP and implementing it, you wish to have an optimally performing application that helps to realize the expected benefits and improve your productivity. But after all these efforts, if your ERP instance is not optimized, it can often lead to a poorly performing application that can adversely impact end-user adoption and satisfaction. Hence, ensuring that your Epicor ERP is always running at its peak performance is critical for optimizing your business process efficiency and thus enhancing your productivity.
In this blog, we will cover the best practices and techniques to manage the performance of your Epicor ERP to leverage its optimal and scalable performance.
Impact of Infrastructure on Epicor ERP Performance
For an optimally performing Epicor application, the most important factor is getting a set of fundamentals of the infrastructure and application management right. So, what are the key considerations for setting up a good Epicor Infrastructure?
There are several things that should be considered while designing the infrastructure for your Epicor ERP. For instance, what type of application delivery suits your user location, what are your service requirements, what are your requirements regarding data protection, etc. It is based on your enterprise’s needs that you should arrive at the right infrastructure grades for you like the processor, the storage, etc.
Infrastructure Deployment Options for Epicor ERP
Let’s take a look at two simple infrastructure deployment options for Epicor ERP.
It is suited for a small user base of about 15 to 20 users. In this deployment option, all the architectural components are deployed onto a single server which could be a physical machine.
This deployment option is for a larger user base. Here, you have a database server hosting all the database related components ie the main ERP 10 database, the SSRS instance and the reports database. The App server holds the web server, the process server and the task agent. Then you have a choice of clients – Smart Client that is deployed directly on the users laptops or desktops and the application can be accessed through that or a virtualized app delivery platform like Citrix Server to access the application. The choice of clients really depends on the kind of LAN connectivity you have with the end-users. For LAN latencies less than 60 milliseconds, smart client is good enough. But if the network latency is anything more than that, it is recommended to use a delivery platform like Citrix Parallels.
However, the above deployment options do have some basic infrastructure requirements:
- A processor delivering baseline CPU speed of at least 3 Ghz for the app server
- A low latency (< 0.8 ms) network connectivity between the servers
- Disk ( storage ) with a good throughput and low IO latency (like SSD)
Approach for Epicor Performance Management
We have seen the deployment options for Epicor for delivering optimal performance. But then, it’s not just about getting the implementation right initially. Your approach for performance management should also extend to maintaining the infrastructure periodically. Thus, your performance management approach should ideally focus on the following steps:
- Getting the key infrastructure graded right
- Sizing the infrastructure deployment correctly considering the number and location spread of users
- Maintaining the infrastructure in a proper manner
- Reviewing and re-validating the deployment on a periodic basis
- Managing the code
Reviewing and Maintaining Your Infrastructure for Optimal Performance
You need to review the performance of your ERP system every now and then as the application and user needs keep changing over its lifecycle. But, how often is that to be done? Well, the answer is – at every key milestone. Now, what is meant by a milestone? A milestone can essentially be any significant update to your ERP system like:
- Onboarding a significant number of users
- Adding new user sites
- Major upgrade of Microsoft platforms or product
- Major integrations, adding major new features
Any of these activities should be preceded and followed by a thorough review of the infrastructure. So, why do we need to do these reviews? It’s because these milestones can possibly place a huge load onto the infrastructure. It can lead to users complaining of sluggish performance or system crashes, infrastructure resources (CPU, memory, storage, network) getting overloaded or if you have a monitoring system it can trigger too many alerts that can overwhelm your technical staff. All these can potentially leave you in a state of total chaos. Hence, it is very important to review the infrastructure deployment periodically and at key milestones.
Now that we have seen why and when we should be reviewing the deployment, let’s see how to review and maintain your Infrastructure.
For key milestones review of deployment, the steps recommended are:
- Run PDT “server config checks” module and see if the infrastructure passes the test of various parameters.
- Measure current performance and compare it with the benchmarks in the Epicor Performance Tuning Guide.
Following the above steps can ensure that your Epicor ERP system remains healthy after or before the milestone. Now, how do you maintain your infrastructure? There are certain activities that you should perform periodically to ensure your Epicor system is running at its peak performance.
Overview of the Epicor Component Architecture
Before we get into further details, let’s spend a few minutes understanding what the Epicor system components are. Here is how the component architecture of Epicor look like:
Component Architecture of Epicor ERP
How to Maintain Infrastructure?
- Patch the OS & SQL regularly
- Have a good back up plan for the SQL.
- A typical plan can be T Log every 30 mins, daily diff and weekly full.
- Incorporate a robust weekly maintenance plan for the SQL
- Applying relevant security policies
Impact of Development Efforts on Epicor Performance Management
Epicor ERP is a highly flexible system that gives developers the ability to work around with it to meet their enterprise needs using custom code, BPM and BAQs. Developers can do agile customizations from declaring dynamic “row rules” to creating data-driven behaviors such as changing color or style. Another powerful and unique feature in Epicor ERP 10 is Epicor Business Process Management (BPM) that allows administrators to augment or replace service behavior with custom rules or managed code. Any of the nearly 20,000 service operations that comprise ERP 10 can be intercepted and incorporated into a rules-based workflow. BPM workflows can be triggered to run before, instead of, or after the baseline processing. Now comes another very useful capability of Epicor ERP, BAQ. A BAQ is essentially a T-SQL data query and can be used for defining relevant data for searching, monitoring, or for use in integrations.
BAQs, BPMs and Customizations give the agility and flexibility to your Epicor ERP making it a platform for adaptive ERP. But all these, if not done carefully can often lead to serious performance problems. If we look at which of these has the highest impact to Performance of your Epicor ERP, the third place goes to Customizations. Customizations and custom stored procedures executing in the client side of the system is relatively “non-invasive” and does not cause serious problems to your Epicor ERP performance.
The second position for impact to performance goes to BPMs. A bad design of BPM executed within transactions can possibly go to your database to result in an infinite loop and can definitely cause a spike in your CPU.
And, the first position goes to BAQs. A BAQ is the backbone of many things in your ERP system such as dashboards, reports, custom searches, etc. Usually developers consider BAQ very easy to design as the Epicor system automatically takes care of several things when you try to design it. Hence, many actually do not understand the complete nuances behind it and do not realize you are in fact creating a query in the background when you design a BAQ. So, if you design it poorly it can potentially break the SQL which can hog the entire server resources and can possibly end up in severe performance issues in the overall Epicor instance. Read our blog on BAQ Execution Plan to understand the best practices for designing BAQs.
Thus, your Epicor ERP performance can be impacted by anything from a miss in the fundamentals of infrastructure deployment to changes to the Epicor system over its lifetime including any milestones or changes in code. It is important to keep a check on all of these to ensure the optimal performance of your Epicor ERP application. We hope this article helped you to get a better picture of Epicor ERP Performance Management – Impact of infrastructure deployment and development efforts on the performance and the best practices for these. Contact us for any Performance tuning or BAQ Support.