|
Pythomnic » Documentation » Architecture (nodes and cages)
Parts of Pythomnic application therefore run on separate machines called
"nodes", each part in its own separate Python process called "cage".
All cages are technically identical, although within your application
each will likely perform its own specific functions clearly defined by the
developer. Most likely, some cages will stay on "perimeter", accepting requests
directly from the application clients (other applications or systems or from the
users directly). Other cages will in turn perform background processing of the
accepted requests. Yet other will interface to other systems whose services
are required.
Some of the benefits of having the application partitioned like that are the following:
1. Location independence.
A cage can be migrated from one node to
another by simply copying the files over, and all the other cages will
become aware without any reconfiguration.
2. Redundancy
Although each cage is performing its own specific function,
more than one instance of the same cage can be run, presumably on different
nodes. This allows adding redundancy to the application very simply.
3. Fault tolerance.
Separate processes, even more so running on separate
machines, add significantly to the reliability of the application, allowing it to
survive hardware failures or process crashes. This also helps when you have to
stop one of the servers for maintenance.
4. Rudimentary load balancing.
Since multiple identical cages can be run
simultaneously, each of them can be handling a share of a load. This load balancing
is only a side effect and is not perfect or even.
5. Increased parallelism.
Python supports hardware threads but is very ineffective
with respect to multithreaded CPU-bound applications performance. Having
more than one cage even at the same node will utilize the so hailed multiple
cores at the expense of inter-process communication.
|
Features Download Documentation Tutorial |