배포

27
장장 장장장 장장장장 장장 장장장 장장장 장장 장장장

Upload: woojing-seok

Post on 23-Jun-2015

897 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: 배포

장고 스터디 쉬어가는 타임

배포에 대해서 알아 봅시다

Page 2: 배포

먹고살기 힘드네요• 먹고사니즘으로 발표의 질이 저하되었습니다 .• 미식가 분들은 유의하세요

Page 3: 배포

배포가 무엇일까요 ?

• 사전적 정의

신문이나 책자 따위의 물품을 널리 나누어줌

Page 4: 배포

배포가 무엇일까요 ?

• 미쿡사람들의 생각

the distribution of forces in preparation for battle or work

Page 5: 배포

배포가 무엇일까요 ?

• 우리 동네의 생각

Software deployment is all of the activities that make a software system available for use.

소프트웨어 시스템이 사용가능 하도록 만드는 모든 활동들 .

Page 6: 배포

릴리즈와 배포• 릴리즈

웹으로 말하자면 내부 스테이징에서 테스트가 완료된 상태

• 배포준비된 릴리즈를 프로덕션에 올려서 사용자가 쓸수 있게 하는것

Page 7: 배포

배포의 안좋은 사례• 소스 형상관리 툴을 사용하지 않음• 그래서 작업을 그냥 서버에서 해버림• 그런데 그 서버가 프로덕션• 나의 수정이 곧 배포• 릴리즈가 없음

Page 8: 배포

배포의 안좋은 사례• 소스 형상관리 툴을 여전히 사용안함• 내 로컬 머신에서 테스트함• 작업 완료된걸 서버에 올림• 근데 그 서버가 프로덕션• 여전히 릴리즈는 없는거임• 너무 예제가 극단적인가요

Page 9: 배포

배포의 안좋은 사례• 형상관리툴 사용함• 개발 및 테스트는 내 로컬 머신에서• 스테이징에 배포• 프로덕션에 배포

• 무엇이 문제일까요 ?

Page 10: 배포

왜 릴리즈가 있어야 하는가• 완료지점이 있어야함 . 일종의 목표 .• 문제가 발생한 시점을 확실하게 알수 있음• 롤백이 쉬워짐• 각 문제를 격리 시킬수 있음

Page 11: 배포

손 배포의 문제• 어쨋든 사람손이 끼면 문제는 발생함• 사람은 실수를 하기마련• 하지만 배포는 자주 하게됨• 기능이 많아질수록 배포도 복잡해짐• 단순작업은 놓치기 쉬움 (sanity check)• 실수는 점점 잦아짐 .• 결론은 자동 배포 .

Page 12: 배포

자동 배포의 장점• 좋음…• 그냥 좋음…• 무조건 좋음…

• 배포가 더이상 노동이 아닌 단순 작업화됨 .• 노동은 개발에만 쏟아도 부족함 .• 자동화 할수 있는건 역시 모두 자동화해야함

Page 13: 배포

쉽고편한 자동배포툴• FABRIC 을 쓰는겁니다 .• 묻지도 따지지도 말고 쓰는겁니다 .• SSH 를 통해 여러분이 하는 모든작업을 자동화

시키는 겁니다 .

Page 14: 배포

FABRIC 의 자주 쓰는 기능• Run : 원격 서버에서 명령을 실행함• Env : ssh 유저명 , 원격 호스트등의 값설정• Local : 원격이 아닌 로컬에서 명령을 실행• Cd : 원격에서 작업 디렉토리 변경시 사용• Task : 데코레이팅한 함수만 명령어로 사용

Page 15: 배포

FABRIC 의 고급 기능• Parallel : 데코레이팅된 함수를 병렬로 실행

관리하는 서버가 많은경우 유용함• Context_manager: with 구문과 같이 쓸수 있는

명령어를 다수 제공run 명령어는 stateless 하게 수행되기 때문

Page 16: 배포

LET’S FABRIC

• 배포시에 하는 작업을 써내려갑니다 .• 써놓은 작업 목록을 패브릭으로 하나씩

구현해봅니다 .

Page 17: 배포

무중단 배포• 옛날에 이런거 많이 봤죠 ?

Page 18: 배포

배포의 어려움• 언제나 위험성을 내포하고 있음• 적절한 시간선택• 롤백의 가능성• 서비스 가용성 저하로 인한 손해

Page 19: 배포

무중단 배포는 가능한가• 돈 많으면 별로 고민할 필요 없음 .• 전가의 보도 L4 스위치• ㅈㄹ 짱 비쌈 .

Page 20: 배포

싸게싸게 쉽게쉽게• 쉽게쉽게

graceful reload• 싸게싸게

Nginx reverse proxy

Page 21: 배포

graceful

• 우아하게…• 만들어진 커넥션은 일단 다 처리를 해줌 .• 중단없이 설정 변경

Page 22: 배포

Nginx reverse proxy

• 가난한 자의 L4 스위치• 파랑 초록 배포

http://martinfowler.com/bliki/BlueGreenDeployment.html

• 참쉽죠 ?

Page 23: 배포

쉬운줄 알았는데…• 공유 자원의 문제 .• DB 를 쪼갤것인가 .• 메시지 큐는 ..• 캐쉬…• 세션 ..• Key value 스토어… 쓸땐 편했는데 ..

Page 24: 배포

무결성 검사• Sanity check.• 어려운건 아니나 꼭 해야하는 작업• 무엇을 검사행 무결성을 확인할수 있나• Package• Setting

Page 25: 배포

잠깐 한번 해봅시다• 쉬우니까… 지금 할수 있을꺼야…

Page 26: 배포

배포란…• 별거아님• 근데 별거아닌게 아님• 맺고 끊어주는것 .• 서버에서 작업하지 마세요• 진짜• 눈물이 납니다 ㅠㅠ

Page 27: 배포

고맙고맙 감사감사