21
Архитектура и технологии Pryaniky.com Что под капотом у Пряников. Москва, 2014

Microsoft Azure Pryaniky.com

Embed Size (px)

DESCRIPTION

Pryaniky.com architecture features. Updated.

Citation preview

Page 1: Microsoft Azure Pryaniky.com

Архитектура и технологии Pryaniky.com

Что под капотом у Пряников.

Москва, 2014

Page 2: Microsoft Azure Pryaniky.com

О продукте

www.pryaniky.com

Баллы

Бейджи

Рейтинги

Миссии

Миссии

Призы

Page 3: Microsoft Azure Pryaniky.com

Сервис Пряники – как это работает

Ключевые технологии:• Microsoft Azure

• Web Role• Worker Role• Service Bus• SQL Azure

• SQL Server 2008 (для коробочной версии)• Sync Services• WIF + ADFS – аутентификация пользователей из

домена в облачном сервисе• SharePoint 2010

Page 4: Microsoft Azure Pryaniky.com

Пряники - как это работает

www.pryaniky.com

Пряники в Azure – используют CQRS и очереди.Часть сервисов в коробочной версии также предоставляется через Azure

Page 5: Microsoft Azure Pryaniky.com

WIF

Сервис Пряники – как это работает

Общая архитектура:

Microsoft Azure

Web Worker SQL Azure

Mobile ClientsDesktop Clients

Web Clients

ADFS Proxy SharePoint

Active Directory

Forms

Active Directory

Пряники

Sync Framework/WCF

SQL Azure Data Sync, ACSService Bus (пробуем)

Page 6: Microsoft Azure Pryaniky.com

Сервис Пряники – Синхронизация данных

Синхронизация с “облаком”:• SQL Azure Data Sync• Microsoft Sync Framework

Page 7: Microsoft Azure Pryaniky.com

Сервис Пряники – Синхронизация данных

SQL Data Sync:• Нет необходимости писать код• Поддерживает сложные схемы синхронизации

многих источников• Минус – простое разрешение конфликтов

Агент локальный

Azure SQL

Агент локальный

Агент локальный

Page 8: Microsoft Azure Pryaniky.com

Сервис Пряники – Синхронизация данных

Microsoft Sync Framework (4.0 CTP):• Аналогичен по функционалу SQL Azure Data Sync• Нужно писать код (довольно простой)• Ручное разрешение конфликтов

• С помощью Sync Framework можно устранить ключевой недостаток SQL Azure Data Sync – организовать синхронизацию данных с учетом версионности изменений.

• Например, при одновременном изменении данных клиентом в корпоративной среде и в облачном сервисе.

Page 9: Microsoft Azure Pryaniky.com

Сервис Пряники – Аутентификация

WIF + ADFS • Позволяет аутентифицировать пользователей из

домена в облачном сервисе

Page 10: Microsoft Azure Pryaniky.com

ADFS и Azure

• Интеграцию приложения в Azure с корпоративным порталом можно реализовать двумя способами:– Активная аутентификация (используется для

Web-компонент, встроенных через iframe)– Пассивная аутентификация (с использованием

промежуточного сервиса WCF)

Page 11: Microsoft Azure Pryaniky.com

Сервис Пряники – Аутентификация

WIF + ADFS – пассивная аутентификация• Позволяет аутентифицировать пользователей из

домена в облачном сервисе

Azure

ADFS Proxy

SharePoint

Active Directory

Pryaniky (iFrame)

USER1

23

4

Page 12: Microsoft Azure Pryaniky.com

Сервис Пряники – Аутентификация

WIF + ADFS – пассивная аутентификация • Позволяет аутентифицировать пользователей из

домена в облачном сервисе без аутивного участия пользователей

Azure (WCF)

ADFS Proxy

SharePoint

Active Directory

Pryaniky

WCF с WIF

USER1

2

34

Page 13: Microsoft Azure Pryaniky.com

Настройка ADFS - СертификатыPryanikyapp.cloudapp.net(точка входа HTTPS)

Iis.domain.localСертификат + ключ в IIS и ADFS (коммуникационный)

ADFSIIS

Сертификат управления подпиской AZURE

Private key

Private key

Private key

Private key

Pryanikyapp.cloudapp.net(точка входа HTTPS)Private key

Сертификат + ключ управления подпиской

Private key

Page 14: Microsoft Azure Pryaniky.com

Настройка ADFS – checklist!

• Создать необходимые сертификаты• Установить сертификат в IIS для домена по умолчанию и

настроить Связь SSL• Установить и настроить службу ADFS 2.0 (standalone с

сертификатом тем же сертификатом что и IIS)• В Azure Access Control добавить Identity Provider загрузив

метаданные из ADFS 2.0 (Federation Metadata)• Добавить в ADFS 2.0 в качестве Relying Party сервис Azure

Access Control• Добавить ссылку на сервис STS в приложение из Azure

Access Control• Добавить в Azure Access Control созданное приложение

Page 15: Microsoft Azure Pryaniky.com

Сервис Пряники – Обновление

Entity Framework Code First Migration (EntityFramework.SqlMigrations)• Позволяет легко обновлять базу данных по уже

написанным классам

puiblic class Pryanik{ public long Id{get;set;} public string Name {get;set;}}

puiblic class Pryanik{ public long Id{get;set;} public string Name {get;set;} public string Descr{get;set;}}

[Id] [long] IDENTITY(1,1) NOT NULL,[Name] [nvarchar](max) NULL,

[Id] [long] IDENTITY(1,1) NOT NULL,[Name] [nvarchar](max) NULL,[Descr] [nvarchar](max) NULL,

>update-database

Page 16: Microsoft Azure Pryaniky.com

Сервис Пряники – Безопасность и производительность

Инструменты, использованные для обеспечения безопасности приложений в Azure:• Microsoft Web Application Configuration Analyzer

v2.0• ELMAH и Microsoft.WindowsAzure.Diagnostic• – расширенное журналирование и оповещение• Web Protection Library (WPL) – умное

экранирование ввода• Azure Diagnostics Manager 2 (Cerebrata)

Page 17: Microsoft Azure Pryaniky.com

Сервис Пряники – Безопасность

Microsoft Web Application Configuration Analyzer v2.0

Многие из правил валидации не актуальны для Azure, но для некоторых стоит перенастроить штатный образ WebRole. Зачем нам, например, Print Spooler и Alerter?

Page 18: Microsoft Azure Pryaniky.com

Сервис Пряники – Безопасность

ELMAH и Microsoft.WindowsAzure.Diagnostic• ELMAH – открытая библиотека для

ASP.NET/ASP.NET MVC, позволяющая организовать оповещение и журналирование событий

• Microsoft.WindowsAzure.Diagnostic – штатный инструмент для отладки и трассировки

Page 19: Microsoft Azure Pryaniky.com

Сервис Пряники – Безопасность

Azure Diagnostics Manager 2 (Cerebrata)• Позволяет получить данные со счетчиков

производительности• Журналы трассировки• Системные журналы ролей

Page 20: Microsoft Azure Pryaniky.com

Сервис Пряники – Безопасность

Azure Dashboard• http://www.windowsazure.com/ru-ru/support/s

ervice-dashboard/

• Пароль на Windows Live

Page 21: Microsoft Azure Pryaniky.com

«Пряники»: Игра, радость, команда,

успех!Мотивация 2.0

http://pryaniky.com

Писать: [email protected]Звонить: +7 (495) 669-37-56Заходить: http://pryaniky.comFacebook: http://facebook.com/pryanikyTwitter: @pryaniky