20 Jan 2017 / This is Mercari, This is a SRE - Mercari DAY
by
Kenichi Sasaki
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
This is Mercari, This is an SRE Mercari DAY 2017 @AcademyHills Kenichi Sasaki
Slide 2
Slide 2 text
Introduce myself • Kenichi Sasaki (@siroken3) • Mercari, Inc (JOIN at 2014/7) Site Reliability Engineering (SRE) Team • αʔόϓϩϏδϣχϯάɾσϓϩΠͷඋ • ։ൃڥͳͲͷඋ
Slide 3
Slide 3 text
Agenda • Site Reliability Engineering (SRE) ͱ • MercariͱMercariͷSRE • Mercari SREͷࣄྫ • ·ͱΊ
Slide 4
Slide 4 text
SRE ͱ
Slide 5
Slide 5 text
4JUF3FMJBCJMJUZ&OHJOFFSJOH w (PPHMF͕ఏএ w (PPHMFͷ༷ʑͳϓϩμΫτɾ αʔϏεΛԣஅͯ͠ɺαΠτ ͷ৴པੑΛ্ͤ͞Δ 4PGUXBSF&OHJOFFS5FBN
Slide 6
Slide 6 text
SRE ͷ࠾༻(US) Facebook, Twitter, Apple, eBay, Microsoft.. 3,662
Slide 7
Slide 7 text
SRE in JP • 2015/11 Mercari Tech Blog ʹͯհͯ͠Ҏ߱ ͕ू·Δ • “ΠϯϑϥνʔϜվΊ Site Reliability Engineering (SRE) νʔϜʹͳΓ·ͨ͠” http://tech.mercari.com/entry/2015/11/18/153421 • 2016/06 SRE Tech Talk#1 • https://connpass.com/event/34825/
Slide 8
Slide 8 text
SRE Tech Talk#2! • https://eventdots.jp/event/609456 • 2017/01/23 12:00 క
Slide 9
Slide 9 text
SREͷ࠾༻(JP) 40!
Slide 10
Slide 10 text
Mercari & Mercari SRE
Slide 11
Slide 11 text
Infrastructure UK ४උத JP US ͘͞ΒΠϯλʔωοτ ੴङDC AWS GCP
Slide 12
Slide 12 text
Architecture US nginx nginx nginx ©2011 Amazon Web Services LLC or its affiliates. All rights reserved. Client Multimedia Corporate data center Traditional server Mobile Client IAM Add-on Example: IAM Add-on ence ) Assignment/ Task Requester Workers DNS-RR App App App App App App MySQL MySQL memcached memcached nginx nginx nginx ©2011 Amazon Web Services LLC or its affiliates. All rights reserved. User Users Client Multimedia C d Mobile Client Internet AWS Management Console IAM Add-on Example: IAM Add-on Human Intelligence Tasks (HIT) Assignment/ Task Requester Workers Amazon Mechanical Turk Non-Service Specific DNS-RR App App App App App App MySQL MySQL memcached memcached EC2 EC2 EC2 EC2 EC2 EC2 EC2 EC2 EC2 EC2 EC2 EC2 EC2 JP ΫϥυͰ ಉ͡ߏ util util cloud cloud util util EC2 EC2
Slide 13
Slide 13 text
Mercari SRE Team
Slide 14
Slide 14 text
Mercari SRE • 2015/11 ͔Β SRE ʹมߋ ͦΕ·ͰΠϯϑϥνʔϜ • ϝϯόʔ5ਓ • શһ͕౦ژΦϑΟεۈ
Slide 15
Slide 15 text
SREʹมߋͨ͠ཧ༝ • ʮΠϯϑϥʯ͔ΒΠϝʔδ͢ΔۀͷΛ͑Δ • ϝϧΧϦΛ5ɾ10ͱ͍ͬͯͨͩͨ͘͘Ίͷʮ৴པੑʯ • εϚϗͰ24͖࣌ؒͳ࣌ʹɺ͖ͳॴ͔ΒΞΫηε͕དྷ Δɻ͍ͭͰշదʹΞΫηε͕Ͱ͖ΔʮՄ༻ੑʯͱ ʮύϑΥʔϚϯεʯ • ιϑτΣΞΤϯδχΞϦϯάͰ͜ΕΒΛղܾ͍ͯ͘͠νʔϜ • (ւ֎/USͰ௨͡Δ໊শ)
Slide 16
Slide 16 text
Mercari SREͷۀ • APIαʔόɺϛυϧΣΞͷՄ༻ੑɺύϑΥʔϚϯεͷ ҡ࣋ɾ্ • OnCall (োରԠͷ൪) • ϩάऩूɾੳج൫ͷߏஙɺӡ༻ • αʔόϓϩϏδϣχϯάɾσϓϩΠͷඋ • ηΩϡϦςΟͷ୲อ
Slide 17
Slide 17 text
Mercari SREࣄྫ • Gaurun - push notification server • ngx_luaʹΑΔBalancer֦ு • PHP daemon class preload • URL Shorten Service • ChatOpsˍZero DownTime Deploy • etc…
Slide 18
Slide 18 text
ChatOps Deploy
Slide 19
Slide 19 text
ChatOps Deploy • ϝϧΧϦ • SCMͱͯ͠GitHubΛ࠾༻ • IssueTrackerͰͷ༷ݕ౼ • GitHub PullRequestͰͷϐΞϨϏϡʔ
Slide 20
Slide 20 text
Google Calendar + ChatOps
Slide 21
Slide 21 text
Inside ChatOps @jp-go-bold: yes check PullRequest check Issue Tracker exec Ansible merge PR git clone git clone composer install deploy application preprocessing ϐΞϨϏϡʔࡁ Ϛωʔδϟঝೝࡁ
Slide 22
Slide 22 text
·ͱΊ
Slide 23
Slide 23 text
·ͱΊ • ϝϧΧϦC2CϚʔέοτϓϨΠεɺ৴པੑॏཁ • SRE৴པੑΛγεςϜ໘͔Βࢧ͑Δ • ۀΠϯϑϥʹཹ·Βͳ͍ɻ৴པੑΛٻ