to be transferred, particularly with our layered framework presented next.

Layering
--------

(base) \[process, minimum height=3.5cm, align=center, rounded corners=0.5cm, fill=blue!30\] [Base\
(e.g. Ubuntu Server)]{}; (app1) \[process, right of=base, yshift=1cm, minimum height=1.6cm, align=center, rounded corners=0.2cm, fill=blue!10\] [Application 1\
(e.g. Game Server)]{}; (app2) \[process, right of=base, yshift=-1cm, align=center, minimum height=1.6cm, rounded corners=0.2cm, fill=blue!10\] [Application 2\
(e.g. Face Detection)]{}; (instance1) \[process, right of=app1, yshift=0.5cm, minimum height=0.7cm, rounded corners=0.2cm, fill=blue!3\] [Instance 1]{}; (instance2) \[process, right of=app1, yshift=-0.5cm, minimum height=0.7cm, rounded corners=0.2cm, fill=blue!3\] [Instance 2]{}; (instance3) \[process, right of=app2, minimum height=0.7cm, rounded corners=0.2cm, fill=blue!3\] [Instance 3]{}; (baseLayer) \[draw=none, above of=base, yshift=-0.9cm, font=**\] [Base Layer]{}; (appLayer) \[draw=none, above of=app1, yshift=-1.9cm, font=**\] [Application Layer]{}; (instanceLayer) \[draw=none, above of=instance1, yshift=-2.4cm, font=**\] [Instance Layer]{}; (1.5,-2) – (1.5,2.5); (1.5,2.5) – (4.7,2.5); (4.7,-2) – (4.7,2.5); (1.5,-2) – (4.7,-2); (base) – (app1); (base) – (app2); (app1) – (instance1); (app1) – (instance2); (app2) – (instance3);******

(start) \[startstop\] [Source:\
Start migration]{}; (instanceFound) \[decision, below of=start, yshift=-2cm\] [Destination: Instance found]{}; (appFound) \[decision, below of=instanceFound, yshift=-1cm\] [Destination: App found]{}; (baseFound) \[decision, below of=appFound, yshift=-1cm\] [Destination: Base found]{}; (cloneBase) \[process, minimum width=3.5cm, text width=3.5cm,left of=baseFound, xshift=-3.5cm\] [Destination:\
Clone base as app]{}; (rsyncBase) \[process, minimum width=3.5cm, text width=3.5cm,below of=cloneBase, yshift=0.5cm\] [Source to destination:\
*rsync* base filesystem]{}; (cloneApp) \[process, 