Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
on-premises-cloud-and-docker
Search
Yuuki Tsubouchi (yuuk1)
December 02, 2014
Technology
1.1k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
on-premises-cloud-and-docker
Hatena Engineer Seminar #3 @ Tokyo
Yuuki Tsubouchi (yuuk1)
December 02, 2014
More Decks by Yuuki Tsubouchi (yuuk1)
See All by Yuuki Tsubouchi (yuuk1)
「アラーティング」の話をしよう— SREconや論文等の最先端とのギャップをみる
yuukit
7
2k
SAKURAONE:An Open Ethernet-based AI HPC System And Its Observed Workload Dynamicsin a Single-Tenant LLM Development Environment
yuukit
1
620
AIスーパーコンピュータにおけるLLM学習処理性能の計測と可観測性 / AI Supercomputer LLM Benchmarking and Observability
yuukit
1
1.1k
SREはサイバネティクスの夢をみるか? / Do SREs Dream of Cybernetics?
yuukit
3
790
SREのためのテレメトリー技術の探究 / Telemetry for SRE
yuukit
13
3.8k
AIスパコン「さくらONE」の オブザーバビリティ / Observability for AI Supercomputer SAKURAONE
yuukit
2
1.5k
AIスパコン「さくらONE」のLLM学習ベンチマークによる性能評価 / SAKURAONE LLM Training Benchmarking
yuukit
2
1.3k
とあるSREの博士「過程」 / A Certain SRE’s Ph.D. Journey
yuukit
11
7.6k
eBPFを用いたAIネットワーク監視システム論文の実装 / eBPF Japan Meetup #4
yuukit
3
1.9k
Other Decks in Technology
See All in Technology
「今盗んで、後で解く」に備える ― AWSのポスト量子暗号入門
yama3133
1
190
AIに賢く動いてもらうためのコンテキスト〜Snowflake女子会 vol.8
snowwmn0824
0
170
特殊変数大全
dak2
0
120
The Knowledge Spine: A Machine-Executable Ontology for Governed Marketing Activation
vananth22
0
120
【技術的負債conf】事業成長に伴う技術的負債の説明責任とAIによるモニタリング、認知的負債について
i35_267
4
2.1k
おい、エージェントを使って終わらせろ
nwiizo
3
900
「ピッケル本」日本語版は4.0(第6版)が出版されるべき / pickaxe4-nagoyark05
kakutani
2
290
Azure Serverless 2026:Production-ready な AI エージェント基盤 / Azure Serverless 2026: Production-Ready AI Agent Platform
miyake
2
570
リアーキテクチャ後の障害ゼロを目指したShadow Testingの取り組み
nihonbuson
PRO
1
180
その Lambda、8分で 管理者権限まで奪われます
k1nakayama
7
3.6k
LLMに渡さなかった仕事
nanaism
0
1.4k
【ゲームメーカーズスクランブル2026】『Shadowverse: Worlds Beyond』UIとアニメーションで実現する最高のユーザー体験を叶えるプロトタイピング
cygames
PRO
0
330
Featured
See All Featured
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
280
How to train your dragon (web standard)
notwaldorf
97
6.8k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
250
Docker and Python
trallard
47
4.2k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
440
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
530
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
550
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
2k
Transcript
ΦϯϓϨϛεɺΫϥυ ͦͯ͠%PDLFS Hatena Engineer Seminar #3 id:y_uuki
@y_uuk1 id:y_uuki ӡ༻
Agenda ͯͳͷΠϯϑϥࣄ Docker ΛͲͷΑ͏ʹଊ͍͑ͯΔ͔ ͯͳͷWebΦϖϨʔγϣϯΤϯδχΞ
ͯͳͷ Πϯϑϥࣄ
%BUB$FOUFS "84 ࣗ࡞ αʔό 9FO ϕϯμ αʔό &$ 4 $MPVE'SPOU
3PVUF -74LFFQBMJWFE (MBJDJFS 71$ &-# )"1SPYZ .PHJMF'4 "LBNBJ
DC ͱ AWS • DCͰ Xen ͬͯͨΓ͢Δͱ AWS ͷ෦ΛͳΜͱͳ͘༧ Ͱ͖ͨΓ͢Δ
• ͳΜ͔ϩʔυόϥϯαͷεϧʔϓοτͰͳ͍ → ϋΠύʔ όΠβଆͰ nf_conntrack ᷓΕٙ • ΠϯελϯελΠϓ͝ͱʹ state ͷ্ݶҧ͏ٙ • Domain 0ಉډΠϯελϯε • ΞΫςΟϒɾελϯόΠ2ͱಉډͰ೦ • Ϧιʔεͷ৯͍߹͍ (CPU %steal)
%FW 0QT $IFG $BQJTUSBOP /BHJPT .BDLFSFM .JEMMFXBSF "QQMJDBUJPO +FOLJOT 04
Dev ͱ Ops • αʔόͬΆ͍͜ͱʢσϓϩΠΑΓԼʣ͍͍ͩͨ Ops • Ξϥʔτ Dev ड͚ͱΔ
• Dev ͱ Ops ͕ڠྗͯ͠োରԠ • DevνʔϜͷmeetingʹఆظతʹࢀՃ • Ops GHE ͷ issue ΈΔ (ઃఆม͑Δͱ͖PR) • ༵ۚϦϦʔε͠ͳ͍ • ஈ֊తͳϦϦʔε
՝
DCڥͱAWSڥͷڞ௨Խ • αʔόߏཧ Chef ✓ • ωοτϫʔΫ(VPC + VPN) ✓
• αʔόཧ/ϞχλϦϯάπʔϧ (Mackerel) ✓ • ࢹ(Nagios) ✓ • ϑΣΠϧΦʔό ✘ • Chef ద༻લͷOSΠϝʔδ(Packer) ✘
AWSͷݻ༗ͷػೳ͕͍ͮΒ͍ AWSϩοΫΠϯ AWSαʔϏεʹґଘͨ͠ΈΛ࡞ΔͱDC ଆʹྲྀ༻ͮ͠Β͍
Dev ͱ Ops ͷίϛϡχέʔγϣϯ • Dev ͔Β Ops ʹϗετߏஙΛґཔ •
ຊ൪ʹ Redis ͕ͳͯ͘ࣄނ • Dev ͔Β Ops ʹ Jenkins ϗετʹඞཁͳύοέʔ δΛΠϯετʔϧґཔ • ޓ͍ʹ໘ • ΄͍͠ਓͱ༻ҙ͢Δਓ͕ҟͳΔͷ͕ • ͦͦ Dev ͕ϗετߏங͍͢͠ڥ͕Α͍
Docker
It is Not Docker • VMͱ͔ੜLXC Έ͍ͨʹϩάΠϯͯ͠ੜ׆͢Δ ͷͰͳ͍ • Linuxίϯςφ
≠ Docker • Docker ಛผɺେنڥ͚ͱ͍͏Θ͚Ͱ ͳ͍
It is Docker • Linux ͷϢʔβϥϯυڥΛؙ͝ͱΠϝʔδԽ • ΞϓϦέʔγϣϯ͝ͱʹίϯςφԽ • ls
ίϚϯυ͚ͩͷ Docker ίϯςφͱ͔ • Dockerίϯςφͷ࣮ମͨͩͷOSͷϓϩηε • Χʔωϧ෦Ͱִ͞ΕͯΔ
όʔδϣϯͷҧ͏ MySQL Λ3 ಉ͡ϗετͰಈ͔ͤ·͔͢ʁ
user, datadir, port, socket, pidfile, install_dir, my.cnf ! ͳͲͷϦιʔεΛ3ͭͣͭ࡞Δ UNIX
ʹ౷తʹϦιʔε ػೳ͕ͳ͍
$ docker run -d mysql:5.5 $ docker run -d mysql:5.6
$ docker run -d mysql:5.7 It is Docker
Chef ͱ͔ͬͯOSͷϢʔβϥϯυ γεςϜ͕ෳࡶ͗ͯ͢ཧͰ͖ͳ͍ ! ·ͱʹཧ͢ΔͷΛ͖͋ΒΊͯ ΞϓϦέʔγϣϯ͝ͱʹ ϢʔβϥϯυΛ༻ҙ͍͢͠ΈΛ ఏڙͨ͠ͷ͕ Docker
DockerͰͳʹ͕Ͱ͖Δ͔ • DC ڥ ͱ Ϋϥυڥͷڞ௨Խ • DCͱΫϥυͰಉ͡ Docker image
͕ಈ͘ • αʔϏεͷਰʹซͤͯɺDC <=> Ϋϥυ • Dev ͱ Ops ͷίϛϡχέʔγϣϯ • Dev ΤϯδχΞ͕ඞཁͳΞϓϦέʔγϣϯͷ Dockerfile Λॻ͍ͯɺOps ΤϯδχΞ͕ϨϏϡʔͯ͠ ͦͷ··σϓϩΠ • ΄͍͠ਓ͕४උ͍͢͠
ͦΕDockerͰͰ͖ΔΑ
Docker͕ؔΘΔྖҬଟ͍ • ΞϓϦέʔγϣϯσϓϩΠ • ϩʔΧϧڥ͔Β CI Λܦ༝ͯ͠ຊ൪·Ͱ • ߏཧπʔϧʢChef, Puppet…)
• Docker ࣌ͷαʔόϞχλϦϯά • Docker ࣌ͷϩάऩू • LinuxΧʔωϧ • LinuxίϯςφɺAUFS ͳͲ
ΞϓϦέʔγϣϯσϓϩΠ • શͯͷڥͰಉ͡ Docker image ΛΘͳ͍ͱ ϝϦοτ͕ബ͍ • ϩʔΧϧڥɺ։ൃڥɺstagingڥɺCI ڥɺຊ൪ڥ
• ෦తʹಋೖ͢Δͱ Docker ڥͱ௨ৗͷ ڥΛ྆ํϝϯς͠ͳ͍ͱ͍͚ͳ͘ͳΔ • ։ൃνʔϜͷΤϯδχΞશһ+σβΠφʔ DockerڥͰ։ൃ͢Δ͜ͱʹͳΔ
@ Hatena
߹॓ͰσϓϩΠཧπʔϧ࣮ ࣮ࡍʹෳࡶ࣮͗ͯ͢༻͔ͬͨ͠ *NNVUBCMF*OGSBTUSVDUVSFʹඞཁͳཁૉ٧·ͬͯͨ
SQN EFCύοέʔδΛ࡞ΔڥΛ࡞Δͷ͕໘ͩͬͨ
DBUVTSCJOSSEUPPM CJOTI FYFDEPDLFSSVOSNNBDLFSFMSSEUPPM! RRDtool ☓ Docker Πϯετʔϧ͕໘ͳίϚϯυΛ%PDLFSԽ $POUBJOFS$PNNBOE1BUUFSO
Graphite ☓ Docker • Graphite ͷΑ͏ͳڥߏங͕໘ͳͷ Docker ͰϩʔΧϧڥͱCIڥΛߏங • https://registry.hub.docker.com/u/mackerel/graphite/
EPDLFSSVOEOBNFHSBQIJUFWUNQMPHWBSMPHHSBQIJUFW UNQXIJTQFSWBSMJCHSBQIJUFTUPSBHFXIJTQFSQQ QNBDLFSFMHSBQIJUF
Docker ΞΠσΞ • ϒϥϯν͝ͱʹαʔϏεηοτΛ࡞ΔΈ • ϚΠΫϩαʔϏεͷ֤ίϯϙʔωϯτΛDockerԽ • ڥߏங͕؆୯ʹͳΔ • ςετͰଞαʔϏεΛୟ͘ͱ͖ʹϞοΫԽ͍ͯ͠
ͨͱ͜ΖΛຊΛ͚ͨͨͨΓ͢Δ • Docker cron • cron ͕ಈ͔ͳ͍ • खݩͰ࣮ߦ͍͢͠Α͏ʹ
Docker ࣗମΛ ࣗલͰӡ༻͢Δ or ͠ͳ͍
Docker ͷӡ༻ • Docker ࣗମͷτϥϒϧγϡʔςΟϯά • ಥવDNSҾ͚ͳ͘ͳΔ • ΰϛআ (ཹ͢Δίϯςφ)
• ϚϧνϗετσϓϩΠ • ΦʔέετϨʔγϣϯπʔϧԿΛ͏͔ • Kubernetes, fleet, Consul, … • DNSͰσΟεΧόϦͨ͘͠ͳ͍ • Docker ίϯςφͷωοτϫʔΫߏ • ϗετଆͱϑϥοτ or NAPT • ௐࠪͷํ๏ͷཱ֬ • ssh ͰϩάΠϯͱ͍͏ੈքͰͳ͍ (docker exec /bin/bash)
ΫϥυαʔϏε • AWS EC2 Container Service • Google Container Engine
! • Dockerͷӡ༻Λશ෦ͤΒΕΔ • AWS <-> Google Մ
ઐ༻αʔό • શͯͷαʔϏεΛΫϥυʹͷͤΔͱߴ͍ • ωοτϫʔΫ&ϋʔυΣΞཧΛΦϑϩʔυͭ͠ ্͕ͭ҆Γ • Xen ͰԾԽͤͣʹɺཧϋʔυͷ্ʹίϯςφ •
Docker ͳΒ Ϋϥυ 㱻 ΦϯϓϨϛεͷҠಈ͕ Γ͍͢ • ৽αʔϏεશ෦Ϋϥυ -> ྲྀߦΒͳ͔ͬͨΒ ઐ༻αʔόڥୀආ ͷΑ͏ͳઓུ͕ͱΓ͍͢
ͦΕͰ·ͩෆ҆ • ࠓॻ͍ͨ Dockerfile 1 ޙಈ͔ͳ͍Մೳੑ (DockerfileࣗମͰόʔδϣϯݻఆͱ͔Ͱ͖ΔΘ ͚Ͱͳ͍) •
Docker image Λޙੜେࣄʹ͓࣋ͬͯ͘ඞཁ ͕͋Δ • ࠓ࡞ͬͨ Docker image ͕1ޙͷDocker runtimeͰಈ͔͘Ͳ͏͔
Docker ύϥμΠϜΛม͑Δ
͔ͩΒͦ͜ӡ༻ج൫ͱ։ൃج൫Λ શͯDockerલఏͰߟ͑ͳ͍ͱ Ձ͕Ͱͳ͍
None
ͯͳͷ WebΦϖϨʔγϣϯ ΤϯδχΞ
None
ͬͯΔ͜ͱ͕ҧ͏
y_uuki ͷ߹
ɾΞϧόΠτ࣌: ࣾMackerel։ൃ(Perl) (YAPC Asia) ɾೖࣾ: EC2Ͱ HAProxy νϡʔχϯά http://yuuki.hatenablog.com/entry/2014/03/20/085600 ɾXen,
LVS(keepalived), Chef, Nagios Ұ௨Γ ɾ߹॓: Docker + Mesos σϓϩΠཧπʔϧ࡞Δ http://yuuki.hatenablog.com/entry/2013/12/22/174813 ! ɾ৽αʔϏεͷߏஙӡ༻ʢMackerelʣ ɾJVM, PostgreSQL, Graphite(࣌ܥྻDB) ɾmackerel-agent ύοέʔδఏڙ http://yuuki.hatenablog.com/entry/docker-package-ci ! ɾJVM Operation Casual http://yuuki.hatenablog.com/entry/2014/04/08/074507 ɾGraphiteνϡʔχϯά http://yuuki.hatenablog.com/entry/monitoringcasual6 ɾMackerel OSS ·ΘΓϝϯςφϯε ɾISUCON4 ຊઓग़ http://yuuki.hatenablog.com/entry/dockerized-isucon ɾMackerel CLI tool github.com/y-uuki/gomkr ɾ߹॓: GoͰδϣϒΩϡʔγεςϜ
WebΞϓϦέʔγϣϯ։ൃ ϋʔυΣΞௐୡͱ͔ωοτϫʔΫઃܭ ্ Լ OSΧʔωϧ ϛυϧΣΞ: MySQL, PostgreSQL, Redis, memcached,
Nginx, Apache, Elasticsearch, Solr, Varnish, Squid Jenkins(CI) Capistrano(σϓϩΠ) Nagios Chef
ࣗͷϨΠϠʔ: N N → N - 1 N + 1
→ N ! ͕Ͱ͖Δڥ
ઍਓ
ઍਓ ʜ ৽αʔϏε ৽αʔϏε ৽αʔϏε
5ਓʂʁ
CRITICAL
We are Hiring! IUUQIBUFOBDPSQKQSFDSVJUDBSFFSPQFSBUJPOFOHJOFFS