Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ThingWorx Horizontal Scalability

What architecture and application development best practices must be followed in order to scale a TWX application?

The majority of applications start with few devices but with time they quickly build up to thousands of devices. Once the amount of traffic is too much for one TWX instance what strategy should be followed? The same question applies when the front end is overwhelmed by the number of users.

like image 653
Mgccon Avatar asked Mar 13 '18 16:03

Mgccon


People also ask

What is horizontal scalability in cloud computing?

Horizontal scaling refers to provisioning additional servers to meet your needs, often splitting workloads between servers to limit the number of requests any individual server is getting. Horizontal scaling in cloud computing means adding additional instances instead of moving to a larger instance size.

What is Horizontal Scalability in Big data?

Scaling horizontally is the same as scaling by adding more machines to a pool or resources — but instead of adding more power, CPUs, or RAM, you scale back to existing infrastructure. Horizontal scaling allows you to scale your data with more resources than you can add resources using vertical scaling.

What is horizontal and vertical scalability in big data?

Horizontal scaling means scaling by adding more machines to your pool of resources (also described as “scaling out”), whereas vertical scaling refers to scaling by adding more power (e.g. CPU, RAM) to an existing machine (also described as “scaling up”).

What is horizontal scalability in AWS?

Horizontal scaling, commonly referred to as scale-out, is the capability to automatically add systems/instances in a distributed manner in order to handle an increase in load. Examples of this increase in load could be the increase of number of sessions to a web application.


1 Answers

Anytime I have had ThingWorx architecture concerns, I have been redirected to the PTC ThingWorx guide linked below. I do not believe you need a PTC account to view it, but if so it is free.

ThingWorx 8 High Availability Administrators Guide http://support.ptc.com/WCMS/files/173281/en/ThingWorx_8_High_Availability_Administrators_Guide.pdf

In your case where you have big load concerns, the guide recommends using two ThingWorx instances to handle the load.

At least two ThingWorx instances are required for HA configuration. A single instance is started, which becomes leader and fully connects to the database. Standby servers boot up and can become the leader if needed, but they do not fully connect to the database or load information like the leader does. All ThingWorx servers have a service that is called by the load balancer, which indicates their availability. Different codes identify the leader, which receives traffic, and standby nodes, which do not receive traffic but may become leader.

High-Level Architecture example from the referenced guide: HighLevel Example Thingworx Architecture

The Load Balancer determines which ThingWorx instance is to be used by the user. Usually it is used to determine which is available in a redundant architecture (which is what makes it Highly Available). However, it can also be used to determine which to use based on performance. In PTC's HA Admin Guide, they use HAProxy (see page 47) as the Load Balancer. See Section 3.2 of the HAProxy Config Doc for how to configure based on performance.

Hope this helps! It is a pretty open-ended topic

like image 65
Andrew Drake Avatar answered Oct 18 '22 22:10

Andrew Drake