SlideShare a Scribd company logo
Nelson
automated, multi-region container deployment
timperrett
Hello.
!
verizon.github.io/nelson/
Rig·or·ous.
Extremely thorough, exhaustive, or accurate.
Rigorous Systems.
– Dr Tara Smith
“Pragmatism is the opposition to principal, on principle.”
Rigorous Systems.
• Theory is the foundation.
• Category Theory, Combinatorics, Set Theory, Group Theory…
• Principles of formal verification becoming more widespread.
• Type systems act as proofs about your program.
• Amazon S3 (among others) have TLA+ models.
• Never fear practical application of rigorous systems.
• Invest now to save your sanity tomorrow (i.e. 2am PagerDuty alert).
Rigorous Systems.
Time
Pain
Principled Pragmatic
Rigorous Systems.
Time
Pain
Principled Pragmatic
"
Rigorous Systems.
Time
Pain
Principled Pragmatic
#
Rigorous Systems.
Time
Pain
Principled Pragmatic
$
Deployment.
sticky tape, bandages and bash scripts.
antithesis 

of rigor
Problem
• Provisioning applications is still too slow (bare metal or cloud).
• Runtime traffic control systems are medieval at best.
• Coupling CI and CD creates monolithic operational systems.
• These systems do everything. This is a distinct problem.
• Current market solutions limited or hard to adopt.
• Most teams have brittle, painful automation nobody wants to use.
• Many teams attempt CD ignorant of the side-effects.
Lessons
• Automate every part of the system.
• Testing a distributed system locally is a fable.
• Emergent properties. Scaling issues etc.
• Uniformity is highly desirable and wildly advantageous.
• Beautiful, unique snowflakes are however, inevitable.
• Automated lifecycle management is required.
Goals
• Use the minimally powerful components.
• System elements should be awesome at just one thing.
• Reduce overall platform complexity.
• Increase responsibility of engineering teams. Break it, you bought it.
• Decentralize process gatekeepers.
• No build team. No ticket filing for deployments. No configuration
management.
Goals
• All application specifications are checked in.
• Build. Deployment. Alerting etc.
• Reduce deployment time to 2 minutes or less.
• Support multi-DC topologies from the get-go.
• Automatic credential management and secure-introduction
• Transparent, strong encryption for application I/O on the wire.
Nelson.
– Vice Admiral Horatio Nelson, 1758-1805
“Desperate affairs require desperate remedies.”
– Vice Admiral Horatio Nelson, 1758-1805
“Desperate affairs require desperate remedies.”
#opslife
Overview
• Provides “best practices” for your organization; focus on shipping.
• Github driven developer workflow (.com or enterprise).
• Choose whatever build / CI system you want.
• State of the art runtime routing via Envoy.
• Secure introduction for safe distribution of credentials from Vault.
• Target any datacenter running a scheduler (Nomad, Mesos, etc).
Nelson: Rigorous Deployment for a Functional World
Overview.
pie of
responsibility!
Overview.
users
Overview.
operators
Features.
• Declarative, simplistic YAML manifest per-repository.
• Active lifecycle management.
• Management of edge ingress (e.g. public load balancers).
• Optional routing control plane.
• Comprehensive auditing.
• Extensible with arbitrary scheduling, routing or artifact systems.
Foundations.
graphs and coproducts.
Mathematics.
Combinatorics.
Graph Theory.
https://github.com/Verizon/quiver
Vertex.
Vertex.
vertex[N,L]
A
Edge.
B
A
Directed Edge.
B
Directed Edge.
LEdge[N,A]
Edge[N]
A B
Graph.
Monoids.
A B
CD
A
F
G
H
(A, A) => A
A => A
Monoids.
B
C
D
A
F
G
H
A
D
C
B
E
depends ondepends on
depends on
depends on
depends ondepends on
depends on
depends on
depends ondepends on
depends on
depends on
foo@1.2 bar@4.5
qux@2.1
buzz@1.1
klang@1.0
Graphs.
• Every application declares their dependencies a-priori.
• No routing to disconnected vertices.
• No Vault policy attributes for disconnected vertices.
• Edge ingress points are the “root” of a graph.
• Intersecting graphs with shared or discrete roots.
• Provides anchor-point for lifecycle management.
• Entire world view falls out of a union of all discrete graphs.
Lifecycle.
deployment is the easy part.
Lifecycle.
Amazon

in 2008
https://twitter.com/Werner/status/741673514567143424
Nelson: Rigorous Deployment for a Functional World
based on

consul
typical state
pending

GC
user 

activated
pluggable
borrowed

time
garbage

collection
Graph 

Pruning
X
X
Upgraded!
last two

major revsXX X
last two

featuresXX X
Security.
that thing you wish you did better.
graphs help
here too!
Security.
• Derivation of security policy, as opposed to proclamation of policy.
• Excellent audibility
• All dependencies are known - internal and external.
• Every single application instance has unique credentials.
• Dynamic certificates, dynamic DB access etc.
• Compromised containers have the minimal attack surface.
• Joined with a service mesh, transparent mTLS for everyone is a breeze.
Namespaces.
machines
scheduler
namespaces
namespaces
entirely 

virtual!
Nelson: Rigorous Deployment for a Functional World
root 

namespace
qa/unstable
qa/staging/tim
Nelson: Rigorous Deployment for a Functional World
Discovery & Routing.
Discovery.
• Discovery protocol written to Consul KV for every stack
• We call this Lighthouse protocol
• Application dependencies are declared a-priori.
• You cannot route to that which you do not tell Nelson about.
• Makes for awesome auditing and security.
• Language implementations need only consume the protocol.
Routing.
• Non-prescriptive approach to routing tier implementation.
• Provides a control plane protocol describe routing actions.
• Typically implemented with Envoy, but you can choose.
• Minor application changes required.
• Incentivized these with tracing and context propagation.
• Models traffic shifting as a time vs traffic policy curve.
Nelson: Rigorous Deployment for a Functional World
Workflow.
how the sausage is made.
Workflow.
HTTPQueue
Workflow X
Workflow Y
End
End
Executor Pool
GitHub
Workflow.
and thenand then
start
replicate

containers
create

vault policies
???
and then
Workflow.
Looks like a graph.
Walks like a graph.
Must be a… coproduct!
Workflow.
Coproduct[F[_], G[_], A](run: F[A] / G[A])
Workflow.
type Op0[A] = Coproduct[DockerOp, ConsulOp, A]
…
type WorkflowOp[A] = Coproduct[SchedulerOp, Op4, A]
type WorkflowF[A] = Free.FreeC[WorkflowOp, A]
Workflow.
for {
_ <- status(id, Pending, "workflow about to start")
i <- dockerOps(id, unit, dc.docker.registry)
_ <- status(id, Deploying, s"writing alert definitions to ${dc.name}'s consul")
_ <- writePolicyToVault(cfg = dc.policy, sn = sn, ns = ns.name, rs = rs)
///////////////////////////////
// remove for space limitations
///////////////////////////////
l <- launch(i, dc, ns.name, vunit, p, hash)
_ <- debug(s"response from scheduler $l”)
_ <- status(id, getStatus(unit, p), "======> workflow completed <======")
} yield ()
Free monad
Challenges
• Non-trivial level of investment and execution.
• Tight integration with Hashistack is both pro or con.
• Community adding k8s + Istio support %
• Containerizing legacy applications can be “interesting”.
• Migration can be a challenge if not collocated with “the new world”.
• Small organizations better served by existing solutions.
Summary
• Provide rigor to your application Death Star.
• Fully automated application lifecycle: no manual housekeeping.
• Choose whatever CI setup best fits your team.
• Secure your deployments.
• Transparent mTLS and rotating credentials.
• Automatic Vault policy management.
EOF
timperrett
verizon.github.io/nelson/
Related Links.
• Nelson documentation site:

verizon.github.io/nelson/
• Nelson CLI:

https://github.com/Verizon/nelson-cli
• Quiver: Scala port of Haskell FGL

https://github.com/Verizon/quiver
• Slipway: integrate any CI system with Nelson

https://github.com/Verizon/slipway

More Related Content

PDF
Online Experimentation with Immutable Infrastructure
PDF
Large-scale Infrastructure Automation at Verizon
PDF
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...
PPTX
Release Often Release Safely
PPTX
Madrid Jam - continuous testing
PPTX
Continuous Happiness by Continuous Delivery
PDF
Puppet Release Workflows at Jive Software
PDF
What DevOps Isn't
Online Experimentation with Immutable Infrastructure
Large-scale Infrastructure Automation at Verizon
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...
Release Often Release Safely
Madrid Jam - continuous testing
Continuous Happiness by Continuous Delivery
Puppet Release Workflows at Jive Software
What DevOps Isn't

What's hot (20)

PDF
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
PDF
Test driven infrastructure development (2 - puppetconf 2013 edition)
PDF
Bringing Developers to the Next Level
PDF
Auditing/Security with Puppet - PuppetConf 2014
PDF
Spaghetti devops
PPTX
CNCF App-Delivery SIG Presentation - Litmus Chaos Engineering
PPTX
Html5 devconf nodejs_devops_shubhra
PPTX
InSpec at DevOps ATL Meetup January 22, 2020
PPTX
(Ignite) JOURNEY OF CHAOS EXPERIMENT EXECUTION IN PRODUCTION - LEONID HAIMOV,...
PDF
Puppet Camp Melbourne 2014:
PDF
Attack-driven defense
PDF
Building Evolvable Infrastructure
ODP
SANER 2015 ERA track: Differential Flame Graphs
PPTX
POTASSIUM: Penetration Testing as a Service
PPTX
A Prophet in Production Shiri Hochhauser
PPTX
Keptn - Automated Operations & Continuous Delivery for k8s
PDF
Shift-left SRE: Self-healing on OpenShift with Ansible
PDF
Need to-know patterns building microservices - java one
PPTX
Javaone 2016 - Operational Excellence with Hystrix
PDF
Microservices 5 Things I Wish I'd Known - JFall 2017
Advanced A/B Testing at Wix - Aviran Mordo and Sagy Rozman, Wix.com
Test driven infrastructure development (2 - puppetconf 2013 edition)
Bringing Developers to the Next Level
Auditing/Security with Puppet - PuppetConf 2014
Spaghetti devops
CNCF App-Delivery SIG Presentation - Litmus Chaos Engineering
Html5 devconf nodejs_devops_shubhra
InSpec at DevOps ATL Meetup January 22, 2020
(Ignite) JOURNEY OF CHAOS EXPERIMENT EXECUTION IN PRODUCTION - LEONID HAIMOV,...
Puppet Camp Melbourne 2014:
Attack-driven defense
Building Evolvable Infrastructure
SANER 2015 ERA track: Differential Flame Graphs
POTASSIUM: Penetration Testing as a Service
A Prophet in Production Shiri Hochhauser
Keptn - Automated Operations & Continuous Delivery for k8s
Shift-left SRE: Self-healing on OpenShift with Ansible
Need to-know patterns building microservices - java one
Javaone 2016 - Operational Excellence with Hystrix
Microservices 5 Things I Wish I'd Known - JFall 2017
Ad

Viewers also liked (15)

PPTX
Analyzing Functional Programs
PDF
Disorder And Tolerance In Distributed Systems At Scale
PDF
Kafka as a message queue
PPTX
Flexible Data Representation with Fixpoint Types
PDF
Building a Tagless Final DSL for WebGL
PDF
Matrix Factorizations for Recommender Systems
PDF
Mining Functional Patterns
PDF
Cassandra Fundamentals - C* 2.0
PDF
Recsys matrix-factorizations
PDF
Domain Driven Design with the F# type System -- F#unctional Londoners 2014
PDF
Return of the transaction king
PDF
Real World Serverless
PDF
Pythonが動く仕組み(の概要)
PDF
JVM上で動くPython処理系実装のススメ
PDF
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Analyzing Functional Programs
Disorder And Tolerance In Distributed Systems At Scale
Kafka as a message queue
Flexible Data Representation with Fixpoint Types
Building a Tagless Final DSL for WebGL
Matrix Factorizations for Recommender Systems
Mining Functional Patterns
Cassandra Fundamentals - C* 2.0
Recsys matrix-factorizations
Domain Driven Design with the F# type System -- F#unctional Londoners 2014
Return of the transaction king
Real World Serverless
Pythonが動く仕組み(の概要)
JVM上で動くPython処理系実装のススメ
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Ad

Similar to Nelson: Rigorous Deployment for a Functional World (20)

PDF
Getting Started with DevOps on AWS [Mar 2020]
PPTX
Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
PDF
Continuous Lifecycle London 2018 Event Keynote
PPTX
Kubernetes Ingress to Service Mesh (and beyond!)
PDF
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
PPTX
Cloud Native Apps with GitOps
PPTX
The Architecture of Continuous Innovation - OSCON 2015
PDF
GitOps 101 Presentation.pdf
ODP
The journey to container adoption in enterprise
PDF
Devops For Networking Steven Armstrong Armstrong Steven
PDF
Intro to GitOps with Weave GitOps, Flagger and Linkerd
PPTX
Cloud-Native Application Debugging with Envoy and Service Mesh
PDF
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
PDF
DevOps as a Contract
PDF
Platform Clouds, Containers, Immutable Infrastructure Oh My!
PDF
PDF DevOps for networking boost your organization's growth by incorporating n...
PPTX
The Rocky Cloud Road
PDF
Free GitOps Workshop
PDF
Continuous Delivery: 5 years later (Incontro DevOps 2018)
PDF
Docker microservices and the service mesh
Getting Started with DevOps on AWS [Mar 2020]
Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
Continuous Lifecycle London 2018 Event Keynote
Kubernetes Ingress to Service Mesh (and beyond!)
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
Cloud Native Apps with GitOps
The Architecture of Continuous Innovation - OSCON 2015
GitOps 101 Presentation.pdf
The journey to container adoption in enterprise
Devops For Networking Steven Armstrong Armstrong Steven
Intro to GitOps with Weave GitOps, Flagger and Linkerd
Cloud-Native Application Debugging with Envoy and Service Mesh
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
DevOps as a Contract
Platform Clouds, Containers, Immutable Infrastructure Oh My!
PDF DevOps for networking boost your organization's growth by incorporating n...
The Rocky Cloud Road
Free GitOps Workshop
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Docker microservices and the service mesh

More from Timothy Perrett (13)

PDF
Enterprise Algebras, Scala World 2016
PDF
Reasonable RPC with Remotely
PPTX
Building Enigma with State Monad & Lens
PPTX
Functional Programming at Verizon
KEY
Scalalable Language for a Scalable Web
PPTX
BRUG - Hello, Scala
PPTX
Scala Helix
PPTX
Javazone 2011: Goal Directed Web Applications
PDF
Concurrency and Parallelism with Scala
PPTX
Scaladays 2011: Task Driven Scala Web Applications
PPTX
Bathcamp 2010-riak
PPTX
Javazone 2010-lift-framework-public
PDF
Devoxx 2009: The Lift Framework
Enterprise Algebras, Scala World 2016
Reasonable RPC with Remotely
Building Enigma with State Monad & Lens
Functional Programming at Verizon
Scalalable Language for a Scalable Web
BRUG - Hello, Scala
Scala Helix
Javazone 2011: Goal Directed Web Applications
Concurrency and Parallelism with Scala
Scaladays 2011: Task Driven Scala Web Applications
Bathcamp 2010-riak
Javazone 2010-lift-framework-public
Devoxx 2009: The Lift Framework

Recently uploaded (20)

PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Mushroom cultivation and it's methods.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
OMC Textile Division Presentation 2021.pptx
PPTX
A Presentation on Artificial Intelligence
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
Tartificialntelligence_presentation.pptx
PDF
Encapsulation theory and applications.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
August Patch Tuesday
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Empathic Computing: Creating Shared Understanding
Group 1 Presentation -Planning and Decision Making .pptx
MIND Revenue Release Quarter 2 2025 Press Release
Mushroom cultivation and it's methods.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
OMC Textile Division Presentation 2021.pptx
A Presentation on Artificial Intelligence
Heart disease approach using modified random forest and particle swarm optimi...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
A comparative analysis of optical character recognition models for extracting...
Network Security Unit 5.pdf for BCA BBA.
NewMind AI Weekly Chronicles - August'25-Week II
Tartificialntelligence_presentation.pptx
Encapsulation theory and applications.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
August Patch Tuesday

Nelson: Rigorous Deployment for a Functional World