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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kazuhito Hokamura
September 06, 2022
Technology
470
1
Share
ユビーのアーキテクチャに対する取り組み
Kazuhito Hokamura
September 06, 2022
More Decks by Kazuhito Hokamura
See All by Kazuhito Hokamura
TypeScriptとGraphQLで実現する 型安全なAPI実装 / TSKaigi 2024
hokaccha
5
5k
Kotlin製のGraphQLサーバーをNode.jsでモジュラモノリス化している話
hokaccha
0
3.8k
GraphQLの負債と向き合うためにやっていること
hokaccha
2
1.6k
RailsエンジニアのためのNext.js入門
hokaccha
7
21k
Cookpad Summer Internship 2021 Web Frontend
hokaccha
0
7.3k
巨大なモノリシック Rails アプリケーションの マイクロサービス化戦略 / 2019 microservices in cookpad
hokaccha
3
4.1k
巨大なRailsアプリケーションを「普通」にするための取り組み
hokaccha
1
1.1k
Web Frontend Improvement in Cookpad
hokaccha
1
1.1k
cookpad summer internship 2018 - Git
hokaccha
1
9.8k
Other Decks in Technology
See All in Technology
Cursor Subagentsはいいぞ
yug1224
2
130
OCI技術資料 : 証明書サービス概要
ocise
1
7.2k
Zephyr(RTOS)でOpenPLCを実装してみた
iotengineer22
0
170
Databricks Appsで実現する社内向けAIアプリ開発の効率化
r_miura
0
190
会社紹介資料 / Sansan Company Profile
sansan33
PRO
16
410k
AI時代のIssue駆動開発のススメ
moongift
PRO
0
320
GitHub Actions侵害 — 相次ぐ事例を振り返り、次なる脅威に備える
flatt_security
11
6.9k
The essence of decision-making lies in primary data
kaminashi
0
190
Navigation APIと見るSvelteKitのWeb標準志向
yamanoku
2
130
ブラックボックス化したMLシステムのVertex AI移行 / mlops_community_62
visional_engineering_and_design
1
250
SSoT(Single Source of Truth)で「壊して再生」する設計
kawauso
2
400
「できない」のアウトプット 同人誌『精神を壊してからの』シリーズ出版を 通して得られたこと
comi190327
3
440
Featured
See All Featured
Abbi's Birthday
coloredviolet
2
6.1k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
The Language of Interfaces
destraynor
162
26k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
140
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
330
Google's AI Overviews - The New Search
badams
0
950
It's Worth the Effort
3n
188
29k
Docker and Python
trallard
47
3.8k
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.