Friday, March 24, 2023

SpiderLightning: WebAssembly 클라우드 애플리케이션을 이식 가능하게 만들기

최근 소식

WebAssembly와 Kubernetes의 조합은 흥미로운 발전입니다. 기존 컨테이너가 크고 배포하는 데 시간이 걸리는 경우, 축소된 전용 호스트 Linux 배포판을 사용하더라도 WebAssembly 애플리케이션에는 표준 런타임이 필요하며 전용 바이너리 파일이므로 시스템 리소스가 훨씬 적게 필요합니다. 이는 빠르게 확장해야 하거나 제한된 환경에서 작동해야 하는 애플리케이션을 위한 컨테이너에 대한 매력적인 대안이 됩니다.

Azure Kubernetes Service에서 WebAssembly에 대한 Microsoft의 지원은 이 기술에 대한 큰 신뢰이며 최근 runwasi containerd shim에 대한 지원을 추가하여 Kubernetes를 사용하여 WebAssembly 코드를 직접 관리함으로써 배포를 단순화합니다. 이러한 지원은 개발자가 WebAssembly를 사용하고 브라우저가 없는 WASI(WebAssembly System Interface)용 Wasmtime 런타임을 사용하도록 돕는 새로운 WebAssembly 애플리케이션 프레임워크를 기반으로 합니다.

스파이더라이트닝 소개

이러한 프레임워크 중 하나는 Microsoft 자회사인 Deis Labs의 SpiderLightning입니다. 분산 응용 프로그램을 구축하기 위해 특별히 설계되었으며 구름을 통해 수백 마일을 이동할 수 있는 번개 유형의 이름을 따서 명명된 SpiderLightning은 WIT 인터페이스 정의 언어를 사용하여 WASI 응용 프로그램을 위한 공통 응용 프로그램 인터페이스 집합을 구현한 것입니다.

WebAssembly(더 구체적으로 WASI)의 설계와 클라우드 네이티브 분산 애플리케이션을 구축하는 개발자의 요구 사이에는 강력한 상관관계가 있습니다. 서로 다른 클라우드 공급업체 플랫폼 간의 차이점을 해결하지만 종속을 피하고 이식성을 활성화하는 방법은 아닙니다. 대신 Raspberry Pi 하드웨어에서 Intel, AMD 또는 Arm의 최신 멀티코어, 멀티프로세서 서버에 이르기까지 모든 것을 사용하여 기성품 에지 하드웨어에서 하이퍼스케일러에 도달할 수 있는 진정한 서비스 독립적인 멀티클라우드 플랫폼을 제공할 수 있는 방법에 중점을 둡니다. .

WASI는 그 비전을 전달하는 데 필요한 많은 부분을 제공하지만 상당히 초보적인 형태입니다. 그것은 놀라운 일이 아닙니다. 우리는 아직 새로운 플랫폼의 초기 단계에 있으며 JVM이나 .NET CLR과 같이 20년 이상 된 것의 성숙도를 기대할 수 없습니다. 그럼에도 불구하고 플랫폼 설계자가 이를 고려했으며 플랫폼 확장 개발을 가속화하는 데 필요한 도구를 제공하고 있음이 분명합니다.

읽다  Hail Hydra: 클라우드가 대신할 수 있도록 눈송이 서버를 죽입니다.

WIT로 WASI 확장

이 확장성의 핵심 요소는 WebAssembly 구성 요소 모델입니다. OS 프로세스 모델과 동등한 Wasm으로 WebAssembly 작업 그룹에서 정의한 이것은 WASI가 인터페이스를 구현하는 방법의 기반입니다. 이와 같은 저수준 접근 방식의 핵심 요소는 인터페이스가 코드와 상호 작용하는 방법을 지정하는 방법을 제공하는 인터페이스 정의 언어입니다. Wasm, 특히 구성 요소 모델의 경우 표준 IDL은 wit이며, WebAssembly 코드로 확장되는 인터페이스를 정의하는 간결하고 사람이 읽을 수 있는 방법을 제공합니다.

WASI를 사용하여 분산 애플리케이션을 구축하려면 공급자별 서비스를 인터페이스로 추상화할 수 있는 확장 세트가 필요합니다. AWS의 S3와 Azure의 Blob 저장소 및 이를 관리하는 코드에 대해 별도의 API를 사용하는 대신 기본 WASI 인스턴스 관리 서비스와 함께 모든 플랫폼에서 공통 인터페이스 집합을 제공하는 단일 저장소 구성 요소를 가질 수 있습니다. 특정 구현.

많은 일반적인 분산 응용 프로그램 기능을 구현하는 일련의 인터페이스와 함께 SpiderLightning이 들어오는 곳입니다. 이러한 인터페이스에서 작동하는 코드를 작성하고 이식 가능한지 확인할 수 있습니다. 인프라에 대해 걱정할 필요가 없으며 비즈니스 논리를 구현하는 코드를 간단히 작성할 수 있습니다. Deis Labs는 SpiderLightning을 키-값 저장소, gRPC API, 메시지 큐 등과 같은 기능을 제공하는 구성 요소가 포함된 “레고 조각 세트”라고 설명합니다.

WIT 정의 세트를 갖는 것은 시작에 불과합니다. 진정으로 이식 가능한 환경을 만들기 위해서는 일반적인 클라우드 API 및 서비스를 중심으로 설계된 구현이 필요합니다. Deis는 친숙한 wasmtime WASI 런타임 환경 위에 위치하는 약간이라는 개념 증명 SpiderLightning 프레임워크를 구현했습니다.

읽다  Mastodon 목록 작업 | 인포월드

약간의 시작하기

클라우드 네이티브 개발 도구 체인의 많은 부분과 마찬가지로 약간은 CLI 도구입니다. UNIX 기반 시스템에서 GitHub 호스팅 설치 스크립트를 실행하여 설치할 수 있습니다(Windows 개발자는 Linux용 Windows 하위 시스템 사용 가능). 스크립트는 약간의 바이너리가 포함된 tar 파일을 다운로드한 다음 CLI를 추출하고 설치합니다.

이 도구는 WASI 애플리케이션을 생성하고 채웁니다. 사용할 SpiderLightning 인터페이스의 버전을 정의하기만 하면 됩니다. 적절한 컴파일러 대상이 설치되어 있는지 확인하면서 Rust 또는 C를 사용할 수 있습니다. 응용 프로그램이 컴파일되면 약간의 명령을 사용하여 코드를 실행할 수 있으며, 응용 프로그램에 대해 컴파일된 Wasm 파일을 대상으로 지정하고 SpiderLightning 구성을 사용하여 인터페이스를 구현에 매핑할 수 있습니다.

이 구성 파일은 약간의 작업에 핵심입니다. 리소스 유형 및 이름의 형태로 코드에서 사용해야 하는 기능을 자세히 설명하는 방법입니다. 코드를 변경하지 않고 지원되는 인프라 기능 간에 전환하는 데 도움이 되므로 중요합니다. 대상 환경에 더 적합한 스토리지 공급자로 전환할 수 있습니다. 에지에서 실행되는 코드는 로컬 리소스를 사용할 수 있고, 자체 프라이빗 클라우드용 코드는 익숙한 인프라 요소를 대상으로 할 수 있으며, 퍼블릭 클라우드용 코드는 공급자의 플랫폼 서비스 중 하나를 사용할 수 있습니다.

그 결과 Azure 리소스를 사용하는 AKS에서 실행되는 이식 가능한 코드를 제공하는 동시에 에지 하드웨어로 확장하고 자체 데이터 센터로 축소합니다. 또한 이 데이터를 보관하고 연결을 관리하는 약간의 구성을 사용하여 계정 정보가 코드 리포지토리 외부에 보관되도록 하는 데 도움이 됩니다.

읽다  향상된 물체 추적 및 거리 측정을 위한 새로운 3D Lidar 시스템

이것이 작동하려면 애플리케이션에서 사용 중인 기능에 대한 SpiderLightning의 WIT 정의를 가져와야 합니다. 이것은 코드가 인터페이스와 함께 작동하는 방법, 즉 서비스를 호출하는 방법, 지원되는 명령, 전송되는 페이로드 및 예상 반환 항목을 설명합니다. 사용되는 실제 서비스는 약간의 런타임에 의해 처리되므로 Azure 또는 기타 지원되는 클라우드 작업의 세부 사항보다는 코드가 해결하는 문제에 집중할 수 있습니다.

새로운 SpiderLightning 기능 구축

현재 SpiderLightning은 계획된 기능의 하위 집합을 지원하고 제안된 서비스 중 일부만 지원하여 진행 중인 작업입니다. 키-값 저장소는 메시징 지원과 함께 현재 가장 성숙합니다. 오픈 소스 프로젝트이며 새로운 서비스에 대한 새로운 종속성을 생성하는 프로세스와 함께 확장 가능하도록 설계되었습니다. AKS 지원을 통해 Microsoft는 자체 기능을 플랫폼에 추가할 인센티브가 있으며 대략적인 로드맵은 이러한 기능과 일부 AWS 서비스가 계획되어 있음을 나타냅니다.

우리는 아직 WebAssembly를 사용하여 분산 응용 프로그램을 구축하는 초기 단계에 있지만 SpiderLightning과 같은 도구는 많은 가능성을 보여줍니다. 플랫폼 서비스에서 추상화 수준을 제공함으로써 스케일 업 및 스케일 아웃이 가능한 휴대용 크로스 클라우드 애플리케이션을 구축하는 흥미로운 방법입니다. 아이디어와 개념을 교환하면서 SpiderLightning과 같은 WASI 도구 및 프레임워크의 진화를 지켜보는 것은 흥미로울 것입니다. WebAssembly 커뮤니티는 가능한 한 광범위한 호스트 서비스와 상호 작용할 수 있는 이식 가능한 코드를 지원하는 표준 도구 세트를 제공하는 것을 분명히 목표로 하고 있습니다. SpiderLightning은 긴 여정의 첫 번째 단계일 수 있지만 분명히 길고 자신감 있는 걸음입니다.

핫 토픽

관련 기사