클라우드 어때 ?
“ Q. 클라우드 도입, 단순히 트렌드 일까 ”
클라우드 컴퓨팅 시대 !
우리들에겐 작년 알파고 기사로 더욱 친숙한 이야기일 것이다.
국내외를 막론하고 수 많은 기업들은 이미 클라우드 기반 서비스를 제공 하고 있거나, 새롭게 도입을 계획하고 있고, 많은 기업들이 아마존 웹 서비스(이하 AWS)에서 제공하는 클라우드 서비스를 선택하고 있다.
AWS는 전세계에 많은 리전을 보유하고 있어 IT기업들의 글로벌 시장 진출이 좀 더 쉬워졌을 뿐만 아니라, 국내에도 2016년 1월에 서울리전을 출시하면서,기업들의 클라우드 도입 사례가 계속 늘어나고 있다.
이처럼 국내 기업들의 클라우드 이전 경험이 다양한 사례로 공유되고 있다는 점에서 클라우드에 대한 사전 지식과 경험이 없는 개인 혹은 기업들의 고민은대부분 AWS를 통해서 해소되고 있지 않을까 생각된다.
그렇다면 한발 더 나아가 클라우드를 왜 도입해야하는가 ?
AWS는 다음과 같이 3가지 관점으로 이야기 하고 있다.

넷플릭스와 같은 글로벌 기업의 대표적 사례에서도 자체 IT 인프라를 운영하지 않고, 비즈니스 모델과 제품에 집중하기 위해 AWS를 사용하고 있다.
또한 새롭게 서비스를 출시하는 스타트 업 또는 모바일 게임사의 경우에도 초반 서비스 이용자 수 예측이 어렵고, 하루 동안 사용량의 변화가 급격히 변할 때, 서버자원을 유연하게 운영할 수 있어 전체적으로 이용한 만큼의 비용지불로 시스템 운영 대비 비용절감 효과를 얻을 수 있다.
그 밖에 인터넷에서 쏟아져 나오는 다양한 사례를 살펴보았을 때, IT 엔지니어에게 클라우드는 단순히 트렌드가 아닌 반드시 경험하고 활용 해야 하는 분야로 자리잡고 있다.
“ Q. 우리 현실에서 … 클라우드 도입의 의미 ”
# Technical Debt
위드이노베이션( 이하 우리 )은 숙박 중개 서비스를 바탕으로 관련 업계와 언론에서 많은 관심을 갖을 만큼 기업의 가치와 새로운 이윤 창출에 힘써왔다.이를 바탕으로 우리는 고객에게 보다 나은 서비스를 제공하기 위해 그간 끊임 없이 앞만 보고 달려왔지만, 그 과정에서 모든 스타트업 기업들이 겪는 시행착오를 우리라고 피할 수 없었다.

IT기술과 비지니스의 중심에서 우리가 반드시 해결해야 할 또 다른 과제를 만들고 있었다.
누군가는 IT기업에서 ‘기술 부채 없는 성장은 없다’ 라고 말하고 있지만, 그럼에도 그것이 우리의 과거였고 현실이라는 점에서 미래를 준비하기 위한 새로운 대안 모색에 고민을 해야만 했다.
# 인프라 아키텍처 재설계
그 첫번째로 우리는 기존의 인프라 환경과 잠재 이슈들을 되집어 보기 시작했다. 전통적 방식의 Monolithic( 이하 모놀리식 ) 구조를 탈피하고 Microservice Architechture( 이하 MSA ) 구조를 도입하기로 하였다.
모놀리식 방식은 하나의 통서버에 모든 서비스 로직이 들어가 있기 때문에 소규모 단위에서는 관리와 배포의 용이성이 있지만, 시스템의 규모가 커질수록 관리와 배포 그리고 유지보수에 많은 시간을 투자해야 하는 구조다. 뿐만아니라 하나의 장애 포인트가 전체 서비스 장애로 이어 질 수 있는( SPOF : Single Point Of Failure ) 잠재이슈를 내포하고 있다.
이에 반해 MSA 방식은 각각의 기능들을 독자적으로 실행 가능한 작은단위의 어플리케이션으로 개발하고 각 어플리케이션들 간의 연동을 Pipe Line형태의 조합( Suite )으로 서비스를 구축하는 방식이다.
하나의 서비스를 이루고 있는 각각의 어플리케이션은 Loosely Coupled 방식으로 연결되어 있어 각 구간을 담당하는 어플리케이션은 해당 기능 구현에 적합한 언어를 활용하여 개발 할 수 있고, 다른 주변 서비스에 대한 영향을 최소화한 업데이트를 가능하게 한다. 무엇보다 모놀리식 구조가 갖는 단일장애 포인트로부터 회피할 수 있어 가용성과 내결함성에 대한 이점이 있다.
마지막으로 MSA는 유닉스 철학과 많은 부분에서 닮아 있다. 다음은 유닉스 철학에 대한 위키백과에서 발췌한 내용 일부이다.
각 프로그램이 하나의 일을 잘 할 수 있게 만들 것.
새로운 일을 하려면, 새로운 기능들을 추가하기 위해 오래된 프로그램을 복잡하게 만들지 말고 새로 만들 것.
모든 프로그램 출력은 다른 프로그램에 대한 입력이 될 수 있게 할 것.
무관한 정보로 출력을 채우지 말 것.
대화식 입력을 고집하지 말 것.
소프트웨어를 이른 시기에 수주에 걸쳐 이상적으로 시도해가며 설계하고 만들 것.
어설픈 부분을 버리고 다시 만드는 것을 주저하지 말 것.
프로그래밍 작업을 가볍게 하기 위해, 심지어 우회하는 방법으로 도구를 만들고 바로 버릴지라도 어설픈 도움 보다는 도구 사용을 선호할 것.
# 클라우드 도입
MSA를 도입한다는 말은 아키텍처를 재설계한다는 말과 같다고 할 수 있다.
때문에 기존 인프라 환경과 레거시 시스템을 고려했을 때 여러 제약사항들에 대한 고민 역시 하지 않을 수 없었다. 그래서 우리는 두번째 대안으로 클라우드 도입을 통한 해결 방안을 검토하게 되었다.
보안이슈 관리 부터 네트워크 망 분리, 서비스의 고가용성과 내결함성 그리고 자동확장성 등에 대한 적용에 대해 좀 더 심플하고 빠른 대응이 가능 할 것이라고 판단했기 때문이다. 뿐만 아니라 우리는 이미 작년(2016)부터 부분적으로 클라우드 서비스를 이용하고 있었다. 때문에 단순히 성공사례만을 검토하고 맹목적으로 클라우드 도입을 결정한 것이 아닌 시기적절한 상황을 고려한 전략이었다 라고 할 수 있다.
지금도 끊임없이 급변하고 있는 O2O 시장에서,
클라우드를 기반으로 한 서비스 인프라 확보는 단순히 기술을 넘어서 관리적 측면에서도 의미있는 효과를 기대할 수 있다.
한마디로 말하자면,
이젠 너무 흔한 이야기가 된 DevOps를 넘어서 NoOps로 갈 수 있는 발판을 마련하는 계기를 만들었다고도 볼 수 있겠다.
얼마전 사내 오픈세미나에서 명사로 초청된 ‘조대협님’은 DevOps & NoOps는 이미 수년전에 나왔던 개념이라고 이야기 하였지만, IT기술을 기반으로 하는 여기어때 서비스는 아직 성장기 단계에 있고, 향후 좀 더 성숙되고 안정된 기술기반으로 서비스를 만들어 가기 위해서는 앞서 이야기한 모든 고민들과 신기술들 그리고 새로운 도구를 적극적으로 도입할 수 있어야 하고 반드시 필요한 부분이라고 생각한다.
“ Q. ㅇㄱㅇㄸ 과거, 현재 그리고 미래 ”
“기존 소프트웨어는 벤더파와 오픈소스파의 전쟁이었고, 오늘날 승자는 어느쪽도 아니었으며 바로 클라우드였다. 오늘날 모든 기술은 클라우드로 녹아들어가고 있고, 소프트웨어는 전기처럼 사용하는 시대가 된 것인데…
우리 여기어때 앱 서비스도 보다 빠른 시장 대응과 안정성을 추구하기 위해 클라우드로 이전을 결정하였다.”
— - Edward J. Yoon CTO
클라우드 컴퓨팅 시대에 발맞춰 그들의 여정에 이제 우리도 함께 합류하게 된 것에 대해서 기대도 해주고 박수도 쳐주지만, 한 편에선 이제 모든 문제가 해결된 것 처럼 느낄 수도 있겠다.
냉정히 말해, 우리는 지금까지 알지 못했던 기술적 부재로부터 벗어나 이제 한걸음 내딛는 수준이 되었다 라고 말하고 싶다.
더불어 이 모든 시작은 과거의 기술부채로 부터 오게 되었고 현재에도 끊임없이 발생하고 있는 이슈들을 해결해 나가고 있지만, 좀 더 견고하되 유연한 서비스 개발에 대한 고찰로 그 생각들의 생김새가 이제 조금씩 변모되어가고 있는 상황이 만들어지고 있다고 생각한다.
그런 생각들을 할 수 있게 된 것,
전 보다 조금 더 알게 되고 조금 더 넓어진 시야 만큼이나 아마도 더 나은 미래를 만들어 나갈 우리들의 가장 큰 발전이 아닐까 싶다.
지난 2달이 안되는 시간동안 R&D실의 시스템 엔지니어링팀은 클라우드 이전을 준비하면서 또 한번 쉼 없이 달려오게 되었다. 무엇보다 같은 공간에서 지내고 있는 동료들의 적극적이고 헌신적인 도움이 없었다면, 결코 단기간에 이룰 수 없는 결실이라고 생각한다.
# 여기어때 R&D 큰규모 공채
여기어때 서비스의 클라우드 이전으로 좀 더 재미있거나 좀 더 다양하거나 좀 더 트랜디한 기술에 발맞출 수 있는 환경이 마련되었다.
이제는 AWS 웹 콘솔이 가독성을 잃어갈 만큼 많아진 주메뉴의 다양한 서비스 기능들 … 개인적으로는 그 하나 하나를 전부 사용해보고 상용 서비스를 위해 적극적으로 도입해 볼 계획이다.
2017년 8월부터 여기어때 R&D실은 우리가 앞으로 추구해 나가야할 엔지니어링 파워에 대한 방향성 그리고 그 안에서 함께 성장할 구성원들과 같이 동행할 수 있는 인재를 모집하기 시작했다.
마이크로 서비스 아키텍처와 Serverless,
대용량 데이터 처리/분석,
기계학습과 정보검색,
그 밖에 서버지향적 프론트 엔드 개발 또는 풀스택 개발 등 …
행동하지 않으면 아무일도 일어나지 않는다는 말이 있다.
의심없이 도전하고 쟁취하고 함께 성취감을 느끼며 여기어때의 개발문화를 만들어 갈 수 있는 많은 분들의 적극적인 지원이 있었으면 하는 바램이다.
