SlideShare a Scribd company logo
The DIY Punk Rock
DevOps Playbook
CTO
bryan@joyent.com
Bryan Cantrill
@bcantrill
1990s/2000s: Architectural big album rock
• The late 1990s saw the rise of three-tier architectures consisting
of presentation, application logic and data tiers
• Many names for roughly the same notion: “Service-oriented
architecture”, “Model/View/Controller”, etc.
• The AJAX+REST revolution of the mid-2000s gave rise to true
web applications in which application logic could live on the edge
• Led to a punk uprising...
Post-AJAX punks
• Why should HTTP be restricted to the web?
• Why should REST be restricted to web apps?
• Why should JavaScript be restricted to the client?
• Instead of having one monolithic architecture, why not have a
series of (smaller) services that merely did one thing well?
• In case this sounds vaguely familiar...
Proto-punk: The Unix philosophy
• The Unix philosophy, as articulated by Doug McIlroy:
• Write programs that do one thing and do it well
• Write programs to work together
• Write programs that handle text streams, because that is a
universal interface
• The single most important revolution in software systems thinking!
• Applying it to HTTP-based services...
Punk architecture: Microservices
• Microservices do one thing, and strive to do it well
• Replace a small number of monoliths with many services that
have well-documented, small HTTP-based APIs
• Larger systems can be composed of these smaller services
• And there is an organizational analogue: microservices can break
large organizations into smaller, more effective ones
Punks in prod: Deploying microservices
• Microservices are tautologically small
• One physical machine per service is clearly uneconomical…
• ...but deploying many orthogonal services on a single machine is
a well-known operational nightmare (e.g. conflicting
dependencies, shared fault domain)
• The key is to virtualize — but at what layer of the stack?
• Virtualization has ramifications with respect to performance and
density — which is to say, economics
Hardware-level virtualization?
• The historical answer to virtualization — since the 1960s — has
been to virtualize the hardware:
• A virtual machine is presented upon which each tenant runs an
operating system that they choose (and must manage)
• There are as many operating systems on a machine as tenants!
• Can run entire legacy stacks unmodified...
• ...but operating systems are heavy and don’t play well with others
with respect to resources like DRAM, CPU, I/O devices, etc.
• With microservices, overhead dominates!
Platform-level virtualization?
• Virtualizing at the application platform layer addresses the
tenancy challenges of hardware virtualization, and presents a
much more nimble (& developer friendly!) abstraction...
• ...but at the cost of dictating abstraction to the developer
• This is the “Google App Engine” problem: developers are in a
straightjacket where toy programs are easy — but sophisticated
applications are impossible
• Virtualizing at the application platform layer poses many other
challenges with respect to security, containment, etc.
OS-level virtualization!
• Virtualizing at the operating system hits a sweet spot:
• A single operating system (i.e. a single kernel) allows for efficient use of
hardware resources, maximizing tenancy and performance
• Disjoint instances are securely compartmentalized by the operating system
• Gives tenants what appears to be a virtual machine (albeit a very fast one)
on which to run higher-level software: PaaS ease with IaaS generality
• Also: boots like a bandit!
• Model was pioneered by FreeBSD jails and taken to their logical
extreme by Solaris zones — and then aped by Linux containers
OS-level virtualization at Joyent
• Joyent runs OS containers in the cloud via SmartOS — and we
have run containers in multi-tenant production since ~2006
• Adding support for hardware-based virtualization circa 2011
strengthened our resolve with respect to OS-based virtualization
• This is especially true for microservices: as services get small,
overhead and latency become increasingly important — and OS
containers become a bigger and bigger win
• We emphasized their operational characteristics — performance,
elasticity, tenancy — and for many years, we were a lone voice...
Containers as PaaS foundation?
• Some saw the power of OS containers to facilitate up-stack
platform-as-a-service abstractions
• For example, dotCloud — a platform-as-a-service provider — built
their PaaS on OS containers
• Struggling as a PaaS, dotCloud pivoted — and open sourced
their container-based orchestration layer...
...and Docker was born
Docker revolution
• Docker has used the rapid provisioning + shared underlying
filesystem of containers to allow developers to think operationally
• Developers can encode deployment procedures via an image
• Images can be reliably and reproducibly deployed as a container
• Images can be quickly deployed — and re-deployed
• Docker complements the DIY ethos of microservices
• Docker will do to apt what apt did to tar
Broader container revolution
• The Docker model has pointed to the future of containers
• Docker’s challenges today are largely operational: network
virtualization, persistence, security, etc.
• Security concerns are not due to Docker per se, but rather to the
architectural limitations of the Linux “container” substrate
• For multi-tenancy, state-of-the-art for Docker containers is to run
in hardware virtual machines (!!)
• Deploying OS containers in hardware virtual machines
negates their economic advantage!
The future of containers in production?
• Can we achieve an ideal world that combines the development
model of Docker with the deployment model of SmartOS?
• To facilitate this ideal, we at Joyent have:
• Added the ability to run Linux binaries in a SmartOS container
• Added a Docker API end point to SmartDataCenter, the
container-native stack that runs our public cloud
• Open sourced everything
• Here’s to the punk rock revolution of microservices + containers!

More Related Content

PDF
Leaping the chasm from proprietary to open: A survivor's guide
PDF
Run containers on bare metal already!
PDF
The Peril and Promise of Early Adoption: Arriving 10 Years Early to Containers
PDF
node.js and Containers: Dispatches from the Frontier
PDF
Docker's Killer Feature: The Remote API
PDF
Why it’s (past) time to run containers on bare metal
PDF
Dynamic Languages in Production: Progress and Open Challenges
PDF
The Container Revolution: Reflections after the first decade
Leaping the chasm from proprietary to open: A survivor's guide
Run containers on bare metal already!
The Peril and Promise of Early Adoption: Arriving 10 Years Early to Containers
node.js and Containers: Dispatches from the Frontier
Docker's Killer Feature: The Remote API
Why it’s (past) time to run containers on bare metal
Dynamic Languages in Production: Progress and Open Challenges
The Container Revolution: Reflections after the first decade

What's hot (20)

PDF
Papers We Love: Jails and Zones
PDF
Experiences porting KVM to SmartOS
PDF
The Internet-of-things: Architecting for the deluge of data
PDF
Down Memory Lane: Two Decades with the Slab Allocator
PDF
Platform as reflection of values: Joyent, node.js, and beyond
PPTX
The Platform Era - 7 steps to an API
PDF
The dream is alive! Running Linux containers on an illumos kernel
PDF
node.js in production: Reflections on three years of riding the unicorn
PDF
Bringing the Unix Philosophy to Big Data
PDF
Joyent circa 2006 (Scale with Rails)
PDF
Oral tradition in software engineering: Passing the craft across generations
PPTX
server to cloud: converting a legacy platform to an open source paas
PPTX
Docker-N-Beyond
PPTX
Meetup Docker : From Zero to Hero
PDF
Crash Course in Open Source Cloud Computing
PPTX
Meetup Mesos : Mesos, Chronos and Marathon in CI/CD factory
PDF
Demystifying Containerization Principles for Data Scientists
PDF
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
PPTX
Cloud Computing Expo West - Crash Course in Open Source Cloud Computing
PDF
Whales, Clouds, and Bubbles...?
Papers We Love: Jails and Zones
Experiences porting KVM to SmartOS
The Internet-of-things: Architecting for the deluge of data
Down Memory Lane: Two Decades with the Slab Allocator
Platform as reflection of values: Joyent, node.js, and beyond
The Platform Era - 7 steps to an API
The dream is alive! Running Linux containers on an illumos kernel
node.js in production: Reflections on three years of riding the unicorn
Bringing the Unix Philosophy to Big Data
Joyent circa 2006 (Scale with Rails)
Oral tradition in software engineering: Passing the craft across generations
server to cloud: converting a legacy platform to an open source paas
Docker-N-Beyond
Meetup Docker : From Zero to Hero
Crash Course in Open Source Cloud Computing
Meetup Mesos : Mesos, Chronos and Marathon in CI/CD factory
Demystifying Containerization Principles for Data Scientists
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Cloud Computing Expo West - Crash Course in Open Source Cloud Computing
Whales, Clouds, and Bubbles...?
Ad

Similar to The DIY Punk Rock DevOps Playbook (20)

PPTX
Accelerate DevOps/Microservices and Kubernetes
PPTX
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
PPTX
Executive Briefing: The Why, What, and Where of Containers
PDF
Microservices: How loose is loosely coupled?
PPTX
CLOUD COMPUTING In Brief UNIT I PPT.pptx
PDF
Dockers and kubernetes
PDF
Serverless brewbox
PPTX
Containerization
PPTX
containerization1. introduction to contain
PPTX
containerization with example module and
PPTX
Kubernetes solutions
PPTX
Cloud Native Computing Foundation: How Virtualization and Containers are Chan...
PDF
Cloud Computing as Innovation Hub - Mohammad Fairus Khalid
PDF
Microservices with Spring Cloud
PDF
Rami Sayar - Node microservices with Docker
PPTX
Software Architectures, Week 5 - Advanced Architectures
PDF
Getting Started with Docker - Nick Stinemates
PPTX
Cloud Computing Basics.pptx
PDF
A to Z of Docker
PDF
Cloud Native Application
Accelerate DevOps/Microservices and Kubernetes
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Executive Briefing: The Why, What, and Where of Containers
Microservices: How loose is loosely coupled?
CLOUD COMPUTING In Brief UNIT I PPT.pptx
Dockers and kubernetes
Serverless brewbox
Containerization
containerization1. introduction to contain
containerization with example module and
Kubernetes solutions
Cloud Native Computing Foundation: How Virtualization and Containers are Chan...
Cloud Computing as Innovation Hub - Mohammad Fairus Khalid
Microservices with Spring Cloud
Rami Sayar - Node microservices with Docker
Software Architectures, Week 5 - Advanced Architectures
Getting Started with Docker - Nick Stinemates
Cloud Computing Basics.pptx
A to Z of Docker
Cloud Native Application
Ad

More from bcantrill (20)

PDF
Predicting the Present
PDF
Sharpening the Axe: The Primacy of Toolmaking
PDF
Coming of Age: Developing young technologists without robbing them of their y...
PDF
I have come to bury the BIOS, not to open it: The need for holistic systems
PDF
Towards Holistic Systems
PDF
The Coming Firmware Revolution
PDF
Hardware/software Co-design: The Coming Golden Age
PDF
Tockilator: Deducing Tock execution flows from Ibex Verilator traces
PDF
No Moore Left to Give: Enterprise Computing After Moore's Law
PDF
Andreessen's Corollary: Ethical Dilemmas in Software Engineering
PDF
Visualizing Systems with Statemaps
PDF
Platform values, Rust, and the implications for system software
PDF
Is it time to rewrite the operating system in Rust?
PDF
dtrace.conf(16): DTrace state of the union
PDF
The Hurricane's Butterfly: Debugging pathologically performing systems
PDF
Papers We Love: ARC after dark
PDF
Principles of Technology Leadership
PDF
Zebras all the way down: The engineering challenges of the data path
PDF
Debugging under fire: Keeping your head when systems have lost their mind
PDF
The State of Cloud 2016: The whirlwind of creative destruction
Predicting the Present
Sharpening the Axe: The Primacy of Toolmaking
Coming of Age: Developing young technologists without robbing them of their y...
I have come to bury the BIOS, not to open it: The need for holistic systems
Towards Holistic Systems
The Coming Firmware Revolution
Hardware/software Co-design: The Coming Golden Age
Tockilator: Deducing Tock execution flows from Ibex Verilator traces
No Moore Left to Give: Enterprise Computing After Moore's Law
Andreessen's Corollary: Ethical Dilemmas in Software Engineering
Visualizing Systems with Statemaps
Platform values, Rust, and the implications for system software
Is it time to rewrite the operating system in Rust?
dtrace.conf(16): DTrace state of the union
The Hurricane's Butterfly: Debugging pathologically performing systems
Papers We Love: ARC after dark
Principles of Technology Leadership
Zebras all the way down: The engineering challenges of the data path
Debugging under fire: Keeping your head when systems have lost their mind
The State of Cloud 2016: The whirlwind of creative destruction

Recently uploaded (20)

PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Digital Strategies for Manufacturing Companies
PPTX
history of c programming in notes for students .pptx
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
L1 - Introduction to python Backend.pptx
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
medical staffing services at VALiNTRY
PPTX
Online Work Permit System for Fast Permit Processing
PPT
Introduction Database Management System for Course Database
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
System and Network Administraation Chapter 3
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Digital Strategies for Manufacturing Companies
history of c programming in notes for students .pptx
Odoo POS Development Services by CandidRoot Solutions
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
How Creative Agencies Leverage Project Management Software.pdf
L1 - Introduction to python Backend.pptx
PTS Company Brochure 2025 (1).pdf.......
Design an Analysis of Algorithms II-SECS-1021-03
ManageIQ - Sprint 268 Review - Slide Deck
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
medical staffing services at VALiNTRY
Online Work Permit System for Fast Permit Processing
Introduction Database Management System for Course Database
Which alternative to Crystal Reports is best for small or large businesses.pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Softaken Excel to vCard Converter Software.pdf
System and Network Administraation Chapter 3
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
How to Choose the Right IT Partner for Your Business in Malaysia

The DIY Punk Rock DevOps Playbook

  • 1. The DIY Punk Rock DevOps Playbook CTO bryan@joyent.com Bryan Cantrill @bcantrill
  • 2. 1990s/2000s: Architectural big album rock • The late 1990s saw the rise of three-tier architectures consisting of presentation, application logic and data tiers • Many names for roughly the same notion: “Service-oriented architecture”, “Model/View/Controller”, etc. • The AJAX+REST revolution of the mid-2000s gave rise to true web applications in which application logic could live on the edge • Led to a punk uprising...
  • 3. Post-AJAX punks • Why should HTTP be restricted to the web? • Why should REST be restricted to web apps? • Why should JavaScript be restricted to the client? • Instead of having one monolithic architecture, why not have a series of (smaller) services that merely did one thing well? • In case this sounds vaguely familiar...
  • 4. Proto-punk: The Unix philosophy • The Unix philosophy, as articulated by Doug McIlroy: • Write programs that do one thing and do it well • Write programs to work together • Write programs that handle text streams, because that is a universal interface • The single most important revolution in software systems thinking! • Applying it to HTTP-based services...
  • 5. Punk architecture: Microservices • Microservices do one thing, and strive to do it well • Replace a small number of monoliths with many services that have well-documented, small HTTP-based APIs • Larger systems can be composed of these smaller services • And there is an organizational analogue: microservices can break large organizations into smaller, more effective ones
  • 6. Punks in prod: Deploying microservices • Microservices are tautologically small • One physical machine per service is clearly uneconomical… • ...but deploying many orthogonal services on a single machine is a well-known operational nightmare (e.g. conflicting dependencies, shared fault domain) • The key is to virtualize — but at what layer of the stack? • Virtualization has ramifications with respect to performance and density — which is to say, economics
  • 7. Hardware-level virtualization? • The historical answer to virtualization — since the 1960s — has been to virtualize the hardware: • A virtual machine is presented upon which each tenant runs an operating system that they choose (and must manage) • There are as many operating systems on a machine as tenants! • Can run entire legacy stacks unmodified... • ...but operating systems are heavy and don’t play well with others with respect to resources like DRAM, CPU, I/O devices, etc. • With microservices, overhead dominates!
  • 8. Platform-level virtualization? • Virtualizing at the application platform layer addresses the tenancy challenges of hardware virtualization, and presents a much more nimble (& developer friendly!) abstraction... • ...but at the cost of dictating abstraction to the developer • This is the “Google App Engine” problem: developers are in a straightjacket where toy programs are easy — but sophisticated applications are impossible • Virtualizing at the application platform layer poses many other challenges with respect to security, containment, etc.
  • 9. OS-level virtualization! • Virtualizing at the operating system hits a sweet spot: • A single operating system (i.e. a single kernel) allows for efficient use of hardware resources, maximizing tenancy and performance • Disjoint instances are securely compartmentalized by the operating system • Gives tenants what appears to be a virtual machine (albeit a very fast one) on which to run higher-level software: PaaS ease with IaaS generality • Also: boots like a bandit! • Model was pioneered by FreeBSD jails and taken to their logical extreme by Solaris zones — and then aped by Linux containers
  • 10. OS-level virtualization at Joyent • Joyent runs OS containers in the cloud via SmartOS — and we have run containers in multi-tenant production since ~2006 • Adding support for hardware-based virtualization circa 2011 strengthened our resolve with respect to OS-based virtualization • This is especially true for microservices: as services get small, overhead and latency become increasingly important — and OS containers become a bigger and bigger win • We emphasized their operational characteristics — performance, elasticity, tenancy — and for many years, we were a lone voice...
  • 11. Containers as PaaS foundation? • Some saw the power of OS containers to facilitate up-stack platform-as-a-service abstractions • For example, dotCloud — a platform-as-a-service provider — built their PaaS on OS containers • Struggling as a PaaS, dotCloud pivoted — and open sourced their container-based orchestration layer...
  • 13. Docker revolution • Docker has used the rapid provisioning + shared underlying filesystem of containers to allow developers to think operationally • Developers can encode deployment procedures via an image • Images can be reliably and reproducibly deployed as a container • Images can be quickly deployed — and re-deployed • Docker complements the DIY ethos of microservices • Docker will do to apt what apt did to tar
  • 14. Broader container revolution • The Docker model has pointed to the future of containers • Docker’s challenges today are largely operational: network virtualization, persistence, security, etc. • Security concerns are not due to Docker per se, but rather to the architectural limitations of the Linux “container” substrate • For multi-tenancy, state-of-the-art for Docker containers is to run in hardware virtual machines (!!) • Deploying OS containers in hardware virtual machines negates their economic advantage!
  • 15. The future of containers in production? • Can we achieve an ideal world that combines the development model of Docker with the deployment model of SmartOS? • To facilitate this ideal, we at Joyent have: • Added the ability to run Linux binaries in a SmartOS container • Added a Docker API end point to SmartDataCenter, the container-native stack that runs our public cloud • Open sourced everything • Here’s to the punk rock revolution of microservices + containers!