2. 서비스 운영
• 서버 개발은?
개발 50%
운영 50%
배포 및 설정
제품 기획
아키텍쳐
설계
구현
테스트
모니터링
장애 처리
고객 지원
3. 서비스 운영의 범주
Tech Ops
개발된 서비스에 대한 설치, 모니터링 및 장애 처리등. 대상 서비스에 대한 기
술적인 운영활동
Service Ops
고객 대응, 가이드나 샘플 코드와 같은 문서 제공등의, 대상 서비스 운영에 있
어서, 대 고객 지원을 위한 운영 활동
4. TechOps
TechOps의 주요 활동
• 설치 (Install)
하드웨어 설치, OS 및 미들웨어 (TOMCAT,RDBMS ETC)등 서비스를 배포
하기 위한 기반 인프라에 대한 설치 및 튜닝
• 배포 (Deploy)
기반 인프라위에 서비스 애플리케이션을 배포(설치)
※ 설치와 배포의 차이 : 설치는 일회성. 배포는 릴리즈마다 계속해서 일어나는 반복/연속적 작업
• 모니터링 (Monitoring)
배포 운영되는 시스템에 대한 상태를 지속적으로 체크하여, 장애 없이 서비
스를 영속적으로 제공하도록 히는 활동
※ 모니터링 :시스템의 상태를 지속적으로 체크
※ 점검 (Check) : 비정기적으로, 시스템의 상태를 디테일 하게 점검하여 시스템의 건강 상태를 진
단하는 활동 [ 로그 체크, 설정 파일 점검등]
5. TechOps
TechOps의 주요 활동
• 백업 (Back up)
설치된 소프트웨어나 데이타에 대한 복사본을 주기적으로 저장하여 시스
템이 복구 불능 상태의 장애시 데이타를 보존하고, 복구 하기 위해 사용
• 장애 대응 (Incident handling)
서비스 장애시에 이에 대한 복구와 해결
※ 설치와 배포의 차이 : 설치는 일회성. 배포는 릴리즈마다 계속해서 일어나는 반복/연속적 작업
• 보안 (Security)
서비스에 대한 보안 취약점을 파악하여, 외부로 부터의 침입 또는 데이타
유출을 예방하며, 악의 적인 침임이나 데이타 유출시 이를 빠르게 차단 및
추적
6. TechOps
1. 설치
• VM Image based configuration
• Install tools – makefile, rpm, yum
• Configuration Management Tools – Chef & Puppet
7. TechOps
2. 배포
• Tooling
① Native tool based : Tomcat tool
② SSH based : Python Fabric, Capistrano
③ Configuration tool based : Puppet / Chef
Recommendation : fabric (easy to use) + rpm (including config file)
• Consideration
① Version management & roll back support
② Non-stop run-time deployment
※ 배포는 순차적으로 껐다 키는 것이 진리
8. TechOps
3. 모니터링-OSS
• Dash board – 현재 시스템의 상태들을 감지
① Nagios
② 별도의 Heart beat check을 구현하는 것이 편리함
③ SMS (pagerduty) + Email 과 연계하여 장애 인지
• RRD – 지난 시스템의 상태들을 모니터링
① Ganglia, Cacti, zabbix
② 그래프 형태로 지난 시스템의 상태를 모니터링 (CPU,메모리 등)
Nagios
Ganglia
Cacti
9. TechOps
3. 모니터링
• Log gathering
① Collector (nxlog, rsyslog,flume,fluentd) + logstash
② Visualizer (graylog2, kibana)
③ System Log Writing 자체가 부하 비동기 식으로 로그를 수집 하는 방
안 권장
④ 시스템 규모에 따라서 적절한 Backend Storage 선택
(File,RDBMS,Amazon Elastic Search etc)
kibana
graylog2
10. TechOps
3. 모니터링-BSS
• 비지니스 관점의 지표 모니터링
Log File
OLAP DB
ETL
Reporting Tool
DBMS
•
Pentaho
•
•
MySQL Pentaho
MS SQL BI
Saiku
•
•
Saiku (Open source)
Excel Pivot table
11. TechOps
4. 백업
• 미들웨어 – VM Image Snapshot 방식
• 로그 백업 – S3등 저가 스토리지 이용 (for Audit)
※ 특히 access.log와, 사용자 log in 정보는 보관 권장
• 데이타 베이스 백업 – Fullback up & Incremental backup
12. TechOps
5. 보안
• 필수 보안 체크 사항
– 방화벽 사용. (Inbound는 80 포트 이외에 모두 막을것)
– 사용자 정보 DB 암호화 (gazzang)
– passwd salt
• Scanning Service
① Whitehatsec.com (Commercial, 30 days trial)
② OpenVAS scan (Open source)
•
IDS (Intrusion Detection System)
① OSSEC
13. TechOps
6. Incident Handling
• Ticketing System 이 필수
• Escalation Process (Tier 1 – Ops, Tier 2 – 개발 , Tier 3 – 벤더)
• Case review
• 로그 수집이 먼저. 항상 기록과 수집 후 대응. (재연 Reproduce, 개연
성, 소설 스토리)
• SLA (Service Level Agreement)
14. TechOps
7. 릴리즈
• 긴급 배포 : 장애나 버그 FIX
• 정기 배포 : 릴리즈 일정에 따른 배포 (한달에 1번~2번 정도가 적정)
• 릴리즈 테스트 : 회귀 테스트 + 새로운 기능에 대한 테스트 후 배포
• 배포는 항상 수동 배포
• 릴리즈 브렌치 : VCS에서 릴리즈 브렌치를 반드시 생성
• 릴리즈 노트
– 안드로이드 릴리즈 노트 :
http://developer.android.com/sdk/RELEASENOTES.html
– Fire Fox 릴리즈 노트 http://www.mozilla.org/enUS/firefox/23.0.1/releasenotes/
– Maven 릴리즈 노트 http://maven.apache.org/release-notes-all.html
16. TechOps
신경써야 하는 것들
• Procurement Time (70~80% 부터 장비 추가 공급)
• Operational Cost (CAPEX vs OPEX , TCO)
• 도상훈련
17. Service Ops
• 에반젤리즘 & 마케팅
① Developer Support Developer guide, API spec, sample code
② User Support
• Manual (Document)
• Marketing Page
③ Sales Support
•
•
세일즈를 위한 세일즈 툴킷 개발
세일즈 기술 지원
• 고객 지원
① Ticket Support (ZenDesk)
② 콜센터 (Out sourcing)