DevOpsとドキュメントデザインパターン #テクシオ / 20170703

DevOpsとドキュメントデザインパターン #テクシオ / 20170703

"Tech Night @ Shiodome" の発表資料です。
http://yuzutas0.hatenablog.com/entry/2017/07/06/083000 に補足を掲載しています。

56ae61a2631362f985e4c1fa4548a7ac?s=128

yuzutas0

July 03, 2017
Tweet

Transcript

  1. 1.

    DevOpsͱ
 υΩϡϝϯτσβΠϯύλʔϯ 
 2017-07-09ɹTech Night @ Shiodome # 4
 ςʔϚ

    “DevOpsͱࣗಈԽ”
 presented by @yuzutas0
 https://www.pexels.com/photo/meeting-pencils-macbook-notebooks-40120/ 
  2. 6.

    ྫʣ1೔10ճϦϦʔεΛ๦͛ΔཁҼ ੍໿ཧ࿦ɿϘτϧωοΫͷಛఆ → ղফ → ߴ଎σϓϩΠΛ࣮ݱ* *ࢢ৔͕ෆ࣮֬ ʹ Ծઆݕূͷճ਺Λ૿΍͢ͱϏδωεՁ஋͕࠷େԽ͞ΕΔ ʹ

    ϦϦʔεճ਺Λ૿΍͍ͨ͠
 ͱ͍͏จ຺ʹ͓͚Δશମ࠷దԽʢͦ͏Ͱͳ͍৔߹͸ϦϦʔεճ਺Λ૿΍ͯ͠΋རӹʹܨ͕Βͳ͍͜ͱ΋ʣ Ops Dev Biz ɹ[ཧ૝] DevOps = ڠಇʹΑΔશମ࠷దԽ  ϦϦʔε࡞ۀ ࢿࡐͷ
 Ҿ͖౉͠ձٞ POঝೝ Ծઆ ऩӹ ճؼςετ ա৒ཁ݅
  3. 8.

    ɹ[ཧ૝] VSM → “ࣗಈԽ” ͸ଧͪखͷ1ͭ  LTɿϦʔυλΠϜ
 ޻ఔ׬ྃ·Ͱͷ࣌ؒ − PTɿϓϩηελΠϜ


    ࡞ۀ ʹඅ΍ͨ࣌ؒ͠ . = ଴ͪ ͷ࣌ؒ ࡞ۀݟ௚͠ ΍ ࣗಈԽ ʹΑΔ࡟ݮ
 ʢྫɿInfrastructure as Codeʣ ۀ຿ϑϩʔվम ʹΑΔ࡟ݮ
  4. 31.

    
 υΩϡϝϯτΛίʔυͷΑ͏ʹѻ͏15ͷύλʔϯ (Document Design Pattern) 
 
 
 
 


    
 - Ϣʔεέʔε෼ੳ
 - ϦϑΝΫλϦϯά
 - ϖΞϓϩάϥϛϯά
 - Ϟϒϓϩάϥϛϯά
  ɹ࣮ࡍʹࢼͯ͠Έͨ - AppendixͰղઆʂ 
 - ΞʔΩςΫτνʔϜ
 - ίϯ΢ΣΠͷ๏ଇ
 ମ੍ͷύλʔϯ 
 - ٕज़తෛ࠴
 - ϙʔτϑΥϦΦ
 - ίʔσΟϯάΛଅ͢
 - ίʔυϨϏϡʔ
 - ϘʔΠεΧ΢τ
 - Rule of Three จԽͷύλʔϯ 
 - MVCϞσϧ
 - GoFσβΠϯύλʔϯ
 - ܧଓతσϦόϦʔ /
 ΠςϨʔγϣϯ ઃܭͷύλʔϯ ࡞ۀͷύλʔϯ ˞ମ੍΍จԽ͸σβΠϯʢઃܭʣʹӨڹΛ༩͑ΔͷͰσβΠϯύλʔϯʹؚΊ͍ͯ·͢
  5. 33.
  6. 44.

    
 υΩϡϝϯτΛίʔυͷΑ͏ʹѻ͏15ͷύλʔϯ (Document Design Pattern) 
 
 
 
 


    
 - Ϣʔεέʔε෼ੳ
 - ϦϑΝΫλϦϯά
 - ϖΞϓϩάϥϛϯά
 - Ϟϒϓϩάϥϛϯά
  ɹAppendix 1 - ύλʔϯ 
 - ΞʔΩςΫτνʔϜ
 - ίϯ΢ΣΠͷ๏ଇ
 ମ੍ͷύλʔϯ 
 - ٕज़తෛ࠴
 - ϙʔτϑΥϦΦ
 - ίʔσΟϯάΛଅ͢
 - ίʔυϨϏϡʔ
 - ϘʔΠεΧ΢τ
 - Rule of Three จԽͷύλʔϯ 
 - MVCϞσϧ
 - GoFσβΠϯύλʔϯ
 - ܧଓతσϦόϦʔ /
 ΠςϨʔγϣϯ ઃܭͷύλʔϯ ࡞ۀͷύλʔϯ ˞ମ੍΍จԽ͸σβΠϯʢઃܭʣʹӨڹΛ༩͑ΔͷͰσβΠϯύλʔϯʹؚΊ͍ͯ·͢
  7. 45.

    ଞͷϝϯόʔ͔Β͸࡞ۀ಺༰͕ݟ͑ʹ͍͘ ɹMVC - Before  ݄࣍αʔϏεϨϕϧใࠂࢿྉ
 ʢViewʣ͸ؔ܎ऀશһʹ഑෍͞Ε͍ͯͨ ༻్ͷྫʣDAU͕ٸ૿͠ଓ͚ΔͷͰ
 αʔό૿ஙͷ௥Ճ༧ࢉ͕ඞཁ
 →

    ΩϟύγςΟਪҠΛఆظతʹ
 ্Ґ૊৫ʹϨϙʔτ͢Δ खॱϝϞ΍ܭࢉࣜʢControllerʣ͸
 ࡞ۀ୲౰ऀͷϩʔΧϧPCʹด͍ͯͨ͡ ൵ܶͷྫʣϞόΠϧΞϓϦͷ
 Ϋϥογϡ཰ͷܭࢉ͕ؒҧͬͨ··
 1೥Ҏ্ӡ༻͞Ε͍ͯͨ

  8. 46.

    ɹMVC - Afterɿґଘؔ܎ʹ෼ղ  View ΩϟύγςΟ
 ϞχλϦϯά࡞ۀखॱॻ Πϯϑϥ؀ڥҰཡ
 ઀ଓઌIP৘ใ Ϋϥογϡϩάܭଌπʔϧ


    URL + ΞΧ΢ϯτ৘ใ Slack bot
 ݄࣍ϦϚΠϯμʔ ݄࣍αʔϏεϨϕϧ
 ใࠂࢿྉ_X݄෼ Controller Model
  9. 47.

    ΠϕϯτۦಈͰ࿙ΕΛ๷͙ → શһ͕࡞ۀ಺༰Λ࠶ݱͰ͖Δ ɹMVC - Afterɿ࢓૊ΈԽ  
 1. ఆظSlackϦϚΠϯμ

    
 2. ϦϯΫઌ͸ςϯϓϨϖʔδ 
 3. ࠷ॳͷ࡞ۀ͸
 ςϯϓϨ͔ΒϖʔδΛੜ੒
  10. 48.
  11. 63.

    ɹϦϑΝΫλϦϯά - Before  A1ϖʔδ
 
 - content_aaa1
 - content_aa11

    TOPϖʔδ
 
 - content_top1
 - content_top2 A2ϖʔδ
 
 - content_aaa2
 - content_aa22 A3ϖʔδ
 
 - content_aaa3
 - content_aa33 ϒοΫϚʔΫ΍
 طଘϦϯΫ
  12. 64.

    AsIsͷϖʔδ͸DEPRECAREDͱͯ͠τοϓԼʹ੾Γग़͢ ɹϦϑΝΫλϦϯά - WIPᶃ  A1ϖʔδ
 
 - content_aaa1
 -

    content_aa11 DEPRECATED
 
 - content_top1
 - content_top2 A2ϖʔδ
 
 - content_aaa2
 - content_aa22 A3ϖʔδ
 
 - content_aaa3
 - content_aa33 TOPϖʔδ
 

  13. 65.

    AsIsͷϖʔδ͸DEPRECAREDͱͯ͠τοϓԼʹ੾Γग़͢ ɹϦϑΝΫλϦϯά - WIPᶃ  A1ϖʔδ
 
 - content_aaa1
 -

    content_aa11 DEPRECATED
 
 - content_top1
 - content_top2 A2ϖʔδ
 
 - content_aaa2
 - content_aa22 A3ϖʔδ
 
 - content_aaa3
 - content_aa33 TOPϖʔδ
 
 ϒοΫϚʔΫ΍
 طଘϦϯΫ ͜͜ʹߦ͖͍ͨ ҰԠσΟϨΫτϦ͸਌ࢠؔ܎ ͜ͷۭനϖʔδ͸Կʁ
  14. 66.

    τοϓϖʔδʹʮաڈͷτοϓϖʔδ͸ͪ͜ΒʯͱDEPRECATEDϖʔδ΁ͷϦϯΫΛ༻ҙ ɹϦϑΝΫλϦϯά - WIPᶄ  A1ϖʔδ
 
 - content_aaa1
 -

    content_aa11 DEPRECATED
 
 - content_top1
 - content_top2 A2ϖʔδ
 
 - content_aaa2
 - content_aa22 A3ϖʔδ
 
 - content_aaa3
 - content_aa33 TOPϖʔδ
 
 աڈTOP͸ͪ͜Β ϒοΫϚʔΫ΍
 طଘϦϯΫ
  15. 67.

    ToBeͷϖʔδߏ੒ΛτοϓԼʹల։ ɹϦϑΝΫλϦϯά - WIPᶅ  A1ϖʔδ
 
 - content_aaa1
 -

    content_aa11 DEPRECATED
 
 - content_top1
 - content_top2 A2ϖʔδ
 
 - content_aaa2
 - content_aa22 A3ϖʔδ
 
 - content_aaa3
 - content_aa33 TOPϖʔδ
 
 աڈTOP͸ͪ͜Β B1ϖʔδ
 
 B2ϖʔδ
 
 B3ϖʔδ
 

  16. 68.

    AsIsίϯςϯπΛToBeϖʔδʹ੾ΓషΓ͢Δ ɹϦϑΝΫλϦϯά - WIPᶆ  A1ϖʔδ
 
 - content_aaa1
 -

    content_aa11 DEPRECATED
 
 - content_top1
 - content_top2 A2ϖʔδ
 
 - content_aaa2
 - content_aa22 A3ϖʔδ
 
 - content_aaa3
 - content_aa33 TOPϖʔδ
 
 աڈTOP͸ͪ͜Β B1ϖʔδ
 
 B2ϖʔδ
 
 B3ϖʔδ
 

  17. 69.

    AsIsίϯςϯπΛToBeϖʔδʹ੾ΓషΓ͢Δ ɹϦϑΝΫλϦϯά - WIPᶆ  A1ϖʔδ
 
 - [empty]
 -

    content_aa11 DEPRECATED
 
 - content_top1
 - content_top2 A2ϖʔδ
 
 - content_aaa2
 - [empty] A3ϖʔδ
 
 - content_aaa3
 - content_aa33 TOPϖʔδ
 
 աڈTOP͸ͪ͜Β B1ϖʔδ
 
 - content_aaa1
 - content_aa22 B2ϖʔδ
 
 B3ϖʔδ
 

  18. 70.

    AsIsίϯςϯπΛToBeϖʔδʹ੾ΓషΓ͢Δ ɹϦϑΝΫλϦϯά - WIPᶆ  A1ϖʔδ
 
 - [empty]
 -

    content_aa11 DEPRECATED
 
 - content_top1
 - content_top2 A3ϖʔδ
 
 - content_aaa3
 - content_aa33 TOPϖʔδ
 
 աڈTOP͸ͪ͜Β B2ϖʔδ
 
 B3ϖʔδ
 
 ϒοΫϚʔΫ΍
 طଘϦϯΫ A2ϖʔδ
 
 - content_aaa2
 - [empty] B1ϖʔδ
 
 - content_aaa1
 - content_aa22 ফ͑ͯΔʂʁ ඞཁͳ৘ใ
  19. 71.

    ݩͷϖʔδʹ͸৽ϖʔδ΁ͷࢀরͷΈ࢒͢ ɹϦϑΝΫλϦϯά - WIPᶇ  A1ϖʔδ
 
 - [empty]
 -

    content_aa11 DEPRECATED
 
 - content_top1
 - content_top2 A3ϖʔδ
 
 - content_aaa3
 - content_aa33 TOPϖʔδ
 
 աڈTOP͸ͪ͜Β B2ϖʔδ
 
 B3ϖʔδ
 
 ϒοΫϚʔΫ΍
 طଘϦϯΫ A2ϖʔδ
 
 - content_aaa2
 - XXʹҠసࡁΈ B1ϖʔδ
 
 - content_aaa1
 - content_aa22
  20. 72.

    AsIsίϯςϯπΛToBeϖʔδʹ੾ΓషΓ͢Δ ɹϦϑΝΫλϦϯά - WIPᶈ  A1ϖʔδ
 
 - moved to

    B1
 - content_aa11 DEPRECATED
 
 - content_top1
 - content_top2 A2ϖʔδ
 
 - content_aaa2
 - moved to B1 A3ϖʔδ
 
 - content_aaa3
 - content_aa33 TOPϖʔδ
 
 աڈTOP͸ͪ͜Β B1ϖʔδ
 
 - content_aaa1
 - content_aa22 B2ϖʔδ
 
 B3ϖʔδ
 

  21. 73.

    AsIsίϯςϯπΛToBeϖʔδʹ੾ΓషΓ͢Δ ɹϦϑΝΫλϦϯά - WIPᶈ  A1ϖʔδ
 
 - moved to

    B1
 - moved to B2 DEPRECATED
 
 - content_top1
 - content_top2 A2ϖʔδ
 
 - content_aaa2
 - moved to B1 A3ϖʔδ
 
 - content_aaa3
 - content_aa33 TOPϖʔδ
 
 աڈTOP͸ͪ͜Β B1ϖʔδ
 
 - content_aaa1
 - content_aa22 B2ϖʔδ
 
 - content_aa11 B3ϖʔδ
 

  22. 74.

    AsIsίϯςϯπΛToBeϖʔδʹ੾ΓషΓ͢Δ ɹϦϑΝΫλϦϯά - WIPᶈ  A1ϖʔδ
 
 - moved to

    B1
 - moved to B2 DEPRECATED
 
 - content_top1
 - content_top2 A2ϖʔδ
 
 - content_aaa2
 - moved to B1 A3ϖʔδ
 
 - content_aaa3
 - content_aa33 TOPϖʔδ
 
 աڈTOP͸ͪ͜Β B1ϖʔδ
 
 - content_aaa1
 - content_aa22 B2ϖʔδ
 
 - content_aa11 B3ϖʔδ
 

  23. 75.

    AsIsίϯςϯπΛToBeϖʔδʹ੾ΓషΓ͢Δ B3ϖʔδ
 
 - content_aaa2
 - content_aaa3
 - content_aa33 ɹϦϑΝΫλϦϯά

    - WIPᶈ  A1ϖʔδ
 
 - moved to B1
 - moved to B2 DEPRECATED
 
 - content_top1
 - content_top2 A2ϖʔδ
 
 - moved to B3
 - moved to B1 A3ϖʔδ
 
 - moved to B3
 - moved to B3 TOPϖʔδ
 
 աڈTOP͸ͪ͜Β B1ϖʔδ
 
 - content_aaa1
 - content_aa22 B2ϖʔδ
 
 - content_aa11
  24. 76.

    AsIsίϯςϯπΛToBeϖʔδʹ੾ΓషΓ͢Δ B3ϖʔδ
 
 - content_aaa2
 - content_aaa3
 - content_aa33 ɹϦϑΝΫλϦϯά

    - WIPᶈ  A1ϖʔδ
 
 - moved to B1
 - moved to B2 DEPRECATED
 
 - content_top1
 - content_top2 A2ϖʔδ
 
 - moved to B3
 - moved to B1 A3ϖʔδ
 
 - moved to B3
 - moved to B3 TOPϖʔδ
 
 աڈTOP͸ͪ͜Β B1ϖʔδ
 
 - content_aaa1
 - content_aa22 B2ϖʔδ
 
 - content_aa11
  25. 77.

    AsIsίϯςϯπΛToBeϖʔδʹ੾ΓషΓ͢Δ B3ϖʔδ
 
 - content_aaa2
 - content_aaa3
 - content_aa33 ɹϦϑΝΫλϦϯά

    - WIPᶈ  A1ϖʔδ
 
 - moved to B1
 - moved to B2 DEPRECATED
 
 - moved to TOP A2ϖʔδ
 
 - moved to B3
 - moved to B1 A3ϖʔδ
 
 - moved to B3
 - moved to B3 TOPϖʔδ
 - content_top1
 - content_top2
 - աڈTOP͸ͪ͜Β B1ϖʔδ
 
 - content_aaa1
 - content_aa22 B2ϖʔδ
 
 - content_aa11
  26. 78.

    AsIsίϯςϯπΛToBeϖʔδʹ੾ΓషΓ͢Δ B3ϖʔδ
 
 - content_aaa2
 - content_aaa3
 - content_aa33 ɹϦϑΝΫλϦϯά

    - WIPᶈ  A1ϖʔδ
 
 - moved to B1
 - moved to B2 DEPRECATED
 
 - moved to TOP A2ϖʔδ
 
 - moved to B3
 - moved to B1 A3ϖʔδ
 
 - moved to B3
 - moved to B3 TOPϖʔδ
 - content_top1
 - content_top2
 - աڈTOP͸ͪ͜Β B1ϖʔδ
 
 - content_aaa1
 - content_aa22 B2ϖʔδ
 
 - content_aa11 ϒοΫϚʔΫ΍
 طଘϦϯΫ গͣͭ͠ීٴ ·ͩࢀর
  27. 79.

    AsIsίϯςϯπΛToBeϖʔδʹ੾ΓషΓ͢Δ B3ϖʔδ
 
 - content_aaa2
 - content_aaa3
 - content_aa33 ɹϦϑΝΫλϦϯά

    - WIPᶈ  A1ϖʔδ
 
 - moved to B1
 - moved to B2 DEPRECATED
 
 - moved to TOP A2ϖʔδ
 
 - moved to B3
 - moved to B1 A3ϖʔδ
 
 - moved to B3
 - moved to B3 TOPϖʔδ
 - content_top1
 - content_top2
 - աڈTOP͸ͪ͜Β B1ϖʔδ
 
 - content_aaa1
 - content_aa22 B2ϖʔδ
 
 - content_aa11 ϒοΫϚʔΫ΍
 طଘϦϯΫ গͣͭ͠ීٴ ΄ͱΜͲݟͳ͍
  28. 80.

    ͋Δఔ౓ීٴͨ͠ΒݩϖʔδΛ࡟আ͢Δ B3ϖʔδ
 
 - content_aaa2
 - content_aaa3
 - content_aa33 ɹϦϑΝΫλϦϯά

    - After  TOPϖʔδ
 
 - content_top1
 - content_top2 B1ϖʔδ
 
 - content_aaa1
 - content_aa22 B2ϖʔδ
 
 - content_aa11 ϒοΫϚʔΫ΍
 طଘϦϯΫ ΄ͱΜͲͬͪ͜
  29. 85.

    ɹະղܾᶄɿํ๏࿦ΛମܥԽ͢Δ ʮυΩϡϝϯτΛίʔυͷΑ͏ʹѻ͏ͨΊͷύλʔϯʯ͸ɺ·ͩίϯηϓτஈ֊ɻ
 ʢDocument as Code / Document Design Patternʣ
 


    ϊ΢ϋ΢ΛମܥԽͯ͠ଞ૊৫ʹల։͢Δʹ͸
 ʢor ଞ૊৫͔ΒޮՌతʹֶͿʹ͸ʣͲ͏ͨ͠Βྑ͍ͩΖ͏͔ʁ 
  30. 87.

    
 ɹɹɹL શମ޿ใ
 
 ɹɹɹL Ϗδωεɹ# ઓུɺKGI/KPI
 ɹɹɹL Ϧιʔεɹ# ώτɺϞϊɺΧωɺ৘ใʢ৽نϝϯόʔͷJoinϝχϡʔ΍ΤϯδχΞϨδϡϝ͸ʮώτʯͷԼʣ


    ɹɹɹL γεςϜɹ# ΞϓϦ΍Πϯϑϥͷߏ੒ͳͲʢ͋͘·Ͱ΋ϩθολετʔϯʣ
 
 ɹɹɹL ࢪࡦɹɹɹ# ϓϩμΫτɾγεςϜɾϓϩηεΛվળ͢Δࢪࡦ
 ɹɹɹL ӡ༻ɹɹɹ# ΧελϚʔαϙʔτɺϓογϡ௨஌ͷ഑৴ɺΠϯϑϥอकͱ͍ͬͨݸผ࡞ۀ
 
 ɹɹɹL ϓϩηεɹ# ཱҊ͔ΒՁ஋૑ग़·ͰͷόϦϡʔετϦʔϜʢˠ KPTΛ௨ͯ͠վળ͢Δʣ
 ɹɹɹL Πϕϯτɹ# ఆظతͳଧͪ߹Θͤ΍ࢦඪ֬ೝʢˠ ૊৫શମͰՄࢹԽ͢Δͱॏෳ΍ແବ͕໨ཱͭΑ͏ʹͳΔʣ
 
 ɹɹɹL ݸਓɹɹɹ# Inbox୅ΘΓ ɹAppendix 3 - ࠾༻ͨ͠σΟϨΫτϦߏ੒