ããã«ã¡ã¯ãSRE ã® @chaspy ã§ãã
Quipper ã® SRE Team ã§ã¯ããã¦ããªã³ãã¼ãã£ã³ã°ãã¨å¼ã°ãããã®ãè¡ã£ã¦ç´2å¹´çµã¡ã¾ããã
ãã®å¾ã3人ã®ä»²éãå ¥ç¤¾ãããã®ãã³ã«ãªã³ãã¼ãã£ã³ã°ããã»ã¹ãæ¹åãã¦ãã¾ããã
æ¬è¨äºã§ã¯ãSRE Team ã®ãªã³ãã¼ãã£ã³ã°ããã»ã¹ã®"ãã¾"ãæ¯ãè¿ãã¨ã¨ãã«ããã®å¹æãæç¾©ãããªã³ãã¼ãã£ã³ã°ãåããã¡ã³ãã¼ããã®ã³ã¡ã³ãã交ãã¦ç´¹ä»ãããã¨æãã¾ãã
ãªã³ãã¼ãã£ã³ã°ã®ç®ç
ããããã¦ãªã³ãã¼ãã£ã³ã°ã®ç®çã«ã¤ãã¦è¨èªåãã¦ããã¾ããããã¯ä»ãæãå¤ãã£ã¦ãããããNew Joiner ã®æ©æã®æ¦ååãã ã¨æã£ã¦ãã¾ãã
æ©æã®æ¦ååã®ããã«ã¯ä½ãå¿ è¦ããã¨ãããã¨ãèããã¨ãç¾å¨ã®ãã¼ã ã®ããã·ã§ã³ããæ®æ®µã®æ¥åã¸ãã¬ã¼ã¯ãã¦ã³ããããããã¹ã ã¼ãºã«éè¡ããããã«ä½ãå¿ è¦ããèããå¿ è¦ãããã¾ãã
ç§ãã¡ SRE Team ã®ããã·ã§ã³ã¯"æ¬çªç°å¢ã®å®å®éç¨"ã§ãããã¨ã¯è¨ãã¾ã§ãããã¾ããããããããããã"ãªã³ã³ã¼ã«"ã®ãã㪠Reactive ãªä»äºä»¥å¤ããéå®³ãæªç¶ã«é²ããã㪠Proactive ãªä»äºãããã¾ããã¾ããçµç¹ã¨ã·ã¹ãã ãã¹ã±ã¼ã«ããããã«éçºè ããµãã¼ãããä»äºãããã¾ãã
ãã®ããã«å¤å²ã«ããã SRE Team ã®æ¥åã®éè¦ãªè¦³ç¹ããã£ãããã¬ã¼ã¯ãã¦ã³ããã¨ãããªæãã«ãªãã¾ãã*1
ãããã£ãä»äºã®ã«ãã´ãªãããä¸ã§ã*5ãã£ã¨ãéè¦ãªã®ã¯ãæ¢åã·ã¹ãã ã®çè§£ãã ã¨èãã¾ããã¾ããDeveloper Productivity ã®åä¸ããPlatform éçºã®ããã«ã¯ãDeveloper ã¨ã®é¢ä¿æ§ç¯ããéè¦ã§ãããã
ãã®2å¹´éã¯ããã2ç¹ãéè¦ãã¦ãªã³ãã¼ãã£ã³ã°ããã»ã¹ãæ¹åãã¦ãã¾ããã
ãªã³ãã¼ãã£ã³ã°ããã°ã©ã ã®ãã¾
ç¾å¨ã®ãªã³ãã¼ãã£ã³ã°ããã°ã©ã ã¯ä»¥ä¸ã®ããã«ãªã£ã¦ãã¾ãã
- ã¢ã«ã¦ã³ãç»é²
- Learning Session
- Happy Path Test ã®ä½é¨ãéãããããã¯ãã®çè§£
- Good first issues ã®ãã¢ä½æ¥ã«ããã·ã¹ãã æ§æã®çè§£
- Postmortem èªæ¸ä¼
- ãã¢ã»ã¢ã©ã¼ããã³ããªã³ã°
ã¾ããåãå ¥ãå´ã¨ãã¦ã¯ä»¥ä¸2ç¹ãè¡ããåé¡ã®æ©æè§£æ±ºã«åªãã¾ããã
- 1on1
- ä»ãã¼ã ã¨ã®é¢ä¿æ§ç¯æ¯æ´
ã¢ã«ã¦ã³ãç»é²
ããã¯ä»¥åãããã£ã¦ãããã®ã§ãããAWS ãã¯ããã¨ããå種 SaaS ã¢ã«ã¦ã³ãã®ç»é²ãè¡ãã¾ãã
大åã® SaaS ã¯æ¢åã¡ã³ãã¼ã Invite ãã¾ãããAWS ã® IAM ã¯ã³ã¼ãã§ç®¡çããã¦ãããããNew Joiner ã¯å ¥ç¤¾åæ¥ã«èªåã§ Pull Request ãåºãã¦èªåèªèº«ãã¡ã³ãã¼ã«è¿½å ãã¾ãã
Learning Session
ãæ¢åã·ã¹ãã ã®çè§£ããç®çã«ãåã¡ã³ãã¼ãããããã»ãã·ã§ã³ãæ å½ããé©å½ãªç²åº¦ã§ New Joiner ã«åãã¦èª¬æãã¾ããéè¦åº¦ãé«ãããããå¦ã¶å¿ è¦ã«ãªããã®ã¯å ã«ã¤ã³ããããã¦ãããã»ããåççã ããã§ãã
ææ°ã®ã»ãã·ã§ã³ã§ã¯ä»¥ä¸ã®ãããªãé¡ç®ã§è¡ããã¾ããã
- Kubernetes Cluster
- GitOps
- AutoScaling*6
- SRE Culture*7
- Architecture overview
- Observability
- Unicorn
- MongoDB
- AWS Secrets Manager
- monorepo CI/CD
åãã¼ãã¯ãããã徿ãªã¡ã³ãã¼ãã»ãã·ã§ã³ãªã¼ãã¼ã¨ãªã説æãè¡ãã¾ããã
ãããã£ããã®ã¯ãå½ç¶ãã®ä¸åéãã§ã¯å®å ¨ã«ä¸èº«ãçè§£ãããã¨ã¯é£ããã¨æãã¾ããããããããã§"ä¸åº¦"触ãã¦ããã¦ããããããã°ãã£ããªãã¨å¾ããæãåºãããã¨ã¯çè§£ãä¿é²ãããã§ããããã¾ããã»ãã·ã§ã³ã®è³æã¯ã¤ã³ããã¯ã¹ã®å½¹å²ã示ãã®ã§ãå¿ è¦ã«ãªã£ãã¨ãã«å¿ è¦ãªæ å ±ã«ã¢ã¯ã»ã¹ã§ããããã«ãªãã§ãããã
Happy Path Test ã®ä½é¨ãéãããããã¯ãã®çè§£
StudySapuri å°ä¸é«ã»Quipper ã§ã¯ Weekly Release ã®éã« Happy Path Test ã¨å¼ã°ãã Regression Test ãå¤é¨ã®ä¼ç¤¾ã«ãé¡ããã¦ãã¾ãããã®ãã¹ãã®ä¸é¨ãè¡ããã¨ã§ããããã¯ãã®æ©è½ã¨ã·ã¹ãã ã¨ã®é¢é£æ§ãçè§£ãã¦ãããã¾ããã
ã¾ãããã®éç¨ã§ãã¹ãç°å¢ãèªåã§æ§ç¯ãããã¨ã§ãéçºç°å¢ã®ä½ãæ¹ã¨ãã©ãã£ãã¯ããã¼ãçè§£ãããã¨ãã§ãã¾ããã*8
Good first issues ã®ãã¢ä½æ¥ã«ããã·ã¹ãã æ§æã®çè§£
New Joiner å ¥ç¤¾åã«ãäºåã« Good first issue label ãã¤ãã¦ããããã®ä¸ããé©åãªãµã¤ãºã®ãã®ãé¸ãã§ãã£ã¦ãããã¾ããã
ããã«ãã£ã¦ã¡ã¤ã³ã®ãªãã¸ããªã® Release / Deploy ã®æ¹æ³ããPull Request ã«ããã¬ãã¥ã¼ã¨ãã£ãåºæ¬çãªä»äºãããªãããã·ã¹ãã ã®æ§æçè§£ãæ·±ãã¦ããã¾ãã
Postmortem èªæ¸ä¼
éå»ã® Postmortem åè¨ 30ä»¶ ããã¹ã¦ç®ãéãã¾ãããããããæ¢åã·ã¹ãã ã®çè§£ããæ¯ããæ½çã§ããããã«ããã(Timeline ãè¦ãã Slack Thread ãã¿ããã¨ã«ãã£ã¦) é害ã追ä½é¨ã§ããç¹ã Incident Response ã®äºåæºåã¨ãã¦éå¸¸ã«æå¹ã§ãã
è¦ã¦ããã¨ãããããã¯"æ ¹æ¬å¯¾å¦"ãå°å ¥ãããã®ã§ä»ã¯èµ·ãã¾ããã*9ã¨ãã£ããã®ãå¤ããã·ã¹ãã ã®é²åãæããããç¹ãããã£ãã§ãã
ä»å Postmortem ãã¯ããã @chaspy ããã¹ã¦èª¬æãè¡ãã¾ãããããã¯ç¸å¯¾çã«å¨ç±å¹´æ°ãé·ããPostmortem ã®å 容ã説æã§ããããã§ããããããéã«æ°ããã¡ã³ãã¼ãèªåãå¨ç±ãã以åã® Postmortem ã説æã§ããããã«ãªã£ã¦ããªãç¹ã¯èª²é¡ãæãã¾ãã
ãã® Postmortem èªæ¸ä¼ãè¡ãããã«ã¯ããé害ã«å¯¾ã㦠Postmortem ããã¡ãã¨æ¸ããã¦ããããTODO ãæ¶åãããã¯ãã¼ãºããã¦ããããã¨ãåæã§ããã¯ãã¼ãºããã¦ããªã Postmortem ãããã¤ãæ®ã£ã¦ããç¹ã¯èª²é¡ã§ãã
ãã¢ã»ã¢ã©ã¼ããã³ããªã³ã°
ç¾å¨ SRE Team ã§ã¯æ¯æ¥ã®ã¢ã©ã¼ããã³ããªã³ã°ãå½çªå¶ã«ãã¦ãã¾ããã¢ã©ã¼ããã³ããªã³ã°ã¯ SRE ã®ãã£ã¨ãéè¦ãªä»äºã®1ã¤ã§ãããIncident Responseãã®ããã«å¿ é ã§ãããã¢ã©ã¼ããã©ãããæå³ã§ãä½ãåå ã§çºçãã¦ãã©ãã¢ã¯ã·ã§ã³ãããã°ããããç¥ããã¨ã¯é常ã«é£ããããæ¢åã·ã¹ãã ã®çè§£ããªãã§ã¯è¡ãã¾ããã
ãããªãé²ç«æãçã¦ç¾å ´ã«åããã®ã§ã¯ãªã*10ãã¾ãã¯è¨ç·´ãå¿ è¦ã§ãã
ã¾ããã©ããã£ãããªã·ã¼ã§ã¢ã©ã¼ããçºå ±ãããã®ãããã® Severity 㨠Channel è¦ç´ã説æãã¾ããã
(åè: SRE Lounge #12ã§ã®çºè¡¨)
SRE Team ã§ã¯æ¯æ¥ã® Daily Standup ã§æ¥ã ãã¦ããã¢ã©ã¼ãã確èªããã¢ã¯ã·ã§ã³ã決ãã¦ãã¾ãããããã£ãæ¥ã ã®æ´»åã New Joiner ã®çè§£ãæ¯ãã¦ããã¨æãã¾ãã
1on1
1on1 ã¯åºæ¬çã«ã¯ Engineering Manager ãåã¡ã³ãã¼ã¨ä¸å®ééã§è¡ã£ã¦ãã¾ãããããã«å ãã¦ã¡ã³ã¿ã¼ã¨ã® 1on1 ãé±ã«ä¸åè¡ã£ã¦ãã¾ãã
1on1 èªä½ã®æå³ã广ãç¹ã«ããã§ã¯ã¨ãããã¾ããããå°ãªãã¨ããªã³ãã¼ãã£ã³ã°ã«å¯¾ããéè¦ãªãã£ã¼ãããã¯ãããããå ´ã ã¨æãã¦ãã¾ããããã£ããã¨ãããã£ã¦ããªããã¨ããã£ã¼ãããã¯ãã¦ããããã¨ã§ããªã³ãã¼ãã£ã³ã°ããã»ã¹ãã®ãã®ãæ¹åãããã¨ãã§ãã¾ãã
ä»ãã¼ã ã¨ã®é¢ä¿æ§ç¯æ¯æ´
SRE Team ã¯éçºè ã¨ã®é¢ä¿ãä½ããã¨ã¯é常ã«éè¦ã§ããéçºè ããåé¡ãåãåãããããããã¨ã§ãã£ãããã·ã¹ãã ã«åé¡ããã£ãæã«ä¸ç·ã«åé¡ã解決ãã¦ããããã«ã¯æ®æ®µããé¢ä¿ãä½ã£ã¦ãããã¨ãéè¦ã§ãã
å¨ç±å¹´æ°ãé·ããã¨ã®å¯ä¸ï¼ï¼ï¼ã®å¼·ã¿ããã®ç¹ã§ãç§ã¯ New Joiner ã«æ¯ã¹ã¦ãã·ã¹ãã ã¨ãã¼ã ã®ç´ä»ãããã¼ãã¼ã½ã³ã誰ãã¨ãã£ããã¨ãææ¡ãã¦ãã¾ãããã®ããããããããªããé¢ä¿ãã¤ãªããããªæ¯ãèããæèçã«è¡ãã¾ããã
- Senior Software Engineer*11ãå¼ãã§éè«
- School Product Team ã¡ã³ãã¼ã¨ã® 1on1
ãªã³ãã¼ãã£ã³ã°ã®ãããã
æå¾ã«ããªã³ãã¼ãã£ã³ã°ããã«æ¹åãã¦ããããã«èãããã課é¡ã«ã¤ãã¦è¿°ã¹ã¾ãã
Incident Response ã®æ¨¡æ¬å®é¨: Chaos Engineering
ããé害対å¿ã¯ Fire Fighting ... ç«æ¶ã使¥ã«å©ãããã¾ãããé²ç«æã®çæ¹ãããããªãç¶æ ã§ãããªãç¾å ´ã«ãã£ã¦ãä½ãã§ãã¾ããããã
é害対å¿ã«é¢ãã¦ãé©åãªå¦ç¿ä½é¨ãè¨è¨ããå¿ è¦ãããã¾ããPostmortem èªæ¸ä¼ã¯ãããã追ä½é¨ã§ããè¯ãæ½çã§ãããæ¬²ãè¨ãã¨ãã£ã¨è¨å ´æã®ããè¨ç·´ãããããã®ã§ãã
å æ¥ã® SRECon Americas 2020 ã§ã Chaos Engineering ã®ã»ãã·ã§ã³ã¯å¤æ°ã¨ãããããã¦ããããæ¢åã·ã¹ãã ã®çè§£ãã«å¯¾ãã¦ãã£ã¦ã¤ãã®çã ã¨èããªããæãã¾ããã
å°ããã¤ã§ããããªã³ãã¼ãã£ã³ã°ã®ãããªãæ¯æ´ã¨ãéè¦ãªã¢ã©ã¼ããã¡ããã¨çºå ±ãããã®å®æç¹æ¤ãããã¦ãChaos Engineering ã«ææ¦ãã¦ããããã¨èãã¦ãã¾ãã
Postmortem ã®æ´»ç¨æ¹å
Postmortem ã®æ°ã¯ã©ãã©ãå¢ãã¦ããã®ã§ãæ¯åãã¹ã¦ã«ç®ãéããã¨ã¯ç¾å®çã§ã¯ãªãã§ãããã
ãã®ãããè¦ãã¹ããå¦ã³ããã Postmortem ãããã¯ã¢ãããããã¨ããå 容ã®ãµããªãæ½åºãããã¨ã§ã誰ã§ã説æãã§ããããã«ãªãã¨ããã¨èãã¦ãã¾ãã
ä»åã@int128 ã説æãåãã¦ã®1è¡ã¾ã¨ããä½ã£ã¦ãããã®ã§ããã®è¦é ã§èª¬æãåãã New Joiner ãæ¬¡ã¸ã®å¦ç¿ææã¸ã¤ãªããããªãã¨ãã§ããã¨ããã¨èãã¦ãã¾ãã
New Joiner ããã®ææ³
ããã§ã¯7æã«å ¥ç¤¾ãããã¾ç¾å¨å¤§æ´»èºãã¦ãã @int128 ãããªã³ãã¼ãã£ã³ã°ã«ã¤ãã¦ã®ã³ã¡ã³ããããã£ã¦ç· ãããã¨æãã¾ãã
å ¥ç¤¾ãã¦ãããªã³ãã¼ãã£ã³ã°ããã°ã©ã ãå å®ãã¦ãããã¨ã«é©ãã¾ããã Learning Session ãªã©ã§ååéã®æèè ããå°éç¥èãæãã¦ããããã®ã§ãå ¥ç¤¾ç´å¾ããä»äºãé²ããããã£ãã¨æãã¾ãã ã¾ããç§èªèº«ããªã³ãã¼ãã£ã³ã°ãéãã¦å®æçã«æ¯ãè¿ããè¡ããæ¬¡ã® New Joiner ã«åãã¦ãªã³ãã¼ãã£ã³ã°ä½é¨ãæ¹åã§ããã®ã¯ããã£ãã§ãã ãã«ãªã¢ã¼ãã§ã®å ¥ç¤¾ã¯ã¡ãã£ã¨ä¸å®ã§ããããWorking Out Loud ã®æåããã¼ã å å¤ã¨ã® 1on1 ã§ã ãã¶å©ããããã¨æãã¾ãã ãã®å ´ãåãã¦ååã®ã¿ãªãã¾ã«ã礼ãä¼ãããã¨æãã¾ãã
ãããã«
Quipper SRE Team ã®ãªã³ãã¼ãã£ã³ã°ãåãã¦ã¿ããæ¹ãæ¹åãããæ¹ãã¾ãã¯å ¥ç¤¾ããã¯ããã¾ãããã
Quipper ã§ã¯ä¸çã®æã¦ã¾ã§å¦ã³ãå±ããã仲éãåéãã¦ãã¾ãã
*1:@chaspy ã®ç¬æã¨åè¦ã§ã
*2: Incident Response ã SLI/SLO ã®çå®ãªã© Culture é¢ã®ãµãã¼ããå«ãã
*3:Application Platform
*4:Service / Infrastructure
*5:ã©ããããããã坿¥ã«ã¤ãªãã£ã¦ãããããå®å ¨ã«åãã¦æ±ãããã®ã§ã¯ããã¾ãããä¾ãã° Platform ã¯ãããå ¨ã¦ãæé©åããåå°ã¨ãªãæ©è½ãæä¾ãã¾ããSite Reliability Engineering ã®åä¸ã®ããã« Cost ã¨ã®ãã¬ã¼ããªããèãããã¨ãããã§ãããã
*6:Cluster Autoscaler, Horizontal Pod Autoscaler
*7:Design Doc, Producition Readiness Checklist, SLI/SLO, Postmortem
*8: Quipper ã¯ã¢ããªã±ã¼ã·ã§ã³ã¯ãã¹ã¦ monorepo ã¨å¼ã°ãã1ã¤ã® repository ã«å«ã¾ãã¦ãããPull Request ãä½ãã¨ã¢ã¯ã»ã¹ã§ããç°å¢ãç«ã¡ä¸ãã
*9:ä¾ãã°ãHPA(Horizontal Pod Autoscaler) å°å ¥ä»¥åã¯æåã¹ã±ã¼ãªã³ã°ãéã«åããé害ãèµ·ããã¦ãããã¨ããã£ã
*10:ã·ã¹ãã é害ãç«äºã«å©ããæ¯å©
*11:ãããã Job Title ããããä»åã® New Joiner ã§ãã£ã @int128 ããã®ã¿ã¤ãã«
*12:ãã®å°ãåã« @kuranari ãã㨠@chaspy ã 1on1 ãããæãããããã®æã¡ãã¿ãåºããªãã調åãã¦ã¤ãªãã£ã¦ããæãã(鳿¥½ã«ã®)"Live Session"ã ãªãã¨ãããã ãããã£ãã®ã§ã"è¯ãã©ã¤ã"ã¨ãã表ç¾ããã¦ãã¾ã