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
Running with version up
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ta1kt0me
July 14, 2018
Technology
80
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Running with version up
ta1kt0me
July 14, 2018
More Decks by ta1kt0me
See All by ta1kt0me
過去の改善から考える オブザーバビリティの必要性
ta1kt0me
0
59
Update Billion Records
ta1kt0me
3
5.4k
omotesandorb_8.pdf
ta1kt0me
1
430
Rubyでのプロファイリング
ta1kt0me
0
130
開発環境でdockerを使ってみた
ta1kt0me
0
470
Other Decks in Technology
See All in Technology
元銀行員がAIだけでアプリを量産!「バイブコーディング実演セミナー 」
tatsuya1970
0
110
4人目のSREはAgent
tanimuyk
0
170
起点・思考・出力で分解する 〜PM業務の自動化設計〜
kazu_kichi_67
1
1.1k
徹底討論!ECS vs EKS!
daitak
3
1.7k
現場のトークンマネジメント
dak2
1
190
Kiro Ambassador を目指す話
k_adachi_01
0
130
【FinOps】データドリブンな意思決定を目指して
z63d
0
350
AIをフル活用してオンコール機能のプロトタイプを2日で作った話 / Building an AI-Powered On-Call Prototype in Just Two Days
nari_ex
0
130
Zenoh on Zephyr on LiteX
takasehideki
2
110
秘密度ラベル初心者が第1歩でつまづかないための「設計・運用」ポイント
seafay
PRO
1
480
Agile and AI Redmine Japan 2026
hiranabe
4
480
2026 AI Memory Architecture
nagatsu
0
230
Featured
See All Featured
A Tale of Four Properties
chriscoyier
163
24k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
GraphQLとの向き合い方2022年版
quramy
50
15k
Evolving SEO for Evolving Search Engines
ryanjones
0
220
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
The Spectacular Lies of Maps
axbom
PRO
1
820
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Prompt Engineering for Job Search
mfonobong
0
350
Music & Morning Musume
bryan
47
7.2k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
First, design no harm
axbom
PRO
2
1.2k
Transcript
όʔδϣϯΞοϓͱ ҰॹʹΔ !UBMLUP@NF
TFMG w τΫτϛώϩΩ w 3VCZΤϯδχΞ!HSPPWFTJOD w (JU)VC!UBLUNF w 5XJUUFS!UBMLUP@NF
None
w த్࠾༻ࢧԉαʔϏε w ਓࡐհࣄۀऀͱٻਓاۀΛͭͳ͛Δ w ϞϊϦγοΫͳ3BJMTΞϓϦέʔγϣϯ
Ξοϓσʔτͱͷ ͖߹͍ํ
HFNͷΞοϓσʔτ
3BJMTͷΞοϓσʔτ
ͱ͍͏ͷ͕ઌʑि
ͳͥΔ͔
$SPXE"HFOUͷྺ࢙
աڈͷϦϓϨΠε w αʔϏε։͔࢝Β w ࠷ॳ֎Ͱ$(* w $BUBMZTUͰԽϦϓϨΠε w 3VCZPO3BJMTͰϦϓϨΠε
3BJMTͰͷϦϓϨΠεϦϦʔε
എܠ w ϝΠϯ։ൃऀʢͨͬͨҰਓʣͷ৬ w ੵΈॏͳٕͬͨज़తෛ࠴
αʔϏε ։ൃऀ☠
Ξοϓσʔτ͍͢͠ ঢ়ଶΛอͭՁ
Ͳ͏Δ͔
ܧଓతʹऔΓΉ ඞཁͳ࣌ʹΔ
جຊܧଓత
ܧଓ͍͢͠ঢ়گΛ࡞Δ w ςετ w ࣗಈԽ w νʔϜͰ͖߹͏
ςετ w lςετ͕ͳ͍ͱ13Ϛʔδ͠ͳ͍ͷ͕ʮ;ͭ͏ʯz w ;ͭ͏ͷ3BJMTΞϓϦέʔγϣϯ։ൃ!POL w কདྷͷϓϩμΫτ։ൃΛָʹ͢Δࢿ
ࣗಈԽ w CVOEMFVQEBUFZBSOVQHSBEFΛຖ w EJ⒎Λ֬ೝ͘͢͠ w #VOEMFVQEBUF w IUUQTHJUIVCDPNTJOTPLVCVOEMFSEJ⒎ w
:BSOVQHSBEF w IUUQTSFOPWBUFCPUDPN
1 pullrequest_body=`bundle diffgems -f md_table | ruby -e "require 'json';
print JSON.generate(STDIN.read, quirks_mode: true)"` 2 branch_name=bundle_update_$CIRCLE_BUILD_NUM 3 git checkout -b $branch_name 4 git commit -m 'Bundle update' -- Gemfile.lock 5 6 if [[ $pullrequest_body = *"rubocop"* ]]; then 7 bundle exec rubocop --auto-gen-config 8 git add .rubocop_todo.yml 9 git commit -m 'bundle exec rubocop --auto-gen-config' 10 fi 11 12 if [[ $pullrequest_body = *"webpacker"* ]]; then 13 regexp="\[webpacker\]\(https://github\.com/rails/webpacker\) \| [0-9]+\.[0-9]+\.[0-9]+ \| ([0-9]+\.[0-9]+\.[0-9]+) \|" 14 if [[ $pullrequest_body =~ $regexp ]]; then 15 yarn upgrade @rails/webpacker@${BASH_REMATCH[1]} 16 git add package.json yarn.lock 17 git commit -m "yarn upgrade @rails/webpacker@${BASH_REMATCH[1]}" 18 fi 19 fi 20 21 git push origin $branch_name 22 curl -X POST -H "Authorization: token $GITHUB_ACCESS_TOKEN" --data "{\"title\": \"bundle update $CIRCLE_BUILD_NUM\", \"head\": \"$branch_name\", \"base\": \"master\", \"body\": $pullrequest_body}" https://api.github.com/repos/:organization/:repository/pulls w CVOEMFVQEBUF w ಛఆͷHFN͕VQEBUF͞Εͨ࣌ͷϑοΫॲཧ
νʔϜͰ͖߹͏ w ϥΠϒϥϦΞοϓσʔτχϡʔεϨλʔ w ΛνʔϜͰड͚࣋ͭ w ؾ͍ͮͨਓɾऔΓΜͩਓΛࢌ͑ΔධՁ͢Δ
ຖখ͘͞ίπίπ
ඞཁͳ࣌ʹΔύλʔϯ
3BJMTͷόʔδϣϯΞοϓ
w ࠊΛਾ͑ͯௐࠪ w ࣄલ४උ w Δ͜ͱΛߜΔ
λΠϛϯάΛޡͬͨྫ
CPPUTUSBQ☠
λΠϛϯάΛޡͬͨ w ૣܾ͗ͨ͢அ w CFUBͰܹ͠Ίͷมߋ w ӨڹൣғΊͷमਖ਼ΛରԠதʹਖ਼ࣜ൛͕ϦϦʔε w CPPUTUSBQ@GPSNHFN͕ରԠ͍ྃͯ͠ͳ͔ͬͨ w
IUUQTHJUIVCDPNDPNGZDPNGZCPPUTUSBQ GPSNͷΓସ͑ͰରԠ
มߋ͕େ͖͘ͳΓ͕ͪ w ʢ΄΅ʣશը໘ରԠ w ґଘ͕ߴ͍έʔεͰେྔͷมߋΛҰׅϦϦʔε͢Δඞ ཁੑ
४උෆ w ΠϯύΫτͷ͋Δੜ࡞ۀ w qFYCPYରԠͷͨΊQIBOUPNKT͔ΒIFBEMFTTDISPNF Γସ͑ w K2VFSZYΛ͍ͬͯͨͨΊYʹ
ͭΒ͔ͬͨ
ࣄલ४උ w େͳͷ3BJMTҰॹ w Ξοϓσʔτ࡞ۀΛ͢ΔͨΊͷࠐΈ w ؔ࿈HFN w 3BJMTͷσϑΥϧτʹدͤΔ
Δ͜ͱΛߜΔ w มߋ࠷খݶΛҙࣝ͢Δ w ৽ػೳޙͰ w ࣍ظόʔδϣϯΞοϓ·ͰʹΕ͍͍͜ͱٸ͕ͳ͍ w 50%0ɺλεΫԽΛΕͳ͍
࠷ۙ3BJMTʹ ͋͛·ͨ͠
ύϑΥʔϚϯε
w ։ൃڥͰͷܭଌͳͷͰ࣮ଶͱဃ͍ͯ͠ΔՄೳੑ͋Δ ༷ʑͳૢ࡞Λߦ͏ॏͨΊͷ TZTUFNTQFD TFD TFD ΤʔδΣϯτ༻501 TFD
TFD ਓࣄ༻501 TFD TFD ཧը໘501 TFD TFD
3BJMT৽ػೳFUD w ZBSO w XFCQBDLFS w SBJMTVKT w 4ZTUFNUFTU w
&ODSZQUFETFDSFUT w 1BSBNFUFSJ[FENBJMFST w %JSFDUSFTPMWFESPVUFT w GPSN@XJUI w $IBOHF%FGBVMU1SJNBSZ,FZTUP#*(*/5
3BJMT৽ػೳ w "DUJWF4UPSBHF w 3FEJT$BDIF4UPSF w )551&BSMZ)JOUT w $SFEFOUJBMT w
$POUFOU4FDVSJUZ1PMJDZ w CPPUTOBQ w $VSSFOU"UUSJCVUFT
·ͱΊ w վળΛ͘͢͢͠ΔͨΊʹΞοϓσʔτେࣄ w ָʹɺܧଓతʹ w খ͘͞ɺܭըతʹ
͋Γ͕ͱ͏͍͟͝·ͨ͠
None