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

DevOpsDays Tokyo

5b3bf11c665ecc0ff5f39e773b45662a?s=47 Genki Sato
April 10, 2019

DevOpsDays Tokyo

5b3bf11c665ecc0ff5f39e773b45662a?s=128

Genki Sato

April 10, 2019
Tweet

Transcript

  1. %FW0QT%BZT5PLZP ։ൃޮ཰Λ࠷େԽ͢Δ σϓϩΠϝϯτύΠϓϥΠϯ

  2. %FW0QT%BZT5PLZP !2 ࠤ౻ݯلʢ͞ͱ͏͛Μ͖ʣʗιϑτ΢ΤΞΤϯδχΞʗ:BQQMJ5FDI-FBE w೥݄ϝΨϕϯνϟʔήʔϜ։ൃ w ϒϥ΢βܕιʔγϟϧήʔϜ։ൃ w೥݄ϝΨϕϯνϟʔΠϯϑϥ෦໳ w %#ج൫ɾήʔϜࣄۀج൫ w

    Τϯλϝࣄۀج൫ɾϔϧεέΞ&$ࣄۀج൫ w೥݄'JOUFDIܥελʔτΞοϓ w ΢ΥϨοτΞϓϦ։ൃɾӡ༻ w೥݄:BQQMJ w :BQQMJϓϥοτϑΥʔϜͷ։ൃɾӡ༻
  3. ΞϓϦͷςΫϊϩδʔΛ։์͠ɺ ੈͷதΛ΋ͬͱศརͰշదʹɻ

  4. Services :BQQMJ͸ैདྷͷΞϓϦࢢ৔ΛσΟεϥϓτ͢ ΔɺΞϓϦͷςΫϊϩδʔΛ։์͢Δελʔτ ΞοϓͰ͢ɻ ɹϓϩάϥϛϯάෆཁͰΞϓϦ։ൃɻٕज़ऀ ཁΒͣͰഒ଎ͷ։ൃ଎౓Λ࣮ݱɻ ɹ਌͠Έ΍͍͢௚ײత6*ͷ؅ཧը໘͔Βɺ ୭Ͱ΋؆୯ʹΞϓϦΛӡ༻؅ཧ Mobile Technology

    for ALL ʢ৽ଔ࠾༻޲͚ʣ ʢൢଅ޲͚ʣ ʢֶߍ๏ਓ޲͚ʣ ʢ঎ۀࢪઃ޲͚ʣ ۀछΛ໰Θͳ͍ϗϦκϯλϧSaaSͱͯ͠ϓϥοτϑΥʔϜΛఏڙ
  5. 280݅ 2,800ສ 99 ಋೖ݅਺ ྦྷܭΞϓϦDL਺ αʔϏεܧଓ཰

  6. ച্ߴ͸T2D3ͷਪҠͰٸ੒௕த ஫ɿT2D3͸ϢχίʔϯͷSaaSاۀʹ͓͍ͯٻΊΒΕΔ੒௕཰ͷུশ 3ഒͷ੒௕Λ2೥ɺ2ഒͷ੒௕Λ3೥ɺTriple x 2ɺDouble x 3ͱͯ͠T2D3ͱݺ͹ΕΔ

  7. %FW0QT%BZT5PLZP αʔϏεɾձࣾͷ֦େʹ߹Θͤͯ ։ൃϑϩʔͷݟ௚͠ΛॏͶ͖ͯ·ͨ͠ !7

  8. %FW0QT%BZT5PLZP ຊ೔͸:BQQMJʹ͓͚Δ։ൃͷྲྀΕͱ σϦόϦʔߴ଎Խ΁ͷऔΓ૊Έʹ͍ͭͯ ͓࿩͠͠·͢ !8

  9. %FW0QT%BZT5PLZP ։ൃ։͔࢝Βɿ೥ νʔϜ։ൃظؒɿ೥ !9

  10. %FW0QT%BZT5PLZP ٕज़తෛ࠴ͱͷઓ͍ !10

  11. %FW0QT%BZT5PLZP σϦόϦʔαΠΫϧʹ ࣮֬ʹڹ͍ͯ͘Δ !11

  12. %FW0QT%BZT5PLZP w ઃܭ্ɺ*%&ͷԸܙΛड͚ʹ͍͘ w ʢαʔόαΠυΞϓϦέʔγϣϯ͸1)1ϕʔεʣ w ϑϨʔϜϫʔΫΛ࢖ΘͣɺࣗલͷJODMVEF͕هड़͞Ε͍ͯΔ෦෼͕ଟ͍ w ίʔυิ׬ɾίʔυδϟϯϓ͕ޮ͔ͳ͔ͬͨΓ w

    ςετίʔυ͕લఏͱ͞Ε͍ͯͳ͍ w %*͕Ͱ͖ͳ͍ w ςετΧόϨοδ !12
  13. %FW0QT%BZT5PLZP w ΤϥʔͰ΋ϩά͕ग़ͳ͍ w ʰࠞͥΔͳةݥʱͳػೳͷෆ۩߹ΛੜΈ΍͍͢ w ྫɿʮྡͰͦΜͳมߋ͕͞Ε͍ͯͨͱ͸ࢥ͍΋ΑΒͳ͔ͬͨɻʯ w ʰϐλΰϥεΠονʱͳෆ۩߹ΛੜΈ΍͍͢ w

    ྫɿʮ͜ͷϩδοΫ͕ͦΜͳͱ͜ΖʹӨڹΛٴ΅͢ͱ͸ࢥ͍΋ΑΒͳ ͔ͬͨɻʯ w ϦΧόϦ໨తͷύον͕৽ͨͳෆ۩߹ΛੜΉ͜ͱ΋ !13
  14. %FW0QT%BZT5PLZP ͜͜·ͰࣄۀΛ੒௕ͤͯ͘͞Εͨ͜ͱʹ ײँͭͭ͠ !14

  15. %FW0QT%BZT5PLZP ࠶ߏஙʢ׬શϦϓϨΠεʣΛ ͢͢Ί͍ͯ·͢ !15

  16. %FW0QT%BZT5PLZP w 1)1 K2VFSZ͔Β(PMBOH /VYUKT΁ͷ࠶࣮૷ w 6*ͷΞοϓσʔτʹ͋Θͤͯશ໘࡮৽ w طଘγεςϜͷ൓লΛ׆͔ͯ͠νʔϜͷεέʔϧʹͰ͖Δ͚ͩൺྫͯ͠։ ൃεϐʔυ͕޲্͢ΔΞʔΩςΫνϟΛ໨ࢦͨ͠

    !16
  17. %FW0QT%BZT5PLZP ೥ՆʹϓϩδΣΫτΩοΫΦϑ ೥݄ʹୈҰ஄ແࣄϦϦʔεʂ !17

  18. %FW0QT%BZT5PLZP ͏·͍ͬͨ͘ϙΠϯτ !18

  19. %FW0QT%BZT5PLZP w શ໘࡮৽ϓϩδΣΫτ͸ೋճ໨ͰҰճ໨ͷࣦഊΛ׆͔ͤͨ w ػೳ௥ՃΛ͠ͳ͍͜ͱʹ͍ͯͨͨ͠Ίɺ։ൃɾݕূ࣌ʹ໎͍͕গͳ͔ͬͨ w ͍͍ͭͭʮ͜ΕΛػʹʯͱػೳ௥Ճ͕ͪ͠ͳͱ͜ΖΛ੾ͬͨ w Ұճ໨ͷࣦഊΛձࣾશମͰड͚ࢭΊΒΕ͍ͯͨͷͰ߹ҙ΋ಘ΍͔ͬͨ͢ !19

  20. %FW0QT%BZT5PLZP w ઃܭஈ֊͔ΒΤϯδχΞશһͰษڧ΋ͭͭ͠ɺίϯηϯαεΛऔΓͳ͕Β ਐΊͨ w બఆج४͸͋͑ͯந৅తʹ w ૊৫ͷ֦େʹ͍͍͚ͭͯͦ͏ͳ΋ͷ w ؆୯͗ͣ͢೉͗͢͠ͳ͍ɺ΄ͲΑ͍೉қ౓

    w ͭ͗ʹདྷΔٕज़తτϨϯυʹ΋͍͍͚ͭͯͦ͏ͳ΋ͷ w %%%ษڧձɺઃܭ૬ஊɾڞ༗ձɺίʔυϨϏϡʔ !20
  21. %FW0QT%BZT5PLZP w νʔϜશһͰूதͯ͠ϓϩδΣΫτʹऔΓ૊ΊΔମ੍Λ࡞Εͨ w ৽نػೳ։ൃΛҰ࣌తʹࢭΊͨ w ϓϩδΣΫτҎ֎ͷ͜ͱΛूதͯ͠औΓ૊Ή೔Λ໌ࣔతʹઃ͚ͨ͜ͱͰ ϏδωεαΠυͷཧղΛಘ΍͔ͬͨ͢ !21

  22. %FW0QT%BZT5PLZP !22 w ೋिؒʹҰ೔ɺϝΠϯͷϓϩδΣΫ τҎ֎ͷλεΫ͔͠΍Βͳ͍ w খن໛ͳΧΠθϯҊ݅΍ܰඍͳෆ۩ ߹ͷमਖ਼ͳͲϓϩδΣΫτʹ௥ΘΕ ͯීஈͰ͖ͳ͍ۀ຿Λਪਐ͢Δ w

    ϏδωεαΠυ͔Β޷ධ w ৄࡉ͸ʮ:BQQEBUFEBZʯͰݕࡧ
  23. %FW0QT%BZT5PLZP ΋͏গ͠ৄ͍͠࿩͸ ͪ͜ΒΛ͝ཡ͍ͩ͘͞ !23 https://speakerdeck.com/genkist

  24. %FW0QT%BZT5PLZP ։ൃαΠΫϧ !24

  25. %FW0QT%BZT5PLZP !25

  26. %FW0QT%BZT5PLZP ʲ։ൃαΠΫϧʢʣʳ ԿΛ࡞Δ͔ !26

  27. %FW0QT%BZT5PLZP w ։ൃϓϩδΣΫτͷೖΓޱ w ैۀһىҊͷ΋ͷ w 4MBDL্Ͱެื͞ΕͨҊ݅ w ࣄۀઓུϕʔεͷ΋ͷ w

    ͍ΘΏΔτοϓμ΢ϯ w ։ൃɾӡ༻ϕʔεͷ΋ͷ w γεςϜϦϓϨΠεɺӡ༻վળͳͲ !27
  28. %FW0QT%BZT5PLZP ӦۀɾΧελϚʔαΫηεɾ੍࡞ͳͲ ϓϩμΫτʹؔΘ͍ͬͯΔ ଟ෦໳Ͱ༏ઌ౓Λٞ࿦ܾͯ͠ΊΔ !28

  29. %FW0QT%BZT5PLZP ʲ։ൃαΠΫϧʢʣʳ Ͳ͏࡞Δ͔ !29

  30. %FW0QT%BZT5PLZP w ͬ͘͟Γཁ͕͖݅·ͬͨΒ։ൃΛελʔτ w ࡉ͔͍6*΍69͸࡞Γͳ͕Β૬ஊͭͭ͠٧Ί͍ͯ͘ !30

  31. %FW0QT%BZT5PLZP "1*ઃܭ !31

  32. %FW0QT%BZT5PLZP w 1SPUPDPM#VGGFSTΛ࠾༻͍ͯ͠ΔͨΊ"1*ͷϨϏϡʔΛ࣮૷ʹઌߦ͠ ࣮ͯࢪͰ͖Δ w ࢓༷ͷ֬ೝͱซ࣮ͤͯࢪ͢Δ͜ͱʹͳΔͨΊɺޮ཰త w VCFSQSPUPUPPMʹΑΔνΣοΫɺϑΥʔϚοτΛߦ͏͜ͱͰ13΋ ݟ΍͍͢ w

    )5.-υΩϡϝϯτͷు͖ग़͠΋ߦ͍ͬͯΔ͕*%-ͱͯ͠༏लͳͷͰ௚ ઀QSPUPϑΝΠϧΛݟΔ͜ͱ͕ଟ͍ !32
  33. %FW0QT%BZT5PLZP ࣮૷ !33

  34. %FW0QT%BZT5PLZP w -JOUνΣοΫ w ػցతʹෆ۩߹ͷԹচͱͳΔ΋ͷΛ๷͙ w ϑΥʔϚολͱ૊Έ߹ΘͤͯϨϏϡʔޮ཰VQ w -JOUͰΧόʔͰ͖ͳ͍෦෼͸໋໊نଇΛͭͬͯ͘υΩϡϝϯτԽ͍ͯ͠ Δʢ͙͢ಡΊΔαΠζʹΩʔϓ͢Δͷେࣄʣ

    !34
  35. %FW0QT%BZT5PLZP w ୯ମςετ w ࠷খ୯ҐͰԿΛ͢Δؔ਺ͳͷ͔Λ೺ѲͰ͖ΔΑ͏ʹ w ݁߹ςετ w தن໛ɾେن໛ͳϦϑΝΫλϦϯάΛߦ͏ࡍͷσάϨνΣοΫʹ༗༻ w

    ϒϥοΫϘοΫεςετͱ࣮ͯ͠ࢪ !35
  36. %FW0QT%BZT5PLZP w 1VMM3FRVFTUʹ֤छνΣοΫΛ࿈ಈͤ͞ɺύε͠ͳ͍ͱϚʔδ͕Ͱ͖ͳ ͍ w ݸਓͰ։ൃɾճऩ͢Δ΋ͷ͸GPSLͨ͠ϦϙδτϦͰ࡞ۀ͢Δ͜ͱͰςε τ௨஌Λ෼཭Ͱ͖Δ w ݸਓPSHʹGPSLͨ͠ϦϙδτϦͷςετ͸ຊਓʹ͔͠௨஌͕͍͔ͳ͍ w

    ϓϩδΣΫτͰڞ༗͍ͯ͠Δϒϥϯνͷςετ͸શମ΁௨஌ !36
  37. %FW0QT%BZT5PLZP νΣοΫϙΠϯτͷ਺͕૿͑Δ͜ͱͰ Өڹൣғ͕޿͕Δલʹؾ͚ͮΔ !37

  38. main with SQLite
 SQLite wrappter app envoy CMS app Client

    ˞؆ུԽͨ͠ߏ੒ਤͰ͢ -JOU #VJME (JU1VTI -JOU 5FTU #VJME %FQMPZ -JOU 5FTU #VJME %FQMPZ -JOU 5FTU #VJME %FQMPZ QSPUPCVG DNT BQQ TRMJUFXSBQ
  39. %FW0QT%BZT5PLZP ʲ։ൃαΠΫϧʢʣʳ Ͳ͏඼࣭Λ୲อ͢Δ͔ !39

  40. %FW0QT%BZT5PLZP w جຊతͳϦϦʔεαΠΫϧ͸ि࣍ w ։ൃظؒ͸ن໛ʹΑͬͯ೔ʙ਺ϲ݄·Ͱ༷ʑ w 2"ʹΑΔݕূ͸εςοϓ w ʮ୯ମݕূʯɿҊ݅͝ͱʹߦ͏ݕূ w

    ʮશମݕূʢि࣍ݕূʣʯɿϦϦʔε༧ఆͷ΋ͷ͚ͩͰͳͦ͘ͷଞશػ ೳΛ໢ཏతʹݟΔ !40
  41. %FW0QT%BZT5PLZP શମݕূͷϝϦοτ !41

  42. %FW0QT%BZT5PLZP w ʰࠞͥΔͳةݥʱͳෆ۩߹Λ୳஌͠΍͍͢ w ʰϐλΰϥεΠονʱͳෆ۩߹Λ୳஌͠΍͍͢ w ୯Ұػೳ͝ͱʹશମݕূΛߦ͏৔߹ͱൺֱͯ͠޻਺Λ࡟ݮͰ͖Δ w ि࣍ϦϦʔεͱ͢Δ͜ͱͰސ٬΁ͷΞοϓσʔτҊ಺͕ߦ͍΍͍͢ !42

  43. %FW0QT%BZT5PLZP ݕূ؀ڥΛؚΊͨ σϓϩΠࣗಈԽ !43

  44. %FW0QT%BZT5PLZP w ຊ൪؀ڥҎ֎ʹि࣍2"ݕূΛߦ͏εςʔδϯά؀ڥɺ୯ମݕূΛߦ͏ݸ ผݕূ؀ڥʢηοτఔ౓ʣ͕͋Δ w ͢΂ͯΛίϚϯυϕʔεͷख࡞ۀͰߦ͏ͷ͸ࠎ w ୯ମݕূ؀ڥ΁ͷσϓϩΠ΋ຊ൪؀ڥ΍εςʔδϯά؀ڥͱಉ༷ʹಛఆϒ ϥϯν΁ͷQVTIΛτϦΨʔʹσϓϩΠΛߦ͏ w

    γεςϜߏ੒ɺσϓϩΠϩδοΫ͸ຊ൪ͱಉ౳ͳͷͰߏ੒΍σϓϩΠͷม ߋ࣌ʹͷݕূʹ΋ͳΔ !44
  45. %FW0QT%BZT5PLZP !45 ؀ڥ ϒϥϯν ຊ൪ QSPEVDUJPO εςʔδϯά NBTUFS QGEFWSFWJFX EFQMPZQGEFWSFWJFX

    QGEFWSFWJFX EFQMPZQGEFWSFWJFX QGEFWSFWJFX9 EFQMPZQGEFWSFWJFX9
  46. %FW0QT%BZT5PLZP ։ൃαΠΫϧʢʣ ϦϦʔε !46

  47. %FW0QT%BZT5PLZP w σϓϩΠؚΊͯجຊతʹ͸ݕূࡁΈ w ҆৺҆શʢ౰ࣾൺʣ !47

  48. %FW0QT%BZT5PLZP ։ൃαΠΫϧʢʣ Πϯϑϥߏ੒؅ཧ !48

  49. %FW0QT%BZT5PLZP w 5FSSBGPSNΛར༻͍ͯ͠Δ w جຊతʹ͸*".ͳͲΛؚΊͨॳظߏஙΛओ؟ʹஔ͍͍ͯΔ w ೔ʑͷӡ༻ͷதͰมߋ͕ݟࠐ·ΕΔ΋ͷ͸ΞϓϦͷϦϙδτϦʹಉࠝ w ྫɿ&$4ͷλεΫఆٛɺFOWPZZBNMɺ%PDLFSpMFͳͲ w

    σϓϩΠ্ͷ౎߹΋͋Δ͕ɺΠϯϑϥ໘ͷมߋ΋ΞϓϦέʔγϣϯίʔυ ͱಉ༷ͷϑϩʔʹࡌͤΒΕΔϝϦοτ΋େ͖͍ !49
  50. %FW0QT%BZT5PLZP ։ൃαΠΫϧʢʣ ܭଌɾ؂ࢹ !50

  51. %FW0QT%BZT5PLZP w ސ٬͔ΒͷϑΟʔυόοΫ͸ΧελϚʔαΫηε෦ܦ༝ w ΤϯυϢʔβ͔ΒͷϑΟʔυόοΫ͸ετΞϨϏϡʔ͕جຊ w &&ςετ w ຊ൪؀ڥʹରͯ͠ఆظతʹ࣮୺຤Λ࢖ͬͨςετΛ࣮ࢪ w

    γεςϜϦιʔεɺϩά؂ࢹ w %BUBEPH "1. Λར༻ !51
  52. %FW0QT%BZT5PLZP ·ͱΊ !52

  53. %FW0QT%BZT5PLZP w ೥ӡ༻͖ͯͨ͠αʔϏεͷ։ൃͷྲྀΕɺऔΓ૊ΈΛ͝঺հ͠·ͨ͠ w ٕज़తෛ࠴ʹର͢ΔऔΓ૊Έ w ىҊ͔Βܭଌ·ͰͷྲྀΕ w ͲͷΑ͏ʹͯ͠σϦόϦʔαΠΫϧߴ଎ԽΛ࣮૷͍ͯ͠Δ͔ !53

  54. Ұॹʹ೰Έɺ੾᛭ୖຏͯ͘͠ΕΔ ஥ؒΛืू͍ͯ͠·͢ʂ 5IBOLZPV