Fallacies of Distributed Computing: 6. There is one administrator
Tags: distributedcomputing
Published: 2020-06-25 00:00:00

---
title: "Fallacies of Distributed Computing: 6. There is one administrator"
date: "2020-06-25T00:00:00.000Z"
tags: ["distributedcomputing"]
---

[The fallacies of distributed computing](https://web.archive.org/web/20171107014323/http://blog.fogcreek.com/eight-fallacies-of-distributed-computing-tech-talk/) are a set of assertions describing false assumptions made about distributed systems. 

[L. Peter Deutsch](https://en.wikipedia.org/wiki/L._Peter_Deutsch) drafted the first 7 fallacies in 1994, with the 8<sup>th</sup> added by [James Gosling](https://en.wikipedia.org/wiki/James_Gosling) in 1997.

The 8 fallacies are:

1. [The network is reliable](https://dereklawless.ie/fallacies-of-distributed-computing-1-the-network-is-reliable)
1. [Latency is zero](https://dereklawless.ie/fallacies-of-distributed-computing-2-latency-is-zero)
1. [Bandwidth is infinite](https://dereklawless.ie/fallacies-of-distributed-computing-3-bandwidth-is-infinite)
1. [The network is secure](https://dereklawless.ie/fallacies-of-distributed-computing-4-the-network-is-secure)
1. [Topology doesn't change](https://dereklawless.ie/fallacies-of-distributed-computing-5-topology-doesnt-change)
1. [There is one administrator](https://dereklawless.ie/fallacies-of-distributed-computing-6-there-is-one-administrator)
1. [Transport cost is zero](https://dereklawless.ie/fallacies-of-distributed-computing-7-transport-cost-is-zero)
1. [The network is homogeneous](https://dereklawless.ie/fallacies-of-distributed-computing-8-the-network-is-homogeneous)

## 6. There is one administrator

### The problem

If your system is self-contained and deployed into environments you fully control and manage there may indeed be only one administrator.

However, it is more likely that any non-trivial system will depend on one or more in-house or third-party services for its operation and be deployed into environments you do not completely control or that differ from each other in any number of ways e.g. operating system and/or application framework versions, security patching policies, <abbr title="User Access Control">UAC</abbr>, shared resources, firewall rules, etc. 

Multiple in-house teams may be involved to deploy and support the system, with each operating outside the processes governing that system's development. Third-party services -- their availability, compatibility, and development cadence -- will typically exist outside your control. 

### Solutions

#### Infrastructure as Code
Where possible, automate the provisioning and configuration of the environments into which deployments are made.  [Infrastructure as Code](https://en.wikipedia.org/wiki/Infrastructure_as_code) (or <abbr title="Infrastructure as Code">IaC</abbr>) is a core element of DevOps, with infrastructure modelled in code (or <abbr title="Domain Specific Language">DSL</abbr>-as-template form) -- versus manually managed -- and are governed by the same quality processes as application source code e.g. revisioned using source control, unit tested, etc. 

> Ideally, regard <abbr>IaC</abbr> as a core competency -- that is, embed DevOps capabilities in your development teams.

#### Logging and monitoring
Diagnosing issues can be non-trivial at the best of times and particularly complex for distributed systems. To gain better visibility into the behaviour of a distributed system ensure that centralised logging, metrics, and tracing (the [Three Pillars of Observability](https://www.oreilly.com/library/view/distributed-systems-observability/9781492033431/ch04.html)) have been considered as key aspects of the system's design.

#### Decoupling
Ensuring appopriate decoupling between system components allows for greater resiliency in the event of either planned (system upgrades) or unplanned (service failure) downtime. 

> Introducing queuing (with appropriate retry policies, exponential backoff, and <abbr title="Dead Letter Queues">DLQs</abbr>) is one method of achieving decoupling.