2014.01.22

칼럼 | 클라우드 애플리케이션 설계 패러다임

Bernard Golden | CIO

클라우드 컴퓨팅이 애플리케이션 혁명을 초래했다. 클라우드 컴퓨팅은 외부 공급자에 아웃소싱을 의뢰하는 컴퓨터 모델에 불과하다고 생각하지 말기 바란다. 잘못된 생각이다. 이런 생각을 하고 있다면 스스로 세운 가정과 생각을 뒤집어야 하는 '뼈아픈' 전환기를 거치게 된다.

클라우드 환경에 내재된 인프라 기능과 차세대 애플리케이션 요건이 이런 변화를 초래한다. 그 결과물은 지금껏 생각해온 '애플리케이션'을 기준으로 했을 때, 일정 부분 기존 그 특성을 유지하고 있지만 설계와 운영 방법이 크게 다른 '새로운 애플리케이션'이다.

전통적인 애플리케이션과 클라우드를 기반으로 구현되는 새로운 애플리케이션의 특징을 비교하면 '상전벽해' 같은 차이를 알 수 있다. 다음은 전통적인 애플리케이션과 클라우드 애플리케이션을 비교한 표다.



표를 보면 클라우드 애플리케이션이 몇몇 중요한 특징을 갖고 있음을 알 수 있다. 전통적인 애플리케이션에는 사전에 예측을 할 수 있는 부분이 있다. 사용자의 수, 사용하는 장치, 장치 실행에 필요한 기반의 종류와 수를 알 수 있다.

클라우드 애플리케이션은 엘라스틱 기반
반면 현대의 애플리케이션은 과거와는 아주 크게 다르다. 로드를 예측할 수 없다. 사용자의 수도 알기 어렵다. (과거 사용자의 대다수를 차지한) 직원만 사용자가 아니기 때문이다. 고객, 파트너, 기타 이해관계자의 수도 모른다. 이들은 순수한 또는 나쁜 의도에서 기업 애플리케이션에 접근하는 외부 사용자들이다.

더 나아가, 과거 IT 부문이 승인한 장치로 애플리케이션을 이용했던 것과 달리 다양한 장치를 이용해 애플리케이션에 접속한다. PC, 태블릿, 스마트폰 등 점차 다양한 장치로 애플리케이션을 이용하는 사례가 증가하고 있다. 미래에는 의료기기 등 특수 장치는 물론 스마트워치와 기타 특정 용도의 하드웨어 등 과거에는 컴퓨팅 장치로 생각되지 않았던 장치들이 애플리케이션에 접속하는 비중이 더욱 늘어날 것이다.

또 지정된 인프라에서만 애플리케이션을 운용하지도 않는다. 아마존 웹 서비스, 구글, 마이크로소프트 등 외부 공급자가 제공한 인프라에 상주한다. 이 밖에 지정된 전용 하드웨어에 기반을 두지도 않는다. 클라우드 공급자는 고객의 워크로드를 필요에 따라 옮길 수 있는 공유 인프라를 사용해야 경제성을 실현할 수 있기 때문이다.

애플리케이션 인프라가 고정돼 있지도 않다. 로드에 따라 쉽게 확장 또는 축소된다. 자원 사용만큼 요금을 지불하는 과금 체계가 정립되고 있기 때문이다.

전통적인 애플리케이션 설계에서는 얼마나 많은 인프라가 필요한지 예상해 자본 지출 운용 계획에 따라 이를 조달한다. 애플리케이션 운용에 필요한 자원을 예측하기 어렵지만, 지출 자본을 일관되게 감가상각 할 수 있다. 이는 자원 사용량과는 상관 없는 감가상각이다.

그러나 클라우드 애플리케이션의 경우 자원 소비 자체가 비용 항목으로 계산이 된다. 자원을 낭비할 경우 비용이 발생한다는 의미다.

일부에서는 아주 비싼 퍼블릭 클라우드 환경을 도입한다. 대다수 IT 애플리케이션의 로드를 예상할 수 있기 때문에 고정된 인프라나 다름 없는 이런 클라우드 환경을 이용할 수 있다고 생각해서다. 그러나 클라우드 컴퓨팅 애플리케이션 아키텍처 과정을 피하려는 목적에서 이런 가정을 하지는 말아야 한다.

전통적인 인프라는 고정돼 있고, 조정이 아주 어렵고, 따라서 신속하게 조정하기가 어렵다. 즉 전통적인 IT 환경은 그리스 신화 속의 프로크루테스의 침대(Procrustean beds)라 할 수 있다. '침대'길이를 조정하지 않고, 사람의 다리, 즉 애플리케이션을 억지로 맞춰 넣는 그런 환경을 의미한다. 그러나 이는 차세대 애플리케이션에서는 수용되지 않을 환경이다.

클라우드로 이런 인위적인 제한이 없어지면 개발자는 탄력적인 인프라를 사용하겠다고 고집할 것이다. 개발자들은 인프라란 쉽게 구하고 확장할 수 있는 것이라고 생각을 하게 된다. 그러면 결국 클라우드 환경이 요구되는 새 애플리케이션에 착안을 한다. 이 상황에서는 과거의 안정적인 애플리케이션 기반에 대한 고정관념이 사라진다.

과거의 방식이 미래에 소용없게 되는 것이다. 간단히 말해, 미래의 애플리케이션은 모두 클라우드 애플리케이션이다. 따라서 여기에 맞게 설계 및 운영을 할 필요가 있다.

애플리케이션 관리 역량 향상
이 점을 염두에 두면, 지금부터 소개하는 4가지 가정과 방식이 미래의 애플리케이션을 설계 및 도입할 때 도움이 될 것이다.




2014.01.22

칼럼 | 클라우드 애플리케이션 설계 패러다임

Bernard Golden | CIO

클라우드 컴퓨팅이 애플리케이션 혁명을 초래했다. 클라우드 컴퓨팅은 외부 공급자에 아웃소싱을 의뢰하는 컴퓨터 모델에 불과하다고 생각하지 말기 바란다. 잘못된 생각이다. 이런 생각을 하고 있다면 스스로 세운 가정과 생각을 뒤집어야 하는 '뼈아픈' 전환기를 거치게 된다.

클라우드 환경에 내재된 인프라 기능과 차세대 애플리케이션 요건이 이런 변화를 초래한다. 그 결과물은 지금껏 생각해온 '애플리케이션'을 기준으로 했을 때, 일정 부분 기존 그 특성을 유지하고 있지만 설계와 운영 방법이 크게 다른 '새로운 애플리케이션'이다.

전통적인 애플리케이션과 클라우드를 기반으로 구현되는 새로운 애플리케이션의 특징을 비교하면 '상전벽해' 같은 차이를 알 수 있다. 다음은 전통적인 애플리케이션과 클라우드 애플리케이션을 비교한 표다.



표를 보면 클라우드 애플리케이션이 몇몇 중요한 특징을 갖고 있음을 알 수 있다. 전통적인 애플리케이션에는 사전에 예측을 할 수 있는 부분이 있다. 사용자의 수, 사용하는 장치, 장치 실행에 필요한 기반의 종류와 수를 알 수 있다.

클라우드 애플리케이션은 엘라스틱 기반
반면 현대의 애플리케이션은 과거와는 아주 크게 다르다. 로드를 예측할 수 없다. 사용자의 수도 알기 어렵다. (과거 사용자의 대다수를 차지한) 직원만 사용자가 아니기 때문이다. 고객, 파트너, 기타 이해관계자의 수도 모른다. 이들은 순수한 또는 나쁜 의도에서 기업 애플리케이션에 접근하는 외부 사용자들이다.

더 나아가, 과거 IT 부문이 승인한 장치로 애플리케이션을 이용했던 것과 달리 다양한 장치를 이용해 애플리케이션에 접속한다. PC, 태블릿, 스마트폰 등 점차 다양한 장치로 애플리케이션을 이용하는 사례가 증가하고 있다. 미래에는 의료기기 등 특수 장치는 물론 스마트워치와 기타 특정 용도의 하드웨어 등 과거에는 컴퓨팅 장치로 생각되지 않았던 장치들이 애플리케이션에 접속하는 비중이 더욱 늘어날 것이다.

또 지정된 인프라에서만 애플리케이션을 운용하지도 않는다. 아마존 웹 서비스, 구글, 마이크로소프트 등 외부 공급자가 제공한 인프라에 상주한다. 이 밖에 지정된 전용 하드웨어에 기반을 두지도 않는다. 클라우드 공급자는 고객의 워크로드를 필요에 따라 옮길 수 있는 공유 인프라를 사용해야 경제성을 실현할 수 있기 때문이다.

애플리케이션 인프라가 고정돼 있지도 않다. 로드에 따라 쉽게 확장 또는 축소된다. 자원 사용만큼 요금을 지불하는 과금 체계가 정립되고 있기 때문이다.

전통적인 애플리케이션 설계에서는 얼마나 많은 인프라가 필요한지 예상해 자본 지출 운용 계획에 따라 이를 조달한다. 애플리케이션 운용에 필요한 자원을 예측하기 어렵지만, 지출 자본을 일관되게 감가상각 할 수 있다. 이는 자원 사용량과는 상관 없는 감가상각이다.

그러나 클라우드 애플리케이션의 경우 자원 소비 자체가 비용 항목으로 계산이 된다. 자원을 낭비할 경우 비용이 발생한다는 의미다.

일부에서는 아주 비싼 퍼블릭 클라우드 환경을 도입한다. 대다수 IT 애플리케이션의 로드를 예상할 수 있기 때문에 고정된 인프라나 다름 없는 이런 클라우드 환경을 이용할 수 있다고 생각해서다. 그러나 클라우드 컴퓨팅 애플리케이션 아키텍처 과정을 피하려는 목적에서 이런 가정을 하지는 말아야 한다.

전통적인 인프라는 고정돼 있고, 조정이 아주 어렵고, 따라서 신속하게 조정하기가 어렵다. 즉 전통적인 IT 환경은 그리스 신화 속의 프로크루테스의 침대(Procrustean beds)라 할 수 있다. '침대'길이를 조정하지 않고, 사람의 다리, 즉 애플리케이션을 억지로 맞춰 넣는 그런 환경을 의미한다. 그러나 이는 차세대 애플리케이션에서는 수용되지 않을 환경이다.

클라우드로 이런 인위적인 제한이 없어지면 개발자는 탄력적인 인프라를 사용하겠다고 고집할 것이다. 개발자들은 인프라란 쉽게 구하고 확장할 수 있는 것이라고 생각을 하게 된다. 그러면 결국 클라우드 환경이 요구되는 새 애플리케이션에 착안을 한다. 이 상황에서는 과거의 안정적인 애플리케이션 기반에 대한 고정관념이 사라진다.

과거의 방식이 미래에 소용없게 되는 것이다. 간단히 말해, 미래의 애플리케이션은 모두 클라우드 애플리케이션이다. 따라서 여기에 맞게 설계 및 운영을 할 필요가 있다.

애플리케이션 관리 역량 향상
이 점을 염두에 두면, 지금부터 소개하는 4가지 가정과 방식이 미래의 애플리케이션을 설계 및 도입할 때 도움이 될 것이다.


X