다음을 통해 공유


Azure에서 지속 가능한 워크로드의 애플리케이션 디자인

새 애플리케이션을 빌드하거나 기존 애플리케이션을 업데이트할 때 솔루션이 기후에 미치는 영향과 개선 및 최적화 방법이 있는지를 고려하는 것이 중요합니다. 보다 지속 가능한 애플리케이션 디자인을 위해 코드 및 애플리케이션을 최적화하기 위한 고려 사항 및 권장 사항에 대해 알아봅니다.

중요

이 문서는 Azure Well-Architected 지속 가능한 워크로드 시리즈의 일부입니다. 이 시리즈에 익숙하지 않은 경우 지속 가능한 워크로드란?으로 시작하는 것이 좋습니다.

코드 효율성

애플리케이션에 대한 수요는 다양할 수 있으며, 불필요한 에너지 유출로 이어질 수 있는 자원의 과잉 또는 활용을 방지하기 위해 사용률을 안정화하는 방법을 고려하는 것이 중요합니다.

마이크로 서비스 아키텍처로 모놀리식 이동 평가

모놀리식 애플리케이션은 일반적으로 하나의 단위로 크기가 조정되므로 필요할 수 있는 개별 구성 요소만 확장할 수 있는 공간이 거의 없습니다.

Green Software Foundation 맞춤: 에너지 효율성, 하드웨어 효율성

권장 사항:

  • 마이크로 서비스 아키텍처 지침을 평가합니다.
  • 마이크로 서비스 아키텍처를 사용하면 최대 부하 동안 필요한 구성 요소만 스케일링할 수 있습니다. 유휴 구성 요소가 축소 또는 축소되도록 합니다. 또한 모놀리식 애플리케이션을 배포하는 데 필요한 오버헤드 및 리소스를 줄일 수 있습니다.
  • 이 절충을 고려합니다. 필요한 컴퓨팅 리소스를 줄이면 네트워크의 트래픽 양이 증가할 수 있으며 애플리케이션의 복잡성이 크게 증가할 수 있습니다.
  • 이 다른 장단점을 고려합니다. 마이크로 서비스로 이동하면 배포 파이프라인에서 여러 유사점이 있는 추가 배포 오버헤드가 발생할 수 있습니다. 모놀리식 및 마이크로 서비스 아키텍처에 필요한 배포 리소스를 신중하게 고려합니다.
  • 또한 모놀리식 애플리케이션 컨테이너화에 대해 알아봅니다.

API 효율성 향상

많은 최신 클라우드 애플리케이션은 서비스와 구성 요소 간에 많은 메시지를 비동기적으로 거래하도록 설계되었습니다. 페이로드 데이터를 인코딩하는 데 사용되는 형식을 고려합니다. 애플리케이션에서 통신해야 하는 정보의 양과 수다를 줄일 수 있는 여지가 있나요?

Green Software Foundation 맞춤: 에너지 효율성

권장 사항:

이전 버전 소프트웨어 호환성을 보장하여 레거시 하드웨어에서 작동하는지 확인합니다.

애플리케이션이 정보를 렌더링하는 방법을 고려합니다. 애플리케이션이 최고 품질의 모든 것을 중요하게 처리하여 더 높은 대역폭 및 처리를 수행해야 합니까? 지속 가능성 목표를 더 잘 제공하기 위해 UI의 구성 요소 품질을 줄일 여지가 있나요?

Green Software Foundation 맞춤: 하드웨어 효율성

권장 사항:

  • 이전 브라우저 및 운영 체제와 같은 더 많은 최종 사용자 소비자 디바이스를 지원합니다. 이 이전 버전과의 호환성은 솔루션이 작동하기 위해 하드웨어 업그레이드를 요구하는 대신 기존 하드웨어를 다시 사용하여 하드웨어 효율성을 향상시킵니다.
  • 이 절충안 고려: 최신 소프트웨어 업데이트의 성능이 크게 향상되면 이전 소프트웨어 버전을 사용하는 것이 더 효율적이지 않을 수 있습니다.

클라우드 네이티브 디자인 패턴 활용

클라우드 네이티브 디자인 패턴에 대해 알아보는 것은 애플리케이션이 Azure에서 호스트되거나 다른 곳에서 실행되는지 여부에 관계없이 애플리케이션을 빌드하는 데 유용합니다. 클라우드 애플리케이션의 성능과 비용을 최적화하면 리소스 사용률도 감소하므로 탄소 배출량도 줄어듭니다.

Green Software Foundation 맞춤: 에너지 효율성, 하드웨어 효율성

권장 사항:

회로 차단기 패턴 사용 고려

애플리케이션이 실패할 가능성이 있는 작업을 수행하지 못하도록 평가하고 방지하는 것이 좋습니다. 반복되는 오류로 인해 적절한 디자인 패턴으로 방지할 수 있는 오버헤드 및 불필요한 처리가 발생할 수 있습니다.

Green Software Foundation 맞춤: 에너지 효율성

권장 사항:

  • 회로 차단기는 실패할 수 있는 작업에 대한 프록시 역할을 할 수 있으며 발생한 최근 오류 수를 모니터링하고 해당 정보를 사용하여 진행할지 여부를 결정해야 합니다.
  • 회로 차단기 패턴을 연구한 다음, 애플리케이션에 회로 차단기 패턴을 구현하는 방법을 고려합니다.
  • Azure Monitor를 사용하여 오류를 모니터링하고 경고를 설정하는 것이 좋습니다.

효율적인 리소스 사용을 위한 코드 최적화

비효율적인 코드를 사용하여 배포된 애플리케이션은 지속 가능성에 내재된 영향을 미칠 수 있습니다.

Green Software Foundation 맞춤: 에너지 효율성, 하드웨어 효율성

권장 사항:

  • CPU 주기 및 애플리케이션에 필요한 리소스 수를 줄입니다.
  • 최적화되고 효율적인 알고리즘 및 디자인 패턴을 사용합니다.
  • 직접 반복하지 마세요(DRY) 원칙을 고려합니다.

비동기 액세스 패턴 최적화

애플리케이션에 대한 수요는 다양할 수 있으며, 불필요한 에너지 유출로 이어질 수 있는 자원의 과잉 또는 활용을 방지하기 위해 사용률을 안정화하는 방법을 고려하는 것이 중요합니다.

Green Software Foundation 맞춤: 에너지 효율성

권장 사항:

  • 즉시 처리할 필요가 없는 큐 및 버퍼 요청은 일괄 처리로 처리합니다. 이러한 방식으로 애플리케이션을 디자인하면 안정적인 사용률을 달성하고 소비를 평면화하여 뾰족한 요청을 방지할 수 있습니다.
  • 비동기 액세스 패턴 최적화에 대해 읽어봅니다.

서버 쪽 렌더링과 클라이언트 쪽 렌더링 평가

UI를 사용하여 애플리케이션을 빌드할 때 서버 쪽 또는 클라이언트 쪽에서 렌더링할지 여부를 결정합니다.

Green Software Foundation 맞춤: 에너지 효율성, 하드웨어 효율성

권장 사항:

  • 서버 쪽 렌더링의 이점은 다음과 같습니다.

    • 서버의 전원이 클라이언트의 로캘보다 오염이 적은 대안에서 오는 경우.
    • 서버의 하드웨어에 더 나은 처리 에너지 비율이 있는 경우.
    • 중앙 집중식 캐싱을 사용하여 여러 불필요한 렌더링을 줄일 수 있습니다.
    • 클라이언트 디바이스에 손실 링크가 있는 경우 브라우저-서버 왕복 횟수를 줄이는 것이 특히 중요할 수 있습니다.
    • 클라이언트 디바이스가 오래되고 CPU가 느린 경우. 사용자는 최신 브라우저를 지원하기 위해 디바이스를 업그레이드할 필요가 없습니다.
  • 클라이언트 쪽 렌더링의 이점은 다음과 같습니다.

    • 최종 사용자 디바이스가 더 적합한 경우 렌더링 책임을 클라이언트에 푸시합니다.
    • 모든 항목을 한 번 이상 렌더링하는 것이 아니라 필요한 항목과 요청된 대로 렌더링하는 것이 더 효율적입니다.
    • 정적 스토리지를 사용할 수 있으므로 서버가 필요하지 않습니다.
    • 브라우저 캐싱은 클라이언트에서 사용됩니다.

지속 가능성을 위한 UX 설계에 유의하세요.

워크로드의 UX 디자인이 지속 가능성에 미치는 영향을 고려하고 에너지 효율성을 개선하고 불필요한 네트워크 부하, 데이터 처리 및 컴퓨팅 리소스를 줄이기 위한 옵션이 무엇인지 결정합니다.

Green Software Foundation 맞춤: 에너지 효율성

권장 사항:

  • 페이지에서 로드 및 렌더링할 구성 요소 수를 줄이는 것이 좋습니다.
  • 애플리케이션이 저해상도 이미지 및 비디오를 렌더링할 수 있는지 여부를 결정합니다.
    • 브라우저에서 크기 조정을 수행하는 경우 전체 크기 이미지를 썸네일로 렌더링하지 마세요.
    • 전체 크기 이미지를 썸네일 또는 크기 조정된 이미지로 사용하면 이미지 크기 조정 및 사전 렌더링으로 인해 더 많은 데이터, 불필요한 네트워크 트래픽 및 추가 클라이언트 쪽 CPU 사용량이 전송됩니다.
  • 사용되지 않는 페이지가 없는지 확인하면 UX 디자인을 최소화하는 데 도움이 됩니다.
  • 검색 및 찾기 기능을 고려합니다. 사용자가 원하는 항목을 더 쉽게 찾을 수 있도록 하면 저장 및 검색되는 데이터의 양을 줄이는 데 도움이 됩니다.
  • 더 적은 리소스를 사용하고 지속 가능성에 미치는 영향이 낮은 더 가벼운 UI를 제공하고 사용자에게 정보에 입각한 선택을 제공하는 것이 좋습니다.
  • 어두운 배경의 어두운 모드에서 앱과 웹 사이트를 제공하여 에너지를 절약하세요.
  • 클라이언트가 추가 글꼴을 다운로드하도록 강제하지 않도록 가능하면 시스템 글꼴을 사용하도록 선택하면 네트워크 부하가 더 많이 발생합니다.

레거시 코드 업데이트

최신 클라우드 인프라 또는 최신 업데이트에서 실행되지 않는 경우 레거시 코드를 업그레이드하거나 더 이상 사용하지 않는 것이 좋습니다.

Green Software Foundation 맞춤: 하드웨어 효율성

권장 사항:

  • 현대화에 적합한 비효율적인 레거시 코드를 식별합니다.
  • 서버리스 또는 최적화된 PaaS 옵션으로 이동하는 옵션이 있는지 검토합니다.
  • 이 절충을 고려합니다. 더 이상 사용되지 않을 수 있는 이전 코드를 업데이트하면 귀중한 시간이 소요될 수 있습니다.

다음 단계

애플리케이션 플랫폼에 대한 디자인 고려 사항을 검토합니다.