SlideShare a Scribd company logo
Ops
Dev
QA
DevOps시대가
요구하는 QA (SW Testing)
- 2 -
DevOps란? (AWS 사이트 참조)
애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는
문화 철학, 방식 및 도구의 조합입니다.
이러한 빠른 속도를 통해 조직은 고객을 더 잘 지원하고 시장에서 좀 더 효과적으로
경쟁할 수 있습니다.
- 3 -
DevOps가 나온 시대적 배경 (모바일 시대 이전)
- 4 -
DevOps가 나온 시대적 배경
(모바일 이후 - 사용자가 많다고 매출이 좋은 시대는 안녕..)
- 5 -
Part 1.
Cloud & DevOps
- 6 -
사용자가 많아도 수익이 별로라면..
저렇게 많은 사용자를 어떻게 견디지??
값 비싼 하드웨어 장비, 오라클.. 을 살수 없는데..
고객이 한국에만 있나? 중국, 미국, 전 세계에 있다면..
대신 저렴하며 비슷한 효과를 낼 만한 것은?
클라우드 서버를 늘려가면서. (Scale Out) + 오픈소스 솔루션으로..
- 7 -
Scale Up 보다는 Scale Out 으로..
비용이 더싸요.
- 8 -
왜 DevOps가 필요해 졌나. (클라우드..)
상대적으로 낮은 사양의 수 많은 서버들을 관리
다양한 리전에 배포 하는 기술이 필요
- 9 -
DevOps가 가져오는 의미 – 업무 간에 경계가 모호해 진다.
- 10 -
그래서 복잡한 DevOps 단계별 다양한 툴들..
- 11 -
DevOps 엔진니어의 RoadMap
(https://github.com/kamranahmedse/developer-roadmap)
- 12 -
DevOps 엔진니어의 RoadMap
(https://github.com/kamranahmedse/developer-roadmap)
- 13 -
DevOps엔지니어 의 RoadMap
(https://github.com/kamranahmedse/developer-roadmap)
- 14 -
DevOps의 모범사례
/
C
16분
- 15 -
DevOps의 모범사례 – NETFLIX 사례 (2017년 기준)
• NEBULA - NETFLIX 빌드를 빠르고, 쉽게 테스트하기 위한 Gradle 플러그인들의 집합체들
• BAKE – Aminator 를 사용함 (커스텀 AMI 를 생성하기위한 툴을 사용)
불변 인프라 (Immutable Infrastructure / server) 를 구성함 (AMI : Amazon Machine Image ) 즉 이미지 형태로 구성되어 배포
• Deployment – Spinnaker 를 사용하여 배포 / 멀티 클라우드를 지원하는 Continuous Delivery Platform으로 오픈소스 하여 제공
Amazon, Azure, GCE, Kubernetes , OpenStack 과 같은 오픈소스 기반의 클라우드 또는 컨테이너 플랫폼을 동시에 지원하여 배포 가능함.
또한 파이프라인을 통해 Smoke Test후 성공 하면 배포, 낮에는 업무를 봐야하니 Nightly Build등이 가능한 상황
• Canary - 전체 다 배포하지 않고, 일부 AMI만 배포를 해서 기존 것과 어떠한 성능 / 안정성 비교 평가 후 점진적 배포 , 아니면 롤백
• Live – 라이브 배포
- 16 -
DevOps의 모범사례 – CI 사례
- 17 -
DevOps의 모범사례 – Bake 사례
Aminator (Amazon AMI Creator)
- 18 -
Bake 단계 – 불변 인프라 (Immutable Server – PhoenixServer)
Code가아닌 Image(VM,Docker)를배포함으로써, 버전관리 Diff를체크해버전별패치하는것으로부터 자유로워짐.
- 19 -
불변 인프라 (이미지 배포)의
장점 과 케이스 스터디
• 낮은 배포 실패 확률
• 프로세스 다운 타임 없는 레드-블랙 배포와 릴리즈
• 원자성 (배포 되거나 롤백되거나.)
• 일관된 STG 환경과 쉬운 Scale Out
• 모든 서버가 동일한 생성 프로세스 사용 (특이
배포케이스가 없다)
• Seamless 하게 서버를 추가하여 Scale Out이 매우 용이
• 간단한 롤백과 복구 프로세스
• 이미지 이력을 보관하여 사용
• 적용 사례 (Netflix 외..)
• CodeShip - https://blog.codeship.com/immutable-
infrastructure/
• Chef - https://blog.chef.io/2014/06/23/immutable-
infrastructure-practical-or-not/
• Koddi - https://www.koddi.com/developing-with-an-
immutable-infrastructure/
• Fugue -
https://www.fugue.co/assets/docs/Immutable_Infrastructure
_Fugue.pdf
• 참조 - https://www.digitalocean.com/community/tutorials/what-
is-immutable-infrastructure
- 20 -
DevOps의 모범사례 – Deployment 사례
- 21 -
DevOps의 모범사례 – Deployment 사례 (ONYCOM - imqa 사례)
- 22 -
DevOps의 모범사례 – QA 확보 방안 (API Lifecycle Management + Test)
API Lifecycle Mgmt Testing
+
- 23 -
API 시대 – 죽지 않는 여러 기법들 도입 (참조 – axway 제품)
API Builder
Testing
Testing
- 24 -
API 시대 – Netflix는 API Gateway 관련 기술을 다 내재화 시킴
- 25 -
API Testing – 이 부분에 대해서는 내부 공개된 데이터가 없음
- 26 -
DevOps의 모범사례 – Netflix가 보는 Test의 흐름
- 27 -
DevOps의 모범사례 – Branch(Test/Release/Prod) 별로 따로 관리
- 28 -
DevOps의 모범사례 – Unit / Func Test를 Test 브랜치에서 실행
- 29 -
DevOps의 모범사례 – 성공하면 Release Branch에서 테스트
- 30 -
DevOps의 모범사례 – NETFLIX API Testing 을 Jenkins로 구축
- 31 -
DevOps의 모범사례 – 또 성공하면 Canary를 날리자
- 32 -
DevOps의 모범사례 – Baseline과 Canary에 대한 성능 비교
(기준치 도달 못하면 롤백 )
- 33 -
Canary시 – 글로벌하게 테스트를 실행함.
- 34 -
점진적 배포 – Red / Black Push
1. Baseline Amazon Instance가 배포/작동중인 경우
2. Baseline AMI 의 10% 정도만 다음 버전 AMI Live 생성후 배포.
새로운 버전의 안정성 체크.
안정화 검증되면 새 버전 인스턴스 100대 만들기
3. 기존 버전 (Baseline AMI) 정지 시킴 Black,
그러니 새 버전만 작동 RED .
이 상황이 RED/Black
4. 구 버전 AMI 내려버림
새로운 버전의 AMI만 남게함
API ASG
v1
AMI 123
API ASG
v1
AMI 123
API ASG
v2
AMI 456
API ASG
v1
AMI 123
API ASG
v2
AMI 456
API ASG
v2
AMI 456
- 35 -
문제 없으면 - Global Release
- 36 -
API Testing에 대해서 다시 생각해 보기
- 37 -
API Testing 단계별로 다시보기
API 테스트 & 시나리오 구성
HTTP Request 후킹으로
테스트 케이스 자동 생성
부하 테스트 성능 레포트
Swagger에서
API Import
원하는 환경에서
언제든 쉽게 테스트
- 38 -
API Testing 단계별 예 (기본 컨셉)
- 39 -
API Testing 단계별 예 (swagger , jmeter , checkpoint 서버 배포)
- 40 -
Global API Testing 시장 과연 얼마나 커지길래
글로벌 API testing 시장은
- API Testing SW 시장규모 2017년 3500억원 -> 2022년 8300억원 (19.16% 성장)
- API Testing Service 시장규모 2017년 1600억원 -> 2022년 4100억원 (20.81% 성장)
=> 2022년까지 크게 성장하는 추세
2017 API Testing Market 분석
- 41 -
아시아 지역 API 테스트 시장 상황의 성장세가 가장크다.
아시아 시장은 크게 성장 중이지만, 아직 Key Player가 없음
국내에서 사용하기에 해외 서비스를 이용하는 불편함이 있음
=> 시장 빈틈 및 진입 가능성에 주목
- 42 -
한국의 API Testing 시장은 왜 이렇게 성장하지 못했나.
첫 번째 이유.. 웹앱 시장
- 43 -
한국의 API Testing 시장은 왜 이렇게 성장하지 못했나.
두 번째 이유.. 클라우드 시장 의 낮은 성장율.
- 44 -
주요 고객 성장세
출처 : 연간 기업 Report, 언론 공개 자료, 투자자 발표 자료, 주요 인터뷰를 통한 분석
- 45 -
Part 2.
Mobile & DevOps
- 46 -
모바일 에서는 왜 DevOps가 필요해 졌나. (모바일)
파편화된 모바일 환경에서 어떻게 품질을 확보 해야지? (노트2의 점유율)
- 47 -
모바일 에서는 왜 DevOps가 필요해 졌나. (모바일)
Xiaomi 폰의 국내 점유율 4위
- 48 -
모바일 DevOps 흐름도
- 49 -
CashSlide 사례 - 모바일 DevOps 흐름도 (BITRISE 사용 사례)
관련 자료 - https://academy.realm.io/kr/posts/continuous-delivery-for-android/
- 50 -
모바일 DevOps 현재 흐름도
Commit Building Testing Release
Crash
Report
- 51 -
모바일 DevOps 제안 흐름도
Commit Building
Test Auto
Perf Report
Release
Crash
Report
Monitoring
- 52 -
더 나은 품질 확보를 위하여.
기존의 모바일 서비스는 출시 전 QA(Quality Assurance)를 통해 개발 관점에서의 사용자 만족도를 높여 왔습니다. 하지만 모바일 서비스의 각 사용자 별 환경에
따른 성능에 대해서는 현재까지도 스토어의 별점 등을 통해 피드백만 받아 온것이 현실입니다. 여기서 중요한 것은 성능의 문제점을 겪은 고객은 점점 해당
서비스의 이탈로 이어진다는 것입니다.
VS.
- 53 -
모니터링 개요
IMQA는 모바일 환경의 필터 기반 다계층 분석 방식이 적용된 모바일 성능 모니터링 솔루션 (MPM, Mobile Performance Monitoring)입니다. 출시 전 QA(Quality
Assurance)를 통해 기능 오류를 점검하는 방식과는 다르게 각 사용자의 모바일 환경에서의 성능을 지표화하여 궁극적으로는 귀사의 모바일 서비스의 성능을
향상시켜 줍니다.
- 54 -
IMQA 차별점
현재, 시장의 MPM은 Goolge의 ‘Firebase’나 New Relic 등 해외 제품이 전부이며 이상징후 (Crash)가 발생되는 시점에서만 성능을 모니터링해 줍니다. 이는
문제가 발생이 되어야만 성능 이슈를 모니터링해주는 것으로 ‘소잃고 외양간 고치는 형태’와 같습니다. 이에 반해 IMQA는 실시간 성능 모니터링이 가능하기
때문에 고객의 성능에 대한 불만족이 발생하기 전에도 이를 관리하고 예방할 수 있습니다.
IMQA는 Crash(이상징후) 발생 시점의 성능 문제의 원인을 규명하는 방식이 아닌, 실시간 성능 정보를 모니터링하는 방식입니
다.
실시간 성능 모니터링Crash 발생 시점 성능 모니터링 (실시간 X)
- 55 -
IMQA 차별점
이상징후(Crash) 분석 기반의 모바일 성능 모니터링 (MPM, Mobile Performance Monitoring)으로 대표되는 제품은 전부 외산 솔루션입니다. 각 기업의 욕구에
맞는 솔루션은 다양하게 출시되어 있지만, 설치 및 교육, 현지화(언어 등), 업데이트 및 유지보수 등 외산 제품의 도입에 따른 불편함 또한 다양하게 존재합니다.
이상징후(Crash)만 검출한다고 다 MPM (모바일 성능 모니터링, Mobile Performance Monitoring)이 아닙니다.
- 56 -
실 사례로 보는 모바일 성능 확보 방안
- 57 -
데이터를 수집하는 방법
- 58 -
주요 수집 데이터
• RL O B C B
• ( / N )
• /
• /
• B A A
• PI M
• BB A
• F
- 59 -
어떻게 수집하나?
• ): B + : @ : / :
• -. .A CC : / / B / / C/
A A CC : (
운영 대시보드
성능 대시보드
앱의 성능 기준
• C
PU
U
sage
• M
EM
O
R
Y
U
sage
N
etw
ork
U
sage
U
R
L
설
명
U
I R
endering
U
I R
endering
설명 – 화면이 뜨고 나서 시간 순서대로 스택정보 나열
14ms : 화면이 뜰때 초기하는 작업들이 너무 많음
236ms : 현 순간에도 화면 레이아웃을 구성하고 있는 중
1397ms : 화면의 프레임이 다 그려지지 않아 UI Thread에서 대기 하는 상황
문제 상황
A사 SDK HealthData에서 데이터를 받아오느라 화면 전체(UI Thread) 가 멈추는 상황이 발생함.
항상 로컬에 이전 데이터를 저장해서 먼저 보여주고, 사용자가 클릭시 정보를 가져오는 것으로 하는 것이 좋음
즉 인터넷이 연결되지 않아도 이전 데이터를 볼수 있도록 먼저 가이드라인을 잡기를 권고함.
고려 상황
화면 점유시간 3초 이상
화면을 다시 그리는 (Resume) 하는 상황에서, 화면 단에서 FileIO가 발생함
리소스 폰트를 가져오는 상황에서 지연이 발생되는 것으로 판단됨.
DevOps 시대가 요구하는 품질확보 방법
DevOps 시대가 요구하는 품질확보 방법
나라 / 지역별 UI 속도 / 응답시간 체크
- 72 -
감사합니다.
Thank you for your interesting.
- 자세한 문의는 아래로 주세요
어니컴 주식회사 | 서울시 중구 세종대로 21길 22, 태성빌딩 4층 | TEL : 02-541-0080
손영수 상무 (총괄)
ysson@onycom.com

More Related Content

PDF
DevOps와 자동화
DONGSU KIM
 
PDF
Kubernetes architecture
Janakiram MSV
 
PPTX
Docker Networking Overview
Sreenivas Makam
 
PPTX
Docker introduction
dotCloud
 
PDF
Virtualization Architecture & KVM
Pradeep Kumar
 
PPTX
Wi fi direct
Ramesh Akula
 
PDF
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Edureka!
 
PDF
주니어의 쿠버네티스 생태계에서 살아남기
InfraEngineer
 
DevOps와 자동화
DONGSU KIM
 
Kubernetes architecture
Janakiram MSV
 
Docker Networking Overview
Sreenivas Makam
 
Docker introduction
dotCloud
 
Virtualization Architecture & KVM
Pradeep Kumar
 
Wi fi direct
Ramesh Akula
 
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Edureka!
 
주니어의 쿠버네티스 생태계에서 살아남기
InfraEngineer
 

What's hot (20)

PDF
오픈소스로 구축하는 클라우드 이야기
Nalee Jang
 
PDF
Docker swarm introduction
Evan Lin
 
PDF
Ship quality mobile apps with speed [Webinar]
BrowserStack
 
PDF
Dev ops Introduction
영기 김
 
PDF
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
Open Source Consulting
 
PDF
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Web Services Korea
 
PDF
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
VMware Tanzu Korea
 
PDF
Monitoring kubernetes with prometheus
Brice Fernandes
 
PDF
Ansible_Basics_ppt.pdf
PrabhjotSingh976002
 
PDF
Spring boot microservice metrics monitoring
Oracle Korea
 
PDF
쿠버네티스 기반 PaaS 솔루션 - Playce Kube를 소개합니다.
Open Source Consulting
 
PPTX
Getting started with Jenkins
Edureka!
 
PDF
Kubernetes University, Cap sur l’orchestration Docker
Jean-Baptiste Claramonte
 
PDF
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
Amazon Web Services Korea
 
PPTX
금융It시스템의 이해 2편
Seong-Bok Lee
 
PDF
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
ShapeBlue
 
PDF
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
Edureka!
 
PDF
Kubernetes internals (Kubernetes 해부하기)
DongHyeon Kim
 
PDF
[WhaTap DevOps Day] 세션 4 : 롯데ON MSA 모니터링 최적화 사례
WhaTap Labs
 
PDF
Learning Docker from Square One
Docker, Inc.
 
오픈소스로 구축하는 클라우드 이야기
Nalee Jang
 
Docker swarm introduction
Evan Lin
 
Ship quality mobile apps with speed [Webinar]
BrowserStack
 
Dev ops Introduction
영기 김
 
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
Open Source Consulting
 
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Web Services Korea
 
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
VMware Tanzu Korea
 
Monitoring kubernetes with prometheus
Brice Fernandes
 
Ansible_Basics_ppt.pdf
PrabhjotSingh976002
 
Spring boot microservice metrics monitoring
Oracle Korea
 
쿠버네티스 기반 PaaS 솔루션 - Playce Kube를 소개합니다.
Open Source Consulting
 
Getting started with Jenkins
Edureka!
 
Kubernetes University, Cap sur l’orchestration Docker
Jean-Baptiste Claramonte
 
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
Amazon Web Services Korea
 
금융It시스템의 이해 2편
Seong-Bok Lee
 
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
ShapeBlue
 
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
Edureka!
 
Kubernetes internals (Kubernetes 해부하기)
DongHyeon Kim
 
[WhaTap DevOps Day] 세션 4 : 롯데ON MSA 모니터링 최적화 사례
WhaTap Labs
 
Learning Docker from Square One
Docker, Inc.
 
Ad

Similar to DevOps 시대가 요구하는 품질확보 방법 (20)

PDF
DevOps 오픈소스 트랜드 (클라우드, 모바일 중심)
YoungSu Son
 
PPTX
멸종하는 공룡이 되지 않으려면
Byeongsu Kang
 
PDF
Private PaaS with Docker, spring cloud and mesos
uEngine Solutions
 
PPTX
System Infra와 Recovery 그리고 DevOps
Juseok Kim
 
PDF
하드웨어 스타트업의 소프트웨어 이야기
Mijeong Park
 
PDF
HB Smith - business plan - live hero - public
Jongwon Han
 
PDF
Fif기고문 050311 05
Eugene Chung
 
PDF
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
YoungSu Son
 
PDF
성장하는 스타트업의 프로세스 개척기
DomainDriven DomainDriven
 
PDF
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
KTH, 케이티하이텔
 
PPTX
4. 대용량 아키텍쳐 설계 패턴
Terry Cho
 
PPTX
VSTS와 Azure를 이용한 팀 프로세스 관리
Gyuwon Yi
 
PPTX
[H3 2012] 스마트모바일 환경에서의 App.품질관리전략
KTH, 케이티하이텔
 
PPTX
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
Terry Cho
 
PDF
ALM과 DevOps 그리고 Azure DevOps
Taeyoung Kim
 
PPTX
모바일 개발 트랜드
Terry Cho
 
PPTX
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
Terry Cho
 
PDF
[D2]pinpoint 개발기
NAVER D2
 
PDF
DevOps는 원격근무를 추구하면 안되는 걸까?
Jesang Yoon
 
PDF
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
Open Source Consulting
 
DevOps 오픈소스 트랜드 (클라우드, 모바일 중심)
YoungSu Son
 
멸종하는 공룡이 되지 않으려면
Byeongsu Kang
 
Private PaaS with Docker, spring cloud and mesos
uEngine Solutions
 
System Infra와 Recovery 그리고 DevOps
Juseok Kim
 
하드웨어 스타트업의 소프트웨어 이야기
Mijeong Park
 
HB Smith - business plan - live hero - public
Jongwon Han
 
Fif기고문 050311 05
Eugene Chung
 
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
YoungSu Son
 
성장하는 스타트업의 프로세스 개척기
DomainDriven DomainDriven
 
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
KTH, 케이티하이텔
 
4. 대용량 아키텍쳐 설계 패턴
Terry Cho
 
VSTS와 Azure를 이용한 팀 프로세스 관리
Gyuwon Yi
 
[H3 2012] 스마트모바일 환경에서의 App.품질관리전략
KTH, 케이티하이텔
 
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
Terry Cho
 
ALM과 DevOps 그리고 Azure DevOps
Taeyoung Kim
 
모바일 개발 트랜드
Terry Cho
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
Terry Cho
 
[D2]pinpoint 개발기
NAVER D2
 
DevOps는 원격근무를 추구하면 안되는 걸까?
Jesang Yoon
 
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
Open Source Consulting
 
Ad

More from YoungSu Son (20)

PDF
Fault Tolerance 패턴
YoungSu Son
 
PDF
Clean Code, Software Architecture, Performance Tuning
YoungSu Son
 
PDF
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
YoungSu Son
 
PDF
Prototype 패턴 (심만섭)
YoungSu Son
 
PDF
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)
YoungSu Son
 
PDF
Singleton 패턴 (김진영 - EVA, 소마에 10기)
YoungSu Son
 
PDF
실전 서버 부하테스트 노하우
YoungSu Son
 
PDF
생성 패턴 (강태우 - 소마에 10기)
YoungSu Son
 
PDF
초보 개발자/학생들을 위한 오픈소스 트랜드
YoungSu Son
 
PDF
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
YoungSu Son
 
PDF
클라우드 환경에서 알아야할 성능 이야기
YoungSu Son
 
PDF
Android 성능 지표와 Oreo 의 개선사항
YoungSu Son
 
PDF
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
YoungSu Son
 
PDF
SW 아키텍처 분석방법
YoungSu Son
 
PDF
[NEXT] Android Profiler 사용법
YoungSu Son
 
PDF
Android Studio 개발 셋팅 + Genymotion
YoungSu Son
 
PDF
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
YoungSu Son
 
PDF
[NEXT] Flask 로 Restful API 서버 만들기
YoungSu Son
 
PDF
[NEXT] GCM을 이용한 게시글 자동 갱신
YoungSu Son
 
PDF
[NEXT] Andorid에 MVC 패턴 적용하기
YoungSu Son
 
Fault Tolerance 패턴
YoungSu Son
 
Clean Code, Software Architecture, Performance Tuning
YoungSu Son
 
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
YoungSu Son
 
Prototype 패턴 (심만섭)
YoungSu Son
 
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)
YoungSu Son
 
Singleton 패턴 (김진영 - EVA, 소마에 10기)
YoungSu Son
 
실전 서버 부하테스트 노하우
YoungSu Son
 
생성 패턴 (강태우 - 소마에 10기)
YoungSu Son
 
초보 개발자/학생들을 위한 오픈소스 트랜드
YoungSu Son
 
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
YoungSu Son
 
클라우드 환경에서 알아야할 성능 이야기
YoungSu Son
 
Android 성능 지표와 Oreo 의 개선사항
YoungSu Son
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
YoungSu Son
 
SW 아키텍처 분석방법
YoungSu Son
 
[NEXT] Android Profiler 사용법
YoungSu Son
 
Android Studio 개발 셋팅 + Genymotion
YoungSu Son
 
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
YoungSu Son
 
[NEXT] Flask 로 Restful API 서버 만들기
YoungSu Son
 
[NEXT] GCM을 이용한 게시글 자동 갱신
YoungSu Son
 
[NEXT] Andorid에 MVC 패턴 적용하기
YoungSu Son
 

DevOps 시대가 요구하는 품질확보 방법

  • 2. - 2 - DevOps란? (AWS 사이트 참조) 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 문화 철학, 방식 및 도구의 조합입니다. 이러한 빠른 속도를 통해 조직은 고객을 더 잘 지원하고 시장에서 좀 더 효과적으로 경쟁할 수 있습니다.
  • 3. - 3 - DevOps가 나온 시대적 배경 (모바일 시대 이전)
  • 4. - 4 - DevOps가 나온 시대적 배경 (모바일 이후 - 사용자가 많다고 매출이 좋은 시대는 안녕..)
  • 5. - 5 - Part 1. Cloud & DevOps
  • 6. - 6 - 사용자가 많아도 수익이 별로라면.. 저렇게 많은 사용자를 어떻게 견디지?? 값 비싼 하드웨어 장비, 오라클.. 을 살수 없는데.. 고객이 한국에만 있나? 중국, 미국, 전 세계에 있다면.. 대신 저렴하며 비슷한 효과를 낼 만한 것은? 클라우드 서버를 늘려가면서. (Scale Out) + 오픈소스 솔루션으로..
  • 7. - 7 - Scale Up 보다는 Scale Out 으로.. 비용이 더싸요.
  • 8. - 8 - 왜 DevOps가 필요해 졌나. (클라우드..) 상대적으로 낮은 사양의 수 많은 서버들을 관리 다양한 리전에 배포 하는 기술이 필요
  • 9. - 9 - DevOps가 가져오는 의미 – 업무 간에 경계가 모호해 진다.
  • 10. - 10 - 그래서 복잡한 DevOps 단계별 다양한 툴들..
  • 11. - 11 - DevOps 엔진니어의 RoadMap (https://github.com/kamranahmedse/developer-roadmap)
  • 12. - 12 - DevOps 엔진니어의 RoadMap (https://github.com/kamranahmedse/developer-roadmap)
  • 13. - 13 - DevOps엔지니어 의 RoadMap (https://github.com/kamranahmedse/developer-roadmap)
  • 14. - 14 - DevOps의 모범사례 / C 16분
  • 15. - 15 - DevOps의 모범사례 – NETFLIX 사례 (2017년 기준) • NEBULA - NETFLIX 빌드를 빠르고, 쉽게 테스트하기 위한 Gradle 플러그인들의 집합체들 • BAKE – Aminator 를 사용함 (커스텀 AMI 를 생성하기위한 툴을 사용) 불변 인프라 (Immutable Infrastructure / server) 를 구성함 (AMI : Amazon Machine Image ) 즉 이미지 형태로 구성되어 배포 • Deployment – Spinnaker 를 사용하여 배포 / 멀티 클라우드를 지원하는 Continuous Delivery Platform으로 오픈소스 하여 제공 Amazon, Azure, GCE, Kubernetes , OpenStack 과 같은 오픈소스 기반의 클라우드 또는 컨테이너 플랫폼을 동시에 지원하여 배포 가능함. 또한 파이프라인을 통해 Smoke Test후 성공 하면 배포, 낮에는 업무를 봐야하니 Nightly Build등이 가능한 상황 • Canary - 전체 다 배포하지 않고, 일부 AMI만 배포를 해서 기존 것과 어떠한 성능 / 안정성 비교 평가 후 점진적 배포 , 아니면 롤백 • Live – 라이브 배포
  • 16. - 16 - DevOps의 모범사례 – CI 사례
  • 17. - 17 - DevOps의 모범사례 – Bake 사례 Aminator (Amazon AMI Creator)
  • 18. - 18 - Bake 단계 – 불변 인프라 (Immutable Server – PhoenixServer) Code가아닌 Image(VM,Docker)를배포함으로써, 버전관리 Diff를체크해버전별패치하는것으로부터 자유로워짐.
  • 19. - 19 - 불변 인프라 (이미지 배포)의 장점 과 케이스 스터디 • 낮은 배포 실패 확률 • 프로세스 다운 타임 없는 레드-블랙 배포와 릴리즈 • 원자성 (배포 되거나 롤백되거나.) • 일관된 STG 환경과 쉬운 Scale Out • 모든 서버가 동일한 생성 프로세스 사용 (특이 배포케이스가 없다) • Seamless 하게 서버를 추가하여 Scale Out이 매우 용이 • 간단한 롤백과 복구 프로세스 • 이미지 이력을 보관하여 사용 • 적용 사례 (Netflix 외..) • CodeShip - https://blog.codeship.com/immutable- infrastructure/ • Chef - https://blog.chef.io/2014/06/23/immutable- infrastructure-practical-or-not/ • Koddi - https://www.koddi.com/developing-with-an- immutable-infrastructure/ • Fugue - https://www.fugue.co/assets/docs/Immutable_Infrastructure _Fugue.pdf • 참조 - https://www.digitalocean.com/community/tutorials/what- is-immutable-infrastructure
  • 20. - 20 - DevOps의 모범사례 – Deployment 사례
  • 21. - 21 - DevOps의 모범사례 – Deployment 사례 (ONYCOM - imqa 사례)
  • 22. - 22 - DevOps의 모범사례 – QA 확보 방안 (API Lifecycle Management + Test) API Lifecycle Mgmt Testing +
  • 23. - 23 - API 시대 – 죽지 않는 여러 기법들 도입 (참조 – axway 제품) API Builder Testing Testing
  • 24. - 24 - API 시대 – Netflix는 API Gateway 관련 기술을 다 내재화 시킴
  • 25. - 25 - API Testing – 이 부분에 대해서는 내부 공개된 데이터가 없음
  • 26. - 26 - DevOps의 모범사례 – Netflix가 보는 Test의 흐름
  • 27. - 27 - DevOps의 모범사례 – Branch(Test/Release/Prod) 별로 따로 관리
  • 28. - 28 - DevOps의 모범사례 – Unit / Func Test를 Test 브랜치에서 실행
  • 29. - 29 - DevOps의 모범사례 – 성공하면 Release Branch에서 테스트
  • 30. - 30 - DevOps의 모범사례 – NETFLIX API Testing 을 Jenkins로 구축
  • 31. - 31 - DevOps의 모범사례 – 또 성공하면 Canary를 날리자
  • 32. - 32 - DevOps의 모범사례 – Baseline과 Canary에 대한 성능 비교 (기준치 도달 못하면 롤백 )
  • 33. - 33 - Canary시 – 글로벌하게 테스트를 실행함.
  • 34. - 34 - 점진적 배포 – Red / Black Push 1. Baseline Amazon Instance가 배포/작동중인 경우 2. Baseline AMI 의 10% 정도만 다음 버전 AMI Live 생성후 배포. 새로운 버전의 안정성 체크. 안정화 검증되면 새 버전 인스턴스 100대 만들기 3. 기존 버전 (Baseline AMI) 정지 시킴 Black, 그러니 새 버전만 작동 RED . 이 상황이 RED/Black 4. 구 버전 AMI 내려버림 새로운 버전의 AMI만 남게함 API ASG v1 AMI 123 API ASG v1 AMI 123 API ASG v2 AMI 456 API ASG v1 AMI 123 API ASG v2 AMI 456 API ASG v2 AMI 456
  • 35. - 35 - 문제 없으면 - Global Release
  • 36. - 36 - API Testing에 대해서 다시 생각해 보기
  • 37. - 37 - API Testing 단계별로 다시보기 API 테스트 & 시나리오 구성 HTTP Request 후킹으로 테스트 케이스 자동 생성 부하 테스트 성능 레포트 Swagger에서 API Import 원하는 환경에서 언제든 쉽게 테스트
  • 38. - 38 - API Testing 단계별 예 (기본 컨셉)
  • 39. - 39 - API Testing 단계별 예 (swagger , jmeter , checkpoint 서버 배포)
  • 40. - 40 - Global API Testing 시장 과연 얼마나 커지길래 글로벌 API testing 시장은 - API Testing SW 시장규모 2017년 3500억원 -> 2022년 8300억원 (19.16% 성장) - API Testing Service 시장규모 2017년 1600억원 -> 2022년 4100억원 (20.81% 성장) => 2022년까지 크게 성장하는 추세 2017 API Testing Market 분석
  • 41. - 41 - 아시아 지역 API 테스트 시장 상황의 성장세가 가장크다. 아시아 시장은 크게 성장 중이지만, 아직 Key Player가 없음 국내에서 사용하기에 해외 서비스를 이용하는 불편함이 있음 => 시장 빈틈 및 진입 가능성에 주목
  • 42. - 42 - 한국의 API Testing 시장은 왜 이렇게 성장하지 못했나. 첫 번째 이유.. 웹앱 시장
  • 43. - 43 - 한국의 API Testing 시장은 왜 이렇게 성장하지 못했나. 두 번째 이유.. 클라우드 시장 의 낮은 성장율.
  • 44. - 44 - 주요 고객 성장세 출처 : 연간 기업 Report, 언론 공개 자료, 투자자 발표 자료, 주요 인터뷰를 통한 분석
  • 45. - 45 - Part 2. Mobile & DevOps
  • 46. - 46 - 모바일 에서는 왜 DevOps가 필요해 졌나. (모바일) 파편화된 모바일 환경에서 어떻게 품질을 확보 해야지? (노트2의 점유율)
  • 47. - 47 - 모바일 에서는 왜 DevOps가 필요해 졌나. (모바일) Xiaomi 폰의 국내 점유율 4위
  • 48. - 48 - 모바일 DevOps 흐름도
  • 49. - 49 - CashSlide 사례 - 모바일 DevOps 흐름도 (BITRISE 사용 사례) 관련 자료 - https://academy.realm.io/kr/posts/continuous-delivery-for-android/
  • 50. - 50 - 모바일 DevOps 현재 흐름도 Commit Building Testing Release Crash Report
  • 51. - 51 - 모바일 DevOps 제안 흐름도 Commit Building Test Auto Perf Report Release Crash Report Monitoring
  • 52. - 52 - 더 나은 품질 확보를 위하여. 기존의 모바일 서비스는 출시 전 QA(Quality Assurance)를 통해 개발 관점에서의 사용자 만족도를 높여 왔습니다. 하지만 모바일 서비스의 각 사용자 별 환경에 따른 성능에 대해서는 현재까지도 스토어의 별점 등을 통해 피드백만 받아 온것이 현실입니다. 여기서 중요한 것은 성능의 문제점을 겪은 고객은 점점 해당 서비스의 이탈로 이어진다는 것입니다. VS.
  • 53. - 53 - 모니터링 개요 IMQA는 모바일 환경의 필터 기반 다계층 분석 방식이 적용된 모바일 성능 모니터링 솔루션 (MPM, Mobile Performance Monitoring)입니다. 출시 전 QA(Quality Assurance)를 통해 기능 오류를 점검하는 방식과는 다르게 각 사용자의 모바일 환경에서의 성능을 지표화하여 궁극적으로는 귀사의 모바일 서비스의 성능을 향상시켜 줍니다.
  • 54. - 54 - IMQA 차별점 현재, 시장의 MPM은 Goolge의 ‘Firebase’나 New Relic 등 해외 제품이 전부이며 이상징후 (Crash)가 발생되는 시점에서만 성능을 모니터링해 줍니다. 이는 문제가 발생이 되어야만 성능 이슈를 모니터링해주는 것으로 ‘소잃고 외양간 고치는 형태’와 같습니다. 이에 반해 IMQA는 실시간 성능 모니터링이 가능하기 때문에 고객의 성능에 대한 불만족이 발생하기 전에도 이를 관리하고 예방할 수 있습니다. IMQA는 Crash(이상징후) 발생 시점의 성능 문제의 원인을 규명하는 방식이 아닌, 실시간 성능 정보를 모니터링하는 방식입니 다. 실시간 성능 모니터링Crash 발생 시점 성능 모니터링 (실시간 X)
  • 55. - 55 - IMQA 차별점 이상징후(Crash) 분석 기반의 모바일 성능 모니터링 (MPM, Mobile Performance Monitoring)으로 대표되는 제품은 전부 외산 솔루션입니다. 각 기업의 욕구에 맞는 솔루션은 다양하게 출시되어 있지만, 설치 및 교육, 현지화(언어 등), 업데이트 및 유지보수 등 외산 제품의 도입에 따른 불편함 또한 다양하게 존재합니다. 이상징후(Crash)만 검출한다고 다 MPM (모바일 성능 모니터링, Mobile Performance Monitoring)이 아닙니다.
  • 56. - 56 - 실 사례로 보는 모바일 성능 확보 방안
  • 57. - 57 - 데이터를 수집하는 방법
  • 58. - 58 - 주요 수집 데이터 • RL O B C B • ( / N ) • / • / • B A A • PI M • BB A • F
  • 59. - 59 - 어떻게 수집하나? • ): B + : @ : / : • -. .A CC : / / B / / C/ A A CC : (
  • 66. 설명 – 화면이 뜨고 나서 시간 순서대로 스택정보 나열 14ms : 화면이 뜰때 초기하는 작업들이 너무 많음 236ms : 현 순간에도 화면 레이아웃을 구성하고 있는 중 1397ms : 화면의 프레임이 다 그려지지 않아 UI Thread에서 대기 하는 상황
  • 67. 문제 상황 A사 SDK HealthData에서 데이터를 받아오느라 화면 전체(UI Thread) 가 멈추는 상황이 발생함. 항상 로컬에 이전 데이터를 저장해서 먼저 보여주고, 사용자가 클릭시 정보를 가져오는 것으로 하는 것이 좋음 즉 인터넷이 연결되지 않아도 이전 데이터를 볼수 있도록 먼저 가이드라인을 잡기를 권고함.
  • 68. 고려 상황 화면 점유시간 3초 이상 화면을 다시 그리는 (Resume) 하는 상황에서, 화면 단에서 FileIO가 발생함 리소스 폰트를 가져오는 상황에서 지연이 발생되는 것으로 판단됨.
  • 71. 나라 / 지역별 UI 속도 / 응답시간 체크
  • 72. - 72 - 감사합니다. Thank you for your interesting. - 자세한 문의는 아래로 주세요 어니컴 주식회사 | 서울시 중구 세종대로 21길 22, 태성빌딩 4층 | TEL : 02-541-0080 손영수 상무 (총괄) [email protected]