Big Data 영역의 대표적인 특징 중의 하나는 Open Source Software들이 기술과 개발자들을 주도하고 있다는 점이다. Apache Hadoop을 중심으로 한 다수의 Open Source Software들은 Big Data 시스템의 규모(Volume)와 다양성(Variety)에 새로운 지평을 제시하고 있을 뿐 아니라, 사업적인 측면에서도 IBM, Oracle, HP 등과 같은 거대 기업에 맞서 다양한 성격의 기업들이 Big Data 시장에서 경쟁할 수 있는 바탕을 제공하고 있다.

소프트웨어 분야에서 Open Source Software가 주도적 위치에서 사용자와 개발자 모두에게 가치를 제공하는 것은 새로운 현상은 아니다. Apache HTTP Server, Spring Framework(Application Framework), jQuery(Web Framework), Eclipse(IDE) 등이 이미 독보적인 특성과 기능으로 상용 제품을 비롯한 경쟁제품들을 물리치고 사실상(de facto) 표준의 위치에 있다.

예를 들어 jQuery 2000년대 중반 주요 기술 동향인 Web 2.0이 현실화하는데 절대적인 기여를 하였다. 당시 Web 2.0 Framework을 표방한 Prototype, Script.aculo.us, MooTools, Dojo Toolkit 등은 기술적 난이도와 미흡한 Cross Browsing 지원으로 Web 2.0 구현에 어려움이 많았으나, 직관적인 API와 높은 수준의 품질을 갖춘 jQuery의 등장으로 개발자들은 더 이상 본인이 선택한 Framework의 품질을 의심하지 않고 수준 높은 웹 사이트를 개발할 수 있게 되었다.

오늘날 70% 이상의 웹사이트가 jQuery를 사용하고 있다. 그럼에도 불구하고 기업 고객과 정보시스템의 최종 사용자에게 jQuery는 중요한 Keyword가 아니다. 비용 관점에서 Web Framework의 비중이 크지 않기 때문이다. 이런 점은 Eclipse Spring Framework에 있어서도 동일하다. 다양한 분야에서 Open Source Software가 매우 중요한 역할을 하고 있지만, 대부분의 경우 개발자를 벗어난 고객과 최종 사용자의 인식에서 중요한 위치에 있지는 않다.

그러나, Big Data에서는 이야기가 달라진다. 최근 Apache Hadoop은 기업 고객에게도 매우 중요한 Keyword가 되고 있다. Apache Hadoop을 도입한다는 것은 이를 중심으로 한 10여 개 이상의 Open Source Software로 구성된 Ecosystem을 도입하는 것을 의미하며, 이는 기존에 수억에서 수십억의 비용을 요구하는 상용 Software Solution들을 대체하는 것을 의미하기 때문이다.

 

Big Data는 데이터 영역 정보기술에서 RDBMS, Data Warehouse, Business Intelligence 의 주요 흐름을 이어 갈 것이다. 전사적 관점에서 구축될 것이며, 구축된 시스템은 10년 이상 운영될 것이다. 대기업을 중심으로 전사적 Big Data 시스템 구축이 이미 진행되고 있으며, 초기에 겪어야 할 시행착오들을 넘어서고 있다. 전사적 규모와 운영 기간은 비용을 더욱 중요한 이슈로 만들고 있으며, Apache Hadoop을 중심으로 하는 Open Source Software에 대한 관심과 시도는 더욱 증가하고 있다.

Open Source Software는 상당한 비용절감을 가져올 수는 있지만, 결코 무료는 아니다. 선택에서부터 적용, 최적화 및 운영에 이르기까지 모든 과정을 사용자가 스스로 수행하고 책임져야 하므로 전문인력에 대한 투자가 필수적이다. 물론 외부 전문 조직을 활용할 수도 있겠지만, 이들은 아직 상용 솔루션을 제공하는 IBM, Oracle, HP 등과 같은 수준의 지원과 신뢰성을 기대하기는 어렵기 때문에 내부에 전문 조직이 필요하다. 많은 대기업들에게 이는 익숙하지 않은 상황이다. 중소규모의 시스템에도 아직 MySQL, JBoss AS 등을 도입하지 못한 이유가 동일하게 적용된다.

Open Source Software 중심의 전사 시스템을 추진한다면, 가장 바람직한 방법은 Best Practice를 활용하는 것이다. Open Source Software 기반의 Big Data 시스템에서 가장 기본적인 Best Practice는 데이터 수집에서부터 저장, 처리, 분석 등 각 영역에서 사용할 Software들을 선택하는 것이다. Big Data 시스템이 동작하기 위해 필요한 수집, 저장, 처리, 분석 등의 역할을 수행하는 구성요소들의 집합을 Ecosystem이라 한다.

Big Data 시스템의 Best Practice Ecosystem을 구성할 Software들을 선택하는 것부터, 물리적 구성, 개발 도구 선택, 응용 개발 표준 및 분석 모델에 이르기까지 광범위한 영역에서 고려할 수 있다. Best Practice들은 전체적으로 재활용 가능한 기반을 구성하며, 이는 Big Data 시스템을 위한 Platform 으로 생각할 수 있다.

다시 말해서 Big Data Platform은 다음과 같은 영역으로 구성된다.

 

 

 

Ecosystem 표준

 

데이터의 수집에서부터 저장, 처리, 분석 등 Big Data 활용의 각 단계별로 필요한 Software들은 Apache Hadoop을 중심으로 Ecosystem을 구성한다.
Ecosystem
표준은 다음 주제들에 대한 가이드를 제시한다.

  • Ecosystem 구성요소 목록 : 수집, 저장, 처리, 분석, 관리 영역에 사용할 Software 제품과 버전
  • 논리적 시스템 구성안
    • 데이터 수집에서 분석까지 End-to-End 범위의 Ecosystem 구성요소 배치 및 연계 방안
    • 데이터 규모 및 Big Data 활용 조직 증가에 따른 확장 방안
  • 물리적 시스템 구성안
    • 서버장비, 디스크, 네크워크장비 등 H/W 구성 방안
    • 데이터 규모 및 Big Data 활용 조직/서비스 증가에 따른 확장 방안
  • Ecosystem 구성요소 설치, 설정, 연계, 최적화 및 문제해결(Troubleshooting)을 위한 상세가이드

Ecosystem의 범위는 앞으로도 상당히 확장될(다양한 새로운 영역이 등장할) 것이며, 각 영역에서 많은 제품들이 주도권을 주고 받을 것으로 예상된다. Ecosystem 표준은 이를 최대한 활용하여 Big Data 시스템의 용도와 특성에 맞게 진화해야 한다. 이를 위해서 Ecosystem 표준은 Agile한 형태와 방법으로 개발되고 관리되는 것이 필요하다. Ecosystem 표준화 초기에는 빠른 기술 변화와 표준화 과정의 시행착오를 고려하여 설치본 또는 Open Source Software Customization과 같은 물리적인 형태에 집중하기보다는 표준안 또는 가이드와 같이 개선하기 쉬운 형태를 중심으로 표준을 수립하는 것이 유리할 것이다.

 

 

응용 개발 표준

 

Big Data 시스템 활용에는 다양한 프로그래밍 언어와 도구들이 사용되고 있다. Apache Hadoop의 기본구성요소인 MapReduce Java API를 제공하지만, Apache Pig, Apache Hive 등과 같이 현재 Data 처리에 가장 폭넓게 사용되는 제품들은 고유한 Script Query 언어를 사용해야 한다. 이외에도 많은 곳에서 Python이 사용되고 있으며, SAS, R 등의 통계분석 Software들도 고유의 프로그래밍 언어를 사용한다. 모든 종류의 프로그래밍 언어와 도구를 허용하고 활용한다면, 그 시스템은 오래지 않아 유지하기 매우 어려운 상태에 빠질 것이다. 효율적이고 효과적인 응용 개발 및 관리를 위해서는 다음과 같은 주제들을 포함하는 응용 개발 표준이 필요하다.

  • 응용 개발에 사용할 프로그래밍 언어와 도구 표준 제품
    • 주로 데이터 처리 또는 분석을 위한 응용 개발에 사용
    • ) MapReduce, Pig, Hive, Impala, Storm, R
  • 프로그래밍 언어별 응용 프로그래밍 가이드
    • 코딩 스타일, 명명표준
    • 권장/표준 외부 라이브러리 목록
    • 재활용 가능/권장 코드 Sample - 로그 처리, 코드 처리, 예외 처리 등
  • 응용 개발 프로세스 가이드
    • 설계, 코딩, 디버깅, 테스트, 빌드, 배포, 형상관리 프로세스 가이드
  • 응용 개발 도구 표준
    • 코딩, 코드 분석, 단위 테스트 등에 활용할 통합개발환경(IDE)을 포함한 개발 도구 목록 및 사용 가이드

 

분석 모델 Repository

 

분석은 Big Data 시스템의 최종 사용 단계이다. Big Data 시스템은 데이터의 규모뿐 아니라 데이터의 종류에도 새로운 범위를 추구한다. 위치 정보, 웹사이트 콘텐츠, SNS 콘텐츠 등과 같이 기존의 Data Mining, Business Intelligence 영역에서 다루지 않던 새로운 데이터를 분석할 뿐만 아니라 이들 새로운 데이터와 기업 내부 정형 데이터의 통합/교차 분석을 전개하고 있다. 이러한 모든 특성들은 다양한 신규 분석 모델의 개발과 활용을 요구하고 있다. 장기적 관점에서 Big Data 시스템의 진화는 분석 모델이 가장 중요한 견인차가 될 것이다. Big Data 시스템의 목적이 분석을 통한 활용에 있기 때문이다. 그러나 Intelligence Insight는 쉽게 얻을 수 있는 것이 아니며, 유용한 분석 모델을 확보하기 위해서는 상당한 시행착오가 필요할 것이다. 지속적인 분석 모델 고도화를 위해서 다음과 같은 내용을 포함한 체계적인 관리가 필요하다.

  • 표준/권장 분석 알고리즘
  • 공통(Common) 분석 모델
    • 고객분석, 상품분석, 판매분석, 수요분석, 위치분석 등 전형적인 범위에서 일반적으로 사용되는 분석모델
  • 분석 모델 Lessons Learned
    • 과거 또는 현행 분석 모델 적용을 통해서 경험한 Lessons Learned

 

 

이 밖에도 체계적이고 안정적인 운영을 위한 시스템 운영 표준 등도 Big Data Platform의 영역으로 고려할 수 있을 것이다.

Facebook, Twitter, Linked-in, Naver과 같은 기업들은 상용 Software에 거의 의존하지 않는다. 물론 이들은 IT 전문 기업으로서 풍부한 고급 소프트웨어 엔지니어를 보유하고 있기 때문이기도 하다, 그러나 보다 근본적으로는 이들의 서비스를 지원할 수 있는 수준의 Open Source Software 들을 가장 중요한 Enabler로 볼 수 있다. Big Data 영역은 보다 풍부하고 성숙된 Open Source Software들로 일반 기업과 조직들에게 자체 역량 확보의 가능성을 제시하고 있다. 비용 관점에서 이는 매우 신중한 결정이 필요한 사항이며, 실제로 최근 다수의 대기업들이 Open Source Software를 활용한 자체적인 Big Data 시스템 구축을 시도하고 있다. 이러한 도전들이 성공하기 위해서는 Platform 관점이 매우 유용한 방법이 될 것이다.

Platform은 해당 기업 내부에서 진화할 것이며, 외부에서 재활용 될 것이다. 성공적인 Platform은 유사한 산업 도메인과 사업규모를 가진 기업 또는 조직에게 매우 유용한 재활용 자산이 될 것이다.

 

 

 

티스토리 툴바