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
GoとGCPとkubernetesを使った MF KESSAIの歴史
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
shinofara
January 30, 2018
Technology
3.6k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GoとGCPとkubernetesを使った MF KESSAIの歴史
golang.tokyo #12
shinofara
January 30, 2018
More Decks by shinofara
See All by shinofara
コーポレートも管掌するCTOを経験した事で見えてきた課題 / 組織の信頼性を高める 〜SRE/情シス/セキュリティの領域を超えて〜
shinofara
1
710
MF KESSAIが、技術的挑戦を繰り返しながら サービス価値と開発のIKIOIを上げ続けてる話
shinofara
1
2.3k
マネーフォワードの子会社MF KESSAIが選択したアーキテクチャ
shinofara
18
5.7k
酔いどれGCPUG 2018/03/02 / PubSubとGAE/FEでサクッと大量にPDF生成出来るようにしたお話
shinofara
0
380
Other Decks in Technology
See All in Technology
dbt と Snowflake と tag
kevinrobot34
1
250
AIで変わるエンジニアの働き方(仮)
naoinaoi
0
550
顧客の要望は2次情報である 〜アンテナを張るFDEの構造論〜
noriakioji
2
610
GopherCon @シアトル に行ってきました
logica0419
0
260
internal/testlog で遊ぼう
rokuosan
0
220
AWSとGitHub Actionsの責任境界と 組織で安全に使用する取り組み
nealle
0
160
Kiro5兄弟のいまどきのセキュリティ基礎知識
kentapapa
0
260
平文パスワードはログに“残り” ── 肝心の侵入は“痕跡すら残らない”
kuroneko13
0
130
巨大気象データと戦う ― サロゲートモデル学習を高速化する圧縮技術
gpuunite_official
0
270
マイナンバーカード本人確認の実装比較(OAuth/OIDC Numa (Immersion) Workshop 2026) / 20260825 numa-12
oidfj
PRO
0
260
AWS Blocks が楽しい #ゆるWeb札幌
tacck
PRO
0
150
紙 to デジタル
ichien178
0
140
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
41
2.7k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
310
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Designing Experiences People Love
moore
143
24k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
260
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Building Adaptive Systems
keathley
44
3.2k
How STYLIGHT went responsive
nonsquared
100
6.2k
The Language of Interfaces
destraynor
162
27k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
290
Transcript
HPMBOHUPLZP (Pͱ($1ͱLVCFSOFUFTΛͬͨ .',&44"*ͷྺ࢙ !TIJOPGBSB
ࠓ͢ࣄ ࣗݾհ .',&44"*͍ͭͯ ձࣾʹ͍ͭͯ αʔϏεʹ͍ͭͯ HPMBOHUPLZPͰຊ ;Γ͔͑Γ ʒ
ࠓ͢ࣄ ࣗݾհ .',&44"*͍ͭͯ ձࣾʹ͍ͭͯ αʔϏεʹ͍ͭͯ HPMBOHUPLZPͰຊ ;Γ͔͑Γ ʒ
·ͣ ୭ʁ
୭ʁ ࣰݪ༞و !TIJOPGBSB w (Pྺ"84ྺ($1ྺ%PDLFSྺ w &NBDT(PMBOE w ৽ଔͰ:BIPP+"1"/ʹೖࣾɺͦͷޙస৬Λ܁Γฦ͢
w ݄ΫϥυίϯςφԽͤͯԼ͍͞ʂͱ.'ʹೖࣾ ͔݄͠͠ʹ.',&44"*גࣜձࣾͷٕज़ऀͱͳΔ
ࠓ͢ࣄ ࣗݾհ .',&44"*͍ͭͯ ձࣾʹ͍ͭͯ αʔϏεʹ͍ͭͯ HPMBOHUPLZPͰຊ ;Γ͔͑Γ ʒ
.',&44"*ͱ .',&44"*ͱ͍͏ձࣾΛ͝ଘͰ͔͢ʁ
.',&44"*ͱ w ݄ઃཱ w ϚωʔϑΥϫʔυͷࢠձࣾ w σʔλͷՄࢹԽʹΑΔʮۀޮԽʯ͚ͩͰ ͳ͘ɺʮࢿۚ܁ΓվળʯʹϑΥʔΧεͨ͠ ձࣾ
.',&44"*Ͳ͏͍͏αʔϏεͳͷ͔ ٻۀΛߦͬͨࣄ͋Δਓ͍·͔͢
.',&44"*Ͳ͏͍͏αʔϏεͳͷ͔ ചΓख ങ͍ख ༩৴ௐࠪ ٻॻൃߦ ೖۚཧ ಜଅɾ࠵ଅ ۚճऩ ٻۀϓϩηε ͜ͷϓϩηεͷͯ͢Λߦ
.',&44"*Ͳ͏͍͏αʔϏεͳͷ͔ ؆୯ʹݴ͏ͱɺٻߦ
ࠓ͢ࣄ ࣗݾհ .',&44"*͍ͭͯ ձࣾʹ͍ͭͯ αʔϏεʹ͍ͭͯ HPMBOHUPLZPͰຊ ;Γ͔͑Γ ʒ
HPMBOHUPLZPͰ͓͢Δࣄ ͯ͞ɺຊ
HPMBOHUPLZPͰ͓͢Δࣄ .',&44"*ͷΛৼΓฦͬͯɺ(PΞ ϓϦέʔγϣϯɺपลͷΞʔΩςΫνϟ ͕Ͳͷ༷ʹมΘ͖͔ͬͯͨΛ͓͠·͢ɻ
HPMBOHUPLZPͰ͓͢Δࣄ .',&44"*ͷྺ࢙
.',&44"*ͷྺ࢙ ۀॳظ ಋೖاۀ͚αʔϏε։ൃظ ݱࡏ
ۀॳظ ΤϯδχΞ໊̎ 10݉ΤϯδχΞ Πϯϑϥ݉ΤϯδχΞ ։ൃͰ͏ٕज़ΛܾΊͨ (PMBOHΛ͏ࣄ %PDLFSΛ͏ࣄ ($1Λ͏ࣄ ࣾπʔϧͷ։ൃ
(PMBOHΛ͏ࣄʹͨ͠ཧ༝ ࣮ࡍʹ͓ۚʹؔΘΔࣄͳͷͰɺܕݫ֨ʹ͍ͨ͠ .'3VCZ3BJMTͷϝϯόʔ͕ଟ͍ͷͰɺ৽͍͠ ݴޠͷҠߦίετՄೳͳݶΓগͳ͘ ୭͕ॻ͍ͯ͋Δఔಉ༷͡ͳίʔυ͕͔͚Δɻ
(PMBOHͰͲͷΑ͏ʹ։ൃ͔ͨ͠ &DIP(JOͱ͍ͬͨϑϨʔϜϫʔΫΘͳͣ ඞཁʹԠͯ͡ɺHPDIJDIJɺHPSJMMBDTSGͳͲ Λબͯ͠ɺ֦େ͍ͯ͘͠ํ (PΒ͘͠ॻ͘ UFTUMJOUWFU࠷ॳ͔Βಋೖ
(PMBOHΞϓϦέʔγϣϯͷঢ়گ w ϦϙδτϦ̍ w (P w ґଘཧ(MJEF (Pͱґଘཧ ར༻ύοέʔδ HJUIVCDPNVOSPMMFESFOEFS
HPVCFSPSH[BQ HJUIVCDPNHPSJMMBTDIFNB HJUIVCDPNHPSJMMBDPOUFYU HJUIVCDPNHPSJMMBTFTTJPOT HJUIVCDPNHPSJMMBDTSG HJUIVCDPNQSFTTMZDIJ HJUIVCDPNKJO[IVHPSN
%PDLFSΛ͏ࣄʹͨ͠ཧ༝ ڥͷಉҰੑͷ୲อ ͩΕ͕Ͳ͜Ͱ࡞ͬͯಉ͡ڥΛ࠶ݱ͍ͨ͠ ΧϓηϧԽ ΞϓϦέʔγϣϯຖʹಈ࡞ڥΛͯ͠ཧ
SVOUJNFڥͷҰ؏ੑ εςʔδϯάͳͲͰݕূͨ͠ڥΛɺಉ͡Πϝʔ δΛ͍·Θ͢ࣄͰɺݕূࡁΈͷڥΛຊ൪ʹ దԠͰ͖Δ
($1Λ͏ࣄʹͨ͠ཧ༝ (4VJUFͱ࿈ܞ͢ΔࣄͰɺ༰қʹݖݶཧ͕ग़དྷΔࣄʢ*".ʣ ҙࣝ͠ͳͯ͘σʔλ͕ੵ͞ΕΔ4UBDLESJWFSͷଘࡏ ,VCFSOFUFTαʔϏε͕ଘࡏͨ͠ࣄ ࠓ"84ɺ#MVF.JYɺ"[VSFʹଘࡏ͍ͯ͠Δ
ΠϯϑϥΤϯδχΞෆࡏͰӡ༻͍͢͠
ࣾπʔϧʹઐ೦͢Δࣄʹͨ͠ཧ༝ ࠷ݶҎԼͷػೳ͕͋ΕɺϏδωεΛ։࢝͢Δࣄ ͕Ͱ͖ͨͷͰɺࣾπʔϧͷ։ൃ͔Βணख w اۀ৹͕ࠪग़དྷΔࣄ w औҾใͷཧ͕ग़དྷΔࣄ w ৼࠐͷҝʹܭࢉ͕Ͱ͖Δࣄ
͜ͷ࣌Ͱͷ($1ͷߏ ࣾཧ༻ 8*
.',&44"*ͷྺ࢙ ۀॳظ ಋೖاۀ͚αʔϏε։ൃظ ݱࡏ
ಋೖاۀ͚αʔϏε։ൃظ (PQIFS໊̎ ϑϩϯτΤϯυΤϯδχΞ໊̍ೖࣾ ಋೖاۀ͚8&#αʔϏεͷ։ൃ ಋೖاۀ͚3&45"1*ͷ։ൃ ෦"1*ͱͯ͠H31$"1*ͷ։ൃ
H31$"1*։ൃ H31$Λ࠾༻ ݩʑͷϩδοΫࣾπʔϧͰ։ൃ ࡁΈͳͷ͕ଟ͔ͬͨͷͰɺΠϯλʔ ϑΣʔε෦͕ओʹ։ൃͨ͠
3&45"1*։ൃ 3&45"1*ͷ։ൃʹ HJUIVCDPNHPBEFTJHOHPBΛ࠾༻ "1*,&:ೝূɺήʔτΣΠͱͯ͠ "1*"HHSFHBUPSͷ,POHΛ࠾༻
(PMBOHΞϓϦέʔγϣϯͷঢ়گ w ϦϙδτϦ̐ w (P w ґଘཧ(MJEF (Pͱґଘཧ ར༻ύοέʔδ HJUIVCDPNVOSPMMFESFOEFS
HPVCFSPSH[BQ HJUIVCDPNHPSJMMBTDIFNB HJUIVCDPNHPSJMMBDPOUFYU HJUIVCDPNHPSJMMBTFTTJPOT HJUIVCDPNHPSJMMBDTSG HJUIVCDPNQSFTTMZDIJ HJUIVCDPNKJO[IVHPSN HJUIVCDPNHSQDHSQDHP HJUIVCDPNHPMBOHQSPUPCVG HJUIVCDPNHPBEFTJHOHPB HJUIVCDPNKJO[IVDPOpHPS
͜ͷ࣌Ͱͷ($1ͷߏ ಋೖاۀ͚ 8* ಋೖاۀ͚ 3&45"1* ࣾཧ༻ 8* ܾࡁ H31$"1* "1*"HHSFHBUPS
4FSWJDF.FTI %BUB%PH"HFOU &UD
.',&44"*ͷྺ࢙ ۀॳظ ಋೖاۀ͚αʔϏε։ൃظ ݱࡏ
ݱࡏ (PQIFS͕ߋʹ໊̍ೖࣾͯ͠߹ܭ໊̒ʹ εέʔϥϒϧͳ1%'ੜαʔϏεͷ։ൃ ϞχλϦϯάɺΤϥʔτϥοΩϯάݟ͠ 4FSWJDF.FTIಋೖ
εέʔϥϒϧͳ1%'ൃߦͷΈ ٻॻൃߦʹؔ͢ΔࣝΛΞϓϦέʔγϣϯΒͳͯ͘ྑ͘ͳΔ QVCTVC ("&Λ༻͍ΔࣄͰɺδϣϒͷฒྻ࣮ߦ͕ՄೳʹͳΓɺ࣌ؒͰେྔʹੜͰ͖Δ
(PMBOHΞϓϦέʔγϣϯͷঢ়گ w ϦϙδτϦ̑ w (P w ґଘཧ%FQ (Pͱґଘཧ ར༻ύοέʔδ HJUIVCDPNVOSPMMFESFOEFS
HPVCFSPSH[BQ HJUIVCDPNHPSJMMBTDIFNB HJUIVCDPNHPSJMMBDPOUFYU HJUIVCDPNHPSJMMBTFTTJPOT HJUIVCDPNHPSJMMBDTSG HJUIVCDPNQSFTTMZDIJ HJUIVCDPNKJO[IVHPSN HJUIVCDPNHSQDHSQDHP HJUIVCDPNHPMBOHQSPUPCVG HJUIVCDPNHPBEFTJHOHPB HJUIVCDPNKJO[IVDPOpHPS (PPHMF$ISPNF%FCVHHFS HJUIVCDPNXJSFQBJSHDE
ݱࡏͷ($1ͷߏ
($1ͷߏ ($1શମͷNPOJUPSJOHɺ4UBDL%SJWFS (,&ͷதͷNPOJUPSJOHɺ%BUB%PH (,&ͷதͰൃੜ͢ΔΤϥʔɺ4FOUSZͰཧ
($1ͷߏ ϚΠΫϩαʔϏεͷͦΕͧΕͷαʔϏε୯ҐͰ1PETԽ͠ ͍ͯ·͢ɻ (,&ͷதͷߏ͋ͱͷεϥΠυͰઆ໌
($1ͷߏ ٻॻ໌ࡉॻ1%'ͷൃߦΛ݅ෛՙʹԠͯ͡εέʔ λϒϧʹੜͰ͖ΔΈΛߏங͍ͯ͠·͢ɻ
,VCFSOFUFTͷؔਤ
,VCFSOFUFTͷؔਤ Ϣʔβ͕ར༻͢Δ6*ຖʹ1PETΛ͚ ͍ͯ·͢ɻ w ಋೖاۀ͚6* w ಋೖاۀ͚3&45"1* w ࣾ༻ཧ6* w
,POHʢ044ʣ ฐࣾͰՄೳͳݶΓࣗࣾ։ൃͤͣ͋Γ ͕͋Ε͏ํͳҝɺ(BUFXBZ 0BVUI&OEQPJOUͷΛ,POHʹ· ͔͍ͤͯ·͢ɻ
,VCFSOFUFTͷؔਤ ࠓޙΑΓϚΠΫϩαʔϏεԽ͕ਐΉࣄͰɺH31$"1*͕૿͍͑ͯ͘ࣄ͕༧ ͞ΕΔҝɺݱࡏ༷ʑͳ"1*ͷ4FSWJDF%JTDPWFSZ3PVUJOH1SPYZ͕ߦ ͑Δ4FSWJDF.FTIͷ-JOLFSEΛಋೖ͓ͯ͠Γ·͢ɻ *TUJPʹ৺ऒ͔ΕͨΓ͍ͯ͠·͕͢ʣ
,VCFSOFUFTͷؔਤ H31$"1*͕υϝΠϯͷίΞϩδοΫ ෦ͳͲΛ୲͍ͯ͠·͢ɻ
ࠓ͢ࣄ ࣗݾհ .',&44"*͍ͭͯ ձࣾʹ͍ͭͯ αʔϏεʹ͍ͭͯ HPMBOHUPLZPͰຊ ;Γ͔͑Γ ʒ
;Γ͔͑Γ ৽نࣄۀʹHPMBOHΛબΜͰΈͯ 1SPT$POT
৽نࣄۀʹ(PMBOHΛબΜͰΈͯ1SPT ৽نαʔϏε্ཱͪ͛࣌ಛʹɺ༷มߋɺ్த͔Β࠷దԽͳͲߦ͏ࣄ͓͓͍ҝ ίϯύΠϧ͕͋Δ͓ӄͰɺେنͳϦϑΝΫλΛߦͬͨ࣌ʹɺग़͔ͯ͠ΒյΕ͍ͯΔ ࣄʹؾ͘ͳͲͷͳ͘ͳͬͨͷͰΑ͔ͬͨ HPGNU HPWFUͳͲͷ੩తνΣοΫπʔϧͷ͓͔͛ͰϨϏϡʔͰࠣͳࢦఠΛ͠ͳͯ͘ ࡁΉ ϨϏϡʔίετݮ
ݴޠࣗମͷ࣭ΤίαΠΫϧͷվળ DPOUFYUͷඪ४Խͱ͔ɺEFQͱ͔ ͕ʑߦΘΕ ͍ͯͯɺ͜Ε͔Βઌ҆৺ͯ͑ͦ͠͏ νʔϜ։ൃʹ͍͍ͯΔɻ ݴޠతʹઃܭ͕ૄ݁߹ʹͳΓ͕ͪ ྫJOUFSGBDFͬͨΓͱ͔ɺDIBOOFMͰͷϝοηʔ δϯάͱ͔ ͳͷͰɺෳਓͰฒߦͯ͠։ൃ͢ΔͷࣗવʹͰ͖ɺ։ൃ্͕Δ
৽نࣄۀʹ(PMBOHΛબΜͰΈͯ$POT ੩తܕ͚ݴޠ৽͍͠ݴޠɺະܦݧऀ͕ډͯΔ߹ɺࠓ·Ͱग़དྷ͍ͯͨࣄ͕ग़དྷ ͳ͍ɺ͍ͨ͠ͱ͍ͬͨײ͡Ͱҙݟͷিಥى͖Δ తʹϦονͳ6*Λఏڙ͢Δͱ͔ʹ͍ͯͳ͍ 8FCΞϓϦͳͲɻόοΫΤϯυ ͱಉ͡ϊϦͰཧը໘ͱ͔(PͰ࡞Ζ͏ͱ͢Δͱख͕͔͔ؒͬͨ
ΤϥʔϋϯυϦϯάͳͲͰ هड़ྔ͕ͦΕͳΓʹଟ͘ͳΓ͕ͪɻαΫοͱ࡞Δʹ*%& ͱ͔ͦΕͳΓʹ͍ࠐΜͰͳ͍ͱݫ͍͔͠ ྫ֎͕ແ͍͕Ώ͑ʹɺ*GFSSOJM\^͕େྔʹඞཁʹͳΔखؒΛײ͡Δࣄଟ͍
ࠓ͢ࣄ ࣗݾհ .',&44"*͍ͭͯ ձࣾʹ͍ͭͯ αʔϏεʹ͍ͭͯ HPMBOHUPLZPͰຊ ;Γ͔͑Γ ʒ
࠷ޙʹ ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ