SLIDE 1 Exploring a new way to manage systems with ostree and atomic
Michael Scherer, misc@redhat.com
SLIDE 2
Who am I ?
SLIDE 3
Sysadmin @
SLIDE 4
In a previous episode..
SLIDE 5
Packager/sysadmin/build system maintainer @mageia
SLIDE 6
Python coder @ some firewall startup
SLIDE 7
Counter stri^W Sysadmin @ unamed european institution
SLIDE 8
Old ways
SLIDE 9
Assemble set of packages
SLIDE 10
Binary packages
SLIDE 11
Sources
SLIDE 12
Both ways
SLIDE 13
Base + ports
SLIDE 14
Appliances..
SLIDE 15
.. or phones/tablets
SLIDE 16
A new hop^W way
SLIDE 17
Project Atomic
SLIDE 18
Codename for a set of distribution
SLIDE 19
Centos/Fedora
SLIDE 20
Others are welcome
SLIDE 21
Atomic upgrade
SLIDE 22
Containers
SLIDE 23
Lightweight
SLIDE 24
Base of openshift v3
SLIDE 25
Let's get technical
SLIDE 26
Components, bottom To top
SLIDE 27
Ostree
SLIDE 28
Created for testing GNOME
SLIDE 29
Firmware-like
SLIDE 30
Bootable read only filesystem
SLIDE 31
All in /usr + some link to /var
SLIDE 32
Reboot on new version
SLIDE 33
Reboot on old version
SLIDE 34
Make rollback possible
SLIDE 35
Git for filesystem
SLIDE 36
Docker & systemd
SLIDE 37
Ship applications with runtime
SLIDE 38
API to start, monitor, control services
SLIDE 39
Cgroups usage to limit containers
SLIDE 40
Geard / Kubernetes
SLIDE 41
Orchestrate containers
SLIDE 42
Manage network
SLIDE 43
Distribute tasks
SLIDE 44
Ensure redundancy
SLIDE 45
Various others things
SLIDE 46
SELinux
SLIDE 47
Isolation
SLIDE 48
Protect base system from containers
SLIDE 49
Protect containers from containers
SLIDE 50
Cherry on the cake
SLIDE 51
Cockpit as a web interface
SLIDE 52
Why ?
SLIDE 53
The stars aligned right
SLIDE 54
Ostree from Gnome QA
SLIDE 55
Jails => Openvz => Linux namespace => LXC => Docker
SLIDE 56
SELinux / svirt
SLIDE 57
Systemd
SLIDE 58
Pressure on IT departments
SLIDE 59
Automate more
SLIDE 60
Drive human costs down
SLIDE 61
Colocate services more
SLIDE 62
Drive hardware spending down
SLIDE 63
Deliver faster
SLIDE 64
Drive profits high
SLIDE 65
Agility
SLIDE 66
Dev Ops
SLIDE 67
Dev systems != Prod servers
SLIDE 68
Example
SLIDE 69
Gluster.org web infra
SLIDE 70
Need to be redone
SLIDE 71
Static website
SLIDE 72
Need a httpd server
SLIDE 73
Need a builder
SLIDE 74
Need a wiki
SLIDE 75
Mediawiki
SLIDE 76
MySQL || PostgreSQL
SLIDE 77
Varnish
SLIDE 78
Awstats
SLIDE 79
Traditional way
SLIDE 80
All on 1 server
SLIDE 81
VM way
SLIDE 82
1 VM per service
SLIDE 83
Containers way
SLIDE 84
Everything in a different containers
SLIDE 85
Microservices
SLIDE 86
Why ?
SLIDE 87
A few problems
SLIDE 88
Static website build
SLIDE 89
Use middleman
SLIDE 90
Ruby
SLIDE 91
No comment
SLIDE 92
Web designer use F20
SLIDE 93
So better use this as well
SLIDE 94
Unpackaged software
SLIDE 95
Mediawiki
SLIDE 96
Need specific isolation
SLIDE 97
Test upgrade and rollback
SLIDE 98
Scaling issues
SLIDE 99
Mediawiki write on the FS
SLIDE 100
Use S3 backed storage
SLIDE 101
Swift container
SLIDE 102
Need a new version of something ?
SLIDE 103
Varnish 4.0 ?
SLIDE 104
( not a good example )
SLIDE 105
A few constraints
SLIDE 106
Treat container as cattle
SLIDE 107
Throw away instances
SLIDE 108
Intra container communication
SLIDE 109
Data container pattern
SLIDE 110
Immutable infrastructure pattern
SLIDE 111
Must take scalability in account
SLIDE 112
( May be complex to do )
SLIDE 113
Kubernetes / etcd
SLIDE 114
MySQL replication
SLIDE 115
Swift replication
SLIDE 116
Deployment workflow
SLIDE 117
Install a few atomic host
SLIDE 118
All are clients, one is master
SLIDE 119
Depend on services running
SLIDE 120
Custom containers
SLIDE 121
Need to have a private registry
SLIDE 122
Docker registry
SLIDE 123
Alternatives : Pulp + crane
SLIDE 124
Can be run in a container
SLIDE 125
Upload of definition to kubernetes
SLIDE 126
$ kubectl create -f gluster.json
SLIDE 127
Exact syntax as exercise to the audience
SLIDE 128
Management of containers build
SLIDE 129
Layered containers
SLIDE 130
Select the base
SLIDE 131
Add runtime
SLIDE 132
Add custom code
SLIDE 133
Using STI ( Source to Image )
SLIDE 134
Workflow of containers update
SLIDE 135
Testing and QA
SLIDE 136
Lot of questions are still open
SLIDE 137
Configuration management ?
SLIDE 138
Backup ?
SLIDE 139
Monitoring ?
SLIDE 140
Log centralisation ?
SLIDE 141
Fine grained management ?
SLIDE 142
Network management ?
SLIDE 143
http://projectatomic.io/
SLIDE 144
?