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
インフラエンジニアとアプリ開発
Search
Yokoyama Tatsuo
September 12, 2017
Technology
0
160
インフラエンジニアとアプリ開発
Ruby on Rails を使ったサービス開発と組織(ブラケット × みんなのウェディング)
https://mwed.connpass.com/event/64633/
Yokoyama Tatsuo
September 12, 2017
Tweet
Share
More Decks by Yokoyama Tatsuo
See All by Yokoyama Tatsuo
SREとその組織類型
tatsuo48
12
3k
AWS Fargateでお手軽開発ブランチデプロイ/Easy development branch deployment with AWS Fargate
tatsuo48
0
93
HashiCorp Vaultを使った セキュアなDBアクセスの実現/Secure DB access with HashiCorp Vault
tatsuo48
0
1.7k
Terraformのレポジトリ、 ディレクトリ構成どうする?/Terraform repository, directory structure What should I do?
tatsuo48
6
2.9k
Other Decks in Technology
See All in Technology
偏光画像処理ライブラリを作った話
elerac
1
170
コンピュータビジョンの社会実装について考えていたらゲームを作っていた話
takmin
1
590
EDRの検知の仕組みと検知回避について
chayakonanaika
11
4.7k
4th place solution Eedi - Mining Misconceptions in Mathematics
rist
0
140
RemoveだらけのPHPUnit 12に備えよう
cocoeyes02
0
260
Amazon Aurora のバージョンアップ手法について
smt7174
2
140
依存パッケージの更新はコツコツが勝つコツ! / phpcon_nagoya2025
blue_goheimochi
3
210
Raycast Favorites × Script Command で実現するお手軽情報チェック
smasato
1
140
Goで作って学ぶWebSocket
ryuichi1208
3
2.7k
実は強い 非ViTな画像認識モデル
tattaka
2
1.2k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
18k
(機械学習システムでも) SLO から始める信頼性構築 - ゆる SRE#9 2025/02/21
daigo0927
0
260
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
98
5.4k
Gamification - CAS2011
davidbonilla
80
5.2k
Optimizing for Happiness
mojombo
376
70k
Bash Introduction
62gerente
611
210k
KATA
mclloyd
29
14k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
Speed Design
sergeychernyshev
27
810
GraphQLとの向き合い方2022年版
quramy
44
14k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Typedesign – Prime Four
hannesfritz
40
2.5k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
Transcript
ΠϯϑϥΤϯδχΞͱ ΞϓϦ։ൃ גࣜձࣾΈΜͳͷΣσΟϯά Πϯϑϥάϧʔϓ ԣࢁ ୡஉ
ࣗݾհ • ԣࢁୡஉ(@Yokoyama_tto) • ΈΜͳͷΣσΟϯάʹೖࣾͯͪ͠ΐ͏Ͳ1 • લ৬SIerͷαϙʔτσεΫ(2014/04~2016/08) • झຯɿόϯυɺεϊʔϘʔυ
1લͷࢲ
1લͷࢲ • ࣗࣾαʔϏεॳΊͯ • RailsॳΊͯ • ԿΛ࣭͢Δ͖͔Θ͔Βͳ͍ • AWSʹ͍ͭͯͪΐͬͱͬͯΔ
ΠϯϑϥΤϯδχΞͷࣄ
ΠϯϑϥΤϯδχΞͷࣄ(ੲ) • ωοτϫʔΫߏங • αʔόߏங • ߏஙͨ͠γεςϜͷӡ༻ɾࢹ
• ຊ൪ɺ։ൃڥͷߏཧ • ϩάऩूɺੳ ΠϯϑϥΤϯδχΞͷࣄ(ࠓ)
ฐࣾͷ߹
͍Ζ͍ΖΔ • جຊΠϯϑϥج൫ͷվળ׆ಈ • mobasif(چ)͔ΒRails(৽)ͷҠߦظؒ • چΞʔΩςΫνϟ͔Βͷ٫ࣄͷ͏ͪ • σʔλੳج൫ӡ༻(fluentdɺRedShift) •
CI࣮ݱͷͨΊͷج൫ߏஙӡ༻(ChatBot,CircleCI,CodeDeploy)
mobasif • DeNAͰΘΕ͍ͯͨΨϥέʔରԠͷϑϨʔϜϫʔΫ • 3ΩϟϦΞͦΕͧΕͷҟͳΔϒϥβ༷ʹ߹ΘͤΒΕΔ • PerlͰॻ͔Ε͍ͯΔ • ݟ௨͠ͷྑ͍ബ͍ϑϨʔϜϫʔΫ •
ฐࣾͱͱDeNAͷࣾϓϩδΣΫτͩͬͨͷͰར༻
৺͕͚͍ͯΔ͜ͱ • ಥൃతͳґཔɾτϥϒϧ͕ଟ͍ɻ • ৗʹ͋ΔఔͷόοϑΝʔΛ࣋ͬͯࣄ͢Δɻ • ΞϓϦέʔγϣϯΤϯδχΞʹ૬ஊ͞ΕͨΒɺΠϯϑ ϥΤϯδχΞͱͯ͠ΓํͷےಓΛ͑Δɻ(AWSͷ ͜ΜͳαʔϏε͏ͱΑͦ͞͏ͱ͔) •
ͦͷͨΊʹৗʹใऩू
ΠϯϑϥΤϯδχΞͷΈ
ΠϯϑϥΤϯδχΞͷΈ • ʹݟ͑ΔܗͰαʔϏεʹӨڹ͢Δ͜ͱ͕ͳ͍ • ͳʹ͍ͬͯΔ͔ཧղ͞Ε͍ͯͳͦ͞͏ • Πϯϑϥίετηϯλʔ • ಈ͍ͯͨΓલɻࢭΊͨΒΊͬͪΌౖΒΕΔɻ
ͦΜͳঢ়گΛଧഁ͢ΔͨΊʹ
ΞϓϦଆʹखΛग़͍ͯ͜͠͏
ΞϓϦଆʹखΛग़͍ͯ͜͠͏ • ΞϓϦͷੑೳվળ(εϩʔΫΤϦղফ) • ΞʔΩςΫνϟͷվળ(σʔϞϯͷsupervisorཧ) • RailsΛֶͿ(RailsνϡʔτϦΞϧͬͯΈΔ)
ΞϓϦͷੑೳվળ • εϩʔΫΤϦͷղফ • EXPLAIN͑͞Βͳ͍ঢ়گ͔Βελʔτ • ͱʹ͔͘ௐͯ৭ʑͬͯΈͨɻ • ݁Ռɺɺɺ
Before After ࣮ߦ͕࣌ؒ1/60
ΞʔΩςΫνϟͷվળ • mobasifͰࣗ࡞ͷϓϩάϥϜΛσʔϞϯԽͯ͠ ར༻ • αʔό࠶ىಈ࣌ʹࣗಈىಈ͠ͳ͍&མͪͨΒख ಈͰىಈ͠ͳ͖Ό͍͚ͳ͍ɻ • supervisorΛར༻Ͱ͖ΔΑ͏ʹվमɻsupervisor ͰσʔϞϯԽ͢ΔΑ͏ʹͨ͠ɻ
Supervisorͱ • http://supervisord.org/ • PythonͰॻ͔Ε͍ͯΔσʔϞϯԽπʔϧ • foregroundͰಈ͍͍ͯΔඞཁ͕͋Δ • ͱͱσʔϞϯԽ͞Ε͍ͯΔϓϩάϥϜͳ ͷͰforegroundͰಈ͔ͤΔΑ͏վम
RailsΛֶͿ • RailsνϡʔτϦΞϧͬͯΈΔ • ΞϓϦͷΈ͕Θ͔Δ͜ͱͰCIपΓʹख Λग़ͤΔΑ͏ʹͳͬͨ
ΠϯϑϥΞϓϦΛֶͼ࢝Ίͨ
ΞϓϦ͕ΠϯϑϥΛֶͿ൪
ͰͲ͏ͬͯʁ
ΠϯϑϥΛֶͿ • ݕূ༻ʹAWSͷΞΧϯτΛ࡞ • ݄ͷར༻ֹۚΛઃఆ͓ͯ͘͠($500͘Β͍) • AssumeRoleΛར༻͢Δ͜ͱͰ௨ৗͷΞΧϯ τ͔ΒγʔϜϨεʹར༻Մೳ
·ͱΊ
·ͱΊ • DevͱOpsͷ૬ޓཧղ͕େɻ • ΠϯϑϥΤϯδχΞΞϓϦͷ͜ͱΛֶͿɻ • ΞϓϦέʔγϣϯΤϯδχΞΠϯϑϥͷ͜ͱΛֶͿɻ • ͦͷઌʹ͋ΔͷSREͱ͔ϑϧελοΫΤϯδχΞͱ͔ ͳͷͰʁ
• ΈΜͳӽڥ͍ͯ͜͠͏ɻ৭ʑग़དྷͨํָ͕͍͠ɻ
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠