Microservices in Action

Cf7b553387b247d737c60cfceabb2cea?s=47 Naoto Takai
December 09, 2015

Microservices in Action

マイクロサービスの概要と適用

Cf7b553387b247d737c60cfceabb2cea?s=128

Naoto Takai

December 09, 2015
Tweet

Transcript

  1. .JDSPTFSWJDFTͷ֓ཁͱద༻

  2. ઈࢍɺαʔϏε։ൃΤϯδχΞืूதͰ͢ʂ

  3. .JDSPTFSWJDFTͱ͸Կ͔ʁ

  4. None
  5. In short, the microservice architectural style is an approach to

    developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. — James Lewis and Martin Fowler
  6. Our main aim in writing this article is to explain

    the major ideas and principles of microservices. … We have recently built several systems using the style and know of others who have used and favor this approach. Those we know about who are in some way pioneering the architectural style include Amazon, Netflix, The Guardian, the UK Government Digital Service, realestate.com.au, Forward and comparethemarket.com. — James Lewis and Martin Fowler
  7. ͳΜ͔ͩ஌Βͳ͍͚Ͳɺ͜Μͳײ͡ͷ͍ͬͺ͍͋Δ ˠ͡Ό໊͋લΛ෇͚ͯهड़ͯ͠ΈΑ͏ʂ

  8. Banquet Cuisine Venue Banquet Cuisine Venue Banquet Cuisine Venue Load

    Balancer Venue Service Cuisine Service Banquete Service API Gateway Monolithic Architecture Microservices Architecture Database Database Database Database
  9. αʔϏεʹΑΔίϯϙʔωϯτԽʗϏδωεέΠύϏϦςΟ ʹجͮ͘૊৫ԽʗϓϩδΣΫτͰ͸ͳ͘ϓϩμΫτʗεϚʔ τΤϯυϙΠϯτɺμϜύΠϓʗ෼ࢄΨόφϯεʗ෼ࢄσʔ λ؅ཧʗΠϯϑϥετϥΫνϟࣗಈԽʗো֐ͷͨΊͷઃܭ ʗਐԽతઃܭ .JDSPTFSWJDFTʹΈΒΕΔ۝ͭͷಛ௃

  10. αʔϏεʹΑΔίϯϙʔωϯτԽ .POPMJUI"SDIJUFDUVSF Πϯϓϩηεͷϝιουݺ ͼग़͠ʢϥΠϒϥϦʣʹΑ ͬͯίϯϙʔωϯτͱͯ͠ ར༻͢Δɻ .JDSPTFSWJDFT"SDIJUFDUVSF ผϓϩηεͰಈ࡞͢Δαʔ ϏεΛωοτϫʔΫ௨৴ʹ Αͬͯίϯϙʔωϯτͱ͠

    ͯར༻͢Δɻ
  11. ϏδωεέΠύϏϦςΟʹجͮ͘૊৫Խ .POPMJUI"SDIJUFDUVSF ٕज़ϨΠϠʔʹج͍ͮͯν ʔϜΛ૊৫͢Δɻͦͷ݁ ՌɺΞϓϦέʔγϣϯ͸ٕ ज़ϨΠϠʔͰ෼ׂ͞ΕΔɻ .JDSPTFSWJDFT"SDIJUFDUVSF ϏδωεέΠύϏϦςΟʹ ج͍ͮͯαʔϏεΛ෼ׂ͢ ΔɻνʔϜ͸ΫϩεϑΝϯ

    ΫγϣφϧͱͳΔɻ
  12. ϓϩδΣΫτͰ͸ͳ͘ϓϩμΫτ .POPMJUI"SDIJUFDUVSF ΞϓϦέʔγϣϯ͸ɺϓϩ δΣΫτͱͯ͠։ൃ͞Ε Δɻ׬੒ޙʹνʔϜ͸ղࢄ ͠ɺӡ༻νʔϜʹҾ͖ܧ͕ ΕΔɻ .JDSPTFSWJDFT"SDIJUFDUVSF ΞϓϦέʔγϣϯ͸ɺϓϩ μΫτͱͯ͠։ൃ͞ΕΔɻ

    νʔϜ͸ɺӡ༻΋ؚΊαʔ Ϗεͷ͢΂ͯʹ੹೚Λ࣋ ͭɻ
  13. εϚʔτΤϯυϙΠϯτͱμϜύΠϓ .POPMJUI"SDIJUFDUVSF ૬ޓ઀ଓʹ&4#Λར༻͢ Δɻ&4#͸ϧʔςΟϯάɺ ίϨΦάϥϑΟɺτϥϯε ϑΥʔϝʔγϣϯͳͲચ࿅ ͞ΕͨػೳΛ࣋ͭɻ .JDSPTFSWJDFT"SDIJUFDUVSF ૬ޓ઀ଓʹ͸)551΍ܰྔ ϝοηʔδΩϡʔΛར༻͢

    Δɻܦ࿏͸୯७ͳμϜύΠ ϓͰΤϯυϙΠϯτͷΈ͕ ػೳΛ΋ͭɻ
  14. ෼ࢄΨόφϯε .POPMJUI"SDIJUFDUVSF ඪ४ԽʹΑͬͯɺͻͱͭͷ ٕज़ϓϥοτϑΥʔϜʹߜ ΓࠐΉɻ .JDSPTFSWJDFT"SDIJUFDUVSF αʔϏεຖʹ࠷దͳٕज़͕ બ୒͞ΕΔɻ·ͨɺඪ४Խ Ͱ͸ͳ͘Φʔϓϯιʔεత ͳ΍Γํ͕ͱΒΕΔɻ

  15. ෼ࢄσʔλ؅ཧ .POPMJUI"SDIJUFDUVSF ͻͱͭͷσʔλϕʔεΛΞ ϓϦέʔγϣϯʹΘͨͬͯ ڞ༗͢ΔɻҰ؏ੑ͸σʔλ ϕʔετϥϯβΫγϣϯʹ ΑΓ୲อ͞ΕΔɻ .JDSPTFSWJDFT"SDIJUFDUVSF σʔλ͸ʮڥք͚ͮΒΕͨ ίϯςΩετʯͰ෼ׂ͞Ε

    Δɻ·ͨɺϙϦάϩοτӬ ଓԽϞσϧɺ݁Ռ੔߹ੑ΋ ࠾༻͞ΕΔɻ
  16. ΠϯϑϥετϥΫνϟࣗಈԽ .POPMJUI"SDIJUFDUVSF ܧଓతσϦόϦ͕࣮ݱ͞Εɺ ࣗಈςετɺࣗಈσϓϩΠ ͳͲ͕࠾༻͞Ε͍ͯΔɻ .JDSPTFSWJDFT"SDIJUFDUVSF ܧଓతσϦόϦ͕࣮ݱ͞Εɺ ࣗಈςετɺࣗಈσϓϩΠ ͳͲ͕࠾༻͞Ε͍ͯΔɻ

  17. ো֐ͷͨΊͷઃܭ .POPMJUI"SDIJUFDUVSF ϚΠΫϩαʔϏεʹൺ΂ͯ ෳࡶ͞͸গͳ͍ɻΠϯϓϩ ηεͷݺͼग़͠Ͱ͸ϦΞϧ λΠϜͳ؂ࢹ͸ͦΕ΄Ͳॏ ཁͰ͸ͳ͍ɻ .JDSPTFSWJDFT"SDIJUFDUVSF ΞϓϦέʔγϣϯ͸αʔϏ εͷো֐ʹ଱ੑΛ࣋ͭΑ͏

    ʹઃܭ͞ΕΔɻαʔϏεؒ ݺͼग़͠ͷϦΞϧλΠϜͳ ؂ࢹ͕ॏཁͱͳΔɻ
  18. ਐԽతઃܭ .POPMJUI"SDIJUFDUVSF ܭըతઃܭ͕ͱΒΕ͕ͪɻ ͲΜͳมߋ΋ϑϧϏϧυͱ શମͷσϓϩΠ͕ඞཁͱͳ Δɻ .JDSPTFSWJDFT"SDIJUFDUVSF ਐԽతઃܭ͕࠾༻͞ΕΔɻ αʔϏε෼ׂ͸มԽΛՃ଎ ͤ͞ΔͨΊͷπʔϧͱͯ͠

    Έͳ͞ΕΔɻ
  19. Banquet Cuisine Venue Banquet Cuisine Venue Banquet Cuisine Venue Load

    Balancer Venue Service Cuisine Service Banquete Service API Gateway Monolithic Architecture Microservices Architecture Database Database Database Database
  20. ͍ͭ.JDSPTFSWJDFTΛద༻͢΂͖͔ʁ

  21. don’t even consider microservices unless you have a system that's

    too complex to manage as a monolith. — Martin Fowler
  22. IUUQNBSUJOGPXMFSDPNCMJLJ.JDSPTFSWJDF1SFNJVNIUNM

  23. ͜ΕͰɺNJDSPTFSWJDFT͕෼͔ͬͨਓʁ

  24. ࣮͸ɺ.BSUJO'PXMFSͷهࣄ͚ͩͰ͸ɺ NJDSPTFSWJDFTͷ࣮ଶ͸෼͔Γ·ͤΜʂ

  25. Banquet Cuisine Venue Banquet Cuisine Venue Banquet Cuisine Venue Load

    Balancer Venue Service Cuisine Service Banquete Service API Gateway Monolithic Architecture Microservices Architecture Database Database Database Database
  26. Service Service Service Microservices Architecture Service Service Service Service Service

  27. Service Service Service Microservices Architecture Service Service Service Service Service

    ೝূೝՄͲ͏͢Δͷʁ ௨৴ϓϩτίϧ͸ʁ αʔϏεσΟεΧόϦͲ͏͢Δʁ ઃఆมߋΛͲ͏؅ཧ͢Δʁ εϩοτϦϯάඞཁͩΑͶʁ Τϥʔ؂ࢹͲ͏͢Δʁ ϦΫΤετ͸࣮ࡍʹͲͷϊʔυͰॲཧ͞Εͨͷʁ ϘτϧωοΫͲ͜ʁ ϑΝϯΞ΢τͯ͠ϦΫΤετ૿͑ͯΔʁ αʔΩοτϒϨʔΧʔඞཁͩΑͶʁ ςετͲ͏͢Μͷʁ ίϯςφʁɹϋΠύʔόΠβʔʁ αʔϏεΠϯɾΞ΢τͲ͏͢Μͷʁ ৑௕ԽͲ͏͢Δʁ ฒྻϦΫΤετͲ͏͢Δʁ αʔϏεͷґଘؔ܎ͬͯʁ
  28. Service Service Service Microservices Architecture Service Service Service Service Service

    ೝূೝՄͲ͏͢Δͷʁ ௨৴ϓϩτίϧ͸ʁ αʔϏεσΟεΧόϦͲ͏͢Δʁ ઃఆมߋΛͲ͏؅ཧ͢Δʁ εϩοτϦϯάඞཁͩΑͶʁ Τϥʔ؂ࢹͲ͏͢Δʁ ϦΫΤετ͸࣮ࡍʹͲͷϊʔυͰॲཧ͞Εͨͷʁ ϘτϧωοΫͲ͜ʁ ϑΝϯΞ΢τͯ͠ϦΫΤετ૿͑ͯΔʁ αʔΩοτϒϨʔΧʔඞཁͩΑͶʁ ςετͲ͏͢Μͷʁ ίϯςφʁɹϋΠύʔόΠβʔʁ αʔϏεΠϯɾΞ΢τͲ͏͢Μͷʁ ৑௕ԽͲ͏͢Δʁ ฒྻϦΫΤετͲ͏͢Δʁ αʔϏεͷґଘؔ܎ͬͯʁ ͦ΋ͦ΋Կʹࠔͬͯͨͷʁ
  29. I am sorry to disappoint my fellow techies, but the

    reason we migrated to microservices had to do much more with productivity than pure technical matters. — Phil Calçado
  30. ࣄྫɿ/FUqJY

  31. w ಈը഑৴ͷձࣾͰ"84ͷେޱސ٬ w ΠϯλʔωοτͷଳҬͷΛ઎ΊΔ w .JDSPTFSWJDFTͷ୅දతࣄྫ w ελοΫΛ044ͱͯ͠ެ։

  32. None
  33. ڞ௨ϥϯλΠϜαʔϏεͱϥΠϒϥϦʔ ŠŠϚΠΫϩαʔϏεΛՃ଎͢ΔϥϯλΠϜίϯςφʔͱϥΠϒϥϦʔɺαʔϏεɻ Ϋϥ΢υϓϥοτϑΥʔϜ͸ɺ/FUqJYͷେ෦෼Λ઎ΊΔαʔϏε܈ͷجૅͰ͋ΓɺςΫϊϩδʔελοΫͰ͢ɻ Ϋϥ΢υϓϥοτϑΥʔϜ͸ɺΫϥ΢υαʔϏε΍ΞϓϦέʔγϣϯϥΠϒϥϦɺΞϓϦέʔγϣϯίϯς φ͔Βߏ੒͞Ε·͢ɻಛʹϓϥοτϑΥʔϜʹΑͬͯɺ&VSFLBʹΑΔαʔϏεσΟεΧόϦɺ"SDIBJVTʹΑΔ ෼ࢄઃఆ؅ཧɺ3JCCPOʹΑΔϨδϦΤϯεͰΠϯςϦδΣϯτͳϓϩηεʗαʔϏεؒ௨৴ͳͲ͕ɺఏڙ͞ Ε·͢ɻ୯ҰͷαʔϏεݺͼग़͠ʹͱͲ·Βͳ͍৴པੑΛఏڙ͢ΔͨΊʹɺ)ZTUSJYʹΑͬͯϥϯλΠϜͰಠ ཱͨ͠଱ϨΠςϯγͱ଱ো֐ੑ͕ఏڙ͞Ε·͢ɻ͜ΕΒͷϥΠϒϥϦʔ΍αʔϏε͸ɺ+7.ϕʔείϯςφͰ ͋Ε͹ͲͷΑ͏ͳ؀ڥͰ΋ಈ࡞͠·͢ɻ ·ͨɺϓϥοτϑΥʔϜ͸+7.ίϯςφαʔϏεΛɺ,BSZPOͱ(PWFSOBUPSɺඇ+BWBϥϯλΠϜ؀ڥ޲͚ʹ͸

    1SBOBαΠυΧʔʹΑΓɺఏڙ͠·͢ɻ1SBOB͕Πϯελϯε಺ͰϓϩΩγػೳΛఏڙ͢Δͷʹର͠ɺ;VVM ʢ)ZTUSJYͱ&VSFLBɺ3JCCPOͷϓϩηεؒ௨৴ػೳΛ౷߹͢Δ΋ͷʣ͸ɺΫϥ΢υ؀ڥͷڥքʹ͓͚Δಈతʹ εΫϦϓτʹΑ੍ͬͯޚՄೳͳϓϩΩγΛఏڙ͠·͢ɻ
  34. ύϧεͷϑΝϧγͷϧγ͕ύʔδͰ ίΫʔϯʘ ?P? ʗ

  35. ڞ௨ϥϯλΠϜαʔϏεͱϥΠϒϥϦʔ ŠŠϚΠΫϩαʔϏεΛՃ଎͢ΔϥϯλΠϜίϯςφʔͱϥΠϒϥϦʔɺαʔϏεɻ Ϋϥ΢υϓϥοτϑΥʔϜ͸ɺ/FUqJYͷେ෦෼Λ઎ΊΔαʔϏε܈ͷجૅͰ͋ΓɺςΫϊϩδʔελοΫͰ͢ɻ Ϋϥ΢υϓϥοτϑΥʔϜ͸ɺΫϥ΢υαʔϏε΍ΞϓϦέʔγϣϯϥΠϒϥϦɺΞϓϦέʔγϣϯίϯς φ͔Βߏ੒͞Ε·͢ɻಛʹϓϥοτϑΥʔϜʹΑͬͯɺ&VSFLBʹΑΔαʔϏεσΟεΧόϦɺ"SDIBJVTʹΑΔ ෼ࢄઃఆ؅ཧɺ3JCCPOʹΑΔϨδϦΤϯεͰΠϯςϦδΣϯτͳϓϩηεʗαʔϏεؒ௨৴ͳͲ͕ɺఏڙ͞ Ε·͢ɻ୯ҰͷαʔϏεݺͼग़͠ʹͱͲ·Βͳ͍৴པੑΛఏڙ͢ΔͨΊʹɺ)ZTUSJYʹΑͬͯϥϯλΠϜͰಠ ཱͨ͠଱ϨΠςϯγͱ଱ো֐ੑ͕ఏڙ͞Ε·͢ɻ͜ΕΒͷϥΠϒϥϦʔ΍αʔϏε͸ɺ+7.ϕʔείϯςφͰ ͋Ε͹ͲͷΑ͏ͳ؀ڥͰ΋ಈ࡞͠·͢ɻ ·ͨɺϓϥοτϑΥʔϜ͸+7.ίϯςφαʔϏεΛɺ,BSZPOͱ(PWFSOBUPSɺඇ+BWBϥϯλΠϜ؀ڥ޲͚ʹ͸

    1SBOBαΠυΧʔʹΑΓɺఏڙ͠·͢ɻ1SBOB͕Πϯελϯε಺ͰϓϩΩγػೳΛఏڙ͢Δͷʹର͠ɺ;VVM ʢ)ZTUSJYͱ&VSFLBɺ3JCCPOͷϓϩηεؒ௨৴ػೳΛ౷߹͢Δ΋ͷʣ͸ɺΫϥ΢υ؀ڥͷڥքʹ͓͚Δಈతʹ εΫϦϓτʹΑ੍ͬͯޚՄೳͳϓϩΩγΛఏڙ͠·͢ɻ
  36. ରԠσόΠε͕ଟ͘ɺϝϞϦ͕ݶΒΕͨσόΠε ΋͋Δɻ·ͨɺϞόΠϧར༻΋૝ఆͯ͠ɺ௨৴ճ ਺ΛݮΒ͍ͨ͠ɻ

  37. ΫϥΠΞϯτ 3&45GVM"1* Ϧιʔε 3&45GVM"1* Ϧιʔε 3&45GVM"1* Ϧιʔε 3FTPVSDFCBTFE"1* ΫϥΠΞϯτ͕ϦιʔεΛऩूɾ ੔ܗͯ͠දࣔ

  38. ΫϥΠΞϯτ 3&45GVM"1* Ϧιʔε 3&45GVM"1* Ϧιʔε 3&45GVM"1* Ϧιʔε "1*(BUFXBZ &YQFSJFODFCBTFE"1* ;VVMΫϥ΢υ؀ڥͷڥքʹ͓͚Δಈతʹ

    εΫϦϓτʹΑ੍ͬͯޚՄೳͳϓϩΩγ "1*(BUFXBZ͕ϦιʔεΛऩूɾ ੔ܗɺΫϥΠΞϯτ͕දࣔ
  39. Ұ෦ͷαʔϏεͷো֐Λશମʹ೾ٴͤ͞Δ͜ͱͳ͘ αʔϏεશମͷϨδϦΤϯεΛߴΊ͍ͨɻ

  40. ΫϥΠΞϯτ 3&45GVM"1* Ϧιʔε 3&45GVM"1* Ϧιʔε 3&45GVM"1* Ϧιʔε "1*(BUFXBZ ͻͱͭͷαʔϏεʹো֐͕͋Δͱ શମͷαʔϏε͕ো֐ͱͳΔ

    Մ༻ੑͷαʔϏε͕ݸ ʹˠ ʹສϦΫΤετˠສΤϥʔ
  41. ΫϥΠΞϯτ 3&45GVM"1* Ϧιʔε 3&45GVM"1* Ϧιʔε 3&45GVM"1* Ϧιʔε "1*(BUFXBZ )ZTUSJY଱ϨΠςϯγͱ଱ো֐ੑ αʔϏεϨϕϧͷάϨʔεϑϧɾ

    σάϨʔγϣϯΛ࣮ݱ ϑΣΠϧϑΝετʗϑΣΠϧαΠϨϯτʗϑΥʔϧ όοΫɺαʔΩοτϒϨʔΧʔ
  42. αʔϏε਺͕૿͑ΔʹͭΕͯ ಺෦ϩʔυόϥϯαʔͷ؅ཧ͕ࠔ೉ʹͳΔ

  43. ϩʔυόϥϯα "1*(BUFXBZ αʔϏε ϊʔυ αʔϏε ϊʔυ αʔϏε ϊʔυ αʔϏεͷ਺͚ͩ಺෦ϩʔυόϥϯαΛ؅ཧ͢Δ
 ඞཁ͕͋Δ

    ಺෦ϩʔυόϥϯα
  44. "1*(BUFXBZ αʔϏε ϊʔυ αʔϏε ϊʔυ αʔϏε ϊʔυ 3JCCPOΫϥΠΞϯταΠυϩʔυόϥ ϯγϯάʹΑΔϨδϦΤϯεͰΠϯςϦ δΣϯτͳϓϩηεʗαʔϏεؒ௨৴

    ΫϥΠΞϯταΠυ
 ϩʔυόϥϯγϯά
  45. ϊʔυΛ௥Ճ͢Δ͚ͩͰαʔϏεΛ εέʔϧͰ͖ΔΑ͏ʹ͢Δ

  46. &VSFLBαʔϏεσΟεΧόϦʹΑΔ
 ಈతͳϊʔυͷొ࿥ͱཁٻ "1*(BUFXBZ αʔϏε ϊʔυ αʔϏε ϨδετϦ ొ࿥ Ұཡ αʔϏεϨδετϦʹΑΔ


    σΟεΧόϦ
  47. ,BSZPOαʔϏεϨδετϦ΁ͷొ࿥ͳͲΛ
 ఏڙ͢Δ+7.ίϯςφαʔϏε αʔϏε ϨδετϦ ొ࿥ ϔϧενΣοΫ ίϯςφαʔϏε ΞϓϦέʔγϣϯ ίϯςφαʔϏεͷಋೖ

  48. 1SBOBαΠυΧʔύλʔϯ ʹΑΓଞαʔϏεϊʔυʹ ରͯ͠Πϯελϯε಺Ͱϓ ϩΩγػೳΛఏڙ αʔϏε ϨδετϦ 1SBOB BQQSC αʔϏε ϊʔυ

    αʔϏε ϊʔυ ϦΫΤετ ϦΫΤετ ొ࿥ ϔϧενΣοΫ ϦΫΤετ ϔϧε νΣοΫ αΠυΧʔύλʔϯ
  49. ;VVM 3JCCPO )ZTUSJY &VSFLB ,BSZPO 1SBOB ϦΫΤετ ΫϥΠΞϯτ ΞϓϦέʔγϣϯ "1*(BUFXBZ

    αʔϏε ϨδετϦ Ϩεϙϯε ొ࿥ ϦΫΤετ Ұཡ Ϩεϙϯε ΞϓϦέʔγϣϯ ίϯςφαʔϏε ΞϓϦέʔγϣϯ ίϯςφαʔϏε ϩʔυόϥϯγϯάʴ ଱ϨΠςϯγɾ଱ো֐ϨΠϠʔ ϦΫΤετͷͳ͕Ε
  50. ࣄྫɿ$PPLQBE

  51. w ϨγϐαΠτͰ"84ͷސ٬ w ʙ୅ঁੑͷ΄ͱΜͲ͕ར༻ w ࠃ಺Ͱ͸3VCZPO3BJMTͷ୅දతࣄྫ w ελοΫΛ044ͱͯ͠ެ։

  52. None
  53. w ࣄۀྖҬ͕֦େ͠αʔϏε͕૿͑ΔʹͭΕͯɺ σʔλ࿈ܞͷχʔζ͕ߴ·͖ͬͯͨ w ϞόΠϧΞϓϦͷ୆಄ʹΑͬͯϞόΠϧϑΝʔ ετΛલఏͱͨ͠։ൃʢʹ"1*લఏʣ͕ॏཁʹ ͳ͖ͬͯͨ

  54. w ෳ਺αϒγεςϜؒͰͷίʔυͷڞ༗ʹΑΓί ʔυϕʔε͕ڊେʹͳΓɺશମ͕೺ѲͰ͖ͳ͍ w ܧଓతΠϯςάϨʔγϣϯͰ෼ؒϏϧυΛक ΔͨΊʹଟେͳίετ͕͔͔Δ w Ұ෦ػೳͷͨΊʹશମͷσϓϩΠϝϯτ͕Ͱ͖ ͳ͔ͬͨΓɺϩʔϧόοΫ͢Δඞཁ͕ൃੜ͢Δ

  55. .POPMJUIJDBSDIJUFDUVSFͷ΋ͱͷෳࡶੑͷݶք ˠ.JDSPTFSWJDFTBSDIJUFDUVSF΁ͷ଩औΓ

  56. ͍͔ʹͯ͠"1*Λఏڙ͢Δ͔ʁ ˠ3&45GVM)ZQFSNFEJB"1*ͷಋೖ

  57. (BSBHF w )"5&0"4ʹݱ࣮తͳϨϕϧͰରԠ w 3VCZPO3BJMTʹϦιʔεͷ֓೦Λಋೖ͢Δ
 ʹઃܭࢥ૝ɾγϦΞϥΠθʔγϣϯܗࣜͷ౷Ұ w 0"VUIͱ౷߹͞ΕͨΞΫηε੍ޚ w ಉ͡ΫϥΠΞϯτϥΠϒϥϦ͕ར༻Մೳ

  58. ࣮ࡍʹ"1*࿈ܞͯ͠ΈΔͱʜʜ w Ұ෦ͷαʔϏεো֐͕શମʹ೾ٴͯ͠͠·͏ w αʔϏεؒ௨৴͕஗͍ ˠΫϥΠΞϯτʹ଱ো֐ੑɺ଱ϨΠςϯγʔ͕ඞཁ ˠΫϥΠΞϯτʹฒྻϦΫΤετػೳ͕ඞཁ

  59. &YQFEJUPS w /FUqJYͷIZTUSJYΛΠϯεύΠΞ w ඇಉظ࣮ߦɺϑΥʔϧόοΫɺλΠϜΞ΢τɺ ϦτϥΠɺεϨουϓʔϧɺαʔΩοτϒϨΠ ΧʔͳͲΛ࣮૷

  60. ϩʔυόϥϯαʔʢ&-#ʣΛར༻͍͕ͯͨ͠ʜʜ w αʔϏεͷ਺͚ͩ಺෦ϩʔυόϥϯαʔ͕ඞཁͱ ͳΓɺ؅ཧίετ͕૿େ͢Δ w શମͷαʔϏεϨϕϧ͕&-#ʹґଘͯ͠͠·͏ ˠ&-#͔ΒΫϥΠΞϯταΠυϩʔυόϥϯγϯά΁

  61. Load Balancer ELB Service Service Client ELB Service Service

  62. Client-side Load Balancing Client HAProxy Service HAProxy Service HAProxy Service

    HAProxy Service HAProxy
  63. ΫϥΠΞϯτϩʔυόϥϯγϯάΛಋೖ͕ͨ͠ʜʜ w αʔϏεϊʔυͷ௥Ճ࣌ʹશϊʔυͷ)"1SPYZͷ ઃఆΛมߋ͢Δඞཁ͕͋Δ ˠ෼ࢄઃఆ؅ཧͷಋೖ

  64. ෼ࢄઃఆ؅ཧ w FUDE ʜઃఆ৘ใ؅ཧͷͨΊͷσʔϞϯ w FUDWBVMUʜಁաతͳ҉߸ԽΛఏڙ w FUDFOW ʜEPUFOWɺEPDLFSFOWϑΝΠϧʹରԠ

  65. αʔϏεΛؾܰʹ௥ՃͰ͖ΔΑ͏ʹͳ͕ͬͨʜʜ w αʔϏε͝ͱɺεςʔδ͝ͱʢ։ൃɾςετɾε ςʔδϯάɾϓϩμΫγϣϯɾόονʣͷ؀ڥߏ ங͕൥ࡶʹͳͬͯ͠·͏ ˠ%PDLFSίϯςφʔͷར༻֦େ

  66. ؀ڥߏங͸ίϯςφʔԽ͞Ε͕ͨʜʜ w αʔϏεؒ࿈ܞͷςετ͕೉͍͠ w ϞοΫΛར༻͢ΔͱαʔόαΠυͷมߋʹؾ෇͘ ͜ͱ͕Ͱ͖ͣʹࣦഊ͢Δ ˠ3BDL7$3ͷಋೖ

  67. 3BDL7$3 w 7$3͸ϦΫΤετϞοΫ༻ϥΠϒϥϦ w αʔόαΠυ͕ΫϥΠΞϯτʹ͔ͭΘ͍ͤͨσʔ λΛੜ੒͓ͯ͘͠ w ΫϥΠΞϯταΠυ͸ςετલʹςετσʔλΛ μ΢ϯϩʔυ͔ͯ͠ΒςετΛ࣮ߦ

  68. .JDSPTFSWJDFTద༻ͷϙΠϯτ

  69. αʔϏεʹΑΔίϯϙʔωϯτԽʗϏδωεέΠύϏϦςΟ ʹجͮ͘૊৫ԽʗϓϩδΣΫτͰ͸ͳ͘ϓϩμΫτʗεϚʔ τΤϯυϙΠϯτɺμϜύΠϓʗ෼ࢄΨόφϯεʗ෼ࢄσʔ λ؅ཧʗΠϯϑϥετϥΫνϟࣗಈԽʗো֐ͷͨΊͷઃܭ ʗਐԽతઃܭ .JDSPTFSWJDFTʹΈΒΕΔ۝ͭͷಛ௃

  70. Service Service Service Microservices Architecture Service Service Service Service Service

    ೝূೝՄͲ͏͢Δͷʁ ௨৴ϓϩτίϧ͸ʁ αʔϏεσΟεΧόϦͲ͏͢Δʁ ઃఆมߋΛͲ͏؅ཧ͢Δʁ εϩοτϦϯάඞཁͩΑͶʁ Τϥʔ؂ࢹͲ͏͢Δʁ ϦΫΤετ͸࣮ࡍʹͲͷϊʔυͰॲཧ͞Εͨͷʁ ϘτϧωοΫͲ͜ʁ ϑΝϯΞ΢τͯ͠ϦΫΤετ૿͑ͯΔʁ αʔΩοτϒϨʔΧʔඞཁͩΑͶʁ ςετͲ͏͢Μͷʁ ίϯςφʁɹϋΠύʔόΠβʔʁ αʔϏεΠϯɾΞ΢τͲ͏͢Μͷʁ ৑௕ԽͲ͏͢Δʁ ฒྻϦΫΤετͲ͏͢Δʁ αʔϏεͷґଘؔ܎ͬͯʁ
  71. w ઌୡͨͪͷ஌ݟΛ׆༻͢Δ w ·͡Ίʹٕज़తͳ͜ͱʹऔΓ૊Ή w ʢ΋͘͠͸ɺ"84͕Կͱ͔͢ΔͷΛ଴ͭʣ

  72. ઈࢍɺαʔϏε։ൃΤϯδχΞืूதͰ͢ʂ