2015년 12월 21일 월요일

DevOps 소프트웨어 딜리버리 하기



DevOps Process

Endless Possibilities: DevOps can create an infinite loop of release and feedback for all your code and deployment targets.




FaceBook, Flickr, Netflix, Etsy은 어떻게 DevOps를 할까요?

배포 주기
  • 매일 마이너 업데이트 
  • 메이저 업데이트 (매주 화요일 오후)

DeploymentAPipeline


출처: http://ieeexplore.ieee.org/xpl/article Details.js p?arnumbe r=644 9236


소스 버젼 관리
  • 모든 FB 개발자는 Single stable branch에서 작업
  • 따라서, long-lived branche들을 머징하는 데 시간 소비 하지 않도록 함 

Tools
  • 코드 리뷰: Phabricator (http://phabricator.org/)
  • 테스트 자동화: Watir (http://watir.com/)
  • 테스트 자동화: Selenium (https://github.com/seleniumhq/selenium)
  • 성능 테스트: Perflab 

커뮤니케이션
  • 자체 IRC서버로 배포할 때 관련자들 다같이 IRC로 커뮤니케이션 (평균 700명)
  • 개발자가 몇 분 내로 답변하지 않을 때는 해당 개발자 개발한 건 빼고 배포 

서비스 모니터링
  • 배포 이후에 트래픽의 변화, 자원 사용량, 프로덕션 환경의 각각 세그먼트들 등
  • 심지어 Facebook에 대한 트윗들까지 모니터링함

Global Public Internet Companies, Ranked by Market Capitalizatiion

자료: http://www.kpcb.com