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
株式会社ビットキー / Bitkey Inc.
PRO
April 06, 2022
Technology
0
290
ビットキーのプロダクトの根幹スマートアクセスをよりスケールするための破壊と創造
株式会社ビットキー / Bitkey Inc.
PRO
April 06, 2022
Tweet
Share
More Decks by 株式会社ビットキー / Bitkey Inc.
See All by 株式会社ビットキー / Bitkey Inc.
【開発を止めるな】機能追加と並行して進めるアーキテクチャ改善/Keep Shipping: Architecture Improvements Without Pausing Dev
bitkey
PRO
1
240
“決まらない”NSM設計への処方箋 〜ビットキーにおける現実的な指標デザイン事例〜 / A Prescription for "Stuck" NSM Design: Bitkey’s Practical Case Study
bitkey
PRO
1
840
AI時代の戦略的アーキテクチャ 〜Adaptable AI をアーキテクチャで実現する〜 / Enabling Adaptable AI Through Strategic Architecture
bitkey
PRO
17
17k
Dev Containers と Skaffold で実現する クラウドネイティブ開発環境 ローカルのみという制約に挑む / Cloud-Native Development with Dev Containers and Skaffold: Tackling the Local-Only Constraint
bitkey
PRO
0
290
待つ、歩く、そして祈る -モバイルアプリの厄介なテスト奮闘記-/Wait, Walk, and Pray -The Troublesome Struggle of Mobile App Testing-
bitkey
PRO
1
120
見栄えと使いやすさの先にある 特別感 をデザインする / Designing a Sense of Specialness Beyond Aesthetics and Usability
bitkey
PRO
0
230
フレームワーク探しはもう終わり! チームに「ジャストフィット」するワークショップの作り方 / No More Framework Searching: How to Build a 'Just-Fit' Workshop for Your Team
bitkey
PRO
0
140
一次体験を起点にしたUX改善の取り組み / Direct Experience Driven UX Improvements
bitkey
PRO
0
330
ユーザー体験は細部に宿る -ウィジェットQAの挑戦と気づき- / UX is in the details: Challenges and Learnings from Widget QA
bitkey
PRO
0
130
Other Decks in Technology
See All in Technology
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
910
Models vs Bounded Contexts for Domain Modularizati...
ewolff
0
160
コミュニティが持つ「学びと成長の場」としての作用 / RSGT2026
ama_ch
1
240
Kusakabe_面白いダッシュボードの表現方法
ykka
0
130
Redshift認可、アップデートでどう変わった?
handy
1
140
Claude Codeを使った情報整理術
knishioka
20
12k
ECS_EKS以外の選択肢_ROSA入門_.pdf
masakiokuda
1
130
困ったCSVファイルの話
mottyzzz
0
220
AI時代のアジャイルチームを目指して ー スクラムというコンフォートゾーンからの脱却 ー / Toward Agile Teams in the Age of AI
takaking22
11
6.4k
複雑さを受け入れるか、拒むか? - 事業成長とともに育ったモノリスを前に私が考えたこと #RSGT2026
murabayashi
1
1.8k
迷わない!AI×MCP連携のリファレンスアーキテクチャ完全ガイド
cdataj
0
470
#22 CA × atmaCup 3rd 1st Place Solution
yumizu
1
170
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
55
How Software Deployment tools have changed in the past 20 years
geshan
0
31k
Bash Introduction
62gerente
615
210k
The SEO Collaboration Effect
kristinabergwall1
0
330
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Scaling GitHub
holman
464
140k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
My Coaching Mixtape
mlcsv
0
23
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
180
Leo the Paperboy
mayatellez
3
1.3k
Transcript
ϏοτΩʔͷϓϩμΫτͷࠜװ εϚʔτΞΫηεΛΑΓεέʔϧ͢ ΔͨΊͷʮഁյͱʯ
Outline 1. എܠͱ՝ 2. ݁Ռ 3. ͨ͜͠ͱ 4. ޮՌͱ·ͱΊ 2
നయ Takanori Shiraki 2014 2016 2018 גࣜձࣾϫʔΫεΞϓϦέʔγϣϯζʹೖࣾ ձܭγεςϜͷιϑτΣΞ։ൃऀͱͯ͠ɺཧձ ܭɺಛʹ༧ࢉཧΛओʹ୲ ձܭࣄۀ͔ΒECࣄۀҟಈ
ݕࡧΤϯδϯ࿈ܞɺϓϩϞʔγϣϯػೳͷ։ൃΛ୲ ͨ͠ޙɺେखඦ՟ళ͚αʔϏεͷ։ൃΛ୲ ۀ͔ΒϏοτΩʔδϣΠϯ εϚϗΞϓϦɾΣϒΞϓϦɾόοΫΤϯυͷجૅ ઃܭɺΠϯϑϥબఆɺΞʔΩςΫνϟઃܭɺϑϨʔ ϜϫʔΫϥΠϒϥϦͷܾఆ͔Β࣮·ͰΛ୲͏ 2022 Workspaceࣄۀͷٕज़ऀͱͯ͠ ৽نαʔϏεͷઃܭɾ࣮ɺطଘαʔϏεͷվमɺ ։ൃମݧͷվળɺ৭ʑͬͯ·͢
ΞΫηείϯτϩʔϧ ࠓճͷςʔϚ 4 4
എܠ 5
എܠ 6 ͦͦΞΫηείϯτϩʔϧͱʁ
ΞΫηείϯτϩʔϧͱ 7 ϏοτΩʔͰɺཧతͳσόΠεͷݖརʹͱͮ͘ղৣΛɺ σδλϧΩʔʹΑ࣮ͬͯݱ
ΞΫηείϯτϩʔϧͱ 8 ͦΕ͚ͩͰاۀͷཧ෦ͱैۀһͷؔͷΑ͏ͳɺ ಛఆͷཧऀ͕େਓͷΞΫηεΛ੍ޚ͍ͨ͠έʔεʹ͓͍ͯ རศੑʹ՝͕Δ…
ΞΫηείϯτϩʔϧͱ 9 ΞΫηείϯτϩʔϧ ਓͷ·ͱ·Γɾ伴ͷ·ͱ·Γɾ݅ΛҰݩཧ
ΞΫηείϯτϩʔϧͱ 10 ΞΫηείϯτϩʔϧ ɾࣾһฏɺϏϧͷೖΓޱɾΤϨϕʔλʔɾΦϑΟεʹೖΕΔ ɾͨͩ͠ɺݸผڐՄ͕ͳ͍ͱೖΕͳ͍ ɾݿʹόοΫΦϑΟεͷਓ͚ͩೖΔ͜ͱ͕Ͱ͖Δ ͻͱΓͣͭɺ൶͝ͱʹઃఆ͠ͳ͍͍ͯ͘ɻ
՝ 11
՝ 12 workhubͰओʹFirestoreΛ׆༻͍ͯ͠Δɻ ※ΞΫηείϯτϩʔϧؚΊ εέʔϥϏϦςΟ ߴͳσʔλऔಘ ϦΞϧλΠϜΞοϓσʔτ ॊೈͳσʔλ
՝ ΞΫηείϯτϩʔϧͷ߹ 13 13
՝ 14 FirestoreυΩϡϝϯτࢦɻ ສਓͷैۀһສͷ൶ͷֻ͚ࢉͱͳΔ ԯنͷυΩϡϝϯτΛཧ͢Δ͜ͱʹͳͬͯ͠·͏ɻ × 10,000 × 10,000 100,000,000
՝ ͜͏͍͏Έ߹Θͤരൃ͕՝ʹͳΓ͍͢γʔϯͰɺ εέʔϥϏϦςΟΑΓɺಈతͳ݁߹͕ಘҙͳRDBͷ΄͏͕ڧΈ͕͋ͬͨɻ ͜ͷྖҬΛҰ͔Β࡞Γ͢͜ͱʹʂ Joinʂ Existʂ αϒΫΤϦʂ
ඪ 16 ݅ͱୡඪ
ඪ 17 1. ։ൃظؒ: 2ϲ݄
ඪ 18 2. ։ൃऀ: 1ਓ
ඪ 19 3. είʔϓ: શ෦
ඪ 20 4. ෆ۩߹: 0
ඪ 21 5. ઃఆมߋ͔Βө·Ͱ: 0ඵ
ඪ 22 ݅ͱୡඪ ։ൃظؒ: 2ϲ݄ ։ൃऀ: 1ਓ είʔϓ: શ෦ ෆ۩߹:
0 ଈө
ඪ 23 ݁Ռ ։ൃظؒ: 2ϲ݄ 1ϲ݄ ։ൃऀ: 1ਓ είʔϓ: શ෦
ෆ۩߹: 0 ଈө (◦◦ɺ◦◦࣌ؒ → 0ඵ) COMPLETED
ͬͨ͜ͱ 24
࡞Γͨ͢Ίʹ 25
࡞Γͨ͢Ίʹ 26 ࠓճ͜ͷγεςϜΛ׆͔ͯ͠ɺ ΞΫηείϯτϩʔϧΛ࡞Γ·ͨ͠ɻ
δΣωϨʔλʔʹ͍ͭͯ 27 ൚༻తͳೖྗˠมˠग़ྗͷΠϯλʔϑΣʔεΛఆٛ ERఆ͔ٛΒDBΞΫηεΛࣗಈੜ OpenAPI͔ΒAPIόϦσʔλʔΛࣗಈੜ ER OpenAPI ఆٛ ίʔυ ςετ
etc Work illustrations by Storyset Πϯϓοτ Ξτϓοτ
δΣωϨʔλʔʹ͍ͭͯ 28 ERఆ͔ٛΒ ϦϙδτϦɾΫΤϦɾCRUDϢʔεέʔεɾOpenAPIɾ֤छม Λࣗಈੜ ERਤ OpenAPI ϦϙδτϦ ΫΤϦ Ϣʔεέʔε
DBϚΠάϨʔγϣϯ Work illustrations by Storyset Πϯϓοτ Ξτϓοτ
δΣωϨʔλʔʹ͍ͭͯ 29 OpenAPI͔Β APIɾೖྗͷόϦσʔλʔͱมɾAPIݺͼग़͠Ϋϥε Λࣗಈੜ OpenAPI API όϦσʔλ σʔλม APIݺͼग़͠Ϋϥε
Work illustrations by Storyset Πϯϓοτ Ξτϓοτ
݁Ռ… 30 1ςʔϒϧͷCRUDͳΒςʔϒϧఆٛޙɺAPIςετ࣮ߦ·Ͱ ୯७ͳCRUDͰͳ͍߹ɺ த৺ͷϩδοΫΛॻ͍ͯίϯύΠϧΛ௨ͨ͠Βςετ͢Δ͚ͩ OpenAPI ER ࣮ ίϯύΠϧ௨Ε ΘΓͱউͪ
ࠓճͦΕʹՃ͑ͯ 31 APIͱDBຊͷίʔυΛͬͯίϯςφΛϩʔΧϧͰىಈ ࣗಈੜͨ͠APIݺͼग़͠Ϋϥεͷ୯ମςετʢͭ·ΓAPIςετʣΛهड़ APIݺͼग़͠ίʔυ DB API ࣗಈੜ ࣗಈੜ ίʔσΟϯά͋Γ
ࠓճͦΕʹՃ͑ͯ 32 APIͱDBຊͷίʔυΛͬͯίϯςφΛϩʔΧϧͰىಈ ࣗಈੜͨ͠APIݺͼग़͠Ϋϥεͷ୯ମςετʢͭ·ΓAPIςετʣΛهड़ APIݺͼग़͠ίʔυ DB API ίʔσΟϯά͋Γ ࣗಈੜ ࣗಈੜ
͜ΕΛςετʂ େྔσʔλ
݁Ռ 33 ݁Ռ...!
݁Ռ 34 ઃܭɿ2िؒ ςετɿ1िؒ ࣮ɿ1िؒ ઃఆมߋ͔Βө·Ͱ0ඵ!! ݁Ռ...!
͏Ε͍͠ϙΠϯτͦͷ1 35 ͦͷ··ͬͯΒ͑ಈ͘ ςετ͍ͯ͠ͳ͍͍ํΛ͢Δͱ͖·ͣςετՃΛపఈ DBͷΠϯσοΫεޮͳͲɺ୯ମςετʹؚ·Εͳ͍؍ςετࡁΈ ར༻ଆͷίʔυ͕ςετࡁΈ
͏Ε͍͠ϙΠϯτͦͷ2 36 ࣮ʹ͕͔͔࣌ؒΒͳ͍ ςετ΄΅Ұൃ ίʔυ͕શମతʹࣗಈੜ
͏Ε͍͠ϙΠϯτͦͷ3 37 ERఆٛΛม͑ͨ / APIఆٛΛม͑ͨ தͷϩδοΫΛม͑ͨ / ςετΛม͑ͨ →ϨϏϡΞʔͷϙΠϯτ͕໌֬ มߋΛϨϏϡʔ͍͢͠
ࠓޙͷ 38 Work illustrations by Storyset
Fin 39