͍ͪ͞ͳձࣾͰͷAnsible׆༻ࣄྫʰAnsibleపఈೖʱग़൛ه೦Πϕϯτ(2017/2/27)߹ಉձࣾdecr දࣾһลҰ(@kaz_29)
View Slide
WHO!?ลҰ(@kaz_29)߹ಉձࣾ decr දࣾһWebΞϓϦέʔγϣϯͷ։ൃiOSΞϓϦέʔγϣϯͷ։ൃΫϥυΠϯϑϥͷߏஙɾӡ༻
WHAT?• WebܥͷαʔϏε։ൃ• iOSΞϓϦ։ൃ• APIόοΫΤϯυͷ։ൃ• ϑϩϯτΤϯυΞϓϦ։ൃ• Πϯϑϥߏஙɾӡ༻
TEAM• Θͨͳ (Backend, iOS, Ops, (Frontend))• member(Backend, Frontend) x 1• (࣌ʑύʔτφʔ͞Μͷελοϑ)
SIZEɾɾɾɾɾɾ ɾɾɾ࠷খ 1ଟͯ͘ 4ʙ10ఔʙ
TOOLS / SERVICES
DEVELOPMENT• Vagrant + Ansible• ansible_local provisioner• synced_foler(rsync-auto + rsync-back)• nodejsϗετଆͰ࡞ۀ͍ͯ͠Δ(࠷ۙ)• ndenvͰόʔδϣϯཧ
ࣗಈςετ͍ͯ͠·͔͢ʁ
DEVELOPMENT• UnitTest͕ͬͭΓॻ͍ͯ·͢• TDD·Ͱͬͯͳ͍͚ͲProductionͷίʔυͱηοτͰCommit͍ͯ͠·͢• JSͷϑϩϯτ/iOSΞϓϦͷςετ৭ʑΜͰ͍·͢• ཁ݅తʹඞཁͰ͋ΕBDDͰडೖΕςετॻ͘(͜ͱ͋Γ·͢)• डೖΕςετͷࣗಈԽ৭ʑ಄௧͍Ͱ͢
DEVELOPMENT• ܧଓతΠϯςάϨʔγϣϯ• githubͷpushͰCiecleCIͰࣗಈςετ• API Documentͷࣗಈੜ(swagger)• Github/PivotalTracker/CircleCIͳͲͷΠϕϯτSlackʹ௨• Ұ෦αʔϏεͰHubotͰdeployͰ͖ΔΑ͏ʹ͍ͯ͠Δ
STAGING / PRODUCTION• ͱͰ͖Δ͚ͩຊ൪ͱಉ͡ڥͰ…• εςʔδϯάڥɺ༧ࢉతʹԽͳͲ͠ͳ͍ͳͲɺશ͘ҰॹͰͳ͍͜ͱ͕ଟ͍• ༻్• Provision/Deployͷಈ࡞ݕূ• ΫϥΠΞϯτ͞Μͷಈ࡞ݕূ• ʢεςʔδϯά༻ͷΞϓϦΛ࡞ͯ͠ʣ
STAGING / PRODUCTION• Dynamic inventory΄ͱΜͲͬͯͳ͍• ͕গͳ͍ͷͰ…• Feature flag• Քಇঢ়ଶΛSlackʹ௨• Ansible/CapistranoͳͲͷ࣮ߦঢ়گ• ࢹͷΤϥʔ
·ͱΊ• શͯͷڥΛAnsibleͰߏங• खಈͰઃఆ͠ͳ͍• pyenv+virtualenvେࣄ• ࣗಈςετॏཁ• ChatͰঢ়گΛࣗಈڞ༗͢ΔͱָͰ͢