4 Architecting IoT Cloud
237
comes at a runtime cost. To increase the speedup, in some cases, it might be
possible to reuse containers. For example, if the same action is triggered for the
second time, and the first action has already completed, OpenWhisk might be
able to use the previous container without creating a new container. If a container
is already available, we call it a warm container. On the other hand, when there
is not an already initialized container available, the invoker needs to spin up a
new one. This case is typically referred to as cold start and the newly created
container is called cold container.
4.11 Scaling
Today’s IoT Clouds are required to serve thousands or millions of simultaneous
requests from devices or users and return accurate responses in a quick and
dependable manner. Challenges around scalability are frequently faced by IT
managers because it can be arduous to forecast the growth of applications, storage
needs, and bandwidth consumption. Infrastructure scalability manages evolving
application needs by adding or subtracting resources to accommodate demands as
required. In many instances this can be achieved through vertical scaling (scalingup) or through horizontal scaling (scaling-out).
4.11.1 Vertical Scaling (Scale-Up)
Vertical scaling is used to obtain a certain level of performance through increasing
the capacity of an existing machine (server) by addition of more power (CPU,
RAM, storage) to it. For example, web servers or databases require extra resources
such as storage, memory, computing power, or network in order to maintain an
optimal performance level. When the Cloud is utilized to achieve this, applications
are often migrated to a more powerful host or instance as the previous server
is retired. Vertical scaling can also be accomplished in software through the
addition of connections, threads, or by increasing cache size (applicable to database
applications) as well. Note that vertical scaling is not a good option to scale
dynamically, since it usually involves downtime for the system. MySQL is a good
example of scale-up.
4.11.2 Horizontal Scaling (Scale-Out or Clustering)
Clustering, also known as horizontal scaling or scale-out, references the ability to
connect two or more machines so that they appear to function as a single, virtual
machine. Horizontal scaling is most often associated with distributed architectures
and includes the addition of machines (nodes) to a system. This method of scaling
Précédent

- 244/647

Suivant