inflearn logo
็Ÿฅ่ญ˜ๅ…ฑๆœ‰
inflearn logo

ใƒžใ‚คใ‚ฏใƒญใ‚ตใƒผใƒ“ใ‚น่จญ่จˆใƒ‘ใ‚ฟใƒผใƒณๅฎŒๅ…จใ‚ฌใ‚คใƒ‰

ใ“ใฎใ‚ณใƒผใ‚นใฏใ€ใƒžใ‚คใ‚ฏใƒญใ‚ตใƒผใƒ“ใ‚นใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ้–‹็™บใฎใŸใ‚ใฎMSAใƒ‡ใ‚ถใ‚คใƒณใƒ‘ใ‚ฟใƒผใƒณใจๅฎŸ่ฃ…ๆˆฆ็•ฅใซๅฟ…่ฆใชๆง˜ใ€…ใชๅ†…ๅฎนใ€ใƒ‘ใ‚ฟใƒผใƒณใ€ใŠใ‚ˆใณ่จญ่จˆใซใคใ„ใฆๅญฆใถใ‚ณใƒผใ‚นใงใ™ใ€‚ๆ—ขๅญ˜ใฎใƒขใƒŽใƒชใ‚ทใƒƒใ‚ฏใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใ‚’MSAๆ–นๅผใงๆˆๅŠŸ่ฃใซ็งป่กŒใ™ใ‚‹ใŸใ‚ใซๅฟ…่ฆใชไธญๆ ธ็Ÿฅ่ญ˜ใจๅฎŸ่ทต็š„ใชๆ–นๆณ•่ซ–ใซใคใ„ใฆๅญฆ็ฟ’ใ—ใพใ™ใ€‚ใƒžใ‚คใ‚ฏใƒญใ‚ตใƒผใƒ“ใ‚นใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใฎๆ นๅนนใ‚’ใชใ™ๆง˜ใ€…ใชใƒ‡ใ‚ถใ‚คใƒณใƒ‘ใ‚ฟใƒผใƒณใซใคใ„ใฆๅˆ†ๆžใ—ใ€ๅ„ใƒ‘ใ‚ฟใƒผใƒณใŒใฉใฎใ‚ˆใ†ใช็Šถๆณใซ้ฉใ—ใฆใŠใ‚Šใ€ใฉใฎใ‚ˆใ†ใซ้ฉ็”จใ•ใ‚Œใ‚‹ใ‹ใ‚’ๅญฆ็ฟ’ใงใใพใ™ใ€‚

้›ฃๆ˜“ๅบฆ ๅˆ็ดš

ๅ—่ฌ›ๆœŸ้–“ ็„กๅˆถ้™

Java
Java
Spring Cloud
Spring Cloud
Design Pattern
Design Pattern
MSA
MSA
patterns
patterns
Java
Java
Spring Cloud
Spring Cloud
Design Pattern
Design Pattern
MSA
MSA
patterns
patterns

ใŠ็Ÿฅใ‚‰ใ›

1 ไปถ

  • kenneth๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ใ“ใ‚“ใซใกใฏใ€้›ขๅณถ้™ขใงใ™ใ€‚

    ไปŠๅ›žๆ–ฐใŸใซMicroservice ArchitectureใฎใŸใ‚ใฎDesign Pattern่ฌ›็พฉใ‚’ใ‚ชใƒผใƒ—ใƒณใ—ใพใ—ใŸใ€‚

    ๆœฌๅฝ“ใซใ€ใ‚ใพใ‚Šใซใ‚‚ๅคงๅค‰ใงๅฟ™ใ—ใ‹ใฃใŸ2024ๅนดใ‚’ๅพŒใซใ—ใฆใ€ๆ–ฐใŸใซ2025ๅนดใ‚‚ใ™ใงใซ5ๆœˆใŒ้ŽใŽใฆใ„ใพใ™ใญใ€‚

    ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใซๅŸท็ญ†ใซ่ฌ›็พฉใซๅ€‹ไบบๅฒใซ่‰ฒใ€…ใชใ“ใจใŒๅคšใ‹ใฃใŸใฎใงใ™ใŒใ€ใใ‚Œใงใ‚‚้•ทใ„้–“้…ใ‚ŒใฆใใŸ่ฌ›็พฉใ‚’ไธ€ใคใ‚ชใƒผใƒ—ใƒณใ™ใ‚‹ใ“ใจใซใชใ‚Šใพใ—ใŸใ€‚

    • Spring Cloudใง้–‹็™บใ™ใ‚‹ใƒžใ‚คใ‚ฏใƒญใ‚ตใƒผใƒ“ใ‚นใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ๏ผˆMSA๏ผ‰

    • Jenkinsใ‚’ไฝฟ็”จใ—ใŸCI / CDใƒ‘ใ‚คใƒ—ใƒฉใ‚คใƒณใฎๆง‹็ฏ‰

    • DevOpsใฎใŸใ‚ใฎDockerไปฎๆƒณๅŒ–ๆŠ€่ก“๏ผˆPrivate Harbor Registry๏ผ‰

    • ใƒžใ‚คใ‚ฏใƒญใ‚ตใƒผใƒ“ใ‚น่จญ่จˆใƒ‘ใ‚ฟใƒผใƒณใ‚’้ฉ็”จใ—ใŸMSAใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใฎ้–‹็™บ

    ่ฌ›็พฉใซ็ถšใ„ใฆใ€ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใฎๆง‹็ฏ‰ใซๅฟ…่ฆใชใƒ‡ใ‚ถใ‚คใƒณใƒ‘ใ‚ฟใƒผใƒณใซ้–ขใ™ใ‚‹่ฌ›็พฉใ‚’ๆบ–ๅ‚™ใ—ใพใ—ใŸใ€‚ๆœ€ๅˆใซใ€ŒSpring Cloudใง้–‹็™บใ™ใ‚‹ใƒžใ‚คใ‚ฏใƒญใ‚ตใƒผใƒ“ใ‚นใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ๏ผˆMSA๏ผ‰ใ€่ฌ›็พฉใ‚’ไผ็”ปใ™ใ‚‹้š›ใ€Cloud Nativeใซ้–ขใ™ใ‚‹ๅŸบๆœฌ็š„ใช่ฌ›็พฉใ‚’ๅฎŒไบ†ใ—ใ€ๆฌกใฎๆฎต้šŽใงใƒ‡ใ‚ถใ‚คใƒณใƒ‘ใ‚ฟใƒผใƒณใจๅฎŸๅ‹™ใซ้ฉ็”จใงใใ‚‹ใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใ‚’้€šใ˜ใฆWebใ‚ตใƒผใƒ“ใ‚นใ‚’้–‹็™บใ—ใฆใฟใ‚‹่ฌ›็พฉใ‚’ไผ็”ปใ—ใŸใจใ“ใ‚ใ€ๆ€ใฃใŸใ‚ˆใ‚Šๆ™‚้–“ใŒใ‹ใ‹ใ‚Šใพใ—ใŸใ€‚ใใ‚Œใงใ‚‚ๆง˜ใ€…ใชใƒ‘ใ‚ฟใƒผใƒณใ‚’ใ„ใใคใ‹ใฎใ‚ฐใƒซใƒผใƒ—ใซใพใจใ‚ใฆ่ฌ›็พฉใ‚’ใ‚ชใƒผใƒ—ใƒณใ™ใ‚‹ใ“ใจใซใชใ‚Šใพใ—ใŸใฎใงใ€ๅคšใใฎ้–ขๅฟƒใ‚’ใŠ้ก˜ใ„ใ—ใพใ™ใ€‚

    ไปŠๅ›žใฎ่ฌ›็พฉใงใฏใ€ๆฌกใฎใ‚ˆใ†ใชใƒ‘ใ‚ฟใƒผใƒณใ‚’ๆ‰ฑใฃใฆใ„ใพใ™ใ€‚

    • API Gateway๏ผˆAPI Gateway๏ผ‰๏ผšใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใ‹ใ‚‰ใฎใ™ในใฆใฎ่ฆๆฑ‚ใ‚’ๅ˜ไธ€ใฎใ‚จใƒณใƒˆใƒชใƒใ‚คใƒณใƒˆใงๅ—ใ‘ๅ–ใ‚Šใ€่ช่จผใ€ใƒญใ‚ฎใƒณใ‚ฐใ€ใƒซใƒผใƒ†ใ‚ฃใƒณใ‚ฐใชใฉใ‚’ๅ‡ฆ็†ใ™ใ‚‹ใƒ‘ใ‚ฟใƒผใƒณใ€‚่ค‡ๆ•ฐใฎใƒžใ‚คใ‚ฏใƒญใ‚ตใƒผใƒ“ใ‚นใ‚’1ใ‹ๆ‰€ใง็ฎก็†ใงใใพใ™ใ€‚

    • ใ‚ตใƒผใƒ“ใ‚นใƒ‡ใ‚ฃใ‚นใ‚ซใƒใƒช๏ผšๅ‹•็š„ใซๅค‰ๅŒ–ใ™ใ‚‹ใ‚ตใƒผใƒ“ใ‚นใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎๅ ดๆ‰€ใ‚’ไธญๅคฎใƒฌใ‚ธใ‚นใƒˆใƒชใซ็™ป้Œฒใ—ใฆๆคœ็ดขใ™ใ‚‹ใƒ‘ใ‚ฟใƒผใƒณใ€‚ใ“ใ‚Œใซใ‚ˆใ‚Šใ€ใ‚ตใƒผใƒ“ใ‚น้–“้€šไฟกๆ™‚ใซใ‚ขใƒ‰ใƒฌใ‚นใ‚’่‡ชๅ‹•็š„ใซๆŽข็ดขใ—ใพใ™ใ€‚

    • ๅŒๆœŸใŠใ‚ˆใณ้žๅŒๆœŸ้€šไฟก๏ผšๅŒๆœŸ้€šไฟกใฏใ€่ฆๆฑ‚ใ‚’้€ไฟกใ—ใŸใ‚ตใƒผใƒ“ใ‚นใŒๅฟœ็ญ”ใ‚’ๅ—ไฟกใ™ใ‚‹ใฎใ‚’ๅพ…ใคใ‚ˆใ†ใซใ€ๅฟœ็ญ”ใŒๆฅใ‚‹ใพใงใ‚นใƒฌใƒƒใƒ‰ใŒใƒ–ใƒญใƒƒใ‚ฏใ•ใ‚Œใพใ™ใ€‚ REST/gRPC/GraphQL API ๆ–นๅผใงๅŒๆœŸ้€šไฟกใ‚’ๅฎŸ่ฃ…ใงใใพใ™ใ€‚้žๅŒๆœŸ้€šไฟกใฏใ€่ฆๆฑ‚ใ‚’้€ไฟกใ—ใŸใ‚ตใƒผใƒ“ใ‚นใŒๅฟœ็ญ”ใ‚’ๅพ…ใŸใšใซ็›ดใกใซๆฌกใฎไฝœๆฅญใ‚’้€ฒใ‚ใ‚‹ๆ–นๆณ•ใงใ€Kafkaใชใฉใฎใƒกใƒƒใ‚ปใƒผใ‚ธใƒ–ใƒญใƒผใ‚ซใƒผใ‚’ไป‹ใ—ใฆใ‚คใƒ™ใƒณใƒˆใ‚’็™บ่กŒใ—ใฆ่ณผ่ชญใ™ใ‚‹ๆ–นๆณ•ใง้€šไฟกใ—ใพใ™ใ€‚

    • ใ‚ตใƒผใ‚ญใƒƒใƒˆใƒ–ใƒฌใƒผใ‚ซใƒผ๏ผˆCircuit Breaker๏ผ‰๏ผšใ‚ใ‚‹ใ‚ตใƒผใƒ“ใ‚นใฎ้šœๅฎณใŒ้€ฃ้Ž–็š„ใซๅบƒใŒใ‚‹ใฎใ‚’้˜ฒใใŸใ‚ใซ้€š่ฉฑใ‚’็Ÿญ็ตกใ™ใ‚‹ใƒ‘ใ‚ฟใƒผใƒณใ€‚ๅค–้ƒจใ‚ตใƒผใƒ“ใ‚นใŒ็„กๅŠนใซใชใฃใฆใ„ใ‚‹ใจใ€ไธ€ๅฎšๆ™‚้–“ใฎๅ‘ผใณๅ‡บใ—ใ‚’ไธญๆญขใ—ใ€่ฟ…้€Ÿใชๅคฑๆ•—ใ‚’ๅผ•ใ่ตทใ“ใ—ใพใ™ใ€‚

    • ใƒ•ใ‚ฉใƒผใƒซใƒใƒƒใ‚ฏๅ‡ฆ็†๏ผšใ‚ตใƒผใ‚ญใƒƒใƒˆใƒ–ใƒฌใƒผใ‚ซใƒผใชใฉใŒไฝœๅ‹•ใ—ใŸใจใใฎๅฏพ็ญ–ใจใ—ใฆใ€ไปฃๆ›ฟๅฟœ็ญ”ใ‚„ๅ†่ฉฆ่กŒใƒญใ‚ธใƒƒใ‚ฏใ‚’ๆไพ›ใ™ใ‚‹ใƒ‘ใ‚ฟใƒผใƒณใงใ™ใ€‚้ƒจๅˆ†้šœๅฎณๆ™‚ใซใ‚ทใ‚นใƒ†ใƒ ใฎๅผพๅŠ›ๆ€งใ‚’้ซ˜ใ‚ใพใ™ใ€‚

    • ไฝ่ณ€ใƒ‘ใ‚ฟใƒผใƒณ๏ผšๅˆ†ๆ•ฃใ‚ตใƒผใƒ“ใ‚นใงใƒ‡ใƒผใ‚ฟใฎไธ€่ฒซๆ€งใ‚’็ถญๆŒใ™ใ‚‹ใŸใ‚ใฎๅˆ†ๆ•ฃใƒˆใƒฉใƒณใ‚ถใ‚ฏใ‚ทใƒงใƒณใƒ‘ใ‚ฟใƒผใƒณใ€‚ๅ„ใ‚ตใƒผใƒ“ใ‚นใฎใƒญใƒผใ‚ซใƒซใƒˆใƒฉใƒณใ‚ถใ‚ฏใ‚ทใƒงใƒณใ‚’ใ‚คใƒ™ใƒณใƒˆ/ใƒกใƒƒใ‚ปใƒผใ‚ธใซใƒชใƒณใ‚ฏใ—ใฆใ€ๆœ€็ต‚็š„ใชไธ€่ฒซๆ€งใ‚’็ขบไฟใ—ใพใ™ใ€‚

    • CQRS๏ผ†ใ‚คใƒ™ใƒณใƒˆใ‚ฝใƒผใ‚น๏ผšCQRS๏ผˆCommand Query Responsibility Segregation๏ผ‰ใฏ่ชญใฟๅ–ใ‚Šใจๆ›ธใ่พผใฟใƒขใƒ‡ใƒซใ‚’ๅˆ†้›ขใ—ใฆใ‚นใ‚ฑใƒผใƒฉใƒ“ใƒชใƒ†ใ‚ฃใ‚’้ซ˜ใ‚ใ‚‹ใƒ‘ใ‚ฟใƒผใƒณใงใ‚ใ‚Šใ€ใ‚คใƒ™ใƒณใƒˆใ‚ฝใƒผใ‚น๏ผˆEvent Sourcing๏ผ‰ใฏใ‚นใƒ†ใƒผใ‚ฟใ‚นๅค‰ๆ›ดใ‚’ใ‚คใƒ™ใƒณใƒˆใƒญใ‚ฐใซไฟๅญ˜ใ—ใฆๅฑฅๆญดใซๅŸบใฅใ„ใฆ็Šถๆ…‹ใ‚’ๅพฉๅ…ƒใ™ใ‚‹ใƒ‘ใ‚ฟใƒผใƒณใงใ™ใ€‚ไธ€็ท’ใซไฝฟ็”จใ•ใ‚Œใ€่ค‡้›‘ใชใƒ“ใ‚ธใƒใ‚นใฎใƒ‡ใƒผใ‚ฟใ‚’็ฎก็†ใ—ใพใ™ใ€‚

    • EDA๏ผš Event Driven Architectureใฏใ€ใ‚คใƒ™ใƒณใƒˆใฎ็”Ÿๆˆใ€ๆคœๅ‡บใ€ๆถˆ่ฒปใ€ใŠใ‚ˆใณไฝฟ็”จใ‚’ไธญๅฟƒใซใ‚ทใ‚นใƒ†ใƒ ใ‚’่จญ่จˆใ™ใ‚‹ใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใƒ‘ใ‚ฟใƒผใƒณใงใ™ใ€‚ใƒžใ‚คใ‚ฏใƒญใ‚ตใƒผใƒ“ใ‚นใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใฎใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใŒใ€Œใ‚คใƒ™ใƒณใƒˆใ€ใ‚’ไป‹ใ—ใฆไบ’ใ„ใซ้€šไฟกใ—ใฆ็›ธไบ’ไฝœ็”จใ™ใ‚‹ๆ–นๆณ•ใงใ™ใ€‚

    • BFF๏ผˆBackend for Frontend๏ผ‰๏ผš Webใ€ใƒขใƒใ‚คใƒซใชใฉใ€ใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ๅ›บๆœ‰ใฎใƒใƒƒใ‚ฏใ‚จใƒณใƒ‰ใ‚’ๆไพ›ใ™ใ‚‹ใƒ‘ใ‚ฟใƒผใƒณใงใ™ใ€‚ๅ„ใƒ•ใƒญใƒณใƒˆใ‚จใƒณใƒ‰ใฎใƒ‹ใƒผใ‚บใซๅˆใ‚ใ›ใŸๅฐ‚็”จAPIใƒฌใ‚คใƒคใƒผใ‚’ไฝœๆˆใ—ใ€ๅŠน็އๆ€งใจ้–‹็™บ็”Ÿ็”ฃๆ€งใ‚’้ซ˜ใ‚ใพใ™ใ€‚

    ไปŠใพใงใšใฃใจ้…ใ‚ŒใฆใใŸใ€ใ€ŒSpring Cloudใง้–‹็™บใ™ใ‚‹ใƒžใ‚คใ‚ฏใƒญใ‚ตใƒผใƒ“ใ‚นใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ๏ผˆMSA๏ผ‰ใ€่ฌ›็พฉใ‚’็šฎๅˆ‡ใ‚Šใซใ€ๆ—ขๅญ˜ใฎ่ฌ›็พฉใฎใ‚ณใƒณใƒ†ใƒณใƒ„ใ‚’ๆ›ดๆ–ฐใ—ใ‚ˆใ†ใจใ—ใฆใ„ใพใ™ใ€‚่ฌ›็พฉใ‚’ใ‚ชใƒผใƒ—ใƒณใ—ใŸๆŒ‡ๅฐŽๆ™‚้–“ใŒใ‹ใชใ‚Šๆตใ‚Œใ€ๆœ€ๆ–ฐใฎๅ†…ๅฎนใงๅ†ไฝœๆˆใ—ใชใ‘ใ‚Œใฐใ„ใ‘ใชใ„ใจใ„ใ†่€ƒใˆใ‚’็ถšใ‘ใฆใใพใ—ใŸใŒใ€ใ•ใ‚‰ใซ้…ใใชใ„ใ‚ˆใ†ใซๆ›ดๆ–ฐใ—ใ‚ˆใ†ใจใ—ใฆใ„ใพใ™ใ€‚

    ่ฌ›็พฉใซ้–ขๅฟƒใ‚’ๆŒใฃใฆใใ ใ•ใฃใŸๆ–นใ€…ใซใ‚‚ใ‚ˆใ‚ใ—ใใŠ้ก˜ใ„ใ—ใพใ™ใ€‚

    ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚

    1

๏ฟฅ13,936