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
楽楽明細でやってるChatOps/Development with ChatOps
Search
A1
September 18, 2018
0
1.2k
楽楽明細でやってるChatOps/Development with ChatOps
[Rakus Meetup Tokyo #1] 発表資料
https://rakus.connpass.com/event/97795/
A1
September 18, 2018
Tweet
Share
More Decks by A1
See All by A1
プロダクトのことは何でもNotebookLMに聞こう / NotebookLM for on boarding
eichisanden
0
75
Kotlin2でdataクラスの copyメソッドを禁止する/Data class copy function to have the same visibility as constructor
eichisanden
1
670
短納期でローンチした新サービスをJavaで開発した話/launched new service using Java
eichisanden
6
4k
トラブルゼロで乗り切ったTypeScript移行/trouble-free TypeScript migration
eichisanden
3
3.4k
スクラム開発チームをLessでスケールさせた話/Scaling Scrum team with Less
eichisanden
0
5.7k
息の長いサービスのフロントエンドを少し改善する営み/frontend-improvement
eichisanden
3
2.8k
実はGitLabで使えるmermaid.js/gitlab-mermaid.js
eichisanden
1
680
既存 Web アプリケーションへの React.js 適用/react for web application
eichisanden
0
1.7k
jshell概要
eichisanden
0
95
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
970
Why Our Code Smells
bkeepers
PRO
336
57k
Raft: Consensus for Rubyists
vanstee
140
7k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
The Language of Interfaces
destraynor
158
25k
GitHub's CSS Performance
jonrohan
1031
460k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Producing Creativity
orderedlist
PRO
346
40k
Transcript
ָָ໌ࡉͰͬͯΔ $IBU0QT 3BLVT.FFUVQ5PLZP &JJDIJ.JUB
&JJDIJ.JUB !FJDIJTBOEFO.FNCFSTJODF ɹɹɹɹɹɹɹ୲ εϖγϟϦετ৬ ΧΠθϯ͓͡͞Μ+FOLJOTͷ൪ਓϙέϞϯ͓͡͞Μ
গਓͰ։ൃ͔Βӡ༻·Ͱ͜ͳ͢ ͨΊʹɺ͍͔ʹϧʔνϯϫʔΫ ʹ͔͚Δ࣌ؒΛݮΒ͠ɺίʔυΛ ॻ࣌ؒ͘Λ࡞Δ͔͕ॏཁ
ͦͷͨΊʹָָ໌ࡉνʔϜͰऔΓ ΜͰ͖ͨΧΠθϯͷͻͱͭɺ $IBU0QTʹ͍͓ͭͯ͠͠·͢
πʔϧඋظ w ࣗͨͪͷ։ൃɾӡ༻ָ͕ʹͳΔεΫϦϓτΛ࡞ w ϏϧυσϓϩΠʢݕূڥʣΛ+FOLJOTʹඋͨ͠Γ
ָʹͳΓ·͕ͨ͠ɺ৽ͨͳ՝͕ʜ w +FOLJOTΛ͍͍ͪͪ։͘ͷ໘͍͘͞ w ͏͚ͩͷਓͷ+FOLJOTͷΞΧϯτΛ࡞Δͷ໘͍͘͞ w ͦͦΤϯδχΞʹ͔͑͠ͳ͍ʜ
ͦ͜Ͱ$IBU0QT
$IBU0QTͱ w l$IBUzʢνϟοτʣͱz0QTzʢӡ༻ʣͱ͍͏ͭͷϫʔ υΛֻ͚߹Θͤͨޠ w νϟοτͱ৭ΜͳαʔϏεɾϓϩάϥϜΛͭͳָ͛ͯ͠ ͍ͨʂ
8FVTF.BUUFSNPTU
҆৺͍ͯͩ͘͠͞ .BUUFSNPTUɺΦʔϓϯιʔεͷ4MBDLޓͷνϟοτ ˠࠓ͢༰ɺͦͷ··4MBDLͰੜ͔ͤ·͢
.BUUFSNPTU֎෦࿈ܞ̏छͷਆث 4MBDLͷz"QQzʹ֘͢Δͷͳ͍ͷͰɺ̏छྨͷ౷߹ػೳΛۦͯ͠%FW0QTΛ࣮ݱ͢Δ
ਆث͖ΣϒϑοΫ ɾνϟοτʹϝοηʔδΛૹΔͨΊͷઃఆ
ਆث͖ΣϒϑοΫ ɾ࡞͢ΔͱIPPLTUPLFOͷΑ͏ͳ63-͕ৼΒΕΔ
ਆثɿεϥογϡίϚϯυ w νϟοτ͔Β֎෦ʹ࿈ܞ͢ΔίϚϯυΛ࡞ΕΔ
࿈ܞઌͷ63-ɻ࣮ߦ͢Δͱ͜ͷ63-ʹݺͼݩ ͷνϟϯωϧίϚϯυͷҾͳͲͷใ͕ +40/Ͱ͞ΕΔ ਆثɿεϥογϡίϚϯυ ίϚϯυ໊͜ͷྫXCͰ࣮ߦͰ͖Δ (&5Ͱ1045Ͱ͓͖ͳํͰ
ਆثɿ֎͖ΣϒϑοΫ Ԡ͢ΔϫʔυΛࢦఆ τʔΫϯ͕ൃߦ͞ΕΔͷͰ߇͓͑ͯ͘ ࿈ܞઌͷ63-Λࢦఆ w νϟοτͰͬͨϫʔυΛरͬͯ֎෦ʹ࿈ܞ͢Δ
w ͨͩ͠ɺ֎͖ΣϒϑοΫύϒϦο ΫνϟϯωϧͰ͔͑͠ͳ੍͍͕͋Γ ฐࣾͷ֤αʔϏεͷνϟϯωϧϓϥΠ ϕʔτͳͷͰ͑ͳ͍͜ͱ͕໌
̎छͷਆثΛͬͯઃఆ͍ͯ͘͠
εϥογϡίϚϯυͰ+FOLJOTΛݺΜͰΈͨʢࣦഊʣ w εϥογϡίϚϯυͷଓઌʹ+FOLJOTͷ63-Λࢦఆ w ਖ਼ৗ࣮ߦ࣌ɺ+FOLJOT͕zDSFBUFEzΛฦ͖ͯ͠ ·͕͢ɺ.BUUFSNPTU͕Τϥʔͱͯ͠ѻͬͯͯ͠͠· ͍ࣦഊʢ̌൪ਖ਼ৗऴྃͩΖ͕ʂʣ
εϥογϡίϚϯυΛதܧ͢Δ w ͦ͜ͰɺεϥογϡίϚϯυΛҰ୴ड͚͚ͭͯɺ +FOLJOTʹ͢ΈΛ࡞Δ͜ͱʹ Ͱɺ͜ͷͨΊʹ͔Β"1*αʔόʔཱͯΔͷ໘ष͍
ͦ͜Ͱ)VCPU
)VCPU w (JU)VC͕ެ։͍ͯ͠ΔCPUπʔϧ w ͓ͦΒ͘Ұ൪ϝδϟʔͰɺΞμϓλʔεΫϦϓτ͕๛ w વɺ.BUUFSNPTU4MBDLͷΞμϓλʔ͋Δ w $P⒎FFεΫϦϓτͷΠϝʔδ͕ڧ͍͕ɺී௨ʹKTͰॻ͚ Δ
w ଂ͍ͯ͠Δ&YQSFTTΛ͏·͑͘"1*αʔόʔΛผ ్ཱͯΔඞཁ͕ͳ͍ʢ͜Ε͕ܾΊखʣ
)VCPU w τϨϯυʹහײͳʹ͝Ζྲྀߦͬͨͱࢥ͏͕ɺͦͷޙࠜڧ͘ਓؾΛҡ͍࣋ͯ͠ Δҹ w ޙൃௐ͕ͨɺγϯϓϧͩ͠ɺ͜ΕҰ൪ྑ͔ͬͨ
·͕ͨ w )VCPUͷ.BUUFSNPTUΞμϓλ͕ɺ֎͖Σϒ ϑοΫΛ͏લఏʹͳ͍ͬͯΔʢવͰ͕͢ʣ
ͦ͜Ͱ w εϥογϡίϚϯυΛड͚͚ɺͦΕΛ֎͚Σϒ ϑοΫͰड͚औ͔ͬͨͷΑ͏ʹ)VCPUʹϝοηʔδΛ ྲྀ͢)VCPUͷϓϥάΠϯΛࣗ࡞͠·ͨ͠
IUUQTXXXOQNKTDPNQBDLBHFIVCPUTMBTIDPNNBOE
γεςϜߏ ͜͜ͷ෦ࣗ࡞ͷ044ͰOQNʹެ։ࡁΈ ී௨ͷ)VCPUεΫϦϓτͰॻ͚Δ͠ɺ 044ͷεΫϦϓτ͑Δ SFTQPOTFNFTTBHF +PCݺͼग़͠
044ͷ)VCPUεΫϦϓτ͕͑Δͼ IUUQTHJUIVCDPNIVCPUTDSJQUTIVCPUQVHNF
)VCPUεΫϦϓτͷྫ module.exports = (robot) => { robot.respond(/ping/i, (res) => {
rebot.reply(‘pong’); } robot.respond(/σϓϩΠΑΖ͘͠/i, (res) => { // JenkisΛݺͼग़͠ } }
׆༻ࣄྫ
ݕূڥͷ࡞ w XCTDIFNBDSFBUFαʔόʔڥ໊ʜͷΑ͏ʹνϟοτ͢Δͱ ݕূڥΛ࡞ΕΔίϚϯυΛ࡞ͨ͠ʢཪͰ+FOLJOTʹ࿈ܞͯ͠%#ε ΩʔϚΛ࡞ͬͨΓɺσΟϨΫτϦߏΛ࡞ͬͨΓ͍ͯ͠Δʣ w আXCEFMFUFαʔόʔڥ w ୭ͰՃɾআ͕ՄೳʹʢҎલ݁ߏґཔ͞Ε͍ͯͨʣ
"1*Λνϟοτ͔Βୟ͚ΔΑ͏ʹ w ָָ໌ࡉͰ༻ҙ͍ͯ͠Δ"1*Λνϟοτ͔Βୟ͚Δ Α͏ʹͨ͠ɻ w ඇΤϯδχΞͷΘΓʹDVSMΛୟ͍ͯ͋͛Δ࡞ۀ͕ ͳ͘ͳͬͨ
੩తղੳ w ੩తղੳͷ݁ՌΛνϟοτʹ௨͢ΔΑ͏ʹͨ͠ɻ w ΈΜͳݟ͍ͯΔͷͰɺ์ஔ͞Εؾຯͳ੩తղੳΛӡ ༻Ͱ͖ΔΑ͏ʹͳͬͨ
ϦϦʔεதͷόʔδϣϯΛνΣοΫ w Կे͋ΔαʔόʔΛεΫϨΠϐϯά࣮ͯ͠ࡍʹ σϓϩΠ͞Ε͍ͯΔΞϓϦͷόʔδϣϯΛௐΔπʔ ϧΛνϟοτ͔Β࣮ߦͰ͖ΔΑ͏ʹɻ w ສ͕ҰͷϦϦʔε࿙ΕΛ͍͛ͯΔ w ݩʑ͋ͬͨQZUIPOεΫϦϓτΛνϟοτ͔Βݺͼ ग़ͤΔΑ͏ʹ͚ͨͩ͠ʢεΫϦϓτͷग़ྗΛͦͷ·
·νϟοτʹग़ྗ͚ͨͩ͠ɺ΄΅࿑ྗθϩͰ࣮ݱʣ
ϦϦʔεϞδϡʔϧͷϏϧυ w νϟοτͰΔ͜ͱͰɺݸਓ͕ͬͯΔ͜ͱ͕Մ ࢹԽɾڞ༗͞ΕΔͷྑ͔ͬͨ w Θ͟Θ͟+FOLJOTʹϩάΠϯͤͣͱՌΛ νϟοτ͔ΒμϯϩʔυͰ͖Δ
͕ى͖ͨΒଈରԠ w Կ͔͋ͬͯɺνϟοτΛݟ͍ͯΔΤϯδχ Ξ͕ଈରԠͯ͘͠ΕΔ҆৺ײ
৭Μͳ௨Λνϟοτʹू w ϝʔϧΛසൟʹ։͘ͷਏ͍ͷͰɺࠓ··Ͱϝʔ ϧͰͷ௨Λνϟοτʹूʢνϟοτͷྲྀྔ͕ ૿͖͑ͯͨΒผͷ՝͕ग़ͦ͏͕ͩݱঢ়շదʣ
͍͞͝ʹ w طଘͷπʔϧΛνϟοτͭͳָ͛ͯΛ͠Α͏ w αʔϏε֎ͷίʔσΟϯάָ͍͠ w ָΛ͢ΔͨΊͷۤ࿑Λ͠Α͏ w $IBUͰ५ͳίϛϡχέʔγϣϯΛ
͋Γ͕ͱ͏͍͟͝·ͨ͠