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
360
ユビーのアーキテクチャに対する取り組み
Kazuhito Hokamura
September 06, 2022
Tweet
Share
More Decks by Kazuhito Hokamura
See All by Kazuhito Hokamura
TypeScriptとGraphQLで実現する 型安全なAPI実装 / TSKaigi 2024
hokaccha
5
4k
Kotlin製のGraphQLサーバーをNode.jsでモジュラモノリス化している話
hokaccha
0
3.3k
GraphQLの負債と向き合うためにやっていること
hokaccha
2
1.3k
RailsエンジニアのためのNext.js入門
hokaccha
7
19k
Cookpad Summer Internship 2021 Web Frontend
hokaccha
0
7.1k
巨大なモノリシック Rails アプリケーションの マイクロサービス化戦略 / 2019 microservices in cookpad
hokaccha
3
3.7k
巨大なRailsアプリケーションを「普通」にするための取り組み
hokaccha
1
920
Web Frontend Improvement in Cookpad
hokaccha
1
1k
cookpad summer internship 2018 - Git
hokaccha
1
9.6k
Other Decks in Technology
See All in Technology
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
180
AWS re:Invent 2024で発表された コードを書く開発者向け機能について
maruto
0
180
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
110
ガバメントクラウドのセキュリティ対策事例について
fujisawaryohei
0
520
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
120
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
190
Amazon SageMaker Unified Studio(Preview)、Lakehouse と Amazon S3 Tables
ishikawa_satoru
0
150
2024年にチャレンジしたことを振り返るぞ
mitchan
0
130
MLOps の現場から
asei
6
630
OpenShift Virtualizationのネットワーク構成を真剣に考えてみた/OpenShift Virtualization's Network Configuration
tnk4on
0
130
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
210
Storage Browser for Amazon S3
miu_crescent
1
110
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Building Adaptive Systems
keathley
38
2.3k
We Have a Design System, Now What?
morganepeng
51
7.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
4 Signs Your Business is Dying
shpigford
181
21k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Code Review Best Practice
trishagee
65
17k
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.