designing distributed systems · solution: containers and orchestration (2013-2014 [and earlier])...
TRANSCRIPT
![Page 1: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/1.jpg)
Designing Distributed SystemsBRENDAN BURNS
DI ST I NGUISHED ENGI NEER ndash M I CRO SOFT AZ URE
CO -FO UNDER ndash K UBERNETES P RO JECT
This job is too hard
A history lessonDevelopment in the 1940s and 1950s
A history lessonDevelopment in the 1940s and 1950s
Problem Assembly Language
Solution Fortran (1954)
Patterns Knuth ndash Art of Computer Programming (1962-1968)
A history lessonDevelopment in the 1970s and 1980s
A history lessonDevelopment in the 1970s and 1980s
Problem Large codebases interchangeable teams
Solution Object Oriented Programming (c 1985 [really much earlier])
Patterns Gang of Four ndash Design Patterns Elements of Reusable Object-Oriented Software (1994)
A (modern) history lessonDevelopment in the 2000s and 2010s
A (modern) history lessonDevelopment in the 2000s and 2010s
Problem Distributed applications scale and reliability
Solution Containers and Orchestration (2013-2014 [and earlier])
Patterns Designing Distributed Systems - OSCON 2018
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Single Node PatternsFocus on component re-use and organization
Container Group (aka Pod)
Container 1
Container 2
Container 3
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Application Container
Sidecar Container
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
Application Container
Ambassador Container
External Service
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
NodeJS Web App
Twem Proxy
MemcacheShard 1
localhost
MemcacheShard 2
MemcacheShard 3
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Application Container
AdapterExternal Interface
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Java Application
Prometheus Java Exporter
Prometheus ScraperJMX
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 2: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/2.jpg)
This job is too hard
A history lessonDevelopment in the 1940s and 1950s
A history lessonDevelopment in the 1940s and 1950s
Problem Assembly Language
Solution Fortran (1954)
Patterns Knuth ndash Art of Computer Programming (1962-1968)
A history lessonDevelopment in the 1970s and 1980s
A history lessonDevelopment in the 1970s and 1980s
Problem Large codebases interchangeable teams
Solution Object Oriented Programming (c 1985 [really much earlier])
Patterns Gang of Four ndash Design Patterns Elements of Reusable Object-Oriented Software (1994)
A (modern) history lessonDevelopment in the 2000s and 2010s
A (modern) history lessonDevelopment in the 2000s and 2010s
Problem Distributed applications scale and reliability
Solution Containers and Orchestration (2013-2014 [and earlier])
Patterns Designing Distributed Systems - OSCON 2018
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Single Node PatternsFocus on component re-use and organization
Container Group (aka Pod)
Container 1
Container 2
Container 3
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Application Container
Sidecar Container
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
Application Container
Ambassador Container
External Service
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
NodeJS Web App
Twem Proxy
MemcacheShard 1
localhost
MemcacheShard 2
MemcacheShard 3
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Application Container
AdapterExternal Interface
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Java Application
Prometheus Java Exporter
Prometheus ScraperJMX
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 3: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/3.jpg)
A history lessonDevelopment in the 1940s and 1950s
A history lessonDevelopment in the 1940s and 1950s
Problem Assembly Language
Solution Fortran (1954)
Patterns Knuth ndash Art of Computer Programming (1962-1968)
A history lessonDevelopment in the 1970s and 1980s
A history lessonDevelopment in the 1970s and 1980s
Problem Large codebases interchangeable teams
Solution Object Oriented Programming (c 1985 [really much earlier])
Patterns Gang of Four ndash Design Patterns Elements of Reusable Object-Oriented Software (1994)
A (modern) history lessonDevelopment in the 2000s and 2010s
A (modern) history lessonDevelopment in the 2000s and 2010s
Problem Distributed applications scale and reliability
Solution Containers and Orchestration (2013-2014 [and earlier])
Patterns Designing Distributed Systems - OSCON 2018
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Single Node PatternsFocus on component re-use and organization
Container Group (aka Pod)
Container 1
Container 2
Container 3
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Application Container
Sidecar Container
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
Application Container
Ambassador Container
External Service
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
NodeJS Web App
Twem Proxy
MemcacheShard 1
localhost
MemcacheShard 2
MemcacheShard 3
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Application Container
AdapterExternal Interface
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Java Application
Prometheus Java Exporter
Prometheus ScraperJMX
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 4: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/4.jpg)
A history lessonDevelopment in the 1940s and 1950s
Problem Assembly Language
Solution Fortran (1954)
Patterns Knuth ndash Art of Computer Programming (1962-1968)
A history lessonDevelopment in the 1970s and 1980s
A history lessonDevelopment in the 1970s and 1980s
Problem Large codebases interchangeable teams
Solution Object Oriented Programming (c 1985 [really much earlier])
Patterns Gang of Four ndash Design Patterns Elements of Reusable Object-Oriented Software (1994)
A (modern) history lessonDevelopment in the 2000s and 2010s
A (modern) history lessonDevelopment in the 2000s and 2010s
Problem Distributed applications scale and reliability
Solution Containers and Orchestration (2013-2014 [and earlier])
Patterns Designing Distributed Systems - OSCON 2018
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Single Node PatternsFocus on component re-use and organization
Container Group (aka Pod)
Container 1
Container 2
Container 3
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Application Container
Sidecar Container
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
Application Container
Ambassador Container
External Service
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
NodeJS Web App
Twem Proxy
MemcacheShard 1
localhost
MemcacheShard 2
MemcacheShard 3
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Application Container
AdapterExternal Interface
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Java Application
Prometheus Java Exporter
Prometheus ScraperJMX
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 5: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/5.jpg)
A history lessonDevelopment in the 1970s and 1980s
A history lessonDevelopment in the 1970s and 1980s
Problem Large codebases interchangeable teams
Solution Object Oriented Programming (c 1985 [really much earlier])
Patterns Gang of Four ndash Design Patterns Elements of Reusable Object-Oriented Software (1994)
A (modern) history lessonDevelopment in the 2000s and 2010s
A (modern) history lessonDevelopment in the 2000s and 2010s
Problem Distributed applications scale and reliability
Solution Containers and Orchestration (2013-2014 [and earlier])
Patterns Designing Distributed Systems - OSCON 2018
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Single Node PatternsFocus on component re-use and organization
Container Group (aka Pod)
Container 1
Container 2
Container 3
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Application Container
Sidecar Container
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
Application Container
Ambassador Container
External Service
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
NodeJS Web App
Twem Proxy
MemcacheShard 1
localhost
MemcacheShard 2
MemcacheShard 3
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Application Container
AdapterExternal Interface
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Java Application
Prometheus Java Exporter
Prometheus ScraperJMX
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 6: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/6.jpg)
A history lessonDevelopment in the 1970s and 1980s
Problem Large codebases interchangeable teams
Solution Object Oriented Programming (c 1985 [really much earlier])
Patterns Gang of Four ndash Design Patterns Elements of Reusable Object-Oriented Software (1994)
A (modern) history lessonDevelopment in the 2000s and 2010s
A (modern) history lessonDevelopment in the 2000s and 2010s
Problem Distributed applications scale and reliability
Solution Containers and Orchestration (2013-2014 [and earlier])
Patterns Designing Distributed Systems - OSCON 2018
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Single Node PatternsFocus on component re-use and organization
Container Group (aka Pod)
Container 1
Container 2
Container 3
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Application Container
Sidecar Container
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
Application Container
Ambassador Container
External Service
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
NodeJS Web App
Twem Proxy
MemcacheShard 1
localhost
MemcacheShard 2
MemcacheShard 3
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Application Container
AdapterExternal Interface
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Java Application
Prometheus Java Exporter
Prometheus ScraperJMX
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 7: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/7.jpg)
A (modern) history lessonDevelopment in the 2000s and 2010s
A (modern) history lessonDevelopment in the 2000s and 2010s
Problem Distributed applications scale and reliability
Solution Containers and Orchestration (2013-2014 [and earlier])
Patterns Designing Distributed Systems - OSCON 2018
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Single Node PatternsFocus on component re-use and organization
Container Group (aka Pod)
Container 1
Container 2
Container 3
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Application Container
Sidecar Container
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
Application Container
Ambassador Container
External Service
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
NodeJS Web App
Twem Proxy
MemcacheShard 1
localhost
MemcacheShard 2
MemcacheShard 3
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Application Container
AdapterExternal Interface
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Java Application
Prometheus Java Exporter
Prometheus ScraperJMX
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 8: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/8.jpg)
A (modern) history lessonDevelopment in the 2000s and 2010s
Problem Distributed applications scale and reliability
Solution Containers and Orchestration (2013-2014 [and earlier])
Patterns Designing Distributed Systems - OSCON 2018
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Single Node PatternsFocus on component re-use and organization
Container Group (aka Pod)
Container 1
Container 2
Container 3
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Application Container
Sidecar Container
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
Application Container
Ambassador Container
External Service
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
NodeJS Web App
Twem Proxy
MemcacheShard 1
localhost
MemcacheShard 2
MemcacheShard 3
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Application Container
AdapterExternal Interface
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Java Application
Prometheus Java Exporter
Prometheus ScraperJMX
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 9: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/9.jpg)
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Single Node PatternsFocus on component re-use and organization
Container Group (aka Pod)
Container 1
Container 2
Container 3
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Application Container
Sidecar Container
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
Application Container
Ambassador Container
External Service
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
NodeJS Web App
Twem Proxy
MemcacheShard 1
localhost
MemcacheShard 2
MemcacheShard 3
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Application Container
AdapterExternal Interface
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Java Application
Prometheus Java Exporter
Prometheus ScraperJMX
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 10: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/10.jpg)
Single Node PatternsFocus on component re-use and organization
Container Group (aka Pod)
Container 1
Container 2
Container 3
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Application Container
Sidecar Container
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
Application Container
Ambassador Container
External Service
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
NodeJS Web App
Twem Proxy
MemcacheShard 1
localhost
MemcacheShard 2
MemcacheShard 3
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Application Container
AdapterExternal Interface
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Java Application
Prometheus Java Exporter
Prometheus ScraperJMX
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 11: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/11.jpg)
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Application Container
Sidecar Container
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
Application Container
Ambassador Container
External Service
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
NodeJS Web App
Twem Proxy
MemcacheShard 1
localhost
MemcacheShard 2
MemcacheShard 3
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Application Container
AdapterExternal Interface
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Java Application
Prometheus Java Exporter
Prometheus ScraperJMX
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 12: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/12.jpg)
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
Application Container
Ambassador Container
External Service
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
NodeJS Web App
Twem Proxy
MemcacheShard 1
localhost
MemcacheShard 2
MemcacheShard 3
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Application Container
AdapterExternal Interface
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Java Application
Prometheus Java Exporter
Prometheus ScraperJMX
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 13: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/13.jpg)
Single Node Patterns SidecarSidecars augment and extend
Container Group (aka Pod)
Web ServerSidecar
Container
Cloud Storage
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
Application Container
Ambassador Container
External Service
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
NodeJS Web App
Twem Proxy
MemcacheShard 1
localhost
MemcacheShard 2
MemcacheShard 3
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Application Container
AdapterExternal Interface
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Java Application
Prometheus Java Exporter
Prometheus ScraperJMX
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 14: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/14.jpg)
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
Application Container
Ambassador Container
External Service
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
NodeJS Web App
Twem Proxy
MemcacheShard 1
localhost
MemcacheShard 2
MemcacheShard 3
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Application Container
AdapterExternal Interface
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Java Application
Prometheus Java Exporter
Prometheus ScraperJMX
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 15: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/15.jpg)
Single Node Patterns AmbassadorAmbassadors translate and represent
Container Group (aka Pod)
NodeJS Web App
Twem Proxy
MemcacheShard 1
localhost
MemcacheShard 2
MemcacheShard 3
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Application Container
AdapterExternal Interface
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Java Application
Prometheus Java Exporter
Prometheus ScraperJMX
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 16: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/16.jpg)
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Application Container
AdapterExternal Interface
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Java Application
Prometheus Java Exporter
Prometheus ScraperJMX
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 17: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/17.jpg)
Single Node Patterns AdapterAdapters Standardize and Normalize
Container Group (aka Pod)
Java Application
Prometheus Java Exporter
Prometheus ScraperJMX
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 18: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/18.jpg)
Multi-Node PatternsShare and learn from existing best practices
Give us a common vocabulary for discussing our systems
Enable the development of shared implementations
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 19: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/19.jpg)
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Service Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 20: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/20.jpg)
Multi-Node Patterns ReplicatedReliable redundant serving
Safe zero-downtime rollouts
Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
Service -gt
Deployment -gt
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 21: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/21.jpg)
Multi-Node Patterns Replicatedconst myService =
new ReplicatedService(
image acriobrendanmy-serverv1
ports [ 8080 ]
replicas 4)Load Balancer
Replica 1
Replica 2
Replica 3
Replica 4
httpsmetaparticleiotutorials
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 22: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/22.jpg)
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 23: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/23.jpg)
Multi-Node Patterns ShardedSharding increases cache hit rates
Enables larger data-stores
Changes failure patternsShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 24: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/24.jpg)
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 25: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/25.jpg)
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
Service -gt
Deployment -gt
StatefulSet -gt
Replicated -gt
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 26: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/26.jpg)
Multi-Node Patterns Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
Shard 1
Shard 2
Shard 3
const myService =
new ShardedService(
image acriobrendanmy-serverv1
shardRegexp users()
ports [ 8080 ]
shards 4)
httpsmetaparticleiotutorials
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 27: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/27.jpg)
Multi-Node Replicated amp ShardedShard Load Balancer
Shard Router
Shard Router
Shard Router
Shard Router
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 28: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/28.jpg)
class ShardedReplicatedService ShardedService
ReplicatedService[] replicatedShards
public ShardedReplicatedService()
hellip
hellip
Multi-Node Replicated amp Sharded
Shard Load Balancer
Shard Router
Shard Router
Shard Router
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 29: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/29.jpg)
Agenda Patterns
Single Node Patterns
Multi-Node patterns
Tools Cluster Daemons
Cluster Agents
Intent-based APIs
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 30: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/30.jpg)
Tools The cluster as the new node
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 31: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/31.jpg)
Cluster Daemons
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
Distributed systems are become microservices
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 32: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/32.jpg)
Cluster Daemons
Cluster Daemons
bull Atomic value-added behaviors based on API object state
bull Deployed onto the cluster itself
bull Enable ldquoauto-magicrdquo experiences
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 33: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/33.jpg)
Cluster DaemonsDistributed systems are becoming microservices
Cert Manager Daemon HTTP Service
(Ingress)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 34: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/34.jpg)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Cert Manager Daemon
kubernetesiotls-acme true
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 35: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/35.jpg)
Cluster DaemonsDistributed systems are becoming microservices
HTTP Service(Ingress)
Certificate
Cert Manager Daemon
kubernetesiotls-acme true
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 36: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/36.jpg)
Intent-based APIs
Container API Unified Compute Substrate
Cluster Daemons
Cluster Services
Intent-based APIs
State your intent not how to build it
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 37: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/37.jpg)
Intent-based APIsIntent-based
APIs
Too much time is spent building things we should just state Or too little time is spent building such things
Wasted duplicate effort
Barriers to entry for many people
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 38: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/38.jpg)
Intent-based APIs
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 39: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/39.jpg)
Intent-based APIsapiVersion loadtestv1kind LoadTestmetadataname my-cool-loadtestlabels
hellipspecservice my-cool-servicerequestPerSecond 10ktests- test- somepath- someotherpath
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 40: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/40.jpg)
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create 3rd party LoadTest API
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 41: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/41.jpg)
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 42: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/42.jpg)
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Watch apisloadtestshellip
apisloadtestshellip
hellipCreate apisloadtestsmy-cool-loadtest
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 43: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/43.jpg)
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 44: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/44.jpg)
Intent-based APIs
Kubernetes API Server
Load Test Extension API
Create LoadTestPods
my-cool-service
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 45: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/45.jpg)
Cluster ServicesCluster Services
Cluster wide standardization of common services eg Logging Monitoring Security
Automatically enabled by deploying into the cluster
Ensure consistency concentration of skills amp best practices
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 46: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/46.jpg)
Cluster Services
I think Irsquoll use statsd
I think Irsquoll use prometheus
Monitoring
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 47: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/47.jpg)
Cluster Services
I think Irsquoll quit
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 48: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/48.jpg)
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Create Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 49: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/49.jpg)
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Get Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 50: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/50.jpg)
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 51: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/51.jpg)
Cluster Services
Kubernetes API Server
Cluster Wide Monitoring
Monitor Pods
Cloud Monitoring
SaaS
Questions
![Page 52: Designing Distributed Systems · Solution: Containers and Orchestration (2013-2014 [and earlier]) Patterns: Designing Distributed Systems - OSCON 2018? Agenda Patterns Single Node](https://reader036.vdocuments.net/reader036/viewer/2022071211/6023b4c6028a9304a32990ba/html5/thumbnails/52.jpg)
Questions