60以上のプロダクトを持つ組織における開発者体験向上への取り組み - チームAPIとBackstageで構築する組織の可視化基盤 - / sre next 2025 Efforts to Improve Developer Experience in an Organization with Over 60 Products
by
VTRyo
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
60Ҏ্ͷϓϩμΫτΛ࣋ͭ৫ʹ͓͚Δ ։ൃऀମݧ্ͷऔΓΈ - νʔϜAPIͱBackstageͰߏங͢Δ৫ͷՄࢹԽج൫ - Money Foward, Inc - Platform and Reliability Engineering ຊ෦ VTRyo SRE NEXT 2025
Slide 2
Slide 2 text
202110݄ʹϚωʔϑΥϫʔυೖࣾ ஶ ”ITΤϯδχΞͷͨΊͷ ɹɹ ۮવ͔Β࢝ΊΔΩϟϦΞϓϥϯ” - SRE NEXTॳճ͔Βࢀઓ - SRE NEXT2022 ONLINEͰॳొஃ - “Ұਓ͔Β࢝ΊΔϓϩμΫτSRE” - Road to SRE NEXT@໊ݹ - “Ұମ͍͔ͭΒSRE NEXT͕SRE͚ͩͷΧϯϑΝϨϯε ͩͱࡨ͍֮ͯͨ͠ʁ” - ͦͷଞ SREؔ࿈ͷొஃ - SRE Kaigi 2025 - “Ұਓ͔Β࢝ΊͨSREνʔϜ3ؒͷาΈ" VTRyo
Slide 3
Slide 3 text
࣮αφࢣࢿ͍֨࣋ͬͯΔΒ͍͠ - ࠓճ೦ئͷεϙϯαʔϒʔεઃஔ ! ͋ͦͼʹ͖ͯͶ ʢ͜ΕεϙϯαʔηογϣϯͰ͋Γ·ͤΜʣ - झຯ - ΫϥϑτϏʔϧͷ৹ࠪһࢿ֨औಘ🍺 - ࠷ۙΠϕϯτؒआΓͰεύΠεΧϨʔमߦத🍛 VTRyo
Slide 4
Slide 4 text
େ͖ͳ৫ʹ͓͚Δใஅͷղܾࡦͱͯ͠ͷɺνʔϜAPIͱ Backstageͷ࣮ફత׆༻๏ ࠓ͔Β࢝ΊΒΕΔࢪࡦͱͯ͠ ᶃνʔϜؒ࿈ܞʹඞཁͳใͷఆٛํ๏ ᶄBackstageςϯϓϨʔτͷ࣮ςΫχοΫ ᶅ৫ͷنʹؔΘΒͣԠ༻Ͱ͖ΔऔΓΈ ࠓ࣋ͪؼΕΔ͜ͱ ৫ͷෳࡶੑʹཱ͔ͪ͏ώϯτ
Slide 5
Slide 5 text
ϚωʔϑΥϫʔυͷ৫ΛநԽͨ͠ਤ
Slide 6
Slide 6 text
ใͷஅͱ୳ࡧίετͷ૿େ νʔϜ͝ͱʹҟͳΔπʔϧͰใཧ Google DocɺGitHub Wikiͷπʔϧࢄ ٕज़ελοΫόϥόϥɻͲͷνʔϜ͕ԿΛ͍ͬͯΔ͔ෆ໌ ͷॴࡏ͕ෆ໌֬ ʮ͜ͷAPIʹ͕ൃੜͨ͠߹ɺ୭ʹ࿈བྷ͢Ε͍͍ͷ͔ʯ جຊతͳใͷѲ͕ࠔ എܠͱ՝
Slide 7
Slide 7 text
ؔੑͷՄࢹԽͷ͠͞ දܭࢉιϑτͰදݱ͢Δ߹ɺνʔϜͱϦιʔεͷෳࡶͳؔ ੑΛදݱ͢Δʹݶք͕͋Δ ԾʹͦΕͰཧ͢Δͱɺใཧऀ͕தԝूݖԽ͢ΔϦεΫ ඇޮͳΦϯϘʔσΟϯά ৽͍͠νʔϜʹࢀՃͨ͠ࡍɺͦͷνʔϜ͕ॴ༗͢ΔϦιʔε ϓϩδΣΫτΛѲ͢Δ·Ͱͷίετ ޓ͍ʹڠௐ͍ͯ͠ΔαʔϏεʹ͍ͭͯɺ͋ͪͪ͜ͷใʹΞΫ ηε͢Δඞཁ͕͋Δ എܠͱ՝
Slide 8
Slide 8 text
ͦ͜ͰSpotifyOSS "Backstage"
Slide 9
Slide 9 text
> “BackstageSpotifyͷඞཁੑ͔Βੜ·Ε·ͨ͠ɻ ࣄۀ͕͢ΔʹͭΕͯɺΠϯϑϥ͕அยԽ͠ɺΤϯδχΞͷੜ࢈ ੑ͕Լ͍ͯ͠Δ͜ͱʹؾ͖ͮ·ͨ͠ɻ νʔϜίʔυͷߏஙͱςετΛߦ͏ΘΓʹɺ࡞ۀ։࢝ʹඞཁͳ ใΛ୳͢͜ͱʹଟ͘ͷ࣌ؒΛඅ͍ͯ͠·ͨ͠ɻ" Backstageͱ ࢀর: https://backstage.io/docs/overview/background
Slide 10
Slide 10 text
αʔϏεɺιϑτΣΞɺπʔϧɺςετΛBackstageͰཧ ͲͷαʔϏεͰͲͷΑ͏ͳٕज़ελοΫ͕ΘΕ͍ͯΔͷ͔ ͋ΔαʔϏεʹ͓͍ͯɺ୭͕Φʔφʔͳͷ͔ αʔϏεͷར༻ऀͱͯ͠ɺରͷαʔϏεͷར༻ํ๏ Etc… Backstageͱ ࢀর: https://backstage.io/docs/overview/background
Slide 11
Slide 11 text
BackstageΛ։ൃऀϙʔλϧͱͯ͠ར༻ ใΛՄࢹԽ͢Δ
Slide 12
Slide 12 text
࣮͢Ͱʹಋೖ͞Ε͍ͯͨBackstage
Slide 13
Slide 13 text
ͱͱͷӡ༻ঢ়گ Πϯγσϯτൃੜ࣌ͷऀؔੑѲ͕త ֤ϦϙδτϦʹαʔϏεใͱΦʔφʔ໊Λొͨ͠ ͨͩ͠ӡ༻ʹ՝͕͋ͬͨ Φʔφʔใ͕ෆ͍ͯ͠Δʢ࿈བྷઌͳ͠ɺϝϯόʔෆ໌ͳͲʣ YAMLฤू͕ଟ͘ͷ։ൃऀʹͱͬͯෛՙ ԿΛॻ͍͍͍ͯͷ͔ෆ໌ ࣮͢Ͱʹಋೖ͞Ε͍ͯͨBackstage
Slide 14
Slide 14 text
BackstageͰ ςϯϓϨʔτΛ࡞Ͱ͖Δ
Slide 15
Slide 15 text
͜ΕΛͬͯ ొͷϋʔυϧΛԼ͛Δ
Slide 16
Slide 16 text
Backstage Software Templates
Slide 17
Slide 17 text
Backstage Software Templates ※ϦϙδτϦςϯϓϨʔτͱͯ͠͏έʔε͕ଟ͍ ใΛೖྗ͢ΔͱඞཁͳใΛࡌͯ͠ϦϙδτϦ࡞͞ΕΔ ʮXX repoΛίϐϖͯ͘͠Δͱ͍͍ΑʯͷΞϨ
Slide 18
Slide 18 text
Backstage Software Templates ࠓճʮYAML͠ΜͲ͍ʯʮԿΛॻ͔͘ෆ໌ʯͷղܾࡦͱͯ͠ར༻ Web UI্Ͱඞཁࣄ߲Λೖྗ͢Δ͚ͩͰYAMLࣗಈੜ ϨΠΞτύϥϝʔλͷѲʹ࣌ؒΛऔΒΕΔ͜ͱͳ͘ɺ։ ൃऀ͕؆୯ʹใΛొͰ͖Δ ඞཁͳใΛఏࣔͰ͖Δ ೖྗใΛςϯϓϨʔτΤϯδϯͰಈతʹมͰ͖Δ
Slide 19
Slide 19 text
AI͕ॻ͚ྑ͘ͳ͍ʁ ͱࢥͬͨΈͳ͞Μ
Slide 20
Slide 20 text
͜ͷऔΓΈ࣌ɺAI agent͕ࣾʹීٴ͍ͯ͠ͳ͔ͬͨ AI agentར༻Λલఏͱͨ͠߹ɺͦͷηοτΞοϓ͔Β։࢝ʹͳ Δϋʔυϧ͕͋ͬͨ TemplatesΛΘͣɺAI agentΛͬͯੜ͢Δ͜ͱͳ͍ ʢதͨͩͷYAMLͳͷͰʣ ඞཁͳใΛ࣮֬ʹੜͯ͠Β͑OK ൃද͍ͯ͠Δؒʹใ͕ݹ͘ͳΔڪΖ͍࣌ͩ͠…… ※͏·͘ӡ༻Ͱ͖ΔͳΒྑ͍ͱࢥ͍·͢
Slide 21
Slide 21 text
ใͷूઌܾ·ͬͨ ͰԿΛొ͢Δ͖͔ʁ
Slide 22
Slide 22 text
ʮΦʔφʔ୭͔ʯΛಛఆ͢ΔͨΊʹ ͲͷνʔϜ͕ͲͷγεςϜαʔϏεʹΛ͍࣋ͬͯΔͷ͔ ͦͷνʔϜͲͷଞνʔϜͱؔ࿈͕͋Δͷ͔ ͦͷαʔϏεͷυΩϡϝϯτͲ͜ʹ͋Δͷ͔ Etc… ԿΛొ͢Δ͖͔ʁ
Slide 23
Slide 23 text
νʔϜτϙϩδʔͷߟ͑ํΛ ࠾༻
Slide 24
Slide 24 text
> “Ձ͋ΔιϑτΣΞΛૉૣ͘ಧ͚ΔదԠܕ৫ઃܭ” > “ݱʹ͓͚Δ৫ઃܭͱɺސ٬ͷʹԠ͑Δ͘ίϥϘϨʔ γϣϯ͢ΔͨΊͷٕज़Λઃܭ͢Δ͜ͱͰ͋Δ” νʔϜτϙϩδʔͱ ࢀর: νʔϜτϙϩδʔ Ձ͋ΔιϑτΣΞΛ͘͢ಧ͚ΔదԠܕ৫ઃܭ ɹɹ φΦϛɾελϯϑΥʔυʰGuide to Organization Designʱ
Slide 25
Slide 25 text
ίϯΣΠͷ๏ଇʹج͍ͮͯ”ҙࣝతʹ”νʔϜߏͱΞʔΩςΫ νϟΛઃܭ͢Δ͜ͱ ͱʹ͔͘ૉૣ͘ϦϦʔε͢ΔͨΊʹνʔϜΛઃܭ͢Δ ೝෛՙΛཧ͢Δ͜ͱ νʔϜΛ͏·͘૬ޓ࡞༻ͤ͞Δ ڥքΛ໌֬ʹ͢Δ͜ͱͰ໌֬ʹ͢Δ νʔϜτϙϩδʔͱ
Slide 26
Slide 26 text
νʔϜ͕ιϑτΣΞͷΦʔφʔͱͳΔ ιϑτΣΞͷڥքαΠζΛνʔϜͷೝෛՙʹ߹ΘͤΔ దͳڥք͕ೝෛՙΛԼ͛Δ ൣғΛ߹Θ੍ͤͯݶ͢Δ νʔϜτϙϩδʔʹ͓͚ΔνʔϜϑΝʔετࢥߟ ࢀর: νʔϜτϙϩδʔ Ձ͋ΔιϑτΣΞΛ͘͢ಧ͚ΔదԠܕ৫ઃܭ
Slide 27
Slide 27 text
νʔϜಉ࢜ͷΓͱΓʹAPIͷΞΠσΞΛ֦ுͨ͠ͷ ίʔυɺόʔδϣϯཧɺυΩϡϝϯςʔγϣϯɺϓϥΫςΟ εɺίϛϡχέʔγϣϯɺؔ࿈ใ νʔϜͷൣғɺఏڙαʔϏεɺ࿈བྷํ๏Λ໌֬Խ ଞνʔϜ͔Βར༻͞ΕΔલఏͰఆٛ͢Δ ૬ख͙͢ʹཧղͰ͖Δ͔ɻ͙͢ʹཉ͍͠ใʹ౸ୡͰ͖Δ͔ νʔϜAPIͱ ࢀর: νʔϜτϙϩδʔ Ձ͋ΔιϑτΣΞΛ͘͢ಧ͚ΔదԠܕ৫ઃܭ
Slide 28
Slide 28 text
νʔϜAPIͱͯ͠ ใΛఆٛͯ͠ΈΔ
Slide 29
Slide 29 text
CODEOWNERSʹඥ໊ͮ͘લ Slackάϧʔϓϝϯγϣϯ໊ͱϝϯγϣϯID Slackνϟϯωϧ໊ͱϦϯΫ ϓϩδΣΫτཧπʔϧͷϦϯΫ αϒνʔϜ໊ νʔϜϝϯόʔϦετ νʔϜλΠϓʢEnablingɺstream-alignedͳͲʣ ྡਓʢར༻ऀɾඇར༻ऀʣͷνʔϜ໊ νʔϜAPIͱͯ͠ఆٛͨ͜͠ͱ GitHubݸਓ·ͨTeamΛ ϦϙδτϦͷऀʹࢦఆͰ͖Δ
Slide 30
Slide 30 text
Backstage × νʔϜAPI
Slide 31
Slide 31 text
αʔϏεใΛҰݩཧ͢ΔϨΠϠʔͱͯ͠ͷBackstage ͦ͜ʹνʔϜใొ͞ΕΔ͜ͱͷϝϦοτ ௐࠪ࣌ؒͷॖ ΦϯϘʔσΟϯά࣌ؒͷॖ ίϥϘϨʔγϣϯ࣌ͷ࿈བྷ Backstage × νʔϜAPI
Slide 32
Slide 32 text
Backstage × νʔϜAPI
Slide 33
Slide 33 text
Backstage × νʔϜAPI
Slide 34
Slide 34 text
Backstage Software Templates Tips
Slide 35
Slide 35 text
ొਓ 1. Backstage ϦϙδτϦ Backstageͦͷͷ 2. ҙͷϦϙδτϦʢTemplatesίϯςϯπΛஔ͘ॴʣ template.yaml catalog-info.yaml(template༻) 3. ϓϩμΫτͷϦϙδτϦʢαʔϏε͝ͱʹஔ͘ʣ catalog-info.yaml Tips ϑϩϯτΤϯυϓϥάΠϯͷ֦ ுBackstageʹมߋΛՃ͑Δ
Slide 36
Slide 36 text
Ͳ͏ͬͯTemplatesΛͭ͘Δͷ͔ Backstage Software Templates ࣗମ YAML 😨 ެࣜͷExample Λͥͻɻࠓͷ࣌ͳΒVibe coding Ұ https://github.com/backstage/software-templates ςϯϓϨʔτΤϯδϯ Nunjucks ΛͬͯೖྗΛૠೖ͢Δ ݕূʹ Nunjucks ͷ PlaygroundΛ͓͏ https://nunjucks.r0b.io/ Tips: ҙͷϦϙδτϦ
Slide 37
Slide 37 text
Templates ίϯςϯπͷσΟϨΫτϦߏ └── team-api └── group ᵓ── content │ └── catalog-info.yaml └── template.yaml Tips: ҙͷϦϙδτϦ BackstageͰೖྗ͞ΕΔ templateϑΝΠϧ NunjucksΛͬͨϑΝΠϧ system, component ͱ͍ͬͨผͷΧςΰϦ͕Ͱ͖Δ͔͠Εͳ͍ͷͰ "groupϦιʔε"ͱ໋໊ͯ͠
Slide 38
Slide 38 text
Tips: ҙͷϦϙδτϦ template.yaml
Slide 39
Slide 39 text
contentԼͷcatalog-info.yamlʹΛೖ͍ͯ͠Δ Tips: ҙͷϦϙδτϦcatalog-info.yaml
Slide 40
Slide 40 text
Array TagsͷΑ͏ʹ͍͔ͭ͋͘Δલఏͷͷ Arrayͷதʹ͞Βʹ߲ΛՃͰ͖Δ ui:field PickerΛ͔ͭͬͨೖྗิॿ Tips: ҙͷϦϙδτϦ template.yaml
Slide 41
Slide 41 text
templatesঢ়ଶͷcatalog-info.yaml Array forͰϧʔϓ IfذͰඞਢͰͳ͍߲Λ੍ޚ TemplatesͷܗNunjucks PlaygroundͰ Tips: template༻ͷcatalog-info.yaml
Slide 42
Slide 42 text
ϓϩμΫτϦϙδτϦͷσΟϨΫτϦߏ team_api └── group └── catalog-info.yaml Tips: ϓϩμΫτͷϦϙδτϦ ใ͕ೖ͞ΕͨϑΝΠϧ
Slide 43
Slide 43 text
࣮ࡍͷϖʔδ Tips
Slide 44
Slide 44 text
࣮ࡍͷϖʔδ Tips
Slide 45
Slide 45 text
LinksͳͲͷΟδΣοτɺϓϥάΠϯʹ͍ͭͯ BackstageOSSͷͨΊɺࣗͰΧελϜՄೳ දࣔ͢Δɾ͠ͳ͍ࣗ༝ CoreϥΠϒϥϦɾϓϥάΠϯReactͰ࣮ ๛ͳϓϥάΠϯ༗ ࣗͨͪͰ࣮Մೳ Tips
Slide 46
Slide 46 text
ݱ࣌ͰͷՌϙΠϯτ
Slide 47
Slide 47 text
ؔੑͷՄࢹԽ νʔϜͱγεςϜͷ1:Nؔͷදݱ Ұཡද͚ࣔͩͰͳཱ͍ମతͳใߏ ใؒͷؔ࿈ੑΛΑΓҰ୳ࡧ͕Մೳ ͜ͷνʔϜͲͷϦιʔεΛ୲͍ͯ͠Δ͔ݟ͑Δ ใొͷϋʔυϧ ٕज़తͳ͕ࣝͳͯ͘νʔϜใΛొͰ͖Δ ݱ࣌Ͱ࣮ݱͰ͖͍ͯΔϙΠϯτ
Slide 48
Slide 48 text
ࠓޙ͍͖ͬͯ͘͜ͱ
Slide 49
Slide 49 text
ଞνʔϜͷਁಁ ͕͍ࣗͯ͠ΔνʔϜҎ֎ొ͢Δ ొɾߋ৽࣌ɺΑΓͻͱͷख͕͔͔Βͳ͍Α͏ʹ͢ΔΈ ΦϯϘʔσΟϯάͷ׆༻ େΛѲ͠ͳ͕ΒɺࣗͰใΛ୳ࡧͰ͖ΔΑ͏ʹͳΔ ͞ΒͳΔࣗಈԽ ྫ: YAMLϑΝΠϧ͕ࣗಈతʹGitHubʹPush͞ΕΔ etc… ߋ৽ใΛͲ͏ͬͯऩू͢Δ͔ ͳ͘ɺ͘ബ͘ɺऔΓΈଓ͚Δඞཁ͕͋Δ
Slide 50
Slide 50 text
ࠓ͔ΒऔΓΊΔ͜ͱ
Slide 51
Slide 51 text
ೝෛՙΛ౿·͑ͨڥքઢΛݕ౼ʢνʔϜτϙϩδʔࢀরʣ ʢͷڥքઢ͕Ͱ͖ͨΒʣνʔϜAPIͷఆٛ ଞνʔϜʹެ։͖͢ใΛ໌֬ʹఆٛ͠ɺڞ௨ೝࣝΛ࡞Γ· ͢ɻ͜ΕνʔϜ͕গͳ͚Εಋೖ͕༰қ ΦʔφʔͱϦιʔεؔΛදݱͰ͖ΔΈΛಋೖ ϦϙδτϦʹରͯ͠ɺ࡞ॳظ͔ΒνʔϜใͱϦιʔεใ Λೖྗ͢ΔΑ͏ͳΈΛಋೖ͓ͯ͘͠ɻ͋ͱͰඦͷϦϙδ τϦʹ͍ΕΔίετ࿙ΕΛࢭͰ͖Δ ࠓ͔ΒऔΓΊΔ͜ͱ
Slide 52
Slide 52 text
·ͱΊ
Slide 53
Slide 53 text
BackstageʹΑΔใͷҰݩཧ 1:NؔͷՄࢹԽ νʔϜτϙϩδʔ: νʔϜAPIͷΞΠσΞΛར༻ͨ͠ใެ։ ใొͳΔ͔͘ΜͨΜʹ ෳࡶԽ͢ΔલʹઃܭΛ! ։ൃऀͷೝෛՙܰݮͷͨΊʹ
Slide 54
Slide 54 text
No content