Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ecosystem Overview @ Oregon State CS312
Search
Brandon Philips
February 20, 2015
Programming
0
83
Ecosystem Overview @ Oregon State CS312
Brandon Philips
February 20, 2015
Tweet
Share
More Decks by Brandon Philips
See All by Brandon Philips
Node.js Workflow with Minikube and Skaffold
philips
0
210
Manage the App on Kubernetes
philips
0
300
Production Backbone Monitoring Containerized Apps
philips
0
100
KubeCon EU 2017: Dancing on the Edge of a Volcano
philips
1
540
rkt - KubeCon EU keynote - 2017
philips
1
230
FOSDEM_Keynote_2017-_.pdf
philips
0
75
Tectonic Summit Day 2 Keynote
philips
0
300
Kubernetes: Simple to Manage Anywhere (self-hosted, Tectonic upgrade demo)
philips
0
230
KubeCon Keynote 2016- Distributed Systems Simplified on Kubernetes
philips
2
510
Other Decks in Programming
See All in Programming
見た目から始める生産性向上
ikumatadokoro
10
1.5k
Next.js App Router
quramy
12
2k
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
4
1k
Go製Webアプリケーションのエラーとの向き合い方大全、あるいはやっぱりスタックトレース欲しいやん / Kyoto.go #50
utgwkk
6
1.8k
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
330
MicrosoftのPlatform Engineeringガイドを読んで実際になにかやってみた
ymd65536
1
530
Direct Style Effect Systems The Print[A] ExampleA Comprehension Aid
philipschwarz
PRO
0
190
TCAとKMPを用いた新規動画配信アプリ 「ABEMA Live」の設計
tomu28
2
130
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
10
1.6k
雑に思考を整理する技術と効能
konifar
64
31k
Java 22 Overview
kishida
1
200
禅の心を手に入れよ
eltociear
1
420
Featured
See All Featured
Unsuck your backbone
ammeep
664
57k
Become a Pro
speakerdeck
PRO
13
4.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
358
22k
The Cost Of JavaScript in 2023
addyosmani
21
3.9k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Typedesign – Prime Four
hannesfritz
36
2.1k
A Modern Web Designer's Workflow
chriscoyier
689
190k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
26
2.3k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
GraphQLの誤解/rethinking-graphql
sonatard
56
9.3k
Product Roadmaps are Hard
iamctodd
45
9.8k
Transcript
None
About Me CTO/CO-FOUNDER systems engineer @brandonphilips github.com/philips
About Me CTO/CO-FOUNDER systems engineer @brandonphilips github.com/philips
Why build CoreOS?
run and isolate apps containers
what is it exactly? containers
libc python django app.py
$ /usr/bin/python run app.py
libc python django app.py
libc python django app.py example.com/myapp
$ container fetch example.com/myapp $ container run example.com/myapp
pid ns isolated pid 1
user ns isolated uid 0
network ns isolated netdev
mount ns isolated /
cgroups manage resources
cgroups count resources
None
cgroups limit resources
docker engine
None
google lmctfy cloud foundry garden mesos containers lxc systemd-nspawn
how are they created? containers
None
super-powers containers
App independence from the OS. System to get container to
the server. Resource isolation between apps.
reduced API contracts OS
kernel systemd etcd ssh docker python java nginx mysql openssl
app distro distro distro distro distro distro distr
python java nginx mysql openssl app distro distro distro distro
distro distro distr kernel systemd etcd ssh docker
python openssl-A app1 distro distro distro distro distro distro distr
java openssl-B app2 java openssl-B app3 kernel systemd etcd ssh docker
manual updates
automatic updates
automatic updates
atomic with rollback auto updates
None
None
super-powers OS
Opportunity for automatic updates. Consistent set of software across hosts.
Base OS independent from app.
design for host failure clustering
etcd
/etc distributed
open source software sequentially consistent exposed via HTTP runtime reconfigurable
-X GET Get Wait -X PUT Put Create CAS -X
DELETE Delete CAD
Available
Available
Available
Unavailable
Available Leader Follower
Leader Follower Available
Leader Follower Temporarily Unavailable
Leader Follower Available
super-powers etcd
Share configuration data across hosts. Resilient to host failures. Designed
for consistency across hosts.
getting work to servers scheduling
You Scheduler API Scheduler Machine(s)
$ cat foo.service [Service] ExecStart=/usr/bin/sleep 500 $ fleetctl start foo.service
Job foo.service launched on e1cd2bcd.../172.17.8.101
while true { todo = diff(desState, curState) schedule(todo) }
while true { todo = diff(desState, curState) schedule(todo) }
while true { todo = diff(desState, curState) schedule(todo) }
while true { todo = diff(desState, curState) schedule(todo) }
fleet mesos kubernetes swarm job scheduling
locksmith coordination
super-powers scheduling
Think about app capacity first. Take advantage of compute resources.
Build for resilience to host failure.
skydns, discoverd, confd service discovery
magic proxies service discovery
OS Containers Cluster Configuration Job Scheduling Service Discovery
None
Go Beavs!