brunch

You can make anything
by writing

C.S.Lewis

by 신현묵 Jan 03. 2017

데이터 중심의 소프트웨어 개발, #3

DevOps, Growth Hacking의 실전

DevOps의 기본 개념

DevOps를 간단한 그림으로 표현하면 위의 그림과 같이 표현할 수 있다. '개발'과 '운영'의 효과적인 진행이다. Devs는 요구사항 수집, 설계, 개발, 수정/배포의 단계로 간단하게 표시할 수 있고, Ops는 운영을 통하여 요구사항을 수집하고 성능에 대한 이슈를 비 기능화하여 요구사항과 아키텍처에 꾸준하게 영향을 주는 구조가 될 것이다.


이때에 가장 중요한 단어로 설명할 수 있는 것이 Application Delivery라는 개념과 Application Performance라는 개념으로 구분하여 설명할 수 있다.


이 두 가지 개념은 '웹서비스'와 '비즈니스 운영'에게도 직접적인 영향을 주는 단어이기 때문에 좀 더 심도 있게 고민해보자. 


특히, Application Delivery라는 개념은 비즈니스 관점에서 검토되어야 한다.


Application Delivery라는 개념은 다음의 두 가지 단어로 축약 설명이 가능하다. Spluk, ELK(Elasticsearch, Logstash, Kibana)라는 단어로 이미 설명이 끝났다.


아주 간단하게 요약한다면 'Log'에 대한 관리이다.


개발자들이 오류를 추적하거나 특정 서비스를 트레이스 하기 위한 '간단한 로그'라고 생각하지 말자. 현대의 웹서비스와 모바일 웹서비스들은 엄청나게 많은 의미 있고 재생산과 발굴이 가능한 '데이터'들을 만들어 낸다.

특히, 사용자들의 화면 이동 패턴이나 특정 버튼, 특정 화면에서의 정지시간, 다음 단계로의 전환 시에 인지했던 정보들 등이 그러한 '발굴 가능한 정보'들이 된다.


이 데이터들은 재가공되면서 매우 의미 있는 서비스로 변화될 수 있다. 특히, '모바일 서비스'에 광고를 탑재할 경우에 어떤 화면이 어떤 식으로 사용자에게 제시되며, 얼마나 다음 단계에 영향을 주는지에 대해서 구체적인 '숫자'와 의미 있는 '지표'로서 변환이 가능하다.


결론적으로 '모바일 광고에서 활용되기 위한 의미 있는 지표'로서 활용되기 위해서 하면 이러한 Log에 대해서 엄청난 초기 디자인이나 개념적인 고민이 필요한 것인지를 설명할 수 있다.


다음의 도표를 보자.

Application Delivery의 개념

Application Delivery개념을 통해서 획득할 수 있는 수많은 서비스들이며, 이 '채굴되지 않은 금광'은 모바일 비즈니스에서 엄청난 후속적인 서비스들에 대해서 영향을 주며, 의미 있는 데이터의 형태로 판매가 가능한 형태로 변화될 수 있다.


소프트웨어 개발, 웹 서비스의 개발에 있어서 Application Delivery에 대한 이야기는 후속적으로 보다 상세하게 설명을 하도록 하며, 초기에는 먼저 개념만 잡아보도록 하자.


이러한 개념은 서비스 초기에 디자인되어야 하며, 적절한 형태의 서비스로 중요 서비스에 탑재되어야 한다. 이 서비스는 Big Data Log Service의 형태로 구현되며, 서비스 디자인 시에 기본 웹 애플리케이션 서비스와 동일하게 다음의 중요한 하나의 View를 개발자에게 화두로 제시된다.


그것은 바로, Application Performance이다.


Application Performance는 MSA에서 야기되는 문제점들을 해결하기 위해서 필요한 개념이며, 특히, 웹에서의 문제를 해결하기 위한 Web-Application Performace로 표시되거나 Web-Service Performace로 표기된다.


APM은 위에서 설명한 주요 기능들을 해결한다. MSA로 구현된 중첩된 문제와 실시간 장애, 비즈니스적인 경쟁력의 저하를 방지하며, 사전에 예방할 수 있게 한다.

이를 통하여 관리비용을 축소하고 시스템의 오버헤드를 최소화하여 서비스 가용성을 확보하고, 시스템의 기본 문제를 해결하는 개념적인 운영 모델을 제공한다.


이를 통하여 아키텍처적인 비기능 요소와 요구사항, 개발 프로세스와 팀 간의 거버넌스에 영향을 주게 된다.


이를 정리하면 다음과 같이 된다.



Application Delivery를 해결하기 위해서 Growth Hacking이 필요하며, Application Performance를 해결하기 위해서 APM이 적용된 DevOps가 필요하다.


또한, Application Delivery를 지원하기 위한 Big Data Log Service 역시 Application Performance를 고려해야 한다는 것도 잊어서는 안 된다. 서비스를 지원하기 위한 Web-Service와 Log-Service 모두 Application Performance는 동일하게 필요하게 된다.


그래서, DevOps의 상황에 맞게 구성된 APM 도구를 적절하게 사용하는 것은 MSA의 구조에서는 필수 요소이며, 클라우드 환경에서의 개발에서는 필요 불가결한 존재가 된다.


다음의 그림은 http://www.whatap.io 에서 지원하는 SaaS 형태의 APM으로 현존하는 가장 손쉬운 APM이다. 개발자는 5분 설치 후에 당장 필요한 웹 인스턴스의 가용성과 웹 트랜잭션의 특정 상황에서의 문제점을 손쉽게 수집 분석할 수 있게 한다.

와탭랩스의 WhaTap APM 구동화면

다시 한번 정리하자,


MSA를 지향하는 개발자라면 클라우드 위에서 동작하는 MSA를 지향하는 아키텍처를 정의하고, 클라우드 위에서 적절한 지표로 동작되는 성능상의 환경을 예측하기 위해서 매우 쉬운 와탭 랩스의 APM과 같은 도구에 익숙해야 하며, 웹서비스의 금광과도 같은 데이터를 관리하고 운용하기 위한 Growth Hacking기법에 익숙해져야 한다. 


또한, Growth Hacking의 방법을 사용하기 위한 적절한 로그 형태의 관리와 데이터 중심의 서비스 아키텍처로 구현되어야 만, 해당 서비스를 중심으로 미래지향적인 서비스들을 고안할 수 있게 된다. 이때에도 관렴 서비스를 구현하기 위해서는 적절한 성능과 유지를 위한 관점을 잊어서는 안 된다.


데이터 중심의 소프트웨어 개발은 이렇게 시작된다.


후원 : http://www.whatap.io 

매거진의 이전글 데이터 중심의 소프트웨어 개발, #2
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari