Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Team-Changing Magic of Architecture

hiroga
June 13, 2019

The Team-Changing Magic of Architecture

保険APIのアーキテクチャを片づけたらチームがときめき出した話です。

hiroga

June 13, 2019
Tweet

More Decks by hiroga

Other Decks in Technology

Transcript

  1. SUMMIT
    © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    νʔϜ͕ͱ͖Ί͘ΞʔΩςΫνϟͷຐ๏
    อݥ"1*ͷϚΠΫϩαʔϏεΛย͚ͮͨ࿩
    খּݪ׮໌
    ΤϯδχΞ
    גࣜձࣾKVTU*O$BTF

    View Slide

  2. جຊ৘ใ
    ઃཱ೥݄
    ࢿຊۚԯԁ
    ैۀһ਺໊
    ࣄۀ಺༰
    গֹ୹ظอݥۀ
    ؔ౦ࡒ຿ہ௕
    ʢগֹ୹ظอݥۀʣ
    ୈ߸

    View Slide

  3. 3
    .JTTJPO
    ʮอݥͰࣾձΛ"DUJWFʹʯ

    View Slide

  4. View Slide

  5. View Slide

  6. ͱ͖Ί͔ͳ͍
    ϚΠΫϩαʔϏε

    View Slide

  7. 7
    保険APIの課題
    行方不明のロジック
    動かせないテスト
    怖いデプロイ

    View Slide

  8. 8
    อݥ"1*ͷ՝୊
    13Λग़ͤΔΑ͏ʹͳΔ·Ͱϲ݄

    View Slide

  9. 9
    อݥ"1*ͷ՝୊
    อݥ঎඼߸ͷϦϦʔε͕ϲ݄஗Ԇ
    13Λग़ͤΔΑ͏ʹͳΔ·Ͱϲ݄

    View Slide

  10. 10
    ย͚ͮޙͷΞʔΩςΫνϟ
    AWS Cloud
    Private subnet
    ECS Cluster
    AWS
    Lambda
    Mobile
    client Amazon API Gateway NLB
    Amazon
    Cognito
    VPC
    VPC Link
    Amazon RDS
    AWS Cloud
    Map
    Microservice #1
    ECS Cluster
    NLB
    Microservice #2
    Private
    Lambda
    Authorizer
    Authentication / Authorization
    Microservice #3
    Authlete
    ※外部サービス

    View Slide

  11. 11
    ย͚ͮޙͷΞʔΩςΫνϟ
    AWS Cloud
    Private subnet
    ECS Cluster
    AWS
    Lambda
    Mobile
    client Amazon API Gateway NLB
    Amazon
    Cognito
    VPC
    VPC Link
    Amazon RDS
    AWS Cloud
    Map
    Microservice #1
    ECS Cluster
    NLB
    Microservice #2
    Private
    Lambda
    Authorizer
    Authentication / Authorization
    Microservice #3
    Authlete
    ※外部サービス
    ย͚ͮͷϙΠϯτ
    ςετΛॻ͖ͨ͘ͳΔ
    σϓϩΠ͕ͨ͘͠ͳΔ

    View Slide

  12. ย͚ͮͷࢀߟʹͨ͠ͷ͸ɺ͜Μ·Γ͞ΜʜͰ͸ͳ͘

    View Slide

  13. 13
    All teams will henceforth expose their data and
    functionality through service interfaces…
    …Anyone who doesn't do this will be fired.
    出典: Stevey's Google Platforms Rant
    https://web.archive.org/web/20180305144440/https://plus.google.com/112678702228711889851/posts/eVeouesvaVX
    Jeff Bezos
    (2002?)

    View Slide

  14. 14
    શͯͷνʔϜ͸αʔϏεΠϯλʔϑΣʔεΛ௨ͯ͡
    શͯͷσʔλͱػೳΛެ։͢Δ͜ͱɻ
    ʢதུʣͦ͏͠ͳ͍ऀ͸ղޏ͞ΕΔɻ
    出典: Stevey's Google Platforms Rant
    https://web.archive.org/web/20180305144440/https://plus.google.com/112678702228711889851/posts/eVeouesvaVX
    Jeff Bezos
    (2002?)

    View Slide

  15. 15
    ͜Ε·Ͱ
    ܖ໿؅ཧ
    &$4$MVTUFS
    &$4λεΫɾ-BNCEBͷ௚઀ݺͼग़͠ ؀ڥ͝ͱʹҧ͏ΤϯυϙΠϯτ
    อݥྉܭࢉ
    &$4$MVTUFS
    "84 -BNCEB
    νϟοτ

    View Slide

  16. 16
    ย͚ͮޙ
    AWS Cloud
    Private subnet
    ECS Cluster
    AWS
    Lambda
    Mobile
    client Amazon API Gateway NLB
    Amazon
    Cognito
    VPC
    VPC Link
    AWS Cloud
    Map
    Microservice #1
    ECS Cluster
    NLB
    Microservice #2
    Private
    Lambda
    Authorizer
    Authentication / Authorization
    Microservice #3
    Authlete
    ※外部サービス

    View Slide

  17. 17
    ย͚ͮޙ
    ܖ໿؅ཧ
    &$4$MVTUFS
    ϩʔΧϧͱಉ͘͡)551௨৴ Ͳͷ؀ڥͰ΋ಉ͡ΤϯυϙΠϯτ
    อݥྉܭࢉ
    &$4$MVTUFS
    "84 -BNCEB
    νϟοτ
    "84$MPVE.BQ

    View Slide

  18. 18
    ͜Ε·Ͱ
    &$4$MVTUFS
    ςετͷͨͼʹೝূ ΞϓϦέʔγϣϯͰೝূɾೝՄ
    5FTU$MJFOU
    ػೳςετ
    αΠϯΠϯ
    αΠϯΞ΢τ

    View Slide

  19. 19
    ย͚ͮޙ
    AWS Cloud
    Private subnet
    ECS Cluster
    AWS
    Lambda
    Mobile
    client Amazon API Gateway NLB
    Amazon
    Cognito
    VPC
    VPC Link
    Amazon RDS
    AWS Cloud
    Map
    Microservice #1
    ECS Cluster
    NLB
    Microservice #2
    Private
    Lambda
    Authorizer
    Authentication / Authorization
    Microservice #3
    Authlete
    ※外部サービス

    View Slide

  20. 20
    ย͚ͮޙ
    &$4$MVTUFS
    ೝূͳ͠Ͱ͙͢ςετ ΞϓϦέʔγϣϯͰೝূɾೝՄෆཁ
    5FTU$MJFOU
    ػೳςετ

    View Slide

  21. 21
    ςετ͕ॻ͖ͨ͘ͳΔ
    ˞ͳ͓"84-BNCEBͷ৔߹͸4".-PDBMΛར༻ͯ͠ݕূ͍ͯ͠·͢ɻ
    ɾϩʔΧϧͰ΋ಉ͡Α͏ʹಈ͘
    ɾαΠϯΠϯͳ͠Ͱ͙͢ςετ

    View Slide

  22. 22
    ςετ͕ॻ͖ͨ͘ͳΔ
    ˞ͳ͓"84-BNCEBͷ৔߹͸4".-PDBMΛར༻ͯ͠ݕূ͍ͯ͠·͢ɻ
    ɾΞϓϦέʔγϣϯΤϯδχΞ൒೥ؒͰ໊Λ࠾༻
    13ͷNFSHF·Ͱͷฏۉ೔਺͕໿೔ˠ೔
    ɾϩʔΧϧͰ΋ಉ͡Α͏ʹಈ͘
    ɾαΠϯΠϯͳ͠Ͱ͙͢ςετ

    View Slide

  23. 23
    "84
    $MPVE'PSNBUJPO
    ͜Ε·Ͱ
    #JU#VDLFU
    13 NFSHF QVMM SVO
    Կ͕σϓϩΠ͞Ε͍ͯΔͷ͔ෆ໌ σϓϩΠ͕ख࡞ۀ

    View Slide

  24. 24
    "84
    $MPVE'PSNBUJPO
    ย͚ͮޙ
    $JSDMF$*
    #JU#VDLFU
    13 NFSHF JOUFHSBUJPO SVO
    NBTUFSϒϥϯν ࠷৽ͷελοΫ $MPVE'PSNBUJPOͷ஌ࣝෆཁͰσϓϩΠ

    View Slide

  25. 25
    σϓϩΠ͕ͨ͘͠ͳΔ
    ɾ$*ͷͨΊʹελοΫΛ੔ཧ
    ɾNFSHFͨ͠ΒࣗಈͰσϓϩΠ

    View Slide

  26. 26
    σϓϩΠ͕ͨ͘͠ͳΔ
    σϓϩΠճ਺͕ฏۉճ೔ʹʂ
    ʢdͷฏۉ஋ʣ
    ɾ$*ͷͨΊʹελοΫΛ੔ཧ
    ɾNFSHFͨ͠ΒࣗಈͰσϓϩΠ

    View Slide

  27. 27
    ΞʔΩςΫνϟͷຐ๏
    νʔϜ͕ͱ͖Ί͘

    View Slide

  28. 28
    ΞʔΩςΫνϟͷຐ๏
    ɾϝϯόʔ͕൒೥Ͱഒ
    ɾ13ΛNFSHF͢Δ·ͰͷظؒΛ೔୹ॖ
    ɾσϓϩΠͷճ਺͕ճ೔

    View Slide

  29. 29
    ΞʔΩςΫνϟͷຐ๏
    ϲ݄ͷػೳͷϦϦʔε਺͕໿ഒ
    ໿ຊˠຊ݄

    ɾϝϯόʔ͕൒೥Ͱഒ
    ɾ13ΛNFSHF͢Δ·ͰͷظؒΛ೔୹ॖ
    ɾσϓϩΠͷճ਺͕ճ೔
    ͔͠΋৽ػೳͷׂ͸৽ϝϯόʔ͕࣮૷

    View Slide

  30. 30
    ·ͱΊ
    ΞʔΩςΫνϟΛย͚ͮ

    View Slide

  31. 31
    ·ͱΊ
    ςετ͕ॻ͖ͨ͘ͳΔˍσϓϩΠ͕ͨ͘͠ͳΔ
    ΞʔΩςΫνϟΛย͚ͮ

    View Slide

  32. 32
    ·ͱΊ
    ςετ͕ॻ͖ͨ͘ͳΔˍσϓϩΠ͕ͨ͘͠ͳΔ
    νʔϜ͕ͱ͖Ί͘
    ΞʔΩςΫνϟΛย͚ͮ

    View Slide

  33. 33
    WE ARE HIRING!!!
    ɾ޿ใ
    ɾϦʔυσβΠφʔ
    ɾϑϩϯτΤϯυΤϯδχΞ
    ɾSRE
    ɾBisDevʴ๏ਓӦۀ

    View Slide

  34. 34
    Thank you!
    Licenses:
    ・developer icon: created by Creative Stall from Noun Project
    ・Photo of network cable: www.brianchristner.io

    View Slide