About Me @brandonphilips CTO/CO-FOUNDER github.com/philips - - PowerPoint PPT Presentation

about me brandonphilips cto co founder github com philips
SMART_READER_LITE
LIVE PREVIEW

About Me @brandonphilips CTO/CO-FOUNDER github.com/philips - - PowerPoint PPT Presentation

About Me @brandonphilips CTO/CO-FOUNDER github.com/philips systems engineer Why build CoreOS? containers run and isolate apps containers what is it exactly? libc python django app.py $ /usr/bin/python run app.py libc python django


slide-1
SLIDE 1
slide-2
SLIDE 2

About Me CTO/CO-FOUNDER systems engineer @brandonphilips github.com/philips

slide-3
SLIDE 3

Why build CoreOS?

slide-4
SLIDE 4

run and isolate apps

containers

slide-5
SLIDE 5

what is it exactly?

containers

slide-6
SLIDE 6

libc python django app.py

slide-7
SLIDE 7

$ /usr/bin/python run app.py

slide-8
SLIDE 8

libc python django app.py

slide-9
SLIDE 9

libc python django app.py

example.com/myapp

slide-10
SLIDE 10

$ container fetch example.com/myapp $ container run example.com/myapp

slide-11
SLIDE 11

pid ns

isolated pid 1

slide-12
SLIDE 12

user ns

isolated uid 0

slide-13
SLIDE 13

network ns

isolated netdev

slide-14
SLIDE 14

mount ns

isolated /

slide-15
SLIDE 15

cgroups

manage resources

slide-16
SLIDE 16

cgroups

count resources

slide-17
SLIDE 17
slide-18
SLIDE 18

cgroups

limit resources

slide-19
SLIDE 19

docker engine

slide-20
SLIDE 20
slide-21
SLIDE 21

google lmctfy cloud foundry garden mesos containers lxc systemd-nspawn

slide-22
SLIDE 22

how are they created?

containers

slide-23
SLIDE 23
slide-24
SLIDE 24

super-powers

containers

slide-25
SLIDE 25

App independence from the OS. System to get container to the server. Resource isolation between apps.

slide-26
SLIDE 26

reduced API contracts

OS

slide-27
SLIDE 27

kernel systemd etcd ssh docker python java nginx mysql

  • penssl

app

distro distro distro distro distro distro distro distro

slide-28
SLIDE 28

python java nginx mysql

  • penssl

app

distro distro distro distro distro distro distro distro

kernel systemd etcd ssh docker

slide-29
SLIDE 29

python

  • penssl-A

app1

distro distro distro distro distro distro distro distro

java

  • penssl-B

app2 java

  • penssl-B

app3

kernel systemd etcd ssh docker

slide-30
SLIDE 30

manual updates

slide-31
SLIDE 31

automatic updates

slide-32
SLIDE 32

automatic updates

slide-33
SLIDE 33

atomic with rollback

auto updates

slide-34
SLIDE 34
slide-35
SLIDE 35
slide-36
SLIDE 36

super-powers

OS

slide-37
SLIDE 37

Opportunity for automatic updates. Consistent set of software across hosts. Base OS independent from app.

slide-38
SLIDE 38

design for host failure

clustering

slide-39
SLIDE 39

etcd

slide-40
SLIDE 40

/etc distributed

slide-41
SLIDE 41
  • pen source software

sequentially consistent exposed via HTTP runtime reconfigurable

slide-42
SLIDE 42
  • X GET

Get Wait

  • X PUT

Put Create CAS

  • X DELETE

Delete CAD

slide-43
SLIDE 43

Available

slide-44
SLIDE 44

Available

slide-45
SLIDE 45

Available

slide-46
SLIDE 46

Unavailable

slide-47
SLIDE 47

Available

Leader Follower

slide-48
SLIDE 48

Leader Follower

Available

slide-49
SLIDE 49

Leader Follower

Temporarily Unavailable

slide-50
SLIDE 50

Leader Follower

Available

slide-51
SLIDE 51

super-powers

etcd

slide-52
SLIDE 52

Share configuration data across hosts. Resilient to host failures. Designed for consistency across hosts.

slide-53
SLIDE 53

getting work to servers

scheduling

slide-54
SLIDE 54

You Scheduler API Scheduler Machine(s)

slide-55
SLIDE 55

$ cat foo.service [Service] ExecStart=/usr/bin/sleep 500 $ fleetctl start foo.service Job foo.service launched on e1cd2bcd.../172.17.8.101

slide-56
SLIDE 56

while true { todo = diff(desState, curState) schedule(todo) }

slide-57
SLIDE 57

while true { todo = diff(desState, curState) schedule(todo) }

slide-58
SLIDE 58

while true { todo = diff(desState, curState) schedule(todo) }

slide-59
SLIDE 59

while true { todo = diff(desState, curState) schedule(todo) }

slide-60
SLIDE 60

fleet mesos kubernetes swarm

job scheduling

slide-61
SLIDE 61

locksmith

coordination

slide-62
SLIDE 62

super-powers

scheduling

slide-63
SLIDE 63

Think about app capacity first. Take advantage of compute resources. Build for resilience to host failure.

slide-64
SLIDE 64

skydns, discoverd, confd service discovery

slide-65
SLIDE 65

magic proxies service discovery

slide-66
SLIDE 66

OS Containers Cluster Configuration Job Scheduling Service Discovery

slide-67
SLIDE 67

Wednesday 6:00pm AKL Continuous Delivery Meetup. CoreOS: An Introduction Thursday 6:00 PM Go AKL Meetup etcd (and maybe rocket) Friday 10:40am LCA CoreOS Tutorial

slide-68
SLIDE 68