Share via


중요 업무용 워크로드의 디자인 원칙

중요 업무용 디자인 방법론은 중요한 디자인 영역에서 후속 디자인 결정을 위한 나침반 역할을 하는 5가지 주요 디자인 원칙에 의해 뒷받침됩니다. 이러한 원칙을 숙지하여 영향을 더 잘 이해하고 비준수와 관련된 장외 관계를 이해하는 것이 좋습니다.

중요

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

중요 업무용 디자인 원칙

이러한 중요 업무용 디자인 원칙은 Azure Well-Architected Framework의 품질 핵심 요소(안정성, 보안, 비용 최적화, 운영 우수성성능 효율성)를 공명하고 확장합니다.

안정성

최대 안정성 - 가장 신뢰할 수 있는 솔루션을 근본적으로 추구하여 장만을 제대로 이해합니다.

디자인 원리 고려 사항
활성/활성 디자인 가용성을 최대화하고 지역 내결함성을 달성하려면 가능한 경우 활성/활성 배포 모델을 사용하여 솔루션 구성 요소를 여러 가용성 영역 및 Azure 지역에 분산해야 합니다.
폭발 반경 감소 및 오류 격리 Azure와 같은 고도로 분산된 다중 테넌트 클라우드 환경에서는 오류를 방지할 수 없습니다. 개별 구성 요소에서 전체 Azure 지역에 이르는 오류 및 상관 관계가 있는 영향을 예상하여 복원력 있는 방식으로 솔루션을 설계하고 개발할 수 있습니다.
애플리케이션 상태 관찰 애플리케이션 안정성에 영향을 미치는 문제를 완화하기 전에 먼저 검색하고 이해해야 합니다. 알려진 정상 상태를 기준으로 애플리케이션의 작업을 모니터링하면 안정성 문제를 감지하거나 예측하여 신속한 수정 작업을 수행할 수 있습니다.
가동 자동화 애플리케이션 가동 중지 시간의 주요 원인 중 하나는 테스트된 소프트웨어의 배포 또는 잘못된 구성으로 인한 인적 오류입니다. 사용자 오류의 가능성과 영향을 최소화하려면 안정성을 개선하기 위해 클라우드 솔루션의 모든 측면에서 자동화를 위해 노력하는 것이 중요합니다. 자동화된 테스트, 배포 및 관리.
자체 복구를 위한 디자인 자체 복구는 솔루션 내의 오류 모드에 연결된 미리 정의된 수정 프로토콜을 통해 오류를 자동으로 처리하는 시스템의 기능을 설명합니다. 모니터링 및 자동화를 통해 높은 수준의 시스템 완성도가 필요하지만 처음부터 안정성을 최대화하려는 열망이 있어야 하는 고급 개념입니다.
복잡성 회피 안정성 및 관리 효율성을 높이기 위해 솔루션 및 모든 운영 프로세스를 설계할 때 불필요한 복잡성을 방지하여 오류 가능성을 최소화합니다.

성능 효율성

지속 가능한 성능 및 확장성 - 성능 병목 현상 없이 엔드 투 엔드 솔루션 전체의 확장성을 위해 디자인합니다.

디자인 원리 고려 사항
스케일 아웃이 가능한 디자인 스케일 아웃은 수평 성장을 통해 수요에 대응하는 시스템의 능력에 초점을 맞춘 개념입니다. 즉, 트래픽이 증가함에 따라 기존 리소스의 크기를 늘리는 대신 더 많은 리소스 단위가 병렬로 추가됩니다. 크기 조정 단위를 통해 예상 및 예기치 않은 트래픽 증가를 처리하는 시스템 기능은 단일 리소스 오류의 영향을 더욱 줄여 전반적인 성능과 안정성에 필수적입니다.
하이퍼스케일 자동화 솔루션 전체의 크기 조정 작업은 예기치 않은 트래픽 또는 예상된 트래픽 증가로 인한 성능 및 가용성 영향을 최소화하기 위해 완전히 자동화되어야 하며, 크기 조정 작업을 수행하는 데 걸리는 시간을 애플리케이션 상태에 대한 모델로 이해하고 정렬해야 합니다.
지속적인 유효성 검사 및 테스트 CI/CD 프로세스 내에서 자동화된 테스트를 수행하여 각 애플리케이션 변경에 대한 지속적인 유효성 검사를 수행해야 합니다. 동기화된 비정상 상황 실험을 사용하여 성능 기준에 대한 부하 테스트를 포함하여 기존 임계값, 대상 및 가정의 유효성을 검사하고 복원력 및 가용성에 대한 위험을 신속하게 식별할 수 있도록 해야 합니다. 이러한 테스트는 스테이징 및 테스트 환경 내에서 수행되어야 하지만 필요에 따라 개발 환경 내에서 수행해야 합니다. 프로덕션 환경에 대해 테스트의 하위 집합을 실행하는 것도 도움이 될 수 있습니다. 특히 파란색/녹색 배포 모델과 함께 프로덕션 트래픽을 수신하기 전에 새 배포 스탬프의 유효성을 검사하는 것이 좋습니다.
관리형 컴퓨팅 서비스를 사용하여 오버헤드 줄이기 관리형 컴퓨팅 서비스 및 컨테이너화된 아키텍처를 사용하면 인프라 배포 및 유지 관리를 관리 서비스 공급자로 이동하여 애플리케이션을 디자인, 운영 및 크기 조정하는 지속적인 관리 및 운영 오버헤드를 크게 줄일 수 있습니다.
기준 성능 및 병목 상태 식별 모든 시스템 구성 요소의 자세한 원격 분석을 사용한 성능 테스트를 통해 다른 구성 요소와 관련하여 크기를 조정해야 하는 구성 요소를 포함하여 시스템 내 병목 상태를 식별할 수 있으며 이 정보는 용량 모델에 통합되어야 합니다.
모델 용량 용량 모델을 사용하면 지정된 부하 프로필에 대한 리소스 크기 조정 수준을 계획할 수 있으며 시스템 구성 요소가 서로 관련하여 수행하는 방식을 추가로 노출하므로 시스템 전체 용량 할당 계획을 사용할 수 있습니다.

운영 효율성

설계별 운영 - 강력하고 적극적인 운영 관리를 통해 지속되도록 설계되었습니다.

디자인 원리 고려 사항
느슨하게 결합된 구성 요소 느슨한 결합을 사용하면 지원, 서비스, 리소스 또는 승인에 대한 팀 간 종속성을 최소화하면서 애플리케이션의 구성 요소에 대한 독립적이고 주문형 테스트, 배포 및 업데이트를 수행할 수 있습니다.
빌드 및 릴리스 프로세스 자동화 완전히 자동화된 빌드 및 릴리스 프로세스는 마찰을 줄이고 업데이트를 배포하는 속도를 증가시켜 환경 전체에서 반복성과 일관성을 제공합니다. 자동화는 코드 품질, 테스트 검사, 복원력, 보안 및 성능에 대한 인사이트를 얻기 위해 변경 내용을 푸시하는 개발자의 피드백 루프를 단축하여 개발자 생산성을 높입니다.
개발자 민첩성 CI/CD(연속 통합 및 지속적인 배포) 자동화를 사용하면 관련 기능 분기 수명 주기가 연결된 단기 개발 환경을 사용할 수 있으므로 개발자 민첩성을 높이고 엔지니어링 주기 내에서 가능한 한 빨리 유효성 검사를 추진하여 버그의 엔지니어링 비용을 최소화할 수 있습니다.
운영 상태 수량화 모든 구성 요소 및 리소스의 전체 진단 계측을 사용하면 로그, 메트릭 및 추적을 지속적으로 관찰할 수 있지만 상태 모델링을 용이하게 하여 가용성 및 성능 요구 사항에 대한 컨텍스트에서 애플리케이션 상태를 정량화할 수 있습니다.
복구 연습 및 실패 실습 BC(비즈니스 연속성) 및 DR(재해 복구) 계획 및 연습 훈련은 필수적이며, 학습은 계획되지 않은 가동 중지 시간이 발생할 경우 복원력을 최대화하기 위해 계획 및 절차를 반복적으로 개선할 수 있으므로 자주 수행해야 합니다.
지속적인 운영 개선 수용 상태 모델을 사용하여 시스템 및 사용자 환경의 일상적인 개선 우선 순위를 지정하여 애플리케이션 팀이 반복적인 방식으로 격차를 이해하고 해결할 수 있도록 피드백 메커니즘을 사용하여 운영 효율성을 이해하고 측정합니다.

보안

항상 보안 - 애플리케이션 안정성을 유지하고 가용성을 보장하기 위한 엔드 투 엔드 보안을 위한 디자인입니다.

디자인 원리 고려 사항
전체 솔루션의 보안 모니터링 및 인시던트 대응 계획 보안 및 감사 이벤트의 상관 관계를 지정하여 애플리케이션 상태를 모델링하고 활성 위협을 식별합니다. 추적을 위해 SIEM(보안 정보 및 이벤트 관리) 도구를 사용하여 인시던트에 대응하는 자동화된 수동 절차를 설정합니다.
잠재적 위협에 대한 모델링 및 테스트 침투 테스트를 사용하여 위협 완화를 확인하고 정적 코드 분석 및 코드 검사를 통해 알려진 위협을 식별하고 완화하는 적절한 리소스 강화 및 절차를 수립합니다.
엔드포인트를 식별 및 보호 방화벽 또는 웹 애플리케이션 방화벽과 같은 보안 기능 및 어플라이언스를 통해 내부 및 외부 엔드포인트의 네트워크 무결성을 모니터링하고 보호합니다. 업계 표준 접근 방식을 사용하여 SlowLoris와 같은 DDoS(분산 서비스 거부) 공격과 같은 일반적인 공격 벡터로부터 보호합니다.
코드 수준 취약성으로부터 보호 사이트 간 스크립팅 또는 SQL 삽입과 같은 코드 수준 취약성을 식별하고 완화하고 종속성을 포함하여 코드베이스의 모든 부분에 대한 운영 수명 주기에 보안 패치를 통합합니다.
최소 권한을 자동화 및 사용 자동화를 통해 사용자 상호 작용의 필요성을 최소화하고 애플리케이션 및 컨트롤 플레인 모두에서 최소 권한을 구현하여 데이터 반출 및 악의적인 행위자 시나리오로부터 보호합니다.
데이터를 분류 및 암호화 위험에 따라 데이터를 분류하고 미사용 및 전송 중에 업계 표준 암호화를 적용하여 키와 인증서가 안전하게 저장되고 제대로 관리되도록 합니다.

비용 최적화

워크로드 요구 사항의 컨텍스트에서 신중하게 고려해야 하는 더 큰 안정성 도입과 관련된 명백한 비용 절충이 있습니다.

안정성을 극대화하면 솔루션의 전반적인 재무 비용에 영향을 미칠 수 있습니다. 예를 들어 고가용성을 달성하기 위해 리소스를 복제하고 지역 간에 리소스를 분산하는 것은 비용에 분명한 영향을 미칩니다. 과도한 비용을 방지하려면 관련 비즈니스 요구 사항을 초과하여 과도하게 엔지니어링하거나 과도하게 프로비전하지 마세요.

또한 코드, 배포 자동화 및 카오스 엔지니어링과 같은 인프라 수용과 같은 기본 안정성 개념에 대한 엔지니어링 투자와 관련된 추가 비용이 있습니다. 이는 시간과 노력의 측면에서 비용이 발생하며, 새로운 애플리케이션 기능과 기능을 제공하기 위해 다른 곳에 투자할 수 있습니다.

클라우드 네이티브 디자인

  • Azure 네이티브 관리 서비스 - Azure 네이티브 관리 서비스는 관리 및 운영 오버헤드가 낮고 애플리케이션 스택에서 일관된 구성 및 계측과 긴밀하게 통합되기 때문에 우선 순위가 지정됩니다.

  • 로드맵 맞춤 - GA(일반 공급)가 되어 Azure의 선두 에지에 가깝게 유지되도록 예정된 신규 및 향상된 Azure 서비스 기능을 통합합니다.

  • 미리 보기 기능 수용 및 알려진 격차 완화 - GA(일반 공급) 서비스는 지원 가능성을 위해 우선 순위가 지정되지만, Azure 서비스 미리 보기는 빠른 통합을 위해 적극적으로 탐색되어 Azure 제품 그룹에 기술 및 실행 가능한 피드백을 제공하여 격차를 해결합니다.

  • Azure 랜딩 존 맞춤 - Azure 랜딩 존 내에서 배포 가능하고 Azure 랜딩 존 디자인 방법론에 맞게 조정되지만 랜딩 존 외부의 완전 환경에서도 완벽하게 작동하고 배포할 수 있습니다.

다음 단계

중요 업무용 워크로드와 관련된 교차 절단 문제를 검토합니다.