메인 컨텐츠로 가기

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

다가온 혁신: 탄력적인 소프트웨어로 한계 늘리기

Robert Wisniewski, 기술전도사, IBM
Robert Wisniewski는 성능 및 규모 가변성 분야의 전문가인 소프트웨어 엔지니어이다. 그는 이전에 EJB/JPA에서부터 자율 컴퓨팅 및 벤치마크 설계에 이르는 제품의 모든 영역에 집중하면서 7년 동안 WebSphere Applications Server 성능 관련 일을 해왔다. 기술적 전도사로서 현재 그의 직위는 고객 시나리오에서 이러한 경험과 실전에서 XTP 전략의 응용에 대해 다시 주목한다.

요약:  새로운 개념과 전략은 어휘의 변경이 필요합니다. 더 낮은 비용, 높은 유연성, 클라우드 친화적인 아키텍처로의 이동으로 인해 탄력성의 개념은 엔터프라이즈 IT 솔루션을 위해 수립되었습니다. 이 기사에서는 탄력적인 인메모리 데이터 그리드인 IBM® WebSphere® eXtreme Scale에 나타나는 예제를 설명하여 탄력성의 구체적인 정의를 탐색합니다. 이 연재 자세히 보기

기사 게재일:  2011 년 11 월 17 일
난이도: 중급 원문:  보기 PDF:  A4 and Letter (20KB | 6 pages)Get Adobe® Reader®
페이지뷰:  811 회
의견:  


다가오는 혁신의 각 회에서는 개발자와 실행자 둘 다의 관점에서 신흥 기술에 관련된 주제에 관한 새 정보와 토론 외에도 최첨단의 IBM® WebSphere® 제품의 이면에서 보기를 특징으로 한다.

소문의 배후에 실체 두기

엔터프라이즈 소프트웨어 업계에서 많은 것 중 하나가 전문 용어(buzzwords)이다. 때때로 압도적으로 전문 용어는 항상 진화하는 비즈니스 문제 세트를 해결하기 위해 사용 가능한 솔루션과 도구를 설명하는 데 사용하는 어휘를 확장하기 위해 필수적이다. 이러한 확장이 없다면 이 많은 개념들은 초기 상태로 남으려고 노력할 것이다. 매우 구체적인 의미를 옹호하기 위해 시도하고 있는 한 가지 개념은 엔터프라이즈 솔루션을 설명하기 위해 탄력적인이라는 용어를 사용한다는 것이다.

주어진 솔루션을 위한 설정 목표에 대해 주장하려고 탄력성의 개념을 사용하는 함정에 빠지기 쉽다. 가장 간단한 형태로 솔루션은 시스템을 오프라인으로 가져오지 않고 추가되거나 제거되는 자원을 더 많이 사용하기만 해도 탄력적이 될 수 있다. 더 높고 더 유용한 표준을 작성하기 위해 필자는 구체적인 정의의 더 야심찬 목표를 제안하려고 한다.

시스템 또는 시스템의 컴포넌트에서 탄력성(필자는 매일 IBM WebSphere eXtreme Scale로 작업하므로 예제로 소프트웨어를 사용할 것이다)은 다음과 같이 세 가지 구체적인 자유의 정도를 시사한다.

이제 독자가 이러한 내용을 전문 용어나 공허한 개념으로 분류하기 전에 필자는 이러한 생각의 배후에 일부 실체를 둘 수 있다.

합리적인 제한사항 없이 규모 조정하기

탄력적인 시스템이 이러한 운영 도중에 시스템의 가용성에 중대한 영향을 주지 않고 규모가 크고 적게 조정될 수 있다는 생각에 관해 많은 논란을 예상하지 말아야 한다. 하지만, 필자는 시스템 자체가 합리적인 규모 증대 시나리오에 어떠한 실제적인 제한도 두지 않아야 함을 예상해야 한다고 생각한다. 이를 통해 필자는 인프라 그 자체가 시스템의 지속적인 성장을 사용하고 새로운 자원을 오버헤드가 적거나 아예 없이 사용 가능하도록 아키텍트되어야 함을 의미한다. 이는 진정한 선형 규모 조정의 가능성을 시사한다.

우리는 제품의 모든 측면에서 대규모 그리드의 효과를 고려하여 WebSphere eXtreme Scale 내에서 탄력성의 개념을 처리했다. 다음 몇 가지 예제는 이를 훌륭하게 시연할 수 있다.

  • 첫 번째로, 그리드 멤버십 인프라의 아키텍처 자체는 규모의 더 작은 해결 가능하고 포함 가능한 문제로 컴포넌트화된다. 수 천 개의 서버를 하나의 핵심 그룹으로 설득하는 것이 아니라 카탈로그 서비스(그리드의 구조를 처리하는 관리 프로세스)는 멤버를 20개의 그룹으로 나눈다. 그러면 이러한 각 개별 그룹은 핵심을 수반하는 멤버십 보기 알고리즘을 실행하며, 이는 입증된 트랙 레코드를 가지고 IBM WebSphere Application Server와 기능을 공유한다. 이러한 상대적으로 작은 규모의 선출된 "리더"는 카탈로그 서비스를 그룹의 상태에서 최신 상태로 유지하며, 그러면 이는 그리드 전체 멤버의 20번째 중 1번과 연결하여 벗어나도록 해야만 한다.
  • 또 다른 예제는 그리드 자체와의 클라이언트 상호작용이다. 자주 제기되는 한 가지 질문은 카탈로그 서비스와 같은 단일 관리 프로세스가 제공하는 발생 가능한 병목현상이다. 카탈로그 서비스가 복제되고 클러스터되지만 이는 중복을 위한 것이다. 진실은 이러한 클라이언트가 그리드로 부트스트랩하기 위해 한 번만 카탈로그 서비스와 상호작용하기 때문에 단일 카탈로그 서비스가 거의 무제한적인 클라이언트 수의 필요를 실제로 처리할 수 있다는 점이다. 이러한 상호작용에서 카탈로그 서비스는 모든 그리드 파티션의 위치와 각각에 대해 연관된 핵심적인 공간을 정의하는 완성된 라우팅 맵을 비롯하여 그리드에 대한 정보를 리턴한다. 이후에 클라이언트는 파티션과 직접 상호작용하고 정상 트랜잭션 프로세스 도중에 서브채널 상호작용을 통해 이러한 라우팅 테이블을 최신 상태로 유지한다. 그러면 카탈로그 서비스는 자원이 추가되고 제거되면서 그리드의 밸런스와 멤버십을 관리하는 것에 자유롭게 주목한다.

이와 같은 접근방식을 통해 필자는 그리드를 마음대로 대규모로 효율적으로 규모 조정할 수 있었다. 랩에서 필자는 인식된 성능 면에서 실제 차이 없이 1,500개의 컨테이너 그리드를 달성했다. 그 이후에 더 진행할 시간이 부족했지만 이러한 규모 조정에 구체적이거나 합리적인 제한사항은 없다. 이는 솔루션을 진정 탄력적으로 간주하는 중요한 요인이다.

이는 탄력적 인프라의 모든 배치가 자원이 추가되는 대로 선형 규모 조정에 전체적인 애플리케이션을 제공할 것임을 의미하지 않는다는 것을 인식하는 것은 중요하다. 여전히 해당 인프라 내에서 수행되는 논리와 비즈니스에 관한 고려사항 및 이들이 규모 가변적인 극단적인 트랜잭션 처리 기초를 활용하는지 아닌지 여부에 관한 고려사항이 있다. 이러한 관점에서 엔터프라이즈 애플리케이션 자체도 탄력적인 특성을 가져야 한다. 하지만, 탄력적인 인프라는 이러한 목표를 효율적으로 달성하기 위한 배관을 제공해야 한다.

결함 허용 및 자가 치유

배치자가 무한으로 규모 조정하는 솔루션을 신뢰한다고 예상할 경우 유지보수 또는 결함으로 인한 노드의 추가 또는 손실, 네트워크 결함 및 변경 기타 등등과 같은 시스템이 성장하면서 확률과 빈도가 더 높게 발생하는 이벤트도 허용해야 한다. 더 많은 자원이 실패할 가능성이 높아지고 탄력적인 시스템은 예측 가능하고 효율적인 방식으로 이러한 실패를 극복해야 할 수 있는 동안, 가능하다면 결함 허용의 상태로 다시 돌아가야 한다.

수많은 컨테이너 프로세스의 그리드로 성장하면서 WebSphere eXtreme Scale 데이터 그리드 예제로 계속하면 이러한 프로세스 중 하나의 손실 또는 유지보수의 가능성은 점점 더 높아진다. 복제를 통해 -- 이는 WebSphere eXtreme Scale 및 유사한 인메모리 데이터 그리드 오퍼링의 핵심적인 수행 능력임 -- 이러한 이벤트가 허용될 수 있다. 이 뿐만 아니라 데이터의 배치 및 마이그레이션이 WebSphere eXtreme Scale 클라이언트 API의 "블랙박스" 배후에서 완전히 투명하기 때문에, 새로운 복제품이 자동으로 작성되고 결함 허용이 다시 달성된다.

탄력성은 배치가 성장하고 더 복잡해지면서 진정으로 유용해지기 위해 이러한 개념적인 추가사항을 보유해야 한다.

관리 단순성

시스템의 관리 및 유지보수에 관한 전문화된 필요는 탄력적인 인프라의 의미를 고려할 때 미세할 수 있다. 하지만, 시스템이 성장하고 더 복잡해지면서 결함 허용의 요구사항과 마찬가지로 일반 관리 태스크를 수행하기 위해 배치자의 능력도 고려해야 한다.

여기에서 핵심적인 개념은 각 노드의 구성 및 유지보수가 동일하거나 매우 극미하게 달라야 한다는 것이다. 배치자가 시스템을 운영하기 위해 모든 멤버 머신 또는 프로세스 목록을 제공할 것을 예상해서는 안 된다. 구성 아티팩트의 일반적인 세트에 따라 자율 복구 및 관리의 어느 정도 레벨이 있어야 한다.

WebSphere eXtreme Scale의 경우에 접근방식은 매우 간단하다. 구성 정보는 구체적인 멤버 프로세스의 세부사항이 아니라 그리드 자체의 구조 및 특성에 주목한다. 예를 들어, 얼마나 많은 파티션으로 데이터를 나누는지 그리고 이러한 파티션이 어떻게 복제되어야 하는지를 구성한다. 이러한 정보가 주어지면 WebSphere eXtreme Scale은 이를 사용 가능한 그리드 멤버로 맵핑하고 구성에서 제시한 정책을 강제한다. 구성 아티팩트의 완전히 동일한 세트는 시작될 때 각 그리드 멤버로 제공되며, 그리드 영역에서 해당 멤버 위치의 세부사항은 자동으로 관리되고 판별된다.

이러한 철학은 실제 그리드의 세부사항을 그리드 구성의 논리적 구조와 구별하도록 설계된 각 상호작용을 통해 관리 및 유지보수 스펙트럼 전반에 걸쳐서 이월된다.

영역 추상의 사용을 통해 복제 배치의 분리 또는 그리드 자체를 오프라인으로 가져오지 않고 실제 그리드 코드 레벨을 업그레이드하는 기능과 같이 이러한 예제를 더 많이 찾을 수 있다. 핵심적인 개념은 시스템의 규모가 표면적으로 조정하거나 최소한 가능한 상수에 가깝게 규모 조정하면서 관리 태스크가 상수 복잡도를 가져야 한다는 점이다. 이로부터 탄력적인 소프트웨어 및 탄력적인 하드웨어(다시 말해서, 가상화 및 클라우드 배치)가 엔터프라이즈 솔루션으로 새로운 자유의 레벨을 제공하기 위해 얼마나 훌륭하게 들어맞을 수 있는지 확인할 수 있다.


전문 용어를 칭찬하며

컴퓨팅 내에서 가장 만연한 기초적인 기술조차도 이러한 전문 용어의 종류로 시작한다고 말하는 것이 아마 맞을 것이다. 우리는 새 개념 또는 목표 설정을 어휘에 추가할 때 의미와 유용한 용도를 정의하려고 노력해야 한다. 이러한 방식으로 필자가 생각하기에는 엔터프라이즈 솔루션에서 탄력성이 명확하게 정의되고 논리적 결론으로 고려될 때 가치 있는 개념이 될 수 있다는 점은 분명하다. 우리는 탄력적인 데이터 그리드로서 WebSphere eXtreme Scale에 대해 논의할 때 구체적이고 유용한 의미와 관련시키기 위해 일관적으로 노력했으며, 진정으로 유연한 인프라를 제작하기 위해 설계된 다른 솔루션에 이러한 개념을 적용하면서 이를 계속 수행하기 위해 노력을 기울일 것이다.


참고자료

교육

제품 및 기술

토론

필자소개

Robert Wisniewski는 성능 및 규모 가변성 분야의 전문가인 소프트웨어 엔지니어이다. 그는 이전에 EJB/JPA에서부터 자율 컴퓨팅 및 벤치마크 설계에 이르는 제품의 모든 영역에 집중하면서 7년 동안 WebSphere Applications Server 성능 관련 일을 해왔다. 기술적 전도사로서 현재 그의 직위는 고객 시나리오에서 이러한 경험과 실전에서 XTP 전략의 응용에 대해 다시 주목한다.

잘못된 도움말 신고

부정사용 신고

감사합니다. 이 항목은 운영자가 관심을 표시했습니다.


잘못된 도움말 신고

부정사용 신고

제출실패 신고. 나중에 다시 실행해주세요.


디벨로퍼웍스 로그인


IBM ID가 필요하세요?
IBM ID를 잊으셨습니까?


비밀번호를 잊으셨습니까?
비밀번호 변경

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관.

 


developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

화면상에 보여지는 닉네임을 정하세요.

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

3개의 &이나 대쉬를 포함해주시고 31글자내로 제한해주세요.


developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관.

 


아티클 순위

의견

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=20
Zone=WebSphere, 웹 개발
ArticleID=775480
ArticleTitle=다가온 혁신: 탄력적인 소프트웨어로 한계 늘리기
publish-date=11172011

태그

Help
검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오.

태그를 더 많이 보거나 적게 보기 위해 슬라이더 막대를 사용하십시오.

인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다.

내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.

검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오. 인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다. 내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.