Post on 03-Aug-2015
The Future of the Operating
System
What is an Operating System ?
OS Manages Processes & Resources
OS Provides Portability
(same app runs on different hardware)
OS Provides Isolation & Reliability
Operating Systems &
Apps Over Time
1960s &1970s
Mainframe Era
OS in 1960s
• IBM OS/360 – First OS that kept track of system resources (program, memory, storage)
• CTSS – Introduce scheduling
• Univac Exec 8, Burrows MCP, Multics
OS in 1970s
• UNIX takes over mainframes – only IBM’s MVS and DEC’s OpenVMS remain
• UNIX (written in C) first portable OS
Apps in 1960s & 1970s
• Ran on mainframe • Many apps ran on one mainframe (multi-tenancy) • Very few operators • Relatively small set of “users” • Users didn’t interact with application
• CHALLENGE: Very limited reach
1980s & 1990s
Microcomputer Era
OS in 1980s & 1990s
• UNIX dominates mainframes/servers • PC emerges & brings lots of users
(expanded reach) –DOS & Windows –Mac System Software –OS2, Amiga OS & BeOS
Apps in 1980s & 1990s
• Application ran on a desktop • Single user • Operator became the user
• CHALLENGE : Distribution – Physical media – Ship times measured in months/years
1995 - 2005
Dawn of the Internet Era
OS in 1995 - 2005• Browser becomes gateway to Internet
applications • Desktop ruled by Windows • Linux emerges as the “OS of the
Internet” • LAMP Stack
Apps in 1995 - 2005• Internet emerges, brings easier distribution • Applications are monoliths running on a few
machines • Applications run on owned / leased hardware • Applications accessed through browser • Apps have millions of users
• CHALLENGE: Scale
2005 - 2015
Distributed Applications Era
Apps in 2005 - 2015• Browser solidified as window (view) to
applications • Mobile emerges… most apps merely
component (view) to server based applications
• Apps have 1+ billion users
APPS IN 2005 - 2015• Apps evolved to be composed of services • Distributed applications running on clusters • NoSQL & Cloud
• CHALLENGE : Operations & Deployment – Many services require coordination – Need duplicate environments (dev, stage, prod)
Applications Run on ClustersStatic
Website
Web Front EndBackground Workers
User DB Analytics DB
Queue API Endpoint
one application
Components Need to Work Together
Static Website
Web Front End
Background Workers
User DB Analytics DB
QueueAPI Endpoint
one application
New OS needs to schedule not only
processes, but components across nodes
Development VM
QA ServerPublic Cloud
Disaster Recovery
Developer Laptop
Server Cluster
Data Center
Distributed Applications ChallengeStatic
Website
Web Front EndBackground Workers
User DB Analytics DB
Queue API Endpoint
Development Test & QA Production Scale Out
one application
OS no longer providing
application portability
OS needs to evolve to meet
Application
Linux provides foundation for
Solution.. but needs another layer
Docker + Linux
Modern Application Portability
The Docker Mission
Build Ship Run
Anywhere
Any Application
Local Cloud Data Center
Docker EngineCreates, Ships & Runs containers • Deployable anywhere • Communicates with Docker Hub
BUILD
Package app and dependencies together
SHIP
Deploy locally, in the cloud or in the data center
RUN
Run containers with monitoring and stats anywhere
Application Portability
Run Docker containers unchanged in any environment, on any infrastructure
Build Ship Run
Schedule Components &
Resources
OrchestrationCompose • Configure multi-container applications with a simple file
Machine • Auto-provision hosts and install Engine with a single
command • Drivers to integrate with 12 infrastructure partners
Swarm • Running and scheduling clusters of containers
Isolation & Reliability
Isolation
Container provides true isolation of components
Build Ship Run
Service Reliability
Faithful representation of app with encompassed dependencies
Build Ship Run
Development VM
QA ServerPublic Cloud
Disaster Recovery
Developer Laptop
Server Cluster
Data Center
Distributed Applications Solution
Development Test & QA Production Scale Out
Static Website
Web Front End
Background Workers
Analytics DB
Queue API Endpoint
User DB
one application
The Docker Un-Enabled
Organization
Case Study: Gilt Groupe
Before Docker • 7 Monolithic apps • Wasted time implementing monolithic PaaS
•Dev-to-Prod: weeks
Case Study: ING
Before Docker •9+ months from commit to deploy
• Poorly rated applications •Redundant processes and apps
The Docker Enabled
Organization
Case Study: Gilt Groupe
After Docker • 400+ microservices • 100+ innovations a day • Easily burst capacity at peak times
•Dev-to-Prod: minutes
Case Study: ING
After Docker • 15 minutes from commit to live
• 1,500 deployments per week
The Future…
… is written by people willing to
disrupt the established
UBER
Distributed Apps are the
Future
Linux + Docker is the Future of
Operating Systems
THANK YOU