엔터프라이즈 통합이란?
모든 현대적인 비즈니스에서는 데이터를 공유해야 합니다. 빅데이터를 활용하려는 대규모 비즈니스라면 빅데이터는 통합의 문제라는 것을 알고 계실 것입니다. 이를 위해 비즈니스 전략의 핵심인 애플리케이션과 기기는 여러 클라우드 환경 전반에 걸쳐 서로 쉽게 액세스할 수 있어야 합니다. 엔터프라이즈 통합은 IT 조직의 모든 위치에서 데이터, 애플리케이션 및 기기를 연결하는 기술, 프로세스, 팀 구조를 모두 포함합니다.
엔터프라이즈 통합 모델은 상대적으로 적은 수의 포인트 투 포인트 연결에서 엔터프라이즈 서비스 버스(Enterprise Service Bus, ESB)를 통해 연결된 중앙집중식 모델과 재사용 가능한 수많은 엔드포인트로 분산된 아키텍처까지 수년에 걸쳐 진화해 왔습니다.
엔터프라이즈 통합의 "대상"과 "방식"
"통합"의 대상이란?
첫째로, 엔터프라이즈 통합은 데이터 통합의 문제입니다. 현재 조직 내에는 많은 데이터가 존재하기 때문에, 이러한 "빅데이터"는 대체로 데이터 소스의 규모 및 다양성을 나타냅니다. 다양한 비표준 형식의 대규모 데이터는 중요한 비즈니스 가치를 지닐 수 있지만, 다중 소스 또는 애플리케이션으로부터 통합하는 것이 우선입니다. 사물인터넷(Internet of Things, IoT)은 일상적으로 사용하는 기기를 통해 고객과 연결하고 유용한 데이터를 분석하는 새로운 기회를 의미하기도 하지만, 데이터센터로 이동해야 하는 중요 데이터를 필터링해야 합니다. 웹 애플리케이션은 레거시 애플리케이션을 마이크로서비스 같은 서비스 기반 아키텍처와 통합해야 할 때 엔터프라이즈 통합에 복잡성을 가중시킵니다.
"애플리케이션, 기기 및 데이터 통합"의 방식이란?
과거에는 중앙화된 팀에서 관리하는 중앙집중식 엔터프라이즈 서비스 버스(ESB)가 사용자 환경의 모든 엔드포인트를 연결할 수 있었습니다. 그러나 팀과 기술에 대한 중앙집중식 접근 방식은 현대적인 시스템에 병목 현상을 초래할 수 있으며 여기에는 분산된 구성 요소를 통합하기 위해 빠르고 간편한 경로가 필요합니다. 데이터 및 서비스 요구 사항에 따라 메시징, 애플리케이션 커넥터, 데이터 스트림, 엔터프라이즈 통합 패턴, 애플리케이션 프로그래밍 인터페이스(Application Programming Interfaces, API)의 결합을 보다 신속하고 반복적으로 배포할 수 있으므로 현대적인 애플리케이션 개발에 보다 적합한 방식일 수 있습니다.
메시징
메시징은 분산형 애플리케이션 아키텍처 내의 다양한 구성 요소를 위한 커뮤니케이션 방식입니다. 구성 요소는 커뮤니케이션의 일반적인 메시징 형식 및 프로토콜을 이해하는 한 다양한 언어, 컴파일러, 운영 체제에 걸쳐 메시지를 송수신합니다.
마이크로서비스 아키텍처 내에서 메시지를 라우팅하는 데에는 서비스 메쉬가 사용됩니다.
애플리케이션 커넥터
애플리케이션 커넥터는 구성 요소들이 상호작용하는 방식을 통제하는 룰을 모델링하는 아키텍처 요소입니다. 특정 API에 대해 커스터마이징된 표준 클래스 연결인 애플리케이션 커넥터를 사용하면 새로운 엔드포인트를 신속하게 통합할 수 있습니다.
데이터 스트림
데이터 스트림은 애플리케이션이 데이터 전송과는 별도로 추가하거나 사용할 수 있는 지속적인 정보의 흐름을 제공합니다. 예를 들어, Apache Kafka는 실시간으로 기록 스트림을 게시, 구독, 저장 및 처리할 수 있는 분산 데이터 스트리밍 플랫폼입니다.
엔터프라이즈 통합 패턴
엔터프라이즈 통합 패턴(Enterprise Integration Pattern, EIP)은 일반적인 통합 문제에 대한 기술 독립적인 솔루션 컬렉션입니다. 이러한 패턴은 개발자들과 애플리케이션 아키텍트들이 통합을 설명할 수 있는 공통의 언어를 제공합니다.
애플리케이션 프로그래밍 인터페이스(API)
API는 애플리케이션 소프트웨어를 구축하는 툴, 정의, 프로토콜의 세트로, API를 사용하면 구현 방식을 알지 못해도 제품 또는 서비스가 서로 커뮤니케이션할 수 있으며
통합에 대한 Red Hat의 접근 방식
Red Hat은 중앙화된 팀이 모놀리식 기술을 제어하는 통합에 대한 전통적인 접근 방식은 분산형 애플리케이션의 개발 및 장기적인 유용성을 저해할 수 있다고 생각합니다. ESB 같은 전통적인 통합 기술은 보안과 데이터 무결성을 우선시 하는 이점이 있지만, 동시에 전체 엔터프라이즈 통합에 대한 정의를 단일 팀에 의존한다는 한계도 있습니다.
애자일 및 DevOps 방법론을 통해 개발되어 탄력적으로 결합된 오늘날 클라우드 네이티브 애플리케이션 아키텍처는 민첩성과 확장성을 동등하게 중요시하는 통합 접근 방식을 필요로 합니다. Red Hat의 애자일 인테그레이션은 리소스를 연결하는 접근 방식으로, 통합 기술, 애자일 제공 기술 및 클라우드 네이티브 플랫폼을 결합하여 소프트웨어 제공 속도를 높이고 보안을 강화합니다. 특히 애자일 통합에서는 API 같은 통합 기술을 Linux 컨테이너로 배포하고 통합 역할을 다기능팀(Cross-Functional Team)으로 확장합니다.
클라우드 네이티브 아키텍처에서의 통합
클라우드 네이티브 애플리케이션은 독립적이고 유연하게 결합된 소규모의 마이크로서비스 컬렉션으로, Linux 컨테이너 형태로 배포되고, API 또는 메시징을 통해 연결됩니다. 각 서비스는 비즈니스 기능을 구현하고, 소규모 팀에서 지속적 통합 및 지속적 배포(CI/CD)와 같은 DevOps 워크플로우를 사용하여 개발됩니다. 이를 통해 서비스를 신속하게 구축하고 자동 배포하며 정기적으로 업데이트할 수 있기 때문에 더 이상 워터폴(Waterfall) 개발 주기는 필요하지 않습니다.
DevOps
DevOps는 비즈니스 가치와 대응력을 향상시키기 위한 문화, 자동화, 플랫폼 설계에 대한 접근 방식입니다.
컨테이너
컨테이너를 사용하면 전체 런타임 환경을 활용하여 애플리케이션을 패키징하고 분리할 수 있으므로 모든 기능을 유지하면서 서로 다른 환경 사이에서 애플리케이션을 쉽게 마이그레이션할 수 있습니다.
마이크로서비스
마이크로서비스 아키텍처는 애플리케이션을 서로 독립적인 최소 규모의 구성요소로 분해합니다.
API
API는 애플리케이션 소프트웨어를 구축하는 툴, 정의, 프로토콜의 세트로, 구현 방식을 알지 못해도 제품과 서비스를 연결할 수 있습니다.
클라우드 네이티브 애플리케이션은 사용자 피드백을 신속하게 통합하여 지속적으로 개선할 수 있는 능력과 같은 비즈니스 가치를 제공할 수 있도록 설계되었습니다. 다시 말해, 클라우드 네이티브 애플리케이션 개발은 새로운 애플리케이션을 구축하고, 기존 애플리케이션을 최적화하고, 모든 환경을 연결하는 작업을 가속화할 수 있는 방법입니다.
클라우드 네이티브 애플리케이션은 분산되어 있기 때문에 전통적인 모놀리식 애플리케이션과 다른 특유의 통합 과제를 해결해야 합니다. 애자일 통합은 애플리케이션 요구 사항과 통합에 대한 비즈니스 요구를 결합하므로 클라우드 네이티브 개발을 가능하게 합니다.
Red Hat Application Services 포트폴리오 살펴보기
Red Hat Integration은 Red Hat Application Services 포트폴리오의 제품 그룹 3개 중 하나입니다. Red Hat Integration을 통해 개발자는 하이브리드 아키텍처 전반에서 애플리케이션을 다양한 내부 및 외부 시스템에 통합할 수 있습니다.