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
Kazuhito Hokamura
September 06, 2022
Technology
1
430
ユビーのアーキテクチャに対する取り組み
Kazuhito Hokamura
September 06, 2022
Tweet
Share
More Decks by Kazuhito Hokamura
See All by Kazuhito Hokamura
TypeScriptとGraphQLで実現する 型安全なAPI実装 / TSKaigi 2024
hokaccha
5
4.7k
Kotlin製のGraphQLサーバーをNode.jsでモジュラモノリス化している話
hokaccha
0
3.6k
GraphQLの負債と向き合うためにやっていること
hokaccha
2
1.5k
RailsエンジニアのためのNext.js入門
hokaccha
7
20k
Cookpad Summer Internship 2021 Web Frontend
hokaccha
0
7.2k
巨大なモノリシック Rails アプリケーションの マイクロサービス化戦略 / 2019 microservices in cookpad
hokaccha
3
3.9k
巨大なRailsアプリケーションを「普通」にするための取り組み
hokaccha
1
1k
Web Frontend Improvement in Cookpad
hokaccha
1
1.1k
cookpad summer internship 2018 - Git
hokaccha
1
9.7k
Other Decks in Technology
See All in Technology
datadog-distribution-of-opentelemetry-collector-intro
tetsuya28
0
240
LLM時代の検索とコンテキストエンジニアリング
shibuiwilliam
2
1.1k
広島銀行におけるAWS活用の取り組みについて
masakimori
0
120
認知戦の理解と、市民としての対抗策
hogehuga
0
300
2025新卒研修・Webアプリケーションセキュリティ #弁護士ドットコム
bengo4com
3
10k
PFEM Online Feature Flag @ newmo
shinyaishitobi
2
340
KiroでGameDay開催してみよう(準備編)
yuuuuuuu168
1
120
[CVPR2025論文読み会] Linguistics-aware Masked Image Modelingfor Self-supervised Scene Text Recognition
s_aiueo32
0
210
あなたの知らない OneDrive
murachiakira
0
230
OpenAPIから画面生成に挑戦した話
koinunopochi
0
150
LLMエージェント時代に適応した開発フロー
hiragram
1
390
サイボウズフロントエンドの横断活動から考える AI時代にできること
mugi_uno
4
1.4k
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
4 Signs Your Business is Dying
shpigford
184
22k
The Cult of Friendly URLs
andyhume
79
6.5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Practical Orchestrator
shlominoach
190
11k
Agile that works and the tools we love
rasmusluckow
329
21k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.6k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Site-Speed That Sticks
csswizardry
10
780
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Scaling GitHub
holman
462
140k
Transcript
ϢϏʔͷΞʔΩςΫνϟʹର͢ΔऔΓΈ 2022/9/7 @hokaccha ʲUbie x Gaudiy x ΧγΣʳελʔτΞοϓʹ͓͚ΔArchitectureͷมભ
2 About Me Kazuhito Hokamura software engineer @hokaccha @hokaccha
3 UbieͷϓϩμΫτ ੜ׆͚ࣾʢtoCʣ ҩྍػ͚ؔʢtoBʣ
4 Agenda 1. ϢϏʔͷγεςϜΞʔΩςΫνϟ֓ཁ 2. ݱঢ়ͷٕज़త՝ 3. ͜Ε·ͰͷऔΓΈࣄྫ 4. ࠓޙͷվળʹ͚ͯ
5 Agenda 1. ϢϏʔͷγεςϜΞʔΩςΫνϟ֓ཁ 2. ݱঢ়ͷٕज़త՝ 3. ͜Ε·ͰͷऔΓΈࣄྫ 4. ࠓޙͷվળʹ͚ͯ
6 ར༻͍ͯ͠Δٕज़ • ΠϯϑϥGCP/GKE • όοΫΤϯυKotlin/Spring Boot͕ଟΊ • Ұ෦GoRailsɺPython͋Δ •
ϑϩϯτΤϯυ Next.js/React/Typescript • ௨৴GraphQL/REST ※ਤҰ෦؆ུԽ͍ͯ͠ΔͷͰશͯͰͳ͍
7 Agenda 1. ϢϏʔͷγεςϜΞʔΩςΫνϟ֓ཁ 2. ݱঢ়ͷٕज़త՝ 3. ͜Ε·ͰͷऔΓΈࣄྫ 4. ࠓޙͷվળʹ͚ͯ
8 ݱঢ়ͷ՝ • υϝΠϯ͕ͨ͜͠ͱͰੜ͍ͯ͡Δ ઃܭɾ࣮ͱͷΪϟοϓ • αʔϏεؒͷڥք͕ᐆດʹͳΓγεςϜͷ ෳࡶ͕͞രൃ • ݴޠɺϑϨʔϜϫʔΫɺϓϩτίϧ͕౷Ұ
͞Ε͍ͯͳ͍͜ͱʹΑΔੜ࢈ੑͷԼ
9 ͜ͷ··ʹ͢ΔͱͲ͏ͳΔ͔ ࣌ؒͷܦաͱ͓ʹࢦؔతʹ ։ൃίετ͕ΒΜͰ͍͘
10 ΞʔΩςΫνϟΛվળ͢Δཧ༝ • ͜ͷ͖ΛͰ͖Δ͚ͩখ͍ͨ͘͞͠ • ཧతʹઢܗʹ͍ͨ͠
11 Agenda 1. ϢϏʔͷγεςϜΞʔΩςΫνϟ֓ཁ 2. ݱঢ়ͷٕज़త՝ 3. ͜Ε·ͰͷऔΓΈࣄྫ 4. ࠓޙͷվળʹ͚ͯ
12 ՝ • ༷ʑͳυϝΠϯ͕͍ͬͯΔϞϊϦε ◦ αʔϏε ◦ ҩྍػؔͷཧ ◦ ҩྍϚελʔσʔλͷཧ
• toB/toC྆ํ͔Βࢀর͞Ε͍ͯΔ ◦ ੜ࢈ੑͷԼ ◦ ৴པੑͷԼ
13 վળઓུ • toB/toCͰαʔϏεΛ͚Δ ◦ ڞΕϦεΫͷղফ ◦ ϦϦʔεϑϩʔ͕Ͱ͖Δ ◦ ։ൃ࣌ʹ͓ޓ͍Λߟྀ͢Δඞཁ͕ͳ͘ͳΔ
• ҩྍػؔҩྍϚελʔσʔλཧͱ͍͏ υϝΠϯΛผαʔϏεʹΓग़͢ ◦ ҩྍػؔυϝΠϯtoBͷΈ ◦ Ϛελʔσʔλڞ௨Ͱ͏͕جຊతʹ read onlyͳͷͰෛՙࢄ͕༰қ
14 Agenda 1. ϢϏʔͷγεςϜΞʔΩςΫνϟ֓ཁ 2. ݱঢ়ͷٕज़త՝ 3. ͜Ε·ͰͷऔΓΈࣄྫ 4. ࠓޙͷվળʹ͚ͯ
15 ࠓޙͷվળʹ͚ͯ • ΞʔΩςΫνϟͷվળɾෛ࠴ͷղফҾ͖ଓ͖͍ͬͯ͘ • ੜ࢈ੑΛՄࢹԽͯ͠ΞʔΩςΫνϟͷվળͷޮՌΛܭଌ͢Δ • ݴޠɾϑϨʔϜϫʔΫΛ౷Ұͯ͠ੜ࢈ੑΛ࠷େԽ͢Δ
16 Four Keysͷܭଌ • σϓϩΠͷස - ৫ʹΑΔਖ਼ৗͳຊ൪ڥͷϦϦʔεͷස • มߋͷϦʔυλΠϜ -
commit ͔Βຊ൪ڥՔಇ·Ͱͷॴཁ࣌ؒ • มߋো - σϓϩΠ͕ݪҼͰຊ൪ڥͰো͕ൃੜ͢Δׂ߹ʢ%ʣ • αʔϏε෮ݩ࣌ؒ - ৫͕ຊ൪ڥͰͷো͔Βճ෮͢Δͷʹ͔͔Δ࣌ؒ Ҿ༻ݩ: https://cloud.google.com/blog/ja/products/gcp/using-the-four-keys-to-measure-your-devops-performance
17 Four Keysͷܭଌ
18 ݴޠɾϑϨʔϜϫʔΫͷ౷Ұ (As-Is) • Kotlin/Spring Bootӡ༻໘ͷ σϝϦοτ͕େ͖͘ͳ͖ͬͯͨ • Railsࠓޙ࠾༻͢ΔϝϦοτ΄΅ͳ͍ •
ܕ͕΄͍͠ͷͰRESTΊ͍ͨ ◦ OpenAPIͭΒ͍... • ϑϩϯτΤϯυࠓޙNext.js/React ͰΑͦ͞͏ • ج൫αʔϏεͳͲͰҰ෦Go͋Δ
19 ݴޠɾϑϨʔϜϫʔΫͷ౷Ұ (To-Be) • ։ൃݴޠΛTypeScriptʹ౷Ұ͢Δ͜ͱͰੜ ࢈ੑΛ࠷େԽ͍ͨ͠ • όοΫΤϯυͱͷ௨৴ӡ༻໘ύϑΥʔϚ ϯεͷϝϦοτΛͱͬͯgRPCʹ౷Ұ͍ͨ͠ •
Node.jsͱgRPCͰݱ࣮తʹӡ༻͕Մೳ͔ ݱࡏݕূத • ج൫αʔϏεͳͲύϑΥʔϚϯε͕ٻΊΒΕ Δͱ͜ΖͰҾ͖ଓ͖Go࠾༻͢Δ
20 Conclusion • ϢϏʔͷγεςϜϓϩμΫτͷͱͱʹෳࡶԽ͖ͯͨ͠ • ෛ࠴ͷղফΛ͜Ε·Ͱ͖ͬͯͨ͜͠Ε͔Βܧଓ͍ͯͬͯ͘͠ • ݴޠϑϨʔϜϫʔΫΑΓྑ͍ͷΛࢦͯ͠࠶ߏஙΛݕ౼͍ͯ͠Δͱ͜Ζ
21 Thank you.