This document discusses the evolution from traditional "pets" applications to modern "cattle" and "germs" approaches in cloud native applications. It describes how the loss of control and stability in cloud environments necessitated moving from tightly coupled applications managed like "pets" to loosely coupled microservices treated like "cattle". It outlines challenges in observing, managing, and ensuring resilience for dynamic systems composed of numerous semi-autonomous components in a public cloud environment. The document advocates drawing inspiration from biological systems' self-organization to build complex adaptive software systems capable of surviving in unpredictable, hostile conditions.
2. @nukemberg
“Native Cloud Application (NCA) refers to a type
of computer software that natively utilizes
services and infrastructure provided by cloud
computing providers”
5. @nukemberg
“Containers, service meshes,
microservices, immutable infrastructure,
and declarative APIs exemplify this
approach.
These techniques enable loosely
coupled systems that are resilient,
manageable, and observable”
8. @nukemberg
Manageable through tight coupling
Tight coupling through reliability
Reliability through stable environment
Stable environment through control
21. @nukemberg
You don’t have a production environment
● Every client talks to multiple different systems
● On difference DCs/clouds
● Did I mention A/B tests?
● Or personalization?
22. @nukemberg
You have production environments
● Every transaction sees a unique “environment”
● One time environment
● Non repeatable
30. @nukemberg
Biological systems
● Semi autonomous cooperating cells
● Self organizing
● Surviving in an uncontrollable, sometimes hostile environment
● Dynamic, constant birth/death
● Homeostatis
31. @nukemberg
“A complex adaptive system is a system in
which a perfect understanding of the individual
parts does not automatically convey a perfect
understanding of the whole system's behavior”
33. @nukemberg
New challenges
Observing a dynamic, information rich network
Managing numerous semi-autonomous components
Understanding a loosely coupled self organizing ensemble
Controlling a non-linear chaotic system
Security in a public, hostile environment
Macro level resilience with unique one-time topology
34. @nukemberg
Computer immunology, 1998
Mark Burgess, father of Promise theory and
Configuration Management
● Macro level stability
● Convergence
● Continuous active maintenance