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
LXD System Containers [en]
Search
Christoph Lühr
March 07, 2017
Technology
0
240
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
Vektor-Suche & LLMs
chluehr
0
32
Search, Embeddings & Vector-DBs
chluehr
0
56
Reality Check: Automated Content Production at Enterprise Scale with Pimcore
chluehr
0
16
The how and why of getting Freelancers
chluehr
0
54
Content & Master Data Management with Pimcore
chluehr
1
450
Master Data Management with Pimcore
chluehr
0
160
Swoole in 5 Minutes [en]
chluehr
1
12k
PIM & Master Data Management with Pimcore 5 [en]
chluehr
2
280
Digital Transformation & Master Data Management with Pimcore 5
chluehr
0
210
Other Decks in Technology
See All in Technology
Oracle GoldenGate 23ai 導入Tips
oracle4engineer
PRO
1
260
【インフラエンジニアbooks】30分でわかる「AWS継続的セキュリティ実践ガイド」
hssh2_bin
4
1.6k
I tried the newly introduced certification "Applied Skills" on Microsoft Learn
mappie_kochi
0
130
AWSの初級者向けAI・ML資格『AWS Certified AI Practitioner』の傾向と対策/So You Want To Pass AWS Certified AI Practitioner
quiver
0
110
O'Reilly Superstream: Building a RAG App to Chat with Your Data
pamelafox
0
120
VS CodeでF1〜12キーつかってますか? / Do you use the F1-12 keys in VS Code?
74th
2
290
受託開発でもアジャイル開発できました / Agile in Contract Development
takaking22
0
100
【shownet.conf_】放送局とShowNetが共創する、未来の放送システム ~Media over IP 特別企画の裏側~
shownet
PRO
0
330
LeSSはスクラムではない!?LeSSにおけるスクラムマスターの振る舞い方とは / Scrum Master Behavior in LeSS
toma_sm
0
170
エムスリーマネジメントチーム紹介資料 / Introduction of M3 Management Team
m3_engineering
0
270
AWS Lambdaで実現するスケーラブルで低コストなWebサービス構築/YAPC::Hakodate2024
fujiwara3
7
3k
エムスリー全チーム紹介資料 / Introduction of M3 All Teams
m3_engineering
1
280
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
45
2k
Code Review Best Practice
trishagee
62
16k
The Cult of Friendly URLs
andyhume
77
6k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.6k
Ruby is Unlike a Banana
tanoku
96
11k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
125
18k
The Power of CSS Pseudo Elements
geoffreycrofte
71
5.3k
Rails Girls Zürich Keynote
gr2m
93
13k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
41
9.2k
KATA
mclloyd
27
13k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
26
4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
25
660
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/59691268@N00/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/