Cloud Computing2010. 5. 12. 17:30

시작하면서


안녕하세요
? Microsoft 클라우드 컴퓨팅 기술에 대해 포스팅 하고 있는 안준석 입니다.

동안 Window Azure Platform 대한 기본적인 개념에서 사용법까지 살펴 봤었습니다. 특히 클라우드를 하드웨어와 플랫폼 측면에서 이야기 했습니다.

앞으로는 Azure 라는 클라우드 환경에서 애플리케이션을 어떻게 설계하고 만들어야 하는지 알아보려고 합니다.

 


핵심
키워드는 "분산" "하이브리드" 그리고 "Window Azure Platform AppFabric" 입니다.

앞으로 포스팅 글들에 대한 전체 개요는 링크 보시면 됩니다.

 

 

Windows Azure 遺憾(유감)


개발자로써
동안 Microsoft Azure 플랫폼을 공부하고 사용하면서 재미도 있었지만 한편으론 많이 따분했었습니다.

 

"내가 개발 하던 방법 그대로 개발 하면 되네"

Microsoft 저력이 느껴지는 부분이기도 한데요, 다양한 기술들을 묶어 통일 패러다임이 녹아든 제품을 만들어 내는 능력을 보면 감탄사가 절로 나옵니다. 특히 클라우드 컴퓨팅은 새로 나온 기술이 아니라 동안 축적 기술들의 총아라고 있는데요, 클라우드 컴퓨팅에서도 Microsoft 제품들은 가지 색을 갖고 개발자에게 이전과 동일한 사용자 경험을 제공합니다.

따라서 Visual Studio 에서 예전과 같이 개발하고 마우스 오른쪽 클릭 "Public" 하고 결과물을 Azure 포탈에 업로드 하면 프로그램이 클라우드에서 작동 하게 됩니다.

 

"무한한 성능을 제공하는 새로운 컴퓨터가 생긴 건가?.. 재미없다!"

개발은 동일하게 하고 배포만 Azure 하면 된다? Microsoft 제공하는 기능은 편리하지만 자유도가 떨어지죠. 실제로 클라우드 자원을 자유롭게 조작해 없습니다. 클라우드에서 있는 것이 별로 없고 애플리케이션은 예전처럼 만든다면 클라우드든 로컬이든 개발자에게는 다를 없잖아요?

 


"아차! 잘못 생각하고 있었다!"

클라우드 컴퓨팅을 애플리케이션 개발 측면에서 접근 것이 아니라 하드웨어 기반(IaaS) 플랫폼 기반(PaaS) 이해 하고 사용하는 데만 집중 하고 있던 것이 문제 였습니다. 이런 기반들 위에서 작동하는 애플리케이션은 어떤 구조로 만들어야 하는지에 대한 고민이 부족해서 오해가 생겼던 것이었습니다. 아하!

 

동안 잠시 잊고 있던 !

클라우드 환경에서 애플리케이션이 탑재해야 기본 개념이 있으니 바로 "분산" 입니다.

 

 

 

 

 

분산 : 클라우드 기반 애플리케이션 개발을 위한 핵심 키워드


클라우드
컴퓨팅에서 분산은 무엇을 의미 할까요? 일반적으로 다음과 같은 것을 의미합니다.

 


논리적
또는 물리적으로 분리 되어 있는 애플리케이션들이 네트워크로 연결 되어 상호 연동 되는 것을 "분산 시스템" 이라고 말합니다.

 

클라우드 환경에서의 애플리케이션은 이렇게 분산 되고 상호 작용을 통해 하나의 시스템으로 통합되는 것을 전제로 개발 되야 합니다.

 

그런데 애플리케이션들이 물리적으로 떨어져 있고 네트워크를 통해 상호 연동하게 하려면 많은 것들이 필요합니다. 네트워크 연결 주소는? 프로토콜은? 암호화는? OS 달라? 서버장비가 달라? 방화벽은 어떻게 통과하지? 보안은? 등등 많은 이슈를 해결해야 합니다.

 

이를 위해 Windows Azure Platform 에서 제공하는 것이 있으니 바로 AppFabric 입니다.

 

 

 

Windows Azure Platform AppFabric


분산
애플리케이션을 위한 기반 컴포넌트입니다. 애플리케이션을 분산 시켜 상호 연동 발생하는 다양한 문제들을 미리 해결 놓은 Application Infrastructure 입니다.

 

앞으로는 회에 걸쳐 Application Infrastructure Key 플레이어인 Windows Azure Platform AppFabric 통해 클라우드 컴퓨팅 환경에서 어떻게 분산 애플리케이션을 개발 하면 되는지 알아보겠습니다. 이게 무엇인지 궁금하시죠? ;)

(주의!  Windows Server AppFabric Windows Azure Platform AppFabric 다른 것입니다.)

 

 


마치면서


클라우드
컴퓨팅에 대한 관심은 커지고 있지만 아직까지 애플리케이션(App) 개발자들에게 닿는 부분은 적습니다. 가지 이유로 클라우드 컴퓨팅을 이야기 때면 주로 물리적인 인프라의 구성과 활용 이점을 이야기 한다거나 제공되는 플랫폼을 사용하는 방법 등에 대해 다뤄지고 있었기 때문입니다.

 

이번 글에서는 애플리케이션(App) 개발자가 클라우드 환경에서 "분산" 시스템 구축을 전제로 개발해야 한다는 것을 이야기 했고 Microsoft 에서 제공하는 AppFabric 이를 위한 기반을 제공한다고 언급했습니다.

 

다음 회에는 분산 애플리케이션(App) 개발자들을 위한 Windows Azure Platform AppFabic 본격적으로 파헤쳐 보겠습니다 ;)

 

Posted by TedAhn
Cloud Computing2010. 5. 11. 16:49
 

    클라우드 기반 분산 애플리케이션 개발을 위한 핵심 키워드

    『분산과 하이브리드 그리고 AppFabric 포스팅 개요

     

    브레인스토밍

     

    동안 Microsoft Azure 공부하고 사용해 개발자로써 느낀

     

    • 내가 개발하던 방법 그대로 개발 하면 된다.
      • Microsoft 저력이 느껴지는 부분.!
      • Visual Studio 에서 "Publish" 해주고 Azure 포탈에서 "Deploy" 해주면 되는 것이다.

     

    • 새로운 컴퓨터가 생긴
      • .. 특별한 것이 없네..
      • 이전대로 개발하고 배포만 Azure 하면 되잖아
      • 별로 볼게 없네.. 재미없다.

    • 이게 오산 이었던
      • 클라우드 환경에서 작동하는 애플리케이션(App) 탑재해야 중요한 개념이 있으니
      • 그건 바로 "분산"

      • 그리고 Azure에는 분산 애플리케이션(App) 개발을 위한 Infrastructure 있으니

     

    • Microsoft IaaS, PaaS, AaaS 모든 클라우드 컴퓨팅 영역을 타겟으로 하고 있다.
      • 지금까지는 IaaS PaaS 구조를 살펴 보는데 주력 했다면
      • 앞으로는 Application Infrastructure Key 플레이어인 Windows Azure Platform AppFabric 통해
      • 클라우드 컴퓨팅 환경에서 어떻게 분산 애플리케이션(App) 개발 하면 되는지 알아보겠다.
      • 주의! Windows Server AppFabric Windows Azure Platform AppFabric 다른 것이다.

     

    • 발표 사람들이 항상 궁금해 하던
      • 하이브리드 클라우드 환경이 가능한지 궁금해 했다.
        • AppFabric 이용해 Public Cloud Private Cloud 또는 On-premise 하나의 분산 시스템으로 엮는 예제를 보여준다.

     

    클라우드 컴퓨팅의 의미를 다시 한번 상기해보자

    • 지금까지 하드웨어 제공에 초점을 맞춰 이해하고 설명해 왔다.
      • 무한한 성능을 가진 새로운 컴퓨터
    • 그런데 실제로 주목해야 것은 이런 클라우드 환경에서 앞으로 어떤 구조로 애플리케이션을 만들어야 하는가 이다.
    • 클라우드 컴퓨팅 환경에서 애플리케이션 개발에 초점을 맞춘다.
      • 핵심 키워드는 "분산"

     

    클라우드 환경에서의 애플리케이션 구성

    • 분산 애플리케이션을 결합해서 하나의 시스템을 제공한다.
    • 분산 애플리케이션이 하나의 시스템으로 구성 되고 작동 하기 위해 필요한 것들
      • Windows Azure 에서는 AppFabric 그것이다.
        • Service Bus
        • Access Control

     

    AppFabric 일까? Fabric 무엇을 의미 할까?

    • 인터넷으로 확장 Azure 위한 애플리케이션 분산 핵심 기능 AppFabric
    • Fabric 은 다수의 노드가 링크로 연결 되어 하나의 기능을 갖게 되는 것이다.

    • 원론적으로
      • Fabric 직조 물인데 직조 물은 굉장히 많은 연결점과 연결점을 잇는 줄로 구성 된다. 이런 다수 개의 연결점과 줄들이 모여 천이 되는 처럼 분산 애플리케이션(App)들이 네트워크로 연결 되어 하나의 시스템을 이루고 서비스를 제공할 있게 되는 것을 표현 하는 단어 같다.

     

    • 때문에 Fabric 이라는 단어는 컴퓨팅에서 분산, Distributed 자연스럽게 내포한 단어임이 틀림없다.
    • Fabric 서버 장비, 네트워크 장비에도 사용할 있다.
      • 예로 Routing Fabric, Server Fabric 다양하게 남발(?) 되고 있다.
      • 기저에는 "분산" 이라는 의미가 있다는 !
        • , 다수의 노드와 링크로 연결 되어 시스템을 구성하고 있다고 있다.

    • Application + Fabric 이라는 것은 분산 애플리케이션(App) 위한 기반이라고 생각 있다.
      • 다른 관점에서 살펴 보면 앞으로 클라우드 컴퓨팅 환경에서 작동하는 애플리케이션(App) 분산 시스템 구성을 기반으로 만들어야 한다는 것을 의미한다.
      • Window Azure 에서는 Windows Azure Platform AppFabric 애플리케이션(App) 분산과 통합을 위한 Key 플레이어이다.
      • 인터넷 범위의 애플리케이션(App) 분산과 통합임을 강조 해야 한다.

     

    Windows Azure Platform AppFabric?

    • 애플리케이션(App) 인터넷 범위로 분산 시켜 확장 시키는 방법과 분산 애플리케이션(App) 간에 상호 작용 있는 방법을 제공해 주는 것이다.
      • 범위
        • 인터넷 범위의 분산 시스템
      • 대상
        • 클라우드 애플리케이션(App)
        • On-premise 서비스들
        • 기종 플랫폼에서 만들어진 서비스들
      • 목표
        • 애플리케이션(App) 분산 시켜 확장하는 기반, 분산 애플리케이션(App)간에 상호 작용 기반
        • Private Cloud Public Cloud 간의 연동 기반
        • 표준 프로토콜을 지원함으로써 다른 플랫폼 기반의 ESB 통합
        • 하이브리드 클라우드 컴퓨팅을 위한 핵심 컴포넌트

     

    미리 보면 좋은 것들 추천

    • Broker
      • 분산 시스템을 위한 기본 패턴
      • POSA1 브로커 패턴을 공부하는 것을 추천한다
    • ESB (Enterprise Service Bus)
      • 분산 시스템을 위한 미들웨어
    • WCF (Windows Communication Foundation)
      • WCF 대한 선행 지식이 있으면 AppFabric 사용하기 쉬울 것이다.
      • AppFabric 예전 이름은 .NET Services 였다.
        • .NET 기반의 분산된 서비스들을 연결하고 통합한다는 의미 아니었을까?
      • 그런데 AppFabric 으로 바뀐 것은 표준도 지원 함을 강조하기 위함이 아니었을지..
        • 그러나 표준으로 AppFabric 사용하는 것은 화이트페이퍼를 보건데 아직 WCF 보다 아주 많이 수월하지 않다.
          • 앞으로도.. 당연히 Microsoft 플랫폼 기반에서 WCF 사용하는 것이 수월하겠지?

     

    궁금한

    • Dynamic Datacenter 에서 AppFabric 비슷한 기능을 하게 되는 것은?
      • Windows Server Fabric?
    • AppFabric 사용해서 샘플 애플리케이션(App) 만들어 봤는데.. 반응성이 상당히 느리더라.
      • 현재 사용자들은 만족하고 있는가?
    • App Service 단어 사용?
      • 어떤 문맥에 어떻게 사용해야 할지.. 지금은 대충 혼합해서 쓰고 있음..

     

     

    포스팅 순서

    1. 클라우드 기반 애플리케이션 개발을 위한 핵심 키워드 "분산"
    1. 분산 클라우드 컴퓨팅을 위한 "Windows Azure Platform AppFabric"
    1. Windows Azure Platform AppFabric 개요
    1. Service Bus Overview
    1. Service Bus 예제
    1. Service Bus 제대로 보기
    1. Access Control Overview
    1. Access Control 예제
    1. Access Control 제대로 보기
    1. Wrap up

     

     

Posted by TedAhn