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
はてなシステム構想 / The concept of Hatena System
Search
Yuuki Tsubouchi (yuuk1)
October 07, 2017
Research
2
7k
はてなシステム構想 / The concept of Hatena System
ペパボ・はてな技術大会@福岡
Yuuki Tsubouchi (yuuk1)
October 07, 2017
Tweet
Share
More Decks by Yuuki Tsubouchi (yuuk1)
See All by Yuuki Tsubouchi (yuuk1)
MetricSifter:クラウドアプリケーションにおける故障箇所特定の効率化のための多変量時系列データの特徴量削減 / FIT 2024
yuukit
2
120
工学としてのSRE再訪 / Revisiting SRE as Engineering
yuukit
19
11k
Cloudless Computingの論文紹介
yuukit
2
420
#SRE論文紹介 Detection is Better Than Cure: A Cloud Incidents Perspective V. Ganatra et. al., ESEC/FSE’23
yuukit
3
1.5k
エンジニアのためのSRE論文への招待 / Introduction to SRE Papers for Engineers
yuukit
2
11k
博士課程での研究まとめ 2023年1月版 / Summary of my research in the PhD course
yuukit
1
250
AI時代に向けたクラウドにおける信頼性エンジニアリングの未来構想 / DICOMO2022 6A-1
yuukit
7
2.9k
AIOps研究録―SREのための システム障害の自動原因診断 / SRE NEXT 2022
yuukit
10
12k
Interactive AIOps
yuukit
0
2.1k
Other Decks in Research
See All in Research
大規模言語モデルのバイアス
yukinobaba
PRO
4
690
Matching 2D Images in 3D: Metric Relative Pose from Metric Correspondences
sgk
1
310
Global Evidence Summit (GES) 参加報告
daimoriwaki
0
140
Isotropy, Clusters, and Classifiers
hpprc
3
620
Human-Informed Machine Learning Models and Interactions
hiromu1996
2
450
[CV勉強会@関東 CVPR2024] Visual Layout Composer: Image-Vector Dual Diffusion Model for Design Layout Generation / kantocv 61th CVPR 2024
shunk031
1
450
いしかわ暮らしセミナー~移住にまつわるお金の話~
matyuda
0
150
システムから変える 自分と世界を変えるシステムチェンジの方法論 / Systems Change Approaches
dmattsun
3
860
Practical The One Person Framework
asonas
1
1.6k
TransformerによるBEV Perception
hf149
1
410
SNLP2024:Planning Like Human: A Dual-process Framework for Dialogue Planning
yukizenimoto
1
320
テキストマイニングことはじめー基本的な考え方からメディアディスコース研究への応用まで
langstat
1
120
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
327
21k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Scaling GitHub
holman
458
140k
YesSQL, Process and Tooling at Scale
rocio
168
14k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.2k
How to train your dragon (web standard)
notwaldorf
88
5.7k
A better future with KSS
kneath
238
17k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
3
89
Designing Experiences People Love
moore
138
23k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Transcript
ͯͳγεςϜߏ ͯͳ id:y_uuki ϖύϘɾͯͳٕज़େձ@Ԭ
id:y_uuki / @y_uuk1 TSUBOUCHI Yuuki https://yuuk.io/ גࣜձࣾͯͳ WebΦϖϨʔγϣϯΤϯδχΞ / γχΞΤϯδχΞ
/ ςοΫϦʔυ / ج൫։ൃνʔϜϦʔμʔ
ͯͳγεςϜ
https://twitter.com/y_uuk1/status/722085103166296065
https://twitter.com/matsumotory/status/722085980375621632
https://twitter.com/matsumotory/status/722232813668274177
https://twitter.com/kentaro/status/722233495632764928
ͦͯ͠ɺ1ܦա
ͯͳγεςϜߏ ɾ1. Γ͍ͨ͜ͱ ɾ2. ͯͳγεςϜͱɹ ɾ3. Repairable Infrastructureɹ ɾ4. Experimentable
Infrastructureɹ ɾ5. ·ͱΊɹ
1.Γ͍ͨ͜ͱ
ΤϯδχΞ͕ӡ༻ʹർฐͤͣʹ ੑΛൃشͯ͠ ָ͘͠։ൃͰ͖ΔΑ͏ʹ͍ͨ͠ ※ ※ಛʹɺSREɺWebΦϖϨʔγϣϯΤϯδχΞɺΠϯϑϥΤϯδχΞΛࢦ͢
Γ͍ͨ͜ͱ • ઓज़తͳγεςϜվળͷݶք͕Έ͖͑ͯͨ • ΤϯδχΞͷٕज़ʹΑΔղܾೳྗ͋͘͢͝Δͷ ͰɺγεςϜӡ༻ͷτΠϧ(࿑ۤ)ΛͬͱݮΒ͍ͨ͠ • γεςϜӡ༻͔Βղ์͞Εɺతͳ։ൃΛ͍ͬͯ ͖͍ͨ
ͳͥϏδϣϯ͔ • γεςϜʹର͢ΔϏδϣϯ͕·ͣඞཁͩͱײͨ͡ • ϏδϣϯͱͦΕʹجͮ͘ઓུΛܾఆ͢Δ͜ͱͰޮՌత ʹγεςϜΛվળ͍ͯ͘͠ • ͋͑ͯநతࢥߟΛਪ͠ਐΊΔ͜ͱͰݶքΛಥഁ͢Δ • ͳΊΒ͔ͳγεςϜ͕͖
2. ͯͳγεςϜͱ
ͯͳͷϏδϣϯ͔Βಋग़
http://hatenacorp.jp/information/mission ʮΔʯʮͭͳ͕Δʯʮදݱ͢Δʯ Ͱ৽͍͠ମݧΛఏڙ͠ɺ ਓͷੜ׆Λ๛͔ʹ͢Δ
http://hatenacorp.jp/information/mission
ޠ۟ͷΈൈਮ ΑΓଟ͘ͷΫϦΤΠλʔ ଟ༷ͳٕज़ ਓͷੜ׆ දݱ͢Δ
ਓͷੜ׆े => αʔϏεͷ࣌ؒతӬଓੑ දݱखஈଟ༷ => αʔϏεͷଟ༷ੑ
αʔϏε 100+ ϩʔϧ 1000+ ఏڙ 10years+ ※ ※͜͜Ͱ෦γεςϜεςʔδϯάڥΛؚΜͩγεςϜ୯Ґ
૿͑ଓ͚ΔαʔϏεΛޮΑ͘Քಇͤ͞Δ αʔϏεΛ10୯ҐͰՔಇͤ͞ଓ͚Δ
αʔϏεͷ ʮݸʯͱʮ࣌ؒʯʹରͯ͠ εέʔϧ͢Δ͜ͱΛࢦ͢
ͯͳʹ ͢Ͱʹଘࡏ͢Δཁૉٕज़͔Β ۩ମతͳϏδϣϯΛߟ͑Δ
3. Repairable Infrastructure
Droot https://github.com/yuuki/droot
Droot • DockerΞʔΧΠϒΛchrootͰ࣮ߦ͢Δ͚ͩͷܰྔΞϓ ϦέʔγϣϯίϯςφΤϯδϯ • Docker͕ఏএ͢ΔBuild -> Ship -> Runͷ֓೦Λղ͠ɺ
ίϯςφΤϯδϯ෦ͷΈΛͯͳΒ࣮ͨ͘͠͠ͷ
ڊେͳج൫ιϑτΣΞʹ ର͢ΔΞϯνςʔθ
ڊେͳج൫ιϑτΣΞ • طଘͷج൫ιϑτΣΞ܈ͱͷ࿈ܞ͕͍͠ • ෆ҆ఆʹͳͬͨͱ͖ʹରॲͮ͠Β͍ • όʔδϣϯΞοϓ࣌ͷӨڹൣғ͕େ͖͍ • ͕ܦա͢Δͱɺ৽͍͠ͷೖΕସ͑ͨΓɺఫୀ͢ ΔՄೳੑ͋Δ
• ӡ༻͢ΔΠϯϑϥετϥΫνϟʹ͔ͳ͍
ղͱ࠶ߏங
Γ͍ͨ͜ͱΛখ͞ͳཁૉʹ ղ͠ɺ࠶ߏங͢Δ UNIXֶͷΑ͏ͳߟ͑ํ
ΞϓϦέʔγϣϯσϓϩΠϝϯτͷྫ Build Run Ship
ΞϓϦέʔγϣϯσϓϩΠϝϯτͷྫ Archive Registry Archive Builder Archive Uploader Deploy Server Archive
Fetcher Archive Extracter Container Engine σϓϩΠλʔήοτ CIαʔό Service Discovery
ΞϓϦέʔγϣϯσϓϩΠϝϯτͷྫ Archive Registry Archive Builder Archive Uploader Deploy Server Archive
Fetcher Archive Extracter Container Engine σϓϩΠλʔήοτ CIαʔό Service Discovery
ΞϓϦέʔγϣϯσϓϩΠϝϯτͷྫ Archive Registry Archive Builder Archive Uploader Deploy Server Archive
Fetcher Service Discovery Archive Extracter Container Engine σϓϩΠλʔήοτ CIαʔό
ΞϓϦέʔγϣϯσϓϩΠϝϯτͷྫ Archive Registry Archive Builder Archive Uploader Deploy Server Archive
Fetcher Service Discovery Archive Extracter Container Engine σϓϩΠλʔήοτ CIαʔό
ΞϓϦέʔγϣϯσϓϩΠϝϯτͷྫ Archive Registry Archive Builder Archive Uploader Deploy Server Archive
Fetcher Service Discovery Archive Extracter Container Engine σϓϩΠλʔήοτ CIαʔό
۩ମతͳ࣮Λஔ Amazon S3 droot build awscli furoshiki stretcher Mackerel capze
droot run σϓϩΠλʔήοτ CIαʔό
ղͱ࠶ߏங • ଟͷαʔϏεΛޮΑ͘ӡ༻͢Δʹڞ௨ج൫͕ඞཁ • ظӡ༻͢ΔαʔϏεมԽ͠ଓ͚Δ • ιϑτΣΞΛখ͘͞γϯϓϧʹղ͠ɺকདྷͷมߋʹ దԠͰ͖ΔΑ͏ʹ͓ͯ͘͠
Repairable मਖ਼ͷ༰қͳ ܽؕ෦Λमਖ਼͢ΔͨΊͷมߋΛہॴతʹԡ͑͞Δ͜ ͱ͕Ͱ͖,݁Ռͱͯ͠,ଞͷϓϩάϥϜϞδϡʔϧ,ଐจ ॻʹ࠷খݶͷӨڹ͔͠༩͑ͳ͍Α͏ͳιϑτΣΞ ʹؔͯ͠༻͍Δ༻ޠ. http://ejje.weblio.jp/content/repairable
Repairable Infrastructure
4. Experimentable Infrastructure
Q. ࠷࣌ؒΛͱΒΕ͍ͯΔ͜ͱʁ A. γεςϜͷߏঢ়گ͕Θ͔Βͳ͍ͱ ͖ͷௐࠪ
αʔϏε͕ଟ͍ αʔϏεͷྺ࢙͕͍ ☓ ෳࡶ =
γεςϜͷঢ়ଶͱৼΔ͍Λ ଊ͑ଓ͚Δ͜ͱͷॏཁੑ ʹؾͮ͘
Mackerel https://mackerel.io
Mackerel • αʔόཧɾࢹαʔϏε • ͱͱͯͳͷࣾπʔϧͩͬͨ • 2007લޙʹଟͷαʔϏεΛޮΑ͘ߏங͢ΔͨΊ ʹXen HypervisorΛಋೖ •
Ծϗετ͕૿େ͠ɺExcelͰཧͰ͖ͳ͘ͳͬͨ • ϗετใΛϓϩάϥϚϒϧʹѻ͏MackerelΛ։ൃ
Mackerel αʔϏεͷଟ༷ੑΛ ղܾ͢ΔͨΊʹൃୡ͖ͯͨ͠
୯ͳΔࢹͰͳ͍
؍ଌ Observation
؍ଌ ࢮ׆ঢ়ଶ ϝτϦοΫ ϩά Πϕϯτ αʔό ߏཁૉ ཁૉಉ࢜ ͷؔ
ܧଓతͳ؍ଌʹΑΓ աڈΛΓɺݱࡏΛଊ͑Δ
͜͜·Ͱݟ͍͑ͯΔ ͦͷ࣍ʹΓͨ͘ͳΔ͜ͱ
ະདྷΛ༧ଌ͠ɺରԠ͢Δ
࣮ݧ Experiment
ϑΟʔυόοΫ੍ޚ
ϑΟʔυόοΫ੍ޚɺେنͰෳࡶ ͳγεςϜΛɺͨͱ͑γεςϜ͕֎ཚ ʹӨڹΛड͚Α͏ͱɺ͋Δ͍ɺݶ ΒΕͨࢿݯΛ༗ޮར༻ͭͭ͠ɺͦͷੑ ೳΛอͬͯಈ࡞ͤ͞ΔͨΊͷख๏Ͱ͢ɻ Philipp K. Janert ஶ, ʮΤϯδχΞͷͨΊͷϑΟʔυόοΫ੍ޚೖʯ,ΦϥΠϦʔɾδϟύϯ,
2014/07
ϑΟʔυόοΫ੍ޚͷ • ੍ޚରϒϥοΫϘοΫεͰ͋Γɺதෆ໌ͰΑ͍ • OpsΤϯδχΞ͕ΞϓϦέʔγϣϯͷதΛΒͣʹϞχ λϦϯά݁Ռ͚ͩΛΈͯোରԠ͢Δ༷ࢠʹࣅ͍ͯΔ • ॻ੶ʹαʔόͷͷௐΩϟογϡώοτͷԠ༻ྫ ͕͋Δ •
WebγεςϜෳࡶ͗ͯ͢ཧϞσϧΛಋग़͢Δͷ͠ ͍ͨΊɺύϥϝʔλͷܾఆʹʮ࣮ݧʯʹΑΔܭଌ͕ඞཁ
ϑΟʔυόοΫ੍ޚͷಋೖΠϝʔδ • ੍ޚೖྗ: αʔόͷɺαʔόͷϝϞϦྔͳͲ • ੍ޚग़ྗ: ϨεϙϯελΠϜɺΤϥʔͳͲ • ੍ޚग़ྗΛࢹ͠ଓ͚ɺඪ͔Β֎ΕͨΒ੍ޚೖྗΛมߋ ͠ɺݩʹ͢Α͏ͳૢ࡞Λ͢Δ
• ੍ޚೖྗʹରͯ͠ୡؔΛద༻͠ɺ੍ޚग़ྗΛಘΔ • ୡؔͷಉఆͱνϡʔχϯάɺ࣮γεςϜͰԠΛΈΔ ඞཁ͕͋Δ
ຊ൪ڥΛյ͢ͷෆ҆
ຊ൪ʹ͍ۙڥΛ࡞Δٕज़Λൃୡͤ͞ ύϥϝʔλΛ͔࣮͑ͯݧΛ܁Γฦ͠ɺ ϞσϧΛߏங͢Δ Container, Serverless Architecture, Shadow Proxyɺ
ຊ൪ڥ ࣮ݧڥ ؍ଌγεςϜ ࣮ݧ ಈ࡞ԠϞσϧ ϑΟʔυόοΫ ੍ޚ
࣮ݧΛݩʹະདྷͷ؍ଌΛ͢Δ
Experimentable Infrastructure
5. ·ͱΊ
ͯͳγεςϜ
αʔϏεͷ ʮݸʯͱʮ࣌ؒʯʹରͯ͠ εέʔϧͤ͞ΔͨΊʹ
ղͱ࠶ߏஙʹΑΓRepairableʹߏங͞Ε ؍ଌͱ࣮ݧͷϧʔϓΛߴʹճ͠ͳ͕Β ࣗతʹಈ࡞͢ΔExprimentableͳγεςϜ
http://hatenacorp.jp/recruit/career/operation-engineer WebΦϖϨʔγϣϯΤϯδχΞੵۃืूத