Siege of Orleans (Andrey Chekh Technology Stream)

Post on 15-Apr-2017

202 views 0 download

Transcript of Siege of Orleans (Andrey Chekh Technology Stream)

Осада Орлеана построение распределенный приложений с использованием фреймворка Orleans на 

платформе Azure

Андрей Чех

July 05, 2015

Распределенные приложения

2

CAP теорема

2

Техники репликации

2

Распространенные архитектуры:3-х уровневая

2

!!!

Распространенные архитектуры:SOA

2

???

Orleans модель

2

Основные понятия Orleans• Grains (virtual actors): stateless, stateful• Grain interfaces (contract)• Silos (grain hosting and execution)• Clients• Client observers 

2

Grain• Существует всегда• Активируются автоматически• Существует везде• Масштабируется автоматически– только stateless worker activation mode (immutable or no state)

2

Grain interface, Grain reference

• Контракт взаимодействия между grains• C# interface• Все методы асинхронные (возвращают Task или Task<T>)

• Grain reference – прокси для взаимодействия с grain• Grain reference можно взять из фабрики, вернуть из метода, передать параметром

• Grain reference не требует явной привязки к активации grain

2

Promise, Turn• Все методы grains асинхронные: вызов метода не блокируется, возвращая Task<T>

• TPL и await• Все активации однопоточные• 1 ход – последовательность вызовов, которая приводит к завершенному результату

2

2

Инструменты

• Visual Studio 2013, .NET Framework 4.5• Azure SDK for .NET 2.4+ (optional)• Orleans SDK

2

Итого• Простой фреймворк для эффективной разработки распределенных приложений

• Не подходит для некоторых сценариев– переменная нагрузка с большим/малым количеством сущностей

– нет поддержки транзакций (между grain-ами)• at least once гарантия доставки сообщения (не at most once)

• Нет поддержки FIFO при передаче сообщений

2

Ссылки

• Github https://github.com/dotnet/orleans• Документация http://dotnet.github.io/orleans/

• Orleans в продакшн http://dotnet.github.io/orleans/Who-Is-Using-Orleans

2

Спасибо!

Андрей ЧехDirector of Research & Technology

2