2020.08.21

빠른 확장이 필요한 애플리케이션을 구축하는 6가지 팁

Nikita Ivanov | InfoWorld
코로나19와 팬데믹이 지역사회와 경제를 계속해서 강타하는 가운데, 전자상거래와 물류, 온라인 학습, 식품 배송, 온라인 비즈니스 협업을 비롯한 다양한 분야의 많은 기업이 제품과 서비스의 막대한 수요 증가를 경험하고 있다. 모임 금지와 격리 조치에 따른 사용 패턴의 변화로 온라인 비즈니스가 급성장하면서 애플리케이션이 한계를 넘어 사용되고, 결과적으로 중단, 지연이 발생해 고객이 불편을 겪는 경우도 증가하고 있다.
 
회사의 비즈니스와 애플리케이션 부하가 대폭 증가할 때 어떻게 대처해야 할까? 막대한 비용 투자 없이 애플리케이션의 성능과 확장성을 신속하게 높여 쾌적한 고객 경험을 보장하려면 어떻게 해야 할까? 빠르게 확장되어야 하는 애플리케이션에 즉시 적용할 수 있는 6가지 팁을 소개한다.
 

팁 1 : 전체 문제 이해

문제의 일부분만 해결해서는 원하는 결과를 달성하기 어렵다. 다음 요소를 모두 고려해야 한다.
 
기술 문제 – 부하 하의 애플리케이션 성능과 사용자가 경험하는 성능을 좌우하는 요소는 지연과 동시성의 상호 작용이다. 지연은 특정 작업에 필요한 시간, 예를 들어 웹사이트가 사용자 요청에 응답하는 데 소요되는 시간이다. 동시성은 시스템이 처리할 수 있는 동시 요청의 수다. 동시성이 확장되지 않으면 수요가 급증할 때 시스템이 수신하는 모든 요청에 즉시 응답할 수 없으므로 지연이 증가하게 된다. 몇 분의 1초였던 응답 시간이 몇 초 또는 그 이상으로 늘어나면서 고객 경험의 질이 저하되고, 아예 모든 요청에 응답하지 못하는 상황까지 발생할 수 있다.

따라서 단일 요청에 대해 낮은 지연을 확보하는 것도 중요하지만 그것만으로는 동시성 급증으로 인해 발생하는 문제를 제대로 해결할 수 없다. 필요한 응답 시간을 유지하면서 동시 사용자의 수를 확장할 방법을 찾아야 한다. 또한 여러 클라우드 제공업체와 온프레미스 서버에 걸쳐 분산될 수 있는 하이브리드 환경 전반으로 단절 없이 애플리케이션 확장이 가능해야 한다.
 
타이밍 – 완전한 애플리케이션 재설계와 같이 시행에 몇 년이 걸리는 전략은 즉각적인 수요에 대처하는 데 도움이 되지 않는다. 몇 주 또는 몇 개월 내에 확장이 가능한 솔루션이어야 한다.
 
비용 – 예산 제약 없이 과제 해결에 나설 수 있는 기업은 거의 없으므로 선행 투자와 운영 비용을 최소화할 수 있는 전략이 중요하다.
 

팁 2 : 단기, 장기 모두 계획하기

지연 수준을 유지하면서 동시성을 높이는 문제에 대처한다 해도 많은 비용을 초래하는 막다른 길로 이어질 위험이 있는 단기 해결책에 급급해서는 안 된다. 전면적인 애플리케이션 재설계가 계획에 없거나 현실적이지 않다면 기존 인프라를 필요에 따라 대대적으로 확장할 수 있게 해주는 전략을 채택하라.
 

팁 3: 적절한 기술 선택

오픈소스 인메모리 컴퓨팅 솔루션은 지연을 유지하거나 개선하면서 빠르게 시스템을 확장할 수 있는 가장 비용 효율적인 방법이라는 사실이 입증됐다. 예를 들어 아파치 이그나이트(Ignite)는 일반 서버 클러스터에 배포되는 분산 인메모리 컴퓨팅 솔루션이다. 클러스터의 가용한 CPU 및 RAM을 풀링하고 개별 노드로 데이터와 컴퓨팅을 분산한다. 이그나이트는 온프레미스, 퍼블릭 또는 프라이빗 클라우드나 하이브리드 환경에서 기존 애플리케이션과 데이터 계층의 큰 변화 없이 그 사이에 위치하는 인메모리 데이터 그리드(IMDG)로 배포가 가능하다. 이그나이트는 ANSI-99 SQL과 ACID 트랜잭션도 지원한다.
 
아파치 이그나이트 인메모리 데이터 그리드를 구축하면 데이터베이스의 데이터는 컴퓨팅 클러스터의 RAM에 “캐시”되고 일반적인 디스크 읽기 및 쓰기 기반 데이터 저장소에 의해 유발되는 지연 없이 처리에 사용 가능하다. 이그나이트 IMDG는 맵리듀스(MapReduce) 방식을 사용하며 클러스터 노드에서 애플리케이션 코드를 실행해 네트워크를 통한 데이터 이동을 최소화하면서 클러스터 전반에서 대용량 병렬 처리(MPP)를 수행한다. 인메모리 데이터 캐싱, 클러스터 노드로 컴퓨팅 보내기, MPP의 조합은 비약적으로 동시성을 높이고 지연을 낮추며, 디스크 기반 데이터베이스에 구축된 애플리케이션에 비해 최대 1,000배의 애플리케이션 성능 향상을 제공한다.
 
이그나이트의 분산 아키텍처는 새 노드를 추가하는 것만으로 클러스터의 컴퓨팅 성능과 RAM을 늘릴 수 있게 해준다. 이그나이트는 자동으로 추가 노드를 감지하고 클러스터의 모든 노드로 데이터를 재분산해서 CPU와 RAM 사용을 최적화한다. 클러스터에 손쉽게 노드를 추가하는 기능은 빠른 성장을 지원하기 위한 막대한 확장성의 기반이기도 하다. 마지막으로, IMDG는 애플리케이션 계층에 의해 IMDG의 데이터에 수행된 변경을 소스 데이터 저장소로 되돌려 쓰는 방법으로 데이터 일관성을 보장한다.
 
아파치 이그나이트는 갈수록 중요해지는 다음 두 가지 전략의 기반이 됨으로써 인프라의 미래를 보장하는 역할도 한다.
 
디지털 통합 허브(DIH) – DIH 아키텍처는 360도 데이터 시야가 필요한 실시간 비즈니스 프로세스를 구현할 수 있다. DIH는 온프레미스 및 클라우드 데이터베이스, 데이터 호수, 데이터 웨어하우스, SaaS 애플리케이션 등 데이터 스트림과 온프레미스, 클라우드 기반 소스에서 오는 데이터의 집계와 처리를 위한 공통 데이터 액세스 계층을 제공한다. 그러면 다수의 고객 대면 비즈니스 애플리케이션이 집계된 데이터에 액세스하고 네트워크를 통한 데이터 이동 없이 인메모리 속도로 데이터를 처리할 수 있다. DIH는 소비 애플리케이션에 의해 수행된 데이터 변경을 백엔드 데이터 저장소로 자동으로 동기화하면서 이러한 데이터 소스를 대상으로 하는 API 호출의 필요성을 줄이거나 아예 없애준다.
 
하이브리드 트랜잭션/분석 처리(HTAP) – HTAP는 트랜잭션과 분석을 위한 동일한 인메모리 데이터 집합을 고속 처리한다. HTAP를 사용하면 온라인 트랜잭션 처리(OLTP) 시스템에서 별도의 온라인 분석 처리(OLAP) 시스템으로 주기적으로 데이터를 복사하기 위한, 많은 시간이 소비되는 추출, 변형 및 로드(ETL) 프로세스가 필요 없다. 인메모리 컴퓨팅 플랫폼을 기반으로 하는 HTAP는 전체적인 시스템 성능에 영향을 미치지 않으면서 운영 데이터를 대상으로 사전 정의된 분석 쿼리를 실행할 수 있게 해준다.
 

팁 4 : 오픈소스 스택 고려

계속해서 비용 효율적이고 빠르게 확장 가능한 인프라를 만들기 위해서는 다음의 검증된 오픈소스 솔루션을 고려하라.

•    아파치 카프카(Kafka) 또는 아파치 플링크(Flink) - 주식 시세 또는 IoT 디바이스와 같은 스트리밍 소스의 데이터를 아파치 이그나이트 인메모리 데이터 그리드로 전송하기 위한 실시간 데이터 파이프라인을 구축한다.

•    쿠버네티스 – 도커 또는 기타 컨테이너 솔루션으로 컨테이너화된 애플리케이션의 배포와 관리를 자동화한다. 애플리케이션을 컨테이너에 넣고 이 컨테이너의 관리를 자동화하는 것은 분산, 하이브리드, 멀티 클라우드 환경에서 실시간 엔드투엔드 비즈니스 프로세스를 성공적으로 구축하기 위한 핵심 요소다.

•    아파치 스파크 – 대량의 분산 데이터를 처리 및 분석한다. 스파크는 이그나이트 인메모리 컴퓨팅 플랫폼을 활용해서, 카프카(Kafka)나 플링크 스트리밍 파이프라인을 통해 흡수되는 방대한 데이터를 사용해 더 효과적으로 머신러닝 모델을 학습시킨다.
 

팁 5 : 제대로 빌드, 배포, 유지하기

이러한 솔루션을 신속하게 구축하기 위해서는 프로젝트에 투입할 수 있는 내부 리소스를 현실적으로 평가해야 한다. 회사 리소스의 전문 기술이나 가용성이 충분하지 않다면 주저 말고 외부 전문가와 상담해야 한다. 계약을 통해 이러한 모든 오픈소스 솔루션에 대한 지원을 손쉽게 받고, 내부 팀을 확장하는 데 드는 비용과 시간 없이 필요한 전문 기술을 확보할 수 있다.
 

팁 6 : 더 공부하기

이러한 기술의 잠재력을 파악하고 조직에 맞는 전략을 결정하는 데 도움이 되는 온라인 리소스는 많다. 다음 리소스부터 살펴보자.
 
아파치 이그나이트
•    아파치 이그나이트란?
•    지난 인메모리 컴퓨팅 서밋의 분과 세션 및 키노트 자료(영상 및 슬라이드)
•    아파치 이그나이트 커뮤니티
•    쿠버네티스에 아파치 이그나이트를 배포하기 위한 지침(영상)
 
아파치 카프카 및 아파치 플링크
•    아파치 카프카란?
•    아파치 카프카 서밋 세션 자료(영상 및 슬라이드)
•    아파치 플링크 간단 소개
•    아파치 플링크 커뮤니티

쿠버네티스
•    쿠버네티스 기본 개념 단계별 소개
•    쿠버네티스 커뮤니티
 
아파치 스파크
•    아파치 스파크 101
•    아파치 스파크 커뮤니티
 
비즈니스 활동의 폭증에 직면하여 최적의 고객 경험 보장하기, 팬데믹 이후의 경제 복구를 위한 성장 계획 수립하기, 어떤 경우든 인메모리 컴퓨팅을 기반으로 하는 오픈소스 인프라 스택은 전례 없는 속도와 대규모 확장성을 조합해 실시간 비즈니스 프로세스를 실현하기 위한 비용 효율적인 방법이다. editor@itworld.co.kr 


2020.08.21

빠른 확장이 필요한 애플리케이션을 구축하는 6가지 팁

Nikita Ivanov | InfoWorld
코로나19와 팬데믹이 지역사회와 경제를 계속해서 강타하는 가운데, 전자상거래와 물류, 온라인 학습, 식품 배송, 온라인 비즈니스 협업을 비롯한 다양한 분야의 많은 기업이 제품과 서비스의 막대한 수요 증가를 경험하고 있다. 모임 금지와 격리 조치에 따른 사용 패턴의 변화로 온라인 비즈니스가 급성장하면서 애플리케이션이 한계를 넘어 사용되고, 결과적으로 중단, 지연이 발생해 고객이 불편을 겪는 경우도 증가하고 있다.
 
회사의 비즈니스와 애플리케이션 부하가 대폭 증가할 때 어떻게 대처해야 할까? 막대한 비용 투자 없이 애플리케이션의 성능과 확장성을 신속하게 높여 쾌적한 고객 경험을 보장하려면 어떻게 해야 할까? 빠르게 확장되어야 하는 애플리케이션에 즉시 적용할 수 있는 6가지 팁을 소개한다.
 

팁 1 : 전체 문제 이해

문제의 일부분만 해결해서는 원하는 결과를 달성하기 어렵다. 다음 요소를 모두 고려해야 한다.
 
기술 문제 – 부하 하의 애플리케이션 성능과 사용자가 경험하는 성능을 좌우하는 요소는 지연과 동시성의 상호 작용이다. 지연은 특정 작업에 필요한 시간, 예를 들어 웹사이트가 사용자 요청에 응답하는 데 소요되는 시간이다. 동시성은 시스템이 처리할 수 있는 동시 요청의 수다. 동시성이 확장되지 않으면 수요가 급증할 때 시스템이 수신하는 모든 요청에 즉시 응답할 수 없으므로 지연이 증가하게 된다. 몇 분의 1초였던 응답 시간이 몇 초 또는 그 이상으로 늘어나면서 고객 경험의 질이 저하되고, 아예 모든 요청에 응답하지 못하는 상황까지 발생할 수 있다.

따라서 단일 요청에 대해 낮은 지연을 확보하는 것도 중요하지만 그것만으로는 동시성 급증으로 인해 발생하는 문제를 제대로 해결할 수 없다. 필요한 응답 시간을 유지하면서 동시 사용자의 수를 확장할 방법을 찾아야 한다. 또한 여러 클라우드 제공업체와 온프레미스 서버에 걸쳐 분산될 수 있는 하이브리드 환경 전반으로 단절 없이 애플리케이션 확장이 가능해야 한다.
 
타이밍 – 완전한 애플리케이션 재설계와 같이 시행에 몇 년이 걸리는 전략은 즉각적인 수요에 대처하는 데 도움이 되지 않는다. 몇 주 또는 몇 개월 내에 확장이 가능한 솔루션이어야 한다.
 
비용 – 예산 제약 없이 과제 해결에 나설 수 있는 기업은 거의 없으므로 선행 투자와 운영 비용을 최소화할 수 있는 전략이 중요하다.
 

팁 2 : 단기, 장기 모두 계획하기

지연 수준을 유지하면서 동시성을 높이는 문제에 대처한다 해도 많은 비용을 초래하는 막다른 길로 이어질 위험이 있는 단기 해결책에 급급해서는 안 된다. 전면적인 애플리케이션 재설계가 계획에 없거나 현실적이지 않다면 기존 인프라를 필요에 따라 대대적으로 확장할 수 있게 해주는 전략을 채택하라.
 

팁 3: 적절한 기술 선택

오픈소스 인메모리 컴퓨팅 솔루션은 지연을 유지하거나 개선하면서 빠르게 시스템을 확장할 수 있는 가장 비용 효율적인 방법이라는 사실이 입증됐다. 예를 들어 아파치 이그나이트(Ignite)는 일반 서버 클러스터에 배포되는 분산 인메모리 컴퓨팅 솔루션이다. 클러스터의 가용한 CPU 및 RAM을 풀링하고 개별 노드로 데이터와 컴퓨팅을 분산한다. 이그나이트는 온프레미스, 퍼블릭 또는 프라이빗 클라우드나 하이브리드 환경에서 기존 애플리케이션과 데이터 계층의 큰 변화 없이 그 사이에 위치하는 인메모리 데이터 그리드(IMDG)로 배포가 가능하다. 이그나이트는 ANSI-99 SQL과 ACID 트랜잭션도 지원한다.
 
아파치 이그나이트 인메모리 데이터 그리드를 구축하면 데이터베이스의 데이터는 컴퓨팅 클러스터의 RAM에 “캐시”되고 일반적인 디스크 읽기 및 쓰기 기반 데이터 저장소에 의해 유발되는 지연 없이 처리에 사용 가능하다. 이그나이트 IMDG는 맵리듀스(MapReduce) 방식을 사용하며 클러스터 노드에서 애플리케이션 코드를 실행해 네트워크를 통한 데이터 이동을 최소화하면서 클러스터 전반에서 대용량 병렬 처리(MPP)를 수행한다. 인메모리 데이터 캐싱, 클러스터 노드로 컴퓨팅 보내기, MPP의 조합은 비약적으로 동시성을 높이고 지연을 낮추며, 디스크 기반 데이터베이스에 구축된 애플리케이션에 비해 최대 1,000배의 애플리케이션 성능 향상을 제공한다.
 
이그나이트의 분산 아키텍처는 새 노드를 추가하는 것만으로 클러스터의 컴퓨팅 성능과 RAM을 늘릴 수 있게 해준다. 이그나이트는 자동으로 추가 노드를 감지하고 클러스터의 모든 노드로 데이터를 재분산해서 CPU와 RAM 사용을 최적화한다. 클러스터에 손쉽게 노드를 추가하는 기능은 빠른 성장을 지원하기 위한 막대한 확장성의 기반이기도 하다. 마지막으로, IMDG는 애플리케이션 계층에 의해 IMDG의 데이터에 수행된 변경을 소스 데이터 저장소로 되돌려 쓰는 방법으로 데이터 일관성을 보장한다.
 
아파치 이그나이트는 갈수록 중요해지는 다음 두 가지 전략의 기반이 됨으로써 인프라의 미래를 보장하는 역할도 한다.
 
디지털 통합 허브(DIH) – DIH 아키텍처는 360도 데이터 시야가 필요한 실시간 비즈니스 프로세스를 구현할 수 있다. DIH는 온프레미스 및 클라우드 데이터베이스, 데이터 호수, 데이터 웨어하우스, SaaS 애플리케이션 등 데이터 스트림과 온프레미스, 클라우드 기반 소스에서 오는 데이터의 집계와 처리를 위한 공통 데이터 액세스 계층을 제공한다. 그러면 다수의 고객 대면 비즈니스 애플리케이션이 집계된 데이터에 액세스하고 네트워크를 통한 데이터 이동 없이 인메모리 속도로 데이터를 처리할 수 있다. DIH는 소비 애플리케이션에 의해 수행된 데이터 변경을 백엔드 데이터 저장소로 자동으로 동기화하면서 이러한 데이터 소스를 대상으로 하는 API 호출의 필요성을 줄이거나 아예 없애준다.
 
하이브리드 트랜잭션/분석 처리(HTAP) – HTAP는 트랜잭션과 분석을 위한 동일한 인메모리 데이터 집합을 고속 처리한다. HTAP를 사용하면 온라인 트랜잭션 처리(OLTP) 시스템에서 별도의 온라인 분석 처리(OLAP) 시스템으로 주기적으로 데이터를 복사하기 위한, 많은 시간이 소비되는 추출, 변형 및 로드(ETL) 프로세스가 필요 없다. 인메모리 컴퓨팅 플랫폼을 기반으로 하는 HTAP는 전체적인 시스템 성능에 영향을 미치지 않으면서 운영 데이터를 대상으로 사전 정의된 분석 쿼리를 실행할 수 있게 해준다.
 

팁 4 : 오픈소스 스택 고려

계속해서 비용 효율적이고 빠르게 확장 가능한 인프라를 만들기 위해서는 다음의 검증된 오픈소스 솔루션을 고려하라.

•    아파치 카프카(Kafka) 또는 아파치 플링크(Flink) - 주식 시세 또는 IoT 디바이스와 같은 스트리밍 소스의 데이터를 아파치 이그나이트 인메모리 데이터 그리드로 전송하기 위한 실시간 데이터 파이프라인을 구축한다.

•    쿠버네티스 – 도커 또는 기타 컨테이너 솔루션으로 컨테이너화된 애플리케이션의 배포와 관리를 자동화한다. 애플리케이션을 컨테이너에 넣고 이 컨테이너의 관리를 자동화하는 것은 분산, 하이브리드, 멀티 클라우드 환경에서 실시간 엔드투엔드 비즈니스 프로세스를 성공적으로 구축하기 위한 핵심 요소다.

•    아파치 스파크 – 대량의 분산 데이터를 처리 및 분석한다. 스파크는 이그나이트 인메모리 컴퓨팅 플랫폼을 활용해서, 카프카(Kafka)나 플링크 스트리밍 파이프라인을 통해 흡수되는 방대한 데이터를 사용해 더 효과적으로 머신러닝 모델을 학습시킨다.
 

팁 5 : 제대로 빌드, 배포, 유지하기

이러한 솔루션을 신속하게 구축하기 위해서는 프로젝트에 투입할 수 있는 내부 리소스를 현실적으로 평가해야 한다. 회사 리소스의 전문 기술이나 가용성이 충분하지 않다면 주저 말고 외부 전문가와 상담해야 한다. 계약을 통해 이러한 모든 오픈소스 솔루션에 대한 지원을 손쉽게 받고, 내부 팀을 확장하는 데 드는 비용과 시간 없이 필요한 전문 기술을 확보할 수 있다.
 

팁 6 : 더 공부하기

이러한 기술의 잠재력을 파악하고 조직에 맞는 전략을 결정하는 데 도움이 되는 온라인 리소스는 많다. 다음 리소스부터 살펴보자.
 
아파치 이그나이트
•    아파치 이그나이트란?
•    지난 인메모리 컴퓨팅 서밋의 분과 세션 및 키노트 자료(영상 및 슬라이드)
•    아파치 이그나이트 커뮤니티
•    쿠버네티스에 아파치 이그나이트를 배포하기 위한 지침(영상)
 
아파치 카프카 및 아파치 플링크
•    아파치 카프카란?
•    아파치 카프카 서밋 세션 자료(영상 및 슬라이드)
•    아파치 플링크 간단 소개
•    아파치 플링크 커뮤니티

쿠버네티스
•    쿠버네티스 기본 개념 단계별 소개
•    쿠버네티스 커뮤니티
 
아파치 스파크
•    아파치 스파크 101
•    아파치 스파크 커뮤니티
 
비즈니스 활동의 폭증에 직면하여 최적의 고객 경험 보장하기, 팬데믹 이후의 경제 복구를 위한 성장 계획 수립하기, 어떤 경우든 인메모리 컴퓨팅을 기반으로 하는 오픈소스 인프라 스택은 전례 없는 속도와 대규모 확장성을 조합해 실시간 비즈니스 프로세스를 실현하기 위한 비용 효율적인 방법이다. editor@itworld.co.kr 


X