최적화를 통해 효율성 향상

완료됨
정의된 성능 목표 내에서 시스템 효율성을 개선하여 워크로드 가치를 높입니다.

초기 단계에서 설정된 대상은 다양한 제약 조건을 고려하여 적절한 수준의 사용자 환경을 기반으로 합니다. 환경을 더욱 향상시키기 위해 대상을 재평가하고 조정해야 합니다. 환경을 더욱 향상시키기 위해서는 시스템이 사용되는 방법, 시스템이 어떻게 발전했는지, 그리고 시간이 지남에 따라 플랫폼 또는 기술이 어떻게 변했는지에 대한 명확한 이해가 필요합니다. 모니터링, 최적화, 테스트 및 배포 주기는 연속 프로세스입니다.

효율성 최적화 노력을 통해 워크로드는 더 낮은 리소스 사용량으로 작업할 수 있습니다. 그러면 워크로드가 여분의 용량으로 과도하게 프로비전된 상태가 될 수 있습니다. 이 용량을 사용하여 시스템의 안정성을 향상시킵니다. 시스템 비용을 개선하기 위한 용량을 제거합니다. 또는 기존 리소스에서 새 제품 기능을 지원하기 위한 용량을 용도 변경합니다.

시스템의 효율성이 향상되면 새로운 성능 목표를 설정하고 기본 수 있습니다.

예제 시나리오

Contoso의 HR 엔지니어링 팀은 조직의 HRIS(인사 정보 시스템)에 대한 사용자 지정 통합을 지원합니다. 이러한 통합에는 급여에 대한 재무 통합, 정부 노동법 보고에 대한 고용 통계 등이 포함됩니다. 대부분의 통합은 C#으로 작성된 Azure Functions로, 조직의 데이터 센터에서 Azure Arc 지원 Kubernetes 클러스터에 호스트됩니다. 대부분의 작업은 잘 실행되었지만 처리 지연으로 인해 HR 디렉터가 필요할 때 중요한 데이터를 사용할 수 없기 때문에 팀이 불안해하는 경우가 있습니다.

성능 최적화 우선 순위 지정

기능 영역에서 비기능적 요구 사항 및 최적화를 해결하기 위해 성능 최적화를 위한 전용 주기를 할당합니다. 이 최적화의 대상은 리소스, 코드, 데이터 보존, 데이터베이스 쿼리 등입니다.

이 접근 방식을 채택하면 성능 기반 최적화의 문화권을 구축할 수 있습니다. 팀에서 성능 패턴을 사전에 모니터링하고 애플리케이션을 미세 조정해야 합니다.

Contoso의 과제

  • 팀은 다소 폐기되고 백로그는 길다. 대부분의 경우 통합을 작성하고 배포할 때 "화재 및 잊어버리기" 사고방식으로 작업합니다. 통합이 작성되고 배포된 다음 팀은 다음 작업으로 이동합니다.
  • 이 팀은 고위 경영진이 적시에 데이터에 액세스할 수 없기 때문에 중요한 인시던트 지원 문제를 자주 요청했습니다.
  • 팀은 개선이 필요하다는 것을 잘 알고 있지만 필요한 변경을 우선시하지는 않았습니다.

접근 방식 및 결과 적용

  • 이제 팀은 기술 부채 및 기타 최적화 활동을 위해 모든 스프린트의 20%를 할당합니다. 이것은 중요한 영역과 영향이 가장 의미있을 수있는 다른 영역의 우선 순위를 지정하고 해결하기 위해 엔지니어링 팀 시간을 구입하는 것입니다.
  • 이 방법을 사용하면 팀은 데이터 처리가 지연되는 성능 문제를 해결하는 데 필요한 시간을 할애할 수 있습니다.

디자인 개선 사항 찾기

제한된 시간 또는 예산으로 인해 이전에 고려하지 않았던 방식으로 성능을 향상시킬 수 있는 새로운 디자인 패턴 및 구성 요소로 아키텍처를 개선합니다.

새로운 디자인 및 구성 요소는 시스템을 최적화하여 사용자 환경과 장기적인 비용 효율성을 높일 수 있습니다. 예를 들어 캐싱을 사용하거나 콘텐츠 배달 네트워크 구성 요소를 추가할 수 있습니다.

Contoso의 과제

  • 팀은 몇 년 동안 Azure Functions 및 트리거 기반 흐름을 사용했으며 이 접근 방식에 대한 대안을 평가하는 데 시간을 할애하지 않았습니다.

접근 방식 및 결과 적용

  • 팀은 Azure Functions를 사용하는 다른 방법을 살펴보고, 지속성 함수가 특정 급여 작업을 병렬화하는 데 도움이 되는 팬아웃 모델을 지원한다는 것을 알게 됩니다.
  • 팀은 향후 디자인을 위해 이 패턴을 디자인 카탈로그에 통합합니다. 또한 코드 최적화 및 데이터 클린 이상 성능 비효율성을 해결하는 다른 방법을 살펴보는 것도 좋습니다.

모니터링 도구를 사용하여 기록 추세를 분석하고 성능 최적화 노력에서 가장 도움이 되는 흐름 및 코드 구현 경로를 식별합니다. 이 목적을 위해 APM(애플리케이션 성능 모니터링) 도구 및 프로파일러를 사용하는 것이 좋습니다. 또한 시스템의 작업 핫 경로 및 기타 잠재적인 병목 상태를 식별합니다.

반복되는 문제가 있는 영역을 식별하면 팀은 이득이 가장 높은 위치에 집중할 수 있습니다.

Contoso의 과제

  • 팀은 Azure 애플리케이션 Insights를 사용하여 모든 기능을 계측했습니다.
  • 주로 중단 수정 문제 및 로깅 싱크에 Application Insights를 사용합니다.
  • 지금까지 개선 영역을 대상으로 하는 그들의 접근 방식은 고위 경영진 팀의 피드백을 기반으로 했습니다.

접근 방식 및 결과 적용

  • 피드백은 중요하지만, 팀은 Application Insights가 모니터링하는 애플리케이션에서 핫스팟을 검색하는 매우 좋은 작업을 수행한다는 것을 알고 있습니다.
  • 팀은 이 기능을 활용하기 시작하고 중요한 흐름을 파악하는 데 결합하여 기술 향상 및 효율성에 대한 팀의 20% 노력을 위한 귀중한 도구로 전환하고 있습니다.
  • Application Insights를 사용하여 팀은 리더십 팀 구성원이 문제를 경험하기 전에 위험한 통합을 사전에 식별하고 처리할 수 있습니다.

지식 점검

1.

Contoso 팀은 지속적인 성능 문제를 해결하기 위해 개발 프로세스를 어떻게 변경했나요?

2.

다음 중 워크로드의 효율성을 개선하기 위한 좋은 전략은 무엇인가요?

3.

성능 추세를 분석하고 실행 병목 상태를 식별하는 데 도움이 되는 도구 유형은 무엇인가요?