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
サービスがゼロからN億円規模になるまに実践した7つのやっていき / 7_yatteiki_ba...
Search
kikunantoka
July 06, 2019
Technology
1
1.3k
サービスがゼロからN億円規模になるまに実践した7つのやっていき / 7_yatteiki_battle_conference_u30_2019
kikunantoka
July 06, 2019
Tweet
Share
More Decks by kikunantoka
See All by kikunantoka
個人開発しているサービスのインフラをAWSからGCPに載せ替えた話 💪 / kojin_kaihatsu_night_3
kikunantoka
0
980
Gatsby.jsとCloud Functionsで毎週自動でコンテンツが更新され続けるフレームワーク比較サイトを作った話 / gotanda_js_13
kikunantoka
1
2.3k
Gatsby.jsとCloud Functionsで毎週自動でコンテンツが更新され続けるフレームワーク比較サイトを作った話 / frontend_night_1
kikunantoka
3
1.5k
Gatsby.jsとNetlifyとの付き合い方 / gatsby-js-and-netlify
kikunantoka
3
540
Gatsby.jsで導入事例をバシバシ読めるSPAなLPを作った話 / gatsby-js-for-biz-lp
kikunantoka
2
560
Gatsby.jsで導入事例をバシバシ読めるSPAなLPを作った話 / gatsby-js-for-biz-lp
kikunantoka
1
1.8k
今日から始める Flood.io / fuka-taisaku-night-01
kikunantoka
0
280
20万RPMを捌くRailsアプリケーションの作り方
kikunantoka
0
740
MVPに絞ったら個人開発でもちゃんとリリースできた話
kikunantoka
1
490
Other Decks in Technology
See All in Technology
権威ドキュメントで振り返る2024 #年忘れセキュリティ2024
hirotomotaguchi
2
760
APIとはなにか
mikanichinose
0
100
社外コミュニティで学び社内に活かす共に学ぶプロジェクトの実践/backlogworld2024
nishiuma
0
270
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
320
C++26 エラー性動作
faithandbrave
2
800
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
200
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.3k
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
22
20k
pg_bigmをRustで実装する(第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
shinyakato_
0
100
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
230
Working as a Server-side Engineer at LY Corporation
lycorp_recruit_jp
0
140
オプトインカメラ:UWB測位を応用したオプトイン型のカメラ計測
matthewlujp
0
190
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
What's in a price? How to price your products and services
michaelherold
243
12k
Producing Creativity
orderedlist
PRO
341
39k
GitHub's CSS Performance
jonrohan
1030
460k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
Adopting Sorbet at Scale
ufuk
73
9.1k
Thoughts on Productivity
jonyablonski
67
4.4k
Gamification - CAS2011
davidbonilla
80
5.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Transcript
αʔϏε͕θϩ͔ΒNԯԁنʹͳΔ·Ͱʹ ࣮ફͨ͠7ͭͷ͍͖ͬͯ BATTLE CONFERENCE UNDER30 #2019 on 2019/07/06 @kikunantoka
ࣗݾհ about: name: Fumitaka Kikukawa work_at: giftee Inc. job: engineer
twitter: @kikunantoka age: 28 // ೖࣾͯ͠3ऑ // ΪϦΪϦU30
ݸਓ։ൃ https://nakamy.com
ϘʔυήʔϜ੍࡞ https://tapir-studio.com
αʔϏε͕θϩ͔ΒNԯԁنʹͳΔ·Ͱʹ ࣮ફͨ͠7ͭͷ͍͖ͬͯ BATTLE CONFERENCE UNDER30 #2019 on 2019/07/06 @kikunantoka \
ͲΜͳαʔϏεΛ։ൃ͍ͯ͠Δͷ͔Λ͠·͢ /
• ࠒͷʮখ͞ͳ͋Γ͕ͱ͏ʯͷؾ࣋ͪʹఴ͑ͯɺΪϑτΛଃΕΔαʔϏε • ड͚औͬͨΪϑτձһొͳ͠Ͱ͓ళͰͱަ͕Ͱ͖Δ To C
• ΪϑτϢχʔΫͳURLͳͷͰɺීஈͷLINEͳͲʹ؆୯ʹఴ͑Δ͜ͱ͕Ͱ͖Δ To C https://giftee.co/r/------
• ΪϑτͰਓͱਓΛͭͳ͙αʔϏε To C
• ΪϑτͰਓͱاۀͭͳ͍Ͱ͍Δ To B
• ΪϑτͷURLΛೲͯ͠ΪϑτΛΩϟϯϖʔϯʹ׆༻ͯ͠Β͏Ϗδωε To B https://giftee.co/r/------ https://giftee.co/r/------ https://giftee.co/r/------ https://giftee.co/r/------ https://giftee.co/r/------ https://giftee.co/r/------
https://giftee.co/r/------
• ΪϑτͷURLΛೲͯ͠ΪϑτΛΩϟϯϖʔϯʹ׆༻ͯ͠Β͏Ϗδωε To B
• தʹɺΪϑτΛ্ख͘׆༻͢Δखஈ͕ͳ͍ΫϥΠΞϯτ ΪϑτΛଃΔखஈ͕ͳ͍ To B
ᶃ ϑΥϩʔ&ϦπΠʔτ ᶄ Twitterೝূ ᶅ ͦͷͰநબ ᶆ Ϊϑτ͕Β͑Δ • ΠϯελϯτΟϯΩϟϯϖʔϯΛؾܰʹ࣮ࢪ͢ΔͨΊͷϓϥοτϑΥʔϜΛ։ൃ
To B
HJGUFFΠϯελϯτΟϯGPS5XJUUFSͷڧΈᶃ நબ͔Βܠͷఏڙ·ͰҰؾ௨؏Ͱ͝ఏڙ நબγεςϜ ʢΠϯελϯτΟϯʣ σδλϧΪϑτͷఏڙ ʢछྨҎ্ͷܠʣ ϦΞϧλΠϜʹநબɺ ͦͷͰܠΛ༩ aࣾͰ($1ͱུ͞Εͩ͢ʜ
Πϯϑϥ aࣾͰ($1ͱུ͞Εͩ͢ʜ ݴޠ ϑϨʔϜϫʔΫ Λࢧ͑Δٕज़
αʔϏε͕θϩ͔ΒNԯԁنʹͳΔ·Ͱʹ ࣮ફͨ͠7ͭͷ͍͖ͬͯ BATTLE CONFERENCE UNDER30 #2019 on 2019/07/06 @kikunantoka /
ͲΜͳ͜ͱΛҙࣝ͠ͳ͕Β։ൃ͖͔ͯͨ͠Λ͠·͢ \
ϓϥοτϑΥʔϜΛ࡞͍ͬͯ͘ 1
ϓϥοτϑΥʔϜΛ࡞͍ͬͯ͘ • B͚αʔϏεͩͱडୗ։ൃʹͳΓ͕ͪ • GCP͋ΔΫϥΠΞϯτ͔ΒʮTwitterͷΩϟϯϖʔϯΛΓ͍ͨʯͱ૬ஊ͞Εͨ͜ ͱ͔Β࢝·ͬͨ • ೲظ͕ഭ͍͕ͬͯͨɺฐࣾͷ༏लͳBizνʔϜͳΒଞʹͲΜͲΜҊ݅Λऔͬͯ͘Δ ͱࢥͬͨͷͰɺ൚༻తͳϓϥοτϑΥʔϜͱͯ͠։ൃΛ࢝Ίͨ •
ػೳՃʹ͓͍ͯͦͷػೳ͕ଞͷΫϥΠΞϯτඞཁͱ͍ͯ͠Δ͔ΛݟۃΊΔ
খ࢝͘͞Ί͍ͯ͘ 2
খ࢝͘͞Ί͍ͯ͘ • ఆ͗͢͠ͳ͍ɺখ͘͞։ൃͯ͠ɺখ͘͞ݕূ͢Δ • ࠷ॳϏδωεతʹ্ख͍͔͘͘ݟ͑ͳ͍ͷͰɺΠςϨʔςΟϒʹ։ൃ͍ͯ͘͠ • ൚༻తʹ͗͢͠ΔͱDBͷ੍Λ͔͚ͮΒ͔ͬͨΓ͢ΔͷͰɺόϥϯεΛͱΔ • 2ӡ༻ͯ͠Έͯɺ͍͔ͭඞཁ͔͠Εͳ͍…ແବʹͳͬͨ͜ͱ͕ଟ͔ͬͨ •
YAGNI ͕ຊʹେ
OneνʔϜͰ։ൃ͍ͯ͘͠ 3
OneνʔϜͰ։ൃ͍ͯ͘͠ • B͚αʔϏεͩͱΫϥΠΞϯτͷΛҰ൪ฉ͍͍ͯΔͷBizνʔϜ • िʹ1ͷఆྫΛBizνʔϜͱ߹ಉͰߦ͏ • ࠲੮ಉ͡ౡͰ͔͍߹ͬͯ࠲Δ • ೲಘײΛ࣋ͬͯ։ൃ͢Δ •
࣌ʹΫϥΠΞϯτʹձ͍ʹߦͬͯੜͷΛฉ͖ʹ͍͘ • B͚ͷLPΛҰॹʹ࡞ͬͨΓͨ͠
PMFୡޙػೳΛΨϯΨϯ։ൃ͍ͯ͘͠ 4
PMFୡޙػೳΛΨϯΨϯ։ൃ͍ͯ͘͠ • ϓϩμΫτͱͯ͠ஹ͕͠ݟ͑ͨΒશྗͰίϛοτ͢Δ • ཧը໘։ൃͳͲɺӡ༻λεΫΛଞͷਓʹҠৡ͍ͯͨ͘͠Ίͷ։ൃΛߦ͍ɺ։ൃʹ ॆͯΒΕΔ࣌ؒΛ૿͍ͯ͘͠ • αʔϏεӡ༻͕࢝·͔ͬͯΒ͕ຊ൪ • LINEೝূίʔυೝূͳͲɺೝূͷύλʔϯΛ૿͍ͯ͘͠
• ը໘ΧελϚΠζͳͲͷΦϓγϣϯͰՔ͍Ͱ͍͘
αʔϏεΛεέʔϥϒϧʹ͍ͯ͘͠ 5
GCPͷ2ؒʢ˞Πϝʔδʣ • αʔϏεͷͱͱʹΩϟϯϖʔϯͷΕ͕ؒͳ͘ͳ͖ͬͯͨ • ্࿈ಈͳͲͷେܕҊ݅ೖͬͯ͘ΔΑ͏ʹͳ͖ͬͯͨ • αʔϏεΛམͱͤͳ͍ • Ϩίʔυ૿͖͑ͯͨ
αʔϏεΛεέʔϥϒϧʹ͍ͯ͘͠ • εέʔϧ͢ΔίʔυΛॻ͘ / ϩοΫॲཧɺεϩʔΫΤϦʹҙ͢Δ • ෛՙݕূͯ͠औΓআ͍͍ͯ͘ • Elastic Beanstalk
ΛͬͯWebαʔόΛԽ͠εέʔϥϒϧʹͨ͠ • RDSΛ Aurora ʹ͢Δ͜ͱͰεέʔϧΞοϓͷμϯλΠϜΛগͳͨ͘͠ • ͍ͭͰεέʔϧΞτ / εέʔϧΠϯͰ͖ΔڥΛ͑Δ͜ͱͰΠϯϑϥඅ༻Λ ͑Δ͜ͱ͕Ͱ͖ͨ
LINEϓογϡ৴ʹ͑ΒΕͨ ☺ ʊਓਓਓਓਓਓਓਓਓਓਓʊ ʼ ࠷େ30ສϦΫΤετ ʻ ʉY^Y^Y^Y^Y^Y^Y^Y^ʉ • ༑ͩͪ2300ສͷΞΧϯτͰLINEϓογϡΛߦͬͨ݁Ռ
ఆظతʹDBͷ੍Λݟ͍ͯ͘͠ 6
ఆظతʹDBͷ੍Λݟ͍ͯ͘͠ • ϚΠάϨʔγϣϯΛྲྀͨ݁͠Ռͷ db/schema.rb ϑΝΠϧΛ֬ೝ͢Δ • σʔλͷෆ߹Λͳ͘͢࠷ޙͷࡆDBͷ੍ • ϨϏϡʔͰݟಀ͍ͯͨ͠͏͔ͬΓ੍ுΓΕΛݕͰ͖Δ •
࣌ͱఆ͕มΘ͍ͬͯΔ߹͋Δ • ෆཁͳςʔϒϧΛআͰ͖Δ • Ϩίʔυ͕ཷ·͔ͬͯΒ੍ΛுΓ͢ͷେม
ͨΓલͷ͜ͱΛͨΓલʹ͍ͬͯ͘ 7
LinterΛద༻͢Δ • Rubyͩͱ Rubocop • ϝϯόʔ͕OSS׆ಈҙࣝͰ͖ΔΑ͏ʹrubocop.ymlRailsʹ४ڌͨ͠ • ൿͷλϨʢಠࣗϧʔϧʣͳΔ͘࡞Βͳ͍
ΤϥʔτϥοΩϯάαʔϏε݈શͳঢ়ଶΛอͭ • ேձͰൃੜͨ͠Τϥʔͷ୨Է͠ΛΔ • SentryΛͪΌΜͱӡ༻͢Δ
ΤϥʔτϥοΩϯάαʔϏε݈શͳঢ়ଶΛอͭ • ղܾͨ͠Resolve • 90ҎʹରԠ͢Δ • ֎෦αʔϏεىҼͷͷ10 times / minͳͲͰIgnore
• ֎෦αʔϏεͰେ͖ͳো͕ى͖͍ͯͨ࣌ʹ௨͕ͪΌΜͱདྷΔ
RubyRailsͷόʔδϣϯ࠷৽ʹอͭ • ηΩϡϦςΟΞοϓσʔτ͕͍ͭͰͰ͖ΔڥΛ͑Δ • 2ӡ༻͍ͯ͠ΔαʔϏε͕ͩɺRuby (2.6.3) Rails (5.2.3)࠷৽ • Ұྫͱͯ͠ɺRubyͷόʔδϣϯΛ্͛Δ͚ͩͰɺCSVͷಡΈࠐΈ
/ ॻ͖ࠐΈͷߴ ԽͷϝϦοτΛڗडͰ͖Δ • GemͷΞοϓσʔτʹ Dependabot Λ׆༻͢Δ • ͨͬͨͷ2͚ͩͲɺ͜ͷੵΈॏͶ͕େ
αʔϏε͕͍ͯ͘͠த ͨΓલͷ͜ͱΛͨΓલʹΔͷ ΊͬͪΌେมͳͷͰ ΈΜͳͰ͍͖ͬͯ·͠ΐ͏
None
ίϚʔγϟϧ - We are hiring !!!