Risks and advantages of ERP migration: Monolithic to serverless architecture
According to the New Stack Serverless Survey, more than three-fourths of enterprises are already using or plan to use serverless computing in the coming 18 months. This article explores some of the main risks and rewards of serverless computing and Enterprise Resource Planning (ERP). Follow the best practices when you migrate and learn how to mitigate the risks.
Serverless computing is currently one of the hottest topics in the software architecture arena. In ‘serverless computing’, the term ‘serverless’ is a contradictory one, because servers are still the part of this technology.
Then what is serverless computing?
Around a couple of decades ago, businesses needed to manage every single thing related to server-side apps, such as management of data servers, custom programs, configuring network switches, as well as data centre racks. But things got better with the introduction of cloud computing.
Cloud services allow businesses to easily rent virtual machines (VMs) from service providers, which eliminate the need to handle network provisioning.
But, they still need to worry about things related to servers like allocating, setting up, deploying, and managing the servers. These things are not only costly but also don’t allow enterprises to focus on what they do best—business.
Hence, serverless computing came to the scene. It is called serverless not because it doesn’t have servers, but because the businesses no longer need to handle the servers. The service providers take care of it.
And now, the businesses are increasingly going serverless today. As per the New Stack Serverless Survey, more than 75% of enterprises are either already using or planning to use serverless computing in the coming 18 months.
Things are the same for ERP (Enterprise Resource Planning) as well. The ERP folks also want to keep things simple and make the most of it.
Serverless computing for ERP
In this article, we will discuss the best practices to migrate the existing ERP to serverless, what are the risks involved with migration and what are the advantages of doing the same.
Just like cloud computing has Infrastructure as a Service (IaaS), Software as a Service (SaaS), and Platform as a Service (PaaS), the serverless computing has Function as a Service (FaaS).
While there are several advantages of having a serverless architecture, there are some risks involved with migrating your ERP software/app to serverless. Let’s dive deep into it.
Advantages of migrating ERP to serverless
No need to manage servers
App developers no longer need to think about servers, as this will be managed by the vendor. Without server management, it reduces the unnecessary costs spent on DevOps. Furthermore, the developers will have all their time to focus on creating and expanding the software, rather than being indulged in server management.
Serverless computing comes with a pay-as-you-go model, so the developers are charged only for the resources they use.
The code in the app runs only when the backend functions are accessed. Some apps might not need to run the code the whole day, but the developers need to keep it running.
Serverless addresses that and eliminates the need for developers to predict the number of resources needed to be purchased. It significantly reduces costs.
This is another reason why ERP apps should go serverless. When the number of users or the app usage grows, the serverless app will scale automatically and become capable of running multiple instances and functions.
Hence, the app will run efficiently even in times when traffic is high and if there is a high number of requests. This is not possible with traditional architecture.
Faster deployments and updates
Serverless architecture doesn’t need developers to perform backend configurations or upload code to servers when releasing updates to the app. They can upload bits of code faster and release the app. As a result, patches and updates can be made quickly.
Risks and challenges related to migration
Migrating an ERP app to serverless architecture is not something that can be taken lightly. It involves certain risks because the existing codebase will need rewriting. The following are the main risks and challenges that can arise.
More surface for attacks
In serverless computing, the data is consumed from several event sources, like message queues, cloud storage, HTTP APIs, IoT devices, etc. This significantly makes the potential surface large. While there is the use of standard protection measures like web application firewalls (WAFs), sometimes a number of protocols can’t be inspected by these.
This is because the surface is large and hackers have more area to attack.
It is not an easy task to visualize and monitor serverless architecture. The overall system becomes more complex compared to general software environments.
Serverless apps might sometimes need to interact with third-party services or backend cloud services. These services can run on less-secure servers or remote locations. Since there are no automated scanning tools available for testing of serverless apps, things can become inadequate and complex.
Misconfigured authorization is still a weak point that affects apps powered by cloud storage. Since most of the serverless apps make use of cloud-based storage, the risk of misconfiguration of authentication is always there.
Best practices to migrate ERP to serverless architecture
The following are the best practices to follow in order to successfully migrate your ERP software to serverless.
Find the objective
You should analyze things and understand how exactly serverless computing will help you. What pain points will be eliminated using this? What is your objective? Do you want to reduce operational costs?
When you know the objective, it becomes easier to decide which service provider will best fit your requirements.
Train your developers
After identifying the main problems, you can define the services and technologies that will be useful for you. The developers might know about these services. So, it will be better to train them on these technologies rather than outsourcing everything.
They should attend conferences and spend time learning the technologies required for serverless computing. You can also hire a serverless consultant for the team.
Create Proof of Concept
Once your team gains knowledge about the required tools and technologies it’s time for them to create a PoC, which will help in validating the hypothesis. Don’t forget that the PoC won’t be your production code. It is just to find the solution to your problems. Once the validation of the hypothesis is done, throw away the PoC.
Divide the app into microservices
Dividing the app into small components can help create light functions. When the functions and app libraries are light, it becomes easier to migrate the app to a serverless architecture. Heavy apps can consume a lot of time during migration which can sometimes cause errors. Hence, it is always better to bifurcate it into microservices.
Automate CI/CD pipelines
When the app is divided into microservices, you can automate the continuous integration (CI) of these microservices into different environments.
It is one of the most critical parts of the migration. Test the app multiple times so that you can ensure that everything is in place. All the logic of the app should work perfectly.
Serverless has an event-driven architecture where the components remain decoupled from each other. Hence, it can be difficult to understand the movements of events around the architecture. That’s why you should test, test, and test the app.
Serverless computing offers numerous benefits to all kinds of apps. ERP is no different. To ensure that you make the most of your serverless architecture, do follow the above-mentioned best practices and take care of the risks involved with it.