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

開発するように運用するインフラ JAWS DAYS 2015

mdoi
March 22, 2015
15k

開発するように運用するインフラ JAWS DAYS 2015

mdoi

March 22, 2015
Tweet

Transcript

  1. ࣗݾ঺հ ౔ډɹਖ਼ߦ (@m_doi) Kaizen Platform Inc ΠϯϑϥΤϯδχΞ • ͜Ε·Ͱ •

    ϑΟʔνϟʔϑΥϯͷιϑτ΢ΣΞ։ൃ • SNS/ιγϟήܥͷωοτϫʔΫ / αʔόΤϯδχΞ • ؂ࢹγεςϜ౳ɺӡ༻ͷͨΊͷιϑτ΢ΣΞ։ൃ • ͓ؾʹೖΓͷAWSαʔϏε • DynamoDB ͱ Kinesis
  2. • Work In Progress Ͱ Pull Request • ։ൃ •

    ϨϏϡʔ • QA • ຊ൪ϦϦʔε ։ൃϓϩηε
  3. • Work In Progress Ͱ Pull Request • ։ൃ •

    ϨϏϡʔ • QA • ຊ൪ϦϦʔε ։ൃϓϩηε
  4. • Work In Progress Ͱ Pull Request • ։ൃ •

    ϨϏϡʔ • QA • ຊ൪ϦϦʔε ։ൃϓϩηε
  5. • CI ͷ SaaS • fooϒϥϯνʹpushͨ͠Βbar͢Δ • foo, bar ͷ෦෼Λࡉ੍͔͘ޚՄೳ

    • ୯७ͳίϚϯυΛ࣮ߦ͢Δ • ࣗ࡞ͨ͠೚ҙͷγΣϧεΫϦϓτΛ࣮ߦ͢Δ CircleCI
  6. • CI ͷ SaaS • fooϒϥϯνʹpushͨ͠Βbar͢Δ • foo, bar ͷ෦෼Λࡉ੍͔͘ޚՄೳ

    • ୯७ͳίϚϯυΛ࣮ߦ͢Δ • ࣗ࡞ͨ͠೚ҙͷγΣϧεΫϦϓτΛ࣮ߦ͢Δ CircleCI ͭ·ΓɺGitHub ͷ ೚ҙͷϒϥϯν΁ͷ push Λܖػʹɺ ༷ʑͳϫʔΫϑϩʔΛఆٛͰ͖Δɻ
  7. ϦϦʔεϓϩηε master ϒϥϯν΁ͷ push Λܖػʹ Unit Test Λ࣮ߦ e2e ϒϥϯν΁ͷ

    push Λܖػʹ E2E Test Λ࣮ߦ E2E Test Deploy Unit Test deploy ϒϥϯν΁ͷ push Λܖػʹ Deploy Λ࣮ߦ
  8. • Work In Progress Ͱ Pull Request • ߏ੒มߋΛ Chef

    recipe ʹམͱ͜͠Ή • ϨϏϡʔ • ߏஙςετ • ຊ൪ద༻ ӡ༻ϓϩηε
  9. ߏ੒؅ཧ 1. recipe ͷ࡞੒ 2. push 3. ࢼݧߏஙٴͼServerspec ʹΑΔݕূ 4.

    ߏங༻ϒϥϯν΁ ͷ merge Λܖػʹ ຊ൪؀ڥʹద༻
  10. ߏ੒؅ཧ 1. recipe ͷ࡞੒ 2. push 3. push Λܖػʹࢼݧߏஙٴͼ Serverspec

    ʹΑΔݕূ 5. ߏங༻ϒϥϯν΁ͷ merge Λܖػʹ ຊ൪؀ڥʹద༻ 4. νϟοτͰ
 ߏங༻ϒϥϯν΁ͷ merge Λࢦࣔ
  11. • Work In Progress Ͱ Pull Request • ։ൃ •

    ϨϏϡʔ • QA • ຊ൪ϦϦʔε ։ൃϓϩηε
  12. • ։ൃ • GitHub Λத৺ͱͨ͠։ൃϑϩʔ • CircleCI Λத৺ͱͨ͠ϦϦʔεϑϩʔ • GitHub

    ͱ CircleCI ͱ νϟοτͷૢ࡞Ͱ׬݁ • ӡ༻ • GitHub Λத৺ͱͨ͠ߏ੒؅ཧϑϩʔ • CircleCI Λத৺ͱͨ͠มߋద༻ϑϩʔ • GitHub ͱ CircleCI ͱ νϟοτͷૢ࡞Ͱ׬݁ ൺֱ
  13. ϓϩηεΛ߹ΘͤΔϝϦοτ • ։ൃଆ΋ΠϯϑϥͷมߋΛ͢Δ͜ͱ͕ग़དྷΔ • ։ൃଆͰ΍Γͨ͘ͳΔมߋ • ϦόʔεϓϩΩγͰ̋̋ϔομ෇͚͍ͨ • ̋̋ϑΝΠϧΛ഑ஔ͍ͨ͠ •

    ௥ՃػೳͷͨΊʹ̋̋ύοέʔδΛೖΕ͍ͨ Dev < ͜ΕೖΕ͍ͨͰ͢ Ops < ҰճϛʔςΟϯά͠·͠ΐ͏͔ ʙϛʔςΟϯάʙ
 Dev < ͜ΕೖΕ͍ͨͰ͢ Ops < ͦ΋ͦ΋ͳΜͰඞཁͳΜͰ͚ͨͬ͠ Dev < ͔͔͔͔͘͘͠͡ Ops < Ͱ͸ௐ੔ͯ͠ɺ݄̋☓೔ʹೖΕ·͠ΐ͏ɻ୲౰ऀ͸̋̋͞ ΜΞαΠϯͰɻ ଓ͘…
  14. ϓϩηεΛ߹ΘͤΔϝϦοτ • ։ൃଆ΋ΠϯϑϥͷมߋΛ͢Δ͜ͱ͕ग़དྷΔ • ։ൃଆͰ΍Γͨ͘ͳΔมߋ • ϦόʔεϓϩΩγͰ̋̋ϔομ෇͚͍ͨ • ̋̋ϑΝΠϧΛ഑ஔ͍ͨ͠ •

    ௥ՃػೳͷͨΊʹ̋̋ύοέʔδΛೖΕ͍ͨ ɾͦ͜·ͰෳࡶͳมߋͰ͸ͳ͍ ɾಈ͖ʹΠϯύΫτΛ༩͑Δͱͯ͠΋ΠϯϑϥΤϯδχΞΛ ௨ͨ͠ϨϏϡʔͰνΣοΫ