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
200
ビットキーのプロダクトの根幹スマートアクセスをよりスケールするための破壊と創造
株式会社ビットキー / Bitkey Inc.
PRO
April 06, 2022
Tweet
Share
More Decks by 株式会社ビットキー / Bitkey Inc.
See All by 株式会社ビットキー / Bitkey Inc.
多領域インシデントマネジメントへの挑戦:ハードウェアとソフトウェアの融合が生む課題/Challenge to multidisciplinary incident management: Issues created by the fusion of hardware and software
bitkey
PRO
2
81
GORM v1 → v2に移行したときの変更点/Changes when moving from GORM v1 to v2
bitkey
PRO
1
44
うまくいく! を実現するための質問力 / It works! The Power of Questions to Make It Happen
bitkey
PRO
1
320
ビットキーの中核を担うプロダクトで テスト自動化を駆使して安定的なリリースを実現する/At the core of BitKey's products Achieving stable releases through the use of test automation
bitkey
PRO
1
83
共創するアーキテクチャ ~チーム全体で築く持続可能な開発エコシステム~ / Co-Creating Architecture - A Sustainable Development Ecosystem Built by the Entire Team
bitkey
PRO
2
5.7k
キャンセルします!処理を / Cancels the process!
bitkey
PRO
1
130
Waroomを使って ハードウェアからソフトウェアまで 領域横断してインシデントマネジメント始めてみた /I started incident management using Waroom across domains from hardware to software.
bitkey
PRO
1
120
データを用いてサービス品質の向上に貢献!! SREのプラクティスを用いた守りのデータ分析 / Using Data to Improve Service Quality! Defensive data analysis using SRE practices
bitkey
PRO
2
140
“共通化”で失敗したモデリング実例 / Modeling examples of failures due to "commonization
bitkey
PRO
3
210
Other Decks in Technology
See All in Technology
Postman と API セキュリティ / Postman and API Security
yokawasa
0
190
フロントエンド設計にモブ設計を導入してみた / 20241212_cloudsign_TechFrontMeetup
bengo4com
0
1.9k
Jetpack Composeで始めるServer Cache State
ogaclejapan
2
150
プロダクト開発を加速させるためのQA文化の築き方 / How to build QA culture to accelerate product development
mii3king
1
240
Turing × atmaCup #18 - 1st Place Solution
hakubishin3
0
420
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
380
株式会社ログラス − エンジニア向け会社説明資料 / Loglass Comapany Deck for Engineer
loglass2019
3
31k
TSKaigi 2024 の登壇から広がったコミュニティ活動について
tsukuha
0
130
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
190
セキュリティ系アップデート全体像と AWS Organizations 新ポリシー「宣言型ポリシー」を紹介 / reGrowth 2024 Security
masahirokawahara
0
390
社外コミュニティで学び社内に活かす共に学ぶプロジェクトの実践/backlogworld2024
nishiuma
0
240
KubeCon NA 2024 Recap / Running WebAssembly (Wasm) Workloads Side-by-Side with Container Workloads
z63d
1
230
Featured
See All Featured
The Language of Interfaces
destraynor
154
24k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
It's Worth the Effort
3n
183
28k
Building Adaptive Systems
keathley
38
2.3k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.8k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Practical Orchestrator
shlominoach
186
10k
4 Signs Your Business is Dying
shpigford
181
21k
Designing for humans not robots
tammielis
250
25k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
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