하루에 10번 배포하기 - flickr
DESCRIPTION
flickr의 개발자와 운영자의 협력이야기TRANSCRIPT
![Page 1: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/1.jpg)
하루에 10 번 배포하기Flickr 의 개발자과 운영자의 협력 이야기
John Allspaw & Paul HammondVelocity 2009
![Page 2: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/2.jpg)
30 억장의 사진들 초당 40000 장의 사진
![Page 3: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/3.jpg)
개발자 versus 운영자
![Page 4: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/4.jpg)
“ 장비가 잘못된 게 아냐 ,당신 코드가 이상 한거라구 !!”
![Page 5: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/5.jpg)
“ 코드가 잘못된게 아니고 , 장비가 이상한거야 !”
![Page 6: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/6.jpg)
스위치나 나사를 조이고 있다쉽게 흥분한다 .장애가 발생하면 막 소리지른다
약간 좀 괴상하다상사 가까이 앉아있다
너무 복잡하게 생각한다
![Page 7: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/7.jpg)
![Page 8: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/8.jpg)
맨날 “안돼 ~~~” 만 연발하고신기술은 우리 사이트를 망쳐버릴 것이라고 무서워하며
뭔 일만 터지면 남 탓만 하는…
![Page 9: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/9.jpg)
운영자의 고정관념
왜냐면 사이트는 갑자기 예고 없이 죽으니까…
왜냐면 누구도 운영자에게암것도 얘기 안해주니까…
왜냐면 걔네들은 맨날 안돼다고만 하니까…
![Page 10: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/10.jpg)
전통적인 생각들
개발자의 역할은 새로운 기능들을 추가하는 것이다 .
운영자의 역할은 사이트를 안정적이고 빠르게 유지시키는 것이다 .
![Page 11: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/11.jpg)
운영자의 역할은 사이트를 안정적이고 빠르게 유지시키는 것이 아니다
![Page 12: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/12.jpg)
운영자의 역할은 사업이 잘 돌아가게 하는 것이다( 이것은 개발자의 역할이기도 하다 )
![Page 13: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/13.jpg)
사업은 언제나 변화를 요구한다
![Page 14: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/14.jpg)
그러나 변화가 이 모든 일들의 원흉은 아니다
![Page 15: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/15.jpg)
안정성을 위해서 변화를 거부하고또는
필요할 때마다 계속 변화를 요구하는 것 ?
![Page 16: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/16.jpg)
여러 툴과 문화를 바꿔서 변화의 무서움을 이겨내야 한다
![Page 17: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/17.jpg)
![Page 18: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/18.jpg)
운영자처럼 생각하는 개발자개발자 처럼 생각하는 운영자
![Page 19: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/19.jpg)
“ 하지만 그건 내게 달렸어 !”
![Page 20: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/20.jpg)
여러분은 항상 더 다른 사람처럼 생각할 수 있어요 !
![Page 21: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/21.jpg)
Tools
![Page 22: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/22.jpg)
1. Automated infrastructures만약에 오직 한가지 여러분이 할 수 있는 것을 꼽자면…
![Page 23: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/23.jpg)
1. Automated infrastructures만약에 오직 한가지 여러분이 할 수 있는 것을 꼽자면…
Chef CFengine
BCfg2 FAI
System Imager
Puppet Cobbler
![Page 24: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/24.jpg)
Role &설정 관리
OS 이미지화
![Page 25: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/25.jpg)
2. Shared version control
![Page 26: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/26.jpg)
모든 사람들이 어디를 봐야 하는 지 안다 .
![Page 27: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/27.jpg)
3. One step build
![Page 28: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/28.jpg)
![Page 29: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/29.jpg)
3. One step build
and deploy
![Page 30: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/30.jpg)
![Page 31: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/31.jpg)
![Page 32: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/32.jpg)
누가 ? 언제 ? 무엇을 ?
![Page 33: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/33.jpg)
![Page 34: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/34.jpg)
작고 여러 번의 업데이트
![Page 35: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/35.jpg)
4. Feature flag( 일명 코드 브랜칭 )
![Page 36: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/36.jpg)
![Page 37: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/37.jpg)
![Page 38: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/38.jpg)
항상 trunk 에 저장
![Page 39: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/39.jpg)
모든 사람들이 어디를 봐야 하는 지 안다 .
![Page 40: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/40.jpg)
![Page 41: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/41.jpg)
beta 버전은 멤버들만
![Page 42: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/42.jpg)
![Page 43: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/43.jpg)
Dark launches(UI 변경이 없고 , perfomance 향상이 목적인 업데이트를 특정 사용자 집단에게만 노출해서 테스트 )
![Page 44: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/44.jpg)
![Page 45: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/45.jpg)
5. Shared metrics
![Page 46: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/46.jpg)
![Page 47: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/47.jpg)
![Page 48: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/48.jpg)
![Page 49: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/49.jpg)
![Page 50: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/50.jpg)
![Page 51: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/51.jpg)
5. IRC and IM robots
![Page 52: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/52.jpg)
개발자 , 운영자 로봇이서로 대화하는듯한 로그
![Page 53: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/53.jpg)
Culture
![Page 54: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/54.jpg)
1. Respect만약에 오직 한가지 여러분이 할 수 있는 것을 꼽자면…
![Page 55: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/55.jpg)
고정관념을 버려요( 모든 개발자가 게으른 건 아닙니다 )
![Page 56: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/56.jpg)
다른 사람들의 전문성과 , 의견 , 책임을 인정해요 .
![Page 57: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/57.jpg)
그냥 “노”라고 대답하지 마세요
![Page 58: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/58.jpg)
감추지 마세요
![Page 59: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/59.jpg)
개발자 : 운영자에게 당신의 코드가 어떤 영향을 줄지 말해주고
• 어떤 메트릭스가 변경되고 , 어떻게 변경되었는지 ?• 리스크는 무엇인지 ?• 무언가 잘 못 돌아가게 되었을때의 징후는 ?• contingencies 는 어떤것 들이 있는지 ?
이것들은 운영자와 이야기 하기 전에 개발자 분들이 정리해야 하는 것입니다 .
![Page 60: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/60.jpg)
2. Trust
![Page 61: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/61.jpg)
운영자는 새로운 기능에 있어서 개발자를 믿어줘야 하고 ,
개발자는 운영자가 제안하는인프라의 변화를 믿어줘야합니다 .
모든 사람들이 다른 사람들이 우리 사업을 위해서최선을 다하고 있다는 것을 믿어줘야 합니다 .
![Page 62: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/62.jpg)
운영서와 escalation 계획을 공유하세요
![Page 63: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/63.jpg)
문고리나 레버들을 제공하세요( 조작가능한 포인트들 )
![Page 64: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/64.jpg)
운영자에게 : 투명해져요개발자에게 시스템에 들어갈 문을 만들어주세요 .
![Page 65: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/65.jpg)
3. 실패에 대한 의연한 태도
![Page 66: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/66.jpg)
실패는 있습니다
![Page 67: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/67.jpg)
만약 여러분이 모든 실패를 방지할 수 있다고 믿고 있다면 , 여러분은 대응력을 개발하지 못하고 있는 겁니다
![Page 68: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/68.jpg)
![Page 69: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/69.jpg)
우리에게 필요한건 ,
비상사태 대비훈련
![Page 70: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/70.jpg)
4. Avoiding Blame
![Page 71: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/71.jpg)
손가락질 금지 !
![Page 72: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/72.jpg)
손가락질 프로세스장애닷 !아악 !!
놀라기 ,묵비권 ,
잘못 찾기
비난하기 ,내 살길
찾기
낑낑숨기 ,
자아보호
문제 파악하기
장애수정복구
![Page 73: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/73.jpg)
생산적인 프로세스장애닷 !아악 !!
죄책감느끼기
새 삶살아가기
문제 파악하기
장애수정복구
![Page 74: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/74.jpg)
개발자들에게 : 당신의 코드가 붕괴되면 ,, 누군가가 당신을 깨울 겁니다
![Page 75: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/75.jpg)
운영자들에게 :현재 여러분의 두통과 고통에 대해서 건설적인 피드백을 주세요 .
![Page 76: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/76.jpg)
1. Automated infrastructure2. Shared version control3. One step build and deploy4. feature flags5. shared metrics6. IRC and IM robots
1. Respect2. Trust3. 실패에 대한 의연한 자세4. Avoiding Blame
![Page 77: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/77.jpg)
쉽지 않습니다 . 그냥 서로에게 계속 소리지르면서 지낼 수도 있을 겁니다 .
![Page 78: 하루에 10번 배포하기 - flickr](https://reader036.vdocuments.net/reader036/viewer/2022081516/557a9778d8b42a9b568b4844/html5/thumbnails/78.jpg)
( 감사합니다 )