Download - [H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
앱(APP)중심으로 생각하기 DevOps 와 자동화
DevOps팀 I 김동수
앱 중심으로 생각하기 - DevOps 와 자동화
DevOps 는 무엇인가요? 01
앱(APP) 중심으로 생각하기 02
왜 자동화 해야 하나요 ? 03
kth 에서는 … 04
DevOps 는 무엇 인가요? 01
DevOps 는 무엇인가요?
DevOps Day 2009 intro “dev meets ops, ops meets dev”
http://youtu.be/7kP8U0f9ELk
DevOps 는 무엇인가요?
Dev
Op s
Dev
Op
elopment
eration s
Dev Op s
DevOps 는 무엇인가요?
새로운 프로젝트 시작
개발 생산성을 향상시킬 수 있는 완전 좋은, 새로운 프레임웍을 도입하겠어요.
안정성이 보장되지 않아. 문제생기면 어떻게 할거야! Python, NoSQL 난 몰라. 그냥 오라클 쓰란말야.
DevOps 는 무엇인가요?
서비스 잘 되고 있는 중
새로운 기능을 추가했어요. 빨리 반영하게 해주세요. 사업 담당자가 뒤에서 막 닥달해요.
작업가능 시간은 매주 금요일 새벽 3시~6시야! 그때까지 기다려!
DevOps 는 무엇인가요?
새로운 프로젝트 시작
개발 빨리 해야 하니, 완전 새로운 오픈소스 NoSQL, Django 프레임웍을 도입 하겠어.
안정성이 보장되지 않아요. 장애 발생 시 조치 방안이 있나요? 오랜 경험을 보유한 오라클, 자바 사용을 추천합니다.
DevOps 는 무엇인가요?
새로운 기능 추가했어. 엄청 성질 급한 사업 담당자가 빨리 적용해 달래. 어여 하게 해줘.
반영 전 충분한 검증기간 확보와 서비스의 안정성 보장을 위해 매주 금요일 새벽 3시~6시에만 작업이 가능합니다.
서비스 잘 되고 있는 중
Development Operations
DevOps 는 무엇인가요?
http://dev2ops.org/blog/2010/2/22/what-is-devops.html
http://www.pororo.net
나는 변화를 원해!
나는 안정을 원해!
DevOps 는 무엇인가요?
http://wangyan.info/blog/devops/
DEV. OPS.
DevOps 는 무엇인가요?
DevOps 정의 (Wikipedia)
DevOps라는 합성어는 소프트웨어 개발자들과 IT 종사자들 사이의
의사소통, 협업, 융합 을 강조한
소프트웨어 개발 방법론이며, 소프트웨어 개발과 IT 운영간의
상호 의존관계에 대한 산물이다.
DevOps (a portmanteau of development and operations) is a software development method that stresses communication, collaboration and integration between software developers and information technology(IT) professionals. DevOps is a response to the interdependence of software development and IT operations. It aims to help an organization rapidly produce software products and services.
http://en.wikipedia.org/wiki/Devops
DevOps 는 조직에서 소프트웨어 상품과 서비스를
신속히 생산 하는 것에 도움이 되는 것을 목적으로 한다.
DevOps 는 무엇인가요?
대규모 버전업 과정
facebook, twitter 친구/포스팅, 음악 가져오기, 레이아웃 변경, 필터 추가, 버그픽스 …
8주간 개발, 2달 뒤 첫 주 금요일에 v 1.5 반영
신규 가입자를 늘리기 위한 버전 업 1.0 1.5
DevOps 는 무엇인가요?
잦은 버전업 과정
facebook, twitter 친구/포스팅, 음악 가져오기, 레이아웃 변경, 필터 추가, 버그픽스 …
각 기능별 1주간 (iteration) 개발하고, 매주 반영, 총 소요기간 8주
신규 가입자를 늘리기 위한 버전 업 1.0 1.0.1 1.0.2 1.1 …
DevOps 는 무엇인가요?
잦은 배포의 효과
http://en.wikipedia.org/wiki/DevOps#Devops_Days
잦은 릴리즈 “애자일 방법론”
간격이 긴 릴리즈 “일반적인 방법론”
완만해진 위험도 뾰족한 위험도
DevOps 는 무엇인가요?
시간
장애닷! 아악!!
완료
놀라기 묵비권,
잘못 찾기
비난하기 내 살길 찾기
낑낑 숨기 자아 보호
문제 파악하기
장 애 수 정 복 구
손가락질 프로세스
DevOps 는 무엇인가요?
생산적인 프로세스
죄책감 느끼기
새 삶 살아가기
장 애 수 정 복 구
문제 파악하기
시간
장애닷! 아악!!
완료
앱(APP) 중심으로 생각하기 02
앱(APP) 중심으로 생각하기
새로운 서비스 시작
하드웨어, Storage, NW 산정 HP Quad Core IA2 BL860c i2 Balde IA * 2 스토리지, Veritas VCS, Rack, …..
일일 10만 유저 방문 5만명 사진 업로드 5만 명 댓글 포스트, 좋아요 클릭 또, 연인들의 날 트래픽 급격히 증가 ……….
새로운 서비스 시작
일단 최소로 가보자. VM v2core 4GB RAM HDD 100GB S3 스토리지, ELB, RDS 사용
일일 10만 유저 방문 5만명 사진 업로드 5만 명 댓글 포스트, 좋아요 클릭 또, 연인들의 날 트래픽 급격히 증가 ……….
부족하면 즉시 늘리면 되니까 !
앱(APP) 중심으로 생각하기
모바일 서비스 프로젝트 시작
앱개발자 데봅 김군. 취미로 주말마다 전국의 낚시터를 다니며 민물낚시를 즐김. 필요에 의해, 낚시인들이 생각하는 낚시터와 주변의 먹거리, 여행 정보를 공유하는 모바일 서비스를 하기로 막 결정한 상태
앱(APP) 중심으로 생각하기
모바일 서비스 프로젝트 시작
사용자는 얼마 안 될 테니, VM 1EA 호스팅 세팅 : Apache + Tomcat + Spring, MySQL DB 개발 : API 서버 개발, 앱 개발 기타 1 : API 서버를 위한 도메인 구매 기타 2 : 고객 정보 보호를 위해 SSL 인증서 구매 기타 3 : 백업 정책 수립, 매주 백업 걱정 : 잘되도 걱정, 갑자기 사용자가 늘어나면 어떻게 하지?
앱(APP) 중심으로 생각하기
모바일 서비스 프로젝트 시작
앱(APP) 중심으로 생각하기
모바일 앱
Home Backup
API Server
MySQL Apache
Tomcat
Spring 사진
저장소
https
restful/json
weekly backup $wget –username -- …
• 회원가입 • 회원정보조회/수정 • 사진업로드 • Push • POI • 통계 • 피드백
모바일 서비스 프로젝트 시작
앱(APP) 중심으로 생각하기
Home Backup
API Server
MySQL Apache
Tomcat
Spring 사진
저장소
https
restful/json
• 회원가입 • 회원정보조회/수정 • 사진업로드 • Push • POI • 통계 • 피드백
모바일 앱 Backend as a Service
왜 자동화 해야 하나요 ? 03
왜 자동화 해야 하나요 ?
신속 / 적기에 서비스 오픈 해야 글로벌 경쟁에서
살아 남는 것을 넘어, 선도할 수 있음.
IT 도 사람이 하는 작업이기에, 언제나 실수할 수 있음
삽질은 툴에 맡기고, 그 시간에 창조적인 일에 집중
동일한 업무는 모든 사람이 동일한 품질을 보장
kth 에서는 … 04
KTH 에서는 …
DevOps 정의 in kth
개발팀과 운영팀을 지원하는 조직으로써,
서비스 기획 및 개발 시작 단계에서부터
서버설치, 개발, 빌드, 테스트, 배포, 모니터링까지
모든 서비스 라이프 싸이클 프로세스를
자동화 개선해 나가는 조직 하고
KTH 에서는 …
계정 통합
이슈 통합
소스 활용 효용성 확보
빌드 자동화
시스템 설정 자동화
배포 자동화
2012.10.31 현재 모니터링 자동화
로드맵
이 전
메일, 메신저, 전화
관계 관리 X
로컬, 개발서버
직접 테스트
복사, 직접 재기동
메일, 메신저
단독 모니터링
직접 빌드, 설치
KTH 에서는 …
이슈 관리
빌드
서버 배포
앱 배포
모니터링
서버 세팅
이슈+소스
테스트
이 후
JIRA
JIRA
중앙 빌드
빌드 후 자동
빌드 후 자동 배포
빌드 후 자동 배포
시스템 연계 모니터링
자동 세팅
자동화 전,후 비교
KTH 에서는 …
이슈 통합
이슈 생성
소스 수정
빌드 테스트
배포
모니터링
KTH 에서는 …
계정 통합 전
AD local local local
JIRA Confluence SVN Jenkins Artifactory Sonar
local
O T L
KTH 에서는 …
계정 통합 후
AD
JIRA Confluence SVN Jenkins Artifactory Sonar GIT
KTH 에서는 …
소스활용 효율성 확보
KTH 조직원이면 다 볼 수 있어야 함. 쉽게 찾아서 가져다 쓸 수 있어야 함.
KTH 에서는 …
각개 빌드, 배포
서버 App
모바일 App
개발서버 업로드
상용서버 배포
로컬 빌드
…
로컬 빌드
…
Dropbox
로컬 빌드
…
로컬 빌드 이메일
KTH 에서는 …
통합 빌드, 배포
개발서버 배포
상용서버 배포
통합 빌드
OTA Svr
Stage 배포
GIT