Cloud Computing2010.05.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.05.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

댓글을 달아 주세요

  1. 와우~ 내용도 내용이지만
    너무 잘 정리하셨네요.
    역시 안준석님 쵝오~!

    2010.05.11 18:05 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. 내용이 간결하면서도 정확하네요. 이런 능력.. 참.. 부럽습니다.

    AppFabric = 서비스버스 + 보안 + 분산 캐시 + 모니터링 + ... 이라고 볼때
    Windows Azure Platform AppFabric = Service bus + access control + (Azure 내장 혹은 Velocity 설치가능) + (Azure 내장)
    Windows Server AppFabric = (WCF 기능) + (WIF a.k.a. "Geneva" 기능) + "Velocity" + "Dublin"
    의 형태로 양쪽 공히 같은 모양을 취하도록 설계되고 있다고 생각됩니다.

    앞으로의 포스팅 정말 기대됩니다.

    2010.05.11 19:19 신고 [ ADDR : EDIT/ DEL : REPLY ]
  3. 삼월

    클라우드 컨퍼런스에서의 발표도 잘 들었습니다만,
    간결하게 요점을 잘 정리하셨네요. 머리속에 쏙쏙 들어옵니다
    구름잡는 듯 웬지 모호했던 클라우드 컴퓨팅을 쉽게 구현할 수 있는 날이 왔군요.. ㅎㅎ
    이후 포스팅도 고대하고 있겠습니다.

    2010.05.13 17:26 신고 [ ADDR : EDIT/ DEL : REPLY ]

Cloud Computing2010.04.28 18:19
2010 Microsoft @ Cloud Day 안준석 발표자료
View more presentations from TedAhn.

조금은 긴 제목의 세션이었습니다. Techdays 사이트에서 발표 동영상을 보실 수 있습니다.
시간이 짧아서 말을 매우 빨리 했네요 ;)

마이크로소프트 클라우드 컴퓨팅 플랫폼과 기술을 소개하고 이 플랫폼에서 애플리케이션을 개발하기 위한 방법을 소개합니다.
KGC2009 에서 발표 했던 내용에 PDC2009 에 소개 된 Azure 내용을 더한 자료 입니다.

MS 클라우드 기술 중에서 특히 주목하고 있는 것이 AppFabric 입니다.
실제로 Public 클라우드인 Azure 에서 개발자가 할 수 있는 제한적입니다.
"이전과 동일하게 개발하고 Azure 에 올린다" 라고 표현하면 적당하겠네요.
때문에 Private 클라우드에 대한 관심이 커질 것 같습니다.
AppFabric 은 브로커 역할을 함으로써 Private 과 Public 클라우드의 상호운용이 가능케 합니다.
위 자료를 통해 대략적인 흐름을 보실 수 있으리라 생각합니다.

뒤에 짧게 다룬 Project Dallas 와 Pinpoint 는 앞으로 주의 깊게 살펴보고 포스팅 할 예정입니다~!

ps. Azure.com 와 Azure 트레이닝킷를 참고하시면 다양한 정보를 쉽게 얻을 수 있습니다.


신고
Posted by TedAhn

댓글을 달아 주세요


티스토리 툴바