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
450
ユビーのアーキテクチャに対する取り組み
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
4k
巨大な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
AWS re:Invent 2025事前勉強会資料 / AWS re:Invent 2025 pre study meetup
kinunori
0
980
20251102 WordCamp Kansai 2025
chiilog
0
410
Kotlinで型安全にバイテンポラルデータを扱いたい! ReladomoラッパーをAIと実装してみた話
itohiro73
3
140
Open Table Format (OTF) が必要になった背景とその機能 (2025.10.28)
simosako
3
580
データエンジニアとして生存するために 〜界隈を盛り上げる「お祭り」が必要な理由〜 / data_summit_findy_Session_1
sansan_randd
1
460
触れるけど壊れないWordPressの作り方
masakawai
0
610
dbtとAIエージェントを組み合わせて見えたデータ調査の新しい形
10xinc
7
1.7k
Raycast AI APIを使ってちょっと便利なAI拡張機能を作ってみた
kawamataryo
0
230
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
0
410
OPENLOGI Company Profile for engineer
hr01
1
46k
ゼロコード計装導入後のカスタム計装でさらに可観測性を高めよう
sansantech
PRO
1
630
個人でデジタル庁の デザインシステムをVue.jsで 作っている話
nishiharatsubasa
3
5.3k
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Balancing Empowerment & Direction
lara
5
710
Become a Pro
speakerdeck
PRO
29
5.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Site-Speed That Sticks
csswizardry
13
940
Done Done
chrislema
186
16k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Optimising Largest Contentful Paint
csswizardry
37
3.5k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Testing 201, or: Great Expectations
jmmastey
46
7.7k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
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.