.NET Orleans - MS의 분산 어플리케이션 프레임워크
(dotnet.github.io)"Distributed .NET"
- grains 라고 불리는 분산 객체 기반으로 Scalable, Fault Tolerant 앱을 만들고 운영하기 위한 크로스플랫폼 프레임워크
- 로컬서버에서 작성된 객체가 클라우드/클러스터 기반에서 코드변경없이 실행 및 스케일링
- MS가 8년째 실서비스에서 사용중
- grain = identity + behavior + state
- .NET Standard 2.0 이상의 윈도,리눅스,맥
기능
- Persistence : grain 의 상태는 어떤 스토리지 시스템에든 저장 가능
ㅤ→ Plugin for Azure Storage, ADO.NET(SQL Server, MySQL, PostgreSQL, Oracle), DynamoDB
- 분산 ACID 트랜잭션
- Virtual Stream : Azure Event Hubs, Amazon SQS/Kinesis, GCP, In-memory
- Timers & Reminders : 미래에 활성화될 grain 에도 액션 스케줄링 가능
- Flexible Grain Placement : Orleans 안에서 grain 이 활성화 되면 런타임이 어떤 서버에서 그걸 활성화 할지 선택. 이 자체는 마음대로 설정 가능
- Grain Versioning & Heterogeneous Clusters : 다양한 버전의 grain 의 같이 존재 가능하며 안전한 업데이트 지원
- Stateless Workers : state 없는 grain 들이며, 여러개의 서버에서 동시 실행 가능
- Grain Call Filters : 여러 grain 들에 동시 적용되는 필터 기능. 인증/로깅/Telemetry/에러처리
- Run Anywhere : Azure, AWS, GCP, On-prem, Kubernetes, Service Fabric, Windows, Linux, MacOS