Raja's Exocortex

Simplicity and Complexity

Quotes

Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better. - Edsger Dijkstra

When I was a kid, I used to tell scary stories. I've grown, now I tell people about programming. - Venkat Subramaniam

Don't Walk Away from Complexity, Run • Venkat Subramaniam • GOTO 2018

System Design Choices

  1. Discrete and interconnected system using simple components
  2. Single integrated but complex system

A simple and discrete with many independent and interconnected components is always better. But the components need to connect via well know and industry standard interfaces.

Troubleshooting and break fixing an modular system is easier than trying to fix a complex system. The failure mode of simple systems are well understood. Complex system can fail in complex ways and troubleshooting is hard.

A modular system can be scaled independently for performance or capacity.

Example: VMware vSAN vs Shared SAN Storage

Design choice is between:

  1. VMware vSAN cluster - a hyper converged solution that uses traditional servers for compute and storage. The vSAN cluster nodes have special configuration of disk (SSD and HDD) and network (10GigE or better) to provide a replicated and redundant pool of storage for VMs.
  2. VMware cluster with SAN storage - a traditional solution that has all compute servers in a cluster with storage provided by a SAN (FC/iSCSI) controller. The SAN controller provides a highly available storage platform that is shared to all compute servers. Compute and storage are separated, and integrated via well known protocols like Fiber Channel.

Troubleshooting: Performance

In vSAN, if a storage performance issue occurs, the causes can be exhaustion of CPU on the vSAN node due to a noisy VM, insufficient bandwidth on the vSAN replication network, busy disk, the vSAN software itself, etc.

In a traditional SAN storage architecture, a storage performance issue can be easily traced from server HBA, FC port/fabric, storage controller load, disk performance.

Scale Out

In vSAN to increase storage capacity, all the nodes need to be upgraded similarly.

In a traditional SAN solution, capacity scale outs are totally transparent to the compute nodes and workloads. The storage controller abstracts all physical disk maintenance from the rest of the environment.


Summary of Simplicity is An Advantage but Sadly Complexity Sells Better

Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better. - Edsger Dijkstra

Why does complexity sell better?

  1. Complexity signals effort
  2. Complexity signals mastery
  3. Complexity signals innovation
  4. Complexity signals more features

Why is simplicity an advantage?

  1. Simple ideas and features are easier to understand and use
  2. Simple systems are easier to build and scale
  3. Simple systems have lower operational costs

What’s wrong with rewarding complexity?

  1. It incentivizes people to make things unnecessarily complicated
  2. It also encourages the “not invented here” mindset

How should we think about complexity instead?

The objective should be to solve complex problems with as simple a solution as possible Everything should be made as simple as possible, but not simpler - Albert Einstein