다음을 통해 공유


[아키텍처 저널 번역] 21권 소프트웨어 + 서비스 및 클라우드 컴퓨팅을 위한 설계 고려 사항 #1/3

image

지난 번에 올렸던 "엔터프라이즈 소셜 컴퓨팅"은 현재 MSDN 싸이트에 공식적으로 번역물로 기재되었고  PDF 버전의 번역물 다운로드 링크도 추가되었다.

아키텍처 저널 19권의 한글 MSDN 싸이트는 아래와 같습니다.
https://msdn.microsoft.com/ko-kr/aa699428.aspx
"엔터프라이즈 소셜 컴퓨팅"의 한글 번역 MSDN 싸이트는 아래와 같습니다.
https://msdn.microsoft.com/ko-kr/aa699425.aspx

이번 포스트는 아키텍처 저널21권에 수록된 "소프트웨어 + 서비스 및 클라우드 컴퓨팅을 위한 설계 고려 사항"이라는 아티클 번역물에 대한 것으로 여러분의 피드백을 기다립니다. 조금 길어서 세번에 걸쳐 리뷰가 끝나는 대로 포스팅을 진행하도록 하겠습니다.

------------------------------------------------------------------------------

요약

이 문서는 S+S(Software plus Services), 클라우드컴퓨팅 또는 하이브리드컴퓨팅으로 일컬어 지는 차세대 애플리케이션의 설계 패턴에 대한 Microsoft의 생각을 공유하기 위해 작성되었다. 여기에는 기업, 소프트웨어, 인프라 아키텍처 등 일반 아키텍처 도메인에 영향을 주는 S+S 아키텍처의 고려 사항과 패턴에 대한 견해가 실려 있다.

서론

많은 기업들이 체계적인 마스터 플랜을 따르기 보다는 그때그때의 요구사항에 맞춰 몸집을 키우는 IT 인프라를 보유하는 쪽을 선택한다. 이런 방식으로 확장된 기업 시스템은 강력하게 서로 결합되거나 혹은 완벽하게 분리된 여러 하위 시스템["사일로(Silos)" 시스템으로도 불림]으로 구성된 대형 모놀리식(monolithic) 구조체로 변하는 경향이 있다. 일반적으로, 이러한 시스템은 난해하고 일관되지 못한 인터페이스를 가지고 있으며 복잡하고 효율성이 떨어지기 때문에 비즈니스 혁신 속도가 느려진다. 이로 인해, IT 관리자는 정보 기술을 통해 어떻게 하면 핵심 비즈니스를 지원할 수 있을까에 집중하기 보다는 운영 및 장애 제거 프로세스에 더 많은 시간을 보내게 된다. 게다가 일부 기업의 IT 시스템은 기능면에서 부분적으로 중복되기 때문에 비즈니스 정보에 대한 뷰 자체가 단편적이고 일관되지 못하게 되어, 결국 기업의 재정 지출에 대한 합리적인 의사 결정에 영향을 끼친다.

S+S(Software plus Services)는 SaaS(Software as a Service)의 확장 형태로서 조직이 비즈니스를 영위하는데 필요한 기술의 개발, 관리, 배포 및 운영 측면에서 더 많은 아웃소싱 옵션을 제공한다. S+S는 서비스 지향 아키텍처(SOA)의 원칙을 따른다. S+S는 애플리케이션 소프트웨어 및 서비스의 소싱, 파이낸싱, 배포와 관련된 다양한 방법을 제공하기 때문에, SOA를 지원하는 기업에서는 기술 선택의 폭이 넓어졌다. 합리적인 의사 결정을 내리고 S+S 모델을 채택함으로써 얻을 수 있는 잠재 혜택을 극대화하기 위해서는, IT 아키텍트와 의사 결정권자는 사내외에 존재하는 경제적, 규제적, 정치적, 재정적인 요인보다는 비즈니스 동인과 기술적 요구 사항에 중점을 두어야 한다.

이 문서는 Microsoft Worldwide Services 컨설팅 조직이 S+S와 클라우드 기반 애플리케이션을 설계, 이관하는 과정에서 경험한 실제 사례를 근간으로 하고 있다. 또한, 기업, 소프트웨어, 인프라 아키텍처 등 일반적인 아키텍처 도메인에 영향을 미치는 S+S 아키텍처의 고려 사항과 패턴에 대한 견해가 나타나 있다.

SOA, S+S, 클라우드컴퓨팅

2000년대 중반, 복잡한 IT 인프라 구조가 넘쳐나던 기업에 분별력을 제공하기 위해 다양한 SOA 사례가 소개되었다. 그 이후, 업계에서 가장 큰 인기를 끌던 SOA는 점차 주류에서 밀려나고 최근에는 “SOA는 죽었다”는 말까지 나오고 있다. 하지만 SOA가 오늘날까지도 지속되고 있는 중요한 패러다임의 변화를 이끌었다는 사실에는 변함이 없다.

기술적인 측면에서 SOA의 핵심적인 영향력은 바로 일련의 SOA 원칙, 패턴 그리고 분석 프로세스들이다. 이들을 활용하여 기업은 IT 포트폴리오에 대한 인벤토리를 작성하고 리팩터링을 진행하여 일상적인 비즈니스 운영 작업을 지원하는 모듈화되고 핵심적인 서비스 기능으로 변모시킬 수 있다. SOA의 주요 목표는 비즈니스 목표에 맞춰 기업의 IT를 재구성하고(align) 비즈니스 요구에 IT 부서가 보다 민첩하게 대응할 수 있도록 지원하는 것이다. IT 솔루션의 민첩성 강화를 위한 SOA의 몇 가지 주요 원칙으로는 느슨한 결합(loose coupling), 관심 분리(separation of concerns), 표준 기반 기술 및 대단위(coarse-grained) 서비스 설계가 있다.

그림 1. SOA, S+S, 클라우드 컴퓨팅을 통한 IT 최적화

aa699437_a1f1(en-us,MSDN_10)

SOA는 기업이 주요 서비스 기능을 식별하고, 비즈니스와 IT간 연계를 구축해 민첩성을 유지하도록 지원하는 반면, S+S는 사내에 배포된 클라우드 컴퓨팅 및 솔루션을 통해 IT 투자를 최적화할 수 있는 컴퓨팅 모델을 제공한다. 그러나 S+S는 SOA의 필요성을 없애는 것이 아니라 SOA를 지원하는 기업이 애플리케이션 소프트웨어 및 서비스를 소싱, 파이낸싱, 배포할 수 있는 여러 모드를 구축함으로써 기술 선택을 최적화할 수 있도록 도와준다.

그림 1은 SOA, S+S 및 클라우드 컴퓨팅 스택 관계를 나타낸다.

일반적으로 모든 조직에 적용할 수 있는 단 하나의 올바른 IT 포트폴리오가 있는 것이 아니기 때문에, 조직에 무엇이 가장 적합한가는 현재의 비즈니스 목표와 요구 사항에 달려 있다. 따라서 S+S 컴퓨팅 모델은 비용, 핵심 업무와의 관련성, 사용자 경험 및 혁신 가치, 비즈니스 차별성 등의 의사 결정 필터에 따라 특정 기술을 선택해 기업이 IT 포트폴리오를 최적화할 수 있도록 지원한다. S+S는 사업장내 (on-premises) 소프트웨어의 장점(예: 짧은 대기시간 및 풍부한 기능)과 클라우드 컴퓨팅의 장점(예: 유연한 확장성 및 아웃소싱)을 결합시켜 효과적인 하이브리드 분산 아키텍처 설계를 위한 보다 다양한 선택옵션을 제공한다.

클라우드 컴퓨팅은 제공되는 서비스를 집합적으로 지칭하는 말이다. 현재 클라우드 컴퓨팅은 아래와 같은 벤더의 솔루션을 포함한다.

* IaaS(Infrastructure as a Service). IaaS는 일반적으로 동적 확장이 가능하고 가상화된 계산 및 저장소 리소스가 서비스 형태로 제공되는 컴퓨팅 환경이다. 이 서비스는 서버 및 저장소 장치와 같은 하위 수준의 하드웨어에 대한 투자 요구로부터 서비스 고객 수를 산정한다.

* PaaS(Platform as a Service). PaaS는 서비스 고객에게 운영 체제와 애플리케이션 플랫폼 수준의 추상화를 제공한다. 또한, 단일 시스템 상의 다중 고객 지원 (multitenant) 환경에서 고객별 요청 처리 시간을 스케줄링하고, 메모리 공간을 할당하고, 시스템과 애플리케이션의 무결성을 보장할 수 있는 시스템 리소스 관리 기능을 제공한다. 서비스 고객은 PaaS 애플리케이션 개발 도구를 사용하여 호스팅 플랫폼에서 실행되는 클라우드 애플리케이션을 구축할 수 있다.

* SaaS(Software as a Service). SaaS는 타사 서비스 공급자에 의해 호스팅되는 비즈니스 및 소비자 애플리케이션을 의미한다. 서비스 고객은 웹 브라우저 또는 데스크톱에 설치된 애플리케이션을 통해 호스팅된 애플리케이션을 사용할 수도 있다. 어떤 경우에는, 기업이 자사의 데이터 및 비즈니스 프로세스와 SaaS 애플리케이션을 통합할 수 있도록 SaaS 공급자가 UI가 없는(headless) 웹 서비스를 제공하기도 한다.

클라우드 컴퓨팅 솔루션은 기업 관리 인프라를 보완하고 다음과 같은 다양한 이점을 제공한다.
* 추가 컴퓨팅 및 저장소 용량 등과 같은 리소스를 동적으로 할당하는 기능을 사용해 비즈니스 수요에 따라 IT 지출을 유연하게 조정할 수 있다.
* 트랜잭션 및 가입 기반 클라우드 플랫폼을 사용하여 막대한 IT 투자 없이도 새로운 비즈니스와 작업 모델을 신속하게 테스트할 수 있는 혁신적인 애플리케이션 솔루션을 개발할 수 있다.
* 아웃소싱된 솔루션은 모든 IT 자산을 효과적으로 관리 및 운영하는데 소요되는 지속적인 IT 비용과 책임(즉, 기회 비용)을 줄여준다.

설계고려사항

이 섹션에서는 S+S 기반 솔루션 설계 또는 채택 시 고려해야 할 비즈니스 및 기술적인 이슈에 대한 간략한 개요를 제공한다. 그림 2는 이 문서 구성에 사용된 프레임을 나타낸다. 이 프레임은 특정 아키텍처 관점을 중심으로 구성되었으며 공통 관심사(crosscutting concern)를 식별하여 S+S 전략의 일부로 간주되는 시나리오 유형, 설계 고려 사항 및 패턴에 관한 포괄적인 관점을 제공한다.
이 정보는 S+S 전략을 채택함에 있어서 전체적인 영향을 평가하는 기준이 된다.

엔터프라이즈아키텍처

엔터프라이즈 아키텍트 역할 가운데 가장 까다로운 것 중 하나는 끊임없이 변하는 비즈니스 요구 사항과 이러한 요구 사항을 일관성있게 충족시킬 수 있는 IT 조직 능력 간에 균형을 유지하는 것이다.

그림 2. 아키텍처 관점 프레임웍

aa699437_a1f2(en-us,MSDN_10)

S+S는 IT 플랫폼, 애플리케이션 또는 애플리케이션(비즈니스) 서비스를 통합하거나, 때로는 아웃소싱하여 운영 비용을 절감할 수 있는 새로운 기술 배포 패턴을 제공한다. 또한, 조직은 S+S를 통해 시스템 전사 통합시 발생하는 마찰을 줄일 수 있다. 때로는 기존 채널들을 결합시키는 것만으로도 기존 비즈니스 관계에 정보 서비스를 제공할 수도 있다.
엔터프라이즈 아키텍트는 먼저 최상위 수준에서 조직의 핵심 역량을 판단할 수 있는 기준을 마련하고, 어떤 애플리케이션이 이러한 핵심 역량을 지원하고 있는지, 그래서 어떤 애플리케이션이 사내에서 계속 유지해야 하는지 혹은 외부에 아웃소싱 주어야 하는지를 결정할 수 있는 프로세스를 마련해야 한다.

다음은 몇몇 대규모 조직에서 사용되는 모델이다.
* 회사에 특화된(proprietary) 미션 크리티컬한 시스템— 회사에 특화된 시스템, 혹은 미션 크리티컬한 시스템, 혹은 경쟁 우위를 제공하는 시스템은 무척 중요하기 때문에 외부(off-premises) 서비스 공급자에게 아웃소싱하기에는 위험부담이 너무 크다고 여겨진다. 따라서 이러한 시스템은 주로 조직내 기존 IT 부서에서 설계, 개발, 운영 및 관리한다.
* 회사에 특화되지 않은 미션 크리티컬 시스템— 회사에 특화되어 있는 시스템은 아니지만 미션 크리티컬한 시스템인 경우, 개발은 다른 회사에서 할 수 있지만 설계, 운영 및 관리는 조직 내 기존 IT 담당 부서에서 담당한다.
* 회사에 특화되지 않은 시스템— 표준화된 기능 및 인터페이스를 제공하는 특정 회사에 특화되지 않은 시스템은 서비스 공급자와 적절한 SLA(서비스 수준 계약)을 설정할 수 있는 경우, 클라우드 서비스 공급자에게 아웃소싱하기에 아주 적당하다. 이러한 시스템의 예로는 전자 메일, 일정관리 및 콘텐츠 관리 도구 등이 있다.

이 모델은 애플리케이션 및 시스템을 평가하는 출발점을 제공한다. 하지만 조직마다 차이점이 존재한다는 사실을 고려해야 한다. 예를 들어, 예산 또는 전문가의 부재로 조직 내에서 핵심 시스템을 효율적으로 관리할 수 없는 경우에는 아웃소싱을 고려할 수 있다. 마찬가지로, 일부 미션 크리티컬한 시스템을 클라우드에 두면 적은 비용으로도 추가 기능을 제공할 수 있어 단점이 상쇄된다. 일례로, 지점 또는 신뢰할 수 있는 파트너는 사내 전용 인프라를 구축하지 않고도 시스템에 접근할 수 있다.

그림 3. IT 성숙도에 따른 S+S 영향

aa699437_a1f3(en-us,MSDN_10)

그러나 단순히 애플리케이션을 외부(off-premises)로 이동시킬 기회를 식별하는 것으로는 충분하지 않다. S+S 기회를 활용하려면 의사 결정권자가 조직의 IT 성숙도를 명확하게 이해하고 있어야 한다. 이러한 이해가 있어야만 IT 인프라와 프로세스를 어떻게 변경해야 S+S 채택으로 얻을 수 있는 비용 절감 또는 ROI(투자 수익률) 극대화와 같은 이점을 실현할 수 있는지 결정할 수 있다.

그림 3은 IT 성숙도("Enterprise Architecture as Strategy"에 근거한 성숙도 모델1)에 따른 다양한 수준에서 S+S 채택의 용이성을 나타낸 것으로, 조직 성숙도를 판단하지 않으면 예측된 ROI가 부정확할 수도 있다는 것을 보여준다.