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

API開発で私たちが やってきたこと・やっていくこと / CITS Open Seminor #55

API開発で私たちが やってきたこと・やっていくこと / CITS Open Seminor #55

HikaruMaruyama

June 21, 2017
Tweet

More Decks by HikaruMaruyama

Other Decks in Programming

Transcript

  1. API։ൃͰࢲ͕ͨͪ
    ΍͖ͬͯͨ͜ͱɾ΍͍ͬͯ͘͜ͱ
    2017/6/21
    גࣜձࣾϰΝϧݚڀॴ ؙࢁͻ͔Δ

    View Slide

  2. Profile
    גࣜձࣾϰΝϧݚڀॴ
    ؙࢁͻ͔Δ
    ςΫχΧϧΤόϯδΣϦετ
    ਆಸ઒ݝ૬໛ݪࢢࡏॅ
    IJLBSVNBSVZBNB
    NBSVZBNBIJBLSV
    IUUQIJJJJJJJIJLBSVIBUFOBEJBSZDPN

    View Slide

  3. View Slide

  4. ͪΐͬͱ͚ͩ
    ձࣾ঺հ

    View Slide

  5. View Slide

  6. ܦ࿏୳ࡧ
    ৐׵Ҋ಺
    ͱฉ͍ͯɺࢥ͍ු͔ͿϞϊ͸ʁ

    View Slide

  7. View Slide

  8. View Slide

  9. Ӻ͢ͺ͋ͱͷWebAPI
    Ӻ͢ͺ͋ͱWebαʔϏε

    View Slide

  10. ɾ2010೥ʹαʔϏεΠϯ
    ɾӺ͢ͺ͋ͱͷػೳΛWebAPIͱͯ͠ఏڙ
    ɾREST API
    ɾࣗࣾαʔϏεͷج൫ͱ΋ͳ͍ͬͯΔ
    ɾDailyΞΫηε͸ɺ಺֎߹Θͤͯ1,300ສఔ౓
    ʢ2017/3ݱࡏʣ
    ɾ͜͜਺೥ͷ੒௕཰͸લ೥ൺ̎ഒҎ্Λҡ࣋
    Ӻ͢ͺ͋ͱWebαʔϏε

    View Slide

  11. ࠓ೔ͷ͓࿩ɿ
    Ӻ͢ͺ͋ͱwebαʔϏεͰ
    ɾಋೖ͍ͯ͠Δπʔϧ
    ɾ࣮ફ͍ͯ͠Δ։ൃϓϩηε
    ɾDevRel׆ಈ
    ʹ͍ͭͯ঺հ͠·͢

    View Slide

  12. API։ൃΛ͍ͯ͠Δ/͢Δ༧ఆͷํ
    ʹݶΒͣɺ৭Μͳਓͱ
    ৘ใަ׵Ͱ͖ͨΒ͍͍ͳͱ
    ࢥ͍ͬͯ·͢

    View Slide

  13. ɾಋೖ͍ͯ͠Δπʔϧ
    ɾ࣮ફ͍ͯ͠Δ։ൃϓϩηε
    ɾDevRel׆ಈ

    View Slide

  14. ɾಋೖ͍ͯ͠Δπʔϧ
    ɾ࣮ફ͍ͯ͠Δ։ൃϓϩηε
    ɾDevRel׆ಈ

    View Slide

  15. ಋೖ͍ͯ͠Δπʔϧ

    View Slide

  16. ϙΠϯτɿ
    ίΞͷՁ஋޲্ʹूத͢ΔͨΊʹ
    ͢Ͱʹੈͷதʹ͋Δ΋ͷ͸
    “ͳΔ΂͘”࡞Βͳ͍

    View Slide

  17. ྑ͍αʔϏεΛ࡞Δʹ͸
    ྑ͍αʔϏεΛ஌Δ

    View Slide

  18. ɾ؂ࢹ
    ɾϩάपΓ
    ɾ͓໰͍߹Θͤ
    ɾίϛϡχέʔγϣϯ

    View Slide

  19. ؂ࢹ
    • pingdomͰ֎ܗ؂ࢹ
    • mackerelͰCPUϞχλϦϯά
    • PagerDutyͱpingdomΛ࿈ܞ
    ͯ͠Ξϥʔτ௨஌
    • StatusPageͱpingdomΛ࿈ܞ
    ͯ͠΢Σϒ্ʹঢ়ଶՄࢹԽ
    • ϥζύΠͱpingdomΛར༻͠
    ͓ͯख੡ͷΤΫετϦʔϜ
    ϑΟʔυόοΫσόΠε(ޙड़)

    View Slide

  20. ϩάपΓ
    • elasticsearch+kibana
    ͰAWS ELBϩάՄࢹԽ
    • AWS Lambda+AWS
    Kinesis Stream Ͱ
    elasticsearchʹELBͷϩ
    άΛΠϯϙʔτ

    View Slide

  21. ͓໰͍߹Θͤ
    GithubͷissueͰ
    ໰͍߹Θͤ؅ཧ
    ओʹٕज़తͳ಺༰
    Ϣʔβͷ૭ޱ
    ͍͍ͩͨͷ໰͍߹Θͤ
    ͸ͪ͜ΒͰٵऩ
    αϙʔτ͸ແྉ
    ʢΦϓγϣϯྉۚͳ͠ʣ
    Ϣʔβ αϙʔτɾӦۀ ։ൃ

    View Slide

  22. Github IssueͰ໰͍߹Θͤ؅ཧ
    • Ҏલ͸Redmineͷνέοτ
    • υΩϡϝϯτڞ༗΋RedmineͰߦͳ͍͕ͬͯͨɺesaʹҠߦ
    • νέοτ͚ͩੜ͖ͯΔঢ়ଶʹ
    • Github issueʹҠߦ
    • ଞπʔϧͱͷ࿈ܞͷ͠΍͢͞

    View Slide

  23. ίϛϡχέʔγϣϯʹslack
    • Ҏલ͸GoogleϋϯάΞ΢τ
    • άϧʔϓνϟοτͩͱɺϝϯγϣϯඈ͹ͤͳ͍ͷ͕ෆ

    • ίʔυషΓ෇͚ͨ࣌ͷՄಡੑͷແ͞…
    • slack
    • ͔Ώ͍ͱ͜Ζʹख͕ಧ͘ײ͡
    • ଞαʔϏεͱͷ࿈ܞɺจࣈͷ૷০ɺֆจࣈɺbot…
    • 2016೥͋ͨΓ͔Βશࣾಋೖ

    View Slide

  24. ɾಋೖ͍ͯ͠Δπʔϧ
    ɾ࣮ફ͍ͯ͠Δ։ൃϓϩηε
    ɾDevRel׆ಈ

    View Slide

  25. ։ൃϓϩηε

    View Slide

  26. ɾՄࢹԽ
    ɾKAIZEN DAY
    ɾࣾ֎޲͚

    APIυΩϡϝϯτվળ
    ɾϞϒϓϩάϥϛϯά

    View Slide

  27. ݟ͑ΔԽ

    View Slide

  28. Χϯόϯ

    View Slide

  29. Χϯόϯ
    Χϯόϯͷ໨త
    “ࣗ෼͕΍͍ͬͯΔ͜ͱΛνʔϜʹࣔ͢”

    View Slide

  30. ؂ࢹπʔϧ
    Ի͕໐ΔΑʂ

    View Slide

  31. ؂ࢹ
    • pingdomͰ֎ܗ؂ࢹ
    • mackerelͰCPUϞχλϦϯά
    • PagerDutyͱpingdomΛ࿈ܞ
    ͯ͠Ξϥʔτ௨஌
    • StatusPageͱpingdomΛ࿈ܞ
    ͯ͠΢Σϒ্ʹঢ়ଶՄࢹԽ
    • ϥζύΠͱpingdomΛར༻͠
    ͓ͯख੡ͷΤΫετϦʔϜ
    ϑΟʔυόοΫσόΠε(ޙड़)

    View Slide

  32. ΞϓϦέʔγϣϯߏ੒ਤɾ࿦ཧߏ੒ਤ

    View Slide

  33. VSM
    (όϦϡʔετϦʔϜϚοϓ)

    View Slide

  34. αʔϏεར༻ؔ࿈ਤ

    View Slide

  35. ΋΍΋΍Ϙʔυ

    View Slide

  36. ग़యݱ৔ྗΛߴΊΔݟ͑ΔԽख๏ϓϩδΣΫτϑΝγϦςʔγϣϯCZฏು݈ࣇ͞Μ
    IUUQTXXXTMJEFTIBSFOFUIJSBOBCFQSPKFDUGBDJMJUBUJPO
    ݟ͑ΔԽͷ໨త

    View Slide

  37. ݟ͑ΔԽͷྑ͍ͱ͜Ζ
    • ٞ࿦͕ۭதઓʹͳΓʹ͍͘
    • ʮ͋ΕʯʮͦΕʯࢦࣔ୅໊ࢺ͕࢖͑Δͷָ͕
    • ʢձࣾʹډΕ͹ʣ͙͢ʹݟ͑Δ
    • σδλϧͰ؅ཧ͢Δͱງʹߦ͔ͳ͚Ε͹ͳΒ
    ͳ͍

    View Slide

  38. KAIZEN DAY
    • What KAIZEN DAY ?
    • ؙҰ೔ɺνʔϜͷվળ׆ಈΛߦ͏೔
    • ݄1ճͷϖʔεͰ࣮ࢪ
    • Why KAIZEN DAY ?
    • ࣗ෼ͨͪͷ࢓ࣄΛΑΓʮ҆શʯʹʮ؆୯ʯʹߦ͑ΔΑ͏ʹ
    ͢Δ
    • ڧ੍తʹཱͪࢭ·Δ࣌ؒΛ࡞ΔͨΊɺ࢓૊ΈԽͯ͠͠·͏

    View Slide

  39. KAIZEN DAY
    • ೋ೥͘Β͍ଓ͚͍ͯΔ
    • ࠓ·Ͱ΍͖ͬͯͨ͜ͱ(ൈਮ)
    • APIͷ಺෦Τϥʔίʔυ੔උ
    • ίʔυن໿੔උ
    • Ӻ͢ͺ͋ͱwebαʔϏε༻ޠఆٛ
    • ڞ༗αʔόʔʹཷ·͍ͬͯͨศརεΫϦϓτͷ૟আ
    • ཷ·͍ͬͯͨϓϧϦΫͷফԽ
    • ख࡞ۀͷࣗಈԽ
    • ࠷ۙ͸LABODAY(৽͍ٕ͠ज़Λ৮Δ೔)ɺRETRODAY(ৼΓฦΓ)ͳ
    Δ΋ͷ΋

    View Slide

  40. ࣾ֎޲͚APIυΩϡϝϯτվળ
    • What ࣾ֎޲͚APIυΩϡϝϯτʁ
    IUUQEPDTFLJTQFSUDPNW

    View Slide

  41. • Why ࣾ֎޲͚APIυΩϡϝϯτվળʁ
    • υΩϡϝϯτ͔Βඞཁͳ৘ใ͕἞ΈऔΕͳ͔ͬͨ(৽ਓͷࠒͷײ૝)
    • ࣅͨΑ͏ͳ͓໰͍߹Θ͕ͤଟ͔ͬͨ
    • How υΩϡϝϯτվળʁ
    • Ӻ͢ͺ͋ͱwebαʔϏεʹؔΘΔ෦ॺΛؚΊͨগਓ਺੍ͷνʔϜ
    Λ݁੒
    • ։ൃɺӦۀɺαϙʔτ
    • ݄ʹҰճఆྫMTG
    • ඇΤϯδχΞΛؚΊͨgithubӡ༻
    ࣾ֎޲͚APIυΩϡϝϯτվળ

    View Slide

  42. • ޮՌ
    • Ϣʔβ͔ΒυΩϡϝϯτ͕๙ΊΒΕΔΑ͏ʹ
    • ։ൃʹ߱Γͯ͘ΔϢʔβ͔Βͷ໰͍߹Θ͕ͤݮগ
    • ໰͍߹ΘͤͨϢʔβ΁ͷճ౴εϐʔυͷ޲্
    • ࠓ·ͰҰ͔Βઆ໌ˠURLΛ͓఻͑͢Δ͚ͩʹ
    • ݱࡏ΋ܧଓͯ͠վળΛଓ͚͍ͯΔ
    ࣾ֎޲͚APIυΩϡϝϯτվળ

    View Slide

  43. Ϟϒϓϩάϥϛϯά
    • What Ϟϒϓϩάϥϛϯάʁ
    • ෳ਺ਓ(=Ϟϒ)ͰҰՕॴʹू·Γɺಉ͡PCΛ࢖ͬͯ՝୊ʹऔΓ૊Ή։
    ൃख๏
    • Why Ϟϒϓϩάϥϛϯάʁ
    • Agile Japan 2017※1Λ͖͔͚ͬʹϞϒϓϩάϥϛϯάͷଘࡏΛ஌Δ
    • औΓ૊ΜͰΈͨΒָ͔ͬͨ͠ʂ
    • ৭ʑϝϦοτ͕͋Δͱ᷿ͰݴΘΕ͍ͯ·͕͢ɺʮ΍ͬͯΈͨΒָ͠
    ͔ͬͨʯ͜Εʹਚ͖Δ
    ※1 ೔ຊͷݖҖ͋ΔΞδϟΠϧͷΠϕϯτ

    View Slide

  44. Ϟϒϓϩάϥϛϯά
    • νʔϜͰ΍ͬͯΈͨ
    • งғؾ͕ͪΐͬͱݻ͍
    • ஌͕ࣝҰਓʹภ͍ͬͯͯɺͦͷਓͷφϏཔΈʹͳͬͯ͠·͏
    • ࢲͷϑΝγϦςʔγϣϯྗͷݶք
    • ָ͠ɾɾɾ͘ͳ͍
    • ఘΊΔͷ͸·ͩૣ͍
    • ࣾ֎ͰͷϞϒϓϩΠϕϯτͰ΋஌ݟΛूΊ͍ͨ
    • ͜Ε͔Β΋Կճ͔τϥΠ͢Δ༧ఆ

    View Slide

  45. ɾಋೖ͍ͯ͠Δπʔϧ
    ɾ࣮ફ͍ͯ͠Δ։ൃϓϩηε
    ɾDevRel׆ಈ

    View Slide

  46. DevRel׆ಈ

    View Slide

  47. DevRel?

    View Slide

  48. What DevRel?
    • Developer Relations
    • ϚʔέςΟϯάख๏ͷҰछ
    • ֎෦ͷ։ൃऀͱͷܨ͕ΓΛܗ੒͠ɺࣗࣾͷ੡඼Λ஌ͬͯ
    ΋Β͏
    • ͍ΖΜͳاۀ͕औΓ૊ΜͰ͍Δ
    • Google, Facebook, AWS, Microsoft, IBM, LINE,
    PayPal, Stripe, αΠϘ΢ζ...etc

    View Slide

  49. ɾษڧձ/ηϛφʔ։࠵
    ɾιʔγϟϧϝσΟΞӡӦ
    ɾίϛϡχςΟӡӦ
    ɾΠϕϯτొஃ
    ɾϒϩάࣥච

    View Slide

  50. ฐࣾ΋
    DevRel׆ಈ࢝Ί·ͨ͠

    View Slide

  51. ϋοΧιϯٕज़ఏڙ

    View Slide

  52. ͘͞ΒΠϯλʔωοτ×ϰΝϧݚڀॴ
    ڞ࠵ϋϯζΦϯ

    View Slide

  53. ͘͞ΒΠϯλʔωοτ×ϰΝϧݚڀॴ
    ڞ࠵ϋϯζΦϯ
    ࣍ճ͸6/23@େࡕ!

    View Slide

  54. ৭Μͳͱ͜ΖͰొஃͯ͠·͢

    View Slide

  55. ɹϒϩάॻ͍ͯ·͢
    http://hiiiiiiihikaru.hatenadiary.com/

    View Slide

  56. ࢲ͕ΤόϯδΣϦετͱͯ͠
    ͜ͷ׆ಈΛߦͳ͍ͬͯΔཧ༝

    View Slide

  57. “Ӻ͢ͺ͋ͱWebαʔϏε͕޷͖͔ͩΒ”
    Ҏ֎ͷͳʹ΋ͷͰ΋ͳ͍

    View Slide

  58. ϓϩμΫτΛ΋ͬͱ੒௕͍ͤͨ͞
    ࢖͍΍͍͢΋ͷΛఏڙ͍ͨ͠
    ৭Μͳਓʹ஌ͬͯ΋Β͍͍ͨ
    ৭Μͳਓʹ࢖ͬͯ΋Β͍͍ͨ
    ࢖ͬͨਓͷ੠͕ฉ͖͍ͨ
    ͜Ε͕Ϟνϕʔγϣϯˢ

    View Slide

  59. Կ͔ҰॹʹͰ͖ͨΒ
    ໘ന͍Ͱ͢Ͷʂ

    View Slide

  60. ·ͱΊ

    View Slide

  61. ࠓ೔ͷ͓࿩ɿ
    Ӻ͢ͺ͋ͱwebαʔϏεͰ
    ɾಋೖ͍ͯ͠Δπʔϧ
    ɾ࣮ફ͍ͯ͠Δ։ൃϓϩηε
    ɾDevRel׆ಈ
    ʹ͍ͭͯ঺հ͠·ͨ͠

    View Slide

  62. νʔϜͷจԽ
    • ໨తओٛత
    • “Be Lazy”
    • ΧΠθϯϚΠϯυ
    • ָ͘͠
    • ͨ·ʹඒຯ͍͠΋ͷΛ৯΂Δ

    View Slide

  63. ·ͩ·ͩ՝୊͸ࢁੵΈorz

    View Slide

  64. API։ൃΛ͍ͯ͠Δ/͢Δ༧ఆͷํ
    ʹݶΒͣɺ৭Μͳਓͱ
    ৘ใަ׵Ͱ͖ͨΒ͍͍ͳͱ
    ࢥ͍ͬͯ·͢

    View Slide

  65. ҰॹʹAPIࢢ৔

    ੝Γ্͍͖͛ͯ·͠ΐ͏ʂ

    View Slide

  66. Thank you!

    View Slide