Проектирование сетевой инфраструктуры под SOA проекты...

Preview:

Citation preview

‹#›

Артём Коломеец

Проектирование

сетевой инфраструктуры

под SOA проекты ASP.NET

ASP.NET Day

28.02.15

2Go

# C

on

fere

nce

s

Service Oriented Architecture

3Go

# C

on

fere

nce

s

Веб-сервис ИнструментыИнфраструктура

ASP.NET

Backend Services

Frontend (Api/Handler)

Facade (Pattern)

Contract (Interface)

Windows Server

IIS

Azure

HTTP (HTTPS)

TCP (WCF)

DMZ - Demilitarized

Zone

NLB - Network Load

Balancing

HA - High Availability

Cluster

TMG - Microsoft

Forefront Threat

Management Gateway

Fortigate

Технологии

4Go

# C

on

fere

nce

s

Решение бизнес задачи

Поддержка

Расширяемость

Нефункциональные требования

Требования к архитектуре проекта

5Go

# C

on

fere

nce

s

Архитектура простого проекта

Frontend

Backend

Data Access InternalFacade

Contract

ExternalFacade

6Go

# C

on

fere

nce

s

Публикация простого сервиса

HTTPS HTTP

TCPMSSQL

The best service

Database Internal

Client External

7

8Go

# C

on

fere

nce

s

Организация сети внутри компании

Internet

DEMILITARIZED

LAN

9Go

# C

on

fere

nce

s

Аутентификации и авторизация

Безопасность

Доступность

Мониторинг

Требования к инфраструктуре

10Go

# C

on

fere

nce

s

Инфраструктура - аутентификация

Использовать аутентификацию на стороне сервера

11Go

# C

on

fere

nce

s

Инфраструктура - аутентификация

Использовать аутентификацию на стороне сервера

Опираться на доступные в IIS способы аутентификации

12Go

# C

on

fere

nce

s

KerberosNTLM

Поддерживаемые типы Локальная аутентификация

Аутентификация домена

Аутентификация домена

Инфраструктура - аутентификация

Не использовать Windows NT LAN Manager

Способ аутентификации Запрос - ответ Концепция доверенной

третьей стороны (TTP)

Совместимые платформы Все платформы Windows Windows 2000 и поздние

UNIX

Взаимная аутентификация

Делегировании

аутентификации

Поддержка регистрации с

помощью смарт-карт

-

-

-

+

+

+

13Go

# C

on

fere

nce

s

Configuration locking

14Go

# C

on

fere

nce

s

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

HTTPS HTTP

TCPMSSQL

The best service

Database Internal

Client External

Windows NTLM Windows Kerberos

15Go

# C

on

fere

nce

s

Инфраструктура - авторизация

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

Active Directory

Для авторизации внешних пользователей использовать

сертификаты

INTERNET DEMILITARIZED LAN

16Go

# C

on

fere

nce

s

HTTP

HTTPS

TCPMSSQL

Database Internal

Client External

Windows NTLM Windows Kerberos

Best frontend

Best backend

Client Certificate Mapping

Windows Kerberos

Windows Kerberos

HTTPS

Разделение способов авторизации

17Go

# C

on

fere

nce

s

Инфраструктура - безопасность

Внешние сервисы должны быть защищены от DDOS

Для Web-сервисов не использовать настройки прокси,

распространяемые групповыми политиками

18Go

# C

on

fere

nce

s

Защита сервисов от внешней сети

HTTP

HTTPS

TCPMSSQL

Database Internal

Client External

Windows NTLM Windows Kerberos

Best frontend

Best backend

Proxy

HTTPS

Client Certificate Mapping

Windows Kerberos

Windows Kerberos

DDOS Prevention

19Go

# C

on

fere

nce

s

Подключение proxy в приложении

<system.net>

<defaultProxy useDefaultCredentials="true">

<proxy proxyaddress="proxyAddress" />

</defaultProxy>

</system.net>

20Go

# C

on

fere

nce

s

Инфраструктура - доступность

Доступность сервиса 99.9%

Network Loading Balancing

High Availability

21Go

# C

on

fere

nce

s

Network Loading Balancing

HTTPS

Client

Best frontend 1

Client Certificate Mapping

Windows Kerberos

DDOS Prevention

Balancer

Best frontend 2

22Go

# C

on

fere

nce

s

Инфраструктура - доступность

Доступность сервиса 99.9%

Network Loading Balancing

Stateless

Не хранить жёсткую привязку к ресурсам

Не хранить очереди

23Go

# C

on

fere

nce

s

Shared configurations

24Go

# C

on

fere

nce

s

High Availability

Best backend 1

Active DB

MSSQL

Mirror DB

MIRRORING

Balancer

Best backend 2

Windows Kerberos

Windows NTLM Windows NTLM

25Go

# C

on

fere

nce

s

Инфраструктура - доступность

Приложения должны уметь автоматически

переключаться на зеркало базы данных

<connectionStrings>

<add connectionString=“

Data Source=ServerAddress;

Failover Partner=MirrorServerAddress;

Initial Catalog=DataBase;

Integrated Security=True;“ />

</connectionStrings>

26Go

# C

on

fere

nce

s

Инфраструктура - мониторинг

GeoDNS сервисы должны иметь механизм, позволяющий

проверить сервис на работоспособность по всем

регионам

Мониторинг агенты разносить вместе с сервисом

DNS для мониторинга

27Go

# C

on

fere

nce

s

HTTP external-creams.com

Best backend

Proxy

external-creams.comeu.external-creams.com

external-creams.com

us.external-creams.com

external-creams.com

ai.external-creams.com

Публикации для мониторинга

28Go

# C

on

fere

nce

s

Инфраструктура - мониторинг

Клиентские сертификаты должны быть открыты для

возможности мониторинга их валидности

Local machine container

29Go

# C

on

fere

nce

s

Важные аспекты

HTTP

HTTPS

TCP

Internal

Client

Windows Kerberos

Proxy

HTTPS

Client Certificate Mapping

DDOS Prevention

Best backend 1

Active DBMirror DB

MIRRORING

Balancer

Best backend 2

Windows Kerberos

Windows NTLM Windows NTLM

Best frontend 1

Client Certificate Mapping

Windows Kerberos

Balancer

Best frontend 2

external-creams.com

external-creams.comeu.external-creams.com

external-creams.com

us.external-creams.com

external-creams.com

ai.external-creams.com

30Go

# C

on

fere

nce

s

1 ответственность – 1 владелец

Способность к расширению

Общение по средствам публикаций

Независимость от деталей реализации

Важные аспекты

‹#›

Go

# C

on

fere

nce

s

Артём Коломеец

Вопросы?

Recommended