에지 워크로드 구성 패턴
작업 현장의 다양한 시스템과 디바이스는 워크로드 구성을 어렵게 만들 수 있습니다. 이 문서에서는 이를 해결하는 방법을 제공합니다.
컨텍스트 및 문제점
제조 회사는 디지털 변환 과정의 일환으로 공유 기능으로 재사용할 수 있는 소프트웨어 솔루션을 빌드하는 데 점점 더 집중하고 있습니다. 작업 현장의 다양한 디바이스와 시스템으로 인해 모듈식 워크로드는 다양한 프로토콜, 드라이버 및 데이터 형식을 지원하도록 구성됩니다. 때로는 워크로드의 여러 인스턴스가 동일한 에지 위치에서 서로 다른 구성으로 실행될 때도 있습니다. 일부 워크로드의 경우 구성이 하루에 여러 번 업데이트됩니다. 따라서 구성 관리는 에지 솔루션의 확장에 점점 더 중요해지고 있습니다.
해결 방법
에지 워크로드에 대한 구성 관리의 몇 가지 일반적인 특징은 다음과 같습니다.
- 소프트웨어 소스, CI/CD 파이프라인, 클라우드 테넌트 및 에지 위치와 같이 고유한 레이어로 그룹화할 수 있는 몇 가지 구성 지점이 있습니다.
- 여러 사람이 다양한 레이어를 업데이트할 수 있습니다.
- 구성을 업데이트하는 방법에 관계없이 신중하게 추적하고 감사해야 합니다.
- 비즈니스 연속성을 위해 에지에서 오프라인으로 구성에 액세스할 수 있어야 합니다.
- 또 클라우드에서 사용할 수 있는 구성의 전체 보기도 필요합니다.
문제 및 고려 사항
이 패턴을 구현할 방법을 결정할 때 다음 사항을 고려하세요.
- 에지가 클라우드에 연결되지 않은 경우 편집을 허용하면 구성 관리가 복잡해집니다. 클라우드에 대한 변경 내용을 복제본(replica) 수 있지만 다음과 같은 문제가 있습니다.
- 사용자 인증은 Microsoft Entra ID와 같은 클라우드 서비스에 의존하기 때문입니다.
- 워크로드가 수동 개입이 필요한 예기치 않은 구성을 수신하는 경우 다시 연결 후 충돌 해결.
- 토폴로지가 ISA-95 요구 사항을 준수하는 경우 에지 환경에 네트워크 관련 제약 조건이 있을 수 있습니다. Azure IoT Edge의 디바이스 계층 구조와 같이 레이어 간 연결을 제공하는 기술을 선택하여 이러한 제약을 극복할 수 있습니다.
- 런타임 구성이 소프트웨어 릴리스와 분리된 경우 구성 변경은 별도로 처리되어야 합니다. 기록 및 롤백 기능을 제공하려면 클라우드의 데이터 저장소에 과거 구성을 저장해야 합니다.
- 존재하지 않는 엔드포인트에 구성된 연결 구성 요소와 같은 구성의 오류로 인해 워크로드가 중단될 수 있습니다. 따라서 가시성 대시보드가 시스템 오류와 구성 변경의 상관 관계를 분석할 수 있도록 가시성 솔루션의 다른 배포 라이프사이클 이벤트를 처리할 때처럼 구성 변경을 처리하는 것이 중요합니다. 가시성에 대한 자세한 내용은 클라우드 모니터링 가이드: 가시성을 참조하세요.
- 클라우드 및 에지 데이터 저장소가 비즈니스 연속성에서 수행하는 역할을 이해합니다. 클라우드 데이터 저장소가 SSOT(single source of truth)인 경우 에지 워크로드는 자동화된 프로세스를 사용하여 의도한 상태를 복원할 수 있어야 합니다.
- 복원력을 위해 에지 데이터 저장소는 오프라인 캐시로 작동해야 합니다. 이는 대기 시간 고려 사항보다 우선합니다.
이 패턴을 사용해야 하는 경우
다음 경우에 이 패턴을 사용합니다.
- 소프트웨어 릴리스 주기 외의 워크로드를 구성해야 합니다.
- 다른 사람들이 구성을 읽고 업데이트할 수 있어야 합니다.
- 클라우드에 연결되지 않은 경우에도 구성을 사용할 수 있어야 합니다.
예제 워크로드:
- 데이터 수집(예: OPC Publisher)과 명령 및 제어를 위해 작업 현장의 자산에 연결하는 솔루션
- 예측 유지 관리를 위한 기계 학습 워크로드
- 제조 라인에서 실시간으로 품질을 검사하는 기계 학습 워크로드
예
런타임 동안 에지 워크로드를 구성하는 솔루션은 외부 구성 컨트롤러 또는 내부 구성 공급자를 기반으로 할 수 있습니다.
외부 구성 컨트롤러 변형
이 변형에는 워크로드 외부에 있는 구성 컨트롤러가 있습니다. 클라우드 구성 컨트롤러 구성 요소의 역할은 에지 구성 컨트롤러를 통해 클라우드 데이터 저장소에서 워크로드로 편집을 푸시하는 것입니다. 에지에는 데이터 저장소도 포함되어 있어 클라우드에서 연결이 끊긴 경우에도 시스템이 작동합니다.
IoT Edge를 사용하면 에지 구성 컨트롤러를 모듈로 구현할 수 있고 구성을 모듈 쌍으로 적용할 수 있습니다. 모듈 쌍에는 크기 제한이 있습니다. 구성이 한도를 초과하는 경우 솔루션은 Azure Blob Storage로 확장하거나 직접 메서드를 통해 더 큰 페이로드를 청크하여 확장할 수 있습니다.
이 변형의 이점은 다음과 같습니다.
- 워크로드 자체는 구성 시스템을 인식할 필요가 없습니다. 이 기능은 워크로드의 소스 코드를 편집할 수 없는 경우(예: Azure IoT Edge Marketplace의 모듈을 사용하는 경우) 요구 사항입니다.
- 클라우드 구성 컨트롤러를 통해 변경 사항을 조정하여 동시에 여러 워크로드의 구성을 변경할 수 있습니다.
- 푸시 파이프라인의 일부로 추가 유효성 검사를 구현할 수 있습니다. 예를 들어 구성을 워크로드로 푸시하기 전에 에지에서 엔드포인트가 있는지 그 유효성을 검사합니다.
내부 구성 공급자 변형
내부 구성 공급자 변형에서 워크로드는 구성 공급자에서 구성을 가져옵니다. 구현 예는 .NET에서 사용자 지정 구성 공급자 구현을 참조하세요. 이 예에서는 C#을 사용하지만 다른 언어를 사용할 수 있습니다.
이 변형에서 워크로드에는 고유 식별자가 있으므로 다른 환경에서 실행되는 동일한 소스 코드는 구성이 다를 수 있습니다. 식별자를 구성하는 한 가지 방법은 워크로드의 계층적 관계를 테넌트와 같은 최상위 그룹화에 연결하는 것입니다. IoT Edge의 경우 Azure 리소스 그룹, IoT 허브 이름, IoT Edge 디바이스 이름 및 모듈 식별자의 조합일 수 있습니다. 이러한 값은 함께 데이터 저장소에서 키로 작동하는 고유 식별자를 형성합니다.
모듈 버전을 고유 식별자에 추가할 수 있지만 소프트웨어 업데이트 간에 구성을 유지하는 것이 일반적인 요구 사항입니다. 버전이 식별자의 일부인 경우 이전 버전의 구성을 추가 구현과 함께 앞으로 마이그레이션해야 합니다.
이 변형의 이점은 다음과 같습니다.
- 데이터 저장소를 제외하고 솔루션에는 구성 요소가 필요하지 않으므로 복잡성이 줄어듭니다.
- 호환되지 않는 이전 버전의 마이그레이션 논리는 워크로드 구현 내에서 처리할 수 있습니다.
IoT Edge를 기반으로 하는 솔루션
IoT Edge 참조 구현의 클라우드 구성 요소는 클라우드 구성 컨트롤러 역할을 하는 IoT 허브로 구성됩니다. Azure IoT Hub 모듈 쌍 기능은 모듈 쌍 desired 및 reported 속성을 사용하여 구성 변경 내용 및 현재 적용된 구성에 대한 정보를 전파합니다. 구성 관리 서비스는 구성의 원본 역할을 합니다. 또한 구성, 빌드 시스템 및 워크로드 구성을 작성하는 데 사용되는 기타 도구를 관리하기 위한 사용자 인터페이스가 될 수 있습니다.
Azure Cosmos DB 데이터베이스는 모든 구성을 저장합니다. 여러 IoT 허브와 상호 작용할 수 있으며 구성 기록을 제공합니다.
에지 디바이스가 보고된 속성을 통해 구성이 적용되었음을 나타내면 구성 상태 서비스는 데이터베이스 인스턴스의 이벤트를 기록합니다.
구성 관리 서비스에서 신규 구성이 만들어지면 Azure Cosmos DB에 저장되고 에지 모듈의 desired 속성은 디바이스가 상주하는 IoT 허브에서 변경됩니다. 그런 다음, IoT Hub에서 에지 디바이스로 구성을 전송합니다. 에지 모듈은 구성을 적용하고 모듈 쌍을 통해 구성 상태를 보고합니다. 그런 다음, 구성 상태 서비스는 쌍 변경 이벤트를 수신 대기하고 모듈이 구성 상태 변경을 보고하는 것을 감지하면 Azure Cosmos DB 데이터베이스에 해당 변경을 기록합니다.
에지 구성 요소는 외부 구성 컨트롤러 또는 내부 구성 공급자를 사용할 수 있습니다. 어느 구현에서든 구성이 모듈 쌍 desired 속성에서 전송되거나 큰 구성을 전송해야 하는 경우, 모듈 쌍 desired 속성에는 Azure Blob Storage 또는 구성을 검색하는 데 사용할 수 있는 다른 서비스에 대한 URL이 포함됩니다. 그런 다음, 모듈은 모듈 쌍 reported 속성에서 새 구성이 성공적으로 적용되었는지 여부와 현재 적용된 구성이 무엇인지 알려줍니다.
참가자
Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.
보안 주체 작성자:
- Heather Camm | 선임 프로그램 관리자
비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.
다음 단계
- Azure IoT Edge
- Azure IoT Edge란?
- Azure IoT Hub
- IoT 개념 및 Azure IoT Hub
- Azure Cosmos DB
- Azure Cosmos DB 시작
- Azure Blob Storage
- Azure Blob Storage 소개