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
A method for separating policy definition and b...
Search
Gosuke Miyashita
March 02, 2021
Technology
310
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
A method for separating policy definition and behavior control by an intermediate language to achieve optimal server configuration management according to the situation
Gosuke Miyashita
March 02, 2021
More Decks by Gosuke Miyashita
See All by Gosuke Miyashita
なぜインフラコードのモジュール化は難しいのか - アプリケーションコードとの本質的な違いから考える
mizzy
72
37k
Serverspec(をつくった自分)のそれまでとその後
mizzy
9
3.4k
Past and future of Infrastructure as Code
mizzy
0
370
Configuration Managementツールのポリシー定義用中間言語に関する考察/Considerations about an intermediate language of configuration management tools
mizzy
0
530
Infrastructure as Codeのこれまでとこれから/Infra Study Meetup #1
mizzy
28
13k
エンジニアかつ研究者としての今後のキャリアについて/My Career As An Engineer And A Researcher
mizzy
0
460
Compare OCI Runtimes
mizzy
2
1.7k
Serverspec and OSS at IEICE Society Conference 2018
mizzy
2
380
House Meetup
mizzy
7
3.6k
Other Decks in Technology
See All in Technology
運用を犠牲にせずコストを制御し事業成長を支える B2B SaaS ID管理基盤におけるS3 Tableのログストレージ活用
kaminashi
1
100
BigQuery を検索ソースとした AI Agent の作り方って 〇〇 通りあんねん
satohjohn
0
140
AI Agent を本番環境へ―― Microsoft Foundry × Azure Serverless で作る Enterprise-Ready な基盤
shibayan
PRO
1
820
2026年のソフトウェア開発を考える(2026/07版) / Agentic Software Engineering 2026-07 Findy Edition
twada
PRO
31
21k
AI エージェント時代のデジタルアイデンティティ
fujie
1
1.2k
ウォーターフォール開発案件のPMとしてAI活用を模索している話
hatahata021
2
200
最高のシステムプロンプトを作るためにフィードバック機能を導入した話
alchemy1115
0
220
CloudWatchから始めるAWS監視
butadora
0
280
書籍セキュアAPIについて
riiimparm
0
380
データと地図で読む 大井町の「かわるもの、かわらないもの」
yoshiyama_hana
0
600
『モンスターストライク』 の運営に伴走する! データ民主化への 解析グループの3つのアプローチ
mixi_engineers
PRO
0
170
信頼できるテスティングAIをどう育てるか?
odan611
0
160
Featured
See All Featured
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
470
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
400
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
580
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
400
AI: The stuff that nobody shows you
jnunemaker
PRO
9
850
エンジニアに許された特別な時間の終わり
watany
108
250k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
300
Tell your own story through comics
letsgokoyo
1
1k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
350
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
420
Transcript
ঢ়گʹԠͨ͡࠷దͳαʔόߏཧΛ ࣮ݱ͢ΔͨΊͷϙϦγʔఆٛͱৼΔ੍͍ޚΛ தؒݴޠͰ͢Δख๏ ٶԼ ߶ี1 2/দຊ ྄հ2 2 ͘͞ΒΠϯλʔωοτגࣜձࣾ ͘͞ΒΠϯλʔωοτݚڀॴ
1 ߹ಉձࣾServerspec Operations 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 1
͡Ίʹ • ݱࡏݚڀ్தͷ༰ʹ͍͓ͭͯ͠͠·͢ • ݚڀରͰ͋Δαʔόߏཧͷഎܠ՝ҙࣝɺͦͷ՝ ʹରͯ͠ͲͷΑ͏ͳղܾํ๏Λߟ͍͑ͯΔ͔ɺʹ͍ͭͯڞ༗ ͍ͤͯͩ͘͞͞ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 2
ݚڀͷϞνϕʔγϣϯ • ϞόΠϧίϯϐϡʔςΟϯάɺΤοδίϯϐϡʔςΟϯάͷීٴ ʹΑͬͯߏཧख๏͕มΘΔͷͰͳ͍͔ • 2012ϦϦʔεͷAnsibleҎ߱͜Εͱ͍ͬͨߏཧπʔϧग़ ͖͍ͯͯͳ͍ • ߏཧπʔϧ։ൃࡶͰ͋Δ •
ͦͷࡶ͞Λղফ͠ɺࠓޙͷঢ়گͷมԽʹԠͨ͡ߏཧπʔϧ ͕ੜ·Ε͍͢Α͏ʹ͍ͨ͠ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 3
ΞδΣϯμ • αʔόߏཧͷ2େཁૉ • αʔόߏཧͷ՝ • ՝Λղܾ͢ΔͨΊͷख๏ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 4
αʔόߏཧͷ2େཁૉ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 5
αʔόߏཧ • BurgessΒ3ʹΑΔͱɺߏཧ(Configuration Management) ͱʮ༧Ίఆٛ͞ΕͨϙϦγʔͱΨΠυϥΠϯʹै͍ɺࣄલ ʹܾΊΒΕͨϏδωε্ͷతΛୡ͢ΔΑ͏ɺωοτϫʔ Ϋଓ͞ΕͨϚγϯͷৼΔ͍Λ੍ޚ͢ΔϓϩηεʯͰ͋Δ 3 Burgess, Mark,
and Alva L. Couch. 2006. “Modeling Next Generation Configuration Management Tools.” In LISA, 131–47. static.usenix.org. (PDF) 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 6
αʔόߏཧπʔϧ • αʔόߏཧΛߦ͏ͨΊͷιϑτΣΞ • දతͳͷʹCFEngine, Puppet, Chef, AnsibleͳͲ͕͋Δ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 7
αʔόߏཧπʔϧͷ2ͭͷׂ • BurgessΒͷఆ͔ٛΒɺαʔόߏཧπʔϧʹҎԼͷ2ͭ ͷׂ͕͋Δͱଊ͑ΒΕΔ • ωοτϫʔΫଓ͞ΕͨαʔόͷϙϦγʔͷఆٛ • ఆٛ͞ΕͨϙϦγʔʹجͮ͘ৼΔ͍ͷ੍ޚ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 8
ϙϦγʔఆٛ • ϙϦγʔఆٛԿΒ͔ͷݴޠʹΑͬͯߦ͏ • ϙϦγʔఆٛݴޠେผ͢Δͱ3ͭ • ಠࣗͷ؆қݴޠ • YAML/JSONͷΑ͏ͳ؆қݴޠ •
ϓϩάϥϛϯάݴޠ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 9
ϙϦγʔఆٛݴޠͷมભ • ࠷ॳಠࣗ؆қݴޠ͕࠾༻͞Ε͍ͯͨʢCFEngine, Puppet) • ChefͰRubyΛ࠾༻ • ΫϥυͷීٴͰ։ൃऀαʔόʔΠϯϑϥΛ৮ΔΑ͏ʹ ͳͬͨ •
SaltStack, AnsibleͰYAMLΛ࠾༻ • ϓϩάϥϛϯάΛߦΘͳ͍ਓʹड͚ೖΕ͍͢ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 10
ྨࣅπʔϧͷϙϦγʔఆٛݴޠͷมભ • Terraformಠࣗ؆қݴޠɺCloudFormationJSON/YAML • ͦͷޙϓϩάϥϛϯάݴޠ࠾༻ͷྲྀΕ • Pulumi, CDKͳͲ • Kubernetes͜ͷྲྀΕ
• Kubernetes with Pulumi, CDK for Kubernetes(cdk8s)ͳͲ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 11
ϙϦγʔఆٛݴޠશൠͷมભ • ಠࣗݴޠ → ϓϩάϥϛϯάݴޠ → YAML → ϓϩάϥϛϯά ݴޠɺͱ͍ͬͨมભ͕ݟ͑Δ
• ಛʹYAMLͱϓϩάϥϛϯάݴޠؒͰ༳Εಈ͖͕ݟΒΕΔ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 12
ৼΔ੍͍ޚ • ݴޠಉ༷ɺৼΔ੍͍ޚ༷ʑͳख๏͕͋Δ • ϓϩηεͷ࣮ߦํ๏ͰҎԼͷ3ͭʹେผ • αʔόʔ/ΤʔδΣϯτܕ • ελϯυΞϩʔϯܕ •
ΤʔδΣϯτϨεܕ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 13
ৼΔ੍͍ޚख๏ͷมભ • ݩʑɺCFEngine, Puppet, Chefαʔόʔ/ΤʔδΣϯτܕ • ͦͷޙग़͖ͯͨAnsibleΤʔδΣϯτϨεܕ • Masterless Chef/Puppetͱ͍͏ϫʔυ͕ొ4
• ͜ΕελϯυΞϩʔϯͰChef/PuppetΛར༻͢Δ͜ͱΛ ࢦ͢ 4 Masterless Chef/Puppet | Technology Radar | ThoughtWorks 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 14
αʔόߏཧ2େཁૉͷ·ͱΊ • αʔόߏཧʹʮϙϦγʔఆٛʯͱʮৼΔ੍͍ޚʯͷ 2ͭͷׂ͕͋Δ • ϙϦγʔఆٛԿΒ͔ͷݴޠͰߦ͍ɺݴޠʹมભ͕ݟΒΕ Δ • ৼΔ੍͍ޚʹมભ͕ݟΒΕΔ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ
15
αʔόߏཧͷ՝ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 16
αʔόߏཧπʔϧ։ൃ͕ࡶ • αʔόߏཧπʔϧOSσΟετϦϏϡʔγϣϯͷҧ͍ ΛநԽͯ͘͠ΕɺϢʔβʔʹͱͬͯར༻͍͢͠ • ͦͷ໘ɺ࣮టष͘ࡶʹͳΔ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 17
ৼΔ੍͍ޚ͕ॏࢹ͞Ε͍ͯͳ͍ • ϙϦγʔఆٛݴޠͱҟͳΓɺৼΔ੍͍ޚख๏ʹؔ͢Δٞ ͋·Γ׆ൃͰͳ͍ • ϞόΠϧίϯϐϡʔςΟϯάΤοδίϯϐϡʔςΟϯάͷ Α͏ͳίϯϐϡʔςΟϯάڥͷมԽͷରԠΛߟ͑ͨ ߹ɺ͜ͷลΓͷٞ׆ൃʹߦΘΕΔඞཁ͕͋ΔͷͰͳ͍ ͔ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ
18
ϙϦγʔఆٛͱৼΔ੍͍ޚͷҰମԽ • طଘͷߏཧπʔϧϙϦγʔఆٛͱৼΔ੍͍ޚ͕ҰମԽ࣮ͨ͠ ʹͳ͍ͬͯΔ • ϙϦγʔఆٛݴޠAͱ͍͏πʔϧɺৼΔ੍͍ޚख๏Bͱ͍͏ πʔϧͷͷ͕ྑ͍ɺͱ͍͏߹ͰɺΈ߹ΘͤΔ͜ͱ͕Ͱ͖ͳ͍ • ࠓޙͷঢ়گͷมԽʹରͯ͠ɺͦΕʹదͨ͠ݴޠख๏͕ग़͖ͯͨ߹ Ͱɺͯ͢Ұ͔Β࣮͢Δඞཁ͕͋Δ
• ͔͠͠ɺߏཧπʔϧ࣮ࡶͳͷͰͦΕͰޮ͕ѱ͍ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 19
αʔόߏཧͷ՝·ͱΊ • αʔόߏཧπʔϧ։ൃ͕ࡶ • ৼΔ੍͍ޚख๏͕ॏࢹ͞Ε͍ͯͳ͍ • ϙϦγʔఆٛͱৼΔ੍͍ޚͷҰମԽ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 20
՝Λղܾ͢ΔͨΊͷख๏ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 21
ϙϦγʔఆٛͱৼΔ੍͍ޚͷ • ͯ͠෦తʹ࠶ར༻Ͱ͖ΔΑ͏ʹ͢Δ͜ͱͰɺ࣮ίε τΛ͑ͳ͕Β༷ʑͳঢ়گʹ࠷దͳߏཧπʔϧΛͭ͘Δ ͜ͱ͕Ͱ͖Δ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 22
Serverspec5Ͱͷख๏ 5 ٶԼ߶ีɼ܀ྛ݈ଠɼদຊ྄հɼServerspec: એݴతهड़Ͱαʔόͷઃఆঢ়ଶΛςετՄೳͳ൚༻ੑͷߴ͍ςετϑϨʔϜ ϫʔΫɼใॲཧֶձจࢽɼVol.61ɼNo.3ɼpp.677-686ɼ20203݄. 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 23
ServerspecͷߏཧπʔϧͷԠ༻ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 24
Serverspecख๏ͷ՝ • ࣮ݴޠͷAPIͰ྆ऀΛܨ͍Ͱ͓Γ࣮ݴޠ੍͕ݶ͞ΕΔ • ͦͷͨΊผݴޠͰಉ༷ͷ࣮͕ͭ͘ΒΕΔ݁Ռͱͳ͍ͬͯΔ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 25
தؒݴޠͰ͢Δख๏ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 26
தؒݴޠʹٻΊΒΕΔཁ݅ • ֤छϙϦγʔఆٛݴޠͱNର1ͰରԠ͢ΔͷͰ͋ΔͷͰɺத ؒݴޠࣗϙϦγʔఆٛݴޠͰ͋Δ • ϙϦγʔఆٛݴޠਓ͕ؒಡΈॻ͖͢Δ͜ͱΛఆͯ͠ઃܭ ͞ΕͨͷͰ͋Δͷʹର͠ɺதؒݴޠඞͣ͠ਓ͕ؒಡΈ ॻ͖͢Δඞཁ͕ͳ͍ • ैདྷͷϙϦγʔఆٛݴޠͱҟͳΔߟ͑ํʹج͍ͮͯઃܭ͢
Δඞཁ͕͋Δ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 27
ࠓޙͷݚڀ༧ఆ • ઌߦݚڀͷϦαʔν • ߏཧͱผͷྖҬͷϦαʔν • DSLΞεϖΫτࢦݴޠͳͲ • தؒݴޠͰ͢ΔҎ֎ͷख๏ͷݕ౼ •
ৼΔ੍͍ޚ࣮ͦͷͷ͕࣋ͭࡶ͞ͷղܾ 2020ୈ4ճ(IOT௨ࢉୈ52ճ)ݚڀձ 28