Performance CoE 개요

Updated:

지난번 글에서 잠시 언급드린 바 있는 ‘Performance CoE’(or Performance Testing CoE)의 개념과 관련하여, HP에서 2014년에 발간한 “HP Performance Engineering Best Practices Series For Performance Engineers and Managers”라는 자료가 기본적인 이해에 도움을 드릴 수 있을 것 같아, 이번 글에서 잠깐 소개하고 넘어 가고자 합니다.

hp

Source: Micro Focus

이 가이드북은 전체적으로 아래 내용들에 대해 다루고 있습니다.

  • Introduction to Performance CoE
  • Build Successful CoE
  • Operate CoE Successfully
  • Get People for CoE Success
  • Conclusion

전체 분량이 62Pgae에 달하기 때문에, 관심을 가지면 좋을만한 기본적인 개념을 다루고 있는 1장의 주요 내용 위주로 정리해 보도록 하겠습니다.


1. Peformance CoE에 대한 소개

Performance Center of Excellence는 숙련된 IT 조직이 추구하는 접근방식이자 그 결과물이기도 합니다. 성능 테스트 체계를 운영하는 방법에는 여러가지가 있지만, 중앙 집중화된 형태로 절차에 기반하여 운영하는 방식이, 적은 시간의 투자로도 비즈니스의 성과를 크게 개선시키고 있다는 사실은, 그동안의 고객 경험을 통해 계속 증명되어 온 바 있습니다.

1) Peformance Engineering의 중요성

소프트웨어 공학은 S/W개발 프로세스를 통제하는 절차, 기법 그리고 자동화도구로 정의될 수 있으며, 생산성의 관점에서 고품질 S/W를 구현하는 기반을 제공합니다.

대부분의 소프트웨어 공학 방법론들은 개발일정 및 예산이 엄격하게 준수되는 상황 하에서, S/W가 ‘기능 요구사항’을 만족시키는 것을 보증하는데 초점을 맞추고 있습니다.

한편, ‘성능 요구사항’의 경우에는, 그 필요성이 점차 증가하고 있으면서도, 관리하기는 점점 더 어려워지는 현실에 처해 있습니다. 많은 경우에, 시스템의 성능이 개발주기에서 너무 늦은 시기에 평가되고 있습니다.

고품질 애플리케이션 제공에 대한 요구는 날이갈수록 높아지고 있지만, 개발일정은 빠듯하고, 조직들은 다양한 지역에 분산되어 있으며, 숙련된 직원들은 빈번히 이직하고 있는 현실의 상황에서, 애플리케이션 테스트는 더욱 쉽지 않은 상황이 되어가고 있습니다.

한 단위조직에서 적절한 기술을 확보하고 있다고 해도, 이러한 전문성이 전체의 조직까지 전파되기는 쉽지 않습니다. 여전히 많은 회사의 IT부서들에서 정보가 공유되지 않고 있으며, 공통의 프로세스가 없는 채로 일하고 있고, 성능에 대한 인식 또한 부족한 현실에 직면해 있습니다.

더 적은 자원으로 더 많은 일을 해야만 하는 현실에 직면해 있는 많은 조직들은, 테스트 관리방법론만 적용해오던 기존의 방식에서, 테스트 자원의 효과적인 관리를 지원하는 자동화 기반 테스트 관리 도구 환경으로 전환함으로써, 지역별로 분산되어 있는 다양한 프로젝트팀들을 효과적으로 지원하고 있습니다.

이러한 접근법의 하나로서 Performance CoE모델은, 전사조직을 아우르는 프로세스의 표준화, 품질, 일관성, 효과 및 효율성의 향상을 이끌어내고 있습니다.

hp

Performance CoE는 일관성이 없는 자동화 도구들의 사용이나, 비효율적인 성능테스트 그리고 부정확한 분석 요소들을 제거하는 역할을 수행합니다. 또한, 애플리케이션 핵심 성능지표의 가시성을 제공하고, 모든 구성원들에게 정보를 공유함으로써 비즈니스 목표와 일치시키는 작업이 가능하도록 하는 중앙 플랫폼을 제공합니다.

2) 성능테스트가 아직 충분하지 않은 이유

만약 성능 테스트 전문가가 개별 프로젝트의 테스트 그룹에만 소속되어 있다면, 전사에서 개발되는 모든 애플리케이션들이 동일한 표준에 따라 적절하게 테스트 되고 있다는 것을 보증하기는 어렵습니다. 또한, 새로운 기술들이 출현하였을 때, 서로다른 조직에 속한 구성원들이 신기술을 지원하기 위해 요구되는 전문성을 모두 갖추기도 쉽지 않습니다.

많은 경우에, 각각의 PJT팀들은 개별팀원들이 선호하는 각자의 도구들을 사용하여 자체적인 성능 최적화 프로세스를 만들어냅니다. 그 결과, 관리되지 않는 워크플로우, 적용사례, 도구 및 기법들의 혼재하는 현상이 발생하게 됩니다. 결국, 문서화되기도 어렵고, 서로간에 통합되지도 않으며, 다른 PJT그룹으로 전파하기도 힘든 상황이 됩니다. 이러한 상황은 비효율적인 것 이상의 문제들을 불러오게 됩니다. 수행에 따른 복잡성 및 비용을 증가시키며, 구성원들이 Skill을 개발할 의욕마저 저하시킬 가능성이 있습니다.

상용환경 배포 계획을 세울 때, 많은 회사들이 개발 프로세스 후반에 대상 시스템의 성능 테스트를 수행하고 있습니다. 그 결과, 성능이슈들의 발견 및 해결이 충분히 되지 않은 채, 시스템의 환경설정 최적화가 미흡한 상태에서 상용배포가 이루어지는 경우가 많으며, 이때 성능개선에 사용되는 자동화 도구들 또한 서로 이질적이어서 협업을 이뤄내기도 쉽지 않습니다.

3) CoE의 정의

Center of Excellence라는 용어가 어느 회사에서나 널리 사용되는 조직명칭은 아닙니다. 어떤 곳에서는 역량센터(Competency Center), 테스트센터(Central Testing), 애플리케이션 테스트 센터(Application Testing Center), 또는 단순히 테스트그룹(Testing Group)으로 부르기도 합니다.

하지만, Center of Exellence라는 용어 자체는 성능테스트 분야 뿐만 아니라, 관련 서적에서도 사용하고 있는, 비즈니스 환경에서 가장 인기있는 용어이기도 합니다.

Industry Analyst Firm에서 근무하는 Voke의 연구에서는, PCoE에 대한 정의를 다음과 같이 인용하고 있습니다.

Performance CoE는 비즈니스 요구사항을 만족시키기 위해, 애플리케이션의 성능을 검증하고 향상시키는데 초점을 맞춘 내부역량센터(Internal Competency Center)입니다.

이 조직은 성능 최적화 프로세스를 지원하기 위한 관리 및 자동화 플랫폼을 제공할 뿐만 아니라, 조직이 CoE모델에서의 성능 검증 및 최적화의 중요성을 이해할 수 있도록 하기 위한 컨설팅 및 지원 서비스를 제공합니다.

Performance CoE를 통해, PJT팀들은 전문성, 자동화도구 및 CoE가 구축해 놓은 Best Practice 등 모든 것을 활용할 수 있습니다.

이 모델이 가지는 장점은 다음과 같습니다.

  • 중앙 집중화 기반 인프라 및 전문지식

    Test Lab, 자동화 도구, 성능전문가 및 Best Practice가 통합되어 있어, 모든 PJT팀들이 단일 접점을 통해 편리하게 이용할 수 있으며, 고가의 License자원을 중복적으로 확보할 필요가 없습니다.

    전사 테스트 조직이 점차 많은 지식을 쌓아감에 따라, 조직 전반적으로도 이득을 얻게 됩니다. 전사 테스트 조직이 테스트 수행 및 분석의 효율성을 지속적으로 개선함으로써, 보다 높은 수준의 테스트 수행 및 품질향상이 활발히 일어날 수 있게 됩니다.

  • 보다 빠르고 더나은 프로세스

    표준화된 자동화도구 및 프로세스는 일관성, 비용절감, 강화된 프로세스의 빠른 구현을 가능하게 합니다. 개별 테스트 그룹이나 테스트 장비별로 각각 시나리오와 스크립트를 유지보수하는 대신, 공유하고 재사용하기 쉽도록 자료를 중앙화할 수 있습니다. 이를 통해, 테스트를 생성하는 시간을 줄일 수 있게 되어, 보다 효율적인 테스트를 할 수 있도록 지원합니다.

  • 비즈니스 관점

    Performance CoE모델은 성능을 시스템이나 컴포넌트 관점이 아닌, 비즈니스 및 최종사용자 관점에서 측정합니다.

    시스템을 테스트하는 활동이 집중화되어 있을 때, 보다 테스트 장비를 사용하기 쉬워지며, 24X7 Testing이 가능하게 되어 효율적으로 사용할 수 있습니다.

  • 실용적이고 달성 가능한 목표

    Performance CoE를 구축하는 것은 달성 가능한 목표입니다. 작게 시작할 수 있으며, 기존 리소스를 활용하면서, 가치가 인정될 때 확장하면 됩니다. 시간이 지남에 따라 경영진이 가치를 인식하게 되면서, 인적자원, 서비스, 그리고 역량을 반복적으로 확장할 수 있습니다. CoE가 정확하게 구현되었다면, 그 가치는 증명될 것입니다.

hp

일반적으로, Performance CoE는 TCO(Total Cost of Ownership)를 줄이면서 성능과 가용성을 개선할 수 있으며, 조직에 기여하는 최고의 구성원들을 확보할 수 있습니다.

CoE를 구성하는 요소들이나 테스트 그룹의 중앙집중화가 효율성 개선에 기여한다는 것에 반론의 여지는 없습니다. 그러나, 대부분의 개선이 ‘조직구조의 변화’에 의해서만 발생하고 있는 것은 아니며, ‘Best Practice의 축적’과 ‘조직차원의 행동변화’에 따른 영향도 큰 것이 사실입니다.

4) CoE Phases

PCoE를 발전시키는 것은 지속적인 프로세스의 과정이므로, 회사의 현재 성숙 수준(Maturity Level)을 이해하고, 테스트 그룹의 위치를 평가하는 것이 중요합니다. 조직이 ‘생산성의 극대화’를 달성하기위한 여정을 이제 막 시작한 상태라 하더라도, 프로세스를 전체적으로 조망하면서 다음 단계로의 계획을 수립하는데 도움을 얻을 수 있습니다.

hp

Manual Testing

이 단계는 가장 기본적인 테스트의 유형입니다. 자동화 도구를 사용하지 않고 있습니다. 애플리케이션의 성능을 검증하기 위한 활동이 가끔씩 이루어지기 때문에, 상용환경에는 시스템 차원의 성능이슈들이 항상 존재하고 있습니다.

Project Testing

이 단계는 실제 자동화기반 테스트 환경으로 가는 첫단계로 설명될 수 있습니다. 각 부서별로 수행되며, 해당 부서가 사용하는 애플리케이션에 한정됩니다. 각 부서는 각자의 성능테스트 도구와 라이선스를 개별 구매하고, 자체적인 수행절차와 인프라를 이용해 성능테스트를 수행합니다. 각 그룹간에 지식은 공유되지 않으며, 비즈니스 고객과 직접적인 접점이 없는 개발자에 의해 성능테스트가 수행되기 때문에, 애플리케이션의 목표와 중요성에 대한 시각은 가지지 않은 채로 성능테스트가 진행됩니다.

성능 테스트는 다음과 같은 사유로 인해 그 성과가 제한됩니다:

  • 테스트 인프라 및 라이선스의 재사용 불가
  • 성능 전문가 및 기술에 대한 재사용 불가
  • 비즈니스 목표에 맞게 수행을 조정하는 방안 부재

Standardization

이 단계는 진정한 Performance CoE로 가는 첫 단계입니다. 어떤 조직이 H/W자산과 S/W라이선스가 결합된 상태로 전환을 추진하고자 한다면, 그 이유는 성능테스트를 위한 실환경 수준의 인프라를 구축하고 관리하는데 엄청난 비용이 든다는 것을 잘 이해하고 있기 때문입니다.

만약 비즈니스 라인별로 Test Lab이 존재한다면, 이 비용은 중복적으로 발생하게 됩니다. 반면, 정확한 성능테스트 환경을 구축하는데 실패하게 되면, 그 결과는 상당히 치명적일 수 있습니다.

Performance CoE는 성능테스트 수행에 사용되는 S/W와 H/W를 통합하기 위한 촉매제 역할을 수행할 수 있으며, 자산의 효율적 사용과 운영/유지보수 비용 절감을 통해, 전체적인 비용 절감 효과를 가져올 수 있습니다. 여기서 CoE는 조직의 전체 비즈니스를 대상으로 인프라를 제공하고, 사용자를 지원하는 역할에 초점을 맞춘 부서의 역할을 제공합니다.

하지만, 이 시점에서도 조직은 성능 테스트 엔지니어의 Skill Sets를 개발하고, 지식을 공유하는 것에 대한 중요성을 여전히 인식하지 못하고 있습니다. PJT팀과 경영층은 Performance CoE의 장점을 이제 인지하기 시작하고 있으며, CoE는 보다 광범위한 성능 이슈들을 다룰 수 있도록 확장되어 가게 됩니다.

Centralization

이 단계는, 다양한 S/W개발 및 배포주기별로 성능 테스트 팀이 보다 깊게 참여하는 단계입니다.

여기서 Performance CoE팀은 테스트 계획, 스크립트 작업, 수행 등을 포함하는 실제적인 성능 테스트 서비스를 제공합니다.

일반적으로, 대부분의 비즈니스 조직들은 자체적으로 성능테스트 관련 지식, Best Practice 및 프로세스를 사용하는데 한계를 가지고 있지만, CoE모델은 성능 테스트 전문가의 경험과 조언에 대해 쉽게 접근하여 활용할 수 있도록 지원합니다.

CoE는 전문영역이면서 희소성을 가지는 Performance Engineering의 지식에 대해 육성할 수 있는 기회를 제공합니다. 구성원들이 다양한 비즈니스 및 IT 환경에서 문제들을 해결함으로써, 각각의 Architecture가 작동하는 방식에 대한 이해 수준을 높일 수 있게 됩니다.

이러한 모든 것들은 재능있는 구성원들을 확보하고, 계속 유지하는데 추가적인 요소로 작용합니다.

Performance Authority

CoE가 최고수준의 단계로 올라가게 되면, ‘Performance Authority’가 되어 애플리케이션 개발, 배포, 운영의 일상적인 부분에 모두 포함되어, 성능 및 비용효율성에 초점을 맞춘 조직 문화에 기여하는 형태로 변화하게 됩니다.

‘Performance Authority’모델 하에서는, 전반적인 성능 향상에 초점을 맞춘 일관된 프로세스를 거치지 않고 상용환경으로 바로 넘어가는 애플리케이션이란 더이상 존재하지 않게 됩니다.

Performance Authority에서는 아래의 기본원칙에 대해 지원하고 있습니다:

  • Support

    Performance CoE는 비즈니스 조직들을 대상으로 성능 서비스 또는 성능 전문가를 지원합니다.

  • Guidance

    표준, 방법론, Best Practice, 자동화 도구 및 지식공유 사이트 등을 통한 가이드를 제공합니다.

  • Shared Learning

    공유기반 학습을 장려하기 위해, 교육훈련 및 인증, 역량 평가, 팀 구축 및 공식적인 역할 부여등을 제공합니다.

  • Measurements

    CoE는 결과에 대한 측정지표의 사용을 통해, 조직의 가치를 입증하고 산출물을 정당화해야 합니다. 측정은 CIO 및 비즈니스 가시성에 있어 기초가 됩니다.

  • Governance

    자원(비용, 인력 등)을 효율적으로 활용하고, 모든 잠재력을 현실화시키는 것은 CoE의 중요한 기능 중 하나입니다. 이를 통해, 조직은 가장 가치있는 PJT에 투자할 수 있게 되고, 서비스 제공 규모에 맞게 규모의 경제를 달성하게 됩니다.

이러한 원칙들이 올바르게 구현될 때, 보다 효과적인 CoE가 구축될 수 있으며, 전체적인 고객만족에도 기여할 수 있게 됨으로, 조직차원의 SLA(Service Level Agreements)를 초과 달성할 수 있게 됩니다.


이상으로 PCoE에 대한 소개 글인 “HP Performance Engineering Best Practices Series For Performance Engineers and Managers” 내용 중 1장에 대한 요약 정리를 마치도록 하겠습니다. 추가적으로 더 궁금하신 사항이 있는 경우, 위에 안내해드린 출처 링크를 통해 해당 자료의 전문을 참조하시기 바랍니다.

감사합니다.

[끝]