Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
LXD System Containers [en]
Christoph Lühr
March 07, 2017
Technology
0
170
LXD System Containers [en]
Berlin PHP User Group @bephpug, March 7th, 2017
Christoph Lühr
March 07, 2017
Tweet
Share
More Decks by Christoph Lühr
See All by Christoph Lühr
The how and why of getting Freelancers
chluehr
0
41
Content & Master Data Management with Pimcore
chluehr
1
260
Master Data Management with Pimcore
chluehr
0
110
Swoole in 5 Minutes [en]
chluehr
1
11k
PIM & Master Data Management with Pimcore 5 [en]
chluehr
2
250
Digital Transformation & Master Data Management with Pimcore 5
chluehr
0
180
Developing with Pimcore
chluehr
0
180
Zero to Hero [en]
chluehr
2
160
Performante Web-Apps [de]
chluehr
1
150
Other Decks in Technology
See All in Technology
Oktaの管理者権限を適切に移譲してみた
shimosyan
2
230
PHPのimmutable arrayとは
hnw
1
130
PCL (Point Cloud Library)の基本となぜ点群処理か_2023年_第2版.pdf
cvmlexpertguide
0
100
AI Services 概要 / AI Services overview
oracle4engineer
PRO
0
160
“Do you have a virtual router?” Discuss how to use virtual routers
line_developers
PRO
0
460
成長が鈍化したチームを変えるためにやったこと / #RSGT2023
mongolyy
2
2.8k
データサイエンティストとしてどう学んでいくべきか/東京大学講義: データマイニング概論: #10
yp_genzitsu
10
5.9k
20230121_データ分析系コミュニティ_サテライト企画
doradora09
0
340
【Λ(らむだ)】いつのまにリスキリング / RPALT20230117
lambda
0
380
マネーフォワードクラウドを支える事業者基盤
machisuke
0
220
私見「UNIXの考え方」/20230124-kameda-unix-phylosophy
opelab
0
140
2023年は何する宣言
shigeruoda
0
230
Featured
See All Featured
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
175
9.1k
How GitHub Uses GitHub to Build GitHub
holman
465
280k
The Invisible Customer
myddelton
113
12k
Automating Front-end Workflow
addyosmani
1351
200k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
6
830
Understanding Cognitive Biases in Performance Measurement
bluesmoon
2
390
Design by the Numbers
sachag
271
18k
4 Signs Your Business is Dying
shpigford
171
20k
Building an army of robots
kneath
302
40k
We Have a Design System, Now What?
morganepeng
37
5.9k
Code Reviewing Like a Champion
maltzj
508
38k
StorybookのUI Testing Handbookを読んだ
zakiyama
8
3.2k
Transcript
Christoph Lühr @chluehr / bePHPug 2017-03-07 LXD System Containers
None
None
Unicode Character 'HAPPY PERSON RAISING ONE HAND' (U+1F64B)
Hosting?
Testing?
Live Testing?
OS Updates?
Deployments?
Load Balancing?
None
None
SIN CE 2000
Image source: http://www.flickr.com/photos/robby_van_moor/5702589201/ CC BY-ND 2.0
None
(#) Internet
None
(d|t) Digital Transformation
https://en.wikipedia.org/wiki/File:Pimcore-logo-2016.svg
https://en.wikipedia.org/wiki/File:Pimcore-logo-2016.svg
System Container?
System? Container
Photo: drosen7900 http://www.flickr.com/photos/
[email protected]
/26337022226 "The Internet Archive" Via: Photopin License: CC
BY-NC-ND-2.0 https://creativecommons.org/licenses/by-nc-nd/2.0/ SERVER!
MACHINE CPU, RAM, BIOS/IO ("physical hardware")
LINUX / OS Kernel + Userspace (Init, Shells, Tools, Libs)
APPLICATION PHP, Mysql, Redis, ... (Daemons, Services & Code)
APPLICATION OS KERNEL MACHINE Server Machine "Bare Metal"
Virtualization
VirtualBox XEN LXD Docker
APPLICATION OS KERNEL MACHINE H VirtualBox "Hardware Virtualization"
XEN "Paravirtualization" APPLICATION OS KERNEL MACHINE
APPLICATION OS KERNEL MACHINE LXD "System Container"
APP APP APP LIB LIB LIB KERNEL MACHINE Docker "Application
Container"
LXD
http://design.ubuntu.com/brand/canonical-logo
Features • Images • Instant Snapshots • Remotes, Transfer •
Space efficient • Disc- / Ram- / CPU Efficiency!
LXC CLI LXD Daemon LXC / Net.-Bridge ZFS LXD Components
/ Architecture
C:\>_ LXD Operations LXC local Commands
Create Container lxc launch ubuntu:16.04 my-container
List Containers lxc list
Start Container lxc start my-container
Stop Container lxc stop my-container
Execute (in) Container lxc exec my-container my-cmd
Copy Container lxc copy my-container new-con
Rename Container lxc move my-container mynewname
Destroy Container lxc delete my-container
Snapshots Points in Time Icon made by Madebyoliver from www.flaticon.com
is licensed by CC 3.0 BY
Create Snapshot lxc snapshot my-container or lxc snapshot my-container my-snap
Delete Snapshot lxc delete my-container/snapshot
Restore Snapshot lxc restore my-container snapshot
Create from Snapshot lxc copy my-container/my-snap \ new-container
Space Requirements Icon made by Freepik from www.flaticon.com is licensed
by CC 3.0 BY
Icon made by Freepik from www.flaticon.com is licensed by CC
3.0 BY 1 LXD Container = 1 GB
= ? GB Icon made by Freepik from www.flaticon.com is
licensed by CC 3.0 BY
= ~1 GB! Icon made by Freepik from www.flaticon.com is
licensed by CC 3.0 BY
ZFS Copy - on - Write
ZFS Copy - on - Write
Remotes Image source: http://www.iconarchive.com/show/ios7-icons-by-icons8/Network-Remote-Control-icon.html
Start remote Container lxc start my-remote:my-container
All CLI remotely! lxc xxxxx my-remote:my-container
Copy to Remote lxc copy my-container/my-snap \ my-remote:
Recap: Container Spec. remote:my-container/my-snap
Demo https://linuxcontainers.org/lxd/try-it/
HOSTING
HTTP Proxies Exposing Containers
Nginx Proxy HTTP Requests LXD Host LXD Container NGINX HTTP
Proxy Apache / PHP
server { listen 80; server_name www.website.de; location / { proxy_pass
http://10.1.1.264:80; client_max_body_size 100M; proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; send_timeout 300; } }
NginX Proxy HTTP Requests LXD Host LXD Container A NGINX
HTTP Proxy Apache / PHP LXD Container B Apache / PHP
Deployment Strategy blue-green
Deployment Strategy blue-green LXD Host LXD Container A NGINX HTTP
Proxy Apache / PHP
Deployment Strategy blue-green LXD Host LXD Container A NGINX HTTP
Proxy Apache / PHP Snapshot copy of A
Deployment Strategy blue-green LXD Host LXD Container A NGINX HTTP
Proxy Apache / PHP LXD Container B Apache / PHP Testing
server { listen 80; server_name www.website.de; set $host_blue 10.31.1.199; set
$host_green 10.31.1.4; set $upstream $host_green; # default! if ($http_x_debug = "green") { set $upstream $host_green; } if ($http_x_debug = "blue") { set $upstream $host_blue; } location / { proxy_pass http://$upstream:80; } }
Deployment Strategy blue-green LXD Host LXD Container B NGINX HTTP
Proxy Apache / PHP LXD Container A Destroyed
Deployment Strategy blue-green LXD Host LXD Container B NGINX HTTP
Proxy Apache / PHP
Image source: http://www.flickr.com/photos/rietje/76566707/ CC BY 2.0
Features • VPCs: Networking / Bridges / ... • cgroups
(...): Limiting Ressources • Live (State) Migration (experimental) • Nesting: Docker within LXD Containers • Setup: Modern Kernel Features required • OpenStack: Nodes
LXD System Containers: Lean & Fast, support Snapshots & Remotes
& Transfers
Thanks! Questions? Christoph Lühr
[email protected]
[email protected]
@chluehr Slides license Attribution-NonCommercial-ShareAlike
3.0 http://creativecommons.org/licenses/by-nc-sa/3.0/
Links & References • LXD https://linuxcontainers.org/lxd/