The document discusses the evolution of operating systems and applications over time. It notes that operating systems originally managed processes and resources on mainframe computers, but now must also schedule application components across distributed systems. Applications have also evolved from monolithic programs to distributed microservices. Docker provides a solution by allowing applications to be broken into containers that provide portability and can be scheduled across infrastructure. Case studies show how Docker has helped organizations build modern distributed applications and achieve continuous delivery from development to production. The future of operating systems lies in platforms like Docker that can manage applications composed of distributed microservices.
9. 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
10. OS in 1970s
• UNIX takes over mainframes
– only IBM’s MVS and DEC’s OpenVMS
remain
• UNIX (written in C) first portable OS
11. 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
13. 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
14. 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
16. OS in 1995 - 2005
• Browser becomes gateway to Internet
applications
• Desktop ruled by Windows
• Linux emerges as the “OS of the
Internet”
• LAMP Stack
17. 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
19. 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
20. 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)
21. Applications Run on Clusters
Static
Website
Web Front EndBackground
Workers
User DB Analytics DB
Queue API
Endpoint
oneapplication
22. Components Need to Work Together
Static
Website
Web Front End
Background
Workers
User DB Analytics DB
QueueAPI
Endpoint
oneapplication
23. New OS needs to
schedule not only
processes, but
components across nodes
24. Development VM
QA Server
Public Cloud
Disaster Recovery
Developer Laptop
Server Cluster
Data Center
Distributed Applications Challenge
Static
Website
Web Front EndBackground
Workers
User DB Analytics DB
Queue API
Endpoint
Development Test & QA Production Scale Out
oneapplication
31. Docker Engine
Creates, 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
34. Orchestration
Compose
• 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
38. Development VM
QA Server
Public Cloud
Disaster Recovery
Developer Laptop
Server Cluster
Data Center
Distributed Applications Solution
Development Test & QA Production Scale Out
Static
Website
Web Front
End
BackgroundWorkers
Analytics DB
Queue APIEndpoint
User DB
oneapplication