'Windows Server AppFabric'에 해당되는 글 2건

  1. 2010.06.10 마이크로소프트 클라우드 관련 새로운 소식
  2. 2009.12.07 Windows Server AppFabric, Velocity가 뭐죠? (1)
마이크로소프트2010. 6. 10. 10:56

그 동안 좀 오래 쉬었습니다. 이제 새로운 부서에서 적응했으니 다시 활동을 해보려고 합니다.

Microsoft TechEd 2010에서 몇 가지 의미 있는 발표가 있어서 적어봅니다.
1. SQL Azure 관련 내용
    - 하나의 데이터베이스 크기가 기존 1, 10G –> 50G로 확대
    - Data Sync 서비스가 Public Preview로 발표되었습니다. 물리적으로 분산된 데이터를 논리적으로 하나인 것처럼
      사용할 수 있습니다. 
    - SQL Azure를 위한 SQL Server Web Manager를 여름에 출시합니다. 
    - Spatial data를 저장하고 사용할 수 있게 됩니다.
      .   Spatial data는 위치 기반 정보 (위도, 경도)를 저장할 수 있는 데이터 타입입니다. 매핑, 각 지점간의 거리,
          특정 위치에 관련된 여러 가지 오퍼레이션을 다룰 수 있게 되는 거죠.
     - http://blogs.msdn.com/b/sqlazure/

2. Windows Server AppFabric
    - 정식 버전이 출시되었습니다. 
    - On-premise, Cloud간의 유기적인 연동을 위해서는 인증, Service Bus 등이 제공되어야 하는데 AppFabric이 바로
      그 역할을 제공하죠. Windows Server에 sub 기능으로 추가됩니다. 
      http://msdn.microsoft.com/appfabric
    - 웹, 조합, 엔터프라이즈 애플리케이션의 관리 및 성능 향상
    - 분산 캐싱 기능을 제공합니다.

Posted by 조이트리
아키텍트2009. 12. 7. 18:48

Windows Server AppFabric은 확장성, 가용성 및 고성능 애플리케이션을 개발하는데 필요한 분산 메모리 캐싱 플랫폼을 제공합니다. 오늘은 Velocity에 대해서 정리해보려고 합니다.

캐시를 통하면 애플리케이션이 불필요하게 데이터 소스 (Database 등)에 연결하여 데이터를 가져올 필요가 없기 때문에 급격하게 성능이 향상 됩니다. 분산 캐싱은 캐시 클러스터를 통해 수요가 증가하더라도 복잡한 로브밸런싱을 구성하지 않고도 안정적인 성능을 제공 받게 됩니다. 확장성은 서버를 추가하기만 하면 얻을 수 있게 되는 간단한 개념으로 바뀝니다. 고가용성은 해당 데이터를 Velocity가 복사할 수 있도록 설정하면, 해당 클러스터로 연결된 모든 서버간에 고가용성을 얻게 되는 거죠. Velocity는 원격 네트웍에 있는 서버 간에도 설정될 수 있습니다.

이전 글에서, 현재까지 구성되는 클라우드 컴퓨팅은 인프라 클라우드, 즉 서버 운영에 대한 부분에 집중되어 있다고 말씀 드렸습니다. 하지만, 애플리케이션에 대한 확장성, 분산 캐싱, Fail-over 등이 이루어져야 진정한 의미의 클라우드 컴퓨팅 플랫폼이라고 할 수 있습니다. 인프라 Fabric, 즉 인프라 클라우드는 마이크로소프트의 Dynamic Data Center toolkit으로 구성하고, 애플리케이션 Fabric은 Windows Server AppFabric으로 구성하면 진정한 의미의 분산 클라우드 운영체제를 구성할 수 있게 될 것 같습니다. 자, 그럼 AppFabric의 Velocity에 대해 좀 더 자세히 알아보도록 하겠습니다. Velocity는 현재는 CTP(Community Technology Preview) 버전이고, CTP4가 최신 입니다.

Velocity를 어떻게 활용할 것인지에 대한 일반적인 시나리오를 몇 개 설정해봤습니다.
(Grid Dynamics가 벤치마크를 실시했습니다.)

1. 블로그 엔진 애플리케이션, 분산 캐싱
2. 전자상거래 웹사이트, 세션 상태 제공자 (Session State Provider)

Velocity 시나리오 (1)

블로그 엔진은 데이터를 많이 사용하는 웹 애플리케이션의 좋은 예제라고 할 수 있습니다. 친구 리스트 및 feeds, 게시글에 대한 아이템을 가져오기 위해 복잡한 데이터베이스 쿼리를 사용하게 됩니다. 또한, 같은 정보가 사이트 내의 여러 페이지에 보여지는 경우가 많죠. 결국 같은 정보를 여러 번 반복해서 가져오게 되는 거죠. 분산 캐싱을 이용하면 성능 향상을 볼 수 있는 이유 입니다.

 
그림1. 블로그 엔진 애플리케이션 아키텍처

두 개의 버전으로 테스트가 이루어졌습니다. 첫 번째, 데이터베이스만 사용. 두 번째, 데이터베이스에서 조회된 내용을 캐시에 저장함.

1) Throughput


그림2. Throughtput (Without Velocity, With Velocity)

그림3. Latency (Without Velocity, With Velocity)

2) 확장성

그림4. Scalability (Without Velocity, With Velocity)

작은 데이터 셋 때 이 정도의 결과값이었고, 큰 데이터 셋을 대상으로 했을 때 더 좋은 결과가 나왔습니다.

3. 고가용성

그림5. HA(High Availability)를 켰을 때와 껐을 때의 결과 값

큰 차이가 나지 않는다. 다만, HA를 켜지 않은 상황에서 2배 정도의 메모리를 더 사용하는 것으로 나타남

4) Failover


 
 그림6. 애플리케이션의 throughput - Failover 테스트                   

At 05:00에 Node1 제거
At 10:00에 Node2 제거
At 20:00에 Node1 삽입
At 30:00에 Node2 삽입

오늘은 여기까지 정리하겠습니다. 내일은 2번째, Session State Provider에 대해 적어보겠습니다.

이 글은 Grid Network의 Velocity Benchmark White Paper를 기준으로 작성했습니다.

Posted by 조이트리