Flexibility, adaptability, elasticity, pliability – all synonyms that differ in meaning to some extent, but have one thing in common in terms of meaning: It is about change and mobility. Circumstances and situations are constantly changing, whether in private life, business, politics or technology. At the same time, the demand for flexibility is becoming more and more important.
The term flexibility also has a certain significance in the area of IT. In this case, it is particularly about the scalability of processes.
First, let’s clarify what is behind the term scalability. Scalability means that an IT asset or system can adapt to new requirements of an operator and take advantage of the new situation. Accordingly, processes are considered scalable if they continue to function to meet requirements after changes in size or volume. For example, scalability allows an application to move from a smaller to a larger software environment.
A distinction is made between vertical and horizontal scaling:
- vertical scaling (scale up): performance increase by adding resources to a node/computer within the system (e.g. increasing memory or adding CPU)
- horizontal scaling (scale out): increasing the performance of a system by adding additional nodes/computers.
Why is scalability important?
A single server running the corresponding application is no longer sufficient these days. The amount of data to be processed is increasing exponentially. As your application grows, consuming significantly more memory, at a certain point the server becomes overloaded and the application no longer functions smoothly. There is a risk that the server will fail, and thus your product will no longer be available.
One way to solve the problem is to expand the hardware: for example, buy a larger server or install more hard drives. However, this also means that you are taking on a lot more work. This is because you will have to deal with extra staff, management, monitoring, and possibly other additional costs. In addition, you cannot easily grow to 10, 20 or 100 times the size.
Problems that occur without a scalable infrastructure include:
- Incorrect or delayed execution of functions (e.g. warning emails)
- Overload of the memory with too large amounts of data
- Impeded growth opportunities
To avoid these problems and ensure flexibility, scalability is necessary.
Why scalability is important right from the start
To illustrate why scalability matters right from the start of an Industrial Internet of Things project (short: IIoT project), let’s imagine the following scenario:
A medium-sized company that manufactures food packaging decides to take the step towards IIoT. The production is equipped with old PLC controllers, one or two host computers and a server. The management is aware that the company has a rather poor infrastructure and they are now considering how to upgrade it. After some deliberation, IT specialists are hired to work on a solution for the next one to two years. Unfortunately, after two years it has to be determined that the solution is not sustainable because the company’s resources are not sufficient.
The scenario illustrates how important it is to ensure scalability from the very start. For example, the company mentioned above could have saved itself the effort and high costs of the backend by using the cloud. This is because by using a cloud, you are able to make use of the cloud provider’s infrastructure instead of setting it up and maintaining it yourself.
Set a clear goal at the beginning of your IIoT project, such as achieving machine learning. This way, you can now look at the project from the desired end result and consider what data needs to be collected to achieve the goal and whether the resources in your organization are sufficient to do so. By thinking about scalability in this early stage, you prevent yourself from reaching the limits of your resources after a few years and the project not running satisfactorily.
Infinitely scalable – With the scitis.io framework based on Google Cloud Infrastructure
The scitis.io framework is based 100% on the Google Cloud infrastructure. The big advantage is that the tools are fully managed services. This allows users to focus on their code and application while Google takes care of the backend. Another feature is autoscaling, which enables high scalability. Depending on the incoming traffic, additional instances (= computing units that are used) are already prepared. These prepared instances always adjust automatically in the background depending on the traffic.
For example, if you have four active instances, more than double the number of instances will already be prepared by autoscaling if the traffic increases. This way you do not run the risk of reaching the limits of your resources and a failure in the availability of the portal can be prevented.
In summary, there are several advantages to scalability in the cloud:
- You only pay for the instances you actually use
- Cloud costs are cheaper than setting up and maintaining the IT infrastructure yourself
- Workload: IT professionals can invest their time wisely and do not have to spend it on routine activities
- Concentration on the essentials: You don’t have to worry about the backend, but can concentrate on programming
Consider the scalability of your system as early as possible. A scalable infrastructure opens all doors for you in the further course of your project. Especially if you don’t have a precise idea of the project’s dimensions at the beginning, it’s also an advantage if you don’t tie yourself down to fixed resources. Start flexible with the prospect of great success!