siege of orleans (andrey chekh technology stream)

16
Осада Орлеана построение распределенный приложений с использованием фреймворка Orleans на платформе Azure Андрей Чех July 05, 2015

Upload: lviv-it-arena

Post on 15-Apr-2017

202 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Siege of Orleans (Andrey Chekh Technology Stream)

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

платформе Azure

Андрей Чех

July 05, 2015

Page 2: Siege of Orleans (Andrey Chekh Technology Stream)

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

2

Page 3: Siege of Orleans (Andrey Chekh Technology Stream)

CAP теорема

2

Page 4: Siege of Orleans (Andrey Chekh Technology Stream)

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

2

Page 5: Siege of Orleans (Andrey Chekh Technology Stream)

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

2

!!!

Page 6: Siege of Orleans (Andrey Chekh Technology Stream)

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

2

???

Page 7: Siege of Orleans (Andrey Chekh Technology Stream)

Orleans модель

2

Page 8: Siege of Orleans (Andrey Chekh Technology Stream)

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

2

Page 9: Siege of Orleans (Andrey Chekh Technology Stream)

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

2

Page 10: Siege of Orleans (Andrey Chekh Technology Stream)

Grain interface, Grain reference

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

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

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

2

Page 11: Siege of Orleans (Andrey Chekh Technology Stream)

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

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

2

Page 12: Siege of Orleans (Andrey Chekh Technology Stream)

2

Page 13: Siege of Orleans (Andrey Chekh Technology Stream)

Инструменты

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

2

Page 14: Siege of Orleans (Andrey Chekh Technology Stream)

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

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

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

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

2

Page 15: Siege of Orleans (Andrey Chekh Technology Stream)

Ссылки

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

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

2

Page 16: Siege of Orleans (Andrey Chekh Technology Stream)

Спасибо!

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

2