arch-guide: add section flexibility of granularities

This commit is contained in:
Thomas Schoebel-Theuer 2019-09-11 13:01:47 +02:00 committed by Thomas Schoebel-Theuer
parent c851a3b779
commit 4218cbc0d6
3 changed files with 966 additions and 0 deletions

View File

@ -0,0 +1,49 @@
#FIG 3.2 Produced by xfig version 3.2.7a
Landscape
Center
Metric
A4
100.00
Single
-2
1200 2
5 1 0 1 0 7 50 -1 -1 0.000 0 1 1 0 3600.000 -1462.500 1350 900 3600 1800 5850 900
1 1 2.00 90.00 150.00
5 1 0 1 0 7 50 -1 -1 0.000 0 1 1 0 4950.000 -1462.500 2700 900 4950 1800 7200 900
1 1 2.00 90.00 150.00
5 1 0 1 0 7 50 -1 -1 0.000 0 0 1 0 2925.000 -1462.500 5175 900 2925 1800 675 900
1 1 2.00 90.00 150.00
5 1 0 1 0 7 50 -1 -1 0.000 0 0 1 0 4275.000 -1462.500 6525 900 4275 1800 2025 900
1 1 2.00 90.00 150.00
2 2 0 1 0 2 50 -1 -1 0.000 0 0 -1 0 0 5
450 450 900 450 900 900 450 900 450 450
2 2 0 1 0 2 50 -1 20 0.000 0 0 -1 0 0 5
1125 450 1575 450 1575 900 1125 900 1125 450
2 2 0 1 0 2 50 -1 -1 0.000 0 0 -1 0 0 5
1800 450 2250 450 2250 900 1800 900 1800 450
2 2 0 1 0 2 50 -1 20 0.000 0 0 -1 0 0 5
2475 450 2925 450 2925 900 2475 900 2475 450
2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
225 225 3150 225 3150 1125 225 1125 225 225
2 2 0 1 0 2 50 -1 -1 0.000 0 0 -1 0 0 5
5625 450 6075 450 6075 900 5625 900 5625 450
2 2 0 1 0 2 50 -1 20 0.000 0 0 -1 0 0 5
6300 450 6750 450 6750 900 6300 900 6300 450
2 2 0 1 0 2 50 -1 -1 0.000 0 0 -1 0 0 5
6975 450 7425 450 7425 900 6975 900 6975 450
2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
4725 225 7650 225 7650 1125 4725 1125 4725 225
2 2 0 1 0 2 50 -1 20 0.000 0 0 -1 0 0 5
4950 450 5400 450 5400 900 4950 900 4950 450
4 1 0 50 -1 18 12 0.0000 4 150 360 675 765 LV1\001
4 1 0 50 -1 18 12 0.0000 4 150 360 1350 765 LV2\001
4 1 0 50 -1 18 12 0.0000 4 150 360 2025 765 LV3\001
4 1 0 50 -1 18 12 0.0000 4 150 360 2700 765 LV4\001
4 1 0 50 -1 18 12 0.0000 4 150 360 5175 765 LV1\001
4 1 0 50 -1 18 12 0.0000 4 150 360 5850 765 LV2\001
4 1 0 50 -1 18 12 0.0000 4 150 360 6525 765 LV3\001
4 1 0 50 -1 18 12 0.0000 4 150 360 7200 765 LV4\001
4 1 0 50 -1 18 12 0.0000 4 150 1170 1575 90 Datacenter A\001
4 1 0 50 -1 18 12 0.0000 4 150 1170 6300 90 Datacenter B\001
4 1 0 50 -1 16 12 1.5708 4 195 705 4635 675 Hyper B\001
4 1 0 50 -1 16 12 1.5708 4 195 705 135 675 Hyper A\001

View File

@ -0,0 +1,49 @@
#FIG 3.2 Produced by xfig version 3.2.7a
Landscape
Center
Metric
A4
100.00
Single
-2
1200 2
5 1 0 1 0 7 50 -1 -1 0.000 0 1 1 0 2925.000 -1462.500 675 900 2925 1800 5175 900
1 1 2.00 90.00 150.00
5 1 0 1 0 7 50 -1 -1 0.000 0 1 1 0 3600.000 -1462.500 1350 900 3600 1800 5850 900
1 1 2.00 90.00 150.00
5 1 0 1 0 7 50 -1 -1 0.000 0 1 1 0 4950.000 -1462.500 2700 900 4950 1800 7200 900
1 1 2.00 90.00 150.00
5 1 0 1 0 7 50 -1 -1 0.000 0 1 1 0 4275.000 -1462.500 2025 900 4275 1800 6525 900
1 1 2.00 90.00 150.00
2 2 0 1 0 2 50 -1 20 0.000 0 0 -1 0 0 5
450 450 900 450 900 900 450 900 450 450
2 2 0 1 0 2 50 -1 20 0.000 0 0 -1 0 0 5
1125 450 1575 450 1575 900 1125 900 1125 450
2 2 0 1 0 2 50 -1 20 0.000 0 0 -1 0 0 5
1800 450 2250 450 2250 900 1800 900 1800 450
2 2 0 1 0 2 50 -1 20 0.000 0 0 -1 0 0 5
2475 450 2925 450 2925 900 2475 900 2475 450
2 2 0 1 0 2 50 -1 -1 0.000 0 0 -1 0 0 5
5625 450 6075 450 6075 900 5625 900 5625 450
2 2 0 1 0 2 50 -1 -1 0.000 0 0 -1 0 0 5
6975 450 7425 450 7425 900 6975 900 6975 450
2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
4725 225 7650 225 7650 1125 4725 1125 4725 225
2 2 0 1 0 2 50 -1 -1 0.000 0 0 -1 0 0 5
4950 450 5400 450 5400 900 4950 900 4950 450
2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
225 225 3150 225 3150 1125 225 1125 225 225
2 2 0 1 0 2 50 -1 -1 0.000 0 0 -1 0 0 5
6300 450 6750 450 6750 900 6300 900 6300 450
4 1 0 50 -1 18 12 0.0000 4 150 360 675 765 LV1\001
4 1 0 50 -1 18 12 0.0000 4 150 360 1350 765 LV2\001
4 1 0 50 -1 18 12 0.0000 4 150 360 2025 765 LV3\001
4 1 0 50 -1 18 12 0.0000 4 150 360 2700 765 LV4\001
4 1 0 50 -1 18 12 0.0000 4 150 360 5175 765 LV1\001
4 1 0 50 -1 18 12 0.0000 4 150 360 5850 765 LV2\001
4 1 0 50 -1 18 12 0.0000 4 150 360 6525 765 LV3\001
4 1 0 50 -1 18 12 0.0000 4 150 360 7200 765 LV4\001
4 1 0 50 -1 18 12 0.0000 4 150 1170 1575 90 Datacenter A\001
4 1 0 50 -1 18 12 0.0000 4 150 1170 6300 90 Datacenter B\001
4 1 0 50 -1 16 12 1.5708 4 195 705 4635 675 Hyper B\001
4 1 0 50 -1 16 12 1.5708 4 195 705 135 675 Hyper A\001

View File

@ -3208,6 +3208,874 @@ Confusion of solution classes and/or their corresponding problem classes
persons.
\end_layout
\begin_layout Subsection
Flexibility of Handover / Failover Granularities
\begin_inset CommandInset label
LatexCommand label
name "subsec:Flexibility-of-Failover"
\end_inset
\end_layout
\begin_layout Standard
Typical management buzzwords like DR = Disaster Recovery or CDP = Continuous
Data Protection are neglecting the
\emph on
granularity
\emph default
of the data units to be protected by replication, and the ability for quick
service
\begin_inset Foot
status open
\begin_layout Plain Layout
In the table,
\begin_inset Quotes eld
\end_inset
Backup
\begin_inset Quotes erd
\end_inset
means that only the data is replicated into a different datacenter.
In difference,
\begin_inset Quotes eld
\end_inset
Replication
\begin_inset Quotes erd
\end_inset
means that both the data and the necessary compute resources are available
in two datacenters.
\end_layout
\end_inset
handover due to
\series bold
maintenance
\series default
reasons such as power supply maintenance.
The following table explains some differences when granularity aspects
like replication at physical volume (PV) aka physical disk level versus
logical volume (LV) resp filesystem level are taken into account:
\end_layout
\begin_layout Standard
\noindent
\align center
\begin_inset Tabular
<lyxtabular version="3" rows="17" columns="3">
<features tabularvalignment="middle">
<column alignment="left" valignment="top" width="0pt">
<column alignment="left" valignment="top" width="0pt">
<column alignment="left" valignment="top" width="0pt">
<row>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
Method
\end_layout
\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
Disadvantages
\end_layout
\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
Advantages
\end_layout
\end_inset
</cell>
</row>
<row>
<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
Backup at FS level
\end_layout
\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
no real data consistency
\end_layout
\end_inset
</cell>
<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
logical copy
\end_layout
\end_inset
</cell>
</row>
<row>
<cell multirow="4" alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
no handover / failover
\end_layout
\end_inset
</cell>
<cell multirow="4" alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
</row>
<row>
<cell multirow="4" alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
no load balancing
\end_layout
\end_inset
</cell>
<cell multirow="4" alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
</row>
<row>
<cell multirow="4" alignment="left" valignment="top" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
no CDP / high MTTR
\end_layout
\end_inset
</cell>
<cell multirow="4" alignment="left" valignment="top" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
</row>
<row>
<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
Backup via FS snapshots
\end_layout
\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
handover cumbersome
\end_layout
\end_inset
</cell>
<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
some point-in-time consistency
\end_layout
\end_inset
</cell>
</row>
<row>
<cell multirow="4" alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
no real load balancing
\end_layout
\end_inset
</cell>
<cell multirow="4" alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
</row>
<row>
<cell multirow="4" alignment="left" valignment="top" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
medium to high MTTR
\end_layout
\end_inset
</cell>
<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
logical copy
\end_layout
\end_inset
</cell>
</row>
<row>
<cell multirow="4" alignment="left" valignment="top" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
delayed consistency
\end_layout
\end_inset
</cell>
<cell multirow="4" alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
</row>
<row>
<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
Replication at PV granularity
\end_layout
\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
whole clusters switch
\end_layout
\end_inset
</cell>
<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
easier to setup
\end_layout
\end_inset
</cell>
</row>
<row>
<cell multirow="4" alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
no load balancing
\end_layout
\end_inset
</cell>
<cell multirow="4" alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
</row>
<row>
<cell multirow="4" alignment="left" valignment="top" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
physical copy
\end_layout
\end_inset
</cell>
<cell multirow="4" alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
</row>
<row>
<cell multirow="4" alignment="left" valignment="top" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
medium MTTR
\end_layout
\end_inset
</cell>
<cell multirow="4" alignment="left" valignment="top" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
</row>
<row>
<cell multirow="3" alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
Replication at LV granularity
\end_layout
\end_inset
</cell>
<cell multirow="3" alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
physical copy
\end_layout
\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
load balancing between LVs
\end_layout
\end_inset
</cell>
</row>
<row>
<cell multirow="4" alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
<cell multirow="4" alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
easy migration / Football
\end_layout
\end_inset
</cell>
</row>
<row>
<cell multirow="4" alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
<cell multirow="4" alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
full handover consistency
\end_layout
\end_inset
</cell>
</row>
<row>
<cell multirow="4" alignment="left" valignment="top" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
<cell multirow="4" alignment="left" valignment="top" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\end_layout
\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
low MTTR
\end_layout
\end_inset
</cell>
</row>
</lyxtabular>
\end_inset
\end_layout
\begin_layout Standard
\noindent
In order to implement flexibility of handover / failover, the network infrastruc
ture (as well as other infrastructures) must support it.
Here are
\series bold
levels of flexibility
\series default
, in ascending order:
\end_layout
\begin_layout Enumerate
\begin_inset Argument 1
status open
\begin_layout Plain Layout
start=0
\end_layout
\end_inset
(completely inflexible) Statically assigned IP addresses at
\emph on
each
\emph default
server and at
\emph on
both
\emph default
of 2 datacenters, and in particular for
\series bold
customer traffic
\series default
.
This is typical for contemporary backup solutions.
As a consequence, any handover / failover attempt would need massive sysadmin
work, even if there were enough CPU and RAM power at the target datacenter.
Switching whole datacenters or bigger server farms would take days, if
not weeks, to manually reconfigure.
Consequence: sysadmins will heavily dislike such type of work (acceptance
problem of geo-redundancy).
\end_layout
\begin_layout Standard
\begin_inset Graphics
filename images/MatieresCorrosives.png
lyxscale 50
scale 17
\end_inset
Some people think this can be easily done at DNS level.
Just update all of your publicly visible DNS records to point to the new
IP addresses.
However, DNS updates have serious drawbacks for public internet traffic.
Although there exists a field TTL = Time To Live for limiting the caching
period of DNS clients, this field is
\emph on
ignored
\emph default
by many clients / DNS caches throughout the world.
In practice it will take days, if not weeks, until the last client has
got the new IP address, even if you try to speed this up by setting a TTL
of 1 minute.
It simply does not work as expected.
\end_layout
\begin_layout Standard
\noindent
\begin_inset Graphics
filename images/lightbulb_brightlit_benj_.png
lyxscale 12
scale 7
\end_inset
Dynamic routing protocols at AS = Autonomous Systems level are your friend,
such as BGP = Border Gateway Protocol.
For any
\emph on
serious
\emph default
geo-redundancy, it is a
\series bold
must
\series default
.
If you don't have the ability for
\series bold
dynamic routing at the appropriate granularity
\series default
, you should better not claim that you are geo-redundant.
If handover / failover takes far longer than acceptable by customer expectation
s / SLAs (typically minutes), you are
\emph on
not really
\emph default
geo-redundant from the viewpoint of your customers.
\end_layout
\begin_layout Enumerate
(inflexible) Manual or semi-automated routing at datacenter uplink level.
Here the customer traffic is always routed to the
\emph on
same
\emph default
IP visible from outside, while there is a
\emph on
separate
\emph default
static IP per server for sysadmin
\family typewriter
ssh
\family default
access.
The customer traffic routing needs to be changed
\emph on
globally
\emph default
for the
\emph on
complete
\emph default
traffic to
\emph on
any
\emph default
of two datacenters, and thus is very inflexible.
This model protects
\emph on
only
\emph default
against a full datacenter loss, but almost nothing else.
Unfortunately, this model appears very simple to implement, so both staff
and chief executive managers are sometimes preferring this
\begin_inset Quotes eld
\end_inset
simple
\begin_inset Quotes erd
\end_inset
model, although it causes headaches at operational level when really needed.
\end_layout
\begin_layout Enumerate
(medium flexibility) Dynamic routing of customer traffic at the granularity
of building blocks, or even per hypervisor / physical server.
When automated appropriately, switchover is a matter of minutes, or even
seconds.
\end_layout
\begin_layout Enumerate
(flexible) Dynamic routing of each VM / LV / resource, individually.
This has massive advantages: in case of overload, DDOS attacks, etc, you
can quickly load-balance into a so-called
\series bold
butterfly runtime configuration
\series default
: half of your VMs belonging to the same hypervisor is running in datacenter
A, while the other half is running in datacenter B.
In the following illustration showing one hypervisor per datacenter, green
color denotes the active (primary) side, while white means passive (secondary):
\begin_inset Newline newline
\end_inset
\begin_inset Graphics
filename images/replication-butterfly.fig
width 100line%
\end_inset
\begin_inset Newline newline
\end_inset
During butterfly, each of your hypervisor iron has to carry only
\emph on
half
\emph default
of the ordinary workload.
For comparison, here is the normal situation where only datacenter A would
be active:
\begin_inset Newline newline
\end_inset
\begin_inset Graphics
filename images/replication-normal.fig
width 100line%
\end_inset
\begin_inset Newline newline
\end_inset
In the above butterfly configuration, you have essentially
\series bold
doubled the available CPU and RAM power
\series default
, when compared to the ordinary situation where side B does not carry any
application workload.
This is a
\emph on
tremendous
\emph default
aid for
\series bold
survival
\series default
of certain types of incidents, such as (unhandled
\begin_inset Foot
status open
\begin_layout Plain Layout
There is no 100% DDOS protection.
Attackers are continuosly improving their methods.
Catching all types of novel patterns is not possible in general.
\end_layout
\end_inset
) DDOS attacks.
\end_layout
\begin_layout Enumerate
(most flexible) In addition to dynamic routing at VM level, the VMs are
\series bold
location transparent
\series default
(see section
\begin_inset CommandInset ref
LatexCommand nameref
reference "sec:Location-transparency"
plural "false"
caps "false"
noprefix "false"
\end_inset
).
They may transparently migrate to another hypervisor, possibly residing
in another building block, or even residing in a different datacenter.
In its most general form, the number of replicas may be different for each
VM, and may change dynamically, adapting to any needs.
\end_layout
\begin_layout Standard
\noindent
\begin_inset Graphics
filename images/lightbulb_brightlit_benj_.png
lyxscale 12
scale 7
\end_inset
The
\series bold
ability for butterfly
\series default
is relevant at CTO level.
It is a massive
\series bold
risk reducer
\series default
, even at company and at stock exchange value level.
\end_layout
\begin_layout Standard
In order to really get it implemented in its best form, CTOs should clearly
require
\end_layout
\begin_layout Standard
\noindent
\align center
\series bold
Location Transparency
\end_layout
\begin_layout Standard
\noindent
It means that not only your servers, but also your
\series bold
services
\series default
can run in any of more than 1 datacenter, without notice by your customers.
The location of your services is no longer a primary key, but a dependent
runtime attribute which may change at runtime.
Of course, your databases, your dashboards, your monitoring, and other
surrounding tools, must also be able to properly deal with location transparenc
y.
\end_layout
\begin_layout Standard
Example: 1&1 Ionos ShaHoLin = Shared Hosting Linux has implemented it on
thousands of servers, and on several petabytes of data.
\end_layout
\begin_layout Subsection
Example: Point-in-time Replication via ZFS Snapshots
\begin_inset CommandInset label