MisterSuiteを支える技術
Mister SuiteΛࢧ͑Δٕज़2016/06/24 ؔࠜ༟لdots.ελʔτΞοϓ෦
View Slide
ࣗݾհ• ؔࠜ༟لʢ͖ͤͶ ͻΖͷΓʣ• גࣜձࣾSQUEEZE• Twitter: @checkpoint• ෳͷελʔτΞοϓɺϕϯνϟʔاۀΛܦݧ
ίϛϡχςΟ׆ಈ• PyCon JP 2014 ελοϑ• PyCon JP 2015 ϓϩάϥϜνʔϜ෭࠲• PyCon JP 2016 ελοϑ• Python͘͘ձʢओ࠵ʣ
ίϛϡχςΟ׆ಈʢ̎ʣ• LLDiver• PyCon JP 2014• Plone Symposium Tokyo 2015• PyCon mini Hiroshima• PythonΤϯδχΞཆಡຊʢڞஶʣ
͍ͨ͜͠ͱ• ελʔτΞοϓͳΒͰͷΈɺϫΫϫΫͷڞ༗ʢdots.ελʔτΞοϓ෦ΑΓʣ• ༻͍ͯ͠ΔςΫϊϩδʔ• ࣮ࡍͷ։ൃݱɺϓϩμΫτ։ൃ• ձࣾͷεςʔδຖͷ՝ɺվળํ๏
גࣜձࣾSQUEEZE• ઃཱ: 20149݄• ࣾһ: 23໊ʢ֎ࠃ੶: 8໊ʣ• ࣄۀ: ΠϯόϯυɺO2Oؔ࿈ͷϏδωε• ۭ͖෦ͷղফʢຽധͷ༗ޮ׆༻ʣ• Ҭ׆ੑԽʢҬίϛϡχςΟ͕࣋ͭࢿ࢈ͷ׆༻ʣ
։ൃϝϯόʔʢ8໊ʣ• ϓϩμΫτϚωʔδϟʔ: 1໊• όοΫΤϯυΤϯδχΞ: 5໊• ϑϩϯτΤϯυΤϯδχΞ: 1໊• σβΠφʔ: 1໊
• Python• Django• ScrapyʢScrapingʣόοΫΤϯυ
ϑϩϯυΤϯυ• AngularJS• jQuery• Bower• Gulp
Πϯϑϥ• Route 53ʢdomainʣ• S3ʢstorageʣ• Elastic BeanstalkʢEC2, ELBʣ• SQSʢmessage queueʣ• RDSʢMySQLʣ• Redis (Cache, KVS)
ϩάɺύϑΥʔϚϯεࢹ• ElasticSearch• Kibana
αʔϏε• NewRelicʢPerformanceʣ• CircleCIʢAutomationʣ• JenkinsʢTest)• MailgunʢMailʣ
։ൃϓϩηε• Scrum• JIRA• Github• Slack• Qiita:Team
։ൃͷਐΊํ• ϓϩμΫτΦʔφʔɺϓϩμΫτϚωʔδϟɺ֤νʔϜ͕ٞ• ػೳɺमਖ਼߲ͷ༏ઌॱҐܾఆ• ΤϯδχΞͱ։ൃ͢ΔͷΛܾఆ• ࣮ͯ͠ϦϦʔεʢिʹ1Ґʣ
͍ͨ͜͠ͱ• ༻͍ͯ͠ΔςΫϊϩδʔ• ࣮ࡍͷ։ൃݱɺϓϩμΫτ։ൃ• ձࣾͷεςʔδຖͷ՝ɺվળํ๏
ۀʙ3͔݄Ґʢ1ʣ• ۀϝϯόʔ2໊͕ϚχϡΞϧͰΦϖϨʔγϣϯ• ϏδωεϞσϧͷݕূ• ސ٬ͷχʔζΛΔɺधཁ͋Δ͔• ސ٬ͲΜͳ͜ͱΛظ͍ͯ͠Δ͔• Ϗδωεͱͯ͠εέʔϧ͢Δ͔
ۀʙ3͔݄Ґʢ2ʣ• Evernoteʢ݅ใཧʣ• Google Calendarʢ༧ɺਗ਼ཧʣ• ExcelʢՁ֨ͷ࠷దԽͳͲʣ• ༧ཧɺ݅ͷਗ਼ɺήετରԠͳͲશͯϚχϡΞϧͰߦ͏
3͔݄ʙҐʢ1ʣ• ٕज़ސ: 1໊• ΤϯδχΞ: 1໊• ϑϩϯτΤϯυ: 1ʙ2໊
3͔݄ʙҐʢ2ʣ• ϕʔεͱͳΔγεςϜͷ։ൃ• γεςϜ͕Ͱ͖Δ·ͰϚχϡΞϧʢঃʑʹஔ͖͑ʣ• ࠷ݶඞཁͳػೳΛ࡞Δʢεϐʔυ࠷༏ઌʣ• ݅ཧγεςϜ• ༧ͷཧγεςϜ• ϝʔϧ, Airbnbͱͷܨ͗͜Έ
3͔݄ʙҐʢ3ʣ• ͱʹ͔͘εϐʔυॏࢹ• εςʔΫϗϧμʔͱΤϯδχΞ͕ίϛϡχέʔγϣϯ• ػೳ͕ग़དྷ࣍ୈϦϦʔε• όά͕͋ͬͨΒଈ࣌ରԠ
ʙ1Ґʢ1ʣ• ΤϯδχΞ: 2໊• ϑϩϯτΤϯυ: 1໊
ʙ1Ґʢ2ʣ• ۀҕୗ෦ΛࣾһͰߦ͏Α͏ʹ• νʔϜͱͯ͠ͷ։ൃ։࢝• SCRUMͷελʔτ• ϦϦʔεαΠΫϧͷඪ४Խ
• ٕज़Ϩϕϧͷෆ౷Ұ(ҧ͏όοΫάϥϯυ)• ֤ϝϯόʔ͕Γ͍ͨํ๏ͰػೳΛ࡞Δ• ଐਓੑ͕େ͖͍• ٕज़తෛ࠴͕ݟ͑ΔΑ͏ʹͳ͖ͬͯͨ
վળͨ͜͠ͱ• ͷՄࢹԽ• Τϥʔ௨• ύϑΥʔϚϯεࢹ• ϩάͷू• Πϯϑϥͷඋ
1ʙ1ʢ1ʣ• ΤϯδχΞ: 5໊• ϑϩϯτΤϯυ: 1໊• σβΠφʔ: 1໊• ϓϩμΫτϚωʔδϟʔ: 1໊
1ʙ1ʢ2ʣ• Ϗδωε͕େ͖͘ͳͬͯདྷͨ• ͞Βʹෳͷϝϯόʔͷ૿Ճ• εςʔΫϗϧμʔͷ૿Ճ• ϓϩμΫτෳʹͳͬͨ
• ӡ༻ίετͷ૿Ճ• ίϛϡχέʔγϣϯίετͷ૿େ• ٕज़తෛ࠴͕ΑΓݟ͑ΔΑ͏ʹͳ͖ͬͯͨ
ղܾํ๏• ϓϩμΫτϚωʔδϟʔ࠾༻ʢΰʔϧɺ༏ઌॱҐɺίϛϡχέʔγϣϯʣ• ϦϑΝΫλϦϯά• DBઃܭมߋ• ΞʔΩςΫνϟมߋ• ςετ• ։ൃڥͷඋ• ίʔυϨϏϡʔͷ࣮ࢪʢ2ʙ3࣌ؒʣ• ࣾษڧձ
վળ• ΤϯδχΞ։ൃʹूதग़དྷΔΑ͏ʹͳͬͨ• ៉ྷͳઃܭͰϞνϕʔγϣϯ্͕Δ• ٕज़ʹରͯ͠ΑΓਂ͍͕ٞͰ͖ΔΑ͏ʹͳΔ• ֤ΤϯδχΞ͔ΒͷఏҊ͕૿͑ͯ͘Δ
େࣄʹ͖ͯͨ͜͠ͱ• ༏ઌॱҐΛܾΊΔʢΒͳ͍͜ͱΛܾΊΔʣ• ϘτϧωοΫΛݟۃΊΔ• ࣗಈԽɺ࠷దԽΛਐΊΔ• ఏҊܕͷνʔϜʢखΛڍ͛Α͏ʣ• Ͳ͜ʹߦͬͯ௨༻͢ΔΤϯδχΞʹͳΖ͏
·ͱΊ• ελʔτΞοϓͷ։ൃָ͍͠• ձࣾͷεςʔδʹΑͬͯ༏ઌॱҐҧ͏• ͥͻ࠙ձͰ͓͍ͤͯͩ͘͠͞͞ʂ
એ• ΤϯδχΞืूதʂ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠