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
320
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
79
Search, Embeddings & Vector-DBs
chluehr
0
99
Reality Check: Automated Content Production at Enterprise Scale with Pimcore
chluehr
0
58
The how and why of getting Freelancers
chluehr
0
67
Content & Master Data Management with Pimcore
chluehr
1
590
Master Data Management with Pimcore
chluehr
0
190
Swoole in 5 Minutes [en]
chluehr
1
12k
PIM & Master Data Management with Pimcore 5 [en]
chluehr
2
300
Digital Transformation & Master Data Management with Pimcore 5
chluehr
0
230
Other Decks in Technology
See All in Technology
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
280
医療業界に特化した音声認識モデル構築のためのアノテーションの実態
thickstem
0
530
ゆるSRE #11 LT
okaru
1
550
IAMのマニアックな話 2025を執筆して、 見えてきたAWSアカウント管理の現在
nrinetcom
PRO
3
140
これならできる!Kotlin・Spring・DDDを活用したAll in oneのマイクロサービス開発術
demaecan
0
260
データベースの引越しを Ora2Pg でスマートにやろう
jri_narita
0
200
開発効率と信頼性を両立する Ubieのプラットフォームエンジニアリング
teru0x1
0
130
Nonaka Sensei
kawaguti
PRO
3
560
Tenstorrent 開発者プログラム
tenstorrent_japan
0
290
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
48
33k
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.2k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
6
900
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
910
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Documentation Writing (for coders)
carmenintech
71
4.9k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
The Language of Interfaces
destraynor
158
25k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Done Done
chrislema
184
16k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Scaling GitHub
holman
459
140k
Being A Developer After 40
akosma
90
590k
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/