Slide 1

Slide 1 text

esaΛࢧ͑Δ ٕज़ͱؾ࣋ͪ Rails DM 2018 day-2 esa LLC ਂ୩ಞੜ (@fukayatsu)

Slide 2

Slide 2 text

contents • ࣗݾ঺հɾձࣾ঺հɾϓϩμΫτ঺հ • before esa • esaʹࢸΔ·Ͱͷٕज़ͱؾ࣋ͪ • after esa • esaʹ௥Ճ͞Ε͍ٕͯͬͨज़ͱؾ࣋ͪ(೥౓ผ) • ·ͱΊ 2

Slide 3

Slide 3 text

3 • ߹ಉձࣾ esa • ߹ܭ3໊ • ΤϯδχΞ2໊ • σβΠφʔ1໊ • શһ͕ίʔυΛॻ͘ • શһ͕ձࣾ୅ද • ૑ۀ4೥໨

Slide 4

Slide 4 text

esa LLC͕΍͍ͬͯΔ͜ͱ • esa.ioͷ։ൃɾӡӦ • pplog.netͷ։ൃɾӡӦ • ଞͷձࣾͷ։ൃ΍σβΠϯͷ͓ख఻͍ 4

Slide 5

Slide 5 text

esa LLC͕΍Βͳ͍͜ͱ • αʔϏε΍ձࣾͷٸܹͳ੒௕͸໨ࢦ͞ͳ͍ • ౤ࢿ͸ड͚ͳ͍ • (ۜߦ౳͔Βগֹͷ༥ࢿ͸ड͚ͨ͜ͱ͕͋Δ) • Web ޿ࠂ͸ग़ͣ͞ɺޱίϛ͕ϝΠϯ 5

Slide 6

Slide 6 text

esa.ioͱ͸? 6

Slide 7

Slide 7 text

7

Slide 8

Slide 8 text

8 • ݱࡏɺ໿2,200νʔϜ͕ར༻த • ITاۀΛத৺ͱͨ͠ձࣾɾஂମɾݸਓʢن໛: 1ਓʙ300ਓఔ౓ʣ • ΤϯδχΞɾσβΠφʔΛத৺ʹɺاըɾӦۀ৬ɾࣄ຿ܥͷํ΋ར༻ • ݸਓ΍͝Ոఉɺେֶͷݚڀࣨɺझຯͷஂମ΋ଟ਺ User About esa.io • MarkdownͰॻ͚ΔɺνʔϜͷͨΊͷ৘ใڞ༗πʔϧ • ೔ใɾٞࣄ࿥ɾϝϞɾΞΠσΞɾ࢓༷ॻɾاըॻ౳ɺνʔϜͰͷυ Ωϡϝϯτڞ༗Ͱར༻

Slide 9

Slide 9 text

9 • ݱࡏɺ2,000νʔϜҎ্͕༗ྉར༻ • ITاۀΛத৺ͱͨ͠ձࣾɾஂମɾݸਓʢن໛: 1ਓʙ300ਓఔ౓ʣ • ΤϯδχΞɾσβΠφʔΛத৺ʹɺاըɾӦۀ৬ɾࣄ຿ܥͷํ΋ར༻ • ݸਓ΍͝Ոఉɺझຯͷஂମ΋ଟ਺ User Concept: ৘ใΛɺҭ͍ͯͨɻ • υΩϡϝϯτ͸࠷ॳ͔Β׬ᘳͰ͸ͳ͘ɺ࣌ؒΛ͔͚ͯΑ͍΋ͷʹҭ͍ͬͯ͘ • ݸਓ͕ΏΔ͍ΞΠσΞΛग़͠΍͘͢ɺΈΜͳͰܧଓతʹվળ͠΍͍͢࢓૊Έ • ্͔Βͷԡ͠෇͚Ͱ͸ͳ͘ϘτϜΞοϓͰࣗൃతʹ৘ใൃ৴͢ΔΑ͏ʹͳΔ ͜ͱ͕ɺΑΓ͍͖͍͖ͱͨࣗ͠཯తͳνʔϜͮ͘Γʹͭͳ͕Δ

Slide 10

Slide 10 text

before esa 10

Slide 11

Slide 11 text

େֶ࣌୅ͷݪମݧ • ޻ֶ෦ػցܥ͕ͩͬͨɺ੒੷͕ͦΜͳʹྑ͘ͳ͔ͬ ͨͷͰر๬ͷݚڀࣨʹೖΕͳ͔ͬͨ • ͨ·ͨ·ೖͬͨݚڀࣨ͸์ࣹઢͷݚڀΛ͍ͯ͠Δ ͱ͜Ζͩͬͨ • ݚڀʹ͋·Γڵຯ͕෸͔ͣɺݚڀࣨʹߦͬͯ΋ ݚڀʹؔ܎ͳ͍޻࡞΍ϓϩάϥϛϯάΛ͍ͯ͠ ͨ (ڭत͸ීஈผ౩ͳͷͰ) 11

Slide 12

Slide 12 text

େֶ࣌୅ͷݪମݧ • ಺ྠ޲͚ͷ(ͩ͘Βͳ͍)WindowsΞϓϦΛ ࡞ͬͯຖ೔ࣗ෼ͨͪͰ࢖͍ͳ͕Βվળ͍ͯͬ͠ ͨ • ͱͯ΋ָ͔ͬͨ͠ɻ 12

Slide 13

Slide 13 text

৽ଔब׆࣌ͷPRεϥΠυΑΓൈਮ

Slide 14

Slide 14 text

৽ଔब׆࣌ͷPRεϥΠυΑΓൈਮ

Slide 15

Slide 15 text

ࣾձਓʹͳ͔ͬͯΒ • ब৬͔ͯ͠Β΋৭ʑڵຯ͕͋Δ΋ͷΛยͬ୺͔Β࡞ͬͯ ΈͨΓͨ͠ • ࡞͍ͬͯ͘͏ͪʹपลͷٕज़Λࣗવʹֶश͍ͯͬͨ͠ • ͦͷ࣌࢓ࣄͰ΍͍ͬͯΔ͜ͱͷपล෼໺͕झຯͷ։ൃʹ ͭͳ͕Γɺझຯͷ։ൃͷ੒Ռ͕࢓ࣄʹ΋ϑΟʔυόοΫ ͞ΕΔ • => Α͍॥؀ 15

Slide 16

Slide 16 text

ͦͷࠒझຯͰ࡞ͬͯͨ΋ͷ • Ոి(iRemocon/IRKit)΍Roombaͷૢ࡞ؔ࿈ • Ruby gems • Chrome Extension / Chrome Apps • LTTM, markdown-linker, … • AndroidΞϓϦ 16

Slide 17

Slide 17 text

pplogͱͷؔΘΓ • ࡞ͬͯΈͨ͏ͪͷҰ͕ͭpplogͷඇެࣜAndroid ΫϥΠΞϯτͩͬͨ • ͦͷԑͰpplogք۾ͷਓʑͱग़ձ͍ɺ։ൃ߹॓Λ ܦͯesa͕ੜ·Εͨ • ޙʹesa LLCͰpplogΛӡӦ͢Δ͜ͱʹͳΔͷͩ ͕ɺͦΕ͸·ͨผͷ͓࿩ 17

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

after esa 19 (͜ͷลͰ12෼͙Β͍໨ඪ)

Slide 20

Slide 20 text

2014 • members: 10 / teams: - • ։ൃ߹॓ (5/9 ~ 5/11) • ຊ൪؀ڥͰ࠷ॳͷهࣄ͕࡞੒͞ΕΔ (5/10) • νʔϜػೳ͕௥Ճ͞ΕΔ (6݄) • esa LLCઃཱ (11݄) 20

Slide 21

Slide 21 text

esaΛࢧ͑Δؾ࣋ͪ(2014) • େֶ࣌୅ͷݪମݧͱಉ༷ʹɺ10ਓఔ౓Ͱ࢖͍ͳ ͕Βຖ೔ͷΑ͏ʹϑΟʔυόοΫΛ΋Β͍ɺͦ ΕΛ൓ө͍ͯ͘͠ͷָ͕͔ͨͩͨͩͬͨ͠ • ౰࣌ϑϧλΠϜͰRailsͷ࢓ࣄΛ͍͕ͯͨ͠ɺ͋ ·ΓۤʹͳΒͳ͔ͬͨ • ͲͪΒ΋RailsͳͷͰ૬ޓʹྑ͍Өڹ΋͋ͬͨ 21

Slide 22

Slide 22 text

esaΛࢧ͑Δٕज़(2014) • Ruby / Rails / ֤छGem • Heroku ͱ֤छaddon • AWS S3 / CloudFront • ଟগͷϑϩϯτΤϯυٕज़ • GitHub / Idobata 22 Heroku্Ͱಈ͘ ී௨ͷRailsΞϓϦ

Slide 23

Slide 23 text

2015 • members: 2,300 / teams: 900 • ਖ਼ࣜϦϦʔε (ݩ୴) • ֎෦ެ։ػೳ (1݄) • TeXه๏ͷαϙʔτ (4݄) • APIͷఏڙ։࢝ (5݄) • ͓·͚: લ৬Λ΍Ίͯesaʹ࣠଍ΛҠ͢(2݄) 23

Slide 24

Slide 24 text

esaΛࢧ͑Δؾ࣋ͪ(2015) • ༗ྉԽޙ΋ܧଓͯ͘͠ΕΔਓ͕ଟͯ͘خ͍͠ • ͏·͍͚͘͹esa͚ͩͰੜ׆Ͱ͖Δ͔΋ʁ • ΑΓศརʹɺΑΓշదʹ࢖͑ΔΑ͏ʹ͍ͨ͠ • ͦ͏ͨ͠ΒΑΓ΋ͬͱ΋ͬͱਓʹ࢖ͬͯ΋ Β͑ΔͷͰ͸ʁ 24

Slide 25

Slide 25 text

esaΛࢧ͑Δٕज़(2015) • ϦϦʔεϊʔτۦಈ։ൃ • ϑΟʔυόοΫۦಈ։ൃ • ग़Ք͗ 25

Slide 26

Slide 26 text

ϦϦʔεϊʔτۦಈ։ൃ • ϦϦʔεϊʔτΛग़͍ͨ͠ؾ࣋ͪΛར༻ͯ͠ ։ൃ͢Δ • લ৬Λୀ৬͕ͯ࣌ؒ͠Ͱ͖ͨΓɺ·ͩ࡞Δ΂ ͖ػೳ͕ͨ͘͞Μ͋ͬͨΓɺesaͰϦϦʔε ϊʔτΛॻ͘ͷ͕؆୯ͩͬͨΓͯ͠2015೥͸ 88ճϦϦʔεϊʔτ͕ॻ͔Εͨ 26

Slide 27

Slide 27 text

ϑΟʔυόοΫۦಈ։ൃ • ϑΟʔυόοΫΛ͘ΕͨਓΛ͍͍ҙຯͰڻ͔͍ͤͨؾ࣋ͪΛ ར༻ͯ͠։ൃ͢Δ • 5෼Ͱฦ৴ͨ͠Γɺ1࣌ؒҎ಺ʹमਖ਼׬ྃͨ͠Γ • masterϒϥϯνʹϚʔδͰຊ൪σϓϩΠ͞ΕΔͷͰɺग़ઌ Ͱ΋εϚϗ͔ΒGitHub্Ͱฤूͯ͠ରԠ΋Մೳ • ʮͰ͖ͨΒ30෼੾Γ͍ͨʯͱ͔͍͏λΠϜΞλοΫͷΑ͏ ͳཁૉ΋͋Δ 27

Slide 28

Slide 28 text

ग़Ք͗ • ͜ͷࠒ͔ΒݱࡏʹࢸΔ·Ͱɺि2ճଞࣾͷνʔϜʹࠞͬ͡ ͯRailsʹΑΔ։ൃΛख఻͍ͬͯΔ • ॳظ͸ओʹӡసࢿۚͷͨΊ • ్த͔Β͸ͷٕज़τϨϯυʹऔΓ࢒͞ΕΔϦεΫΛݮΒ ͢ͱ͍͏ҙຯ߹͍΋͋ͬͨ • ·ͨɺग़Ք͗ઌͷձࣾ΋esaΛ࢖ͬͯ͘Ε͓ͯΓɺݱ৔ Ͱ௚઀ϑΟʔυόοΫΛड͚ΒΕΔར఺΋͋Δ 28

Slide 29

Slide 29 text

2016 • members: 5,500 / teams: 1,300 • Heroku => AWS ECS (3݄) • PlantUML (10݄) • ElasticsearchԽ (11݄) • ͓·͚: ଣੴఠग़खज़ͰೖӃ (8݄) 29 (͜ͷลͰ20෼͙Β͍໨ඪ)

Slide 30

Slide 30 text

esaΛࢧ͑Δؾ࣋ͪ(2016) • ʮϖʔδͷද͕ࣔ஗͍Αʯʮݕࡧ͕஗͍Αʯ • ʮਃ͠༁Ͷ͐ʯͱ͍͏ؾ࣋ͪ • ʮUMLਤΛॻ͖͍ͨͰ͢ʯ • ʮΑʔ͠ɺ΍Δ͔ʔʯͱ͍͏ؾ࣋ͪ • (ݸผͷਓ͔Βݸผͷ࣌ظʹෳ਺དྷΔϑΟʔυόοΫ͸༗ ༻ੑ͕ߴ͍) 30

Slide 31

Slide 31 text

esaΛࢧ͑Δؾ࣋ͪ(2016) • ࠇࣈԽ • ͜ͷ౰࣌͸·ͩ2໊ମ੎Ͱɺ໾һใु΋͔ͳ Γ߇͑Ίʹ͍͍ͯͨͤ͠Ͱ΋͋Δ • ؾ࣋ͪʹଟগ༨༟͕ੜ·Εͨ 31

Slide 32

Slide 32 text

esaΛࢧ͑Δٕज़(2016) • Docker + AWS ECS • Elasticsearch • PlantUML 32

Slide 33

Slide 33 text

ΠϯϑϥେҾͬӽ͠ • Heroku͔ΒAWS ECSʹҠߦ • ଞͷλεΫΛฒߦͰקΊͳ͕Βɺ࡞ۀࣗମ ͸1ϲ݄ఔ౓Ͱ׬ྃ • ͜ͷ࣌ʹDockerԽ͓͍ͯͨ͜͠ͱͰɺޙͷ αϒγεςϜͷ௥Ճ͕΍Γ΍͘͢ͳͬͨ 33

Slide 34

Slide 34 text

ΠϯϑϥେҾͬӽ͠ 34 docs.esa.io/posts/179

Slide 35

Slide 35 text

Ҡߦޙͷߏ੒ 35

Slide 36

Slide 36 text

ݕࡧv2 • PostgresqlͰແཧ΍Γશจݕࡧ͍ͯͨ͠ͷΛ Elasticsearchʹஔ͖׵͑ͨ • Elasticsearchʹ࠶ೖ໳͠ͳ͕Β2ϲ݄ఔͰϦ Ϧʔε • ϦϦʔεޙ΋ҠߦظؒΛઃ͚ͯ৻ॏʹ੾ସ 36

Slide 37

Slide 37 text

PlantUMLରԠ • PlantUML͸Java੡ͷϓϩμΫτ • ͍͔ͭ͘ཁ๬Λ໯͍ͬͯͨ࣌ʹɺJRuby + Sinatra Ͱ࣮૷͢Δ͜ͱΛࢥ͍͖ͭ1೔Ͱ࣮૷ • ECS΁ͷ੾Γସ͑ޙͩͬͨͨΊɺDockerԽ ͑ͯ͞͠͠·͑͹ϦϦʔε͸؆୯ͩͬͨ 37

Slide 38

Slide 38 text

͓·͚: ଣੴͷఠग़खज़ͰೖӃ • ࣃҩऀͰ஬ࣃ͕ͳ͍͔ϨϯτήϯΛऔͬͨ࣌ʹଣӷથ ʹ1.5cmఔ౓ͷੴ͕ݟ͔ͭΓɺେֶපӃΛ঺հ͞ΕΔ • 8݄຤ʹશ਎ຑਲԼͷखज़Ͱଣӷથ͔ΒੴΛऔͬͯ΋ Β͍ɺ3ധ4೔ͰແࣄୀӃ • खज़த͸Կ͔͋ͬͯ΋ରԠͰ͖ͳ͍ͷͰɺೖӃલʹো ֐࣌ͷࣗಈ෮چػߏ΍ChatOpsͷ੔උΛؤுͬͨ 38

Slide 39

Slide 39 text

2017 • members: 10,000 / teams: 1,700 • @ppworks join (2݄) • WebPay => PAY.JP (4݄) • Ruby bizάϥϯϓϦಛผ৆ (12݄) 39

Slide 40

Slide 40 text

esaΛࢧ͑Δؾ࣋ͪ(2017) • օʹesaͰهࣄΛॻ͘ͷΛָ͠ΜͰ΄͍͠ • ͦΕ͕Α͍৘ใڞ༗ʹͭͳ͕Δͱ࠷ߴ • Ruby bizάϥϯϓϦಛผ৆ • ࠓ·Ͱ΍͖ͬͯͨ͜ͱ͕·ͨҰͭใΘΕͨ ؾ࣋ͪʹ 40

Slide 41

Slide 41 text

esaΛࢧ͑Δٕज़(2017) • ֤ࣗ΍Γ͍ͨ࣌ʹ΍Γ͍ͨ͜ͱΛओମతʹ΍ Δ • Կ͔Λ΍Δͱ͖͸Ϟνϕʔγϣϯ্͕͕ͬ ͨλΠϛϯάͰ΍Δͷ͕ޮ཰͕Α͘ෛ୲΋ গͳ͍ • ΋ͪΖΜਵ࣌ଞͷϝϯόʔͷαϙʔτ΋͢Δ 41

Slide 42

Slide 42 text

esaΛࢧ͑Δٕज़(2017) • ֤ࣗ΍Γ͍ͨ࣌ʹ΍Γ͍ͨ͜ͱΛओମతʹ΍ Δ • fukayatsu: ܾࡁγεςϜҠߦɺࡉ͔͍վળ • ppwoks: ϚϧνϩάΠϯɺΧελϜֆจࣈ • taea: σβΠϯௐ੔ɺΞΧσϛοΫϓϥϯ 42

Slide 43

Slide 43 text

2018 • members: 16,000 / teams: 2,200 • ʁ • ʁ • ʁ 43

Slide 44

Slide 44 text

esaΛࢧ͑Δؾ࣋ͪ(2018) • কདྷతʹؾ͕࣋ͪͲ͏ͳΔ͔͸༧ଌࠔ೉ͳͷ Ͱ͋·Γߟ͍͑ͯͳ͍ • ؾ࣋ͪΑ͘esaΛଓ͚ΒΕΔΑ͏ͳ؀ڥΛվળ ͠ଓ͚Δ͜ͱʹूத͢Δ • ͦͷͨΊʹٕज़Λຏ͖ɺखࡳΛ૿΍͍ͯ͠ ͘ 44

Slide 45

Slide 45 text

esaΛࢧ͑Δ༧ఆͷٕज़(2018) • Πϯϑϥؔ࿈ / ϑϩϯτΤϯυؔ࿈ • ϞόΠϧΞϓϦ • ಉ࣌ฤूͷͨΊͷૢ࡞ม׵(OT) 45 ※ݸਓͷݟղͰ͢

Slide 46

Slide 46 text

·ͱΊ 46

Slide 47

Slide 47 text

·ͱΊ • খ͘͞ϦϦʔε͠ɺϑΟʔυόοΫΛಓඪʹͯ͠ ҭ͍ͯͯ͘ઓུ • αʔϏεΛҭ͍ͯͯΔͱɺ͍ͭͷؒʹ͔ࣗ෼΋αʔ ϏεʹҭͯΒΕ͍ͯΔ (ٕज़తʹ΋ਫ਼ਆతʹ΋) • ͜Ε͔Β΋esaΛ࢖ͬͯ͘ΕΔօ͞Μͱڞʹαʔ ϏεΛҭ͍͖͍ͯͯͨ 47