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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Arashi
August 03, 2023
Technology
1
880
現場の課題を解決するために大事にしていること
自社プロダクトの構想から開発・運用・改善の一連の流れを経験しました。
その中で、エンジニア組織としてビジネスインパクトを最大限に創出するために、何をなぜ大切にしているかをまとめました。
Arashi
August 03, 2023
Tweet
Share
Other Decks in Technology
See All in Technology
ブロックテーマ、WordPress でウェブサイトをつくるということ / 2026.02.07 Gifu WordPress Meetup
torounit
0
210
Oracle AI Database移行・アップグレード勉強会 - RAT活用編
oracle4engineer
PRO
0
110
今日から始めるAmazon Bedrock AgentCore
har1101
4
420
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
2.1k
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
270
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
220
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
150
[CV勉強会@関東 World Model 読み会] Orbis: Overcoming Challenges of Long-Horizon Prediction in Driving World Models (Mousakhan+, NeurIPS 2025)
abemii
0
150
Context Engineeringの取り組み
nutslove
0
380
コンテナセキュリティの最新事情 ~ 2026年版 ~
kyohmizu
7
2.4k
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
370
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
480
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
750
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
From π to Pie charts
rasagy
0
130
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
Building AI with AI
inesmontani
PRO
1
710
Rails Girls Zürich Keynote
gr2m
96
14k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
290
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Crafting Experiences
bethany
1
54
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
180
Transcript
ݱͷ՝Λղܾ͢ΔͨΊʹ େࣄʹ͍ͯ͠Δ͜ͱ CloudNative Days Fukuoka 2023/08/03 @_arstkn 1
ࣗݾհ ໊લ : ∁ ཛྷ ॴଐ : QUANDO,Inc. ৬ :
ςοΫϦʔυ 𝕏 : _arstkn ΫΞϯυҰے7ʂ 2
ݱʹಛԽͨ͠ϦϞʔτίϛϡχέʔγϣϯπʔϧ SynQ Remote ʮ͋ΕɾͦΕɾ͜Εʯ͕؆୯ʹΘΔ - ඞͣಉ͡ө૾ΛࢀՃऀશһ͕ݟΔ - ը໘ΛλοϓʢΫϦοΫʣͰϙΠϯλΛදࣔ ௨৴ڥ͕ѱͯ͘Ͱ͖ΔݶΓߴը࣭ -
શһ͕ݟ͍ͯΔө૾ͷΈ͕ ৴͞ΕΔΑ͏੍ޚ ΞϓϦΠϯετʔϧ͚ͩͰར༻Մೳ - ಛघͳෆཁ - ΞϓϦΛΠϯετʔϧ͢Δ͚ͩ 3
ࠓ͍ͨ͜͠ͱ 4
5 ݱʢΤϯυϢʔβʔʣͷ՝ղܾʹ ΠϯύΫτ͕͋Δͱ͜Ζʹ ϦιʔεΛ͔͚Δ͜ͱ͕Ͱ͖ΔΑ͏ʹߏங͢Δ͜ͱ େࣄͩͱࢥ͏͜ͱ
ϦϦʔεॳ ΤϯδχΞͷເͱر͕٧·͍ͬͯͨ 6
ΤϯδχΞͷເͱر ٕज़తح৺ 7
ͲΜͳເͱر͔ͩͬͨ ϕϯμʔϩοΫΠϯΛආ͚ΔͨΊOSSΛͬͯ ϚΠΫϩαʔϏεͰ࡞Γ͍ͨ 8
ٕज़ελοΫ 9 Kubernetes ίϯςφΦʔέετϨʔ γϣϯΛϕϯμʔʹґଘͤ ͣʹӡ༻͍ͨ͠ ElasticSearch ϩάج൫Λϕϯμʔʹґଘ ͤͣʹӡ༻͍ͨ͠
10 ηϧϑϚωʔδυʹ͕͗ͨͨ͢͠Ίʹ ӡ༻͢Δ͜ͱʹίετ͕͔͔͍ͬͯͨ
ݱͷ՝ 11 ߴྸԽ ਓखෆ ಠΓཱͪʹ ͕͔͔࣌ؒΔ
ٕज़ελοΫ 12 Kubernetes ίϯςφΦʔέετϨʔ γϣϯΛϕϯμʔʹґଘͤ ͣʹӡ༻͍ͨ͠ ElasticSearch ϩάج൫Λϕϯμʔʹґଘ ͤͣʹӡ༻͍ͨ͠
Kubernetesฤ 13
14 ϝΠϯͷػೳʹؔͯ͠ KubernetesͰͷӡ༻ΛࣙΊͨ ݱࡏ
Kubernetesӡ༻ʹ͓͚Δ࠴ ίϯςφԽ͞ΕͨΞϓϦέʔγϣϯ͕ಈ͘ͱ͍͏͜ͱΛ อূͯ͘͠ΕΔΘ͚Ͱͳ͍ 15 Kubernetes͕֤ίϯςφΛͲ͏ಈ͔͔͢Λ ࣗࣾͷͰదʹઃܭ͢Δඞཁ͕͋Δ
దʹઃܭ͢Δ͜ͱ͕Ͱ͖Ε ϕϯμʔϩοΫΠϯΛආ্͚ͨͰ ίϯςφΛಈ͔͢͜ͱ͕Մೳ 16
ฐࣾϦϦʔεॳͳ͘ίϯςφ͕ಈ͍͍ͯ·ͨ͠ 17
1ਓͷઋਓ͕Kubernetesͷӡ༻Λʹͳͬͯ͘Ε͍͔ͯͨΒ 18
͜ͷ··্ख͍͔͘͘ͳͱࢥ͍ͬͯͨઌʹɺ ͜ͷઋਓ͕৫ΛΕΔ͜ͱʹͳΓ·ͨ͠ 19
৽͍͠ՁͷఏڙͷͨΊ ৽نػೳͷ։ൃͱϦϦʔε ຖճόλόλɾ෮چʹ͕͔͔࣌ؒΔ 20
Kubernetes → Azure App Service 21 Azure App Service Web
ΞϓϦ API Λ݅ʹ߹ΘͤͯਝʹߏஙɺσϓϩΠɺεέʔϦϯάͰ͖· ͢ɻίϯςφʔɺWindows ·ͨ Linux ্Ͱ࣮ߦ͞Ε͍ͯΔ .NETɺ .NET Coreɺ Node.jsɺ Javaɺ Pythonɺ·ͨ PHP Λૢ࡞Ͱ͖·͢ɻ1 ͋ͨΓ 600 ԯ݅Λ͑ΔཁٻΛॲཧ͢Δ৴པੑʹ༏Εͨϑϧ Ϛωʔδυ αʔϏεΛ͏͜ͱ ͰɺΤϯλʔϓϥΠζ Ϋϥεͷݫ͍͠ύϑΥʔϚϯεɺηΩϡϦςΟɺ͓Αͼί ϯϓϥΠΞϯεཁ݅ʹରԠͰ͖·͢ɻ
22 ίϯςφΦʔέετϨʔγϣϯͱ͍͏࠴Λ AzureʹݞΘΓͯ͠Β͏ ͭ·Γ
CDͷҠߦ 23 App Service × Container Registry Azure Container Registry
ͯ͢ͷ OCI ՌΛαϙʔτ͢ΔɺDocker Πϝʔδͱ Open Container Initiative (OCI) ΠϝʔδͷϨδετϦɻ
CDͷҠߦ App ServiceͷҙͷContainer RegistryͷλάΛࢹͯ͠ มߋΛݕ͢Δͱࣗಈతʹ৽͍͠DockerΠϝʔδΛσϓϩΠ͢Δػೳ → Ϗϧυͨ͠Πϝʔδʹରͯ͠versionλάͱlatestλάΛ͚ɺ Container RegistryʹPush͠ɺlatest͕ߋ৽͞Εͨ߹ʹσϓϩΠ͞ΕΔ
Α͏ͳઃఆΛߦ͍ӡ༻͠·ͨ͠ɻ 24
25 ӡ༻ͷෛՙ͕ܰݮ ϏδωεϩδοΫʹूத ։ൃͷεϐʔυ্͕
ͳͥઋਓʹґଘ͔ͨ͠ 26
27 ߏͱͯ͠ ίετ͕͔͔Δ෦ Ձఏڙ͍ͯ͠Δ෦ ࢿ͕ૄ͔ʹͳΔ ࠷ѱӡ༻ͷةػʁ
ݱࡏͷKubernetesͷར༻༻్ 28
29 ըػೳͷͨΊʹར༻ ར༻༻్
௨ػೳ WebRTCΛར༻࣮ͯ͠ WebRTC࣮ίετ͕ߴ͍ → Twilio Programmable VideoΛར༻ 30
Composition API Twilio Programmable VideoͷըੜAPI ύϒϦογϡ͞Εͨө૾ͱԻͷه͔Β ҙͷө૾ͱͦͷஔΛܾΊ ҙͷԻͱ݁߹͠ಈըΛੜ
31
ϙΠϯλػೳ WebRTCͷσʔλνϟωϧΛհͯ͠ ʮࠓͲ͜Λࢦ͍ࠩͯ͠Δ͔ʯ ͱ͍͏ใͷΓऔΓΛ࣮ͯ͠ݱ 32
Composition APIͰ݁߹Ͱ͖Δͷ ө૾ͱԻͷΈͰσʔλνϟωϧͦͦه͞Εͳ͍ → ʮ͋ΕɾͦΕɾ͜Εʯͱݴ͍ͳ͕Βձͯ͠ϙΠϯλ͕ه ͞Ε͍ͯͳ͚Εɺ͋ͱ͔Βݟͨ࣌͠ʹԿʹ͍ͭͯ͠ ͍ͯΔ͔͕͔Βͳ͍ 33
Ͳ͏͍ͬͯΔ͔ botΛ௨ʹࢀՃͤ͞ ԾͷϒϥβʹϨϯμϦϯάͤͨ͞ͷΛ GstreamerͰऩ 34
Kubernetesʹͨ͠ཧ༝ ө૾ͷॲཧΛ͢ΔͨΊॏ͘ ͍ͭ࢝·Γ͍ͭऴྃ͢Δ͔͔Βͳ͍ॲཧ ΛޮΑ࣮͘ߦͰ͖ͦ͏͔ͩͬͨΒ 35
ElasticSearchฤ 36
ϩάج൫ӡ༻ͷ՝ ϩάج൫ʹৗʹେྔͷϦΫΤετ͕ඈΜͰ͖ͯ ϚγϯϦιʔεཧ͕ෳࡶ 37
ฐࣾͷ߹ Kubernetes্ͰElasticSearchΛӡ༻͍ͯͨ࣌͠ʹ શͯͷίϯςφ͕Pending → શͯͷαʔϏεͷϩάΛऔಘ͠Α͏ͱ͍ͯͨͨ͠Ί ɹ ElasticSearch͕ϝϞϦΛ৯͍௵͠
ɹ ଞͷίϯςφΛىಈͰ͖ͳ͍ 38
͋͘·Ͱϩάج൫Λӡ༻͢Δ͜ͱ͕తͰͳ͍ 39
ElasticSearch → Azure Application Insights 40 "[VSF"QQMJDBUJPO*OTJHIUT "QQMJDBUJPO*OTJHIUT"[VSF.POJUPSͷ֦ுػೳͰ͋ΓɺΞϓϦέʔγϣϯ ύϑΥʔϚϯεࢹ "1.
ػೳΛఏڙ͠·͢ɻ"1.πʔϧɺ࣍ͷํ๏Ͱɺ ։ൃɺςετɺӡ༻ڥ͔ΒΞϓϦέʔγϣϯΛࢹ͢Δͷʹཱͪ·͢ɻ
App Insightsͷ౷߹ 41 "QQMJDBUJPO*OTJHIUTΛ&OBCMFEʹ͠ Ͳͷ"QQ*OTJHIUTʹϩάΛૹ৴͢Δ͔બ͢Δ͚ͩͰઃఆ͕ྃ
ΞϓϦέʔγϣϯϚοϓ ෳͷApp Service͔ΒಉҰͷApplication Insightsʹ ϩάΛૹ৴͢ΔΑ͏ʹઃఆ͢Δ͚ͩ 42
τϥϯβΫγϣϯͷݕࡧ 43
ϕϯμʔϩοΫΠϯΛڐ༰ͨ͜͠ͱʹΑΓ ϩάͷऩू͔Βੳػೳͷߏங·ͰϫϯετοϓͰྃ εϐʔυײखܰ͞ͳͲͷԸܙ 44
45 ϩάج൫ͷӡ༻ʹ಄Λ·͢ඞཁੑ͕ݱ ϏδωεϩδοΫʹूத ։ൃͷεϐʔυ্͕
͜͜·Ͱ 46
ϕϯμʔʹґଘ͠ͳ͍ ՁఏڙͰͳ͍෦Ͱ ӡ༻ͷͨΊʹϦιʔεΛׂ͍ ͍ͯͨߏ ϕϯμʔʹґଘ ӡ༻ʹඞཁͳϦιʔεΛܰݮ ػೳͷ։ൃʹϦιʔεΛूத Ͱ͖ΔΑ͏ʹߏΛมߋ 47
ٕज़తح৺ʹΛ͚ΔͷͰͳ͘ ݱͷ՝ʹΛ͚Δ 48
OSSಋೖͷऔΓΈ 49
ԿΛ͠Α͏ͱ͍ͯ͠Δ͔ʁ Relation-Based Access ControlʢReBACʣΛ͢ΔͨΊʹ OpenFGAͱ͍͏OSSΛ࠾༻͠Α͏ͱ͍ͯ͠·͢ɻ 50
OpenFGAͱ • OpenFGAReBACΛ؆୯ʹߏங͠ར༻Ͱ͖ΔOSS • CNCFͷSandBoxͷϓϩδΣΫτ • GoogleͷೝՄج൫Ͱ͋ΔZanziberͷจΛͱʹ Auth0͕࣮͠OSSͱͯ͠ެ։ 51
52 ݱ͔Βͷχʔζ͕͋Δ ReBACΛ࣮ݱ͢ΔͨΊͷαʔϏε͕ͳͦ͞͏ ͳͥOpenFGAʁ
ݱͷχʔζ 53 🏭 ݱ 👤 Ϣʔβʔ 👤 Ϣʔβʔ 🏭 ݱ
👤 Ϣʔβʔ ऀ ࢀՃऀ ऀ ήετ
OpenFGAͰͷReBAC 1. DSLͰσʔλϞσϧΛఆٛ 2. Relation TupleΛ࡞ 3. ݖݶΛ͍࣋ͬͯΔ͔Ͳ͏͔ΫΤϦ 54
DSLͰσʔλϞσϧΛఆٛ 55
Relation TuppleΛ࡞ 56
ݖݶΛ͍࣋ͬͯΔ͔Ͳ͏͔ΫΤϦ 57
ΫΤϦͷྫ • anneࢿྉZʹରͯ͠ӾཡݖݶΛ͍࣋ͬͯΔ͔ʁ • anne͕ӾཡݖݶΛ͍࣋ͬͯΔࢿྉʁ 58
anneZʹରͯ͠ӾཡݖݶΛ͍࣋ͬͯΔ͔ʁ 59
anne͕ӾཡݖݶΛ͍࣋ͬͯΔࢿྉʁ 60
OpenFGAͷظ • ؔͱσʔλͷ͕ਐΉ͜ͱͰ֤ϚΠΫϩαʔϏεͷ࣮ ΑΓσʔλʹରͯ͠ूதͰ͖Δ • DSLͰݖݶϞσϧΛҰݩཧͰ͖ΔͷͰɺݖݶͷʹΑ ΔηΩϡϦςΟϦεΫܰݮ 61
ݱͷ՝Λղܾ͢Δ্Ͱ ඞཁੑΛײ͡Δ߹ ੵۃతʹνϟϨϯδ͍ͯ͘͠ελϯε 62
Ϣʔβʔͷ՝ղܾʹΠϯύΫτ͕͋Δͱ͜Ζʹ ϦιʔεΛ͔͚Δ͜ͱ͕Ͱ͖ΔΑ͏ʹ ߏங͢Δ͜ͱ͕େࣄͩͱࢥ͍ͬͯ·͢ 63
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ 64