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
340
ユビーのアーキテクチャに対する取り組み
Kazuhito Hokamura
September 06, 2022
Tweet
Share
More Decks by Kazuhito Hokamura
See All by Kazuhito Hokamura
TypeScriptとGraphQLで実現する 型安全なAPI実装 / TSKaigi 2024
hokaccha
5
3.7k
Kotlin製のGraphQLサーバーをNode.jsでモジュラモノリス化している話
hokaccha
0
3.1k
GraphQLの負債と向き合うためにやっていること
hokaccha
2
1.2k
RailsエンジニアのためのNext.js入門
hokaccha
7
18k
Cookpad Summer Internship 2021 Web Frontend
hokaccha
0
7k
巨大なモノリシック Rails アプリケーションの マイクロサービス化戦略 / 2019 microservices in cookpad
hokaccha
3
3.7k
巨大なRailsアプリケーションを「普通」にするための取り組み
hokaccha
1
870
Web Frontend Improvement in Cookpad
hokaccha
1
970
cookpad summer internship 2018 - Git
hokaccha
1
9.5k
Other Decks in Technology
See All in Technology
分野に潜むツールの紹介
pojiro
1
330
Practical GenAI with Go - Elastic and Golang Sydney
adriancole
0
130
リクルート新人研修2024 テキスト生成AI活用
recruitengineers
PRO
10
420
標準最高!標準はださくないぞ! at fukuoka.ts #1
yoiwamoto
0
150
技術力あげたい
hisaichi5518
2
2.8k
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
0
3.1k
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
0
13k
ログラスが面白いと思う理由をマネージャーがエモく語ってみる / 20240829 vs LT
yoshikiiida
1
520
2024年版 運用者たちのLLM
nwiizo
3
290
RAGHack: Kickoff and RAG 101
pamelafox
0
200
Datadogの便利な使い方 - 意外と知らない?CoScreenとCloudcraft
taijihagino
PRO
1
600
PlaywrightによるE2Eテスト入門 / Introduction to E2E Testing with Playwright
rhumie
3
910
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
64
11k
Making the Leap to Tech Lead
cromwellryan
128
8.8k
Atom: Resistance is Futile
akmur
261
25k
Unsuck your backbone
ammeep
667
57k
Rebuilding a faster, lazier Slack
samanthasiow
78
8.5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
28
2.2k
A Tale of Four Properties
chriscoyier
155
22k
10 Git Anti Patterns You Should be Aware of
lemiorhan
653
58k
How GitHub (no longer) Works
holman
309
140k
Done Done
chrislema
180
16k
Producing Creativity
orderedlist
PRO
340
39k
Designing for humans not robots
tammielis
248
25k
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.